# 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/` - `Collection` dataclass with name, display_name, description, tools, pinned versions, tags - `published`, `registry_name`, `pending_approval`, `pending_tools` fields for tracking state - **CLI commands for local collections**: - `cmdforge collections list --local` - List local collections - `cmdforge collections create ` - Create new local collection - `cmdforge collections show ` - View collection details - `cmdforge collections add ` - Add tool to collection - `cmdforge collections remove ` - Remove tool from collection - `cmdforge collections delete ` - Delete local collection - `cmdforge collections publish ` - Publish collection to registry - `cmdforge collections status ` - Check tool visibility and approval status - Flags: `--dry-run`, `--force`, `--continue` for 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 - `ToolResolutionResult` dataclass for structured resolution data - **New API endpoints**: - `GET /api/v1/me` - Get current authenticated user info - `GET /api/v1/tools///approved` - Check if tool has approved public version - `POST /api/v1/collections` - Publish/update collection (authenticated) - **New RegistryClient methods**: - `get_me()` - Get current user info - `has_approved_public_tool(owner, name)` - Check tool approval status - `publish_collection(data)` - Publish collection to registry #### Registry Features - **Fork tracking and display**: Tools now track their fork origin with `forked_from` and `forked_version` metadata - 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///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///versions` - "Latest" option plus all available versions listed - Selected version passed to install worker - **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 deletion - `dry_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 #### 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-review` flag**: 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.