gsxdsm
bd87ce7d7e
FN-6304: add optional workflow steps
...
Allow workflows to define default-on optional steps and expose browser verification as a togglable workflow option.
- Add core optional-step helpers, IR metadata, compiler support, exports, and regression coverage.
- Mark browser verification optional in the built-in coding workflow and document optional workflow-step behavior.
- Add dashboard/API support for optional step defaults and enabled-state presentation with localized label cleanup.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-6304-optional-workflow-steps.md | 5 ++
docs/task-management.md | 2 +-
docs/workflow-steps.md | 8 ++
packages/core/src/__tests__/workflow-ir.test.ts | 45 +++++++++++
.../src/__tests__/workflow-optional-steps.test.ts | 88 ++++++++++++++++++++++
packages/core/src/builtin-coding-workflow-ir.ts | 1 +
packages/core/src/index.ts | 3 +
packages/core/src/store.ts | 3 +
packages/core/src/workflow-compiler.ts | 30 +++++++-
packages/core/src/workflow-ir-types.ts | 11 +++
packages/core/src/workflow-ir.ts | 32 +++++++-
packages/core/src/workflow-optional-steps.ts | 46 +++++++++++
packages/dashboard/app/api/legacy.ts | 10 +++
.../dashboard/app/components/InlineCreateCard.css | 20 +++++
.../dashboard/app/components/InlineCreateCard.tsx | 87 ++++++++++++++++-----
.../app/components/WorkflowResultsTab.tsx | 44 +++++++++--
.../components/__tests__/InlineCreateCard.test.tsx | 41 +++++++++-
.../__tests__/WorkflowResultsTab.test.tsx | 58 +++++++++++++-
.../src/__tests__/workflow-routes.test.ts | 22 ++++++
.../src/routes/register-workflow-routes.ts | 16 +++-
packages/i18n/locales/en/app.json | 6 +-
packages/i18n/locales/es/app.json | 3 -
packages/i18n/locales/fr/app.json | 3 -
packages/i18n/locales/ko/app.json | 3 -
packages/i18n/locales/zh-CN/app.json | 3 -
packages/i18n/locales/zh-TW/app.json | 3 -
packages/i18n/src/resources.d.ts | 6 +-
27 files changed, 543 insertions(+), 56 deletions(-)
Fusion-Task-Id: FN-6304
Fusion-Task-Lineage: 385f8ae1-494f-4e2b-a6e9-3a2d2bbe7f71
2026-06-12 17:57:19 -07:00
gsxdsm
0cd2ae1032
FN-6314: allow chat steering during review sessions
...
Task Chat can now steer active assigned sessions while tasks are being reviewed or merged.
- Permit composer steering for in-review reviewing, merging, merging-fix, and fixing statuses when an agent is assigned or checked out.
- Keep paused, user-paused, unassigned, todo, and done tasks disabled with clearer active-session messaging.
- Cover in-review steering and disabled-session states in TaskChatTab tests and update dashboard documentation.
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/TaskChatTab.tsx | 13 +++--
.../app/components/__tests__/TaskChatTab.test.tsx | 61 ++++++++++++++++++++--
3 files changed, 67 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-6314
Fusion-Task-Lineage: 42c0f4f7-58f5-4e0c-837f-9f4b7c497fa3
2026-06-12 16:10:02 -07:00
gsxdsm
2b5c4ae745
FN-6307: trim dashboard test waits
...
Trim heavyweight dashboard test paths while preserving coverage and recording the timing evidence.
- Seed the planning route rate limiter directly so boundary assertions avoid 999 duplicate HTTP session creations.
- Replace negative wait polling in NewTaskModal and heartbeat saturation assertions with direct checks after the triggering event settles.
- Document FN-6307 timing measurements and note the unrelated pre-existing settings-route failures observed during verification.
Files changed:
docs/test-speed-audit-FN-5048.md | 20 +++++++++++++
.../app/components/__tests__/NewTaskModal.test.tsx | 8 ++----
.../src/__tests__/routes-planning.test.ts | 33 +++++++++++++---------
3 files changed, 41 insertions(+), 20 deletions(-)
Fusion-Task-Id: FN-6307
Fusion-Task-Lineage: b32b22e7-6729-4bd0-bc3a-ad053178bb1c
2026-06-12 14:58:59 -07:00
gsxdsm
039d3ce440
FN-6236: move fast triage into workflow settings
...
Move fast triage prompting into the workflow/settings prompt model.
- Add a core-owned fast triage prompt and expose the workflow prompt mode type.
- Add a fast-mode builtin workflow variant and route triage prompt selection through workflow settings.
- Remove the engine-local fast triage prompt constant and update triage tests for workflow-driven fast mode.
- Document the fast triage prompt mode setting and add a patch changeset.
Files changed:
.changeset/FN-6236-fast-mode-workflow-variant.md | 7 +
docs/settings-reference.md | 2 +
packages/core/src/__tests__/agent-prompts.test.ts | 16 +-
.../builtin-workflow-settings-triage.test.ts | 5 +
packages/core/src/agent-prompts.ts | 221 +++++++++++++++++++
packages/core/src/builtin-workflow-prompts.ts | 12 +-
packages/core/src/builtin-workflow-settings.ts | 18 +-
packages/core/src/index.ts | 5 +
packages/core/src/types.ts | 4 +
.../triage-duplicate-search-regression.test.ts | 18 +-
.../triage-fast-mode-workflow-variant.test.ts | 219 +++++++++++++++++++
.../triage-planning-prompt-single-source.test.ts | 8 +-
packages/engine/src/__tests__/triage.test.ts | 64 +++---
packages/engine/src/triage.ts | 235 ++-------------------
14 files changed, 565 insertions(+), 269 deletions(-)
Fusion-Task-Id: FN-6236
Fusion-Task-Lineage: 369954d8-41e7-4d88-aa6d-e6bbca077d50
2026-06-12 14:39:51 -07:00
gsxdsm
ba610a1c0e
FN-6296: fix stuck-kill force-requeue cleanup
...
Reap hung executor surfaces before requeueing stuck-kill timeout tasks.
- terminate spawned child agents and active session surfaces before clearing execution guards
- remove stale worktrees during force-requeue while preserving concurrent recovery ownership
- add regression coverage and architecture notes for the cleanup contract
Files changed:
docs/architecture.md | 2 +
.../engine/src/__tests__/executor-recovery.test.ts | 248 ++++++++++++++++++++-
packages/engine/src/executor.ts | 61 ++++-
3 files changed, 305 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-6296
Fusion-Task-Lineage: a393e2b1-a72c-4d7b-9de2-6bf7268986d4
2026-06-12 14:08:52 -07:00
gsxdsm
283adce4d0
FN-6295: move AI merge clean rooms into worktrees
...
Move AI-merge clean-room worktrees into the configured worktrees directory while preserving legacy cleanup.
- Resolve AI-merge roots through the configured worktrees directory using a hidden .ai-merge container.
- Keep local git excludes and stale cleanup compatible with legacy .fusion/ai-merge and tmpdir locations.
- Exclude the .ai-merge container from worktree pool and self-healing one-level sweeps.
- Add regression coverage for path resolution, cleanup, orphan reap, and cap enforcement behavior.
- Update architecture and agent guidance for the relocated clean-room root.
Files changed:
AGENTS.md | 2 +-
docs/architecture.md | 4 +-
.../engine/src/__tests__/merger-ai-cleanup.test.ts | 50 +++++++++----
.../__tests__/self-healing-tempdir-sweep.test.ts | 87 +++++++++++++++++++---
.../engine/src/__tests__/worktree-paths.test.ts | 24 ++++++
.../engine/src/__tests__/worktree-pool.test.ts | 55 ++++++++++++++
packages/engine/src/merger-ai.ts | 27 +++++--
packages/engine/src/self-healing.ts | 25 +++----
packages/engine/src/worktree-paths.ts | 17 +++++
packages/engine/src/worktree-pool.ts | 10 +--
10 files changed, 247 insertions(+), 54 deletions(-)
Fusion-Task-Id: FN-6295
Fusion-Task-Lineage: d95d32c2-3253-4964-b68a-252b4cb65109
2026-06-12 12:49:34 -07:00
gsxdsm
0897b2a0bf
FN-6281: add bounded graph resume retries
...
Add a narrow persisted retry path for transient workflow-graph failures during resume after restart or unpause.
- Persist graphResumeRetryCount with schema migration, store round-tripping, manual retry reset, and task serialization coverage.
- Retry only no-progress execute-seam graph failures immediately following resume markers, then clear transient status/error and re-run within a capped budget.
- Preserve terminal graph failure handling for explicit reasons, durable task failures, completed progress, non-resume cases, and exhausted retry budgets.
- Document the resume-limbo retry contract and add a patch changeset for @runfusion/fusion.
Files changed:
.changeset/fn-6281-graph-resume-retry.md | 5 +
docs/architecture.md | 1 +
packages/core/src/__tests__/db-migrate.test.ts | 30 +--
packages/core/src/__tests__/db.test.ts | 44 ++---
packages/core/src/__tests__/goals-schema.test.ts | 2 +-
packages/core/src/__tests__/insight-store.test.ts | 10 +-
.../core/src/__tests__/manual-retry-reset.test.ts | 1 +
.../src/__tests__/merge-request-record.test.ts | 2 +-
packages/core/src/__tests__/mission-store.test.ts | 2 +-
packages/core/src/__tests__/run-audit.test.ts | 4 +-
.../core/src/__tests__/store-merge-queue.test.ts | 2 +-
.../core/src/__tests__/store-persistence.test.ts | 22 +++
packages/core/src/__tests__/task-documents.test.ts | 2 +-
packages/core/src/db.ts | 10 +-
packages/core/src/manual-retry-reset.ts | 1 +
packages/core/src/store.ts | 14 +-
packages/core/src/types.ts | 5 +
.../engine/src/__tests__/executor-recovery.test.ts | 201 +++++++++++++++++++++
packages/engine/src/executor.ts | 54 ++++++
19 files changed, 359 insertions(+), 53 deletions(-)
Fusion-Task-Id: FN-6281
Fusion-Task-Lineage: f9061445-8624-465a-9255-c3d02eac1bdb
2026-06-12 11:10:12 -07:00
gsxdsm
36ba1b9d68
FN-6292: prevent dependency-blocking file leases
...
Prevent dependency waiters from holding file-scope leases that can block their own dependencies.
- Exclude in-progress tasks with unmet scheduling dependencies from active overlap lease maps.
- Add self-healing recovery for existing dependency/lease circular waits with triple-proof auditing.
- Cover scheduler and self-healing behavior with regression tests and document the new audit events.
Files changed:
AGENTS.md | 1 +
docs/architecture.md | 5 +-
packages/engine/src/__tests__/scheduler.test.ts | 108 +++++++++++++
packages/engine/src/__tests__/self-healing.test.ts | 172 ++++++++++++++++++++-
packages/engine/src/scheduler.ts | 67 +++++---
packages/engine/src/self-healing.ts | 132 ++++++++++++++++
6 files changed, 462 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-6292
Fusion-Task-Lineage: 7c0e852d-bdb1-4775-a6b7-2b60b7583da1
2026-06-12 10:49:02 -07:00
gsxdsm
4bd6024ef7
FN-6300: add live task chat tab
...
Add a live chat-style task detail tab for following and steering active agent work.
- Add TaskChatTab with grouped agent log bubbles, live-follow scrolling, and steering message composer.
- Share chat input autosize helpers between ChatView and task chat.
- Wire the Chat tab into task detail navigation with localized labels and regression coverage.
Files changed:
docs/dashboard-guide.md | 2 +
.../dashboard/app/components/AgentLogViewer.tsx | 2 +-
packages/dashboard/app/components/ChatView.tsx | 25 +-
packages/dashboard/app/components/TaskChatTab.css | 193 ++++++++++++++
packages/dashboard/app/components/TaskChatTab.tsx | 276 +++++++++++++++++++++
.../dashboard/app/components/TaskDetailModal.tsx | 13 +-
.../app/components/__tests__/TaskChatTab.test.tsx | 181 ++++++++++++++
.../TaskDetailModal.attachments-and-tabs.test.tsx | 19 +-
.../TaskDetailModal.definition-actions.test.tsx | 104 ++++----
...etailModal.responsive-and-dependencies.test.tsx | 2 +-
packages/dashboard/app/utils/chatInputAutosize.ts | 18 ++
packages/i18n/locales/en/app.json | 1 +
packages/i18n/locales/es/app.json | 1 +
packages/i18n/locales/fr/app.json | 1 +
packages/i18n/locales/ko/app.json | 1 +
packages/i18n/locales/zh-CN/app.json | 1 +
packages/i18n/locales/zh-TW/app.json | 1 +
17 files changed, 757 insertions(+), 84 deletions(-)
Fusion-Task-Id: FN-6300
Fusion-Task-Lineage: 1eb8a17b-3ca5-4cba-81c6-ac7ccce0a113
2026-06-12 10:00:08 -07:00
gsxdsm
7ffea9f4a6
FN-6290: expose Google Generative AI custom providers
...
Expose Google Generative AI as a selectable custom-provider API type across settings UI and docs.
- Add Google Generative AI options to custom-provider add and edit dropdowns.
- Cover add, edit, and existing Google-provider selection behavior with dashboard tests.
- Document the supported API type and add localized provider labels.
- Add a changeset for the published Fusion package.
Files changed:
.changeset/fn-6290-expose-google-generative-ai.md | 5 ++
docs/dashboard-guide.md | 5 +-
docs/settings-reference.md | 2 +-
.../app/components/CustomProvidersSection.tsx | 2 +
.../__tests__/CustomProvidersSection.test.tsx | 62 ++++++++++++++++++++++
packages/i18n/locales/en/app.json | 1 +
packages/i18n/locales/es/app.json | 1 +
packages/i18n/locales/fr/app.json | 1 +
packages/i18n/locales/ko/app.json | 1 +
packages/i18n/locales/zh-CN/app.json | 1 +
packages/i18n/locales/zh-TW/app.json | 1 +
11 files changed, 79 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-6290
Fusion-Task-Lineage: 295cbba2-cae1-4998-9456-d6a306be6e34
2026-06-12 07:13:00 -07:00
gsxdsm
2085610e9e
FN-6246: move AI merge clean rooms into repo storage
...
Move AI merge clean-room worktrees into a repo-local ignored root while preserving legacy temp cleanup.
- Add repo-local `.fusion/ai-merge` resolution and ignore handling for AI merge worktrees.
- Sweep both repo-local clean rooms and legacy tempdir worktrees with active-session and age safeguards.
- Prune stale git worktree metadata after cleanup and classify missing clean-room errors as transient.
- Update cleanup tests, architecture docs, and changeset coverage for the relocation.
Files changed:
.changeset/fn-6246-ai-merge-cleanroom-relocation.md | 5 +
AGENTS.md | 2 +-
docs/architecture.md | 6 +-
.../merger-ai-cleanup-active-session.test.ts | 22 ++-
.../engine/src/__tests__/merger-ai-cleanup.test.ts | 48 +++++-
.../ai-merge-worktree-cleanup.test.ts | 26 ++-
.../__tests__/self-healing-tempdir-sweep.test.ts | 34 ++++
.../transient-merge-error-classifier.test.ts | 2 +
packages/engine/src/merger-ai.ts | 144 ++++++++++-------
packages/engine/src/self-healing.ts | 180 ++++++++++++---------
.../engine/src/transient-merge-error-classifier.ts | 14 +-
11 files changed, 325 insertions(+), 158 deletions(-)
Fusion-Task-Id: FN-6246
Fusion-Task-Lineage: f6fe8ef2-aa7b-4cc3-903f-b7a5cc165487
2026-06-12 06:49:29 -07:00
gsxdsm
40b9d553dd
FN-6286: document custom provider model selection
...
Document how custom providers are configured and surfaced in model pickers.
- Add Custom Providers dashboard guide coverage for adding, editing, deleting, detecting models, and masked API key behavior.
- Explain that saved custom provider models appear in Project Models and workflow model dropdowns.
- Add a stable settings-reference anchor for the customProviders setting.
Files changed:
docs/dashboard-guide.md | 64 ++++++++++++++++++++++++++++++++++++++++++++++
docs/settings-reference.md | 2 +-
2 files changed, 65 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6286
Fusion-Task-Lineage: 79520376-d448-4048-af43-a532fba68853
2026-06-12 05:26:08 -07:00
gsxdsm
ec4b247a86
FN-6284: refire deferred agent assignments
...
Ensure assigned agents resume task work even when their heartbeat loop is idle.
- add deferred assignment refiring when an agent is assigned work without an active heartbeat run
- track in-process runtime activity so scheduled work is not double-started
- cover idle, active, and concurrent heartbeat assignment paths with scheduler and runtime tests
- document the deferred assignment wake-up behavior and add a changeset
Files changed:
.changeset/fn-6284-deferred-assignment-refire.md | 5 +
docs/agents.md | 2 +
docs/architecture.md | 1 +
.../src/__tests__/heartbeat-scheduler.test.ts | 174 ++++++++++++++++++++-
packages/engine/src/agent-heartbeat.ts | 109 ++++++++++++-
.../runtimes/__tests__/in-process-runtime.test.ts | 24 +++
packages/engine/src/runtimes/in-process-runtime.ts | 3 +
7 files changed, 311 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-6284
Fusion-Task-Lineage: cf8a9abe-163e-45c6-961a-095891e45ea5
2026-06-12 03:00:45 -07:00
gsxdsm
44b756d927
FN-6258: allow deferred built-in workflow selection
...
Allow branching built-in workflows to stay selectable while deferring legacy step materialization.\n\n- Treat interpreter-deferred built-in compile errors as valid zero-step selections or default fallbacks.\n- Update builtin:coding merge-region layout expectations and documentation for workflow-native merge primitives.\n- Cover explicit selection, create-time selection, and project-default fallback cases for deferred built-ins.\n- Add a patch changeset for the published CLI package.\n\nFiles changed:\n .changeset/fuzzy-workflows-branching.md | 5 ++\n docs/workflow-steps.md | 4 +-\n .../core/src/__tests__/builtin-workflows.test.ts | 53 +++++++++++++++--\n packages/core/src/builtin-workflows.ts | 10 +++-\n packages/core/src/store.ts | 43 ++++++++++----\n packages/core/src/workflow-compiler.ts | 66 +++++-----------------\n 6 files changed, 109 insertions(+), 72 deletions(-)
Fusion-Task-Id: FN-6258
Fusion-Task-Lineage: 0958f522-029e-4f2a-9292-b408c2a4c208
2026-06-11 22:48:59 -07:00
gsxdsm
2efa833357
FN-6250: add Compound Engineering session cancellation
...
Add cancel controls and backend support for preserving interrupted Compound Engineering sessions.
- Add an orchestrator cancel path and POST route that stops live work without deleting session history.
- Wire dashboard APIs, hooks, and UI buttons to cancel active, launching, or awaiting-input sessions.
- Cover cancellation behavior across orchestrator, routes, hooks, flow controls, and session panel tests.
- Document the cancel versus discard workflow in plugin docs and README.
Files changed:
docs/plugins/compound-engineering.md | 13 ++-
.../fusion-plugin-compound-engineering/README.md | 11 ++-
.../src/__tests__/orchestrator-cancel.test.ts | 101 +++++++++++++++++++++
.../src/__tests__/session-routes.test.ts | 35 +++++++
.../src/dashboard/CeFlow.tsx | 16 +++-
.../src/dashboard/CompoundEngineeringView.css | 20 ++++
.../src/dashboard/CompoundEngineeringView.tsx | 40 +++++++-
.../src/dashboard/__tests__/CeFlow.test.tsx | 20 ++++
.../__tests__/CompoundEngineeringView.test.tsx | 53 ++++++++++-
.../hooks/__tests__/useCeSessions.test.tsx | 44 ++++++++-
.../src/dashboard/hooks/api.ts | 10 ++
.../src/dashboard/hooks/useCeSessions.ts | 23 ++++-
.../src/routes/session-routes.ts | 11 +++
.../src/session/orchestrator.ts | 20 ++++
14 files changed, 404 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-6250
Fusion-Task-Lineage: e9997056-364c-44e1-b846-00b08a1ff8fc
2026-06-11 22:42:21 -07:00
gsxdsm
73990e4212
FN-6253: index workflow policy ownership map
...
Index the workflow policy ownership documentation from the docs landing page.
- Add workflow-policy-ownership-map.md to docs/README.md's reference table.
- Summarize the map's merge, retry, scheduling, and recovery policy coverage.
Files changed:
docs/README.md | 1 +
1 file changed, 1 insertion(+)
Fusion-Task-Id: FN-6253
Fusion-Task-Lineage: bf04e915-7cd1-436c-9edc-a0bde285f551
2026-06-11 22:31:35 -07:00
gsxdsm
d23c5d901f
FN-6247: refresh PR controls from live auto-merge setting
...
Keep task detail PR and review affordances synchronized with the current project auto-merge setting.
- Thread the live auto-merge value into task detail modals and list split-pane detail views.
- Prefer the live auto-merge setting over the stale fetched modal snapshot while preserving task-level overrides.
- Cover PR and review tab behavior for auto-merge on/off and document the dashboard behavior.
- Evict flaky engine gate entries and add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-6247-automerge-off-modal-stale.md | 5 +
docs/dashboard-guide.md | 1 +
packages/dashboard/app/App.tsx | 3 +-
packages/dashboard/app/components/AppModals.tsx | 2 +
packages/dashboard/app/components/ListView.tsx | 3 +
.../dashboard/app/components/TaskDetailModal.tsx | 4 +-
.../__tests__/TaskDetailModal.create-pr.test.tsx | 171 ++++++++++++++++++++-
packages/engine/vitest.config.ts | 2 -
8 files changed, 182 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-6247
Fusion-Task-Lineage: 1321c03a-216d-4b15-bf4f-95621d68c9ae
2026-06-11 22:11:44 -07:00
gsxdsm
65251d2e6b
FN-6252: stop agent pauses from pausing tasks
...
Agent pause and sleep flows now leave task pause state under explicit task controls.\n\n- Remove automatic task pausing from heartbeat pauseAgent and dashboard fallback state changes.\n- Default resume task cascade to off while retaining legacy opt-in unpause cleanup.\n- Cover agent sleep, heartbeat execution, and dashboard fallback pause behavior with regression tests.\n- Document task pause ownership and add a patch changeset.\n\nFiles changed:\n .changeset/fn-6252-no-agent-task-autopause.md | 5 ++\n docs/agents.md | 2 +-\n docs/architecture.md | 4 ++\n .../src/__tests__/routes-agent-runs.test.ts | 32 +++++++++\n .../src/routes/register-agent-runtime-routes.ts | 17 -----\n .../src/__tests__/heartbeat-executor.test.ts | 75 ++++++++++++++++++++--\n packages/engine/src/agent-heartbeat.ts | 29 +++------\n 7 files changed, 121 insertions(+), 43 deletions(-)
Fusion-Task-Id: FN-6252
Fusion-Task-Lineage: f7a0ef30-0c99-4f9c-b0c1-43217d613187
2026-06-11 22:03:29 -07:00
gsxdsm
c0ff360737
FN-6243: keep mobile auto-merge toggles visible
...
Keep the mobile dashboard pinned while offscreen auto-merge controls are toggled.
- Reset document horizontal scroll during mobile board stabilization and immediately after auto-merge toggles.
- Cover portrait and landscape mobile scroll realignment in the auto-merge integration test.
- Document the real-browser blank-dashboard root cause and add a patch changeset.
Files changed:
.changeset/FN-6243-mobile-auto-merge-blank.md | 5 ++
...bile-auto-merge-toggle-document-scroll-blank.md | 55 ++++++++++++++++++++++
packages/dashboard/app/components/Board.tsx | 47 ++++++++++++++++--
...-merge-toggle-blank.mobile-integration.test.tsx | 49 +++++++++++++++++++
4 files changed, 152 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6243
Fusion-Task-Lineage: 91f74de2-667f-4732-a840-47b792288bec
2026-06-11 21:26:59 -07:00
gsxdsm
e22afece56
FN-6233: add typed triage policy settings
...
Render triage planning thresholds from typed workflow settings instead of hard-coded prompt constants.
- Add typed triage threshold/default workflow settings, migration coverage, exports, and docs.
- Render built-in triage prompt placeholders before engine prompt execution and tests.
- Remove the duplicate standard triage prompt from engine in favor of the core workflow IR source.
- Add regression coverage for default and customized triage policy rendering.
Files changed:
.changeset/FN-6233-triage-threshold-settings.md | 7 +
docs/settings-reference.md | 19 ++
docs/workflow-steps.md | 2 +-
packages/core/src/__tests__/agent-prompts.test.ts | 16 +-
.../builtin-workflow-settings-triage.test.ts | 63 ++++
.../src/__tests__/settings-consistency.test.ts | 24 +-
.../core/src/__tests__/settings-migration.test.ts | 12 +-
.../src/__tests__/workflow-ir-settings.test.ts | 11 +-
packages/core/src/agent-prompts.ts | 20 +-
packages/core/src/builtin-workflow-settings.ts | 154 ++++++++-
packages/core/src/index.ts | 7 +-
packages/core/src/moved-settings.ts | 13 +-
.../triage-planning-prompt-single-source.test.ts | 9 +-
.../__tests__/triage-threshold-settings.test.ts | 84 +++++
packages/engine/src/__tests__/triage.test.ts | 17 +-
packages/engine/src/triage.ts | 343 +--------------------
packages/engine/vitest.config.ts | 5 +-
17 files changed, 423 insertions(+), 383 deletions(-)
Fusion-Task-Id: FN-6233
Fusion-Task-Lineage: b2a986df-fa37-4297-a359-84d8463b0867
2026-06-11 20:53:01 -07:00
gsxdsm
905d5bf849
FN-6228: prioritize project model overrides
...
Ensure saved project model settings outrank stale durable-agent runtime models across AI lanes.
- Document the updated task, heartbeat, validator, merger, and summarizer model precedence.
- Add model-resolution regression coverage for project lanes, globals, defaults, runtime fallback, and test-mode mock forcing.
- Route AI merge body summarization through the shared title-summarizer settings resolver.
- Preserve upstream triage prompt coverage for TRIAGE_POLICY_PROMPT while resolving conflicts.
Files changed:
docs/agents.md | 18 +--
docs/settings-reference.md | 32 ++--
.../core/src/__tests__/model-resolution.test.ts | 98 ++++++++++++
packages/core/vitest.config.ts | 1 +
.../src/__tests__/agent-session-helpers.test.ts | 173 +++++++++++++++++++++
.../src/__tests__/merger-ai-merge-body.test.ts | 85 +++++++++-
packages/engine/src/agent-session-helpers.ts | 4 +
packages/engine/src/merger.ts | 26 +---
8 files changed, 392 insertions(+), 45 deletions(-)
Fusion-Task-Id: FN-6228
Fusion-Task-Lineage: a6c03f2a-dde7-4037-bdcd-a1c92a8b7fae
2026-06-11 20:44:52 -07:00
gsxdsm
7763ba5fab
FN-6278: preflight reusable merge worktree cwd
...
Stabilize reusable merge worktree cwd resolution before merge-runner git spawns.
- Add a reusable merge integration root preflight that detects missing, empty, or de-registered task worktrees before using them as cwd.
- Reacquire/repair unusable reuse-task-worktree roots before merge execution and reject unusable roots during handoff.
- Cover vanished and unregistered worktree recovery paths plus focused preflight unit cases.
- Document the FN-6278 preflight behavior alongside transient merge recovery and merge integration worktree contracts.
Files changed:
docs/architecture.md | 4 +-
.../__tests__/merger-integration-worktree.test.ts | 82 ++++++++
.../merge-runner-spawn-enoent-prevention.test.ts | 233 +++++++++++++++++++++
packages/engine/src/merger-integration-worktree.ts | 71 +++++++
packages/engine/src/merger.ts | 19 +-
5 files changed, 396 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-6278
Fusion-Task-Lineage: ceecf70f-9e2d-4ffe-8c6f-a9a5b673d72d
2026-06-11 20:27:29 -07:00
gsxdsm
64d831576d
FN-6225: persist workflow model lanes on Settings save
...
Persist default workflow model lane edits through the Settings modal's primary save path.
- Register a Project Models section save handler so workflow lane overrides flush before closing Settings.
- Surface typed workflow setting rejections without closing the modal or showing a success toast.
- Remove the separate workflow-model save button and update coverage/docs for the unified save behavior.
Files changed:
docs/dashboard-guide.md | 2 +-
docs/settings-reference.md | 17 +++++---
.../dashboard/app/components/SettingsModal.tsx | 11 ++++-
.../components/__tests__/SettingsModal.test.tsx | 50 ++++++++++++++++------
.../settings/sections/ProjectModelsSection.tsx | 42 ++++++++++--------
.../app/components/settings/sections/context.ts | 3 ++
6 files changed, 83 insertions(+), 42 deletions(-)
Fusion-Task-Id: FN-6225
Fusion-Task-Lineage: 98338f85-c742-46c2-8bdf-f676a6f7e32e
2026-06-11 20:21:30 -07:00
gsxdsm
ac342f5012
FN-6220: harden AI merge worktree cleanup
...
Harden AI merge cleanup so temporary clean-room worktrees are removed and audited reliably.
- Canonicalize AI merge cleanup paths and prune stale git worktree metadata after removals.
- Treat already-absent or de-registered cleanup paths as idempotent success while still auditing genuine failures.
- Add regression coverage for successful, no-op, retry, thrown, orphaned, and dangling-registration cleanup paths.
- Document the inline and self-healing cleanup lifecycle for AI merge temp worktrees.
Files changed:
docs/architecture.md | 4 +-
.../engine/src/__tests__/merger-ai-cleanup.test.ts | 28 +-
.../ai-merge-worktree-cleanup.test.ts | 284 +++++++++++++++++++++
packages/engine/src/merger-ai.ts | 108 +++++---
4 files changed, 392 insertions(+), 32 deletions(-)
Fusion-Task-Id: FN-6220
Fusion-Task-Lineage: b002313c-4349-49c2-8d0f-cd1853369d84
2026-06-11 20:02:21 -07:00
gsxdsm
1c2b68386b
FN-6210: cap chat sidebar width during keyboard flicker
...
Keep the chat sidebar bounded when tablet keyboard viewport changes briefly report mobile sizing.
- Add a desktop max-width guard to the chat sidebar with a mobile override.
- Cover simulated tablet keyboard viewport-mode flicker in the mobile render tests.
- Document the ChatView sidebar defense alongside the tablet viewport-mode solution.
Files changed:
.../ui-bugs/tablet-keyboard-viewport-mode-flip.md | 3 ++
packages/dashboard/app/components/ChatView.css | 2 +
.../__tests__/ChatView.mobile-render.test.tsx | 53 ++++++++++++++++++++++
3 files changed, 58 insertions(+)
Fusion-Task-Id: FN-6210
Fusion-Task-Lineage: b3aca9d5-dc16-45e2-8f2c-5c2d51c7d021
2026-06-11 19:51:19 -07:00
gsxdsm
02ae5a9340
FN-6213: prevent keyboard from forcing mobile layout
...
Keep tablet and desktop layouts stable when the virtual keyboard shrinks viewport height.
- Gate short-height mobile detection on phone-class physical screen size.
- Reuse the shared mobile viewport helper across board, terminal, and workflow editor layout decisions.
- Cover tablet keyboard and landscape phone viewport behavior with regression tests and document the UI bug pattern.
- Preserve quarantine exclusions while resolving the squash merge conflict.
Files changed:
.../ui-bugs/tablet-keyboard-viewport-mode-flip.md | 54 +++++++++++++
packages/dashboard/app/components/Board.tsx | 4 +-
.../dashboard/app/components/SessionTerminal.tsx | 16 +---
.../app/components/WorkflowNodeEditor.tsx | 41 +++++-----
.../__tests__/SessionTerminal.mobile.test.tsx | 57 ++++++++++----
.../app/hooks/__tests__/useViewportMode.test.ts | 90 +++++++++++++++++++++-
packages/dashboard/app/hooks/useViewportMode.ts | 26 ++++++-
packages/engine/vitest.config.ts | 1 +
scripts/lib/test-quarantine.json | 5 ++
9 files changed, 239 insertions(+), 55 deletions(-)
Fusion-Task-Id: FN-6213
Fusion-Task-Lineage: 01af6489-8c34-4318-9cff-1bceb1fa5a5d
2026-06-11 19:37:25 -07:00
gsxdsm
9a71b1c7d1
FN-6242: recover transient spawn merge failures
...
Recover retry-exhausted in-review merge tasks when the merger failed before spawning its git command.
- Classify spawn ENOTDIR and spawn ENOENT errors as bounded transient merge failures.
- Requeue retry-exhausted in-review tasks for auto-merge while preserving the transient recovery budget.
- Cover the classifier and self-healing recovery paths for process-spawn failures.
- Document the transient merge recovery classes and bounded budget behavior.
Files changed:
docs/architecture.md | 1 +
packages/engine/src/__tests__/self-healing.test.ts | 101 +++++++++++++++++++++
.../transient-merge-error-classifier.test.ts | 40 ++++++++
.../engine/src/transient-merge-error-classifier.ts | 11 +++
4 files changed, 153 insertions(+)
Fusion-Task-Id: FN-6242
Fusion-Task-Lineage: 3ca0ab1b-7184-4808-85ad-3becc9c99329
2026-06-11 18:41:49 -07:00
gsxdsm
94c3cce7bc
FN-6257: make AI merge cleanup idempotent for absent worktrees
...
AI merge cleanup now tolerates already-removed worktrees without failing a landed merge.
- Treat ENOENT and de-registered worktree removal errors as successful idempotent cleanup.
- Register AI merge temp paths before worktree creation and keep raw/canonical paths active.
- Add cleanup regression coverage and include the cleanup suite in reliability tests.
- Document the idempotent cleanup telemetry contract.
Files changed:
docs/architecture.md | 2 +-
.../engine/src/__tests__/merger-ai-cleanup.test.ts | 48 +++++++-
.../ai-merge-cleanup-enoent-idempotent.test.ts | 128 +++++++++++++++++++++
packages/engine/src/merger-ai.ts | 73 +++++++++---
packages/engine/vitest.config.ts | 5 +-
5 files changed, 239 insertions(+), 17 deletions(-)
Fusion-Task-Id: FN-6257
Fusion-Task-Lineage: c669fa1e-2c92-4e2f-8726-4939a3146955
2026-06-11 18:14:45 -07:00
gsxdsm
9a78814418
FN-6245: keep default auto-merge tasks on live settings
...
Keep tasks without explicit auto-merge overrides tied to the live global setting instead of freezing it at review entry.
- Stop in-review entry effects from copying the project autoMerge setting onto tasks.
- Preserve explicit per-task auto-merge overrides while allowing default tasks to follow later global toggles.
- Add regression coverage for move-to-review behavior and live auto-merge resolution.
- Document the default auto-merge behavior and add a patch changeset.
Files changed:
.changeset/fn-6245-automerge-toggle.md | 5 ++
docs/settings-reference.md | 2 +-
.../__tests__/move-task-characterization.test.ts | 48 ++++++++++++++---
packages/core/src/__tests__/store-movement.test.ts | 63 +++++++++++++++-------
packages/core/src/__tests__/task-merge.test.ts | 12 ++++-
packages/core/src/default-workflow-hooks.ts | 28 ++++++----
packages/core/src/store.ts | 13 ++---
7 files changed, 121 insertions(+), 50 deletions(-)
Fusion-Task-Id: FN-6245
Fusion-Task-Lineage: 1f349f0c-e513-4d82-b77a-9d0c353c163c
2026-06-11 18:08:17 -07:00
gsxdsm
39b2478f01
FN-6227: handle non-empty worktree removals
...
Recover native worktree cleanup when git refuses to remove a non-empty worktree.
- Detect recoverable git worktree remove errors and fall back to filesystem removal plus admin pruning.
- Add a worktree remove fallback audit event for recovery visibility.
- Cover non-empty removal recovery with unit and real-git regression tests.
- Keep flaky-test quarantine exclusions merged with current main.
Files changed:
docs/architecture.md | 4 +-
...tree-remove-non-empty-recovery.real-git.test.ts | 139 +++++++++++++++++++++
.../engine/src/__tests__/worktree-backend.test.ts | 113 ++++++++++++++++-
packages/engine/src/run-audit.ts | 1 +
packages/engine/src/worktree-backend.ts | 57 ++++++++-
packages/engine/vitest.config.ts | 1 +
scripts/lib/test-quarantine.json | 5 +
7 files changed, 311 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-6227
Fusion-Task-Lineage: 98673303-8109-4fe8-8d9f-eb867fb28bdd
2026-06-11 16:15:07 -07:00
gsxdsm
3e69d3990d
FN-6244: protect active AI merge worktrees
...
Ensure AI merge cleanup only reaps stale, inactive temp worktrees.
- Register live AI merge clean-room paths in the active session registry while merges run.
- Add a minimum temp-worktree reap age and conservative lookup-error handling to sweep and prune paths.
- Expand cleanup tests and release the repaired AI merge cleanup test from quarantine.
Files changed:
docs/architecture.md | 2 +-
.../engine/src/__tests__/merger-ai-cleanup.test.ts | 38 ++++++++++++++--
.../__tests__/self-healing-tempdir-sweep.test.ts | 52 +++++++++++++++++++---
packages/engine/src/active-session-registry.ts | 2 +-
packages/engine/src/merger-ai.ts | 29 +++++++++++-
packages/engine/src/self-healing.ts | 28 +++++++++---
packages/engine/vitest.config.ts | 1 -
scripts/lib/test-quarantine.json | 5 ---
8 files changed, 132 insertions(+), 25 deletions(-)
Fusion-Task-Id: FN-6244
Fusion-Task-Lineage: 5c8ced12-d38f-4e45-9ea0-119b3236a2cb
2026-06-11 15:54:49 -07:00
gsxdsm
c285f3fb88
FN-6218: restore pi upgrade compatibility
...
Restore Pi-upgraded workspaces to keep Fusion resources accessible and recover title generation when configured models go stale.
- Mark read-only Fusion/Pi provider settings views as project-trusted so extension loading keeps working after Pi upgrades.
- Retry task title summarization with automatic model resolution when the configured provider model is missing from the Pi registry.
- Cover provider settings trust behavior and stale summarizer fallback paths with regression tests.
- Document the read-only settings trust contract and add a patch changeset.
Files changed:
.changeset/fn-6218-pi-upgrade-regressions.md | 5 +
docs/settings-reference.md | 2 +
docs/task-management.md | 2 +
.../commands/__tests__/provider-settings.test.ts | 16 ++++
packages/cli/src/commands/provider-settings.ts | 5 +
packages/core/src/__tests__/ai-summarize.test.ts | 102 +++++++++++++++++++++
packages/core/src/ai-summarize.ts | 85 ++++++++++++-----
.../src/__tests__/pi-create-fn-agent.test.ts | 32 +++++++
packages/engine/src/pi.ts | 7 +-
9 files changed, 233 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-6218
Fusion-Task-Lineage: 3d6aca32-a56a-43a0-a57b-8e6abc839ce9
2026-06-11 09:51:49 -07:00
gsxdsm
36f5ecdaba
FN-6226: skip fast-mode workflow graph validation nodes
...
Fast execution mode now bypasses custom pre-merge workflow graph validation consistently.
- Skip custom graph prompt, script, and gate nodes for fast-mode tasks while preserving human waits and CLI-agent work.
- Add regression coverage for fast-mode custom workflow behavior and standard-mode/null-mode validation.
- Document fast-mode workflow graph bypass behavior and record the published package changeset.
- Quarantine the unrelated self-healing real-git flake from the engine core gate.
Files changed:
.changeset/FN-6226-fast-mode-workflows.md | 5 +
docs/task-management.md | 6 +-
docs/workflow-steps.md | 2 +-
.../__tests__/executor-fast-mode-workflows.test.ts | 280 +++++++++++++++++++++
packages/engine/src/executor.ts | 16 ++
packages/engine/vitest.config.ts | 1 +
scripts/lib/test-quarantine.json | 5 +
7 files changed, 313 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6226
Fusion-Task-Lineage: 68d88a7a-e157-4d18-a2c2-9065946066de
2026-06-11 09:21:23 -07:00
gsxdsm
1f366c8de1
FN-6229: enforce symptom verification in triage and review
...
Require bug-class specs and reviews to prove original symptoms are reproduced and fixed.
- Add Symptom Verification guidance to triage prompt templates and self-review rules.
- Teach reviewer prompts to REVISE missing symptom verification or green-build-only acceptance.
- Document symptom-based acceptance alongside Surface Enumeration and cover the prompt contracts with tests.
Files changed:
AGENTS.md | 1 +
docs/testing.md | 12 +++++++++++
packages/engine/src/__tests__/reviewer.test.ts | 29 +++++++++++++++++++++++++-
packages/engine/src/__tests__/triage.test.ts | 23 +++++++++++++++++---
packages/engine/src/reviewer.ts | 2 ++
packages/engine/src/triage.ts | 20 ++++++++++++++++++
6 files changed, 83 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6229
Fusion-Task-Lineage: 01ad963f-c62b-410f-8571-57bc68307288
2026-06-11 09:21:23 -07:00
gsxdsm
82b89bd695
Merge pull request #1577 from Runfusion/feature/workflow-owned-merge-s04-builtin-ir-regions
...
refactor(workflow): S04 built-in merge retry recovery IR regions
2026-06-11 07:55:41 -07:00
gsxdsm
3e06bc6c69
Merge pull request #1576 from Runfusion/feature/workflow-owned-merge-s03-generic-scheduler-claim
...
refactor(workflow): S03 generic scheduler claim path
2026-06-11 07:54:57 -07:00
gsxdsm
6261f99184
Merge pull request #1575 from Runfusion/feature/workflow-owned-merge-s02-merge-request-projection
...
refactor(workflow): S02 merge request projection onto work items
2026-06-11 07:51:58 -07:00
gsxdsm
46db9a7759
Merge pull request #1571 from Runfusion/feature/workflow-owned-merge-retry-scheduling-plan
...
refactor(workflow): add workflow-owned merge migration slice
2026-06-11 07:50:32 -07:00
gsxdsm
d75f861f24
FN-6199: harden AI merge worktree cleanup
...
Guarantee AI merge clean-room worktrees are pruned on merge completion and swept by task state.
- prune pre-existing same-task AI merge temp worktrees before starting a new merge and audit cleanup outcomes
- add task-aware tempdir sweep rules with a short grace period for done or archived tasks and immediate cleanup for deleted tasks
- extend merger and self-healing coverage and document the updated stale worktree policy
Files changed:
.changeset/ai-merge-cleanup-sweep.md | 5 +
docs/architecture.md | 2 +-
packages/engine/src/__tests__/merger-ai-cleanup.test.ts | 109 ++++++++++++++++++--
packages/engine/src/__tests__/self-healing-tempdir-sweep.test.ts | 112 ++++++++++++++++++++-
packages/engine/src/merger-ai.ts | 63 ++++++++++++
packages/engine/src/self-healing.ts | 26 ++++-
6 files changed, 300 insertions(+), 17 deletions(-)
Fusion-Task-Id: FN-6199
Fusion-Task-Lineage: 659cc52f-0994-4315-a187-6c865bbe3983
2026-06-10 10:57:02 -07:00
gsxdsm
6359a67aab
FN-6200: document plugin-gated built-in workflows
...
Explain how bundled workflows stay hidden until their required plugin is installed.
- document the plugin-gated built-in workflow model in the plugin authoring guide
- show the core gating map and workflow visibility rules for listing and lookup
- note that the Compound Engineering built-in workflow appears only while its plugin is installed
Files changed:
docs/PLUGIN_AUTHORING.md | 48 ++++++++++++++++++++++++++++++++++++
docs/plugins/compound-engineering.md | 6 +++++
2 files changed, 54 insertions(+)
Fusion-Task-Id: FN-6200
Fusion-Task-Lineage: 72c64220-aef9-4f6b-92c3-5f53e67292fc
2026-06-10 10:31:46 -07:00
gsxdsm
4032a35a2f
FN-6188: harden AI merge temp worktree cleanup
...
Improve AI merge temp worktree cleanup and add recovery coverage.
- audit AI merge clean-room cleanup success and failure paths, including stderr/code details
- sweep stale fusion-ai-merge temp directories from tmpdir() during self-healing with active-session safeguards
- document the native temp-dir sweep behavior and add merge cleanup/self-healing regression tests
Files changed:
docs/architecture.md | 1 +
.../engine/src/__tests__/merger-ai-cleanup.test.ts | 169 +++++++++++++++++
.../__tests__/self-healing-tempdir-sweep.test.ts | 200 +++++++++++++++++++++
packages/engine/src/merger-ai.ts | 54 +++++-
packages/engine/src/run-audit.ts | 26 +++
packages/engine/src/self-healing.ts | 105 +++++++++++
6 files changed, 551 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6188
Fusion-Task-Lineage: eae9bcdc-9765-4104-85dc-81bb50445e99
2026-06-10 05:13:40 -07:00
gsxdsm
5b5cd77021
FN-6177: remove queued-concurrency scheduler audit
...
Remove the write-only queued-concurrency scheduler audit and its stale documentation.
- delete scheduler:dispatch-queued-concurrency audit emission and memo bookkeeping
- keep queued concurrency log dedupe coverage while removing audit-specific scheduler test assertions
- update architecture docs to describe queued concurrency diagnostics as log output only
Files changed:
docs/architecture.md | 4 +-
packages/engine/src/__tests__/scheduler.test.ts | 33 ----------------
packages/engine/src/scheduler.ts | 51 -------------------------
3 files changed, 2 insertions(+), 86 deletions(-)
Fusion-Task-Id: FN-6177
Fusion-Task-Lineage: e4516b41-5525-4e26-9602-772302d63f3d
2026-06-10 00:39:22 -07:00
gsxdsm
e326c5e8db
FN-6174: remove overlap priority inversion audit
...
Remove the unused scheduler overlap-priority inversion audit path.
- drop the scheduler memoization and audit emission for overlap-priority inversion blockers
- delete the reliability interaction test that only covered the removed audit behavior
- update architecture documentation to note the audit removal and keep the overlap deferral rule
Files changed:
docs/architecture.md | 3 +-
packages/engine/src/__tests__/reliability-interactions/scheduler-overlap-priority-inversion.test.ts | 212 ---------------------
packages/engine/src/scheduler.ts | 51 -----
3 files changed, 1 insertion(+), 265 deletions(-)
Fusion-Task-Id: FN-6174
Fusion-Task-Lineage: 3062b405-1f1d-473d-a02f-09a1077376c0
2026-06-09 23:37:31 -07:00
gsxdsm
7960789d37
FN-6167: fix stale mobile modal navigation history
...
Keep modal history entries in sync so mobile swipe-back reliably closes reopened task detail views.
- add removeNav support to navigation history and ignore self-triggered popstate callbacks
- route modal and overlay programmatic close handlers through navigation-aware wrappers
- add regression coverage for close-and-reopen mobile detail flows and document the stale stack bug
Files changed:
.../navigation-history-stale-modal-stack.md | 85 +++++++++++++
packages/dashboard/app/App.tsx | 35 ++++--
packages/dashboard/app/components/AppModals.tsx | 137 +++++++++++++++++----
.../app/components/__tests__/AppModals.test.tsx | 5 +-
.../__tests__/navigation-history.test.tsx | 113 ++++++++++++++++-
.../hooks/__tests__/useNavigationHistory.test.ts | 98 +++++++++++++++
.../dashboard/app/hooks/useNavigationHistory.ts | 55 ++++++++-
7 files changed, 494 insertions(+), 34 deletions(-)
Fusion-Task-Id: FN-6167
Fusion-Task-Lineage: 086d60ba-7e3d-4e83-b9b4-37ec49b06393
2026-06-09 22:44:30 -07:00
gsxdsm
1b7e52ea99
FN-6168: expose workflow routing in triage
...
Add workflow discovery, selection, and investigation-task routing guidance to triage.
- document workflow routing guidance in standard and fast triage prompts
- add workflow list/select tools to triage sessions for task specification
- pass workflow_id and noCommitsExpected through fn_task_create for child tasks
- cover prompt/tool availability and child-task routing in triage tests
- add a changeset and workflow docs for triage workflow selection behavior
Files changed:
.changeset/fn-6168-triage-workflow-routing.md | 5 ++
docs/workflow-steps.md | 2 +
packages/engine/src/__tests__/triage.test.ts | 93 +++++++++++++++++++++++++++
packages/engine/src/triage.ts | 27 ++++++++
4 files changed, 127 insertions(+)
Fusion-Task-Id: FN-6168
Fusion-Task-Lineage: acfcebd5-bb9c-42ba-90a0-e9bcb90216b3
2026-06-09 22:34:34 -07:00
gsxdsm
5a353317c4
Readme update and settings cleanup
2026-06-09 21:43:45 -07:00
gsxdsm
4435ca2c54
FN-6158: handle Codex auth-tier model incompatibility
...
Gracefully recover from unsupported Codex model selections on ChatGPT-account auth tiers.
- detect Codex and general model-auth-tier incompatibility errors as retryable model-selection failures
- trigger configured fallback models during session creation and prompt-time retries, with actionable operator guidance when no fallback works
- document the expanded fallback behavior and add engine regression coverage plus a CLI changeset
Files changed:
.changeset/fn-6158-model-compatibility-fallback.md | 5 +
docs/settings-reference.md | 2 +-
.../pi-prompt-session-and-check-recursion.test.ts | 25 ++++
packages/engine/src/__tests__/pi.test.ts | 136 ++++++++++++++++++++-
.../src/__tests__/transient-error-detector.test.ts | 24 ++++
packages/engine/src/pi.ts | 21 +++-
packages/engine/src/transient-error-detector.ts | 24 ++++
7 files changed, 234 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-6158
Fusion-Task-Lineage: 3e91f647-40f1-4296-afa4-40861310e1c1
2026-06-09 21:16:42 -07:00
gsxdsm
265496d0b6
feat(FN-000): model merge policy in builtin workflow IR
...
Fusion-Task-Id: FN-000
2026-06-09 20:44:45 -07:00
gsxdsm
0ec7b496ae
feat(FN-000): claim workflow work in scheduler substrate
...
Fusion-Task-Id: FN-000
2026-06-09 20:44:45 -07:00
gsxdsm
5a36ac1cd6
feat(FN-000): project merge requests to workflow work
...
Fusion-Task-Id: FN-000
2026-06-09 20:44:36 -07:00