Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
c23fb41
chore(porch): 1365 init pir
mohidmakhdoomi Aug 17, 2026
2adbe0b
[PIR #1365] Plan draft: evaluation of the three write paths + converg…
mohidmakhdoomi Aug 17, 2026
c2192ab
chore(porch): 1365 plan-approval gate-requested
mohidmakhdoomi Aug 17, 2026
a6cdbe2
[PIR #1365] Plan revised (rev 2): all 5 blocking review items + inter…
mohidmakhdoomi Aug 17, 2026
fe23193
chore(porch): 1365 plan-approval gate-approved
mohidmakhdoomi Aug 17, 2026
09ca452
chore(porch): 1365 implement phase-transition
mohidmakhdoomi Aug 17, 2026
30af22b
[PIR #1365] Lock primitives: try-acquire, wait ceiling, degraded-writ…
mohidmakhdoomi Aug 17, 2026
e9fd2d4
[PIR #1365] Route the mailbox write edge through the per-terminal sub…
mohidmakhdoomi Aug 17, 2026
194685e
[PIR #1365] Tests: interleaving, in-lock precheck, liveness, ceiling,…
mohidmakhdoomi Aug 17, 2026
dcf22a5
[PIR #1365] Document the converged write-edge model in one place
mohidmakhdoomi Aug 18, 2026
54d5700
[PIR #1365] Thread log: implement phase
mohidmakhdoomi Aug 18, 2026
a5cc7d5
chore(porch): 1365 dev-approval gate-requested
mohidmakhdoomi Aug 18, 2026
ee3a17d
[PIR #1365] dev-approval evidence: 4 scenarios against an isolated li…
mohidmakhdoomi Aug 18, 2026
1483d65
[PIR #1365] Thread log: dev-approval evidence
mohidmakhdoomi Aug 18, 2026
2e70d30
chore(porch): 1365 dev-approval gate-approved
mohidmakhdoomi Aug 18, 2026
d2ba06d
chore(porch): 1365 review phase-transition
mohidmakhdoomi Aug 18, 2026
ad824bf
[PIR #1365] Review + retrospective
mohidmakhdoomi Aug 18, 2026
4f7d856
chore(porch): 1365 record PR #1492
mohidmakhdoomi Aug 18, 2026
9fea5c8
chore(porch): 1365 review build-complete
mohidmakhdoomi Aug 18, 2026
ece06a5
[PIR #1365] Fix codex/claude finding: kind-aware ceiling + report deg…
mohidmakhdoomi Aug 18, 2026
0dc75d8
[PIR #1365] Review round 2: byte-accurate bypass count, counter evict…
mohidmakhdoomi Aug 18, 2026
0ac85d8
[PIR #1365] Review doc: fill in the round-2 commit hash
mohidmakhdoomi Aug 18, 2026
618925f
chore(porch): 1365 pr gate-requested
mohidmakhdoomi Aug 18, 2026
81d02ad
chore(porch): 1365 pr gate-approved
mohidmakhdoomi Aug 18, 2026
df96c2e
chore(porch): 1365 protocol complete
mohidmakhdoomi Aug 18, 2026
ebbc495
Merge origin/main into builder/pir-1365
mohidmakhdoomi Aug 18, 2026
6c9fa81
[PIR #1365] Review doc + thread log: record the origin/main merge
mohidmakhdoomi Aug 18, 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
80 changes: 80 additions & 0 deletions codev/evidence/1365-dev-approval-transcript.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
Issue #1365 — dev-approval evidence
isolated Tower on port 14650 (NOT 4100 — the live Tower is untouched)
tower build: /home/user/code/codev_root/codev/.builders/pir-1365/packages/codev/dist/agent-farm/servers/tower-server.js
started: 2026-08-18T00:08:35.776Z

workspace: /home/user/.agent-farm/test-workspaces/pir1365-rTSkWJ
terminal: 7dbbf04f-cc9d-4444-a11a-b863edf2bb7a (real shellper-backed PTY, echo oracle)

==============================================================================
SCENARIO 1 — 10x long multi-line send + concurrent --interrupt
==============================================================================
PASS run 0: body never fragmented on the wire (whole=1 starts=1)
PASS run 0: the body was not duplicated — saw 1
PASS run 0: reported delivered → the body IS on the wire, whole
PASS run 0: the interrupt itself landed
PASS run 0: the interrupt's ^C landed
PASS run 1: body never fragmented on the wire (whole=1 starts=1)
PASS run 1: the body was not duplicated — saw 1
PASS run 1: reported delivered → the body IS on the wire, whole
PASS run 1: the interrupt itself landed
PASS run 1: the interrupt's ^C landed
… [runs 2-8 identical — 35 further checks, all PASS; trimmed for length]
PASS run 9: body never fragmented on the wire (whole=1 starts=1)
PASS run 9: the body was not duplicated — saw 1
PASS run 9: reported delivered → the body IS on the wire, whole
PASS run 9: the interrupt itself landed
PASS run 9: the interrupt's ^C landed

at request time: delivered=10 held=0
bodies that reached the wire: 10/10 — every one of them WHOLE
(holding is a correct outcome; fragmenting or lying about delivery is not)
rows still held after scenario 1: 0

==============================================================================
SCENARIO 2 — --delay 5 --interrupt against a MID-TURN agent
==============================================================================
PASS the send is SCHEDULED, not written at request time
PASS no body on the wire at request time
PASS the ^C fired at due time
PASS the body did NOT land mid-turn (the screen is still a draft)
PASS the body landed EXACTLY once on the clean prompt — saw 1
PASS the ^C preceded the body

==============================================================================
SCENARIO 3 — --interrupt against a busy line returns within the 2000ms ceiling
==============================================================================
interrupt round-trip: 2156ms (ceiling 2000ms)
PASS the interrupt returned near the ceiling, not after the whole write — 2156ms
PASS the interrupt still succeeded (the escape hatch works)
delivery outcome: delivered=false held=true reason=busy
tower: [2026-08-18T00:09:14.349Z] [WARN] interrupt → pir-1365-probe (terminal 7dbbf04f...) waited 2000ms for an in-flight write and proceeded UNSERIALIZED — it may interleave with that write. A message long enough to hold the line this long is the usual cause.
tower: [2026-08-18T00:09:16.139Z] [INFO] [mailbox] write to pir-1365-probe @ pir1365-rTSkWJ was raced by an unserialized operator write — holding 1ca72147… for redelivery rather than reporting it delivered
PASS Tower logged the ceiling degradation loudly (WARN)
PASS the raced delivery reported PREEMPTED and held its row for redelivery
PASS the raced delivery did NOT claim delivered — the false-delivered failure cannot recur here

==============================================================================
SCENARIO 4 — --escape unchanged; a non-writable terminal is refused
==============================================================================
PASS escape returns 200 ok
PASS the ESC byte reached the PTY
PASS its trailing Enter reached the PTY
escape to a killed terminal → 404 NOT_FOUND
PASS an operator action to a dead terminal is REFUSED, never silently dropped
normal send to the same dead agent → 404 held=undefined reason=undefined
PASS an unknown-after-death agent 404s (registry seam needs a real builder — see note)

NOT SCRIPTED HERE, and why:
503 TERMINAL_NOT_WRITABLE needs a shellper socket that has DIED while the
session still reports status=running (#1198). That state cannot be forced
from the public API without killing the shellper out of band, which would
be staging the result rather than observing it. It is covered by
tower-routes.test.ts:1560 against the real route, and this change does not
touch that branch — only the lock the branch returns before reaching.

==============================================================================
RESULT
==============================================================================
66/66 checks passed
ALL SCENARIOS PASSED
Loading
Loading