CmdForge/milestones/index.html

56 lines
26 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-milestones" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Milestones | CmdForge</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pages.brrd.tech/rob/CmdForge/milestones/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Milestones | CmdForge"><meta data-rh="true" name="description" content="Active"><meta data-rh="true" property="og:description" content="Active"><link data-rh="true" rel="icon" href="/rob/CmdForge/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pages.brrd.tech/rob/CmdForge/milestones/"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/CmdForge/milestones/" hreflang="en"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/CmdForge/milestones/" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Milestones","item":"https://pages.brrd.tech/rob/CmdForge/milestones"}]}</script><link rel="stylesheet" href="/rob/CmdForge/assets/css/styles.37cb0314.css">
<script src="/rob/CmdForge/assets/js/runtime~main.97cd58b2.js" defer="defer"></script>
<script src="/rob/CmdForge/assets/js/main.ff45e93b.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/rob/CmdForge/"><b class="navbar__title text--truncate">CmdForge</b></a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href="https://gitea.brrd.tech/rob/CmdForge" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Source Code<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div><div class="navbarSearchContainer_Bca1"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/rob/CmdForge/"><span title="CmdForge Overview" class="linkLabel_WmDU">CmdForge Overview</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/rob/CmdForge/architecture/"><span title="CmdForge Architecture" class="linkLabel_WmDU">CmdForge Architecture</span></a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/rob/CmdForge/category/reference/"><span title="Reference" class="categoryLinkLabel_W154">Reference</span></a><button aria-label="Expand sidebar category &#x27;Reference&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/rob/CmdForge/todos/"><span title="CmdForge TODOs" class="linkLabel_WmDU">CmdForge TODOs</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/rob/CmdForge/goals/"><span title="Goals" class="linkLabel_WmDU">Goals</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/rob/CmdForge/ideas-and-exploration/"><span title="Ideas &amp; Exploration" class="linkLabel_WmDU">Ideas &amp; Exploration</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/rob/CmdForge/milestones/"><span title="Milestones" class="linkLabel_WmDU">Milestones</span></a></li></ul></nav></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/rob/CmdForge/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Milestones</span></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Milestones</h1></header>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="active">Active<a href="#active" class="hash-link" aria-label="Direct link to Active" title="Direct link to Active" translate="no"></a></h2>
<p>(none)</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="completed">Completed<a href="#completed" class="hash-link" aria-label="Direct link to Completed" title="Direct link to Completed" translate="no"></a></h2>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="m5-testing--polish">M5: Testing &amp; Polish<a href="#m5-testing--polish" class="hash-link" aria-label="Direct link to M5: Testing &amp; Polish" title="Direct link to M5: Testing &amp; Polish" translate="no"></a></h4>
<p><strong>Target</strong>: Q1 2027
<strong>Status</strong>: Completed (100%)</p>
<p>Testing framework, theming, and version management. <strong>Project dependencies</strong> (completed): - <code>cmdforge.yaml</code> manifest format for declaring tool dependencies - <code>cmdforge install</code> to install all dependencies from manifest - <code>cmdforge add official/toolname</code> to add a dependency to manifest - Automatic dependency checking before running meta-tools. <strong>Tool testing framework</strong> includes: - TestStepDialog for interactive step testing from GUI - Test button in Tool Builder to test individual steps - Variable input forms auto-detect <code>{variable}</code> references from step templates - Multiple assertion types (not_empty, contains, valid_json, matches_regex, min/max_length, etc.) - Background execution with timing metrics - Output variable display and assertion pass/fail results - Provider override for testing with mock provider</p>
<table><thead><tr><th>Deliverable</th><th>Status</th></tr></thead><tbody><tr><td>Tool testing framework</td><td>Done</td></tr><tr><td>Simple theming (external QSS files)</td><td>Done</td></tr><tr><td>Dark mode</td><td>Done</td></tr><tr><td>Tool versioning support</td><td>Done</td></tr><tr><td>Version constraints in manifests</td><td>Done</td></tr><tr><td>Project dependency system (<code>cmdforge install</code>)</td><td>Done</td></tr><tr><td><code>cmdforge add</code> command</td><td>Done</td></tr><tr><td>Dependency resolution for meta-tools</td><td>Done</td></tr></tbody></table>
<hr>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="m0-core-platform">M0: Core Platform<a href="#m0-core-platform" class="hash-link" aria-label="Direct link to M0: Core Platform" title="Direct link to M0: Core Platform" translate="no"></a></h4>
<p><strong>Target</strong>: December 2025
<strong>Status</strong>: Completed (100%)</p>
<p>The foundational CmdForge platform with AI-powered CLI tool builder, YAML tool definitions, web UI, offline caching, and provider abstraction.</p>
<table><thead><tr><th>Deliverable</th><th>Status</th></tr></thead><tbody><tr><td>YAML tool definition system</td><td>Done</td></tr><tr><td>CLI entry point and subcommands</td><td>Done</td></tr><tr><td>Provider abstraction layer</td><td>Done</td></tr><tr><td>Offline caching for tools</td><td>Done</td></tr><tr><td>Web UI for tool browsing</td><td>Done</td></tr><tr><td>Tool execution engine</td><td>Done</td></tr></tbody></table>
<hr>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="m1-production-ready">M1: Production Ready<a href="#m1-production-ready" class="hash-link" aria-label="Direct link to M1: Production Ready" title="Direct link to M1: Production Ready" translate="no"></a></h4>
<p><strong>Target</strong>: February 2026
<strong>Status</strong>: Completed (100%)</p>
<p>Production deployment with proper server configuration, complete documentation, and improved reliability.</p>
<table><thead><tr><th>Deliverable</th><th>Status</th></tr></thead><tbody><tr><td>Public documentation</td><td>Done</td></tr><tr><td>Systemd service setup</td><td>Done</td></tr><tr><td>Gunicorn production server</td><td>Done</td></tr><tr><td>Systemd linger for persistence</td><td>Done</td></tr><tr><td>CI/CD pipeline</td><td>Done</td></tr><tr><td>Error message improvements</td><td>Done</td></tr><tr><td>Source field display in web UI</td><td>Done</td></tr></tbody></table>
<hr>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="m2-tool-discovery">M2: Tool Discovery<a href="#m2-tool-discovery" class="hash-link" aria-label="Direct link to M2: Tool Discovery" title="Direct link to M2: Tool Discovery" translate="no"></a></h4>
<p><strong>Target</strong>: Q2 2026
<strong>Status</strong>: Completed (100%)</p>
<p>Enable users to discover, rate, and share tools through a marketplace interface with curation to maintain quality. <strong>Tool search and filtering</strong> includes: - <code>/api/v1/tags</code> endpoint for listing tags with counts - Advanced search with tag filtering (AND logic), multi-category (OR logic), owner, download range, date range - Faceted search responses with category/tag/owner counts - CLI: <code>--tag</code>, <code>--owner</code>, <code>--min-downloads</code>, <code>--popular</code>, <code>--since</code>, <code>--json</code>, <code>--show-facets</code> options - CLI: <code>registry tags</code> subcommand - Web UI: Filter sidebar with checkboxes, dropdowns, active filter chips, URL-based state <strong>PySide6 GUI conversion</strong> includes: - Modern desktop GUI replacing urwid TUI - Sidebar navigation (My Tools, Registry, Providers, Profiles) - Tool Builder with visual form for creating/editing tools - Keyboard shortcuts (Ctrl+N, Ctrl+S, Ctrl+R, Ctrl+1/2/3/4, Escape, Ctrl+Q) - Window geometry persistence <strong>GUI Registry browser</strong> includes: - Browse/search tools with category and sort filters - Star ratings display in table and details - Clickable tags for filtering - Installed indicator (✓) and update available (↑) - Pagination for large result sets - Publisher reputation info <strong>GUI Publishing</strong> includes: - Connect dialog with polling-based account pairing - Publish workflow with version selection - Full publish workflow with confirmation <strong>Infrastructure improvements</strong>: - <code>Dockerfile.test-install</code>: Fresh environment for testing installer - <code>Dockerfile.ready</code>: Pre-installed container for quick usage - <code>install.sh</code>: Interactive installer with venv, PATH setup, optional example tools - Database migration: Auto-adds missing columns on server start <strong>Registry curation system</strong> includes: - Role-based access control (user, moderator, admin) - Tool moderation workflow (pending → approved/rejected/removed) - Publisher management (ban/unban, role changes) - Private/unlisted tool visibility (auto-approved, owner-only access) - Audit logging for all moderation actions - Admin web UI pages (pending queue, publishers, reports, audit log) - Report resolution workflow <strong>App pairing/connection flow</strong> includes: - <code>cmdforge config connect &lt;username&gt;</code> CLI command - GUI Connect dialog with polling-based approval - Web UI &quot;Connections&quot; page (replaces API Tokens) - Device hostname tracking for connected apps <strong>Tool ratings/reviews</strong> includes: - 5-star rating system with review text - Average rating display on tool cards - Publisher reputation scores - Rating count and distribution <strong>Tool marketplace UI enhancements</strong> includes: - Browse all tools on page load - Category filter dropdown - Sort by popularity, rating, newest, name - Clickable tags for filtering - Installed/update indicators - Pagination controls <strong>AI persona profiles</strong> includes: - Profile dataclass with name, description, system_prompt - 8 built-in profiles (Comedian, Technical Writer, Teacher, Concise, Creative, Code Reviewer, Analyst) - Custom profile creation and storage - Profile selector in Prompt Step dialog - Profile injection during tool execution - Profiles page in GUI (Ctrl+4) <strong>AI-assisted code generation</strong> includes: - Split-view Code Step dialog (editor + AI assist panel) - Provider selector for AI calls - Smart prompt template with available variables - Background thread for non-blocking AI calls - Automatic markdown fence stripping - Python syntax checking before save</p>
<table><thead><tr><th>Deliverable</th><th>Status</th></tr></thead><tbody><tr><td>Tool search and filtering</td><td>Done</td></tr><tr><td>PySide6 GUI conversion</td><td>Done</td></tr><tr><td>GUI Registry browser</td><td>Done</td></tr><tr><td>GUI Publishing with connect flow</td><td>Done</td></tr><tr><td>Docker containers (test + ready)</td><td>Done</td></tr><tr><td>Interactive installer script</td><td>Done</td></tr><tr><td>Database migration system</td><td>Done</td></tr><tr><td>Registry curation system</td><td>Done</td></tr><tr><td>App pairing/connection flow</td><td>Done</td></tr><tr><td>Tool ratings/reviews</td><td>Done</td></tr><tr><td>Tool marketplace UI enhancements</td><td>Done</td></tr><tr><td>AI persona profiles</td><td>Done</td></tr><tr><td>AI-assisted code generation</td><td>Done</td></tr></tbody></table>
<hr>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="m3-content--automation">M3: Content &amp; Automation<a href="#m3-content--automation" class="hash-link" aria-label="Direct link to M3: Content &amp; Automation" title="Direct link to M3: Content &amp; Automation" translate="no"></a></h4>
<p><strong>Target</strong>: Q3 2026
<strong>Status</strong>: Completed (100%)</p>
<p>Automated content ingestion and quality assurance for the tool ecosystem. <strong>Import Fabric patterns</strong> includes: - Run existing <code>scripts/import_fabric.py</code> to populate registry - Automatic attribution with source fields (imported, MIT license, Daniel Miessler) - Category mapping based on pattern name prefixes - README generation with original pattern attribution <strong>Auto-vetting pipeline</strong> includes: - Integration with existing <code>scrutiny.py</code> (honesty, transparency, scope, efficiency checks) - Integration with existing <code>similarity.py</code> (duplicate detection) - Auto-approve/review/reject decision logic - Helpful suggestions for tool improvements <strong>Scheduled sync</strong> includes: - Periodic checks for Fabric repo updates - Automatic import of new patterns - Version tracking for updated patterns - Admin notifications for review queue</p>
<table><thead><tr><th>Deliverable</th><th>Status</th></tr></thead><tbody><tr><td>Import Fabric patterns (233 total)</td><td>Done</td></tr><tr><td>Scheduled Fabric repo sync</td><td>Done</td></tr><tr><td>Auto-vetting pipeline integration</td><td>Done</td></tr><tr><td>Community tool submissions workflow</td><td>Done</td></tr><tr><td>Duplicate detection automation</td><td>Done</td></tr></tbody></table>
<hr>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="m4-user-experience">M4: User Experience<a href="#m4-user-experience" class="hash-link" aria-label="Direct link to M4: User Experience" title="Direct link to M4: User Experience" translate="no"></a></h4>
<p><strong>Target</strong>: Q4 2026
<strong>Status</strong>: Completed (87%)</p>
<p>Visual improvements, interactive guidance, and missing registry features. <strong>Collections CLI commands</strong> includes: - <code>cmdforge collections list</code> - List available collections with tool counts - <code>cmdforge collections info &lt;name&gt;</code> - Show collection details with tool list - <code>cmdforge collections install &lt;name&gt;</code> - Install all tools in a collection - <code>--json</code> flag for machine-readable output - <code>--pinned</code> flag to use pinned versions from collection <strong>Admin collections management</strong> includes: - Admin dashboard page at <code>/dashboard/admin/collections</code> - Create/edit/delete collections via web UI - Tool reference input with version pinning - Admin API endpoints (GET/POST/PUT/DELETE) <strong>Password reset flow</strong> includes: - <code>/forgot-password</code> page with email input form - <code>/reset-password?token=xxx</code> page with new password form - API endpoints: request, validate, complete password reset - Email utility module (logs to console in dev mode, SMTP-ready for production) - Security: 1-hour token expiry, single-use tokens, rate limiting (5/hour per IP, 3/hour per email) - Session invalidation on password change - Email enumeration prevention (always returns success message) <strong>Visual node-based editor</strong> includes: - NodeGraphQt-based flow visualization (<code>flow_graph.py</code>) - Custom node types: InputNode, PromptNode, CodeNode, OutputNode - Visual connections showing data flow between steps - Double-click nodes to edit steps - Auto-layout with fit-to-view - Keyboard shortcuts (A: select all, F: fit view) - Context menu for common actions - Help banner overlay with controls <strong>Drag-and-drop step reordering</strong> includes: - Drag-drop reordering in list view - Reordering support from flow view - Variable dependency warnings when reordering breaks references - Automatic step index updates <strong>Tool visualization improvements</strong> includes: - Flow graph widget showing tool execution pipeline - Color-coded nodes by step type (indigo=prompt, green=code, purple=tool) - Input/output port visualization - Variable flow connections between steps <strong>Tool composition and chaining UI</strong> includes: - ToolStep data class for calling other tools as pipeline steps - ToolStepDialog for configuring tool steps (tool selection, input mapping, args) - &quot;Add Tool&quot; button in Tool Builder alongside Add Prompt/Add Code - ToolNode in flow graph visualization (purple node) - Input template with variable substitution from previous steps - Argument passing with variable substitution - Provider override option for nested tool calls - Recursion depth protection (max 10 levels) - Dependency checking and missing tool warnings - Auto-populate dependencies when adding ToolStep in GUI - <code>--auto-install</code> flag for automatic dependency installation at runtime <strong>Interactive walkthroughs</strong> includes: - First-time user onboarding - Guided tool creation tutorial - Feature discovery tooltips - Context-sensitive help</p>
<table><thead><tr><th>Deliverable</th><th>Status</th></tr></thead><tbody><tr><td>Collections CLI commands</td><td>Done</td></tr><tr><td>Admin collections management UI</td><td>Done</td></tr><tr><td>Visual node-based step editor</td><td>Done</td></tr><tr><td>Interactive onboarding walkthroughs</td><td>Not Started</td></tr><tr><td>Tool visualization improvements</td><td>Done</td></tr><tr><td>Tool composition and chaining UI</td><td>Done</td></tr><tr><td>Drag-and-drop step reordering</td><td>Done</td></tr><tr><td>Password reset flow</td><td>Done</td></tr></tbody></table>
<hr></div></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/rob/CmdForge/ideas-and-exploration/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Ideas &amp; Exploration</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#active" class="table-of-contents__link toc-highlight">Active</a></li><li><a href="#completed" class="table-of-contents__link toc-highlight">Completed</a></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/rob/CmdForge/">Overview</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gitea.brrd.tech/rob/CmdForge" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gitea<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">CmdForge Documentation</div></div></div></footer></div>
</body>
</html>