gsxdsm
8eb050ed49
fix(FN-8764): clear stale planning state after refresh
...
Fusion-Task-Id: FN-8764
2026-08-06 23:49:37 -07:00
gsxdsm
5e718544ac
fix(FN-8806): wire fixture task lane flags
2026-08-06 22:07:23 -07:00
gsxdsm
297ec17f8e
FN-8819: preserve useful Planning Mode choices
...
Planning Mode preserves useful model-provided alternatives while retaining one Other response.
- Preserve distinct choices beyond the preferred 3–5 range
- Deduplicate model-authored Other entries into the canonical free-text choice
- Cover desktop and mobile option selection flows and document the behavior
Files changed:
.changeset/fn-8819-planning-options.md | 7 ++
docs/dashboard-guide.md | 3 +-
.../PlanningModeModal.ui-interactions.test.tsx | 137 ++++++++++++++++++++-
.../__tests__/planning-infinite-interview.test.ts | 28 +++--
.../planning-interview-formatters.test.ts | 5 +
packages/dashboard/src/planning.ts | 44 ++++---
6 files changed, 192 insertions(+), 32 deletions(-)
Fusion-Task-Id: FN-8819
Fusion-Task-Lineage: f748f4b7-3865-4a97-a8b0-d614e0b4cc0a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-06 20:42:30 -07:00
gsxdsm
6fd49f78c8
FN-8820: contain mobile message structure picker
...
Keep long structure selections within the shared Messages composer on narrow layouts.
- Make structure picker controls shrinkable and full-width in mobile stacks.
- Cover long-label attachment behavior and shared full-page/modal callers.
- Add a patch changeset for the mobile containment fix.
Files changed:
.../fn-8820-message-composer-mobile-width.md | 7 +++++
.../dashboard/app/components/MessageComposer.css | 17 +++++++++++
.../__tests__/MessageComposer.mobile-width.test.ts | 34 ++++++++++++++++++++++
.../components/__tests__/MessageComposer.test.tsx | 14 +++++++++
4 files changed, 72 insertions(+)
Fusion-Task-Id: FN-8820
Fusion-Task-Lineage: a66d51a6-6d92-4402-938c-698c09177583
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-06 20:36:31 -07:00
gsxdsm
cc97970b1d
test: use fast user-event instance in SettingsModal CLI-binary tests
...
Align SettingsModal.cliBinaryVisibility.test.tsx with the harness's
documented fast user-event options ({ delay: null, pointerEventsCheck: 0 },
FN-6612 velocity convention). Removes default inter-keystroke delay and
pointer-events tree walks; file test-time dropped ~1.9s -> ~0.5s.
2026-08-06 17:06:37 -07:00
gsxdsm
c3f4af67d6
FN-8818: enforce planning response choices
...
Ensure Planning Mode always presents four distinct suggested responses and one Other choice.
- Normalize model and restored awaiting-input questions with localized fallback options
- Deduplicate rendered options and cover restored-session and UI selection behavior
- Document the response-choice contract and add a patch changeset
Files changed:
.changeset/fn-8818-planning-response-choices.md | 7 +
docs/dashboard-guide.md | 2 +-
.../dashboard/app/components/PlanningModeModal.tsx | 39 ++--
.../PlanningModeModal.ui-interactions.test.tsx | 37 +++-
.../planning-answered-question-reemit.test.ts | 11 +-
.../__tests__/planning-infinite-interview.test.ts | 59 +++++-
packages/dashboard/src/planning.ts | 205 +++++++++++++++++----
7 files changed, 298 insertions(+), 62 deletions(-)
Fusion-Task-Id: FN-8818
Fusion-Task-Lineage: d515c293-c5ab-437b-86c9-734207321ded
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-06 16:19:33 -07:00
gsxdsm
6bacfd74f5
fix(FN-8817): stop no-op lifecycle bounce
...
Honor verified intentional no-ops and preserve durable merger parks during workflow graph unwind.
Fusion-Task-Id: FN-8817
2026-08-06 16:11:05 -07:00
gsxdsm
5532019fd3
FN-8816: make planning storage failures non-fatal
...
Keep Planning Mode running when browser storage writes fail.
- Retry failed project-scoped planning persistence after targeted eviction.
- Cover storage failure recovery and planning draft hand-off behavior.
- Quarantine the recurring planning-flow flake and add a patch changeset.
Files changed:
.changeset/fn-8816-planning-storage-recovery.md | 7 +
.../app/hooks/__tests__/modalPersistence.test.ts | 159 ++++++++++++++++++++-
packages/dashboard/app/hooks/modalPersistence.ts | 22 ++-
packages/dashboard/vitest.config.ts | 5 +
scripts/lib/test-quarantine.json | 5 +
5 files changed, 195 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-8816
Fusion-Task-Lineage: 929c3d96-3a28-49fa-8018-710fc75e3fcc
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-06 08:43:59 -07:00
gsxdsm
3ed31e9907
FN-8815: retry execution after first tool failure
...
Retry executor work after the first terminal tool-call failure by default.
- Set the default tool-failure threshold to one while preserving explicit project overrides.
- Expose and document the first-error default in Settings, translations, and the settings reference.
- Cover threshold resolution, save lifecycle, and executor retry behavior.
Files changed: .changeset/fn-8815-retry-first-tool-failure.md | 7 +++
docs/settings-reference.md | 4 +-
.../core/src/__tests__/settings-defaults.test.ts | 6 +-
packages/core/src/config/settings-schema.ts | 10 ++-
packages/core/src/tasks/in-review-stall.ts | 15 ++++-
packages/core/src/types/settings/settings-scope.ts | 10 ++-
.../dashboard/app/components/SettingsModal.tsx | 7 ++-
.../SettingsModal.scheduling-merge.test.tsx | 61 +++++++++++++++++-
.../settings/sections/SchedulingSection.search.ts | 2 +-
.../settings/sections/SchedulingSection.tsx | 4 +-
.../settings-default-descriptions.test.tsx | 12 ++++
.../__tests__/executor-tool-failure-retry.test.ts | 73 +++++++++++++++++++---
packages/i18n/locales/en/app.json | 2 +-
packages/i18n/src/resources.d.ts | 17 +++--
14 files changed, 200 insertions(+), 30 deletions(-)
Fusion-Task-Id: FN-8815
Fusion-Task-Lineage: 909181e7-2da5-4a27-92ee-4182732d9695
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-06 08:35:36 -07:00
gsxdsm
001bd2b97a
FN-8814: prevent stale planning badges during code review
...
Keep planning and review lifecycle badges unambiguous across board and list views.
- Classify active non-planning optional review gates for badge precedence.
- Suppress stale Planning badges and empty list placeholders during Code Review.
- Cover card, desktop list, mobile list, and workflow helper badge states.
Files changed:
packages/dashboard/app/components/ListView.tsx | 32 ++++++--
packages/dashboard/app/components/TaskCard.tsx | 24 +++++-
.../app/components/__tests__/ListView.test.tsx | 56 +++++++++++++
.../app/components/__tests__/TaskCard.test.tsx | 66 +++++++++++++++
.../app/utils/__tests__/taskProgress.test.ts | 96 +++++++++++++++++++++-
packages/dashboard/app/utils/taskProgress.ts | 34 ++++++--
6 files changed, 292 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-8814
Fusion-Task-Lineage: d3a9f087-02ea-4657-aa9e-30a537458cb9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-06 08:11:22 -07:00
gsxdsm
64413f4e8d
chore(release): v0.75.1
...
Version bump via changesets.
2026-08-06 00:18:07 -07:00
gsxdsm
cb500eeb4c
chore(release): v0.75.1-beta.2
...
Version bump via changesets.
2026-08-05 18:19:27 -07:00
gsxdsm
4f4aef7173
FN-8811: preserve explicit shared-member review holds
...
Keep shared branch-group integration moving unless an operator explicitly holds the task.
- Track auto-merge provenance and distinguish explicit user holds from inherited mission policy.
- Preserve manual holds across workflow recovery, merge coordination, API updates, and dashboard status.
- Add regression coverage, document the behavior, and quarantine the observed flaky test.
Files changed:
.changeset/fn-8811-shared-member-review-hold.md | 7 ++
docs/architecture.md | 4 +-
docs/dashboard-guide.md | 1 +
.../mission-store.sync-auto-merge.test.ts | 7 +-
.../__tests__/postgres/mission-store.pg.test.ts | 1 +
.../__tests__/postgres/store-movement.pg.test.ts | 20 ++++
packages/core/src/__tests__/task-merge.test.ts | 14 +++
.../core/src/async-stores/async-mission-store.ts | 6 +-
packages/core/src/index.gate.ts | 1 +
packages/core/src/index.ts | 1 +
packages/core/src/merge/task-merge.ts | 20 +++-
packages/core/src/missions/mission-store.ts | 6 +-
packages/core/src/task-store/serialization.ts | 2 +-
packages/core/src/task-store/task-creation.ts | 8 +-
packages/core/src/types/task/task-core.ts | 12 ++-
.../components/__tests__/TaskDetailModal.test.tsx | 63 ++++++++++++
.../dashboard/src/__tests__/routes-tasks.test.ts | 47 +++++++++
.../src/routes/register-task-workflow-routes.ts | 15 ++-
...cutor-live-branch-group-auto-merge-hold.test.ts | 87 +++++++++++++++++
.../src/__tests__/group-merge-coordinator.test.ts | 99 ++++++++++++++++++-
.../engine/src/__tests__/project-engine.test.ts | 57 ++++++++++-
.../self-healing-paused-abort-recovery.test.ts | 52 +++++++++-
packages/engine/src/__tests__/self-healing.test.ts | 106 +++++++++++++++++++++
.../workflow-graph-executor-handlers.test.ts | 23 +++++
packages/engine/src/executor.ts | 37 ++++++-
packages/engine/src/project-engine.ts | 25 +++--
packages/engine/src/self-healing.ts | 71 ++++++++++++--
.../src/workflow-node-runners/merge-runner.ts | 24 ++++-
.../src/workflows/workflow-graph-executor.ts | 4 +
.../src/workflows/workflow-graph-task-runner.ts | 6 ++
.../engine/src/workflows/workflow-node-handlers.ts | 5 +-
packages/engine/vitest.config.ts | 11 ++-
scripts/lib/test-quarantine.json | 5 +
33 files changed, 789 insertions(+), 58 deletions(-)
Fusion-Task-Id: FN-8811
Fusion-Task-Lineage: 5c1609bf-3132-4988-a254-fedec6c0e33d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-05 17:39:15 -07:00
gsxdsm
1e4c7faf68
FN-8812: fix workspace merge retry timer cleanup
...
Ensure workspace contention retries are canceled when the project engine stops.
- Track workspace busy re-enqueue timers separately from other merge timers
- Clear pending workspace retry callbacks during engine shutdown
- Strengthen retry ladder and timer cleanup coverage
Files changed:
.changeset/workspace-busy-timer-cleanup.md | 7 +++
.../engine/src/__tests__/project-engine.test.ts | 66 +++++++++++-----------
packages/engine/src/project-engine.ts | 23 +++++++-
3 files changed, 59 insertions(+), 37 deletions(-)
Fusion-Task-Id: FN-8812
Fusion-Task-Lineage: dd4c9581-8738-4082-8d6b-d91d4c463a5a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-05 17:10:55 -07:00
gsxdsm
1db7adcdb0
FN-8809: preserve agent principals for secret approvals
...
Keep prompt-gated secret approvals bound to their calling chat-agent session.
- Resolve extension secret callers through async session identity context.
- Give anonymous engine sessions unique principals and preserve them across tool invocations.
- Surface actionable approval decision errors in the mailbox and cover approval flows.
Files changed:
.changeset/fn-8809-secrets-chat-approval.md | 7 +
.../__tests__/extension-permission-gates.test.ts | 257 ++++++++++++++++++++-
packages/cli/src/extension.ts | 96 +++++---
.../__tests__/session-identity-registry.test.ts | 27 +++
packages/core/src/index.ts | 4 +-
packages/core/src/session-identity-registry.ts | 47 +++-
packages/dashboard/app/components/MailboxView.tsx | 11 +-
.../app/components/__tests__/MailboxView.test.tsx | 49 ++++
.../dashboard/src/__tests__/chat-manager.test.ts | 28 ++-
.../__tests__/register-approval-routes.test.ts | 22 ++
.../src/__tests__/pi-create-fn-agent.test.ts | 210 ++++++++++++++++-
packages/engine/src/pi.ts | 34 ++-
12 files changed, 748 insertions(+), 44 deletions(-)
Fusion-Task-Id: FN-8809
Fusion-Task-Lineage: 2e070f78-7215-4401-bcf2-6fa25fa27066
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-05 16:46:53 -07:00
gsxdsm
00fdbe1bef
FN-8808: bind dashboard secrets to selected project
...
Bind dashboard secret operations to the explicitly selected project.
- Include project identity in secrets and sync-passphrase requests.
- Reject missing project IDs before fallback project-store resolution.
- Prevent stale cross-project UI responses and document recovery guidance.
Files changed:
.changeset/fn-8808-secrets-project-binding.md | 7 +
docs/secrets.md | 6 +
packages/dashboard/app/components/SecretsView.tsx | 134 ++++++++++++++-----
.../dashboard/app/components/SettingsModal.tsx | 2 +-
.../__tests__/SecretsView.mobile.test.tsx | 9 ++
.../app/components/__tests__/SecretsView.test.tsx | 137 ++++++++++++++++++++
.../__tests__/SettingsModal.mcp.test.tsx | 69 +++++++++-
.../__tests__/SettingsModal.test-harness.tsx | 8 +-
.../app/components/dashboard/MainContent.tsx | 2 +-
.../app/components/overflowViewRegistry.tsx | 2 +-
.../settings/sections/McpServersCard.tsx | 58 +++++++--
.../settings/sections/SecretsSection.tsx | 5 +-
.../__tests__/register-secrets-routes.test.ts | 142 +++++++++++++++++++--
.../src/routes/register-secrets-routes.ts | 53 +++++---
14 files changed, 551 insertions(+), 83 deletions(-)
Fusion-Task-Id: FN-8808
Fusion-Task-Lineage: dd224dbe-46a5-49a6-b6e9-5d5bbe4e742e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-05 15:41:56 -07:00
gsxdsm
2a0827835d
FN-8810: wire secrets stores into runtime worktrees
...
Wire project secrets stores into runtime and dashboard heartbeat worktree acquisition.
- Inject the project secrets store into executor and heartbeat monitors.
- Cover in-process, UI-only dashboard, and secrets-env worktree materialization paths.
- Add a patch changeset for restored secrets-env files.
Files changed:
.changeset/fn-8810-secrets-env-runtime-wiring.md | 7 ++
.../commands/__tests__/dashboard-supervise.test.ts | 28 ++++-
packages/cli/src/commands/dashboard.ts | 38 ++++++-
.../src/__tests__/in-process-runtime.pg.test.ts | 121 ++++++++++++++++++++-
.../src/__tests__/secrets-env-writer.test.ts | 35 ++++++
.../worktree-acquisition-secrets-env.test.ts | 4 +-
packages/engine/src/runtimes/in-process-runtime.ts | 9 ++
7 files changed, 233 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-8810
Fusion-Task-Lineage: a67c3fbe-7744-4898-8a56-8739caa04479
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-05 15:23:08 -07:00
gsxdsm
6ccde2b0d8
FN-8806: stabilize task title expansion during resize
...
Keep expanded task titles stable while their container resizes.
- Measure persistent title text separately from the interactive expansion control.
- Fence hidden pop-out resize observers and preserve expansion state across detail hosts.
- Add rendering and browser coverage for resize-driven title behavior.
Files changed:
.changeset/fn-8806-task-title-flicker.md | 7 +
.../dashboard/app/components/TaskDetailModal.css | 16 +-
.../dashboard/app/components/TaskDetailModal.tsx | 37 +--
.../__tests__/TaskDetailModal.rendering.test.tsx | 42 +++-
.../app/task-modal-touch-resize-e2e-fixture.tsx | 149 +++++++++++-
.../task-modal-touch-resize-browser.test.ts | 267 ++++++++++++++++++++-
6 files changed, 485 insertions(+), 33 deletions(-)
Fusion-Task-Id: FN-8806
Fusion-Task-Lineage: 9519a5dc-ae6d-43e1-a0da-7ac963f27d7f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-05 13:02:48 -07:00
gsxdsm
09e4808d7e
FN-8807: revalidate dashboard cards after browser resume
...
Refresh dashboard task data when browser resume signals arrive, while retaining live SSE mutations across delayed snapshots and cache remounts.
- Revalidate on focus, pageshow, visibility, and SSE reconnect with overlapping-request deduplication.
- Reconcile live task creates and deletes synchronously before caching or pruning mutation fences.
- Cover resume triggers, instrumentation, and cache/remount membership races.
Files changed:
.../fn-8807-dashboard-resume-revalidation.md | 7 +
.../useTasks.resume-instrumentation.test.ts | 41 +++++
.../dashboard/app/hooks/__tests__/useTasks.test.ts | 65 ++++++++
packages/dashboard/app/hooks/useTasks.ts | 185 +++++++++++++++------
.../dashboard/app/utils/resumeInstrumentation.ts | 6 +
5 files changed, 256 insertions(+), 48 deletions(-)
Fusion-Task-Id: FN-8807
Fusion-Task-Lineage: df8f097e-5067-4fcc-8023-92a2ea329b40
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-05 11:39:23 -07:00
gsxdsm
4324762d9a
FN-8805: preserve expanded task titles on resize
...
Keep task-detail title expansion stable across resize observers and task changes.
- Measure overflow only in the collapsed title layout.
- Preserve explicit expand/collapse selection through stale resize callbacks.
- Cover modal and embedded narrow-title behavior with regression tests.
- Add a patch changeset for the title stability fix.
Files changed:
.changeset/fn-8805-stable-task-title.md | 7 ++
packages/dashboard/app/components/TaskDetailModal.tsx | 39 +++++---
packages/dashboard/app/components/__tests__/TaskDetailModal.rendering.test.tsx | 110 +++++++++++++++++++++
3 files changed, 141 insertions(+), 15 deletions(-)
Fusion-Task-Id: FN-8805
Fusion-Task-Lineage: 66177622-78e8-4378-88f6-c0979a96afd2
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-05 09:58:45 -07:00
gsxdsm
8120c07b6a
FN-8804: fix TaskDetailModal optimistic status assertions
...
Scope optimistic-opening runtime-status assertions to the execution statistics panel.
- Add a helper that verifies the scoped runtime row and lifecycle badge.
- Preserve coverage for duplicate Stats panels without ambiguous DOM queries.
Files changed:
.../__tests__/TaskDetailModal.rendering.test.tsx | 23 +++++++++++++++++++---
1 file changed, 20 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-8804
Fusion-Task-Lineage: b5573222-5d74-462a-b428-6eca687d68f3
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-05 01:01:32 -07:00
gsxdsm
907c051844
FN-8803: fix TaskDetailModal prompt refresh coverage
...
Align TaskDetailModal refresh tests with the narrow prompt API.
- Exercise visible plan refreshes through fetchTaskPrompt
- Reset prompt and detail API mocks to preserve Promise contracts
Files changed:
.../TaskDetailModal.definition-actions.test.tsx | 57 +++++++++++++---------
.../__tests__/TaskDetailModal.test-helpers.ts | 19 +++++---
2 files changed, 47 insertions(+), 29 deletions(-)
Fusion-Task-Id: FN-8803
Fusion-Task-Lineage: e2539c24-377b-48bf-81d1-80206da7071c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-05 00:55:15 -07:00
gsxdsm
fef3a6daf7
FN-8802: contain task cards in narrow layouts
...
Keep task-card content within its host at narrow desktop and mobile widths.
- Make task-card roots shrinkable, border-box flex items with bounded width
- Cover minimal and populated narrow-card layouts, including badges and controls
Files changed:
packages/dashboard/app/components/TaskCard.css | 7 ++++
.../__tests__/TaskCard.badge-wrap.test.tsx | 39 ++++++++++++++++++++++
2 files changed, 46 insertions(+)
Fusion-Task-Id: FN-8802
Fusion-Task-Lineage: 9b0d58ce-4c48-4f3a-89fc-2ef3d603b47e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-05 00:48:47 -07:00
gsxdsm
59cfa47b1c
FN-8801: refresh task state after lifecycle actions
...
Refresh dashboard task views immediately when lifecycle mutations are confirmed.
- Centralize confirmed task reconciliation across pause and unpause actions
- Propagate lifecycle handlers through dashboard detail and dock hosts
- Add state synchronization regression coverage and a patch changeset
Files changed:
.changeset/fn-8801-immediate-unpause-state.md | 7 ++
packages/dashboard/app/App.tsx | 6 +-
packages/dashboard/app/components/AppModals.tsx | 4 ++
packages/dashboard/app/components/ListView.tsx | 2 +
.../dashboard/app/components/TaskDetailModal.tsx | 26 +++++---
.../TaskDetailModal.definition-actions.test.tsx | 76 +++++++++++++++------
.../app/components/dashboard/MainContent.tsx | 2 +
.../app/components/useRightDockController.tsx | 4 ++
.../dashboard/app/hooks/__tests__/useTasks.test.ts | 57 ++++++++++++++++
packages/dashboard/app/hooks/useTasks.ts | 77 +++++++++-------------
10 files changed, 183 insertions(+), 78 deletions(-)
Fusion-Task-Id: FN-8801
Fusion-Task-Lineage: 2ab80d4d-8914-43c5-8ebb-281d31276b61
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-05 00:34:06 -07:00
gsxdsm
68e964383f
chore(release): v0.75.1-beta.1
...
Version bump via changesets.
2026-08-05 00:12:09 -07:00
gsxdsm
ec10411c4c
FN-8795: persist structured workflow review findings
...
Persist normalized actionable findings from review workflow nodes.
- Normalize bounded finding IDs, text, locations, and severities in workflow results.
- Surface individual findings for Review-tab selection and same-task revision.
- Preserve findings through workflow retries and document the advisory contract.
Files changed:
.changeset/fn-8795-structured-review-findings.md | 7 +++
docs/dashboard-guide.md | 2 +-
docs/workflow-steps.md | 4 +-
.../src/__tests__/workflow-step-results.test.ts | 32 +++++++++++++-
packages/core/src/index.gate.ts | 4 ++
packages/core/src/index.ts | 6 ++-
packages/core/src/types.ts | 4 ++
packages/core/src/types/task/task-review.ts | 5 +++
packages/core/src/types/workflow/workflow-steps.ts | 20 +++++++++
.../core/src/workflows/workflow-step-results.ts | 50 +++++++++++++++++++++-
.../dashboard/app/components/TaskReviewTab.tsx | 12 +++++-
.../src/routes/register-task-workflow-routes.ts | 26 ++++++++++-
.../workflow-malformed-verdict-gate.test.ts | 12 ++++++
packages/engine/src/executor.ts | 46 +++++++++++++++++---
.../src/workflows/workflow-graph-executor.ts | 11 +++++
15 files changed, 227 insertions(+), 14 deletions(-)
Fusion-Task-Id: FN-8795
Fusion-Task-Lineage: 09003b01-3f9a-4387-b6a7-f29066ce52f6
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-05 00:00:03 -07:00
gsxdsm
9c77788850
fix(FN-8795): refresh queued overlap blockers
2026-08-04 23:42:06 -07:00
gsxdsm
e75c788db2
FN-8794: add workflow review-kind markers
...
Classify workflow review nodes so review feedback can target their persisted results.
- validate and type explicit plan/code review-kind markers in workflow IR
- expose review-kind selection in the workflow editor and document the authoring contract
- persist markers through task workflow routes and graph execution with regression coverage
Files changed:
.changeset/fn-8794-review-kind.md | 7 +
docs/dashboard-guide.md | 4 +
docs/workflow-steps.md | 10 +
.../__tests__/workflow-ir-optional-group.test.ts | 17 ++
packages/core/src/__tests__/workflow-ir.test.ts | 83 +++++++++
packages/core/src/index.gate.ts | 2 +-
packages/core/src/index.ts | 2 +-
packages/core/src/types.ts | 2 +
packages/core/src/types/workflow/workflow-steps.ts | 8 +
.../src/workflows/builtin-code-review-group.ts | 1 +
.../src/workflows/builtin-plan-review-group.ts | 1 +
packages/core/src/workflows/workflow-ir-types.ts | 5 +
packages/core/src/workflows/workflow-ir.ts | 24 +++
.../app/components/WorkflowNodeEditor.tsx | 17 ++
.../__tests__/WorkflowNodeEditor.test.tsx | 206 +++++++++++++++++++++
.../dashboard/src/__tests__/routes-tasks.test.ts | 166 ++++++++++++++++-
.../src/routes/register-task-workflow-routes.ts | 82 ++++++--
.../workflow-graph-optional-group.test.ts | 177 +++++++++++++++++-
.../src/workflows/workflow-graph-executor.ts | 20 +-
19 files changed, 801 insertions(+), 33 deletions(-)
Fusion-Task-Id: FN-8794
Fusion-Task-Lineage: a7752469-59bc-406f-82e8-6ffde6c392ef
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-04 23:36:32 -07:00
gsxdsm
6f939a08a0
FN-8800: update board badges promptly
...
Accept authoritative equal-clock move events so board badges reflect lifecycle transitions without waiting for refresh.
- Treat canonical task:moved SSE destinations as authoritative when lifecycle clocks tie.
- Preserve rejection of delayed older move events.
- Cover prompt badge updates and stale-event protection in useTasks tests.
Files changed:
.../dashboard/app/hooks/__tests__/useTasks.test.ts | 49 ++++++++++++++++++++++
packages/dashboard/app/hooks/useTasks.ts | 13 +++++-
2 files changed, 61 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-8800
Fusion-Task-Lineage: 2982c053-bdfb-40d6-9e92-29a429a2a7e6
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-04 22:36:19 -07:00
gsxdsm
35810666be
FN-8797: stabilize task detail refreshes
...
Keep task-detail state and controls mounted while Definition content refreshes.
- Add a prompt-only task endpoint and client request path.
- Preserve task lifecycle, workflow badges, and actions during prompt refreshes and workflow updates.
- Cover prompt refresh stability, late responses, and route behavior.
Files changed:
packages/dashboard/app/__tests__/api-tasks.test.ts | 14 ++
packages/dashboard/app/api/legacy.ts | 3 +
packages/dashboard/app/api/tasks/tasks.ts | 15 ++
.../dashboard/app/components/TaskDetailModal.tsx | 102 ++++++----
.../__tests__/TaskDetailModal.rendering.test.tsx | 211 ++++++++++++++++++---
.../__tests__/TaskDetailModal.test-helpers.ts | 1 +
...gister-task-workflow-routes.task-prompt.test.ts | 93 +++++++++
.../src/routes/register-task-workflow-routes.ts | 17 ++
8 files changed, 388 insertions(+), 68 deletions(-)
Fusion-Task-Id: FN-8797
Fusion-Task-Lineage: 57d571b4-4a02-4c96-9986-444c525d8405
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-04 22:22:41 -07:00
gsxdsm
26219b8d34
FN-8799: suppress alerts during automatic task recovery
...
Prevent terminal task alerts while persisted automatic recovery owns a failed task.
- Classify scheduled and transient merge recovery ownership before wedge notification claims.
- Re-read live task state before claims and deferred failure delivery to avoid recovery races.
- Add recovery suppression coverage, architecture documentation, and a patch changeset.
Files changed:
.changeset/fn-8799-recovery-notifications.md | 7 ++
docs/architecture.md | 2 +
.../src/errors/transient-merge-error-classifier.ts | 18 +++++
.../__tests__/notification-service.test.ts | 78 ++++++++++++++++++-
.../__tests__/task-wedge-notification.test.ts | 26 ++++++-
.../src/notification/notification-service.ts | 90 ++++++++++++----------
.../src/notification/task-wedge-notification.ts | 37 +++++++--
packages/engine/src/project-engine.ts | 4 +-
8 files changed, 210 insertions(+), 52 deletions(-)
Fusion-Task-Id: FN-8799
Fusion-Task-Lineage: f8296e81-6b84-4697-8b20-63823f09d584
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-04 22:17:06 -07:00
Phil Larson
3071018593
fix: prepare browser smoke fixture before launch ( #3333 )
...
## Summary
- prepares emitted dashboard CSS and binds the fixture server before
starting Chrome
- prevents cold client builds from consuming the supervised browser
lifetime
- adds a regression that holds browser launch until fixture preparation
resolves
## Test plan
- `FUSION_DASHBOARD_DEEP=1 pnpm --filter @fusion/dashboard exec vitest
run --project dashboard-app-quality-foundation-ui --pool=vmThreads
--maxWorkers=1 --silent=passed-only --reporter=dot
app/__tests__/browser-layout-smoke-fixture.test.ts`
- `pnpm --filter @fusion/dashboard typecheck`
- `pnpm --filter @fusion/dashboard build`
- `FUSION_BROWSER_SMOKE_REQUIRE=1 pnpm --filter @fusion/dashboard
test:browser-smoke`
- `pnpm exec eslint packages/dashboard/scripts/browser-layout-smoke.mjs
packages/dashboard/app/__tests__/browser-layout-smoke-fixture.test.ts`
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Bug Fixes**
* Improved browser smoke test setup to ensure fixture preparation
completes before the browser launches.
* Added cleanup handling when browser startup fails, preventing leftover
test resources.
* Preserved the primary browser launch error when cleanup also fails,
while recording the cleanup issue.
* **Tests**
* Added coverage for fixture startup order, launch failures, and cleanup
behavior.
* Preserved existing HTML fixture validation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-08-04 22:03:52 -07:00
gsxdsm
fa3df0f6bd
FN-8798: synchronize planning status across task views
...
Keep board, list, and task detail planning indicators consistent with fresh lifecycle state.
- preserve authoritative task snapshots across SSE and detail refreshes
- render transient replan planning only for fresh, unpaused planner activity
- pass global pause state to every task-detail host and cover status convergence
Files changed:
packages/dashboard/app/App.tsx | 2 +
packages/dashboard/app/components/AppModals.tsx | 3 +
packages/dashboard/app/components/ListView.tsx | 11 +-
packages/dashboard/app/components/TaskCard.tsx | 7 +-
.../dashboard/app/components/TaskDetailModal.tsx | 27 ++-
.../app/components/__tests__/AppModals.test.tsx | 201 +++++++++++++++++++--
.../app/components/__tests__/ListView.test.tsx | 31 ++++
.../app/components/__tests__/TaskCard.test.tsx | 17 ++
.../app/components/dashboard/MainContent.tsx | 1 +
.../__tests__/useTasks-hydration-freshness.test.ts | 58 +++++-
.../dashboard/app/hooks/__tests__/useTasks.test.ts | 29 ++-
packages/dashboard/app/hooks/useTasks.ts | 51 +++++-
.../utils/__tests__/taskStatusBadgeLabel.test.ts | 22 ++-
.../dashboard/app/utils/taskStatusBadgeLabel.ts | 36 ++++
14 files changed, 453 insertions(+), 43 deletions(-)
Fusion-Task-Id: FN-8798
Fusion-Task-Lineage: 7defae4e-fb39-4d2c-943a-ef6c1a164bfc
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-04 21:57:00 -07:00
gsxdsm
6a5e1b0145
chore(release): v0.75.1-beta.0
...
Version bump via changesets.
2026-08-04 20:38:29 -07:00
gsxdsm
1320265455
FN-8796: stabilize task-detail lifecycle snapshots
...
Keep open task details on their newest lifecycle state during scheduler resyncs.
- Reconcile task snapshots by lifecycle timestamps across modal, panel, dock, list, and popup hosts.
- Preserve fetched detail fields while accepting only fresher status and column transitions.
- Cover stale queued dependency and file-overlap payload regressions.
Files changed:
packages/dashboard/app/App.tsx | 7 +-
packages/dashboard/app/components/AppModals.tsx | 16 +---
packages/dashboard/app/components/ListView.tsx | 9 +-
.../dashboard/app/components/TaskDetailModal.tsx | 33 +++----
.../app/components/__tests__/AppModals.test.tsx | 59 ++++++++++++
.../__tests__/TaskDetailModal.rendering.test.tsx | 45 +++++++++
.../app/components/dashboard/MainContent.tsx | 8 +-
.../app/components/useRightDockController.tsx | 4 +-
.../__tests__/useTasks-hydration-freshness.test.ts | 49 +++++++++-
packages/dashboard/app/hooks/useModalManager.ts | 3 +-
packages/dashboard/app/hooks/useTasks.ts | 103 +++++++++++++--------
11 files changed, 252 insertions(+), 84 deletions(-)
Fusion-Task-Id: FN-8796
Fusion-Task-Lineage: 430b2c46-717d-4b83-803f-6574cf64670d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-04 20:13:45 -07:00
gsxdsm
4167841e3c
FN-8792: resume Plan Review after approval
...
Approved plans now seed their canonical Plan Review continuation so dispatch can proceed.
- Add an engine handoff that atomically seeds approved Plan Review work without duplicating active continuations.
- Invoke the handoff under the dashboard approval lifecycle lock and cover approval, duplicate, and lifecycle-fence cases.
- Document the lifecycle guarantee and add a patch changeset.
Files changed:
.changeset/fn-8792-plan-approval-dispatch.md | 7 +
docs/architecture.md | 6 +-
.../dashboard/src/__tests__/routes-github.test.ts | 167 ++++++++++++++++++++-
.../src/routes/register-task-workflow-routes.ts | 17 +++
.../__tests__/plan-approval-hold-invariant.test.ts | 70 +++++++++
packages/engine/src/index.ts | 4 +
packages/engine/src/plan-review-continuation.ts | 38 +++++
7 files changed, 304 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-8792
Fusion-Task-Lineage: 0645c48d-ec92-475d-9e29-73cc22c12df8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-04 19:31:06 -07:00
gsxdsm
0658795181
FN-8793: restore workflow review feedback selection
...
Restore canonical workflow review feedback so revisions can select server-owned reviewer items.
- Normalize current Code Review and Plan Review workflow results into stable review items.
- Preserve verdict and reviewer type through review API mappings and reject forged client feedback.
- Add regression coverage and a patch changeset.
Files changed:
.changeset/fn-8793-workflow-review-items.md | 7 +
packages/core/src/index.gate.ts | 2 +-
packages/core/src/index.ts | 2 +-
packages/core/src/types/task/task-review.ts | 6 +-
packages/dashboard/app/api/agents/run-audit.ts | 2 +
.../dashboard/src/__tests__/routes-tasks.test.ts | 121 +++++++++++++++++
.../src/routes/register-task-workflow-routes.ts | 148 ++++++++++++++++++---
7 files changed, 264 insertions(+), 24 deletions(-)
Fusion-Task-Id: FN-8793
Fusion-Task-Lineage: 25da04f9-5c30-4ad8-9f82-e1ac91ec481f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-04 19:23:20 -07:00
gsxdsm
b9c5df04af
FN-8791: prevent NUL-containing chat checkpoints from crashing
...
Prevent malformed tool output from breaking chat checkpoint persistence.
- Sanitize NUL characters at chat JSONB persistence boundaries without mutating clean values.
- Observe rejected best-effort checkpoint writes so streaming sessions do not emit unhandled rejections.
- Add PostgreSQL, dashboard, and sanitizer regression coverage with operator-facing release notes.
Files changed:
.changeset/fn-8791-chat-nul-checkpoint.md | 7 ++
.../reliability/chat-jsonb-nul-sanitization.md | 44 +++++++++++
packages/core/src/__tests__/nul-sanitize.test.ts | 21 ++++-
.../chat-store-content-search-edit.pg.test.ts | 91 +++++++++++++++++++++-
packages/core/src/async-stores/async-chat-store.ts | 61 ++++++++++-----
packages/core/src/postgres/nul-sanitize.ts | 17 ++--
.../dashboard/src/__tests__/chat-manager.test.ts | 90 +++++++++++++++++++++
packages/dashboard/src/chat.ts | 21 ++++-
8 files changed, 322 insertions(+), 30 deletions(-)
Fusion-Task-Id: FN-8791
Fusion-Task-Lineage: 51e13634-04cc-4827-b72f-f33e40760940
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-04 19:15:20 -07:00
gsxdsm
71b13e7888
test(engine): memoize corpus scans in lifecycle-column gate tests
...
Both gate-admitted census tests re-scanned the whole ~1200-file corpus
redundantly: legacy-column-literal-census ran census() twice in full
(~900ms each) and no-legacy-move-targets re-read the entire tree a second
time in its anti-vacuity case. Memoize the census result and share a
comment-stripped read cache so each tree is scanned once per run.
Fusion-Task-Id: none
2026-08-04 17:03:44 -07:00
gsxdsm
5dbfef7b64
chore(release): v0.75.0
...
Version bump via changesets.
2026-08-04 16:41:28 -07:00
gsxdsm
b1d5e0fec3
chore(release): v0.75.0-beta.2
...
Version bump via changesets.
2026-08-04 11:58:02 -07:00
gsxdsm
1dc636b8b4
FN-8785: deduplicate queued dependency and scope logs
...
Persist queue episodes atomically so repeated scheduler and self-healing passes do not duplicate diagnostics.
- Add a queued-episode signature with PostgreSQL migration and task serialization support.
- Route dependency and file-scope queue transitions through the atomic deduplication API.
- Cover repeated and concurrent queue transitions, and update scheduler mocks for the new store API.
Files changed:
.changeset/fn-8785-queued-log-deduplication.md | 7 +
docs/architecture.md | 1 +
.../postgres/queued-episode-transition.pg.test.ts | 158 +++++++++++++++++++++
.../src/__tests__/postgres/schema-applier.test.ts | 9 +-
.../core/src/postgres/migrations/0000_initial.sql | 1 +
.../0044_fn_8785_queued_episode_signature.sql | 3 +
packages/core/src/postgres/schema-applier.ts | 12 +-
packages/core/src/postgres/schema/project.ts | 1 +
packages/core/src/store.ts | 5 +-
packages/core/src/task-store/audit-ops.ts | 80 +++++++++++
packages/core/src/task-store/persistence.ts | 2 +
packages/core/src/task-store/serialization.ts | 1 +
packages/core/src/types/task/task-core.ts | 5 +
...executor-outer-dispatch-dependency-gate.test.ts | 39 +++--
.../engine/src/__tests__/executor-test-helpers.ts | 7 +
.../__tests__/scheduler-overlap-starvation.test.ts | 43 +++++-
.../__tests__/scheduler-workflow-cutover.test.ts | 35 +++--
.../self-healing-completion-fanout.test.ts | 37 +++++
packages/engine/src/__tests__/self-healing.test.ts | 25 +++-
packages/engine/src/executor.ts | 16 ++-
packages/engine/src/scheduler.ts | 26 ++--
packages/engine/src/self-healing.ts | 117 +++++----------
22 files changed, 491 insertions(+), 139 deletions(-)
Fusion-Task-Id: FN-8785
Fusion-Task-Lineage: 8d68c243-f24e-4db4-bd1d-b7eda01309f6
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-04 11:52:15 -07:00
gsxdsm
39326b3be6
FN-8787: reduce task-detail title spacing
...
Reduce the task-detail content's top inset while preserving its side and bottom spacing.
- Override the shared desktop and mobile block-start padding with smaller token values.
- Cover desktop and mobile padding-order and spacing contracts.
Files changed:
packages/dashboard/app/components/TaskDetailModal.css | 8 ++++++++
packages/dashboard/app/components/__tests__/TaskDetailModal.css.test.ts | 22 ++++++++++++++++++++++
2 files changed, 30 insertions(+)
Fusion-Task-Id: FN-8787
Fusion-Task-Lineage: 1b556533-1b2c-4dd5-aff7-6df71091dd17
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-04 11:24:38 -07:00
gsxdsm
2af01dd27d
FN-8786: make task titles directly expandable
...
Make overflowed task titles directly expandable with an accessible title control.
- Replace the standalone Show more/Show less row with a title-owned button.
- Add focus styling while preserving title clamping and summarization behavior.
- Cover title expansion, keyboard access, fallbacks, and responsive styling.
Files changed:
.../dashboard/app/components/TaskDetailModal.css | 35 ++---
.../dashboard/app/components/TaskDetailModal.tsx | 26 ++--
.../__tests__/TaskDetailModal.rendering.test.tsx | 150 +++++++++++----------
3 files changed, 112 insertions(+), 99 deletions(-)
Fusion-Task-Id: FN-8786
Fusion-Task-Lineage: 351a9f33-42c0-4a4f-a34a-94aa726f2436
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-04 11:13:07 -07:00
gsxdsm
1d1a7fedab
fix(FN-8785): ignore completed duplicate history
...
Fusion-Task-Id: FN-8785
2026-08-04 10:52:12 -07:00
gsxdsm
07dccbe2bd
FN-8783: parallelize static merge-gate validators
...
Run independent static merge-gate policy validators concurrently without weakening gate ordering.
- Add a fail-closed concurrent static-validator runner with coverage for inventory and failures.
- Preserve curated engine, PostgreSQL, unit, and CI-shape gate contracts.
- Document the gate composition and warm-cache performance policy.
Files changed:
docs/testing.md | 13 ++-
package.json | 3 +-
packages/cli/src/__tests__/ci-workflow.test.ts | 21 ++--
packages/engine/vitest.config.ts | 36 +++++--
.../__tests__/engine-vitest-gate-policy.test.mjs | 90 +++++++++++++----
scripts/__tests__/run-static-gate-checks.test.mjs | 100 +++++++++++++++++++
scripts/run-static-gate-checks.mjs | 106 +++++++++++++++++++++
7 files changed, 332 insertions(+), 37 deletions(-)
Fusion-Task-Id: FN-8783
Fusion-Task-Lineage: d5d3c9e1-b3c4-45ff-a3e7-f9555585cd70
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-04 09:21:07 -07:00
gsxdsm
9e4a0817db
feat: restart the development engine on source changes ( #3329 )
...
## Summary
Add an opt-in source-development loop that restarts the dashboard and
engine when runtime TypeScript or JSON changes. Use `pnpm dev:watch`;
`pnpm dev:hmr` now combines Vite UI HMR with the same supervised
API/engine restart path.
The watcher filters tests, fixtures, generated declarations, build
output, and task state. It coalesces bursts with a two-second maximum
wait, waits for the child to acknowledge its IPC listener, and rebuilds
runtime dist artifacts before a source-triggered respawn.
## Safety model
- Close scheduler, triage, heartbeat, mission, routine, self-healing,
and merge admission before checking for active work.
- Let already-running agents reach a safe boundary; do not mutate
durable pause settings.
- Enter the existing graceful exit-code-86 shutdown and supervised
respawn path.
- Retry failed liveness reads and declined restart requests instead of
dropping the pending change.
- Keep ordinary `pnpm dev` behavior unchanged; inherited watch state
does not break nested non-dashboard development commands.
A development restart intentionally replaces the dashboard process, so
transient dashboard connections and project dev-server children
reconnect or restart with it. Agent work is the protected boundary.
## Validation
- `pnpm lint`
- `pnpm test:gate` (753 tests passed across engine, core, PostgreSQL
gate, and CI-shape suites)
- Focused CLI watcher/restart/supervision suites: 40 tests passed
- Focused engine drain/manager suites: 52 tests passed
- `pnpm --filter @runfusion/fusion typecheck`
- `pnpm --filter @fusion/engine typecheck`
- `pnpm verify:fast` (13 steps passed, including CLI build and real
health boot smoke)
- Manual unsupported-command probe confirms explicit `--watch` fails
clearly outside the dashboard command
## Post-Deploy Monitoring & Validation
- Watch for `[fusion:dev] source changed`, `source restart deferred`,
`active work drained`, and `restart requested` logs during the first
watched development session.
- Healthy behavior is one exit-86 respawn per edit batch, no interrupted
active agents, refreshed dist artifacts, and a healthy dashboard after
respawn.
- Investigate repeated restart loops, watcher attachment warnings,
declined restart retries, or liveness-read failures.
- Immediate mitigation is to use ordinary `pnpm dev` without `--watch`;
no production runtime behavior or durable setting needs rollback.
- Validation owner: Fusion maintainers during the first source edit
after merge.
---
[](https://github.com/EveryInc/compound-engineering-plugin )
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added `pnpm dev:watch` to automatically restart development runtime
processes when source files change.
* Development restarts now wait for active work to finish, preventing
new work from starting during the transition.
* Enhanced `pnpm dev:hmr` with graceful runtime source restarts while
keeping the dashboard available.
* Rapid source changes are grouped to avoid unnecessary restarts.
* **Documentation**
* Updated development setup and contribution guides with the new watch
workflow.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-08-04 08:57:30 -07:00
Phil Larson
b00d8adaeb
test(engine): fix moved skill resolver fixture import ( #3328 )
...
## Summary
- update the CE workflow-step fixture runtime import to the moved
`cli-runtime/skill-resolver.js` path
- align the runtime specifier with the existing type-only import
## Test plan
- `pnpm --filter @fusion/engine exec vitest run --project=engine-default
src/__tests__/ce-workflow-step-executor.test.ts --silent=passed-only
--reporter=dot --maxWorkers=1 --no-file-parallelism` (52 passed)
- `pnpm --filter @fusion/engine typecheck`
- `pnpm check:changesets`
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Tests**
* Updated test configuration to reference the correct skill resolver
location.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-08-04 08:55:01 -07:00
gsxdsm
be3799e7a3
FN-8782: stabilize TaskDetailModal rendering tests
...
Cover TaskDetailModal definition refresh behavior with reliable Promise-backed API mocks.
- Reset detail fetch mocks to preserve the production Promise contract
- Test refreshed markdown file links, rejected refreshes, visibility polling, and stale response fencing
- Update optimistic detail expectations for authoritative Definition refreshes
Files changed:
.../__tests__/TaskDetailModal.rendering.test.tsx | 200 +++++++++++++++++++--
.../__tests__/TaskDetailModal.test-helpers.ts | 17 +-
2 files changed, 197 insertions(+), 20 deletions(-)
Fusion-Task-Id: FN-8782
Fusion-Task-Lineage: 302a7d58-c014-473b-97f0-8751b510169c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-08-04 08:40:58 -07:00
gsxdsm
993a2f9d86
chore(release): v0.75.0-beta.1
...
Version bump via changesets.
2026-08-04 01:59:50 -07:00