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
gsxdsm
7b540959c5
FN-8198: add Todo item task creation API
...
Add API endpoints that turn Todo lists and items into executable board tasks.
- Expose Todo list and item read endpoints with async store parity.
- Create tasks from Todo items with validation, project scoping, provenance, and workflow-default placement.
- Document the scripting flow and cover dashboard and PostgreSQL behavior.
Files changed:
.changeset/fn-8198-todo-api.md | 7 +
docs/todo-view.md | 18 ++-
.../src/__tests__/postgres/todo-store.pg.test.ts | 13 ++
packages/core/src/async-todo-store.ts | 17 +++
.../dashboard/src/__tests__/todo-routes.test.ts | 157 ++++++++++++++++++++-
packages/dashboard/src/todo-routes.ts | 128 ++++++++++++++++-
6 files changed, 335 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-8198
Fusion-Task-Lineage: f8d5032b-4844-43c9-97d1-3cc7d13d0ce1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 01:23:32 -07:00
gsxdsm
a242f1b449
fix(FN-7952): migrate bundled plugins to PostgreSQL ( #2111 )
...
## Summary
Bundled plugins now persist shared runtime state in project-scoped
PostgreSQL tables instead of maintaining independent SQLite authority.
Reports, CLI Printing Press, Compound Engineering, Roadmap, Even
Realities, and WhatsApp all follow the same ownership and startup
contract as Fusion core.
## Design decisions
- Plugin schema hooks run through the host’s PostgreSQL owner and
enforce project isolation.
- The SDK exposes the host contract needed by bundled plugins without
importing engine internals.
- Legacy Roadmap ownership fixtures use the supported empty-owner
sentinel, preserving current composite primary/foreign keys while
exercising backfill behavior.
- The lockfile travels with the Even Realities PostgreSQL dependency so
packaged installs remain reproducible.
## Validation
- All six affected plugin builds pass.
- Affected plugin suites pass: 773 tests across Printing Press, Compound
Engineering, Even Realities, Reports, Roadmap, and WhatsApp.
- `pnpm test:gate` passes all 478 gate tests.
- This PR changes 40 files.
## Stack
- Depends on #2110 → #2109 → #2108 .
- The documentation/release PR completes the stack.
Related: #2105
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Breaking Changes**
* PostgreSQL is now required for runtime storage; SQLite files are used
only as one-time migration inputs.
* The legacy `FUSION_NO_EMBEDDED_PG` fallback has been removed.
* **New Features**
* Added project-isolated PostgreSQL storage for plugins, reports, tasks,
notifications, and other plugin data.
* Added agent tools for reports and CLI service drafts.
* Added PostgreSQL schema initialization support for plugin authors.
* **Bug Fixes**
* Improved migration and recovery of legacy plugin state.
* Prevented cross-project data access and strengthened transactional
schema updates.
* **Documentation**
* Updated storage, migration, deployment, plugin authoring, CLI, and
dashboard guidance for PostgreSQL.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-15 00:27:59 -07:00
gsxdsm
e67dd11b50
FN-6829: dock todos as a project view
...
Convert Todos into the standard project right-content navigation surface.
- Route Todos through taskView state instead of modal manager state.
- Remove TodoModal wiring, styles, and tests while updating header, sidebar, mobile nav, and history coverage.
- Polish TodoView as a standalone content page with refreshed header and layout styling.
- Update dashboard and todo documentation for the full-view behavior.
Files changed:
docs/dashboard-guide.md | 5 +-
docs/todo-view.md | 5 +-
packages/dashboard/app/App.tsx | 30 ++---
.../app/__tests__/lazy-loaded-views-docs.test.ts | 10 +-
packages/dashboard/app/components/AppModals.tsx | 16 ---
packages/dashboard/app/components/Header.tsx | 12 +-
.../dashboard/app/components/LeftSidebarNav.tsx | 8 +-
packages/dashboard/app/components/MobileNavBar.tsx | 8 +-
packages/dashboard/app/components/TodoModal.css | 76 ------------
packages/dashboard/app/components/TodoModal.tsx | 79 ------------
packages/dashboard/app/components/TodoView.css | 55 ++++++---
packages/dashboard/app/components/TodoView.tsx | 24 ++--
.../app/components/__tests__/AppModals.test.tsx | 56 ---------
.../app/components/__tests__/Header.test.tsx | 26 ++--
.../components/__tests__/LeftSidebarNav.test.tsx | 7 +-
.../app/components/__tests__/MobileNavBar.test.tsx | 22 +++-
.../app/components/__tests__/TodoModal.test.tsx | 136 ---------------------
.../__tests__/TodoView.mobile-css.test.ts | 7 --
.../app/components/__tests__/TodoView.test.tsx | 11 +-
...-merge-toggle-blank.mobile-integration.test.tsx | 1 -
.../__tests__/navigation-history.test.tsx | 29 ++++-
.../dashboard/app/hooks/useMobileScrollLock.ts | 2 +-
packages/dashboard/app/hooks/useModalManager.ts | 10 --
packages/dashboard/app/hooks/useViewState.ts | 7 +-
24 files changed, 161 insertions(+), 481 deletions(-)
Fusion-Task-Id: FN-6829
Fusion-Task-Lineage: b4034bf2-b8e2-47ec-be7c-11c320d2fc44
2026-06-21 13:25:40 -07:00
Fusion
e518ce0b6c
feat(FN-3567): sync allowParallelExecution runtime toggle
...
Fixes FN-3567 by synchronizing the `allowParallelExecution` runtime toggle in the AgentDetailView component, adding one line to keep the setting in sync.
Fusion-Task-Id: FN-3567
2026-05-06 03:36:02 -07:00
Fusion
aea1396d34
feat(FN-3415): add todo documentation contract test
...
Adds a contract test for todo documentation in the core task store, covering the behavior documented in the system.
Fusion-Task-Id: FN-3415
2026-05-05 06:32:33 -07:00