gsxdsm
5b2b31d2c9
FN-8762: extract Todo Lists into bundled plugin
Move Todo Lists into a bundled, project-enabled plugin package.
- Move Todo UI, client API, and server routes into the plugin package.
- Register and bundle Todo as an enabled plugin dashboard view rather than a static host feature.
- Preserve Todo route validation and server-error semantics, including task assignment agent lookup.
- Keep disabled and legacy Todo views out of project navigation and main content.
Files changed:
.changeset/fn-8762-todos-plugin.md | 7 +
AGENTS.md | 3 +-
docs/PLUGIN_AUTHORING.md | 4 +
docs/dashboard-guide.md | 4 +
docs/todo-view.md | 151 +----
.../cli/src/plugins/staged-bundled-plugin-ids.ts | 1 +
packages/cli/tsup.config.ts | 8 +
.../core/src/board/mobile-nav-primary-items.ts | 2 -
.../__tests__/bundled-plugin-install.test.ts | 2 +
.../core/src/plugins/bundled-plugin-install.ts | 1 +
packages/dashboard/app/App.tsx | 18 +-
.../app/__tests__/lazy-loaded-views-docs.test.ts | 9 +-
packages/dashboard/app/api/legacy.ts | 15 -
packages/dashboard/app/api/system/index.ts | 1 -
packages/dashboard/app/api/system/todo.ts | 85 ---
packages/dashboard/app/components/Header.tsx | 23 +-
.../dashboard/app/components/LeftSidebarNav.tsx | 1 -
packages/dashboard/app/components/MobileNavBar.tsx | 4 -
.../dashboard/app/components/SettingsModal.tsx | 2 -
.../app/components/__tests__/App.test.tsx | 7 -
.../app/components/__tests__/Header.test.tsx | 42 --
.../app/components/__tests__/RightDock.test.tsx | 18 +-
...skDetail.mobile-transition.board-panel.test.tsx | 1 -
.../__tests__/TaskDetail.swipe-back.test.tsx | 1 -
.../__tests__/TodoView.mobile-css.test.ts | 66 ---
.../app/components/__tests__/TodoView.test.tsx | 649 ---------------------
.../__tests__/navigation-history.test.tsx | 3 -
.../__tests__/overflowViewRegistry.test.tsx | 118 +---
.../app/components/dashboard/MainContent.tsx | 27 +-
.../dashboard/app/components/dashboard/types.ts | 6 +-
.../app/components/overflowViewRegistry.tsx | 21 +-
.../app/hooks/__tests__/useTodoLists.test.ts | 291 ---------
.../app/hooks/__tests__/useViewState.test.ts | 11 +
packages/dashboard/app/hooks/useAppSettings.ts | 5 -
packages/dashboard/app/hooks/useViewState.ts | 5 +
.../__tests__/registerBundledPluginViews.test.tsx | 14 +
packages/dashboard/app/plugins/bundled-todos.d.ts | 5 +
.../app/plugins/registerBundledPluginViews.ts | 18 +
packages/dashboard/app/plugins/types.ts | 4 +
.../src/__tests__/todo-documentation.test.ts | 68 ---
.../dashboard/src/__tests__/todo-routes.test.ts | 577 ------------------
packages/dashboard/src/registry-manifest.json | 101 +++-
packages/dashboard/src/routes.ts | 1 -
.../src/routes/plugin-bundled-runtimes.ts | 1 +
.../src/routes/register-integrated-routers.ts | 2 -
packages/dashboard/src/shared/dashboard-views.ts | 6 -
packages/dashboard/src/todo-routes.ts | 342 -----------
packages/dashboard/vite.config.ts | 8 +
packages/dashboard/vitest.config.ts | 8 +
packages/desktop/scripts/workspace-tools.ts | 1 +
plugins/fusion-plugin-todos/README.md | 20 +
plugins/fusion-plugin-todos/manifest.json | 6 +
plugins/fusion-plugin-todos/package.json | 38 ++
.../fusion-plugin-todos/src/dashboard-interop.d.ts | 12 +
plugins/fusion-plugin-todos/src/dashboard-view.tsx | 4 +
.../src/dashboard/LoadingSpinner.tsx | 1 +
.../src/dashboard}/TodoView.css | 0
.../src/dashboard}/TodoView.tsx | 16 +-
plugins/fusion-plugin-todos/src/dashboard/api.ts | 15 +
.../src/dashboard/projectStorage.ts | 3 +
.../fusion-plugin-todos/src/dashboard/swrCache.ts | 6 +
.../src/dashboard/useConfirm.ts | 1 +
.../src/dashboard}/useTodoLists.ts | 4 +-
plugins/fusion-plugin-todos/src/index.ts | 4 +
.../fusion-plugin-todos/src/todo-routes.test.ts | 46 ++
plugins/fusion-plugin-todos/src/todo-routes.ts | 156 +++++
plugins/fusion-plugin-todos/tsconfig.json | 28 +
plugins/fusion-plugin-todos/vitest.config.ts | 9 +
pnpm-lock.yaml | 64 +-
pnpm-workspace.yaml | 1 +
70 files changed, 671 insertions(+), 2531 deletions(-)
Fusion-Task-Id: FN-8762
Fusion-Task-Lineage: 3beb502c-3793-451b-b357-50c243395410
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-08-03 09:04:45 -07:00
..
2026-08-02 20:31:14 -07:00
2026-08-02 20:31:14 -07:00
2026-08-02 20:31:14 -07:00
2026-08-02 20:31:14 -07:00
2026-08-02 20:31:14 -07:00
2026-08-02 20:31:14 -07:00
2026-08-02 20:31:14 -07:00
2026-08-02 20:31:14 -07:00
2026-08-02 20:31:14 -07:00
2026-08-02 20:31:14 -07:00
2026-08-02 20:31:14 -07:00
2026-08-02 20:31:14 -07:00
2026-08-02 20:31:14 -07:00
2026-08-02 20:31:14 -07:00
2026-08-02 20:31:14 -07:00
2026-08-02 20:31:14 -07:00
2026-08-03 00:20:53 -07:00
2026-08-02 20:31:14 -07:00
2026-08-02 20:31:14 -07:00
2026-08-03 09:04:45 -07:00
2026-08-02 20:31:14 -07:00
2026-04-09 20:19:43 -07:00