gsxdsm
b599b6ab41
chore(release): v0.45.0
...
Version bump via changesets.
2026-06-23 01:07:59 -07:00
gsxdsm
5191e1f22d
FN-6911: defer Droid CLI startup probes
...
Defer Droid CLI validation and discovery so startup no longer spawns or hangs on droid.
- Register the Droid provider without boot-time validation or model discovery side effects.
- Trigger CLI validation only when a Droid stream starts and expose explicit model discovery.
- Add regression coverage for non-interactive droid process spawning and startup probe behavior.
- Add a patch changeset for the published Fusion CLI package.
Files changed:
.changeset/fn-6911-droid-cli-no-boot-spawn.md | 5 ++
.../commands/__tests__/droid-cli-extension.test.ts | 15 +++-
packages/droid-cli/index.ts | 33 ++++----
packages/droid-cli/src/__tests__/index.test.ts | 90 +++++++++-------------
.../src/__tests__/discover-models.test.ts | 7 +-
.../src/__tests__/probe.test.ts | 8 ++
.../src/__tests__/process-manager.test.ts | 74 ++++++++++++++++++
.../src/__tests__/startup-probes.test.ts | 5 +-
8 files changed, 160 insertions(+), 77 deletions(-)
Fusion-Task-Id: FN-6911
Fusion-Task-Lineage: ef4bc3df-bfe8-416a-b701-64f752faea30
2026-06-21 23:44:26 -07:00
gsxdsm
d99246cb74
FN-6834: use OS-available memory for system metrics
...
Use shared OS-available memory readings so macOS cache/inactive pages are not counted as used.
- Add a core available-memory helper that prefers `process.availableMemory()` and flags `freemem` fallback reliability.
- Route core metrics, dashboard system stats, and the dashboard TUI through the shared helper.
- Move and expand memory tests across core, dashboard routes, and verification coverage while documenting the telemetry behavior.
- Add a patch changeset for the published CLI package.
Files changed:
.changeset/fix-macos-memory-used.md | 5 ++
docs/architecture.md | 2 +-
docs/dashboard-guide.md | 2 +-
.../__tests__/available-memory.test.ts | 54 --------------
.../cli/src/commands/dashboard-tui/controller.ts | 37 +---------
.../core/src/__tests__/available-memory.test.ts | 83 ++++++++++++++++++++++
packages/core/src/__tests__/system-metrics.test.ts | 36 +++++++++-
packages/core/src/available-memory.ts | 32 +++++++++
packages/core/src/index.ts | 1 +
packages/core/src/system-metrics.ts | 9 ++-
.../dashboard/src/__tests__/routes-system.test.ts | 27 +++++++
packages/dashboard/src/routes.ts | 7 +-
.../src/__tests__/run-verification-command.test.ts | 18 +++++
13 files changed, 218 insertions(+), 95 deletions(-)
Fusion-Task-Id: FN-6834
Fusion-Task-Lineage: 2e651551-6c35-46d1-b517-535758c7ace2
2026-06-21 13:32:19 -07:00
gsxdsm
47ba99a25e
FN-6853: bump pi SDK packages
...
Update the pi SDK dependency family across Fusion packages and record a patch changeset.
- Bump @earendil-works/pi-ai and @earendil-works/pi-coding-agent to ^0.79.9 where used by CLI, dashboard, and engine packages.
- Refresh pnpm-lock.yaml to resolve the updated pi SDK dependency graph.
- Add a patch changeset for the published @runfusion/fusion package.
Files changed:
.changeset/fn-6853-pi-sdk-bump.md | 5 +
packages/cli/package.json | 4 +-
packages/dashboard/package.json | 2 +-
packages/engine/package.json | 4 +-
pnpm-lock.yaml | 285 +++++++++++++++++++++++++++-----------
5 files changed, 214 insertions(+), 86 deletions(-)
Fusion-Task-Id: FN-6853
Fusion-Task-Lineage: bc2dba95-b8c2-48d1-855d-847e6eec9606
2026-06-21 13:25:41 -07:00
gsxdsm
c18e827b90
FN-6839: await CLI cached store shutdown
...
Rescue the retained CLI quarantine by making TaskStore shutdown deterministic before fixture cleanup.
- Await cached extension TaskStore closes and clear the cache before asynchronous shutdown drains.
- Update CLI fixtures to await direct and cached store closure, with a regression proving cached close is awaited.
- Remove rescued CLI quarantine entries/excludes and document the loaded-suite rescue with a patch changeset.
Files changed:
.changeset/fn-6839-close-cached-stores.md | 5 ++
CLAUDE.md | 1 +
docs/testing.md | 4 ++
.../extension-agent-set-instructions.test.ts | 2 +-
.../__tests__/extension-goal-tools-audit.test.ts | 2 +-
.../cli/src/__tests__/extension-goal-tools.test.ts | 2 +-
.../cli/src/__tests__/extension-insights.test.ts | 6 +--
.../__tests__/extension-mission-goal-tools.test.ts | 2 +-
.../cli/src/__tests__/extension-task-tools.test.ts | 16 ++++---
packages/cli/src/__tests__/extension.test.ts | 56 +++++++++++-----------
.../src/__tests__/research-extension-tools.test.ts | 4 +-
packages/cli/src/extension.ts | 16 +++----
packages/cli/vitest.config.ts | 6 +--
scripts/lib/test-quarantine.json | 15 ------
14 files changed, 68 insertions(+), 69 deletions(-)
Fusion-Task-Id: FN-6839
Fusion-Task-Lineage: ea0c7c77-bb59-4db4-931d-5e052a1043e5
2026-06-21 09:00:40 -07:00
gsxdsm
4f9c4cf10d
Merge pull request #1701 from Runfusion/gsxdsm/compound-improve
...
fix: show plugin-contributed skills in the workflow editor
2026-06-21 02:36:43 -07:00
gsxdsm
42a1346d6c
fix: address engine startup review feedback
2026-06-21 02:15:24 -07:00
gsxdsm
91017050d4
fix: show plugin-contributed skills in the workflow editor
...
The dashboard's discovered-skills catalog was built only from the
disk-scanning package manager, so plugin-contributed skills (e.g.
compound-engineering ce-*) — which the engine materializes for executor
sessions separately — never appeared in the editor. Built-in workflow
nodes that reference them (builtin:compound-engineering) showed
"— select skill —" / unresolved.
- skills-adapter: merge plugin skill contributions into the discovered
list (deduped by bare name) via an optional getPluginSkills thunk;
add shared bareSkillName normalizer.
- wire getPluginSkills into all three server entry points: serve,
daemon, and dashboard (the UI-serving command — verified via live
end-to-end that omitting it left the editor catalog empty).
- node-summary + WorkflowNodeEditor: resolve namespaced skillNames
(compound-engineering:ce-work) against the catalog's two-segment
names (ce-work/SKILL.md) so nodes display and select the right skill.
Verified: dashboard + CLI typecheck, 136 dashboard tests, and a live
dashboard E2E (discovered skills 0→11; Plan node resolves to "ce-plan"
in both the canvas label and the inspector dropdown).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-21 00:05:03 -07:00
gsxdsm
7ef381762a
feat: start engines by default
2026-06-20 23:57:37 -07:00
gsxdsm
c0d78f19c5
FN-6795: update quarantine ledger after rescue triage
...
Refresh the test quarantine records after loaded-lane rescue verification.
- document the FN-6795 CLI and core quarantine triage outcomes
- rescue passing core and CLI test files by removing their ledger/config excludes
- retain CLI package-lane-only timeout quarantines and add the newly observed bin test flake
Files changed:
docs/testing.md | 4 ++++
packages/cli/vitest.config.ts | 10 +++++++---
packages/core/vitest.config.ts | 4 +++-
scripts/lib/test-quarantine.json | 25 +++++--------------------
4 files changed, 19 insertions(+), 24 deletions(-)
Fusion-Task-Id: FN-6795
Fusion-Task-Lineage: b4460fc7-848f-4d54-89b4-cfd4d4533d57
2026-06-20 10:28:25 -07:00
gsxdsm
259cdfb531
FN-6734: stabilize CLI extension test cleanup
...
Stabilize the CLI extension regression lane by closing cached stores before temp fixture removal.
- Close extension store caches and manually created TaskStore/AgentStore handles before deleting per-test fixture roots.
- Add a regression guard for the cached TaskStore close-before-remove invariant.
- Reduce oversized task-list truncation fixtures while preserving bounded-output assertions.
- Document the CLI affected-lane rescue pattern for store leaks, fixture sizing, and runtime-dist mocking order.
Files changed:
docs/testing.md | 4 +
.../extension-agent-set-instructions.test.ts | 3 +-
.../__tests__/extension-goal-tools-audit.test.ts | 3 +-
.../cli/src/__tests__/extension-goal-tools.test.ts | 3 +-
.../cli/src/__tests__/extension-insights.test.ts | 3 +-
.../__tests__/extension-mission-goal-tools.test.ts | 3 +-
packages/cli/src/__tests__/extension.test.ts | 221 +++++++++++++--------
.../src/__tests__/research-extension-tools.test.ts | 40 +++-
8 files changed, 186 insertions(+), 94 deletions(-)
Fusion-Task-Id: FN-6734
Fusion-Task-Lineage: efe91c0f-f84c-471c-8067-65a244b2aec7
2026-06-19 16:47:33 -07:00
gsxdsm
87f18f87ed
FN-6705: add plugin activation analytics
...
Record plugin activation events and expose them to Command Center analytics.
- Add plugin activation persistence, aggregation helpers, and exports.
- Record load/reload activation events through the plugin loader and store APIs.
- Surface plugin activation counts in the Command Center Ecosystem area and API route.
- Cover migrations, aggregation behavior, plugin loader recording, route auth, UI rendering, and quarantined flaky suites.
Files changed:
.changeset/fn-6705-plugin-activation-analytics.md | 5 +
docs/architecture.md | 2 +-
docs/dashboard-guide.md | 2 +-
packages/cli/vitest.config.ts | 8 +
packages/core/src/__tests__/db-migrate.test.ts | 34 ++---
packages/core/src/__tests__/db.test.ts | 59 ++++----
packages/core/src/__tests__/goals-schema.test.ts | 6 +-
packages/core/src/__tests__/insight-store.test.ts | 12 +-
.../src/__tests__/merge-request-record.test.ts | 3 +-
packages/core/src/__tests__/mission-store.test.ts | 6 +-
.../__tests__/plugin-activation-analytics.test.ts | 67 ++++++++
packages/core/src/__tests__/plugin-loader.test.ts | 168 ++++++++++++++++++++-
packages/core/src/__tests__/run-audit.test.ts | 6 +-
.../core/src/__tests__/store-merge-queue.test.ts | 3 +-
.../src/__tests__/store-plugin-activations.test.ts | 52 +++++++
packages/core/src/__tests__/task-documents.test.ts | 3 +-
packages/core/src/db.ts | 35 ++++-
packages/core/src/index.ts | 8 +
packages/core/src/plugin-activation-analytics.ts | 104 +++++++++++++
packages/core/src/plugin-loader.ts | 27 ++++
packages/core/src/store.ts | 24 ++-
packages/core/src/types.ts | 22 +++
packages/core/vitest.config.ts | 12 ++
.../command-center/areas/EcosystemArea.tsx | 40 +++--
.../command-center/areas/__tests__/areas.test.tsx | 52 ++++++-
.../register-command-center-routes.auth.test.ts | 1 +
.../register-command-center-routes.test.ts | 29 ++++
.../src/routes/register-command-center-routes.ts | 20 +++
.../src/store/__tests__/roadmap-store.test.ts | 9 +-
scripts/boot-smoke.mjs | 24 ++-
scripts/lib/test-quarantine.json | 55 +++++++
31 files changed, 799 insertions(+), 99 deletions(-)
Fusion-Task-Id: FN-6705
Fusion-Task-Lineage: 12ed6227-f935-4038-bbe9-a605a054850e
2026-06-19 16:47:33 -07:00
gsxdsm
70cce18c31
FN-6712: add managed agent instructions tool
...
Add a scoped extension tool for managers to update report instructions through AgentStore.
- Register fn_agent_set_instructions with validation, hierarchy authorization, and config-revision persistence.
- Cover direct, indirect, privileged, denied, missing-target, and field-clearing behaviors with CLI extension tests.
- Document the new agent-management tool in agent docs, Fusion skill references, and a published package changeset.
Files changed:
.changeset/fn-6712-agent-set-instructions-tool.md | 5 +
docs/agents.md | 12 ++
packages/cli/skill/fusion/SKILL.md | 2 +-
.../cli/skill/fusion/references/extension-tools.md | 10 +
.../skill/fusion/references/fusion-capabilities.md | 1 +
.../extension-agent-set-instructions.test.ts | 235 +++++++++++++++++++++
packages/cli/src/extension.ts | 94 +++++++++
7 files changed, 358 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6712
Fusion-Task-Lineage: 1fac1ff0-283d-4911-8fbf-f15c5de6b902
2026-06-19 07:41:44 -07:00
gsxdsm
4373946a07
chore(release): v0.44.0
...
Version bump via changesets.
2026-06-19 07:34:26 -07:00
gsxdsm
538bf42e32
fix(dev): rebuild core+engine+dashboard on dev/local startup + stale-dist check
...
pnpm dev/local dashboard prebuild now rebuilds @fusion/core and @fusion/engine alongside the dashboard UI (was client-only), and startup warns loudly when built dist/ is older than src/. Prevents the FN-6638 class where landed engine fixes silently never run because the process loads stale dist.
2026-06-18 13:41:37 -07:00
gsxdsm
0ed46d9007
FN-6640: expose planning task document tools
...
Expose planning-lane task document tools with chat-style explicit task targeting.
- Add task document read/write tools to both planning agent creation paths.
- Cover non-streaming and streaming planning tool assembly plus explicit task_id document behavior.
- Update agent docs and generated skill tool references for chat/planning parity.
- Add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-6640-planning-document-tools.md | 5 +
docs/agents.md | 2 +-
.../cli/skill/fusion/references/engine-tools.md | 4 +-
.../planning-document-tools-exposure.test.ts | 139 +++++++++++++++++++++
packages/dashboard/src/planning.ts | 7 ++
5 files changed, 154 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-6640
Fusion-Task-Lineage: 6a9225cf-fbe7-4a87-8927-e01355a38e92
2026-06-18 07:23:02 -07:00
gsxdsm
b1a2aeebf2
FN-6635: expose task document tools to chat agents
...
Expose task document read/write tools to dashboard chat agents with explicit task targeting.
- Add chat-specific fn_task_document_write/read factories that require task_id and reuse task document read behavior.
- Wire dashboard chat custom tools to include task document tools when a scoped task store is available.
- Cover chat document tool exposure and explicit-task document operations with engine and dashboard tests.
- Document chat availability and add a published package changeset.
Files changed:
.changeset/fn-6635-chat-task-documents.md | 5 +
docs/agents.md | 1 +
.../cli/skill/fusion/references/engine-tools.md | 4 +-
.../dashboard/src/__tests__/chat-manager.test.ts | 78 +++++++++++
packages/dashboard/src/chat.ts | 15 ++-
.../src/__tests__/agent-document-tools.test.ts | 108 +++++++++++++++
packages/engine/src/agent-tools.ts | 145 ++++++++++++++++-----
packages/engine/src/index.ts | 3 +
8 files changed, 318 insertions(+), 41 deletions(-)
Fusion-Task-Id: FN-6635
Fusion-Task-Lineage: 25e701d4-7670-470b-9dea-df49884f7b21
2026-06-18 07:06:00 -07:00
gsxdsm
673a8a64c3
FN-6630: return text for empty task-list columns
...
Ensure filtered fn_task_list calls always return host-safe text for empty target columns.
- Add explicit empty-state copy for column filters with no matching tasks.
- Keep formatter fallback output non-empty before returning tool content.
- Cover empty active-column filters and existing small listings in CLI extension tests.
- Add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-6630-task-list-empty-column.md | 5 ++++
packages/cli/src/__tests__/extension.test.ts | 36 +++++++++++++++++++++++++++-
packages/cli/src/extension.ts | 15 ++++++++++--
3 files changed, 53 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-6630
Fusion-Task-Lineage: e371bf11-5841-47d0-ac72-4cdf2f1716ba
2026-06-18 04:53:50 -07:00
gsxdsm
4929198b5a
FN-6629: Lower task-list text budget
...
Keep fn_task_list responses below host text imageification thresholds.\n\n- Lower the shared task-list text clamp to a 3,000 character host-safe budget.\n- Reuse the shared budget in CLI, dashboard, and engine fallback formatters.\n- Cover realistic column-filtered fn_task_list outputs and fallback budget behavior with regression tests.\n- Add a patch changeset for the published Fusion package.\n\nFiles changed:\n .changeset/fn-6629-task-list-budget.md | 5 ++\n packages/cli/src/__tests__/extension.test.ts | 88 ++++++++++++++++++++++\n packages/cli/src/extension.ts | 7 +-\n .../core/src/__tests__/task-list-format.test.ts | 25 ++++++\n packages/core/src/task-list-format.ts | 5 +-\n .../src/__tests__/planning-board-tools.test.ts | 4 +-\n packages/dashboard/src/planning-board-tools.ts | 8 +-\n packages/engine/src/__tests__/triage.test.ts | 4 +-\n packages/engine/src/triage.ts | 7 +-\n 9 files changed, 144 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-6629
Fusion-Task-Lineage: 6ec7cd33-d4e5-4c12-8512-c3823a9dfb3e
2026-06-18 03:24:57 -07:00
gsxdsm
4dd533753e
FN-6626: close cached CLI extension task stores
...
Close cached TaskStore handles so CLI extension task-tool tests shut down cleanly.\n\n- Add deterministic cached-store shutdown for the CLI extension and invoke it from extension teardown.\n- Expose the shutdown helper for tests and call it after canonical-project-root task-tool cases.\n- Add a patch changeset for the published @runfusion/fusion package.\n\nFiles changed:\n .changeset/fn-6626-close-cached-stores.md | 5 +++++\n .../cli/src/__tests__/extension-task-tools.test.ts | 8 ++++++++\n packages/cli/src/extension.ts | 19 ++++++++++++++++++-\n 3 files changed, 31 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6626
Fusion-Task-Lineage: 65791502-8992-4037-8ca0-fe21c8283506
2026-06-18 02:39:10 -07:00
gsxdsm
d3ea8dff33
FN-6627: guard dist-barrel tests on complete core dist
...
Align dist-barrel regression guards so partial @fusion/core dist artifacts skip instead of failing mismatched dependency checks.
- Add a shared @fusion/test-utils predicate for complete built core dist barrels.
- Use the predicate in CLI and core dist-barrel regression tests before importing runtime dist modules.
- Cover absent and partial dist directories with focused predicate tests.
Files changed:
packages/cli/src/__tests__/extension.test.ts | 9 +++--
.../src/__test-utils__/__tests__/core-dist.test.ts | 46 ++++++++++++++++++++++
packages/core/src/__test-utils__/workspace.ts | 11 ++++++
.../core/src/__tests__/task-list-format.test.ts | 17 ++++----
4 files changed, 72 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-6627
Fusion-Task-Lineage: a05ad009-229d-44c2-a49d-2d9b3f3d6094
2026-06-18 01:45:18 -07:00
gsxdsm
c623b5108f
FN-6624: document fn_ask_question engine tool
...
Keep the Fusion skill engine-tool reference aligned with the registered chat question tool.\n\n- Add fn_ask_question to engine-tools.md with its chat scope and question schema.\n- Improve the skill-sync drift assertion so missing engine tools are reported directly.\n\nFiles changed:\n packages/cli/skill/fusion/references/engine-tools.md | 2 ++\n packages/cli/src/__tests__/skill-sync.test.ts | 6 +++++-\n 2 files changed, 7 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6624
Fusion-Task-Lineage: 94917a44-cdf0-4da1-bb59-f3a7526ed48a
2026-06-18 00:26:48 -07:00
gsxdsm
0767d1bf81
FN-6616: generalize bundled plugin freshness guard
...
Generalize stale-artifact detection so all staged bundled CLI plugins are checked consistently.
- Add reusable bundled plugin freshness helpers and coverage for missing, fresh, and stale artifact cases.
- Centralize staged bundled plugin id lists for runtime bundling and staged raw-src plugin checks.
- Assert tsup output leaves every staged bundled plugin loadable and document the broader freshness guard.
- Add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-6616-bundled-plugin-freshness.md | 5 +
docs/PLUGIN_AUTHORING.md | 8 ++
.../__tests__/bundled-plugin-freshness.test.ts | 75 +++++++++++++
.../cli/src/plugins/bundled-plugin-freshness.ts | 118 +++++++++++++++++++++
.../cli/src/plugins/staged-bundled-plugin-ids.ts | 22 ++++
packages/cli/tsup.config.ts | 41 ++++---
6 files changed, 257 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-6616
Fusion-Task-Lineage: 3804827b-8f64-4268-a7bb-31a4b4ca9a87
2026-06-17 20:45:32 -07:00
gsxdsm
a013bc0309
FN-6607: align step tools with zero-based prompt steps
...
Align executor step tools and review bookkeeping with the 0-based Step N labels agents see in PROMPT.md.
- Treat fn_task_update and fn_review_step step parameters as 0-indexed values, including validation, logs, checkpoints, and review verdict maps.
- Update executor/reviewer/step-runner guidance and generated tool docs to describe Step 0 semantics consistently.
- Adjust affected executor and reliability tests and add coverage proving Step 0 progress, review, and revise handling work without off-by-one shifts.
- Add a patch changeset for the published Fusion CLI package.
Files changed:
.changeset/fn-6607-step-numbering.md | 5 +
.../cli/skill/fusion/references/engine-tools.md | 4 +-
.../engine/src/__tests__/executor-pause.test.ts | 2 +-
.../executor-review-step-indexing.test.ts | 18 +-
.../src/__tests__/executor-review-verdicts.test.ts | 18 +-
.../executor-step-numbering-zero-based.test.ts | 196 +++++++++++++++++++++
.../src/__tests__/executor-step-session.test.ts | 24 ++-
...executor-task-done-revise-verdict-guard.test.ts | 4 +-
.../executor-pending-review-skip-retry.test.ts | 8 +-
.../task-done-refusal-x-invariant.test.ts | 2 +-
packages/engine/src/__tests__/step-runner.test.ts | 4 +-
packages/engine/src/executor.ts | 57 +++---
packages/engine/src/reviewer.ts | 3 +
packages/engine/src/step-runner.ts | 6 +-
14 files changed, 284 insertions(+), 67 deletions(-)
Fusion-Task-Id: FN-6607
Fusion-Task-Lineage: 1b1fb1d8-07ca-4a33-84f5-1dab83388c01
2026-06-17 19:52:20 -07:00
gsxdsm
4c3186d0d1
FN-6615: prefer fresh plugin source over stale dist
...
Plugin entry resolution now avoids stale gitignored dist output in dev worktrees.
- Prefer bundled plugin entries when present, preserving published tarball behavior.
- Choose src/index.ts over dist/index.js when source files are newer than dist output.
- Cover CLI and core plugin loaders with freshness and sync tests.
- Add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-6615-prefer-fresh-src.md | 5 ++
.../__tests__/bundled-plugin-install.test.ts | 46 ++++++++---
.../resolve-plugin-entry-path-sync.test.ts | 50 ++++++++++--
packages/cli/src/plugins/bundled-plugin-install.ts | 93 ++++++++++++++++++----
packages/core/src/__tests__/plugin-loader.test.ts | 71 ++++++++++++++++-
packages/core/src/plugin-loader.ts | 93 ++++++++++++++++++----
6 files changed, 313 insertions(+), 45 deletions(-)
Fusion-Task-Id: FN-6615
Fusion-Task-Lineage: 3d9abfa8-a405-47fa-8330-451c26a0ee75
2026-06-17 19:46:47 -07:00
gsxdsm
593ebac85c
FN-6573: guard task-list formatter resolution
...
Make fn_task_list surfaces tolerate stale core runtimes without crashing.
- Resolve formatTaskListText from the runtime @fusion/core namespace with a typeof guard.
- Add bounded inline fallback formatting for CLI, dashboard planning-board, and engine triage task-list tools.
- Cover missing formatter exports with regression tests and add a published package changeset.
Files changed:
.changeset/fn-6573-task-list-format-resolve-fix.md | 5 +++
packages/cli/src/__tests__/extension.test.ts | 25 +++++++++------
packages/cli/src/extension.ts | 36 ++++++++++++++++++++--
.../src/__tests__/planning-board-tools.test.ts | 27 +++++++++++++++-
packages/dashboard/src/planning-board-tools.ts | 36 ++++++++++++++++++++--
packages/engine/src/__tests__/triage.test.ts | 25 +++++++++++++++
packages/engine/src/triage.ts | 36 ++++++++++++++++++++--
7 files changed, 174 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-6573
Fusion-Task-Lineage: 64577f09-5ca5-426e-a453-a91e6c2c3aee
2026-06-17 14:52:55 -07:00
gsxdsm
a84a8e1793
FN-6570: guard task list formatting fallback
...
Prevent fn_task_list surfaces from crashing when the runtime core namespace lacks the clamp export.
- Add a shared defensive task-list formatter with a bounded fallback clamp.
- Route CLI, dashboard planning-board, and engine triage fn_task_list output through the formatter.
- Cover missing, throwing, and non-string clamp behavior in core and CLI tests.
- Document the resilient task-list formatting behavior and add a patch changeset.
Files changed:
.changeset/fn-6570-task-list-resolve-fix.md | 5 ++
docs/cli-reference.md | 2 +-
packages/cli/src/__tests__/extension.test.ts | 57 +++++++++++++++++++++-
packages/cli/src/extension.ts | 8 ++-
.../core/src/__tests__/task-list-format.test.ts | 49 ++++++++++++++++++-
packages/core/src/index.ts | 2 +-
packages/core/src/task-list-format.ts | 35 +++++++++++++
packages/dashboard/src/planning-board-tools.ts | 8 ++-
packages/engine/src/triage.ts | 8 ++-
9 files changed, 164 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-6570
Fusion-Task-Lineage: 455f38a8-5e4f-4643-a3ce-088ef0c92b01
2026-06-17 06:14:10 -07:00
gsxdsm
8e9b7b75a4
FN-6534: track docs screenshots
...
Restore the screenshot assets that published docs reference so rendered documentation no longer shows broken images.
- Keep docs/screenshots trackable by removing the blanket ignore rule.
- Add the referenced screenshot PNG assets under docs/screenshots.
- Add a regression test that verifies screenshot Markdown links resolve to tracked files.
Files changed:
.gitignore | 2 +-
docs/screenshots/agents-view.png | Bin 0 -> 88902 bytes
docs/screenshots/chat-view.png | Bin 0 -> 74669 bytes
docs/screenshots/dashboard-overview.png | Bin 0 -> 209599 bytes
docs/screenshots/documents-view.png | Bin 0 -> 37607 bytes
docs/screenshots/git-manager.png | Bin 0 -> 135486 bytes
docs/screenshots/list-view.png | Bin 0 -> 108702 bytes
docs/screenshots/mailbox-view.png | Bin 0 -> 72370 bytes
docs/screenshots/memory-view.png | Bin 0 -> 118122 bytes
docs/screenshots/mission-manager.png | Bin 0 -> 80643 bytes
docs/screenshots/nodes-view.png | Bin 0 -> 59576 bytes
docs/screenshots/roadmaps-view.png | Bin 0 -> 37828 bytes
docs/screenshots/settings.png | Bin 0 -> 131052 bytes
docs/screenshots/skills-view.png | Bin 0 -> 92259 bytes
docs/screenshots/task-detail.png | Bin 0 -> 171502 bytes
docs/screenshots/terminal.png | Bin 0 -> 70273 bytes
docs/screenshots/workflow-steps.png | Bin 0 -> 179100 bytes
.../src/__tests__/docs-screenshot-links.test.ts | 96 +++++++++++++++++++++
18 files changed, 97 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6534
Fusion-Task-Lineage: a0840905-8eb5-4da0-8c52-56904ac82e04
2026-06-17 03:42:03 -07:00
gsxdsm
d17a6dbd74
FN-6535: harden task list dist runtime coverage
...
Add regression coverage that exercises fn_task_list through the built @fusion/core dist exports.
- Expand core task-list formatting tests from export checks to a runtime-shaped fn_task_list execution path.
- Add a CLI extension regression test that mocks @fusion/core to the built dist barrel before executing fn_task_list.
- Cover broad and filtered task-list truncation paths with dependency rendering to catch missing clampTaskListText exports.
Files changed:
packages/cli/src/__tests__/extension.test.ts | 82 ++++++++++++++-
.../core/src/__tests__/task-list-format.test.ts | 110 ++++++++++++++++++++-
2 files changed, 190 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6535
Fusion-Task-Lineage: dd405811-5655-406d-92e6-53f0e35ac217
2026-06-17 02:50:29 -07:00
gsxdsm
177cce4059
FN-6515: guard task list formatting exports
...
Add regression coverage for task-list formatter exports and broad list clamping.\n\n- Verify @fusion/core source and built dist barrels expose task-list formatting helpers.\n- Cover broad fn_task_list output clamping as one plain-text block.\n- Document the built-dist guard expectation for runtime-consumed core exports.\n\nFiles changed:\n docs/testing.md | 2 ++\n packages/cli/src/__tests__/extension.test.ts | 35 ++++++++++++++++++++++\n .../core/src/__tests__/task-list-format.test.ts | 32 ++++++++++++++++++++\n 3 files changed, 69 insertions(+)
Fusion-Task-Id: FN-6515
Fusion-Task-Lineage: b19dd616-6b5a-4b8a-8909-f368459fdc53
2026-06-16 23:32:38 -07:00
gsxdsm
cc5c5eb7bd
FN-6520: document workflow editor
...
Add a canonical dashboard workflow editor guide and connect it from related docs.
- Add a new Workflow Editor guide covering entry points, canvas anatomy, authoring panels, settings values, templates, AI design, import/export, and mobile behavior.
- Link the guide from the docs index, settings reference, and Workflow IR overview.
- Require the workflow editor guide in the docs README index coverage test.
Files changed:
docs/README.md | 1 +
docs/settings-reference.md | 2 +-
docs/workflow-editor.md | 158 +++++++++++++++++++++
docs/workflow-steps.md | 2 +-
.../cli/src/__tests__/docs-readme-index.test.ts | 1 +
5 files changed, 162 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6520
Fusion-Task-Lineage: 9a2525a5-6ff8-48de-ae13-a7c7c5844f99
2026-06-16 22:52:00 -07:00
gsxdsm
0db81349bb
FN-6492: clamp task list text output
...
Bound fn_task_list responses now stay as plain text across board-tool surfaces.\n\n- Add a shared task-list text clamp with an explicit truncation marker.\n- Route CLI, dashboard planning-board, and engine triage task-list output through the shared formatter.\n- Cover bounded and column-filtered output with core and CLI regression tests.\n- Record the patch changeset and quarantine the observed engine CLI executor flake.\n\nFiles changed:\n .changeset/fn-6492-task-list-text-bound.md | 5 ++\n packages/cli/src/__tests__/extension.test.ts | 79 +++++++++++++++++++++-\n packages/cli/src/extension.ts | 7 +-\n .../core/src/__tests__/task-list-format.test.ts | 75 ++++++++++++++++++++\n packages/core/src/index.ts | 1 +\n packages/core/src/task-list-format.ts | 45 ++++++++++++\n packages/dashboard/src/planning-board-tools.ts | 8 ++-\n packages/engine/src/triage.ts | 7 +-\n packages/engine/vitest.config.ts | 5 ++\n scripts/lib/test-quarantine.json | 5 ++\n 10 files changed, 232 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-6492
Fusion-Task-Lineage: 8b347efb-bc17-4bbe-937c-4f07c63df318
2026-06-16 19:31:33 -07:00
gsxdsm
3158e9c6c7
FN-6491: reserve s for agent start in TUI
...
Keep the Agents view focused when starting the selected agent from the dashboard TUI.
- Treat `s` as the selected-agent start command inside the Agents interactive view.
- Preserve `m` as the universal Main/status shortcut and keep the `s` alias outside Agents.
- Add regression coverage for Agents, non-Agents, status, and empty Agents shortcut behavior.
- Add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-6491-tui-agents-start-key.md | 5 +
.../commands/dashboard-tui/__tests__/app.test.tsx | 102 ++++++++++++++++++++-
packages/cli/src/commands/dashboard-tui/app.tsx | 9 +-
3 files changed, 112 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6491
Fusion-Task-Lineage: 82a9acab-6e4a-400c-80ee-54d051245b57
2026-06-16 17:56:09 -07:00
gsxdsm
a38752c6bb
FN-6486: rescue quarantined flaky tests
...
Rescue the same-day core and CLI flaky quarantines by fixing their fixture seams instead of appeasing timeouts.
- Make the core concurrent-write lock helper release synchronously inside its child process so package load cannot delay the transient lock release.
- Close real CLI TaskStore fixtures before removing temp roots and switch mock cleanup to non-hoisted unmocking.
- Remove both test files from package quarantine excludes and clear the quarantine ledger while documenting the rescue pattern.
Files changed:
docs/testing.md | 2 ++
packages/cli/src/__tests__/extension-task-tools.test.ts | 17 +++++++++++++----
packages/cli/vitest.config.ts | 4 +++-
.../core/src/__tests__/store-concurrent-writes.test.ts | 8 +++++++-
packages/core/vitest.config.ts | 4 +++-
scripts/lib/test-quarantine.json | 13 +------------
6 files changed, 29 insertions(+), 19 deletions(-)
Fusion-Task-Id: FN-6486
Fusion-Task-Lineage: c90358c4-0549-4c68-8d17-2e2a336433b5
2026-06-16 15:08:24 -07:00
gsxdsm
589c8e8045
FN-6483: quarantine flaky CLI extension task tests
...
Quarantine the load-sensitive CLI extension task tools suite instead of widening Vitest timeouts.
- Add the extension task tools test file to the CLI Vitest quarantine exclude list.\n- Record the FN-6483 quarantine evidence in the deletion-ratchet ledger while preserving the existing core quarantine entry.\n\nFiles changed:\n packages/cli/vitest.config.ts | 5 +++++\n scripts/lib/test-quarantine.json | 5 +++++\n 2 files changed, 10 insertions(+)
Fusion-Task-Id: FN-6483
Fusion-Task-Lineage: 4a3be3b4-b2b4-4e05-afd0-564aa0d28c68
2026-06-16 15:08:24 -07:00
gsxdsm
601a85b7c9
FN-6474: clarify plugin tarball install docs
...
Clarifies packaged external plugin proof-point docs so tarballs are extracted before installation.
- Document that fn plugin install accepts built plugin directories or installed package names, not raw .tgz archives.
- Update external plugin proof-point and authoring guidance to extract pnpm pack output and install ./package.
- Add a static regression test guarding the runbook and authoring guide against raw tarball install instructions.
Files changed:
docs/cli-reference.md | 1 +
docs/plugins/external-authoring.md | 2 +-
docs/plugins/external-proof-point-runbook.md | 10 +++++-
.../external-proof-point-runbook-install.test.ts | 40 ++++++++++++++++++++++
4 files changed, 51 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6474
Fusion-Task-Lineage: 744d43ff-ed98-43a1-9cb9-e25f96225ab7
2026-06-16 15:08:24 -07:00
gsxdsm
de8f871b4d
FN-6479: index upstream ACP MCP forwarding doc
...
Index the upstream ACP MCP forwarding sponsorship doc so the docs README and CLI index test keep it discoverable.
- Add the upstream ACP MCP passthrough and permission forwarding sponsorship doc link under Audit Reports.
- Add the upstream doc to the required docs README index coverage.
- Guard that CLI Printing Press docs remain indexed in Audit Reports only, not duplicated under Plugins.
Files changed:
docs/README.md | 5 +++++
.../cli/src/__tests__/docs-readme-index.test.ts | 21 +++++++++++++++++++++
2 files changed, 26 insertions(+)
Fusion-Task-Id: FN-6479
Fusion-Task-Lineage: f23afeba-a989-4552-8857-fe2984df6081
2026-06-15 02:30:41 -07:00
gsxdsm
863ebfaa96
FN-6464: add CLI session relaunch route
...
Enable exhausted CLI sessions to request a fresh task-backed relaunch from the dashboard.
- Add an authenticated project-scoped relaunch endpoint for task-bound CLI sessions.\n- Wire relaunch intent through the dashboard server to clear resume linkage and re-enqueue the owning task.\n- Enable the session banner Relaunch fresh action and cover API, UI, transport, and runtime wiring behavior.\n- Document the CLI session action contract and add a published package changeset.\n\nFiles changed:\n .changeset/fn-6464-cli-relaunch-route.md | 5 ++
docs/agents.md | 4 +
packages/cli/src/commands/dashboard.ts | 2 +
packages/dashboard/app/App.tsx | 20 +++--
.../app/__tests__/app-cli-action-wiring.test.tsx | 31 +++++++-
packages/dashboard/app/api/legacy.ts | 7 ++
.../__tests__/SessionNotificationBanner.test.tsx | 52 ++++++++++---
.../src/__tests__/cli-agent-runtime-wiring.test.ts | 49 +++++++++++-
.../src/__tests__/cli-session-transport.test.ts | 36 +++++++++
.../src/__tests__/cli-sessions-routes.test.ts | 50 +++++++++++-
packages/dashboard/src/cli-session-transport.ts | 38 +++++++++
packages/dashboard/src/index.ts | 3 +-
packages/dashboard/src/routes/cli-sessions.ts | 26 ++++++-
packages/dashboard/src/server.ts | 89 ++++++++++++++++++++++
14 files changed, 390 insertions(+), 22 deletions(-)
Fusion-Task-Id: FN-6464
Fusion-Task-Lineage: f1ce171b-84a7-4893-9288-e1c8f01c3305
2026-06-15 02:30:41 -07:00
gsxdsm
f80b301af2
chore(release): v0.43.1
...
Version bump via changesets.
2026-06-14 22:43:49 -07:00
gsxdsm
fa71525850
FN-6438: add external plugin proof-point runbook
...
Add a durable proof-point runbook for validating external plugins against released Fusion CLI builds.
- Document release selection, npm integrity capture, scaffold/build/test/install/enable validation, and pass/fail criteria for external plugin proof points.
- Link the runbook from the docs index so it remains discoverable with other plugin authoring docs.
- Extend the docs README index test to require the new proof-point runbook entry.
Files changed:
docs/README.md | 1 +
docs/plugins/external-proof-point-runbook.md | 211 +++++++++++++++++++++
.../cli/src/__tests__/docs-readme-index.test.ts | 1 +
3 files changed, 213 insertions(+)
Fusion-Task-Id: FN-6438
Fusion-Task-Lineage: 5c768d7e-4465-42ac-9535-f16dc42ab6d0
2026-06-14 15:29:35 -07:00
gsxdsm
8caced6b57
FN-6436: remove CLI Vitest timeout appeasement
...
Remove the CLI extension integration suite's hidden Vitest timeout override while keeping its explicit build-only allowance.
- Replace the file-wide 30s Vitest test and hook timeout override with a scoped comment documenting default caps.
- Derive the extension bundle path from the CLI root in the test file.
- Use a SQLite collision trigger instead of a TaskStore prototype spy and fix the agent delete tool payload.
- Clear the timeout appeasement allowlist now that the CLI test exemption is gone.
Files changed:
.../src/__tests__/extension-integration.test.ts | 25 ++++++++++++++++------
.../lib/test-timeout-appeasement-allowlist.json | 8 +------
2 files changed, 20 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-6436
Fusion-Task-Lineage: 670f41ea-f98f-400c-aa16-6a1cbb1e9bea
2026-06-14 15:29:35 -07:00
gsxdsm
d7430800e2
FN-6431: remove provider settings timeout appeasement
...
Keep provider-settings tests on Vitest's default timeout after fixture isolation fixes.
- Remove the file-wide 30s Vitest timeout override from provider-settings tests.
- Document why the synchronous temp-workspace checks must remain under the default timeout.
Files changed:
.../cli/src/commands/__tests__/provider-settings.test.ts | 13 +++++--------
1 file changed, 5 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-6431
Fusion-Task-Lineage: 4e18795d-4cbb-4af7-92f7-8368cec95c37
2026-06-14 15:29:35 -07:00
gsxdsm
59f2596c61
FN-6435: add plugin scaffold state
...
Ensure generated plugin scaffolds include the FusionPlugin state required by the SDK contract.
- Add state: "installed" to workspace and standalone plugin scaffold outputs.
- Cover scaffold output with tests and a compile-time FusionPlugin fixture.
- Document the state field in plugin authoring guidance and add a patch changeset.
Files changed:
.changeset/FN-6435-plugin-scaffold-state.md | 9 +++++++
docs/PLUGIN_AUTHORING.md | 2 ++
packages/cli/src/__tests__/plugin-scaffold.test.ts | 22 ++++++++++++++--
packages/cli/src/commands/plugin-scaffold.ts | 5 ++++
.../type-guards/plugin-scaffold-fusion-plugin.ts | 30 ++++++++++++++++++++++
5 files changed, 66 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6435
Fusion-Task-Lineage: 8c7e2f5d-9dd4-4058-aef9-11d6ff0ba5e0
2026-06-14 15:29:35 -07:00
gsxdsm
2fc6d4d667
FN-6430: rescue CLI quarantine tests
...
Rescue the quarantined CLI suites by fixing shared test isolation instead of extending timeouts.
- Remove rescued CLI files from the quarantine ledger and Vitest exclude list while preserving an empty rescue ledger comment.
- Tighten Vitest HOME isolation to reject inherited worker homes and sweep legacy top-level fn-test-home roots with bounded cleanup.
- Reset affected CLI fixtures, close research stores, and narrow the slow mission store seam so rescued tests run on default timeouts.
- Document the CLI shared-fixture rescue pattern for future quarantine recoveries.
Files changed:
docs/testing.md | 2 +
.../cli/src/__tests__/extension-task-tools.test.ts | 7 +-
packages/cli/src/__tests__/extension.test.ts | 117 +++++++++----------
.../cli/src/commands/__tests__/mission.test.ts | 16 ++-
packages/cli/src/commands/__tests__/plugin.test.ts | 5 +
packages/cli/vitest.config.ts | 52 ++-------
packages/core/src/__test-utils__/vitest-setup.ts | 25 ++++-
.../core/src/__test-utils__/vitest-teardown.ts | 28 ++++-
.../vitest-teardown-worker-root-cleanup.test.ts | 15 +++
scripts/lib/test-quarantine.json | 124 +--------------------
10 files changed, 157 insertions(+), 234 deletions(-)
Fusion-Task-Id: FN-6430
Fusion-Task-Lineage: 943b73b4-5f92-4703-8e93-0ae3207eb63c
2026-06-14 15:29:35 -07:00
gsxdsm
4482425d4b
chore(release): v0.43.0
...
Version bump via changesets.
2026-06-14 00:43:13 -07:00
gsxdsm
f54100b67e
FN-6427: document CLI quarantine triage
...
Document the current CLI quarantine decision so the deletion ratchet stays explicit.
- Record that all 24 quarantined CLI Vitest suites were re-triaged and kept in-window.\n- Capture the direct-run evidence and package-load rescue rationale in the CLI Vitest config.\n- Preserve the existing quarantine list without adding or removing suites.\n\nFiles changed:\n packages/cli/vitest.config.ts | 4 ++++\n 1 file changed, 4 insertions(+)
Fusion-Task-Id: FN-6427
Fusion-Task-Lineage: 30e4ccc7-97d3-4aa1-838c-dcb35f2734f1
2026-06-13 23:59:06 -07:00
gsxdsm
aa71ace101
fix(auth): refresh expired Claude OAuth tokens
...
Refresh stored Claude OAuth credentials before reporting dashboard auth status or resolving model auth so users do not need to repeatedly re-login after access-token expiry.
Coalesce concurrent refresh attempts, prevent stale refreshes from overwriting newer logins, and route CLI dashboard/serve/daemon/onboard auth wiring through the shared refresh-capable storage.
2026-06-13 23:20:06 -07:00
gsxdsm
b1ba87e599
FN-6414: preserve built-in Z.ai models after extensions
...
Keep GLM-5.2 visible when user Z.ai extensions replace the provider registration.
- Add shared helpers to clone and register the built-in Z.ai provider safely.
- Re-merge missing built-in Z.ai models after extension provider registration in daemon, serve, dashboard, and pi flows.
- Cover provider replacement behavior in core and dashboard model route tests, and document the extension-preserving behavior.
Files changed:
.changeset/FN-6414-glm-5-2-visible.md | 5 ++
docs/settings-reference.md | 2 +-
packages/cli/src/commands/daemon.ts | 12 +--
packages/cli/src/commands/dashboard.ts | 12 +--
packages/cli/src/commands/serve.ts | 12 +--
packages/core/src/__tests__/zai-provider.test.ts | 33 +++++++-
packages/core/src/index.ts | 7 +-
packages/core/src/zai-provider.ts | 93 +++++++++++++++++++++
...register-model-routes-zai-real-registry.test.ts | 97 ++++++++++++++++++++++
packages/engine/src/pi.ts | 12 +--
10 files changed, 250 insertions(+), 35 deletions(-)
Fusion-Task-Id: FN-6414
Fusion-Task-Lineage: f0990da2-968d-4782-8c00-fbc350d6954f
2026-06-13 21:17:20 -07:00
gsxdsm
ffaef67549
FN-6421: quarantine flaky CLI integration tests
...
Quarantine load-sensitive CLI vitest suites instead of widening default test timeouts.
- Add extension agent provisioning and serve suites to the CLI vitest quarantine list.
- Record quarantine ledger entries with standalone pass evidence and deletion-clock dates.
- Keep FNXC rationale next to the excluded CLI tests for future cleanup.
Files changed:
packages/cli/vitest.config.ts | 6 ++++++
scripts/lib/test-quarantine.json | 10 ++++++++++
2 files changed, 16 insertions(+)
Fusion-Task-Id: FN-6421
Fusion-Task-Lineage: de6db6a5-aad7-4e25-9bf4-7734dc6d8d05
2026-06-13 20:15:54 -07:00
gsxdsm
066c919ace
test: quarantine slow and flaky test lanes
...
Move observed load-sensitive and slow tests out of the default lanes per the deletion-ratchet policy, keep the quarantine ledger in sync, and preserve corrupt databases when recovery fails during verification.
2026-06-13 19:22:00 -07:00