Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
21bad7e
Add export and replay schema groundwork
ThomasK33 Mar 21, 2026
75fa9fc
Add offline replay renderer helper
ThomasK33 Mar 21, 2026
dcd83df
Add offline fallback for snapshot command
ThomasK33 Mar 21, 2026
d442e90
Add offline fallback for screenshot command
ThomasK33 Mar 21, 2026
6451e99
test: update exited snapshot e2e expectation
ThomasK33 Mar 21, 2026
34534d3
Add asciicast record export command
ThomasK33 Mar 21, 2026
d0a39a9
Add gc command for stale session cleanup
ThomasK33 Mar 21, 2026
e32b7e6
Add doctor filesystem and PTY health checks
ThomasK33 Mar 21, 2026
3a0be7d
Add Ghostty web video capture support
ThomasK33 Mar 21, 2026
5f32135
Add WebM record export support
ThomasK33 Mar 21, 2026
d1850c4
Fix record export hashing for webm and asciicast
ThomasK33 Mar 21, 2026
8f68f52
Fix prettier formatting in GhosttyWebBackend
ThomasK33 Mar 21, 2026
ef727a8
test: add export fixture e2e coverage
ThomasK33 Mar 21, 2026
abadee5
Add Week 3 dogfood proof bundles
ThomasK33 Mar 21, 2026
535b9a4
Fix targeted review findings
ThomasK33 Mar 22, 2026
6f0c977
Fix WebM renderer backend abstraction
ThomasK33 Mar 22, 2026
90a4f1a
test: cover replay and export error fallbacks
ThomasK33 Mar 22, 2026
bb75c33
dogfood: add LazyVim + Claude Code extra scenario
ThomasK33 Mar 22, 2026
215166d
docs: add LazyVim scenario repro playbook for coding agents
ThomasK33 Mar 22, 2026
5957152
docs: fix lazyvim repro playbook
ThomasK33 Mar 22, 2026
0fed235
style: fix prettier formatting across all changed files
ThomasK33 Mar 22, 2026
8ff3231
Fix alt-screen demo timing window
ThomasK33 Mar 22, 2026
221e7b8
Fix alt-screen fixture timing flakiness
ThomasK33 Mar 22, 2026
8712ee3
Add marker protocol schemas and event log support
ThomasK33 Mar 22, 2026
67a9845
Add mark RPC handler and CLI command
ThomasK33 Mar 22, 2026
9d5b288
Add marker support to asciicast export
ThomasK33 Mar 22, 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
45 changes: 45 additions & 0 deletions dogfood/20260321-week3-crash-retention/NOTES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Week 3 crash-retention dogfood proof bundle

- **Date:** 2026-03-21T21:48:34Z
- **Bundle:** `dogfood/20260321-week3-crash-retention/`
- **Crash session ID:** `01KM95Z3QSQKN28SVD03BP28Z2`
- **AGENT_TERMINAL_HOME:** `/tmp/agent-terminal-week3-bundles.Bo0MbU/home.KGOAC6`
- **Environment:** Node `v24.14.0` on `Linux 6.8.0-94-generic x86_64 GNU/Linux`
- **Headless note:** Review this bundle via the JSON envelopes plus the copied snapshot/screenshot/recording/video artifacts.

## Artifacts

| File | Description |
| -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| `commands.sh` | Exact shell commands used to generate the crash-retention bundle. |
| `agent-terminal-home.txt` | The isolated home used for the crash-retention scenario. |
| `session-id.txt` | Session ID for the crash-retention scenario. |
| `doctor.json` | `doctor --json` output proving the environment and renderer checks passed before running the crash scenario. |
| `create-output.json` | Session creation result for the crashing command. |
| `wait-exit.json` | `wait --exit --json` result capturing the crash exit code. |
| `inspect-post-crash.json` | `inspect --json` result showing the session remains persisted after the abnormal exit. |
| `snapshot-post-crash.json` | Offline replay snapshot taken after the crash. |
| `screenshot-post-crash.json` | Offline replay screenshot taken after the crash. |
| `record-asciicast-post-crash.json` | Asciicast export JSON envelope from the crashed session. |
| `record-webm-post-crash.json` | WebM export JSON envelope from the crashed session. |
| `manifest.json` | Final copied artifact manifest from the crash session home. |
| `session-manifest.json` | Copied session manifest showing the persisted exited state and crash metadata. |
| `event-log.jsonl` | Raw event log copied from the crash session home. |
| `artifacts/post-crash-snapshot-structured-artifact.json` | Snapshot artifact copied after offline replay. |
| `artifacts/post-crash-reference-dark.png` | Screenshot PNG copied after offline replay. |
| `artifacts/session-post-crash.cast` | Asciicast exported from the crashed session. |
| `artifacts/session-post-crash.webm` | WebM exported from the crashed session. |

