
ROW P10.a Head dirty local before failure; actual GitManager catches provider error and retains last-known PR (or null if none); don't demand RPC failure. Record real resulting value.
CAPTURE P10.a-before.ndjson
@1={"_tag":"Request","headers":[],"id":53,"payload":{"cwd":"<RUN>/P10-real/repo","includeRemote":false},"sampled":true,"tag":"subscribeVcsStatus"}
@2={"deletions":0,"files":[],"insertions":0,"rootPath":"<RUN>/P10-real/repo"}
@3={"branchChanges":{"baseRef":"origin/main","deletions":0,"insertions":1},"hasPrimaryRemote":true,"hasWorkingTreeChanges":false,"isDefaultRef":false,"isRepo":true,"refName":"release","sourceControlProvider":{"baseUrl":"https://github.com","kind":"github","name":"GitHub"},"workingTree":"@2"}
@4={"aheadCount":0,"aheadOfDefaultCount":0,"behindCount":0,"branchChanges":{"baseRef":"origin/main","deletions":0,"insertions":1},"hasPrimaryRemote":true,"hasUpstream":false,"hasWorkingTreeChanges":false,"isDefaultRef":false,"isRepo":true,"pr":null,"refName":"release","sourceControlProvider":{"baseUrl":"https://github.com","kind":"github","name":"GitHub"},"workingTree":"@2"}
@5={"event":{"_tag":"snapshot","local":"@3","remote":null},"kind":"stream","merged":"@4","observer":"passive","seq":310}
@6={"id":"F23","kind":"rpc-start","localOnly":false,"method":"vcs.refreshStatus","seq":311}
@7={"_tag":"Request","headers":[],"id":54,"payload":{"cwd":"<RUN>/P10-real/repo","localOnly":false},"sampled":true,"tag":"vcs.refreshStatus"}
@8={"_0_first":100,"_0_head":"release","_0_name":"status-fixture","_0_owner":"proof-audit","_0_states":["OPEN","CLOSED","MERGED"]}
@9={"heads":["release"],"id":"R19","kind":"remote-request-start","operationName":"PullRequestsByHead","query":"query PullRequestsByHead($_0_owner:String!$_0_name:String!$_0_head:String!$_0_states:[PullRequestState!]$_0_first:Int!){_0_repository:repository(owner:$_0_owner name:$_0_name){pullRequests(headRefName:$_0_head states:$_0_states first:$_0_first orderBy:{field:CREATED_AT direction:DESC}){nodes{...PullRequestNode}}}}fragment PullRequestNode on PullRequest{number title url baseRefName headRefName headRefOid state isDraft mergedAt closedAt updatedAt isCrossRepository headRepository{name nameWithOwner}headRepositoryOwner{__typename login}}","seq":313,"variables":"@8"}
@10={"failure":false,"heads":["release"],"id":"R19","kind":"remote-response","seq":314}
@11={"baseRef":"main","headRef":"release","number":613,"state":"open","title":"Fixture release","updatedAt":"2026-01-02T00:00:00.000Z","url":"https://github.com/proof-audit/status-fixture/pull/613"}
@12={"aheadCount":0,"aheadOfDefaultCount":1,"behindCount":0,"hasUpstream":true,"pr":"@11"}
@13={"aheadCount":0,"aheadOfDefaultCount":1,"behindCount":0,"branchChanges":{"baseRef":"origin/main","deletions":0,"insertions":1},"hasPrimaryRemote":true,"hasUpstream":true,"hasWorkingTreeChanges":false,"isDefaultRef":false,"isRepo":true,"pr":"@11","refName":"release","sourceControlProvider":{"baseUrl":"https://github.com","kind":"github","name":"GitHub"},"workingTree":"@2"}
@14={"event":{"_tag":"snapshot","local":"@3","remote":"@12"},"kind":"stream","merged":"@13","observer":"passive","seq":316}
@15={"aheadOfMain":"1","kind":"git-mutation","numstat":"1\t0\tREADME.md","porcelain":"M README.md","seq":319,"symbolicHEAD":"refs/heads/release","type":"dirty"}
@16={"id":"F24","kind":"rpc-start","localOnly":false,"method":"vcs.refreshStatus","seq":320}
@17={"_tag":"Request","headers":[],"id":55,"payload":{"cwd":"<RUN>/P10-real/repo","localOnly":false},"sampled":true,"tag":"vcs.refreshStatus"}
@18={"heads":["release"],"id":"R20","kind":"remote-request-start","operationName":"PullRequestsByHead","query":"query PullRequestsByHead($_0_owner:String!$_0_name:String!$_0_head:String!$_0_states:[PullRequestState!]$_0_first:Int!){_0_repository:repository(owner:$_0_owner name:$_0_name){pullRequests(headRefName:$_0_head states:$_0_states first:$_0_first orderBy:{field:CREATED_AT direction:DESC}){nodes{...PullRequestNode}}}}fragment PullRequestNode on PullRequest{number title url baseRefName headRefName headRefOid state isDraft mergedAt closedAt updatedAt isCrossRepository headRepository{name nameWithOwner}headRepositoryOwner{__typename login}}","seq":322,"variables":"@8"}
@19={"gate":{"closed":true,"held":"R20","requestCount":20},"kind":"checkpoint","localPublicationSeqs":[],"localUpdatedSeqs":[],"merged":"@13","message":"no localUpdated observed since mutation","mutationSeq":319,"observationWindowMs":1200,"receivedEventSeqs":[],"rpcs":[{"id":"F24","pending":true}],"seq":325}
@20={"failure":true,"heads":["release"],"id":"R20","kind":"remote-response","seq":327}
@21={"deletions":0,"files":[{"deletions":0,"insertions":1,"path":"README.md"}],"insertions":1,"rootPath":"<RUN>/P10-real/repo"}
@22={"branchChanges":{"baseRef":"origin/main","deletions":0,"insertions":2},"hasPrimaryRemote":true,"hasWorkingTreeChanges":true,"isDefaultRef":false,"isRepo":true,"refName":"release","sourceControlProvider":{"baseUrl":"https://github.com","kind":"github","name":"GitHub"},"workingTree":"@21"}
@23={"aheadCount":0,"aheadOfDefaultCount":1,"behindCount":0,"branchChanges":{"baseRef":"origin/main","deletions":0,"insertions":2},"hasPrimaryRemote":true,"hasUpstream":true,"hasWorkingTreeChanges":true,"isDefaultRef":false,"isRepo":true,"pr":"@11","refName":"release","sourceControlProvider":{"baseUrl":"https://github.com","kind":"github","name":"GitHub"},"workingTree":"@21"}
@24={"event":{"_tag":"snapshot","local":"@22","remote":"@12"},"kind":"stream","merged":"@23","observer":"passive","seq":329}
@25={"_tag":"Request","headers":[],"id":56,"payload":{"cwd":"<RUN>/P10-real/repo","includeRemote":false},"sampled":true,"tag":"subscribeVcsStatus"}
@26={"frame":{"_tag":"Interrupt","requestId":56},"kind":"ws-out","seq":333}
@27={"event":{"_tag":"snapshot","local":"@22","remote":"@12"},"kind":"reconnect","merged":"@23","name":"provider-http-failure","seq":334}
@28={"frame":{"_tag":"Interrupt","requestId":53},"kind":"ws-out","seq":335}
@29={"cwd":"/home/ubuntu/wt/pr-21046-base/apps/server","kind":"confirmed-port-owner","pid":303358,"port":16568,"seq":337}
@30={"cwd":"/home/ubuntu/wt/pr-21046-base/apps/web","kind":"confirmed-port-owner","pid":303344,"port":8528,"seq":338}
@31={"exitCode":null,"kind":"cleanup","ports":[{"listeners":"","port":16568},{"listeners":"","port":8528}],"seq":339,"signalCode":"SIGINT","spawnedPid":303144}
SESSION real 5211acfe95a0c6d82a60e2524b5e46b47fe67a3e /tmp/lead-21046-r2/capture/2026-10-28T17-49-48-213Z-before
{"cwd":"<RUN>/P10-real/repo","kind":"fixture","seq":307}
{"frame":"@1","kind":"ws-out","seq":308}
{"frame":{"_tag":"Ack","requestId":53},"kind":"ws-out","seq":309}
"@5"
"@6"
{"frame":"@7","kind":"ws-out","seq":312}
"@9"
"@10"
{"frame":{"_tag":"Ack","requestId":53},"kind":"ws-out","seq":315}
"@14"
{"id":"F23","kind":"rpc-result","result":"@13","seq":317}
{"head":"release","kind":"gate-armed","seq":318}
"@15"
"@16"
{"frame":"@17","kind":"ws-out","seq":321}
"@18"
{"heads":["release"],"id":"R20","kind":"upstream-held","seq":323}
{"frame":{"_tag":"Ping"},"kind":"ws-out","seq":324}
"@19"
{"id":"R20","kind":"upstream-release","seq":326}
"@20"
{"frame":{"_tag":"Ack","requestId":53},"kind":"ws-out","seq":328}
"@24"
{"id":"F24","kind":"rpc-result","result":"@23","seq":330}
{"frame":"@25","kind":"ws-out","seq":331}
{"frame":{"_tag":"Ack","requestId":56},"kind":"ws-out","seq":332}
"@26"
"@27"
"@28"
{"kind":"complete","seq":336}
"@29"
"@30"
"@31"
CAPTURE P10.a-after.ndjson
@32={"event":{"_tag":"snapshot","local":"@3","remote":null},"kind":"stream","merged":"@4","observer":"passive","seq":322}
@33={"id":"F23","kind":"rpc-start","localOnly":false,"method":"vcs.refreshStatus","seq":323}
@34={"heads":["release"],"id":"R19","kind":"remote-request-start","operationName":"PullRequestsByHead","query":"query PullRequestsByHead($_0_owner:String!$_0_name:String!$_0_head:String!$_0_states:[PullRequestState!]$_0_first:Int!){_0_repository:repository(owner:$_0_owner name:$_0_name){pullRequests(headRefName:$_0_head states:$_0_states first:$_0_first orderBy:{field:CREATED_AT direction:DESC}){nodes{...PullRequestNode}}}}fragment PullRequestNode on PullRequest{number title url baseRefName headRefName headRefOid state isDraft mergedAt closedAt updatedAt isCrossRepository headRepository{name nameWithOwner}headRepositoryOwner{__typename login}}","seq":325,"variables":"@8"}
@35={"failure":false,"heads":["release"],"id":"R19","kind":"remote-response","seq":326}
@36={"event":{"_tag":"remoteUpdated","remote":"@12"},"kind":"stream","merged":"@13","observer":"passive","seq":328}
@37={"aheadOfMain":"1","kind":"git-mutation","numstat":"1\t0\tREADME.md","porcelain":"M README.md","seq":331,"symbolicHEAD":"refs/heads/release","type":"dirty"}
@38={"id":"F24","kind":"rpc-start","localOnly":false,"method":"vcs.refreshStatus","seq":332}
@39={"event":{"_tag":"localUpdated","local":"@22"},"kind":"stream","merged":"@23","observer":"passive","seq":335}
@40={"heads":["release"],"id":"R20","kind":"remote-request-start","operationName":"PullRequestsByHead","query":"query PullRequestsByHead($_0_owner:String!$_0_name:String!$_0_head:String!$_0_states:[PullRequestState!]$_0_first:Int!){_0_repository:repository(owner:$_0_owner name:$_0_name){pullRequests(headRefName:$_0_head states:$_0_states first:$_0_first orderBy:{field:CREATED_AT direction:DESC}){nodes{...PullRequestNode}}}}fragment PullRequestNode on PullRequest{number title url baseRefName headRefName headRefOid state isDraft mergedAt closedAt updatedAt isCrossRepository headRepository{name nameWithOwner}headRepositoryOwner{__typename login}}","seq":336,"variables":"@8"}
@41={"gate":{"closed":true,"held":"R20","requestCount":20},"kind":"checkpoint","localPublicationSeqs":[335],"localUpdatedSeqs":[335],"merged":"@23","message":"localUpdated observed since mutation","mutationSeq":331,"observationWindowMs":1200,"receivedEventSeqs":[335],"rpcs":[{"id":"F24","pending":true}],"seq":338}
@42={"failure":true,"heads":["release"],"id":"R20","kind":"remote-response","seq":340}
@43={"frame":{"_tag":"Interrupt","requestId":56},"kind":"ws-out","seq":344}
@44={"event":{"_tag":"snapshot","local":"@22","remote":"@12"},"kind":"reconnect","merged":"@23","name":"provider-http-failure","seq":345}
@45={"frame":{"_tag":"Interrupt","requestId":53},"kind":"ws-out","seq":346}
@46={"cwd":"/home/ubuntu/wt/pr-21046/apps/server","kind":"confirmed-port-owner","pid":303329,"port":14504,"seq":348}
@47={"cwd":"/home/ubuntu/wt/pr-21046/apps/web","kind":"confirmed-port-owner","pid":303316,"port":6464,"seq":349}
@48={"exitCode":null,"kind":"cleanup","ports":[{"listeners":"","port":14504},{"listeners":"","port":6464}],"seq":350,"signalCode":"SIGINT","spawnedPid":303143}
SESSION real bb35b941115a0a9f818e8512eebe67c29ee68355 /tmp/lead-21046-r2/capture/2026-10-28T17-49-48-211Z-after
{"cwd":"<RUN>/P10-real/repo","kind":"fixture","seq":319}
{"frame":"@1","kind":"ws-out","seq":320}
{"frame":{"_tag":"Ack","requestId":53},"kind":"ws-out","seq":321}
"@32"
"@33"
{"frame":"@7","kind":"ws-out","seq":324}
"@34"
"@35"
{"frame":{"_tag":"Ack","requestId":53},"kind":"ws-out","seq":327}
"@36"
{"id":"F23","kind":"rpc-result","result":"@13","seq":329}
{"head":"release","kind":"gate-armed","seq":330}
"@37"
"@38"
{"frame":"@17","kind":"ws-out","seq":333}
{"frame":{"_tag":"Ack","requestId":53},"kind":"ws-out","seq":334}
"@39"
"@40"
{"heads":["release"],"id":"R20","kind":"upstream-held","seq":337}
"@41"
{"id":"R20","kind":"upstream-release","seq":339}
"@42"
{"id":"F24","kind":"rpc-result","result":"@23","seq":341}
{"frame":"@25","kind":"ws-out","seq":342}
{"frame":{"_tag":"Ack","requestId":56},"kind":"ws-out","seq":343}
"@43"
"@44"
"@45"
{"kind":"complete","seq":347}
"@46"
"@47"
"@48"
COMPARISON P10.a Diff0 bytes 2229 
["/observers/0/events/1/_tag","snapshot","remoteUpdated"]
["/observers/0/events/1/local","@3","<ABSENT>"]
["/observers/0/events/2/_tag","snapshot","localUpdated"]
["/observers/0/events/2/remote","@12","<ABSENT>"]
COMPARISON P10.a DiffT bytes 4518 
["/services/real/checkpoints/0/eventsSinceMutation",[],[{"_tag":"localUpdated","local":"@22"}]]
["/services/real/checkpoints/0/merged/branchChanges/insertions",1,2]
["/services/real/checkpoints/0/merged/hasWorkingTreeChanges",false,true]
["/services/real/checkpoints/0/merged/workingTree/files",[],[{"deletions":0,"insertions":1,"path":"README.md"}]]
["/services/real/checkpoints/0/merged/workingTree/insertions",0,1]
["/streams/real/P10-real/passive/1/event/_tag","snapshot","remoteUpdated"]
["/streams/real/P10-real/passive/1/event/local","@3","<ABSENT>"]
["/streams/real/P10-real/passive/2/event/_tag","snapshot","localUpdated"]
["/streams/real/P10-real/passive/2/event/remote","@12","<ABSENT>"]

