gsxdsm
9e5c025113
FN-7608: block executors on pending approvals instead of allowing workarounds
...
Executors could previously treat a pending approval as a normal turn end and go hunt for ungated workarounds instead of stopping. This change makes wait-for-approval a hard suspend point.
- wait-for-approval now suspends the in-flight executor session via awaitAbortInFlightTaskWork
- Dedupe identical pending approvals so repeated waits don't pile up
- Executor prompts now carve out awaiting-approval as a legitimate turn end (agent-prompts.ts)
- Extend provisioning-gate and agent-action-gate coverage for the new suspend/carveout behavior
- Add changeset (patch) documenting the fix for release notes
- Update docs/agents.md and docs/architecture.md to describe the new blocking behavior
Files changed:
.changeset/fn-7608-awaiting-approval-blocking.md | 7 ++
docs/agents.md | 1 +
docs/architecture.md | 1 +
packages/core/src/agent-prompts.ts | 5 +
.../engine/src/__tests__/agent-action-gate.test.ts | 82 +++++++++++++
.../executor-approval-gate-suspend.test.ts | 128 +++++++++++++++++++++
.../executor-approval-prompt-carveout.test.ts | 61 ++++++++++
packages/engine/src/agent-heartbeat.ts | 13 +++
packages/engine/src/executor.ts | 28 +++++
packages/engine/src/pi.ts | 22 +++-
.../sandbox/__tests__/provisioning-gate.test.ts | 29 +++++
packages/engine/src/sandbox/provisioning-gate.ts | 11 ++
12 files changed, 384 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-7608
Fusion-Task-Lineage: 9e42d8ee-bda7-4ef1-b159-46c2100bbc48
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-06 19:03:07 -07:00
gsxdsm
97a49ac196
FN-6382: unquarantine stabilized flaky tests
...
Restore quarantined tests by fixing their flaky harness seams instead of extending the deletion ratchet.
- Mark active Vitest worker roots and skip live worker roots during prune cleanup.
- Make bubblewrap backend coverage deterministic with an injectable runner and restore it to the engine gate.
- Remove rescued core and bubblewrap tests from the quarantine ledger and Vitest excludes.
Files changed:
.../core/src/__test-utils__/vitest-teardown.ts | 10 +++++-
packages/core/vitest.config.ts | 8 +----
.../__tests__/sandbox/bubblewrap-backend.test.ts | 29 +++++++++------
packages/engine/src/sandbox/bubblewrap-backend.ts | 9 +++--
packages/engine/vitest.config.ts | 1 -
scripts/__tests__/test-changed.test.mjs | 23 ++++++++++++
scripts/lib/test-quarantine.json | 34 ++----------------
scripts/test-changed.mjs | 41 ++++++++++++++++++++++
8 files changed, 102 insertions(+), 53 deletions(-)
Fusion-Task-Id: FN-6382
Fusion-Task-Lineage: 018dc7ac-1ef1-495e-a5fd-96ea44fcd43b
2026-06-13 11:39:37 -07:00
gsxdsm
aa8bd3dc92
fix(FN-6043): recover stuck task processing
...
Fusion-Task-Id: FN-6043
2026-06-08 18:14:48 -07:00
Fusion (runfusion.ai)
818db4a714
feat(FN-5189): complete Step 3 — migrate supervised spawns
...
Fusion-Task-Id: FN-5189
Fusion-Task-Lineage: 4caa3f0a-af81-4c60-88e8-de229ed72e08
2026-05-19 17:19:02 -07:00
Fusion (runfusion.ai)
5253cc138e
feat(FN-4642): document and export container sandbox prototype
...
Fusion-Task-Id: FN-4642
Fusion-Task-Lineage: a42a36f8-2d2a-43fe-b7c1-d7cf1ad321c3
2026-05-16 01:04:47 -07:00
Fusion (runfusion.ai)
8955db96e2
fix(FN-4642): harden container backend against child_process mocks
...
Fusion-Task-Id: FN-4642
Fusion-Task-Lineage: a42a36f8-2d2a-43fe-b7c1-d7cf1ad321c3
2026-05-16 01:04:47 -07:00
Fusion (runfusion.ai)
6998ac4edd
test(FN-4642): lock native default backend capability id
...
Fusion-Task-Id: FN-4642
Fusion-Task-Lineage: a42a36f8-2d2a-43fe-b7c1-d7cf1ad321c3
2026-05-16 01:04:47 -07:00
Fusion (runfusion.ai)
d3e578bb24
feat(FN-4642): wire container sandbox backends into resolver
...
Fusion-Task-Id: FN-4642
Fusion-Task-Lineage: a42a36f8-2d2a-43fe-b7c1-d7cf1ad321c3
2026-05-16 01:04:46 -07:00
Fusion (runfusion.ai)
bf8c9b7af7
fix(FN-4642): preserve host env for container streaming runtime
...
Fusion-Task-Id: FN-4642
Fusion-Task-Lineage: a42a36f8-2d2a-43fe-b7c1-d7cf1ad321c3
2026-05-16 01:04:46 -07:00
Fusion (runfusion.ai)
d8768a280f
feat(FN-4642): complete Step 2 — add container backend prototype
...
Fusion-Task-Id: FN-4642
Fusion-Task-Lineage: a42a36f8-2d2a-43fe-b7c1-d7cf1ad321c3
2026-05-16 01:04:46 -07:00
Fusion (runfusion.ai)
13e74488a4
feat(FN-4642): complete Step 1 — add container argv builder
...
Fusion-Task-Id: FN-4642
Fusion-Task-Lineage: a42a36f8-2d2a-43fe-b7c1-d7cf1ad321c3
2026-05-16 01:04:46 -07:00
Fusion (runfusion.ai)
10b73d538d
feat(FN-4641): complete Step 4 — integrate sandbox provisioning approvals in dashboard
...
Fusion-Task-Id: FN-4641
Fusion-Task-Lineage: 50ac1fd2-8c88-4a29-9ebb-962a6b5c772c
2026-05-15 22:56:31 -07:00
Fusion (runfusion.ai)
a6a72ee1ff
feat(FN-4641): complete Step 3 — add engine provisioning gate helper
...
Fusion-Task-Id: FN-4641
Fusion-Task-Lineage: 50ac1fd2-8c88-4a29-9ebb-962a6b5c772c
2026-05-15 22:56:31 -07:00
Fusion (runfusion.ai)
ad73d76586
feat(FN-4640): complete Step 6 — dashboard sandbox audit surface
...
Fusion-Task-Id: FN-4640
Fusion-Task-Lineage: 4a91265f-1714-4854-b08d-7ddb06074253
2026-05-15 16:19:42 -07:00
Fusion (runfusion.ai)
115db18d17
feat(FN-4640): complete Step 3 — add sandbox audit decorator
...
Fusion-Task-Id: FN-4640
Fusion-Task-Lineage: 4a91265f-1714-4854-b08d-7ddb06074253
2026-05-15 16:19:42 -07:00
Fusion
cc7b9f308f
feat(FN-4643): complete Step 7 — documentation and delivery
...
Fusion-Task-Id: FN-4643
Fusion-Task-Lineage: edcfb4a1-f714-47e8-a919-50b35b40e6af
2026-05-15 12:12:50 -07:00
Fusion
e22bd46265
test(FN-4643): complete Step 3 — cover native streaming behavior
...
Fusion-Task-Id: FN-4643
Fusion-Task-Lineage: edcfb4a1-f714-47e8-a919-50b35b40e6af
2026-05-15 12:12:50 -07:00
Fusion
1e11704d1f
feat(FN-4643): complete Step 2 — add native runStreaming backend
...
Fusion-Task-Id: FN-4643
Fusion-Task-Lineage: edcfb4a1-f714-47e8-a919-50b35b40e6af
2026-05-15 12:12:50 -07:00
Fusion
cc15f194d3
fix(FN-4638): align sandbox-exec logger calls and lint
...
Fusion-Task-Id: FN-4638
Fusion-Task-Lineage: a6dcc3d9-b7ab-42c1-af88-c9e09f770d92
2026-05-15 11:18:44 -07:00
Fusion
08dd73ee1e
fix(FN-4638): tighten network bind scope and add fusion guard regressions
...
Fusion-Task-Id: FN-4638
Fusion-Task-Lineage: a6dcc3d9-b7ab-42c1-af88-c9e09f770d92
2026-05-15 11:18:44 -07:00
Fusion
ba54957777
feat(FN-4638): complete Step 4 — implement sandbox-exec backend
...
Fusion-Task-Id: FN-4638
Fusion-Task-Lineage: a6dcc3d9-b7ab-42c1-af88-c9e09f770d92
2026-05-15 11:18:44 -07:00
Fusion
c087ee4b3e
feat(FN-4638): complete Step 3 — add sandbox-exec policy adapter
...
Fusion-Task-Id: FN-4638
Fusion-Task-Lineage: a6dcc3d9-b7ab-42c1-af88-c9e09f770d92
2026-05-15 11:18:44 -07:00
Fusion
cfc95c8ea8
feat(FN-4638): complete Step 2 — add SBPL template fragments
...
Fusion-Task-Id: FN-4638
Fusion-Task-Lineage: a6dcc3d9-b7ab-42c1-af88-c9e09f770d92
2026-05-15 11:18:44 -07:00
Fusion
46348683bc
feat(FN-4638): complete Step 1 — add sandbox-exec detection
...
Fusion-Task-Id: FN-4638
Fusion-Task-Lineage: a6dcc3d9-b7ab-42c1-af88-c9e09f770d92
2026-05-15 11:18:44 -07:00
Fusion
41ceae056a
feat(FN-4637): complete docs, changeset, and verification fixes
...
Fusion-Task-Id: FN-4637
Fusion-Task-Lineage: 564c5692-3aaf-4396-9306-a395703cf365
2026-05-15 10:50:03 -07:00
Fusion
3427e8b471
fix(FN-4637): harden bubblewrap runner and extend coverage
...
Fusion-Task-Id: FN-4637
Fusion-Task-Lineage: 564c5692-3aaf-4396-9306-a395703cf365
2026-05-15 10:50:03 -07:00
Fusion
d44a3625d6
feat(FN-4637): complete Step 3 — implement bubblewrap backend
...
Fusion-Task-Id: FN-4637
Fusion-Task-Lineage: 564c5692-3aaf-4396-9306-a395703cf365
2026-05-15 10:50:03 -07:00
Fusion
b755553bd6
feat(FN-4637): complete Step 2 — add bubblewrap policy adapter
...
Fusion-Task-Id: FN-4637
Fusion-Task-Lineage: 564c5692-3aaf-4396-9306-a395703cf365
2026-05-15 10:50:03 -07:00
Fusion
063977e23e
feat(FN-4637): complete Step 1 — detect bubblewrap availability
...
Fusion-Task-Id: FN-4637
Fusion-Task-Lineage: 564c5692-3aaf-4396-9306-a395703cf365
2026-05-15 10:50:03 -07:00
Fusion
6079645c8c
fix(FN-4639): resolve workspace lint and typecheck regressions
...
Fusion-Task-Id: FN-4639
Fusion-Task-Lineage: 40745d49-dd20-4c51-87e3-42062417f788
2026-05-15 10:41:37 -07:00
Fusion
66faac47ab
fix(FN-4636): align native backend exec options typing
...
Fusion-Task-Id: FN-4636
Fusion-Task-Lineage: 38ff2f48-4cb1-42c2-8f64-eb3b8d3d7f2c
2026-05-15 10:24:01 -07:00
Fusion
fcaa0d3b8f
feat(FN-4636): complete Step 3 — add sandbox backend resolver
...
Fusion-Task-Id: FN-4636
Fusion-Task-Lineage: 38ff2f48-4cb1-42c2-8f64-eb3b8d3d7f2c
2026-05-15 10:24:01 -07:00
Fusion
b1de46e1c1
feat(FN-4636): complete Step 2 — add native sandbox backend
...
Fusion-Task-Id: FN-4636
Fusion-Task-Lineage: 38ff2f48-4cb1-42c2-8f64-eb3b8d3d7f2c
2026-05-15 10:24:01 -07:00
Fusion
92be0b4217
feat(FN-4636): complete Step 1 — define sandbox backend interface
...
Fusion-Task-Id: FN-4636
Fusion-Task-Lineage: 38ff2f48-4cb1-42c2-8f64-eb3b8d3d7f2c
2026-05-15 10:24:01 -07:00