## Verification claims

- `doctor.json` reports `ok: true` and all checks passed before the crash scenario ran.
- `wait-exit.json` captured exit code `42`, demonstrating non-zero exit retention.
- `inspect-post-crash.json` shows the session persisted in `exited` state after the abnormal termination rather than disappearing.
- `snapshot-post-crash.json` and `screenshot-post-crash.json` prove offline replay remained available after the crash.
- `record-asciicast-post-crash.json` and `record-webm-post-crash.json` prove recording export also remained available after the crash.
- `manifest.json`, `session-manifest.json`, and `event-log.jsonl` preserve the evidence that remained after the process exited non-zero.

## Issues encountered

- No blocking issues were encountered during bundle generation.
- As with the renderer bundle, the generator retries WebM export once before failing because video export is the slowest step.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/tmp/agent-terminal-week3-bundles.Bo0MbU/home.KGOAC6
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
{
"format": "structured",
"sessionId": "01KM95Z3QSQKN28SVD03BP28Z2",
"capturedAtSeq": 1,
"cols": 80,
"rows": 24,
"cursorRow": 1,
"cursorCol": 0,
"isAltScreen": false,
"visibleLines": [
{
"row": 0,
"text": "crash-test-output"
},
{
"row": 1,
"text": ""
},
{
"row": 2,
"text": ""
},
{
"row": 3,
"text": ""
},
{
"row": 4,
"text": ""
},
{
"row": 5,
"text": ""
},
{
"row": 6,
"text": ""
},
{
"row": 7,
"text": ""
},
{
"row": 8,
"text": ""
},
{
"row": 9,
"text": ""
},
{
"row": 10,
"text": ""
},
{
"row": 11,
"text": ""
},
{
"row": 12,
"text": ""
},
{
"row": 13,
"text": ""
},
{
"row": 14,
"text": ""
},
{
"row": 15,
"text": ""
},
{
"row": 16,
"text": ""
},
{
"row": 17,
"text": ""
},
{
"row": 18,
"text": ""
},
{
"row": 19,
"text": ""
},
{
"row": 20,
"text": ""
},
{
"row": 21,
"text": ""
},
{
"row": 22,
"text": ""
},
{
"row": 23,
"text": ""
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{"version":2,"width":80,"height":24,"timestamp":1774129746,"title":"01KM95Z3QSQKN28SVD03BP28Z2","env":{"TERM":"xterm-256color"}}
[0,"o","crash-test-output\r\n"]
Binary file not shown.
25 changes: 25 additions & 0 deletions dogfood/20260321-week3-crash-retention/commands.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/usr/bin/env bash
set -euo pipefail
export PATH="$HOME/.local/bin:$PATH"
if command -v mise >/dev/null 2>&1; then
mise_shell_env="$(mise activate bash 2>/dev/null || true)"
if [[ -n "$mise_shell_env" ]]; then
eval "$mise_shell_env"
fi
mise_node="$(mise which node 2>/dev/null || true)"
if [[ -n "$mise_node" ]]; then
export PATH="$(dirname "$mise_node"):$PATH"
fi
fi
cd /home/coder/.mux/src/agent-terminal/agent_exec_7c2a453166
export PATH="/home/coder/.mux/src/agent-terminal/agent_exec_7c2a453166/node_modules/.bin:$PATH"
export AGENT_TERMINAL_HOME=/tmp/agent-terminal-week3-bundles.Bo0MbU/home.KGOAC6

tsx src/cli/main.ts doctor --json
tsx src/cli/main.ts create --json -- /bin/bash -lc echo\ crash-test-output\ \&\&\ exit\ 42
tsx src/cli/main.ts wait 01KM95Z3QSQKN28SVD03BP28Z2 --exit --timeout 20000 --json
tsx src/cli/main.ts inspect 01KM95Z3QSQKN28SVD03BP28Z2 --json
tsx src/cli/main.ts snapshot 01KM95Z3QSQKN28SVD03BP28Z2 --json
tsx src/cli/main.ts screenshot 01KM95Z3QSQKN28SVD03BP28Z2 --json
tsx src/cli/main.ts record export 01KM95Z3QSQKN28SVD03BP28Z2 --format asciicast --out dogfood/20260321-week3-crash-retention/artifacts/session-post-crash.cast --json
tsx src/cli/main.ts record export 01KM95Z3QSQKN28SVD03BP28Z2 --format webm --out dogfood/20260321-week3-crash-retention/artifacts/session-post-crash.webm --json
8 changes: 8 additions & 0 deletions dogfood/20260321-week3-crash-retention/create-output.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"ok": true,
"command": "create",
"timestamp": "2026-03-21T21:49:06.387Z",
"result": {
"sessionId": "01KM95Z3QSQKN28SVD03BP28Z2"
}
}
86 changes: 86 additions & 0 deletions dogfood/20260321-week3-crash-retention/doctor.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
{
"ok": true,
"command": "doctor",
"timestamp": "2026-03-21T21:49:04.852Z",
"result": {
"ok": true,
"checks": {
"environment": [
{
"name": "node-runtime",
"status": "pass",
"message": "Node 24.14.0 ok",
"durationMs": 0
},
{
"name": "cwd-access",
"status": "pass",
"message": "cwd read/write: /home/coder/.mux/src/agent-terminal/agent_exec_7c2a453166",
"durationMs": 1
},
{
"name": "temp-dir",
"status": "pass",
"message": "temp dir ok: /tmp",
"durationMs": 8
},
{
"name": "home-writable",
"status": "pass",
"message": "home writable: /tmp/agent-terminal-week3-bundles.Bo0MbU/home.KGOAC6",
"durationMs": 2
},
{
"name": "pty-spawn",
"status": "pass",
"message": "spawned /home/coder/.local/share/mise/installs/node/24.14.0/bin/node",
"durationMs": 36
},
{
"name": "socket-viable",
"status": "pass",
"message": "socket ok: /tmp/agent-terminal-week3-bundles.Bo0MbU/home.KGOAC6/sessions/doctor-833752-mn0v1jxt-2/host.sock",
"durationMs": 3
},
{
"name": "artifact-atomicity",
"status": "pass",
"message": "atomic rename ok: /tmp/agent-terminal-week3-bundles.Bo0MbU/home.KGOAC6/sessions/doctor-833752-mn0v1jxw-3/artifacts",
"durationMs": 2
},
{
"name": "event-log-writable",
"status": "pass",
"message": "append ok: /tmp/agent-terminal-week3-bundles.Bo0MbU/home.KGOAC6/sessions/doctor-833752-mn0v1jxy-5/events.jsonl",
"durationMs": 1
}
],
"renderer": [
{
"name": "playwright_available",
"status": "pass",
"message": "available",
"durationMs": 1
},
{
"name": "browser_launch",
"status": "pass",
"message": "chromium launches",
"durationMs": 120
},
{
"name": "ghostty_web_available",
"status": "pass",
"message": "WASM available",
"durationMs": 130
},
{
"name": "screenshot_viable",
"status": "pass",
"message": "viable",
"durationMs": 162
}
]
}
}
}
2 changes: 2 additions & 0 deletions dogfood/20260321-week3-crash-retention/event-log.jsonl
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{"seq":0,"ts":"2026-03-21T21:49:06.407Z","type":"output","payload":{"data":"crash-test-output\r\n"}}
{"seq":1,"ts":"2026-03-21T21:49:06.408Z","type":"exit","payload":{"exitCode":42,"exitSignal":null}}
26 changes: 26 additions & 0 deletions dogfood/20260321-week3-crash-retention/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Bundle file index

Generated at `2026-03-21T21:48:34Z`.

```text
NOTES.md
agent-terminal-home.txt
artifacts/post-crash-reference-dark.png
artifacts/post-crash-snapshot-structured-artifact.json
artifacts/session-post-crash.cast
artifacts/session-post-crash.webm
commands.sh
create-output.json
doctor.json
event-log.jsonl
index.md
inspect-post-crash.json
manifest.json
record-asciicast-post-crash.json
record-webm-post-crash.json
screenshot-post-crash.json
session-id.txt
session-manifest.json
snapshot-post-crash.json
wait-exit.json
```
22 changes: 22 additions & 0 deletions dogfood/20260321-week3-crash-retention/inspect-post-crash.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"ok": true,
"command": "inspect",
"timestamp": "2026-03-21T21:49:08.108Z",
"result": {
"session": {
"version": 1,
"sessionId": "01KM95Z3QSQKN28SVD03BP28Z2",
"createdAt": "2026-03-21T21:49:05.666Z",
"updatedAt": "2026-03-21T21:49:06.407Z",
"status": "exited",
"command": ["/bin/bash", "-lc", "echo crash-test-output && exit 42"],
"cwd": "/home/coder/.mux/src/agent-terminal/agent_exec_7c2a453166",
"cols": 80,
"rows": 24,
"hostPid": 833995,
"childPid": 834008,
"exitCode": 42,
"exitSignal": null
}
}
}
Loading
Loading