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>
72 lines
3.0 KiB
YAML
72 lines
3.0 KiB
YAML
ignoredBuiltDependencies:
|
|
- '@google/genai'
|
|
- cpu-features
|
|
- electron-winstaller
|
|
- keytar
|
|
- sharp
|
|
- ssh2
|
|
onlyBuiltDependencies:
|
|
- '@embedded-postgres/darwin-arm64'
|
|
- '@embedded-postgres/darwin-x64'
|
|
- '@embedded-postgres/linux-arm64'
|
|
- '@embedded-postgres/linux-x64'
|
|
- '@embedded-postgres/windows-x64'
|
|
- '@homebridge/node-pty-prebuilt-multiarch'
|
|
- esbuild
|
|
- koffi
|
|
- protobufjs
|
|
overrides:
|
|
'@types/node': ^25.5.2
|
|
protobufjs: ^7.5.8
|
|
# FNXC:ModelCatalog 2026-07-16-18:15: Keep floating @fusion/droid-cli and
|
|
# @fusion/pi-llama-cpp imports on the ModelRuntime-capable pi SDK so the
|
|
# workspace cannot resolve conflicting pi type surfaces.
|
|
# FNXC:ModelCatalog 2026-07-22-12:00: Bumped workspace override pin 0.80.10 → 0.81.1
|
|
# to match guarded package manifests (cli/core/engine/dashboard/pi-claude-cli).
|
|
# FNXC:ModelCatalog 2026-07-24-12:00: FN-8564 advances the matched runtime pair
|
|
# to 0.82.0. Wildcard consumers must resolve the exact guarded Pi API surface.
|
|
# FNXC:DesktopPackaging 2026-07-25-17:15: Legacy `pnpm deploy` resolves pi-coding-agent's
|
|
# transitive ranges without the workspace lockfile. Pin the complete Pi runtime closure to one
|
|
# exact version so new agent-core or tui patches cannot split the packageable desktop tree.
|
|
# FNXC:DesktopPackaging 2026-07-26-22:55: Advance the matched closure 0.82.0 → 0.82.1 so
|
|
# electron-builder's production-dependency walk accepts pi-agent-core's pi-ai@^0.82.1 requirement
|
|
# (Desktop packaging PR-lane failure when deploy resolved a newer agent-core patch beside 0.82.0 ai).
|
|
'@earendil-works/pi-agent-core': 0.82.1
|
|
'@earendil-works/pi-ai': 0.82.1
|
|
'@earendil-works/pi-coding-agent': 0.82.1
|
|
'@earendil-works/pi-tui': 0.82.1
|
|
# FNXC:DesktopEmbeddedPostgres 2026-07-14-09:30:
|
|
# Desktop release jobs cross-build Intel and ARM64 artifacts on one host. Install
|
|
# optional native payloads for both CPU families on the current OS so each
|
|
# packaged macOS/Linux app contains the Postgres binaries selected at runtime.
|
|
# Upstream publishes Windows x64 only, so unsupported Windows ARM64 is not listed.
|
|
supportedArchitectures:
|
|
os:
|
|
- current
|
|
cpu:
|
|
- x64
|
|
- arm64
|
|
packages:
|
|
- "packages/*"
|
|
- "plugins/examples/*"
|
|
- "plugins/fusion-plugin-paperclip-runtime"
|
|
- "plugins/fusion-plugin-dependency-graph"
|
|
- "plugins/fusion-plugin-cli-printing-press"
|
|
- "plugins/fusion-plugin-openclaw-runtime"
|
|
- "plugins/fusion-plugin-hermes-runtime"
|
|
- "plugins/fusion-plugin-droid-runtime"
|
|
- "plugins/fusion-plugin-acp-runtime"
|
|
- "plugins/fusion-plugin-cursor-runtime"
|
|
- "plugins/fusion-plugin-grok-runtime"
|
|
- "plugins/fusion-plugin-claude-runtime"
|
|
- "plugins/fusion-plugin-omp-runtime"
|
|
- "plugins/fusion-plugin-agent-browser"
|
|
- "plugins/fusion-plugin-whatsapp-chat"
|
|
- "plugins/fusion-plugin-roadmap"
|
|
- "plugins/fusion-plugin-todos"
|
|
- "plugins/fusion-plugin-even-realities-glasses"
|
|
- "plugins/fusion-plugin-reports"
|
|
- "plugins/fusion-plugin-compound-engineering"
|
|
- "plugins/fusion-plugin-quality"
|
|
- "plugins/fusion-plugin-linear-import"
|