Update documentation 2026-01-07

This commit is contained in:
rob 2026-01-07 23:08:33 -04:00
parent 395010d564
commit 3311547637
13 changed files with 31 additions and 37 deletions

View File

@ -4,7 +4,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2"> <meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Development Hub</title><meta data-rh="true" property="og:title" content="Development Hub"><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/development-hub/404.html"><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"><link data-rh="true" rel="icon" href="/rob/development-hub/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pages.brrd.tech/rob/development-hub/404.html"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/development-hub/404.html" hreflang="en"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/development-hub/404.html" hreflang="x-default"><link rel="stylesheet" href="/rob/development-hub/assets/css/styles.6095798e.css"> <title data-rh="true">Development Hub</title><meta data-rh="true" property="og:title" content="Development Hub"><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/development-hub/404.html"><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"><link data-rh="true" rel="icon" href="/rob/development-hub/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pages.brrd.tech/rob/development-hub/404.html"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/development-hub/404.html" hreflang="en"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/development-hub/404.html" hreflang="x-default"><link rel="stylesheet" href="/rob/development-hub/assets/css/styles.6095798e.css">
<script src="/rob/development-hub/assets/js/runtime~main.940eef11.js" defer="defer"></script> <script src="/rob/development-hub/assets/js/runtime~main.75ac54c5.js" defer="defer"></script>
<script src="/rob/development-hub/assets/js/main.c74b9cfb.js" defer="defer"></script> <script src="/rob/development-hub/assets/js/main.c74b9cfb.js" defer="defer"></script>
</head> </head>
<body class="navigation-with-keyboard"> <body class="navigation-with-keyboard">

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
"use strict";(globalThis.webpackChunkproject_public_docs=globalThis.webpackChunkproject_public_docs||[]).push([[894],{7836(e,n,i){i.r(n),i.d(n,{assets:()=>r,contentTitle:()=>a,default:()=>h,frontMatter:()=>l,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"goals","title":"Goals","description":"Vision","source":"@site/docs/goals.md","sourceDirName":".","slug":"/goals","permalink":"/rob/development-hub/goals","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"type":"goals","project":"development-hub","updated":"2026-01-07T00:00:00.000Z"},"sidebar":"docs","previous":{"title":"Development Hub TODOs","permalink":"/rob/development-hub/todos"},"next":{"title":"Milestones","permalink":"/rob/development-hub/milestones"}}');var s=i(4848),o=i(8453);const l={type:"goals",project:"development-hub",updated:new Date("2026-01-07T00:00:00.000Z")},a="Goals",r={},c=[{value:"Vision",id:"vision",level:2},{value:"Strategic Goals",id:"strategic-goals",level:2},{value:"Unified Project Workspace",id:"unified-project-workspace",level:3},{value:"At-a-Glance Health Visibility",id:"at-a-glance-health-visibility",level:3},{value:"Streamlined Daily Workflow",id:"streamlined-daily-workflow",level:3},{value:"Seamless Documentation Sync",id:"seamless-documentation-sync",level:3},{value:"AI-Assisted Decision Making",id:"ai-assisted-decision-making",level:3},{value:"Non-Goals",id:"non-goals",level:2}];function d(e){const n={h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"goals",children:"Goals"})}),"\n",(0,s.jsx)(n.h2,{id:"vision",children:"Vision"}),"\n",(0,s.jsx)(n.p,{children:"Development Hub aims to be the central workspace for managing all personal projects, reducing context-switching and providing instant visibility into project health and progress."}),"\n",(0,s.jsx)(n.h2,{id:"strategic-goals",children:"Strategic Goals"}),"\n",(0,s.jsx)(n.h3,{id:"unified-project-workspace",children:"Unified Project Workspace"}),"\n",(0,s.jsx)(n.p,{children:"Provide a single interface to view, manage, and navigate between all projects without switching tools or opening multiple windows."}),"\n",(0,s.jsx)(n.h3,{id:"at-a-glance-health-visibility",children:"At-a-Glance Health Visibility"}),"\n",(0,s.jsx)(n.p,{children:"Enable developers to immediately see which projects need attention through health alerts, stale todo detection, and progress indicators."}),"\n",(0,s.jsx)(n.h3,{id:"streamlined-daily-workflow",children:"Streamlined Daily Workflow"}),"\n",(0,s.jsx)(n.p,{children:"Reduce friction in daily standups and progress tracking by capturing work done, blockers, and next steps in a structured, persistent format."}),"\n",(0,s.jsx)(n.h3,{id:"seamless-documentation-sync",children:"Seamless Documentation Sync"}),"\n",(0,s.jsx)(n.p,{children:"Keep project documentation synchronized with minimal effort through automated updates and preview-before-deploy workflows."}),"\n",(0,s.jsx)(n.h3,{id:"ai-assisted-decision-making",children:"AI-Assisted Decision Making"}),"\n",(0,s.jsx)(n.p,{children:"Leverage AI discussions to think through complex features and architectural decisions before implementation."}),"\n",(0,s.jsx)(n.h2,{id:"non-goals",children:"Non-Goals"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Mobile application"})," - Focus is on desktop development workflows"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Cloud sync service"})," - Projects are managed locally with git"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"Real-time collaboration"})," - Single-user tool for now"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.strong,{children:"External issue tracker replacement"})," - Complement, not replace, tools like GitHub Issues"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453(e,n,i){i.d(n,{R:()=>l,x:()=>a});var t=i(6540);const s={},o=t.createContext(s);function l(e){const n=t.useContext(o);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),t.createElement(o.Provider,{value:n},e.children)}}}]);

View File

@ -1 +0,0 @@
"use strict";(globalThis.webpackChunkproject_public_docs=globalThis.webpackChunkproject_public_docs||[]).push([[894],{7836(e,s,t){t.r(s),t.d(s,{assets:()=>o,contentTitle:()=>c,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"goals","title":"Goals","description":"Active","source":"@site/docs/goals.md","sourceDirName":".","slug":"/goals","permalink":"/rob/development-hub/goals","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"type":"goals","project":"development-hub","updated":"2026-01-07T00:00:00.000Z"},"sidebar":"docs","previous":{"title":"Development Hub TODOs","permalink":"/rob/development-hub/todos"},"next":{"title":"Milestones","permalink":"/rob/development-hub/milestones"}}');var n=t(4848),l=t(8453);const a={type:"goals",project:"development-hub",updated:new Date("2026-01-07T00:00:00.000Z")},c="Goals",o={},d=[{value:"Active",id:"active",level:2},{value:"Future",id:"future",level:2},{value:"Non-Goals",id:"non-goals",level:2}];function r(e){const s={h1:"h1",h2:"h2",header:"header",input:"input",li:"li",strong:"strong",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:"goals",children:"Goals"})}),"\n",(0,n.jsx)(s.h2,{id:"active",children:"Active"}),"\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})," ","Create dashboard views for project status #high"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Add hamburger menu for context-aware actions #medium"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Implement daily standup capture #medium"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Auto-discover projects from configurable directories #high"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Configurable project search paths via Settings UI #medium"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Add preview dialog for documentation updates #high"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",checked:!0,disabled:!0})," ","Integrate orchestrated-discussions for launching discussions #medium"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Add todo editing in dashboard #high"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Create project health alerts #medium"]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"future",children:"Future"}),"\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 voice command integration (Ramble)"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Collaborative features for team standups"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Custom dashboard widgets"]}),"\n",(0,n.jsxs)(s.li,{className:"task-list-item",children:[(0,n.jsx)(s.input,{type:"checkbox",disabled:!0})," ","Integration with external issue trackers"]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"non-goals",children:"Non-Goals"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Mobile application"})," - Focus is on desktop development workflows"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Cloud sync service"})," - Projects are managed locally with git"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.strong,{children:"Real-time collaboration"})," - Single-user tool for now"]}),"\n"]})]})}function u(e={}){const{wrapper:s}={...(0,l.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(r,{...e})}):r(e)}},8453(e,s,t){t.d(s,{R:()=>a,x:()=>c});var i=t(6540);const n={},l=i.createContext(n);function a(e){const s=i.useContext(l);return i.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),i.createElement(l.Provider,{value:s},e.children)}}}]);

View File

@ -1 +1 @@
"use strict";(globalThis.webpackChunkproject_public_docs=globalThis.webpackChunkproject_public_docs||[]).push([[143],{6387(e){e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"link","href":"/rob/development-hub/","label":"Development Hub","docId":"overview","unlisted":false},{"type":"link","href":"/rob/development-hub/todos","label":"Development Hub TODOs","docId":"todos","unlisted":false},{"type":"link","href":"/rob/development-hub/goals","label":"Goals","docId":"goals","unlisted":false},{"type":"link","href":"/rob/development-hub/milestones","label":"Milestones","docId":"milestones","unlisted":false}]},"docs":{"goals":{"id":"goals","title":"Goals","description":"Active","sidebar":"docs"},"milestones":{"id":"milestones","title":"Milestones","description":"Active","sidebar":"docs"},"overview":{"id":"overview","title":"Development Hub","description":"Central orchestration project for managing Rob\'s multi-project development ecosystem.","sidebar":"docs"},"todos":{"id":"todos","title":"Development Hub TODOs","description":"Active Tasks","sidebar":"docs"}}}}')}}]); "use strict";(globalThis.webpackChunkproject_public_docs=globalThis.webpackChunkproject_public_docs||[]).push([[143],{6387(e){e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"link","href":"/rob/development-hub/","label":"Development Hub","docId":"overview","unlisted":false},{"type":"link","href":"/rob/development-hub/todos","label":"Development Hub TODOs","docId":"todos","unlisted":false},{"type":"link","href":"/rob/development-hub/goals","label":"Goals","docId":"goals","unlisted":false},{"type":"link","href":"/rob/development-hub/milestones","label":"Milestones","docId":"milestones","unlisted":false}]},"docs":{"goals":{"id":"goals","title":"Goals","description":"Vision","sidebar":"docs"},"milestones":{"id":"milestones","title":"Milestones","description":"Active","sidebar":"docs"},"overview":{"id":"overview","title":"Development Hub","description":"Central orchestration project for managing Rob\'s multi-project development ecosystem.","sidebar":"docs"},"todos":{"id":"todos","title":"Development Hub TODOs","description":"Active Tasks","sidebar":"docs"}}}}')}}]);

View File

@ -1 +0,0 @@
"use strict";(globalThis.webpackChunkproject_public_docs=globalThis.webpackChunkproject_public_docs||[]).push([[574],{921(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>r,toc:()=>d});const r=JSON.parse('{"id":"milestones","title":"Milestones","description":"Active","source":"@site/docs/milestones.md","sourceDirName":".","slug":"/milestones","permalink":"/rob/development-hub/milestones","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"type":"milestones","project":"development-hub","updated":"2026-01-07T00:00:00.000Z"},"sidebar":"docs","previous":{"title":"Goals","permalink":"/rob/development-hub/goals"}}');var o=n(4848),s=n(8453);const i={type:"milestones",project:"development-hub",updated:new Date("2026-01-07T00:00:00.000Z")},a="Milestones",l={},d=[{value:"Active",id:"active",level:2},{value:"M1: Dashboard Complete",id:"m1-dashboard-complete",level:4},{value:"M2: Enhanced Workflow",id:"m2-enhanced-workflow",level:4},{value:"Future",id:"future",level:2},{value:"M3: Team Features",id:"m3-team-features",level:4},{value:"Completed",id:"completed",level:2},{value:"M0: Core Application",id:"m0-core-application",level:4},{value:"M0.5: Project Discovery Overhaul",id:"m05-project-discovery-overhaul",level:4}];function c(e){const t={code:"code",h1:"h1",h2:"h2",h4:"h4",header:"header",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"milestones",children:"Milestones"})}),"\n",(0,o.jsx)(t.h2,{id:"active",children:"Active"}),"\n",(0,o.jsx)(t.h4,{id:"m1-dashboard-complete",children:"M1: Dashboard Complete"}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:"Target"}),": January 2026\n",(0,o.jsx)(t.strong,{children:"Status"}),": In Progress (90%)"]}),"\n",(0,o.jsx)(t.p,{children:"Complete the dashboard functionality with todo editing, project health alerts, and UI polish. Major progress: project auto-discovery, configurable search paths, dashboard views with interactive todos, documentation preview dialog, and orchestrated discussions integration all complete. Remaining: todo inline editing, health alerts."}),"\n",(0,o.jsx)(t.hr,{}),"\n",(0,o.jsx)(t.h4,{id:"m2-enhanced-workflow",children:"M2: Enhanced Workflow"}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:"Target"}),": February 2026\n",(0,o.jsx)(t.strong,{children:"Status"}),": Not Started"]}),"\n",(0,o.jsx)(t.p,{children:"Improve user workflow with voice command integration, custom widgets, and better global dashboard features."}),"\n",(0,o.jsx)(t.hr,{}),"\n",(0,o.jsx)(t.h2,{id:"future",children:"Future"}),"\n",(0,o.jsx)(t.h4,{id:"m3-team-features",children:"M3: Team Features"}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:"Target"}),": Q2 2026\n",(0,o.jsx)(t.strong,{children:"Status"}),": Not Started"]}),"\n",(0,o.jsx)(t.p,{children:"Add collaborative features including shared standups, external issue tracker integration, and team project health views."}),"\n",(0,o.jsx)(t.hr,{}),"\n",(0,o.jsx)(t.h2,{id:"completed",children:"Completed"}),"\n",(0,o.jsx)(t.h4,{id:"m0-core-application",children:"M0: Core Application"}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:"Completed"}),": December 2025"]}),"\n",(0,o.jsx)(t.p,{children:"Delivered the foundational PyQt6 workspace application with splittable terminal panes, project discovery, session persistence, and new project wizard."}),"\n",(0,o.jsx)(t.h4,{id:"m05-project-discovery-overhaul",children:"M0.5: Project Discovery Overhaul"}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:"Completed"}),": January 2026"]}),"\n",(0,o.jsxs)(t.p,{children:["Replaced hardcoded project list with auto-discovery from configurable directories. Projects detected by ",(0,o.jsx)(t.code,{children:".git"})," folder presence. Added Settings UI for managing search paths and ignore patterns."]})]})}function h(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},8453(e,t,n){n.d(t,{R:()=>i,x:()=>a});var r=n(6540);const o={},s=r.createContext(o);function i(e){const t=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),r.createElement(s.Provider,{value:t},e.children)}}}]);

