gsxdsm
94da14cd81
fix: lazy-load esbuild via createRequire (jsdom-safe engine import) + lint cleanup of dead helpers
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 13:19:55 -07:00
gsxdsm
7076dd4516
feat(sdk,dashboard,docs): U9 — save-time code validation route, SDK type exports, skill doc, step-inversion docs + changeset
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 13:15:50 -07:00
gsxdsm
60e9938f5a
feat(core,engine): U7 — builtin stepwise coding workflow + trajectory parity & invariant suite; agent-tool surfaces for custom fields and IR authoring
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 13:15:49 -07:00
gsxdsm
af7c141976
feat(engine): U10 — parallel step execution: dependency scheduler, per-instance worktrees, ordered integration, conflict→rework (KTD-11)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 13:04:15 -07:00
gsxdsm
e87e745379
feat(dashboard): WorkflowFieldsPanel — field-definition authoring with live badge preview (U13 completion)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 12:44:43 -07:00
gsxdsm
14758f8edb
feat(engine): U12e+U14 — parse-steps node handler, plugin parser adapter, code node runner (esbuild + child-process harness)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 12:44:43 -07:00
gsxdsm
5fa5740afc
feat(dashboard,cli): U13 — schema-driven task fields UI (TaskFieldsSection, card badges, PATCH route, board-workflows fields payload, TUI chips)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 12:26:05 -07:00
gsxdsm
2cfa8a3282
feat(engine,core): U5+U6+U12core — step-review verdict handler, graph-source projection discipline, pluggable step-parser registry
...
- step-review node: reviewStep seam, verdict→outcome edges, UNAVAILABLE limiter, rethink reset-on-rework, split-branch advisory-only
- updateStep source:'graph': dependency-order done guard, audit-loud suppression, auto-reinit bypass; projection-first ordering
- runGraphTaskStep: per-step step-session physics pinned for graph-owned runs (closes U3 interim)
- step-parsers.ts registry (step-headings byte-identical move + json-steps), store delegates via registry
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 12:26:05 -07:00
gsxdsm
a5023e0284
feat(core): U11 — custom task fields validation authority, orphan-not-delete reconciliation, coerce gate
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 12:03:29 -07:00
gsxdsm
a782e5c04c
feat(engine): U3 — foreach expansion, iterative instance sub-walk, bounded rework cycles, step-execute seam
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 12:03:29 -07:00
gsxdsm
ad5cd579be
feat(dashboard): U8 — node editor authoring for foreach/step-review/parse-steps/code, rework edge inspector, template round-trip
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 11:50:45 -07:00
gsxdsm
0a3cc50f6f
feat(core): U4-core — schema v108 (workflow_run_step_instances + tasks.customFields), instance CRUD trio, literal sweep
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 11:50:45 -07:00
gsxdsm
3d03505a62
feat(engine): U2 — runTaskStep/resetStepToBaseline substrate seams with blast-radius guard (RETHINK extraction)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 11:50:45 -07:00
gsxdsm
2a3c285bae
feat(core): U1 — IR foreach/step-review/parse-steps/code kinds, rework edges, dependsOn parsing (FN step-inversion)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 11:33:33 -07:00
gsxdsm
0257bdf9d6
fix(ci): align tests/docs with issue-fix commits (recoveryRehome args, pi-ai mock Unknown/Record, new agent tools doc, hex-pattern comment reword)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 10:56:47 -07:00
gsxdsm
0b1c8fb56b
fix(ci): widen Column to ColumnId in plugins + drop unused import after #1403 widening
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 08:40:10 -07:00
gsxdsm
afc72b6bb0
fix(core): widen Task.column to ColumnId across packages; v1-preserving IR persistence for rollback safety ( #1403 #1405 )
2026-06-04 08:00:33 -07:00
gsxdsm
cfc9bb5fd5
fix(core): shared workflow-IR resolver, prod branch persistence + pruning, latest-run JOIN, sweep reservation-leak fix ( #1402 #1407 #1412 #1413 )
2026-06-04 07:34:02 -07:00
gsxdsm
45ce189548
fix(core): transitionPending recovery sweep, flag-off evacuation, recoveryRehome on self-healing moves ( #1401 #1409 #1411 )
2026-06-04 07:14:41 -07:00
gsxdsm
010976cee2
test: promote/board-workflows routes, concurrent sweep, canDropTask, migration forward paths ( #1404 #1414 #1415 #1416 #1417 )
2026-06-04 07:12:46 -07:00
gsxdsm
c21485a65a
feat(engine): agent-native workflow tools — promote, reconcile-aware select, CRUD, trait catalog ( #1408 )
2026-06-04 07:03:53 -07:00
gsxdsm
571768f03a
fix(dashboard): workflow:updated SSE invalidation + inline capacity feedback clears on task changes ( #1406 , #1410 )
2026-06-04 07:03:43 -07:00
gsxdsm
b446403ea6
fix(ci): bump remaining schema-version assertions to 107
2026-06-04 04:58:04 -07:00
gsxdsm
d9b5bb4b4e
fix(ci): spread real @fusion/core into partial test mocks; deterministic editor save test
2026-06-04 04:32:46 -07:00
gsxdsm
65c915bb36
fix(ci): lane columns snap-align center per mobile scroll-snap convention
2026-06-04 03:52:45 -07:00
gsxdsm
e711e6e0fd
fix(ci): schema-version literal, CLI core-mock spreads, plugin-sdk type-only exports, restore pruned i18n keys
2026-06-04 03:38:05 -07:00
gsxdsm
30e2fd7b09
fix(review): apply autofix feedback
2026-06-04 02:50:54 -07:00
gsxdsm
eee715218e
chore: lint cleanup, ignore generated i18n typings, mark plan completed
2026-06-04 02:16:55 -07:00
gsxdsm
60605fafa9
feat(core): workflowColumns integrity pass, graduation report, server-side trait validation, plugin post-commit hooks, docs + changeset (U12)
2026-06-04 02:13:48 -07:00
gsxdsm
3aa8d2d28b
feat(dashboard): flag-gated multi-lane board — lane per workflow, trait-keyed columns, typed drag rejections, hold promote (U9)
2026-06-04 01:49:51 -07:00
gsxdsm
e5a0a199ea
feat(dashboard): node editor authors columns, traits, hold and split/join nodes with inline validation (U10)
2026-06-04 01:46:51 -07:00
gsxdsm
26718a31cc
feat(engine): plugin-contributed traits — async-only hooks, pre-evaluated gates, live-dependent disable guard (U8)
2026-06-04 01:43:26 -07:00
gsxdsm
66cffe904d
feat(cli): TUI trait-flag bucket mapping + read-only Other (custom) bucket — no card silently dropped (U11)
2026-06-04 01:33:04 -07:00
gsxdsm
6a15a13917
feat(engine): in-txn capacity enforcement + generalized hold/release sweep with reservation-first ordering (U6)
2026-06-04 01:22:56 -07:00
gsxdsm
6491441102
feat(core): widen moveTask entry point to ColumnId for workflow-defined columns (KTD-1)
2026-06-04 01:03:34 -07:00
gsxdsm
2d28ea0c60
feat(engine): merge trait — enqueue-only orchestration, workflow-configurable strategy/fileScope, lost-work guards non-configurable (U7)
2026-06-04 01:03:34 -07:00
gsxdsm
ab78be718a
feat(core): workflow switch/edit/delete reconciliation — no card left in an undefined column (U5)
2026-06-04 00:54:05 -07:00
gsxdsm
fcf175afb8
feat(engine): fan-out/join branch execution with crash-recoverable branch state, schema v107 (U13)
2026-06-04 00:54:05 -07:00
gsxdsm
4e1b0fab0d
feat(core): workflow-resolved transitions behind workflowColumns flag, typed rejections, default-workflow hook parity (U4)
2026-06-04 00:41:12 -07:00
gsxdsm
2bebddb807
feat(core): typed transition contract + transitionPending marker, schema v106 (U3)
2026-06-04 00:19:58 -07:00
gsxdsm
a5ac822de4
feat(core): trait registry, 14 built-in traits, composition validator (U2)
2026-06-04 00:19:57 -07:00
gsxdsm
964744cd41
feat(core): WorkflowIr v2 — workflow-defined columns, hold/split/join nodes, v1 upgrade (U1)
2026-06-04 00:13:11 -07:00
gsxdsm
68c6702add
Fix invisible workflow graph editor and bundle CE/Roadmap plugins
...
- WorkflowNodeEditor overlay was missing the `open` class, so the
graph editor mounted with display:none — clicking the button just
dismissed the steps view. Add `open` so the overlay renders.
- Add fusion-plugin-compound-engineering and fusion-plugin-roadmap to
BUILTIN_PLUGINS so they show under Settings → Built-in Plugins.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-03 23:25:32 -07:00
gsxdsm
962b97ce84
FN-5967: add first-task GitHub star prompt
...
Show a one-time GitHub star prompt after a task first reaches done.
- detect task status transitions into done and trigger the prompt only in project view
- add a dismissible GitHub star prompt component plus localStorage-backed persistence hook
- cover the new prompt behavior with component, hook, and transition helper tests
- document the prompt behavior and styling guidance in the dashboard guide
Files changed:
docs/dashboard-guide.md | 3 +
packages/dashboard/app/App.tsx | 21 +++++-
.../dashboard/app/components/GitHubStarPrompt.css | 76 ++++++++++++++++++++++
.../dashboard/app/components/GitHubStarPrompt.tsx | 53 +++++++++++++++
.../app/components/__tests__/App.test.tsx | 12 +++-
.../components/__tests__/GitHubStarPrompt.test.tsx | 40 ++++++++++++
.../hooks/__tests__/useGitHubStarPrompt.test.ts | 64 ++++++++++++++++++
.../dashboard/app/hooks/useGitHubStarPrompt.ts | 46 +++++++++++++
8 files changed, 313 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-5967
Fusion-Task-Lineage: 5fffdf4d-61d8-4ac8-bcf4-8b453b639b28
2026-06-03 22:35:28 -07:00
gsxdsm
4625d644a8
FN-5954: decouple PR metadata loading from preflight options
...
Make the Create Pull Request modal interactive before AI metadata finishes loading.
- load preflight checks and PR options independently from AI title/body generation with separate loading and error states
- preserve base-branch selection and remediation actions while refreshing preflight or regenerating metadata
- cover the faster modal flow in tests and document the immediate-render behavior in the dashboard guide
Files changed:
docs/dashboard-guide.md | 3 +-
packages/dashboard/app/components/PrCreateModal.css | 11 +
packages/dashboard/app/components/PrCreateModal.tsx | 357 ++++++++++++++-------
packages/dashboard/app/components/__tests__/PrCreateModal.test.tsx | 110 ++++++-
4 files changed, 355 insertions(+), 126 deletions(-)
Fusion-Task-Id: FN-5954
Fusion-Task-Lineage: 2595d220-ca7a-403c-935c-900034a20c67
2026-06-03 22:35:28 -07:00
gsxdsm
a4d3589a14
FN-5948: fix mobile chat empty-state rendering
...
Restore the chat message pane empty state on mobile without regressing desktop sidebar layouts.
- style chat message-pane empty states as centered framed cards and normalize mobile spacing tokens
- keep sidebar padded empty states left-aligned so loading and list placeholders preserve their desktop layout
- add mobile and desktop regression coverage for direct chats and chat rooms across empty, loading, populated, and streaming states
Files changed:
packages/dashboard/app/components/ChatView.css | 26 +-
.../__tests__/ChatView.mobile-render.test.tsx | 299 +++++++++++++++++++++
2 files changed, 323 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-5948
Fusion-Task-Lineage: f4165f04-363d-4ade-8c10-6d242f943c6c
2026-06-03 22:31:23 -07:00
gsxdsm
8d31370b0b
FN-5965: use temporary root in worktree recovery test
...
Harden executor worktree recovery coverage against fixed-path collisions.
- create a unique temporary root for the stale unregistered worktree test case
- derive the stale worktree path from that temporary root instead of a shared /tmp/test path
- initialize TaskExecutor with the same temporary root so setup and assertions stay aligned
Files changed:
packages/engine/src/__tests__/executor-worktree.test.ts | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-5965
Fusion-Task-Lineage: 4436bd02-b7f7-4e62-8514-0aef6cb67813
2026-06-03 22:31:23 -07:00
gsxdsm
05098e4033
FN-5963: add goals refinement evidence pack
...
Document the evidence required before activating conditional goals refinement work.
- add a dedicated goals refinement evidence pack doc with required observation fields and activation thresholds
- link the new evidence pack from the docs index and dashboard guide
- cover the doc with a dashboard test and keep PR conflict-resolution modal styling aligned after merge
Files changed:
docs/README.md | 1 +
docs/dashboard-guide.md | 2 +-
docs/goals-refinement-evidence-pack.md | 74 ++++++++++++++++++++++
.../goals-refinement-evidence-pack-docs.test.ts | 22 +++++++
.../dashboard/app/components/PrCreateModal.css | 6 +-
.../dashboard/app/components/PrCreateModal.tsx | 2 +-
6 files changed, 103 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-5963
Fusion-Task-Lineage: 22cefe55-6b1e-4ff7-8fb1-5734f2b5a29b
2026-06-03 22:31:23 -07:00
gsxdsm
26bc80a0ad
FN-5958: add mission goal linking to create and update flows
...
Expand mission goal-link management across the REST API, CLI, and pi extension.
- accept optional goalIds during mission create and patch requests, and enforce archived-goal rejection while keeping unlink permissive
- add repeatable --goal support to fn mission create and reuse goal validation for CLI linking
- expose archived-goal errors in pi-extension mission goal tools and document the new behavior
Files changed:
.changeset/FN-5958-mission-goal-links.md | 10 +
docs/cli-reference.md | 8 +-
docs/missions.md | 15 +-
packages/cli/src/__tests__/bin.test.ts | 34 ++++
packages/cli/src/__tests__/extension-mission-goal-tools.test.ts | 36 ++++
packages/cli/src/bin.ts | 24 ++-
packages/cli/src/commands/mission.ts | 29 ++-
packages/cli/src/extension.ts | 7 +
packages/dashboard/src/__tests__/mission-goal-links-routes.test.ts | 201 ++++++++++++++++++++-
packages/dashboard/src/mission-routes.ts | 66 +++++--
10 files changed, 390 insertions(+), 40 deletions(-)
Fusion-Task-Id: FN-5958
Fusion-Task-Lineage: cf9d6013-5484-439d-b66d-44cac843c6ef
2026-06-03 22:31:23 -07:00
gsxdsm
c82cdb281c
FN-5944: stop redundant run-audit re-emission
...
Deduplicate unchanged scheduler and self-healing audit emissions while preserving transition visibility.
- suppress repeated queued-concurrency audits until the limiting gate signature changes or clears
- suppress repeated overlap-priority inversion audits until the blocker changes or overlap returns
- suppress repeated meta auto-archive skip and integrity-warning audits until their persisted reasons change
- update reliability tests and architecture/settings docs for the new transition-only audit cadence
Files changed:
docs/architecture.md | 12 +--
docs/settings-reference.md | 2 +-
.../integrity-warning-persisted-dedup.test.ts | 12 ++-
.../scheduler-overlap-priority-inversion.test.ts | 60 +++++++++++++-
packages/engine/src/__tests__/scheduler.test.ts | 13 ++-
.../self-healing-meta-archive-guards.test.ts | 45 +++++++++++
packages/engine/src/scheduler.ts | 59 +++++++++++---
packages/engine/src/self-healing.ts | 94 +++++++++++++++++-----
8 files changed, 243 insertions(+), 54 deletions(-)
Fusion-Task-Id: FN-5944
Fusion-Task-Lineage: f8fe6adf-1501-49b7-b04c-ff38376957f0
2026-06-03 22:31:23 -07:00