1 line
9.4 KiB
JavaScript
1 line
9.4 KiB
JavaScript
"use strict";(globalThis.webpackChunkproject_public_docs=globalThis.webpackChunkproject_public_docs||[]).push([[393],{8363(e,s,i){i.r(s),i.d(s,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>t,toc:()=>d});const t=JSON.parse('{"id":"todos","title":"CmdForge TODOs","description":"Active Tasks","source":"@site/docs/todos.md","sourceDirName":".","slug":"/todos","permalink":"/rob/CmdForge/todos","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":6,"frontMatter":{"type":"todos","project":"cmdforge","updated":"2026-01-12T00:00:00.000Z","sidebar_position":6},"sidebar":"docs","previous":{"title":"CmdForge Architecture","permalink":"/rob/CmdForge/architecture"},"next":{"title":"Goals","permalink":"/rob/CmdForge/goals"}}');var n=i(4848),l=i(8453);const r={type:"todos",project:"cmdforge",updated:new Date("2026-01-12T00:00:00.000Z"),sidebar_position:6},o="CmdForge TODOs",c={},d=[{value:"Active Tasks",id:"active-tasks",level:2},{value:"High Priority",id:"high-priority",level:3},{value:"Medium Priority",id:"medium-priority",level:3},{value:"Low Priority",id:"low-priority",level:3},{value:"Completed",id:"completed",level:2},{value:"Ideas / Backlog",id:"ideas--backlog",level:2},{value:"Registry Curation System @M2",id:"registry-curation-system-m2",level:3},{value:"Other Ideas",id:"other-ideas",level:3},{value:"Known Issues",id:"known-issues",level:2}];function a(e){const s={h1:"h1",h2:"h2",h3:"h3",header:"header",input:"input",li:"li",p:"p",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"cmdforge-todos",children:"CmdForge TODOs"})}),"\n",(0,n.jsx)(s.h2,{id:"active-tasks",children:"Active Tasks"}),"\n",(0,n.jsx)(s.h3,{id:"high-priority",children:"High Priority"}),"\n",(0,n.jsxs)(s.ul,{className:"contains-task-list",children:["\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Set up gunicorn for production instead of Flask dev server @M1"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Enable systemd linger for user service persistence @M1"]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"medium-priority",children:"Medium Priority"}),"\n",(0,n.jsxs)(s.ul,{className:"contains-task-list",children:["\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Import remaining Fabric patterns (233 total, part of registry curation) @M1"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Add source field display to web UI tool detail page @M1"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Improve error messages and debugging @M1"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Set up CI/CD for automatic deployment @M1"]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"low-priority",children:"Low Priority"}),"\n",(0,n.jsxs)(s.ul,{className:"contains-task-list",children:["\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Add more provider profiles @M2"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Create tool templates/wizards @M2"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Add tool versioning support @M3"]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"completed",children:"Completed"}),"\n",(0,n.jsxs)(s.ul,{className:"contains-task-list",children:["\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Fix Dockerfile - remove docs/ symlink copy (2026-01-10)"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Create public documentation with Docusaurus @M1 (2026-01-05)"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Migrate from SmartTools to CmdForge naming (2025-12-15)"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Add ToolSource dataclass for attribution (2025-12-10)"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Create Fabric import script (2025-12-08)"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Set up systemd service on production (2025-12-05)"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Fix database persistence with backup/restore (2025-12-03)"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Update cron jobs to use cmdforge names (2025-12-01)"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Implement YAML tool definition system @M0 (2025-12-01)"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Create CLI entry point and subcommands @M0 (2025-11-15)"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Build provider abstraction layer @M0 (2025-11-10)"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Add offline caching for tools @M0 (2025-11-05)"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Create web UI for tool browsing @M0 (2025-10-20)"]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"ideas--backlog",children:"Ideas / Backlog"}),"\n",(0,n.jsx)(s.h3,{id:"registry-curation-system-m2",children:"Registry Curation System @M2"}),"\n",(0,n.jsx)(s.p,{children:"The registry needs curation to prevent duplication and ensure quality:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Tool vetting process"})," - How do tools get approved for the registry?"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Deduplication detection"})," - Prevent 100s of similar tools doing the same thing"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Scope classification"})," - Distinguish public-value tools vs project-specific tools"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Auto-generalization pipeline"})," - Process to make specific tools more general"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Tool quality scoring"})," - Metrics for tool quality and usefulness"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Similarity detection"})," - Check for similar tools before publishing"]}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"other-ideas",children:"Other Ideas"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Tool marketplace design @M2"}),"\n",(0,n.jsx)(s.li,{children:"Tool search and filtering @M2"}),"\n",(0,n.jsx)(s.li,{children:"User tool ratings/reviews @M2"}),"\n",(0,n.jsx)(s.li,{children:"Tool usage analytics @M2"}),"\n",(0,n.jsx)(s.li,{children:"Plugin architecture design @M3"}),"\n",(0,n.jsx)(s.li,{children:"Custom AI backend support @M3"}),"\n",(0,n.jsx)(s.li,{children:"Tool composition and chaining @M3"}),"\n",(0,n.jsx)(s.li,{children:"Tool testing framework @M3"}),"\n",(0,n.jsx)(s.li,{children:"GUI tool builder (visual YAML editor)"}),"\n",(0,n.jsx)(s.li,{children:"VS Code extension"}),"\n",(0,n.jsx)(s.li,{children:"Provider auto-detection"}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"known-issues",children:"Known Issues"}),"\n",(0,n.jsxs)(s.table,{children:[(0,n.jsx)(s.thead,{children:(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.th,{children:"Issue"}),(0,n.jsx)(s.th,{children:"Status"}),(0,n.jsx)(s.th,{children:"Workaround"})]})}),(0,n.jsxs)(s.tbody,{children:[(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"MergerFS SQLite limitation"}),(0,n.jsx)(s.td,{children:"Open"}),(0,n.jsx)(s.td,{children:"Database must stay in /tmp due to WAL mode incompatibility"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"Service persistence"}),(0,n.jsx)(s.td,{children:"Open"}),(0,n.jsx)(s.td,{children:"User systemd service may stop on logout if linger not enabled"})]}),(0,n.jsxs)(s.tr,{children:[(0,n.jsx)(s.td,{children:"Flask dev server"}),(0,n.jsx)(s.td,{children:"Open"}),(0,n.jsx)(s.td,{children:"Currently using dev server, should use gunicorn for production"})]})]})]})]})}function h(e={}){const{wrapper:s}={...(0,l.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(a,{...e})}):a(e)}},8453(e,s,i){i.d(s,{R:()=>r,x:()=>o});var t=i(6540);const n={},l=t.createContext(n);function r(e){const s=t.useContext(l);return t.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),t.createElement(l.Provider,{value:s},e.children)}}}]); |