View File

@ -0,0 +1 @@
"use strict";(globalThis.webpackChunkproject_public_docs=globalThis.webpackChunkproject_public_docs||[]).push([[574],{921(e,t,r){r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"milestones","title":"Milestones","description":"Active","source":"@site/docs/milestones.md","sourceDirName":".","slug":"/milestones","permalink":"/rob/development-hub/milestones","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"type":"milestones","project":"development-hub","updated":"2026-01-07T00:00:00.000Z"},"sidebar":"docs","previous":{"title":"Goals","permalink":"/rob/development-hub/goals"}}');var o=r(4848),s=r(8453);const i={type:"milestones",project:"development-hub",updated:new Date("2026-01-07T00:00:00.000Z")},a="Milestones",d={},l=[{value:"Active",id:"active",level:2},{value:"M1: Dashboard Complete",id:"m1-dashboard-complete",level:4},{value:"M2: Enhanced Workflow",id:"m2-enhanced-workflow",level:4},{value:"Future",id:"future",level:2},{value:"M3: Team Features",id:"m3-team-features",level:4},{value:"Completed",id:"completed",level:2},{value:"M0: Core Application",id:"m0-core-application",level:4},{value:"M0.5: Project Discovery Overhaul",id:"m05-project-discovery-overhaul",level:4}];function c(e){const t={code:"code",h1:"h1",h2:"h2",h4:"h4",header:"header",hr:"hr",p:"p",strong:"strong",...(0,s.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.header,{children:(0,o.jsx)(t.h1,{id:"milestones",children:"Milestones"})}),"\n",(0,o.jsx)(t.h2,{id:"active",children:"Active"}),"\n",(0,o.jsx)(t.h4,{id:"m1-dashboard-complete",children:"M1: Dashboard Complete"}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:"Target"}),": January 2026\n",(0,o.jsx)(t.strong,{children:"Status"}),": In Progress (95%)"]}),"\n",(0,o.jsx)(t.p,{children:"Complete the dashboard functionality with todo editing, project health alerts, and UI polish. Major progress: project auto-discovery, configurable search paths, dashboard views with interactive todos, documentation preview dialog, orchestrated discussions integration, project health alerts, and todo editing all complete. Remaining: dashboard refresh button, session state persistence, keyboard shortcuts."}),"\n",(0,o.jsx)(t.hr,{}),"\n",(0,o.jsx)(t.h4,{id:"m2-enhanced-workflow",children:"M2: Enhanced Workflow"}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:"Target"}),": February 2026\n",(0,o.jsx)(t.strong,{children:"Status"}),": Not Started"]}),"\n",(0,o.jsx)(t.p,{children:"Improve user workflow with voice command integration, custom widgets, and better global dashboard features."}),"\n",(0,o.jsx)(t.hr,{}),"\n",(0,o.jsx)(t.h2,{id:"future",children:"Future"}),"\n",(0,o.jsx)(t.h4,{id:"m3-team-features",children:"M3: Team Features"}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:"Target"}),": Q2 2026\n",(0,o.jsx)(t.strong,{children:"Status"}),": Not Started"]}),"\n",(0,o.jsx)(t.p,{children:"Add collaborative features including shared standups, external issue tracker integration, and team project health views."}),"\n",(0,o.jsx)(t.hr,{}),"\n",(0,o.jsx)(t.h2,{id:"completed",children:"Completed"}),"\n",(0,o.jsx)(t.h4,{id:"m0-core-application",children:"M0: Core Application"}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:"Completed"}),": December 2025"]}),"\n",(0,o.jsx)(t.p,{children:"Delivered the foundational PyQt6 workspace application with splittable terminal panes, project discovery, session persistence, and new project wizard."}),"\n",(0,o.jsx)(t.h4,{id:"m05-project-discovery-overhaul",children:"M0.5: Project Discovery Overhaul"}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:"Completed"}),": January 2026"]}),"\n",(0,o.jsxs)(t.p,{children:["Replaced hardcoded project list with auto-discovery from configurable directories. Projects detected by ",(0,o.jsx)(t.code,{children:".git"})," folder presence. Added Settings UI for managing search paths and ignore patterns."]})]})}function h(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},8453(e,t,r){r.d(t,{R:()=>i,x:()=>a});var n=r(6540);const o={},s=n.createContext(o);function i(e){const t=n.useContext(s);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]);

View File

@ -1 +1 @@
(()=>{"use strict";var e,r,t,a,o,n={},i={};function c(e){var r=i[e];if(void 0!==r)return r.exports;var t=i[e]={id:e,loaded:!1,exports:{}};return n[e].call(t.exports,t,t.exports,c),t.loaded=!0,t.exports}c.m=n,c.c=i,e=[],c.O=(r,t,a,o)=>{if(!t){var n=1/0;for(u=0;u<e.length;u++){for(var[t,a,o]=e[u],i=!0,d=0;d<t.length;d++)(!1&o||n>=o)&&Object.keys(c.O).every(e=>c.O[e](t[d]))?t.splice(d--,1):(i=!1,o<n&&(n=o));if(i){e.splice(u--,1);var l=a();void 0!==l&&(r=l)}}return r}o=o||0;for(var u=e.length;u>0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[t,a,o]},c.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return c.d(r,{a:r}),r},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,c.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var o=Object.create(null);c.r(o);var n={};r=r||[null,t({}),t([]),t(t)];for(var i=2&a&&e;("object"==typeof i||"function"==typeof i)&&!~r.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach(r=>n[r]=()=>e[r]);return n.default=()=>e,c.d(o,n),o},c.d=(e,r)=>{for(var t in r)c.o(r,t)&&!c.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce((r,t)=>(c.f[t](e,r),r),[])),c.u=e=>"assets/js/"+({48:"a94703ab",98:"a7bd4aaa",143:"674bbca5",393:"1db78e9f",401:"17896441",413:"1db64337",574:"817f7194",647:"5e95c892",742:"aba21aa0",894:"5eebbccf"}[e]||e)+"."+{48:"b8c77466",98:"3ba34601",143:"872a5c32",237:"447ba118",393:"f6feecdf",401:"a2525508",413:"804ac24b",574:"0d7c0f50",647:"a3b66919",742:"4a552a5c",894:"9e517a53"}[e]+".js",c.miniCssF=e=>{},c.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),a={},o="project-public-docs:",c.l=(e,r,t,n)=>{if(a[e])a[e].push(r);else{var i,d;if(void 0!==t)for(var l=document.getElementsByTagName("script"),u=0;u<l.length;u++){var f=l[u];if(f.getAttribute("src")==e||f.getAttribute("data-webpack")==o+t){i=f;break}}i||(d=!0,(i=document.createElement("script")).charset="utf-8",c.nc&&i.setAttribute("nonce",c.nc),i.setAttribute("data-webpack",o+t),i.src=e),a[e]=[r];var b=(r,t)=>{i.onerror=i.onload=null,clearTimeout(s);var o=a[e];if(delete a[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach(e=>e(t)),r)return r(t)},s=setTimeout(b.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=b.bind(null,i.onerror),i.onload=b.bind(null,i.onload),d&&document.head.appendChild(i)}},c.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.p="/rob/development-hub/",c.gca=function(e){return e={17896441:"401",a94703ab:"48",a7bd4aaa:"98","674bbca5":"143","1db78e9f":"393","1db64337":"413","817f7194":"574","5e95c892":"647",aba21aa0:"742","5eebbccf":"894"}[e]||e,c.p+c.u(e)},(()=>{var e={354:0,869:0};c.f.j=(r,t)=>{var a=c.o(e,r)?e[r]:void 0;if(0!==a)if(a)t.push(a[2]);else if(/^(354|869)$/.test(r))e[r]=0;else{var o=new Promise((t,o)=>a=e[r]=[t,o]);t.push(a[2]=o);var n=c.p+c.u(r),i=new Error;c.l(n,t=>{if(c.o(e,r)&&(0!==(a=e[r])&&(e[r]=void 0),a)){var o=t&&("load"===t.type?"missing":t.type),n=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+o+": "+n+")",i.name="ChunkLoadError",i.type=o,i.request=n,a[1](i)}},"chunk-"+r,r)}},c.O.j=r=>0===e[r];var r=(r,t)=>{var a,o,[n,i,d]=t,l=0;if(n.some(r=>0!==e[r])){for(a in i)c.o(i,a)&&(c.m[a]=i[a]);if(d)var u=d(c)}for(r&&r(t);l<n.length;l++)o=n[l],c.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return c.O(u)},t=globalThis.webpackChunkproject_public_docs=globalThis.webpackChunkproject_public_docs||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})()})(); (()=>{"use strict";var e,r,t,a,o,n={},i={};function c(e){var r=i[e];if(void 0!==r)return r.exports;var t=i[e]={id:e,loaded:!1,exports:{}};return n[e].call(t.exports,t,t.exports,c),t.loaded=!0,t.exports}c.m=n,c.c=i,e=[],c.O=(r,t,a,o)=>{if(!t){var n=1/0;for(u=0;u<e.length;u++){for(var[t,a,o]=e[u],i=!0,d=0;d<t.length;d++)(!1&o||n>=o)&&Object.keys(c.O).every(e=>c.O[e](t[d]))?t.splice(d--,1):(i=!1,o<n&&(n=o));if(i){e.splice(u--,1);var l=a();void 0!==l&&(r=l)}}return r}o=o||0;for(var u=e.length;u>0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[t,a,o]},c.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return c.d(r,{a:r}),r},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,c.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var o=Object.create(null);c.r(o);var n={};r=r||[null,t({}),t([]),t(t)];for(var i=2&a&&e;("object"==typeof i||"function"==typeof i)&&!~r.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach(r=>n[r]=()=>e[r]);return n.default=()=>e,c.d(o,n),o},c.d=(e,r)=>{for(var t in r)c.o(r,t)&&!c.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce((r,t)=>(c.f[t](e,r),r),[])),c.u=e=>"assets/js/"+({48:"a94703ab",98:"a7bd4aaa",143:"674bbca5",393:"1db78e9f",401:"17896441",413:"1db64337",574:"817f7194",647:"5e95c892",742:"aba21aa0",894:"5eebbccf"}[e]||e)+"."+{48:"b8c77466",98:"3ba34601",143:"1bf3b8ef",237:"447ba118",393:"8e87ef77",401:"a2525508",413:"804ac24b",574:"39f588c5",647:"a3b66919",742:"4a552a5c",894:"8d935fe9"}[e]+".js",c.miniCssF=e=>{},c.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),a={},o="project-public-docs:",c.l=(e,r,t,n)=>{if(a[e])a[e].push(r);else{var i,d;if(void 0!==t)for(var l=document.getElementsByTagName("script"),u=0;u<l.length;u++){var f=l[u];if(f.getAttribute("src")==e||f.getAttribute("data-webpack")==o+t){i=f;break}}i||(d=!0,(i=document.createElement("script")).charset="utf-8",c.nc&&i.setAttribute("nonce",c.nc),i.setAttribute("data-webpack",o+t),i.src=e),a[e]=[r];var b=(r,t)=>{i.onerror=i.onload=null,clearTimeout(s);var o=a[e];if(delete a[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach(e=>e(t)),r)return r(t)},s=setTimeout(b.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=b.bind(null,i.onerror),i.onload=b.bind(null,i.onload),d&&document.head.appendChild(i)}},c.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.p="/rob/development-hub/",c.gca=function(e){return e={17896441:"401",a94703ab:"48",a7bd4aaa:"98","674bbca5":"143","1db78e9f":"393","1db64337":"413","817f7194":"574","5e95c892":"647",aba21aa0:"742","5eebbccf":"894"}[e]||e,c.p+c.u(e)},(()=>{var e={354:0,869:0};c.f.j=(r,t)=>{var a=c.o(e,r)?e[r]:void 0;if(0!==a)if(a)t.push(a[2]);else if(/^(354|869)$/.test(r))e[r]=0;else{var o=new Promise((t,o)=>a=e[r]=[t,o]);t.push(a[2]=o);var n=c.p+c.u(r),i=new Error;c.l(n,t=>{if(c.o(e,r)&&(0!==(a=e[r])&&(e[r]=void 0),a)){var o=t&&("load"===t.type?"missing":t.type),n=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+o+": "+n+")",i.name="ChunkLoadError",i.type=o,i.request=n,a[1](i)}},"chunk-"+r,r)}},c.O.j=r=>0===e[r];var r=(r,t)=>{var a,o,[n,i,d]=t,l=0;if(n.some(r=>0!==e[r])){for(a in i)c.o(i,a)&&(c.m[a]=i[a]);if(d)var u=d(c)}for(r&&r(t);l<n.length;l++)o=n[l],c.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return c.O(u)},t=globalThis.webpackChunkproject_public_docs=globalThis.webpackChunkproject_public_docs||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})()})();

File diff suppressed because one or more lines are too long

View File

@ -4,7 +4,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2"> <meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Development Hub</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/development-hub/"><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="Development Hub"><meta data-rh="true" name="description" content="Central orchestration project for managing Rob&#x27;s multi-project development ecosystem."><meta data-rh="true" property="og:description" content="Central orchestration project for managing Rob&#x27;s multi-project development ecosystem."><link data-rh="true" rel="icon" href="/rob/development-hub/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pages.brrd.tech/rob/development-hub/"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/development-hub/" hreflang="en"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/development-hub/" hreflang="x-default"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/rob/development-hub/</span> </p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),o=window.location.pathname,s="/"===o.substr(-1)?o:o+"/";e.innerHTML=s}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Development Hub","item":"https://pages.brrd.tech/rob/development-hub/"}]}</script><link rel="stylesheet" href="/rob/development-hub/assets/css/styles.6095798e.css"> <title data-rh="true">Development Hub</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/development-hub/"><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="Development Hub"><meta data-rh="true" name="description" content="Central orchestration project for managing Rob&#x27;s multi-project development ecosystem."><meta data-rh="true" property="og:description" content="Central orchestration project for managing Rob&#x27;s multi-project development ecosystem."><link data-rh="true" rel="icon" href="/rob/development-hub/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pages.brrd.tech/rob/development-hub/"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/development-hub/" hreflang="en"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/development-hub/" hreflang="x-default"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/rob/development-hub/</span> </p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),o=window.location.pathname,s="/"===o.substr(-1)?o:o+"/";e.innerHTML=s}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Development Hub","item":"https://pages.brrd.tech/rob/development-hub/"}]}</script><link rel="stylesheet" href="/rob/development-hub/assets/css/styles.6095798e.css">
<script src="/rob/development-hub/assets/js/runtime~main.940eef11.js" defer="defer"></script> <script src="/rob/development-hub/assets/js/runtime~main.75ac54c5.js" defer="defer"></script>
<script src="/rob/development-hub/assets/js/main.c74b9cfb.js" defer="defer"></script> <script src="/rob/development-hub/assets/js/main.c74b9cfb.js" defer="defer"></script>
</head> </head>
<body class="navigation-with-keyboard"> <body class="navigation-with-keyboard">

View File

@ -4,7 +4,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2"> <meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Milestones | Development Hub</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/development-hub/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 | Development Hub"><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/development-hub/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pages.brrd.tech/rob/development-hub/milestones"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/development-hub/milestones" hreflang="en"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/development-hub/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/development-hub/milestones"}]}</script><link rel="stylesheet" href="/rob/development-hub/assets/css/styles.6095798e.css"> <title data-rh="true">Milestones | Development Hub</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/development-hub/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 | Development Hub"><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/development-hub/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pages.brrd.tech/rob/development-hub/milestones"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/development-hub/milestones" hreflang="en"><link data-rh="true" rel="alternate" href="https://pages.brrd.tech/rob/development-hub/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/development-hub/milestones"}]}</script><link rel="stylesheet" href="/rob/development-hub/assets/css/styles.6095798e.css">
<script src="/rob/development-hub/assets/js/runtime~main.940eef11.js" defer="defer"></script> <script src="/rob/development-hub/assets/js/runtime~main.75ac54c5.js" defer="defer"></script>
<script src="/rob/development-hub/assets/js/main.c74b9cfb.js" defer="defer"></script> <script src="/rob/development-hub/assets/js/main.c74b9cfb.js" defer="defer"></script>
</head> </head>
<body class="navigation-with-keyboard"> <body class="navigation-with-keyboard">
@ -15,8 +15,8 @@
<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> <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>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="m1-dashboard-complete">M1: Dashboard Complete<a href="#m1-dashboard-complete" class="hash-link" aria-label="Direct link to M1: Dashboard Complete" title="Direct link to M1: Dashboard Complete" translate="no"></a></h4> <h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="m1-dashboard-complete">M1: Dashboard Complete<a href="#m1-dashboard-complete" class="hash-link" aria-label="Direct link to M1: Dashboard Complete" title="Direct link to M1: Dashboard Complete" translate="no"></a></h4>
<p><strong>Target</strong>: January 2026 <p><strong>Target</strong>: January 2026
<strong>Status</strong>: In Progress (90%)</p> <strong>Status</strong>: In Progress (95%)</p>
<p>Complete the dashboard functionality with todo editing, project health alerts, and UI polish. Major progress: project auto-discovery, configurable search paths, dashboard views with interactive todos, documentation preview dialog, and orchestrated discussions integration all complete. Remaining: todo inline editing, health alerts.</p> <p>Complete the dashboard functionality with todo editing, project health alerts, and UI polish. Major progress: project auto-discovery, configurable search paths, dashboard views with interactive todos, documentation preview dialog, orchestrated discussions integration, project health alerts, and todo editing all complete. Remaining: dashboard refresh button, session state persistence, keyboard shortcuts.</p>
<hr> <hr>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="m2-enhanced-workflow">M2: Enhanced Workflow<a href="#m2-enhanced-workflow" class="hash-link" aria-label="Direct link to M2: Enhanced Workflow" title="Direct link to M2: Enhanced Workflow" translate="no"></a></h4> <h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="m2-enhanced-workflow">M2: Enhanced Workflow<a href="#m2-enhanced-workflow" class="hash-link" aria-label="Direct link to M2: Enhanced Workflow" title="Direct link to M2: Enhanced Workflow" translate="no"></a></h4>
<p><strong>Target</strong>: February 2026 <p><strong>Target</strong>: February 2026

File diff suppressed because one or more lines are too long