### the scheduler acquires two lanes (substitution + lane_pool_load_last)
slot 1 rc=0 path=[<T>/ctl/harness/state/lanes/1]
   mode=[cold] reason=[] seconds=[0] needs_bootstrap=[true] needs_build=[true] base=[<base>]
slot 2 rc=0 path=[<T>/ctl/harness/state/lanes/2]
   mode=[cold] reason=[] seconds=[0] needs_bootstrap=[true] needs_build=[true] base=[<base>]
slot 3 rc=0 path=[<T>/ctl/harness/state/lanes/3]
-- worktrees:
   worktree <T>/ctl
   HEAD <base>
   branch refs/heads/main
   worktree <T>/ctl/harness/state/lanes/1
   HEAD <base>
   branch refs/heads/factory/task/T-A
   worktree <T>/ctl/harness/state/lanes/2
   HEAD <base>
   branch refs/heads/factory/task/T-B
   worktree <T>/ctl/harness/state/lanes/3
   HEAD <base>
   branch refs/heads/factory/task/T-C
-- branches: factory/task/T-A factory/task/T-B factory/task/T-C main 
-- tags: 
### both lanes work at once
lane results: [<T>/ctl/harness/state/lanes/results/T-A.json] [<T>/ctl/harness/state/lanes/results/T-B.json]
### integration.lock is contended by a live foreign holder
acquire (timeout 1) rc=1
   lock: held by another pid (INTEGRATION_LOCK_HELD=false)
our release leaves a foreign lock:
   lock: held by another pid (INTEGRATION_LOCK_HELD=false)
holder gone: acquire rc=0
   lock: held by this shell (INTEGRATION_LOCK_HELD=true)
### T-A lands first
CALL run_scoped_tests [<base>]
LOG   + Integrator: main fast-forwarded to <T-A work> (factory/task/T-A)
METRIC {"event":"integration_completed","task_id":"T-A","branch":"factory/task/T-A","base_sha":"<T-A work>","at":"2026-10-18T00:00:00+00:00"}
rc=0 reason=[]
LOG   + Committed orchestrator state (T-A integrated)
### T-B rebases onto T-A's landing
CALL run_scoped_tests [<base>]
LOG   + Integrator: main fast-forwarded to <T-B work#2> (factory/task/T-B)
METRIC {"event":"integration_completed","task_id":"T-B","branch":"factory/task/T-B","base_sha":"<T-B work#2>","at":"2026-10-18T00:00:00+00:00"}
rc=0 reason=[]
### T-C conflicts once T-A and T-B are in
ERR   x Integrator: factory/task/T-C conflicts with the base — rebase aborted, branch kept
rc=1 reason=[rebase-conflict]
-- the lane is not left mid-rebase: [no]
   lock: free (INTEGRATION_LOCK_HELD=false)
### the freed slots are reset for the next wave
slot 1 rc=0
   mode=[reset] reason=[] seconds=[0] needs_bootstrap=[true] needs_build=[true] base=[<main moves app.txt>]
slot 2 rc=0
   mode=[reset] reason=[] seconds=[0] needs_bootstrap=[true] needs_build=[true] base=[<main moves app.txt>]
-- worktrees:
   worktree <T>/ctl
   HEAD <main moves app.txt>
   branch refs/heads/main
   worktree <T>/ctl/harness/state/lanes/1
   HEAD <main moves app.txt>
   branch refs/heads/factory/task/T-D
   worktree <T>/ctl/harness/state/lanes/2
   HEAD <main moves app.txt>
   branch refs/heads/factory/task/T-E
   worktree <T>/ctl/harness/state/lanes/3
   HEAD <T-C work>
   detached
-- branches: factory/task/T-C factory/task/T-D factory/task/T-E main 
-- tags: 
-- lanes dir files:
   ./.gitignore: # Worktree lanes: runtime state, never committed (STORY-212).|*|
   ./base.sha: <T-B work#2>|
   ./control-heads.log: <base>|<T-A work>|<T-A work>|<chore(state): T-A integrated>|<T-B work#2>|<T-B work#2>|
   ./meta/1/last-acquire: mode: reset|needs_bootstrap: true|seconds: 0|reason: |needs_build: true|base: <main moves app.txt>|
   ./meta/2/last-acquire: mode: reset|needs_bootstrap: true|seconds: 0|reason: |needs_build: true|base: <main moves app.txt>|
   ./meta/3/last-acquire: mode: cold|needs_bootstrap: true|seconds: 0|reason: |needs_build: true|base: <base>|
   ./results/T-A.json: {|  "task_id": "T-A",|  "spec": "a.md",|  "branch": "factory/task/T-A",|  "lane_path": "<T>/ctl/harness/state/lanes/1",|  "base_sha": "<base>",|  "head_sha": "<T-A work>",|  "outcome": "done",|  "reason": "",|  "at": "2026-10-18T00:00:00+00:00"|}|
   ./results/T-B.json: {|  "task_id": "T-B",|  "spec": "b.md",|  "branch": "factory/task/T-B",|  "lane_path": "<T>/ctl/harness/state/lanes/2",|  "base_sha": "<base>",|  "head_sha": "<T-B work>",|  "outcome": "done",|  "reason": "",|  "at": "2026-10-18T00:00:00+00:00"|}|
-- main:
   main moves app.txt
   T-B work
   chore(state): T-A integrated
   T-A work
   base
