Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
adff091
Plan terminal catch-up stream safety
codex Jun 8, 2026
995fb29
Address terminal catch-up plan review
codex Jun 8, 2026
e93fd8b
Harden terminal catch-up plan assumptions
codex Jun 8, 2026
6f74e6f
Add terminal catch-up proof dossier
codex Jun 9, 2026
085c5df
Update terminal catch-up plan with proof dossier
codex Jun 9, 2026
36e5773
Address terminal catch-up plan fresh eyes findings
codex Jun 9, 2026
b0462d4
Fix terminal catch-up plan verification gates
codex Jun 9, 2026
2e4ca65
Address final fresh eyes plan findings
codex Jun 9, 2026
0cd2d52
Plan terminal catch-up as single implementation PR
codex Jun 9, 2026
9406699
Add generation safety to terminal write queue
codex Jun 9, 2026
6f07230
Model terminal catch-up checkpoints explicitly
codex Jun 9, 2026
82eab6c
Harden terminal checkpoint compatibility
codex Jun 9, 2026
115b077
Fail closed during checkpoint migration
codex Jun 9, 2026
4f48969
Fence terminal catch-up by attach generation
codex Jun 9, 2026
ef45b18
Harden terminal attach surface resets
codex Jun 9, 2026
b0d75b4
Fail closed for in-flight terminal delta attaches
codex Jun 9, 2026
7c8d682
Repair quarantined terminal hydrates after drain
codex Jun 9, 2026
39a8c6a
Guard terminal quarantine repair ownership
codex Jun 9, 2026
ee991e5
Handle tagged invalid terminal attach errors
codex Jun 9, 2026
ded0a96
Gate terminal output side effects by write scope
codex Jun 9, 2026
e70af19
Preserve live terminal side effects during replay
codex Jun 9, 2026
3b8cc18
Fence terminal callbacks by surface scope
codex Jun 9, 2026
9056534
Invalidate local notice checkpoints after write
codex Jun 9, 2026
d0c8c9f
Fragment terminal output before sequence assignment
codex Jun 9, 2026
e858683
Preserve stream boundaries in terminal output batching
codex Jun 9, 2026
8e5ce98
Preserve stream identity through gaps and retention loss
codex Jun 9, 2026
33ca737
Retag retained terminal frames after retention loss
codex Jun 9, 2026
197c938
Preserve terminal stream identity in checkpoints
codex Jun 9, 2026
af906da
Use serialized budgets for replay truncation
codex Jun 9, 2026
5063310
Coordinate terminal stream identity rotations
codex Jun 9, 2026
33b950d
Reject null stream checkpoint warm delta
codex Jun 9, 2026
46a46e9
Preserve terminal stream boundaries during replay
codex Jun 9, 2026
61271d7
Handle stream changes during replay cursors
codex Jun 9, 2026
8e12082
Make terminal replay batching barrier aware
codex Jun 9, 2026
e0df4a7
Fix terminal output barrier batching edge cases
codex Jun 9, 2026
a6f0356
Use deque storage for terminal replay retention
codex Jun 9, 2026
06063f9
Pace foreground terminal replay under socket pressure
codex Jun 9, 2026
4d4fcf4
Fix foreground replay pacing coverage
codex Jun 9, 2026
108175f
Harden foreground replay pacing
codex Jun 9, 2026
150f4ce
Add protocol-aware terminal output batches
codex Jun 9, 2026
b226729
Prevent stripped batch checkpoint advancement
codex Jun 9, 2026
f03cc0a
Fix terminal output batch cursor safety
codex Jun 9, 2026
08f07e9
Reject malformed terminal batch ranges
codex Jun 9, 2026
9f9c69c
Harden terminal batch client validation
codex Jun 9, 2026
df080fa
Reject fractional batch byte counts
codex Jun 9, 2026
e8d4128
Keep terminal batch payloads within budget
codex Jun 9, 2026
f90d97c
Complete stripped replay attaches
codex Jun 9, 2026
3733cbb
Queue stripped replay attach completion
codex Jun 9, 2026
39fd13b
Reject malformed batch barriers
codex Jun 9, 2026
b075ae9
Require exact batch raw frame counts
codex Jun 9, 2026
0dbb777
Reject malformed batch data
codex Jun 9, 2026
0dce35e
Instrument terminal catch-up replay safety
codex Jun 9, 2026
f98b339
Add replay pause payload metrics
codex Jun 9, 2026
38af887
Refine replay observability events
codex Jun 9, 2026
c5fd10e
Record stale attach audit events
codex Jun 9, 2026
390196d
Refine terminal replay observability events
codex Jun 9, 2026
6c1dc73
Aggregate terminal replay retention logs
codex Jun 9, 2026
34f236d
Audit terminal catch-up replay performance
codex Jun 9, 2026
dca697a
Populate reconnect input latency audit metric
codex Jun 9, 2026
ef9f973
Require source-backed catch-up proof metrics
codex Jun 9, 2026
231d024
Require real catch-up metric evidence
codex Jun 9, 2026
b54e4a5
Validate process suspend audit metrics
codex Jun 9, 2026
e572255
Update terminal e2e stream fixtures
codex Jun 9, 2026
dec34e6
Update startup probe stream fixtures
codex Jun 9, 2026
b6418b6
Pin xterm dependency for terminal replay proof
codex Jun 9, 2026
1229f89
Update replay remount test stream fixtures
codex Jun 9, 2026
7fadaca
Harden terminal live replay sends
codex Jun 9, 2026
75d3302
Increase terminal live backlog retention
codex Jun 10, 2026
1948d33
Coalesce live terminal backlog writes
codex Jun 10, 2026
d646850
Retag queued live output on retention loss
codex Jun 10, 2026
504bd55
Harden stream rotation and geometry replay safety
codex Jun 10, 2026
e24265b
Fail closed on invalid terminal batches
codex Jun 10, 2026
65f4dcf
Prevent checkpoints across lost output tails
codex Jun 10, 2026
42db8e2
Bump terminal stream websocket protocol
codex Jun 10, 2026
171f32e
Harden terminal quarantine timeout recovery
codex Jun 10, 2026
568befa
Align terminal catch-up plan with single PR proof
codex Jun 10, 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
2,849 changes: 2,849 additions & 0 deletions docs/superpowers/plans/2026-06-08-terminal-catchup-stream-safety.md

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
{
"generatedAt": "2026-06-09T01:00:28.173Z",
"chromiumVersion": "145.0.7632.6",
"headed": true,
"wsSendIntervalMs": 50,
"active": {
"before": {
"at": 1087.699999988079,
"visibilityState": "visible",
"hidden": false,
"intervalTicks": 21,
"rafTicks": 57,
"wsReceived": 21,
"lastIntervalAt": 1059.4000000059605,
"lastRafAt": 1086.2999999821186,
"lastWsAt": 1064.9000000059605
},
"after": {
"at": 2091.2999999821186,
"visibilityState": "visible",
"hidden": false,
"intervalTicks": 41,
"rafTicks": 117,
"wsReceived": 41,
"lastIntervalAt": 2059.2999999821186,
"lastRafAt": 2087.0999999940395,
"lastWsAt": 2069.4000000059605
},
"pageDelta": {
"elapsedMs": 1003.5999999940395,
"visibilityStateBefore": "visible",
"visibilityStateAfter": "visible",
"intervalTicks": 20,
"rafTicks": 60,
"wsReceived": 20
},
"serverSentDelta": 20
},
"backgrounded": {
"before": {
"at": 2349.0999999940395,
"visibilityState": "visible",
"hidden": false,
"intervalTicks": 46,
"rafTicks": 132,
"wsReceived": 46,
"lastIntervalAt": 2309.199999988079,
"lastRafAt": 2336.4000000059605,
"lastWsAt": 2322.5999999940395
},
"after": {
"at": 5351.5,
"visibilityState": "visible",
"hidden": false,
"intervalTicks": 106,
"rafTicks": 312,
"wsReceived": 106,
"lastIntervalAt": 5309.199999988079,
"lastRafAt": 5336.5999999940395,
"lastWsAt": 5327.9000000059605
},
"pageDelta": {
"elapsedMs": 3002.4000000059605,
"visibilityStateBefore": "visible",
"visibilityStateAfter": "visible",
"intervalTicks": 60,
"rafTicks": 180,
"wsReceived": 60
},
"serverSentDelta": 60
},
"resumed": {
"after": {
"at": 6362,
"visibilityState": "visible",
"hidden": false,
"intervalTicks": 127,
"rafTicks": 373,
"wsReceived": 126,
"lastIntervalAt": 6359.199999988079,
"lastRafAt": 6352.699999988079,
"lastWsAt": 6331.199999988079
},
"pageDeltaFromHiddenEnd": {
"elapsedMs": 1010.5,
"visibilityStateBefore": "visible",
"visibilityStateAfter": "visible",
"intervalTicks": 21,
"rafTicks": 61,
"wsReceived": 20
},
"serverSentDelta": 20
}
}
103 changes: 103 additions & 0 deletions docs/superpowers/proofs/artifacts/browser-freeze-lifecycle.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
{
"generatedAt": "2026-06-09T00:59:10.228Z",
"chromiumVersion": "145.0.7632.6",
"headed": true,
"wsSendIntervalMs": 50,
"active": {
"before": {
"at": 1024.800000011921,
"visibilityState": "visible",
"intervalTicks": 20,
"rafTicks": 50,
"wsReceived": 20,
"lastIntervalAt": 1012.1000000238419,
"lastRafAt": 1024,
"lastWsAt": 993.3000000119209
},
"after": {
"at": 2027,
"visibilityState": "visible",
"intervalTicks": 40,
"rafTicks": 110,
"wsReceived": 40,
"lastIntervalAt": 2012.1000000238419,
"lastRafAt": 2024.4000000059605,
"lastWsAt": 1995.5
},
"pageDelta": {
"elapsedMs": 1002.1999999880791,
"intervalTicks": 20,
"rafTicks": 60,
"wsReceived": 20
},
"serverSentDelta": 20
},
"frozen": {
"stateCommand": "Page.setWebLifecycleState({ state: 'frozen' })",
"durationMs": 3008,
"before": {
"at": 2027,
"visibilityState": "visible",
"intervalTicks": 40,
"rafTicks": 110,
"wsReceived": 40,
"lastIntervalAt": 2012.1000000238419,
"lastRafAt": 2024.4000000059605,
"lastWsAt": 1995.5
},
"evalStatus": "returned",
"evalSnapshot": {
"at": 4029.9000000059605,
"visibilityState": "visible",
"intervalTicks": 80,
"rafTicks": 230,
"wsReceived": 80,
"lastIntervalAt": 4012.100000023842,
"lastRafAt": 4024.100000023842,
"lastWsAt": 4002.7000000178814
},
"pageDeltaIfEvalReturned": {
"elapsedMs": 2002.9000000059605,
"intervalTicks": 40,
"rafTicks": 120,
"wsReceived": 40
},
"serverSentDelta": 40
},
"resumed": {
"immediate": {
"at": 4032,
"visibilityState": "visible",
"intervalTicks": 80,
"rafTicks": 230,
"wsReceived": 80,
"lastIntervalAt": 4012.100000023842,
"lastRafAt": 4024.100000023842,
"lastWsAt": 4002.7000000178814
},
"after": {
"at": 5034.800000011921,
"visibilityState": "visible",
"intervalTicks": 100,
"rafTicks": 290,
"wsReceived": 100,
"lastIntervalAt": 5012.100000023842,
"lastRafAt": 5024.100000023842,
"lastWsAt": 5003.800000011921
},
"immediateDeltaFromFreezeStart": {
"elapsedMs": 2005,
"intervalTicks": 40,
"rafTicks": 120,
"wsReceived": 40
},
"pageDeltaAfterResume": {
"elapsedMs": 1002.8000000119209,
"intervalTicks": 20,
"rafTicks": 60,
"wsReceived": 20
},
"serverSentDeltaImmediate": 40,
"serverSentDeltaAfterResume": 20
}
}
89 changes: 89 additions & 0 deletions docs/superpowers/proofs/artifacts/browser-process-suspend.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
{
"generatedAt": "2026-06-09T01:04:42.470Z",
"chromiumVersion": "145.0.7632.6",
"browserPid": 1211057,
"wsSendIntervalMs": 50,
"active": {
"before": {
"at": 1020.2000000178814,
"intervalTicks": 20,
"rafTicks": 61,
"wsReceived": 20,
"lastIntervalAt": 1006.9000000059605,
"lastRafAt": 1009.1000000238419,
"lastWsAt": 1013.2000000178814
},
"after": {
"at": 2024.300000011921,
"intervalTicks": 40,
"rafTicks": 121,
"wsReceived": 40,
"lastIntervalAt": 2007,
"lastRafAt": 2009,
"lastWsAt": 2017.2000000178814
},
"pageDelta": {
"elapsedMs": 1004.0999999940395,
"intervalTicks": 20,
"rafTicks": 60,
"wsReceived": 20
},
"serverSentDelta": 20
},
"stopped": {
"signal": "SIGSTOP",
"stoppedPids": [
1211057,
1211092,
1211140,
1211093,
1211229,
1211145
],
"durationMs": 2002,
"before": {
"at": 2024.300000011921,
"intervalTicks": 40,
"rafTicks": 121,
"wsReceived": 40,
"lastIntervalAt": 2007,
"lastRafAt": 2009,
"lastWsAt": 2017.2000000178814
},
"afterResumeImmediate": {
"at": 4053,
"intervalTicks": 41,
"rafTicks": 124,
"wsReceived": 80,
"lastIntervalAt": 4050.5,
"lastRafAt": 4050.600000023842,
"lastWsAt": 4052.800000011921
},
"pageDeltaAfterResumeImmediate": {
"elapsedMs": 2028.699999988079,
"intervalTicks": 1,
"rafTicks": 3,
"wsReceived": 40
},
"serverSentWhileStopped": 40,
"serverSentByResumeImmediate": 40
},
"resumed": {
"after": {
"at": 5057.600000023842,
"intervalTicks": 62,
"rafTicks": 184,
"wsReceived": 100,
"lastIntervalAt": 5057,
"lastRafAt": 5042.300000011921,
"lastWsAt": 5026.5
},
"pageDeltaAfterResume": {
"elapsedMs": 1004.6000000238419,
"intervalTicks": 21,
"rafTicks": 60,
"wsReceived": 20
},
"serverSentDeltaAfterResume": 20
}
}
Loading
Loading