ROW P10.b Head publishes dirty before release; RPC/service fails with injected error; reconnect retains dirty local + compatible old remote. Base misses early local.
CAPTURE P10.b-before.ndjson
@49={"kind":"provenance","seq":1,"type":"external deterministic service harness; controlled workflow fake + TestClock; no real server","virtualTimeMs":0}
@50={"branchChanges":{"baseRef":"origin/main","deletions":0,"insertions":1},"hasPrimaryRemote":true,"hasWorkingTreeChanges":false,"isDefaultRef":false,"isRepo":true,"refName":"A","workingTree":{"deletions":0,"files":[],"insertions":0}}
@51={"baseRef":"main","headRef":"A","number":613,"state":"open","title":"Fixture A","url":"https://github.com/proof-audit/status-fixture/pull/613"}
@52={"aheadCount":0,"aheadOfDefaultCount":1,"behindCount":0,"hasUpstream":true,"pr":"@51"}
@53={"branch":"A","kind":"remote-read-start","n":1,"options":{"refreshUpstream":true},"seq":3,"value":"@52","virtualTimeMs":0}
@54={"kind":"remote-read-return","n":1,"seq":4,"value":"@52","virtualTimeMs":0}
@55={"aheadCount":0,"aheadOfDefaultCount":1,"behindCount":0,"branchChanges":{"baseRef":"origin/main","deletions":0,"insertions":1},"hasPrimaryRemote":true,"hasUpstream":true,"hasWorkingTreeChanges":false,"isDefaultRef":false,"isRepo":true,"pr":"@51","refName":"A","workingTree":{"deletions":0,"files":[],"insertions":0}}
@56={"event":{"_tag":"snapshot","local":"@50","remote":"@52"},"kind":"stream","merged":"@55","observer":"passive-1","seq":5,"virtualTimeMs":0}
@57={"branch":"A","kind":"remote-read-start","n":2,"options":{"refreshUpstream":true},"seq":7,"value":"@52","virtualTimeMs":0}
@58={"kind":"upstream-held","read":2,"seq":8,"value":"@52","virtualTimeMs":0}
@59={"kind":"checkpoint","localReads":1,"name":"remote-held","pending":true,"pulls":0,"remoteReads":2,"seq":9,"virtualTimeMs":0}
@60={"event":{"_tag":"snapshot","local":"@50","remote":"@52"},"kind":"snapshot","merged":"@55","name":"before-remote-failure","seq":11,"virtualTimeMs":0}
@61={"actual":{"_tag":"snapshot","local":"@50","remote":"@52"},"expectedPredicate":true,"kind":"assertion","observedPredicate":false,"outcome":"FAIL","seq":12,"test":"dirty local published before workflow remote failure","virtualTimeMs":0}
@62={"_tag":"GitManagerError","cwd":"/proof/repo","detail":"controlled workflow remote failure","operation":"proof.remote"}
@63={"_id":"Exit","_tag":"Failure","cause":{"_id":"Cause","failures":[{"_tag":"Fail","error":"@62"}]}}
@64={"actual":"@63","expectedPredicate":true,"kind":"assertion","observedPredicate":true,"outcome":"PASS","seq":14,"test":"workflow remote error propagates","virtualTimeMs":0}
@65={"event":{"_tag":"snapshot","local":"@50","remote":"@52"},"kind":"snapshot","merged":"@55","name":"after-workflow-remote-failure","seq":15,"virtualTimeMs":0}
@66={"actual":{"_tag":"snapshot","local":"@50","remote":"@52"},"expectedPredicate":true,"kind":"assertion","observedPredicate":false,"outcome":"FAIL","seq":16,"test":"published dirty local retained with prior remote","virtualTimeMs":0}
SESSION P10-workflow 5211acfe95a0c6d82a60e2524b5e46b47fe67a3e /tmp/lead-21046-r2/capture/2026-10-28T17-54-04-119Z-harness-before
"@49"
{"kind":"local-read","local":"@50","n":1,"seq":2,"virtualTimeMs":0}
"@53"
"@54"
"@56"
{"kind":"invalidate-all","seq":6,"virtualTimeMs":0}
"@57"
"@58"
"@59"
{"byMs":0,"kind":"clock-advance","seq":10,"virtualTimeMs":0}
"@60"
"@61"
{"kind":"upstream-release","read":2,"seq":13,"virtualTimeMs":0}
"@64"
"@65"
"@66"
{"kind":"complete","seq":17,"virtualTimeMs":0}
CAPTURE P10.b-after.ndjson
@67={"branch":"A","kind":"remote-read-start","n":1,"options":{"refreshUpstream":true},"seq":5,"value":"@52","virtualTimeMs":0}
@68={"kind":"remote-read-return","n":1,"seq":6,"value":"@52","virtualTimeMs":0}
@69={"event":{"_tag":"snapshot","local":"@50","remote":"@52"},"kind":"stream","merged":"@55","observer":"passive-1","seq":8,"virtualTimeMs":0}
@70={"branchChanges":{"baseRef":"origin/main","deletions":0,"insertions":1},"hasPrimaryRemote":true,"hasWorkingTreeChanges":true,"isDefaultRef":false,"isRepo":true,"refName":"A","workingTree":{"deletions":0,"files":[],"insertions":0}}
@71={"aheadCount":0,"aheadOfDefaultCount":1,"behindCount":0,"branchChanges":{"baseRef":"origin/main","deletions":0,"insertions":1},"hasPrimaryRemote":true,"hasUpstream":true,"hasWorkingTreeChanges":true,"isDefaultRef":false,"isRepo":true,"pr":"@51","refName":"A","workingTree":{"deletions":0,"files":[],"insertions":0}}
@72={"event":{"_tag":"localUpdated","local":"@70"},"kind":"stream","merged":"@71","observer":"passive-1","seq":11,"virtualTimeMs":0}
@73={"branch":"A","kind":"remote-read-start","n":2,"options":{"refreshUpstream":true},"seq":15,"value":"@52","virtualTimeMs":0}
@74={"kind":"upstream-held","read":2,"seq":16,"value":"@52","virtualTimeMs":0}
@75={"kind":"checkpoint","localReads":2,"name":"remote-held","pending":true,"pulls":0,"remoteReads":2,"seq":17,"virtualTimeMs":0}
@76={"event":{"_tag":"snapshot","local":"@70","remote":"@52"},"kind":"snapshot","merged":"@71","name":"before-remote-failure","seq":19,"virtualTimeMs":0}
@77={"actual":{"_tag":"snapshot","local":"@70","remote":"@52"},"expectedPredicate":true,"kind":"assertion","observedPredicate":true,"outcome":"PASS","seq":20,"test":"dirty local published before workflow remote failure","virtualTimeMs":0}
@78={"actual":"@63","expectedPredicate":true,"kind":"assertion","observedPredicate":true,"outcome":"PASS","seq":22,"test":"workflow remote error propagates","virtualTimeMs":0}
@79={"event":{"_tag":"snapshot","local":"@70","remote":"@52"},"kind":"snapshot","merged":"@71","name":"after-workflow-remote-failure","seq":23,"virtualTimeMs":0}
@80={"actual":{"_tag":"snapshot","local":"@70","remote":"@52"},"expectedPredicate":true,"kind":"assertion","observedPredicate":true,"outcome":"PASS","seq":24,"test":"published dirty local retained with prior remote","virtualTimeMs":0}
SESSION P10-workflow bb35b941115a0a9f818e8512eebe67c29ee68355 /tmp/lead-21046-r2/capture/2026-10-28T17-54-04-297Z-harness-after
"@49"
{"kind":"local-read","local":"@50","n":1,"seq":2,"virtualTimeMs":0}
{"branch":"A","kind":"branch-probe","seq":3,"virtualTimeMs":0}
{"kind":"invalidate-remote","seq":4,"virtualTimeMs":0}
"@67"
"@68"
{"branch":"A","kind":"branch-probe","seq":7,"virtualTimeMs":0}
"@69"
{"kind":"invalidate-local","seq":9,"virtualTimeMs":0}
{"kind":"local-read","local":"@70","n":2,"seq":10,"virtualTimeMs":0}
"@72"
{"kind":"invalidate-all","seq":12,"virtualTimeMs":0}
{"branch":"A","kind":"branch-probe","seq":13,"virtualTimeMs":0}
{"kind":"invalidate-remote","seq":14,"virtualTimeMs":0}
"@73"
"@74"
"@75"
{"byMs":0,"kind":"clock-advance","seq":18,"virtualTimeMs":0}
"@76"
"@77"
{"kind":"upstream-release","read":2,"seq":21,"virtualTimeMs":0}
"@78"
"@79"
"@80"
{"kind":"complete","seq":25,"virtualTimeMs":0}
COMPARISON P10.b Diff0 bytes 1722 
["/observers/0/events",[{"_tag":"snapshot","local":"@50","remote":"@52"}],[{"_tag":"snapshot","local":"@50","remote":"@52"},{"_tag":"localUpdated","local":"@70"}]]
["/observers/1/events/0/local/hasWorkingTreeChanges",false,true]
["/observers/2/events/0/local/hasWorkingTreeChanges",false,true]
COMPARISON P10.b DiffT bytes 6036 
@81={"event":{"_tag":"snapshot","local":"@50","remote":"@52"},"merged":"@55","virtualTimeMs":0}
@82={"event":{"_tag":"localUpdated","local":"@70"},"merged":"@71","virtualTimeMs":0}
["/services/P10-workflow/assertions/0/actual/local/hasWorkingTreeChanges",false,true]
["/services/P10-workflow/assertions/0/observedPredicate",false,true]
["/services/P10-workflow/assertions/0/outcome","FAIL","PASS"]
["/services/P10-workflow/assertions/2/actual/local/hasWorkingTreeChanges",false,true]
["/services/P10-workflow/assertions/2/observedPredicate",false,true]
["/services/P10-workflow/assertions/2/outcome","FAIL","PASS"]
["/services/P10-workflow/branchProbeChannel",[],[{"branch":"A","virtualTimeMs":0},{"branch":"A","virtualTimeMs":0},{"branch":"A","virtualTimeMs":0}]]
["/services/P10-workflow/checkpoints/0/localReads",1,2]
["/services/P10-workflow/invalidationChannel",[{"kind":"invalidate-all"}],[{"kind":"invalidate-remote"},{"kind":"invalidate-local"},{"kind":"invalidate-all"},{"kind":"invalidate-remote"}]]
["/services/P10-workflow/localReadChannel",[{"local":"@50","n":1,"virtualTimeMs":0}],[{"local":"@50","n":1,"virtualTimeMs":0},{"local":"@70","n":2,"virtualTimeMs":0}]]
["/services/P10-workflow/reconnects/0/event/local/hasWorkingTreeChanges",false,true]
["/services/P10-workflow/reconnects/0/merged/hasWorkingTreeChanges",false,true]
["/services/P10-workflow/reconnects/1/event/local/hasWorkingTreeChanges",false,true]
["/services/P10-workflow/reconnects/1/merged/hasWorkingTreeChanges",false,true]
["/streams/P10-workflow/P10-workflow/passive-1",["@81"],["@81","@82"]]

