Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
2065623
feat(migrate): Relayflows v2 campaign for the native-delivery migration
Sep 20, 2026
a7ab690
fix(migrate): run the native-delivery campaign with a local agent worker
Sep 20, 2026
20e2886
fix(migrate): stop gating agent steps on an undiagnosable subprocess_…
Sep 20, 2026
a32d5b8
fix(migrate): gate that the seam is actually wired, not merely compiled
Sep 20, 2026
fd7b9be
fix(migrate): check artifacts on disk, not through artifact_exists
Sep 20, 2026
c8fe339
fix(migrate): targeted-gate judged the selector's mode, not the hazard
Sep 20, 2026
d0722bb
feat(migrate): support --reuse-from on relaunch
Sep 20, 2026
e3bd628
fix(migrate): two gates contradicted each other and the agent paid fo…
Sep 20, 2026
475535d
fix(migrate): pty_worker.rs belongs in the lane it is being wrapped into
Sep 20, 2026
ff136a3
fix(migrate): judge unit tests against a baseline, not against perfec…
Sep 20, 2026
3eddbeb
fix(migrate): stamp evidence with the run that produced it
Sep 20, 2026
a69297e
fix(migrate): cap vitest concurrency so the flow stops killing its ow…
Sep 20, 2026
1e06740
fix(migrate): retry a red parity suite once before failing the run
Sep 20, 2026
01292d1
fix(migrate): tell repair-unlaunched to stop when the gate is already…
Sep 20, 2026
a78a984
fix(migrate): gate the hazard the mutation-proof requirement creates
Sep 20, 2026
1b899f2
fix(migrate): seal the product tree, not just the evidence directory
Sep 20, 2026
b85c9f6
feat(migrate): make the codex CLI swappable, for credential exhaustion
Sep 20, 2026
24a0718
feat(flows): relayflows-agent-cli-v1 adapter for cursor-agent
Sep 20, 2026
fd8436a
feat(migrate): credential-exhaustion lane that preserves reuse
Sep 20, 2026
f2e71d4
fix(migrate): require a failing transcript PER invariant, and surface…
Sep 20, 2026
e1954da
feat(delivery): phase-0 delivery-backend seam — spike, blocked on two…
Sep 20, 2026
b4d4b75
chore(delivery): wire the unlaunched e2e suite and track trajectories
Sep 20, 2026
ce65cef
style: auto-format with Prettier
github-actions[bot] Sep 20, 2026
192ce84
style: auto-format with Prettier
github-actions[bot] Sep 20, 2026
6510a3f
review: fresh read of the unreviewed fixes finds 2 blockers; gates st…
Sep 20, 2026
0bc1868
style: auto-format with Prettier
github-actions[bot] Sep 20, 2026
76a1830
fix(delivery): close F1 and F2, the two double-delivery blockers
Sep 20, 2026
3782218
fix(delivery): close F4, and make the seam's duplicate guard safe to …
Sep 20, 2026
58bf37f
fix(delivery): hoist the seam to the runtime, closing F6
Sep 20, 2026
3cae86c
fix(delivery): stop reporting unwritten frames as possible writes (F3)
Sep 20, 2026
3322fdf
fix(delivery): make the unobserved cursor advance observable (F5)
Sep 21, 2026
b4127b8
fix(delivery): one observation predicate, one derived timeout (F7, F8)
Sep 21, 2026
c96a6fa
fix(delivery): retain in-doubt deliveries as non-redeliverable dead l…
Sep 21, 2026
5bbdde2
test(delivery): guard the timeout-ack invariant where the hazard is (…
Sep 21, 2026
818ed66
fix(delivery): guard delivery_verified too, declare delivery_unobserv…
Sep 21, 2026
bd6c1b6
test(delivery): account for unobserved deliveries instead of assuming…
Sep 21, 2026
7ae0025
test(delivery): hold the seam invariants against the route that ships…
Sep 21, 2026
a2f2a41
style: auto-format with Prettier
github-actions[bot] Sep 21, 2026
914cd52
docs(delivery): name the headless route's rule-4 violation at the sit…
Sep 21, 2026
9b02d20
test(delivery): walk the retry cap from zero instead of starting at i…
Sep 21, 2026
a2a4f55
fix(migrate): typecheck the unlaunched suite even when it need not ru…
Sep 21, 2026
0c3d95e
fix(delivery): stop answering "never sent" and "route unreachable" al…
Sep 21, 2026
765511b
fix(delivery): make an acknowledgement name its observation (F15)
Sep 21, 2026
c142997
docs(delivery): correct phase 0's effort estimate with what it cost (…
Sep 21, 2026
c1bf3cc
docs(delivery): correct what phase 0 put behind the seam (F19)
Sep 21, 2026
ead76a1
fix(delivery): make the guards actually guard the hazard they name
Sep 21, 2026
e5b3d8f
fix(delivery): a handed-over delivery that exhausts retries is in dou…
Sep 21, 2026
80b886a
fix(delivery): stop the fleet call site from defeating its own guard …
Sep 21, 2026
13b4988
feat(flows): add the phase-0 delivery re-review flow
Sep 21, 2026
aa07152
fix(flows): make the collect step start with an executable
Sep 21, 2026
b42554a
fix(tests): stop counting an unobserved delivery as a delivered one
Sep 21, 2026
5a9d29d
fix(bench): put unobserved deliveries in the denominator they were mi…
Sep 21, 2026
748102e
fix(delivery): close two holes in yesterday's in-doubt fix (F1, F4)
Sep 21, 2026
ffec500
fix(delivery): close cancellation and cursor accounting gaps
Sep 21, 2026
3097eff
fix(manifest): preserve fail-closed test routing
Sep 21, 2026
5c144ba
fix(tests): make delivery id narrowing explicit
Sep 21, 2026
b2b1664
fix(security): make delivery seal hashing atomic
Sep 21, 2026
350a086
fix(delivery): preserve in-doubt state across restart
Sep 23, 2026
3b587aa
fix(migrate): tighten evidence fixture gates
Sep 23, 2026
b63e106
test(delivery): reuse seam in wait retry coverage
Sep 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion .agentworkforce/features/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
version: '1.1'
updated: '2026-07-30'
updated: '2026-09-20'

# Every user-facing feature in this repo, categorized and scored.
#
Expand Down Expand Up @@ -100,6 +100,17 @@ categories:
location: packages/cli/src/cli/commands/core.ts
verify_tier: 2

- id: delivery-backend-seam
name: Delivery Backend Seam
description: >-
Route-aware delivery seam the broker sends through: transport fallback
only before a write commits, no re-send of a send left in doubt, the
accepted route recorded and settled by its own rules, and no
acknowledgement reported that was not observed. The PTY injector is
its first backend.
location: crates/broker/src/delivery/, crates/broker/src/broker/delivery_verification.rs, crates/broker/src/lib.rs, crates/broker/src/pty_worker.rs, crates/broker/src/runtime/, crates/broker/src/node_control.rs, crates/broker/src/node_delivery_probe.rs, crates/broker/src/worker.rs, crates/broker/tests/, packages/contracts/fixtures/event-fixtures.json, packages/harness-driver/src/protocol.ts, tests/benchmarks/harness.ts, tests/benchmarks/reliability.ts, tests/benchmarks/stress.ts, tests/e2e/unlaunched/, tests/fixtures/delivery-contract-evals.test.ts, tests/fixtures/targeted-feature-verification.test.ts, tests/integration/broker/cli-spawn.test.ts, tests/integration/broker/evals/delivery/observation-ledger.unit.test.ts, tests/integration/broker/infra-failures.test.ts, tests/integration/broker/stress.test.ts, tests/integration/broker/utils/assert-helpers.ts, tests/integration/broker/utils/obligation-conformance.ts, tests/parity/
verify_tier: 6

agent-management:
name: Agent Management
description: Register and manage agents in the workspace
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Trajectory: Implement native delivery phase 0 Rust seam

> **Status:** ✅ Completed
> **Confidence:** 90%
> **Started:** September 20, 2026 at 02:39 AM
> **Completed:** September 20, 2026 at 02:47 AM

---

## Summary

Added the phase-0 Rust delivery seam with route-aware send/settle policy, PTY adapter, invariant tests, and mutation evidence.

**Approach:** Standard approach

---

## Key Decisions

### Added a pure delivery seam before wiring native backends
- **Chose:** Added a pure delivery seam before wiring native backends
- **Reasoning:** Phase 0 only needs the commit-boundary and route-settlement contract beside the existing PTY injector; keeping it pure lets invariant tests prove fallback, doubt, route, and ack semantics without launching vendor CLIs.

---

## Chapters

### 1. Work
*Agent: default*

- Added a pure delivery seam before wiring native backends: Added a pure delivery seam before wiring native backends
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{
"id": "traj_2024xatdruuf",
"version": 1,
"task": {
"title": "Implement native delivery phase 0 Rust seam"
},
"status": "completed",
"startedAt": "2026-09-20T09:39:49.131Z",
"completedAt": "2026-09-20T09:47:03.950Z",
"agents": [
{
"name": "default",
"role": "lead",
"joinedAt": "2026-09-20T09:46:50.274Z"
}
],
"chapters": [
{
"id": "chap_zrgbcbkfmd27",
"title": "Work",
"agentName": "default",
"startedAt": "2026-09-20T09:46:50.274Z",
"endedAt": "2026-09-20T09:47:03.950Z",
"events": [
{
"ts": 1789897610274,
"type": "decision",
"content": "Added a pure delivery seam before wiring native backends: Added a pure delivery seam before wiring native backends",
"raw": {
"question": "Added a pure delivery seam before wiring native backends",
"chosen": "Added a pure delivery seam before wiring native backends",
"alternatives": [],
"reasoning": "Phase 0 only needs the commit-boundary and route-settlement contract beside the existing PTY injector; keeping it pure lets invariant tests prove fallback, doubt, route, and ack semantics without launching vendor CLIs."
},
"significance": "high"
}
]
}
],
"retrospective": {
"summary": "Added the phase-0 Rust delivery seam with route-aware send/settle policy, PTY adapter, invariant tests, and mutation evidence.",
"approach": "Standard approach",
"confidence": 0.9
},
"commits": [],
"filesChanged": [],
"projectId": "AgentWorkforce/relay",
"tags": [],
"_trace": {
"startRef": "a7ab690837fa89ee8602f2533ad06df362c5c530",
"endRef": "a7ab690837fa89ee8602f2533ad06df362c5c530"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Trajectory: Phase 0 seam parity verification and fixes

> **Status:** ✅ Completed
> **Confidence:** 93%
> **Started:** September 20, 2026 at 02:31 PM
> **Completed:** September 20, 2026 at 02:35 PM

---

## Summary

Validated phase-0 seam contract: all required parity suites and delivery seam invariants pass unchanged

**Approach:** Standard approach
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"id": "traj_3hla2fbk5xka",
"version": 1,
"task": {
"title": "Phase 0 seam parity verification and fixes"
},
"status": "completed",
"startedAt": "2026-09-20T21:31:06.744Z",
"completedAt": "2026-09-20T21:35:27.206Z",
"agents": [],
"chapters": [],
"retrospective": {
"summary": "Validated phase-0 seam contract: all required parity suites and delivery seam invariants pass unchanged",
"approach": "Standard approach",
"confidence": 0.93
},
"commits": [],
"filesChanged": [],
"projectId": "AgentWorkforce/relay",
"tags": [],
"_trace": {
"startRef": "f2e71d42c6478e75fc4ef81489d2a7fd03a5b380",
"endRef": "f2e71d42c6478e75fc4ef81489d2a7fd03a5b380"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Trajectory: Native delivery phase 0 seam

> **Status:** ✅ Completed
> **Confidence:** 88%
> **Started:** September 20, 2026 at 10:17 AM
> **Completed:** September 20, 2026 at 10:19 AM

---

## Summary

Phase 0 native delivery seam gates rechecked; routed pty_worker.rs through delivery-backend-seam and covered it in targeted verification regression.

**Approach:** Standard approach

---

## Key Decisions

### Mapped pty_worker.rs to delivery-backend-seam
- **Chose:** Mapped pty_worker.rs to delivery-backend-seam
- **Reasoning:** Phase-0 changed-file gates include the PTY worker test fix; routing it prevents targeted verification from failing closed to an unmapped runtime path without weakening assertions.

---

## Chapters

### 1. Work
*Agent: default*

- Mapped pty_worker.rs to delivery-backend-seam: Mapped pty_worker.rs to delivery-backend-seam
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{
"id": "traj_8uwf6kxyn7ay",
"version": 1,
"task": {
"title": "Native delivery phase 0 seam"
},
"status": "completed",
"startedAt": "2026-09-20T17:17:54.092Z",
"completedAt": "2026-09-20T17:19:37.804Z",
"agents": [
{
"name": "default",
"role": "lead",
"joinedAt": "2026-09-20T17:18:42.564Z"
}
],
"chapters": [
{
"id": "chap_c0n0askabrk5",
"title": "Work",
"agentName": "default",
"startedAt": "2026-09-20T17:18:42.564Z",
"endedAt": "2026-09-20T17:19:37.804Z",
"events": [
{
"ts": 1789924722565,
"type": "decision",
"content": "Mapped pty_worker.rs to delivery-backend-seam: Mapped pty_worker.rs to delivery-backend-seam",
"raw": {
"question": "Mapped pty_worker.rs to delivery-backend-seam",
"chosen": "Mapped pty_worker.rs to delivery-backend-seam",
"alternatives": [],
"reasoning": "Phase-0 changed-file gates include the PTY worker test fix; routing it prevents targeted verification from failing closed to an unmapped runtime path without weakening assertions."
},
"significance": "high"
}
]
}
],
"retrospective": {
"summary": "Phase 0 native delivery seam gates rechecked; routed pty_worker.rs through delivery-backend-seam and covered it in targeted verification regression.",
"approach": "Standard approach",
"confidence": 0.88
},
"commits": [],
"filesChanged": [],
"projectId": "AgentWorkforce/relay",
"tags": [],
"_trace": {
"startRef": "475535df06b7ec26192d0d9a1f2858443d871fe0",
"endRef": "475535df06b7ec26192d0d9a1f2858443d871fe0"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
{
"version": "1.0.0",
"id": "641507c2-1b76-4c29-971b-66921acc3d40",
"timestamp": "2026-09-20T16:33:17.885Z",
"trajectory": "traj_9ea0ynxd3nla",
"files": [
{
"path": "scripts/migrate/native-delivery-gates.mjs",
"conversations": [
{
"contributor": {
"type": "ai"
},
"ranges": [
{
"start_line": 79,
"end_line": 85,
"revision": "e3bd628d06000ebd987ff05a53c88813d020d90e"
},
{
"start_line": 120,
"end_line": 131,
"revision": "e3bd628d06000ebd987ff05a53c88813d020d90e"
},
{
"start_line": 156,
"end_line": 167,
"revision": "e3bd628d06000ebd987ff05a53c88813d020d90e"
},
{
"start_line": 201,
"end_line": 207,
"revision": "e3bd628d06000ebd987ff05a53c88813d020d90e"
},
{
"start_line": 227,
"end_line": 233,
"revision": "e3bd628d06000ebd987ff05a53c88813d020d90e"
},
{
"start_line": 256,
"end_line": 267,
"revision": "e3bd628d06000ebd987ff05a53c88813d020d90e"
}
]
}
]
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Trajectory: Native-delivery phase 0: TypeScript lane (feature manifest + delivery-contract regression coverage)

> **Status:** ✅ Completed
> **Confidence:** 85%
> **Started:** September 20, 2026 at 09:32 AM
> **Completed:** September 20, 2026 at 09:33 AM

---

## Summary

Registered delivery-backend-seam in the feature manifest routing all five phase-0 Rust paths, and added 13 tests: the four doc-named delivery-contract suites now execute in npm test, plus 5 seam-rule regression cases and 2 manifest-routing assertions. Every assertion mutation-proven. Reported two campaign-level gate defects rather than working around them.

**Approach:** Standard approach

---

## Key Decisions

### Registered delivery-backend-seam routing five phase-0 Rust paths, not just crates/broker/src/delivery/
- **Chose:** Registered delivery-backend-seam routing five phase-0 Rust paths, not just crates/broker/src/delivery/
- **Reasoning:** The contract names delivery/ as the minimum and the gate uses includes(); routing lib.rs, runtime/delivery.rs, runtime/tests.rs and tests/ as well is what actually stops #1812's fail-closed fallback for this PR's real changed-file set (63 scenarios -> 1)

### Put the new delivery-contract cases in tests/fixtures/ rather than evals/suites/*/cases.md
- **Chose:** Put the new delivery-contract cases in tests/fixtures/ rather than evals/suites/*/cases.md
- **Reasoning:** The phase-0 edit-gate allowlist treats any evals/ change as scope creep and tsScope is tests/ + manifest.yaml only; tests/fixtures runs in npm test, loads and asserts all four named suites, and keeps the lane green. Flagged the allowlist gap for the operator

---

## Chapters

### 1. Work
*Agent: default*

- Registered delivery-backend-seam routing five phase-0 Rust paths, not just crates/broker/src/delivery/: Registered delivery-backend-seam routing five phase-0 Rust paths, not just crates/broker/src/delivery/
- Put the new delivery-contract cases in tests/fixtures/ rather than evals/suites/*/cases.md: Put the new delivery-contract cases in tests/fixtures/ rather than evals/suites/*/cases.md
- Manifest routing fixed (63 scenarios -> 1) and 13 new tests land green, all mutation-proven. Two gates stay red and both are outside this lane: phase-0 scope omits its own wiring file (crates/broker/src/runtime/), and targeted-gate structurally cannot pass in the same PR that manifest-gate requires the manifest edit in.

---

## Artifacts

**Commits:** e3bd628d0
**Files changed:** 1
Loading
Loading