Files
fusion/packages
Fusion Agent 95ea06b48a FN-179: add workspace contention wait-state recovery
Persist workspace acquisition contention as an operator-visible wait state and make recovery, lease authority, and localized dashboard status handling consistent.

- Add the contention wait-state schema, persistence, reset, serialization, and audit plumbing.
- Coordinate workspace acquisition claims, leases, retries, and self-healing recovery across engine and core.
- Surface contention status in task cards and detail views with translated labels and regression coverage.
- Document the workspace behavior and add the required changeset.

Files changed:
 .changeset/fn-179-workspace-acquire-contention.md  |   7 +
 AGENTS.md                                          |   1 +
 docs/architecture.md                               |   4 +-
 docs/dashboard-guide.md                            |   1 +
 docs/workspaces.md                                 |   4 +-
 .../src/__tests__/postgres/schema-applier.test.ts  |  34 ++++-
 ...workspace-worktrees-concurrent-merge.pg.test.ts |  35 +++++
 .../0066_fn_179_session_contention_wait_state.sql  |   3 +
 packages/core/src/postgres/schema-applier.ts       |  12 +-
 packages/core/src/postgres/schema/project.ts       |   2 +
 packages/core/src/store.ts                         |   2 +-
 .../core/src/task-store/branch-and-pr-entities.ts  |   2 +-
 packages/core/src/task-store/persistence.ts        |   4 +
 packages/core/src/task-store/reset-lifecycle.ts    |   2 +
 packages/core/src/task-store/serialization.ts      |   2 +
 packages/core/src/task-store/task-artifacts-ops.ts |   4 +
 packages/core/src/task-store/task-mutation-ops.ts  |  41 +++---
 packages/core/src/task-store/task-row-mappers.ts   |   2 +-
 packages/core/src/task-store/task-update.ts        |  10 ++
 packages/core/src/tasks/manual-retry-reset.ts      |   2 +
 packages/core/src/types/task/task-core.ts          |   4 +
 packages/dashboard/app/components/ListView.tsx     |   4 +-
 packages/dashboard/app/components/TaskCard.tsx     |   2 +-
 .../dashboard/app/components/TaskDetailModal.tsx   |   1 +
 .../taskStatusBadgeLabel.host-inventory.test.ts    |  19 +++
 .../utils/__tests__/taskStatusBadgeLabel.test.ts   |   7 +
 .../dashboard/app/utils/taskStatusBadgeLabel.ts    |   8 ++
 .../executor-planning-lock-transport-retry.test.ts | 132 ++++++++++++++++++
 ...roject-engine-spec-drift-startup-replay.test.ts |  84 ++++++++++++
 .../src/__tests__/self-healing-workspace.test.ts   |  58 ++++++++
 .../workspace-acquire-claim-release.test.ts        |  69 ++++++++++
 .../workspace-acquire-contention-hold.test.ts      |  75 +++++++++++
 .../workspace-acquire-lease-authority.test.ts      | 122 +++++++++++++++++
 .../worktree-acquisition-workspace.test.ts         |  32 +++++
 packages/engine/src/agent-tools.ts                 |  26 +++-
 .../engine/src/agents/active-session-registry.ts   |   9 ++
 .../create-authoritative-workflow-seams.ts         |  14 +-
 packages/engine/src/executor/deps-bags.ts          |   3 -
 .../engine/src/executor/execute-workflow-graph.ts  |   4 +-
 packages/engine/src/executor/run-implementation.ts |  34 ++++-
 .../engine/src/executor/session-contention-hold.ts |  47 +++----
 .../engine/src/executor/wire-executor-lifecycle.ts |  32 ++++-
 packages/engine/src/planning-handoff-recovery.ts   |  11 ++
 packages/engine/src/project-engine.ts              |   8 +-
 packages/engine/src/self-healing.ts                |  63 ++++++++-
 packages/engine/src/util/run-audit.ts              |   4 +
 .../engine/src/worktree/worktree-acquisition.ts    | 147 ++++++++++++++++-----
 packages/i18n/locales/en/app.json                  |   2 +
 packages/i18n/locales/es/app.json                  |   4 +-
 packages/i18n/locales/fr/app.json                  |   4 +-
 packages/i18n/locales/ko/app.json                  |   4 +-
 packages/i18n/locales/pt-BR/app.json               |   4 +-
 packages/i18n/locales/zh-CN/app.json               |   4 +-
 packages/i18n/locales/zh-TW/app.json               |   4 +-
 packages/i18n/src/resources.d.ts                   |   2 +
 55 files changed, 1103 insertions(+), 118 deletions(-)

Fusion-Task-Id: FN-179

Fusion-Task-Lineage: 30f1b365-2847-4ec1-85b3-23a98c92de40

Co-authored-by: Fusion <noreply@runfusion.ai>
2026-08-23 08:26:56 +00:00
..
2026-08-21 07:44:32 -07:00
2026-08-21 07:44:32 -07:00
2026-08-21 07:44:32 -07:00
2026-08-21 07:44:32 -07:00
2026-08-21 07:44:32 -07:00