ROW P10.b2 Head publishes remote clear then B local and retains B/null after typed failure; base can keep stale A cache. This differs from same-branch dirty failure.
CAPTURE P10.b2-before.ndjson
@83={"branch":"B","kind":"remote-read-start","n":2,"options":{"refreshUpstream":true},"seq":7,"value":"@52","virtualTimeMs":0}
@84={"event":{"_tag":"snapshot","local":"@50","remote":"@52"},"kind":"snapshot","merged":"@55","name":"B-before-failure","seq":10,"virtualTimeMs":0}
@85={"kind":"checkpoint","name":"B-while-workflow-held","pending":true,"seq":11,"snapshot":{"_tag":"snapshot","local":"@50","remote":"@52"},"virtualTimeMs":0}
@86={"_tag":"GitManagerError","cwd":"/proof/repo","detail":"controlled remote failure after branch switch","operation":"proof.remote"}
@87={"_id":"Exit","_tag":"Failure","cause":{"_id":"Cause","failures":[{"_tag":"Fail","error":"@86"}]}}
@88={"event":{"_tag":"snapshot","local":"@50","remote":"@52"},"kind":"snapshot","merged":"@55","name":"B-after-failure","seq":14,"virtualTimeMs":0}
@89={"actual":"@87","expectedPredicate":true,"kind":"assertion","observedPredicate":true,"outcome":"PASS","seq":15,"test":"typed-workflow-failure","virtualTimeMs":0}
@90={"actual":{"_tag":"snapshot","local":"@50","remote":"@52"},"expectedPredicate":true,"kind":"assertion","observedPredicate":false,"outcome":"FAIL","seq":16,"test":"B-null-retained-after-failure","virtualTimeMs":0}
@91={"actual":[{"_tag":"snapshot","local":"@50","remote":"@52"}],"expectedPredicate":true,"kind":"assertion","observedPredicate":false,"outcome":"FAIL","seq":17,"test":"null-then-B-local","virtualTimeMs":0}
SESSION P10-branch-failure 5211acfe95a0c6d82a60e2524b5e46b47fe67a3e /tmp/lead-21046-r2/capture/2026-10-28T17-54-04-288Z-harness-before
"@49"
{"kind":"local-read","local":"@50","n":1,"seq":2,"virtualTimeMs":0}
"@53"
"@54"
"@56"
{"kind":"invalidate-all","seq":6,"virtualTimeMs":0}
"@83"
"@58"
{"byMs":0,"kind":"clock-advance","seq":9,"virtualTimeMs":0}
"@84"
"@85"
{"kind":"upstream-release","read":2,"seq":12,"virtualTimeMs":0}
{"exit":"@87","kind":"result","seq":13,"virtualTimeMs":0}
"@88"
"@89"
"@90"
"@91"
{"kind":"complete","seq":18,"virtualTimeMs":0}
CAPTURE P10.b2-after.ndjson
@92={"branchChanges":{"baseRef":"origin/main","deletions":0,"insertions":1},"hasPrimaryRemote":true,"hasWorkingTreeChanges":false,"isDefaultRef":false,"isRepo":true,"refName":"B","workingTree":{"deletions":0,"files":[],"insertions":0}}
@93={"aheadCount":0,"aheadOfDefaultCount":0,"behindCount":0,"branchChanges":{"baseRef":"origin/main","deletions":0,"insertions":1},"hasPrimaryRemote":true,"hasUpstream":false,"hasWorkingTreeChanges":false,"isDefaultRef":false,"isRepo":true,"pr":null,"refName":"A","workingTree":{"deletions":0,"files":[],"insertions":0}}
@94={"event":{"_tag":"remoteUpdated","remote":null},"kind":"stream","merged":"@93","observer":"passive-1","seq":11,"virtualTimeMs":0}
@95={"aheadCount":0,"aheadOfDefaultCount":0,"behindCount":0,"branchChanges":{"baseRef":"origin/main","deletions":0,"insertions":1},"hasPrimaryRemote":true,"hasUpstream":false,"hasWorkingTreeChanges":false,"isDefaultRef":false,"isRepo":true,"pr":null,"refName":"B","workingTree":{"deletions":0,"files":[],"insertions":0}}
@96={"event":{"_tag":"localUpdated","local":"@92"},"kind":"stream","merged":"@95","observer":"passive-1","seq":12,"virtualTimeMs":0}
@97={"branch":"B","kind":"remote-read-start","n":2,"options":{"refreshUpstream":true},"seq":16,"value":"@52","virtualTimeMs":0}
@98={"kind":"upstream-held","read":2,"seq":17,"value":"@52","virtualTimeMs":0}
@99={"event":{"_tag":"snapshot","local":"@92","remote":null},"kind":"snapshot","merged":"@95","name":"B-before-failure","seq":19,"virtualTimeMs":0}
@100={"kind":"checkpoint","name":"B-while-workflow-held","pending":true,"seq":20,"snapshot":{"_tag":"snapshot","local":"@92","remote":null},"virtualTimeMs":0}
@101={"event":{"_tag":"snapshot","local":"@92","remote":null},"kind":"snapshot","merged":"@95","name":"B-after-failure","seq":23,"virtualTimeMs":0}
@102={"actual":"@87","expectedPredicate":true,"kind":"assertion","observedPredicate":true,"outcome":"PASS","seq":24,"test":"typed-workflow-failure","virtualTimeMs":0}
@103={"actual":{"_tag":"snapshot","local":"@92","remote":null},"expectedPredicate":true,"kind":"assertion","observedPredicate":true,"outcome":"PASS","seq":25,"test":"B-null-retained-after-failure","virtualTimeMs":0}
@104={"actual":[{"_tag":"snapshot","local":"@50","remote":"@52"},{"_tag":"remoteUpdated","remote":null},{"_tag":"localUpdated","local":"@92"}],"expectedPredicate":true,"kind":"assertion","observedPredicate":true,"outcome":"PASS","seq":26,"test":"null-then-B-local","virtualTimeMs":0}
SESSION P10-branch-failure bb35b941115a0a9f818e8512eebe67c29ee68355 /tmp/lead-21046-r2/capture/2026-10-28T17-54-03-990Z-harness-after
"@49"
{"kind":"local-read","local":"@50","n":1,"seq":2,"virtualTimeMs":0}
{"branch":"A","kind":"branch-probe","seq":3,"virtualTimeMs":0}
{"kind":"invalidate-remote","seq":4,"virtualTimeMs":0}
"@67"
"@68"
{"branch":"A","kind":"branch-probe","seq":7,"virtualTimeMs":0}
"@69"
{"kind":"invalidate-local","seq":9,"virtualTimeMs":0}
{"kind":"local-read","local":"@92","n":2,"seq":10,"virtualTimeMs":0}
"@94"
"@96"
{"kind":"invalidate-all","seq":13,"virtualTimeMs":0}
{"branch":"B","kind":"branch-probe","seq":14,"virtualTimeMs":0}
{"kind":"invalidate-remote","seq":15,"virtualTimeMs":0}
"@97"
"@98"
{"byMs":0,"kind":"clock-advance","seq":18,"virtualTimeMs":0}
"@99"
"@100"
{"kind":"upstream-release","read":2,"seq":21,"virtualTimeMs":0}
{"exit":"@87","kind":"result","seq":22,"virtualTimeMs":0}
"@101"
"@102"
"@103"
"@104"
{"kind":"complete","seq":27,"virtualTimeMs":0}
COMPARISON P10.b2 Diff0 bytes 3086 
["/observers/0/events",[{"_tag":"snapshot","local":"@50","remote":"@52"}],[{"_tag":"snapshot","local":"@50","remote":"@52"},{"_tag":"remoteUpdated","remote":null},{"_tag":"localUpdated","local":"@92"}]]
["/observers/1/events/0/local/refName","A","B"]
["/observers/1/events/0/remote","@52",null]
["/observers/2/events/0/local/refName","A","B"]
["/observers/2/events/0/remote","@52",null]
COMPARISON P10.b2 DiffT bytes 10909 
@105={"event":{"_tag":"remoteUpdated","remote":null},"merged":"@93","virtualTimeMs":0}
@106={"event":{"_tag":"localUpdated","local":"@92"},"merged":"@95","virtualTimeMs":0}
["/services/P10-branch-failure/assertions/1/actual/local/refName","A","B"]
["/services/P10-branch-failure/assertions/1/actual/remote","@52",null]
["/services/P10-branch-failure/assertions/1/observedPredicate",false,true]
["/services/P10-branch-failure/assertions/1/outcome","FAIL","PASS"]
["/services/P10-branch-failure/assertions/2/actual",[{"_tag":"snapshot","local":"@50","remote":"@52"}],[{"_tag":"snapshot","local":"@50","remote":"@52"},{"_tag":"remoteUpdated","remote":null},{"_tag":"localUpdated","local":"@92"}]]
["/services/P10-branch-failure/assertions/2/observedPredicate",false,true]
["/services/P10-branch-failure/assertions/2/outcome","FAIL","PASS"]
["/services/P10-branch-failure/branchProbeChannel",[],[{"branch":"A","virtualTimeMs":0},{"branch":"A","virtualTimeMs":0},{"branch":"B","virtualTimeMs":0}]]
["/services/P10-branch-failure/checkpoints/0/snapshot/local/refName","A","B"]
["/services/P10-branch-failure/checkpoints/0/snapshot/remote","@52",null]
["/services/P10-branch-failure/invalidationChannel",[{"kind":"invalidate-all"}],[{"kind":"invalidate-remote"},{"kind":"invalidate-local"},{"kind":"invalidate-all"},{"kind":"invalidate-remote"}]]
["/services/P10-branch-failure/localReadChannel",[{"local":"@50","n":1,"virtualTimeMs":0}],[{"local":"@50","n":1,"virtualTimeMs":0},{"local":"@92","n":2,"virtualTimeMs":0}]]
["/services/P10-branch-failure/reconnects/0/event/local/refName","A","B"]
["/services/P10-branch-failure/reconnects/0/event/remote","@52",null]
["/services/P10-branch-failure/reconnects/0/merged/aheadOfDefaultCount",1,0]
["/services/P10-branch-failure/reconnects/0/merged/hasUpstream",true,false]
["/services/P10-branch-failure/reconnects/0/merged/pr","@51",null]
["/services/P10-branch-failure/reconnects/0/merged/refName","A","B"]
["/services/P10-branch-failure/reconnects/1/event/local/refName","A","B"]
["/services/P10-branch-failure/reconnects/1/event/remote","@52",null]
["/services/P10-branch-failure/reconnects/1/merged/aheadOfDefaultCount",1,0]
["/services/P10-branch-failure/reconnects/1/merged/hasUpstream",true,false]
["/services/P10-branch-failure/reconnects/1/merged/pr","@51",null]
["/services/P10-branch-failure/reconnects/1/merged/refName","A","B"]
["/streams/P10-branch-failure/P10-branch-failure/passive-1",["@81"],["@81","@105","@106"]]

