Skip to content

design: introspection v1 (0.9, priority tier 2) - #256

Merged
unbalancedparentheses merged 14 commits into
mainfrom
design/introspection
Nov 11, 2026
Merged

unbalancedparentheses merged 14 commits into
mainfrom
design/introspection

Conversation

@unbalancedparentheses

@unbalancedparentheses unbalancedparentheses commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Design only (no library code). Revision 3 answers two review rounds from Codex and agy (round one: 4 P0, 26 P1; round two: 13 P1; round three: 5 P1, no P0); see the "Review resolutions" section. Introspection v1 for spawned 0.9 (priority tier 2): docs/design/introspection.md.

  • info() (process_info) out of band, readable while a handler is wedged; get_state/get_status in band between turns (OTP sys), state redacted unless Inspect.
  • Tier 0 (always on, nothing added to send/dispatch/turn) vs the introspection feature (message type, ages, mailbox length; a few relaxed stores per turn, no clock read), with a cost table per field.
  • Supervision trees (which_children/count_children/tree, types shared with design: dynamic supervisor (rank 12a) #245), system snapshots, structured crash/supervisor/stall tracing events, a multi-session event sink.
  • Stall watchdog (rank 8) on an OS thread: long poll, long turn, group starvation, long mailbox; report by default, fenced Killed opt-in.
  • Remote console (G23): local Unix socket on by default, read-only by default, no TCP, no eval; spawned-ctl; versioned NDJSON protocol shared with spawned-top.
  • Flight recorder (rank 9) deferred to 0.10; turn abort at an await deferred (open question).
  • TLA+: verification/tla/Introspection.tla (fenced kill, status between turns and at death), revision 4: 47,968 states (4 messages: 80,482), 20 negative controls each failing on its named invariant (run on fede).
  • Test plan, client mapping (ethrex d958dcba4 and 535647e45, ethlambda chain actor), ROADMAP and semantics entries.

🤖 Generated with Claude Code

@unbalancedparentheses
unbalancedparentheses marked this pull request as ready for review November 11, 2026 17:43
@unbalancedparentheses
unbalancedparentheses added this pull request to the merge queue Nov 11, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to a conflict with the base branch Nov 11, 2026
…CAS, panics, runtime drop, D vs publication; 13 controls)
…alidity, derived ghosts, split linearization points; 18 controls)
…on, bounded console work, audit delivery, trace flag, terminate fencing, round-two resolutions)
…nt, RunAfterSkip control (Codex round three #4)
@unbalancedparentheses
unbalancedparentheses added this pull request to the merge queue Nov 11, 2026
Merged via the queue into main with commit df12697 Nov 11, 2026
28 checks passed
@unbalancedparentheses
unbalancedparentheses deleted the design/introspection branch November 11, 2026 18:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant