5.9 KiB
5.9 KiB
Changelog
All notable changes to CmdForge will be documented in this file.
[Unreleased]
Added
Local Collections Support
-
Local collection definitions: Create and manage collections locally before publishing
- Collections stored as YAML files in
~/.cmdforge/collections/ Collectiondataclass with name, display_name, description, tools, pinned versions, tagspublished,registry_name,pending_approval,pending_toolsfields for tracking state
- Collections stored as YAML files in
-
CLI commands for local collections:
cmdforge collections list --local- List local collectionscmdforge collections create <name>- Create new local collectioncmdforge collections show <name>- View collection detailscmdforge collections add <name> <tool>- Add tool to collectioncmdforge collections remove <name> <tool>- Remove tool from collectioncmdforge collections delete <name>- Delete local collectioncmdforge collections publish <name>- Publish collection to registrycmdforge collections status <name>- Check tool visibility and approval status- Flags:
--dry-run,--force,--continuefor publish workflow
-
GUI Collections page: New page for managing collections
- Local collections tab: Create, edit, delete local collections
- Registry collections tab: Browse and install from registry
- Publish workflow with tool resolution analysis
- Background workers for non-blocking install/publish operations
-
Collection publishing workflow:
resolve_tool_references()function to transform local tool names to registry refs- Visibility checking (tools must be public)
- Approval status checking (tools must have approved version)
- Options: publish tools first, skip unpublished, or cancel
ToolResolutionResultdataclass for structured resolution data
-
New API endpoints:
GET /api/v1/me- Get current authenticated user infoGET /api/v1/tools/<owner>/<name>/approved- Check if tool has approved public versionPOST /api/v1/collections- Publish/update collection (authenticated)
-
New RegistryClient methods:
get_me()- Get current user infohas_approved_public_tool(owner, name)- Check tool approval statuspublish_collection(data)- Publish collection to registry
Registry Features
-
Fork tracking and display: Tools now track their fork origin with
forked_fromandforked_versionmetadata- Forked tools show a "Forked from" notice on the tool detail page
- Original tools display a "Forks" section listing all forks
- Fork count displayed in tool stats
- API endpoint:
GET /api/v1/tools/<owner>/<name>/forks
-
Version selector for installs: Users can select specific versions when installing tools from the registry
- Version dropdown in registry page populated via
GET /api/v1/tools/<owner>/<name>/versions - "Latest" option plus all available versions listed
- Selected version passed to install worker
- Version dropdown in registry page populated via
-
Auto-cleanup rejected versions: Admin maintenance feature to purge rejected tool submissions
- API endpoint:
POST /api/v1/admin/cleanup/rejected - Parameters:
days(default: 7) - grace period before deletiondry_run(default: false) - preview mode without actual deletion
- Admin dashboard UI with "Dry Run" and "Run Cleanup" buttons
- Shows count of rejected versions pending cleanup
- API endpoint:
GUI Improvements
- Version display and bump buttons in publish dialog
- Auto-fetch registry version when opening publish dialog
- Fork detection during publish workflow
- Always refresh tools page after publish dialog closes
- Startup connection validation: GUI validates registry token on startup
- Automatically clears invalid/revoked tokens
- Shows status bar message when connection is cleared
- Prevents confusing errors when trying to publish with stale credentials
- Help menu and quick guides: Added Help menu with documentation guides
- Getting Started guide with quick start steps and keyboard shortcuts
- How to Create a Tool guide with step-by-step instructions
- How to Install Tools guide for registry browsing
- How to Publish Tools guide for sharing tools
- Keyboard Shortcuts reference
- About CmdForge dialog
- F1 shortcut opens Getting Started guide
- Enhanced tooltips: Added contextual tooltips throughout the GUI
- Section headings in Tool Builder (Arguments, Steps, Output Template)
- Registry page controls (search, filters, pagination, install)
- Sidebar navigation items with keyboard shortcuts
CLI Features
cmdforge config disconnect- Clear registry token from local configuration
Admin Features
- Maintenance section in admin dashboard
- Rejected version count display
- Cleanup result modal with detailed output
Fabric Sync Improvements
- AI review logging: Added comprehensive logging to
run_ai_scrutiny_review()function- Logs tool path checks, warning counts, timing, success/failure states
- Logs timeout events, JSON parse errors, and all exception types
- Previously failures were silently swallowed with
return None
--skip-ai-reviewflag: Skip AI secondary review for large bulk imports- Prevents rate limiting and timeouts during initial large imports
- Usage:
python fabric_sync.py --sync --skip-ai-review - Logs when AI review is skipped with reason
Fixed
- Registry search partial matching: Search now supports prefix matching (e.g., "summ" matches "summarize")
- VERSION_EXISTS error showing after successful publish (made endpoint idempotent by checking config_hash)
- My Tools page listing every version separately (now consolidated by tool name)
- GUI not refreshing after publish dialog closes
Changed
- Publish endpoint now returns success if same config_hash already exists (idempotent)
- My Tools page groups versions by tool name, showing version count and list
Previous Changes
See git history for changes prior to this changelog.