ROW P10.c Head fails with zero owned remote reads and no false successful local event; base can start remote before discovering local failure.
CAPTURE P10.c-before.ndjson
@107={"kind":"remote-read-return","n":2,"seq":8,"value":"@52","virtualTimeMs":0}
@108={"_tag":"GitManagerError","cwd":"/proof/repo","detail":"controlled local scan failure","operation":"proof.localStatus"}
@109={"events":[],"failure":"@108","kind":"result","remoteReadsOwned":1,"seq":11,"tag":"GitManagerError","virtualTimeMs":0}
@110={"actual":"GitManagerError","expectedPredicate":true,"kind":"assertion","observedPredicate":true,"outcome":"PASS","seq":12,"test":"local scan failure propagates","virtualTimeMs":0}
@111={"actual":1,"expectedPredicate":true,"kind":"assertion","observedPredicate":false,"outcome":"FAIL","seq":13,"test":"local failure happens before remote work","virtualTimeMs":0}
@112={"actual":[],"expectedPredicate":true,"kind":"assertion","observedPredicate":true,"outcome":"PASS","seq":14,"test":"failed local scan publishes no false local success","virtualTimeMs":0}
SESSION P10-local 5211acfe95a0c6d82a60e2524b5e46b47fe67a3e /tmp/lead-21046-r2/capture/2026-10-28T17-54-04-119Z-harness-before
"@49"
{"kind":"local-read","local":"@50","n":1,"seq":2,"virtualTimeMs":0}
"@53"
"@54"
"@56"
{"kind":"invalidate-all","seq":6,"virtualTimeMs":0}
"@57"
"@107"
{"kind":"local-read","local":"@50","n":2,"seq":9,"virtualTimeMs":0}
{"byMs":0,"kind":"clock-advance","seq":10,"virtualTimeMs":0}
"@109"
"@110"
"@111"
"@112"
{"kind":"complete","seq":15,"virtualTimeMs":0}
CAPTURE P10.c-after.ndjson
@113={"events":[],"failure":"@108","kind":"result","remoteReadsOwned":0,"seq":12,"tag":"GitManagerError","virtualTimeMs":0}
@114={"actual":"GitManagerError","expectedPredicate":true,"kind":"assertion","observedPredicate":true,"outcome":"PASS","seq":13,"test":"local scan failure propagates","virtualTimeMs":0}
@115={"actual":0,"expectedPredicate":true,"kind":"assertion","observedPredicate":true,"outcome":"PASS","seq":14,"test":"local failure happens before remote work","virtualTimeMs":0}
@116={"actual":[],"expectedPredicate":true,"kind":"assertion","observedPredicate":true,"outcome":"PASS","seq":15,"test":"failed local scan publishes no false local success","virtualTimeMs":0}
SESSION P10-local bb35b941115a0a9f818e8512eebe67c29ee68355 /tmp/lead-21046-r2/capture/2026-10-28T17-54-04-297Z-harness-after
"@49"
{"kind":"local-read","local":"@50","n":1,"seq":2,"virtualTimeMs":0}
{"branch":"A","kind":"branch-probe","seq":3,"virtualTimeMs":0}
{"kind":"invalidate-remote","seq":4,"virtualTimeMs":0}
"@67"
"@68"
{"branch":"A","kind":"branch-probe","seq":7,"virtualTimeMs":0}
"@69"
{"kind":"invalidate-local","seq":9,"virtualTimeMs":0}
{"kind":"local-read","local":"@50","n":2,"seq":10,"virtualTimeMs":0}
{"byMs":0,"kind":"clock-advance","seq":11,"virtualTimeMs":0}
"@113"
"@114"
"@115"
"@116"
{"kind":"complete","seq":16,"virtualTimeMs":0}
COMPARISON P10.c Diff0 bytes 321 
IDENTICAL
COMPARISON P10.c DiffT bytes 3029 
@117={"branch":"A","kind":"remote-read-start","n":1,"options":{"refreshUpstream":true},"value":"@52","virtualTimeMs":0}
@118={"branch":"A","kind":"remote-read-start","n":2,"options":{"refreshUpstream":true},"value":"@52","virtualTimeMs":0}
["/services/P10-local/assertions/1/actual",1,0]
["/services/P10-local/assertions/1/observedPredicate",false,true]
["/services/P10-local/assertions/1/outcome","FAIL","PASS"]
["/services/P10-local/branchProbeChannel",[],[{"branch":"A","virtualTimeMs":0},{"branch":"A","virtualTimeMs":0}]]
["/services/P10-local/finalResultsAndObservations/0/remoteReadsOwned",1,0]
["/services/P10-local/invalidationChannel",[{"kind":"invalidate-all"}],[{"kind":"invalidate-remote"},{"kind":"invalidate-local"}]]
["/services/P10-local/upstreamChannel",["@117",{"kind":"remote-read-return","n":1,"value":"@52","virtualTimeMs":0},"@118",{"kind":"remote-read-return","n":2,"value":"@52","virtualTimeMs":0}],["@117",{"kind":"remote-read-return","n":1,"value":"@52","virtualTimeMs":0}]]
