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-23 01:36:12 +00:00
2026-08-21 07:44:32 -07:00
2026-08-23 08:26:56 +00:00
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-23 08:26:56 +00:00
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-07-27 19:40:08 -07:00
2026-08-21 07:44:32 -07:00