e2m loop envelopes + bounded LSP sweep complete (4s, was 46min silent)
DONE 2026-07-03. scripts/e2m.py: envelope=typed shape (id/agent/loop_type per the Claude Code loops taxonomy turn|goal|time|proactive/state/trigger/stop_criteria/budget/counters/ts), mailbox=durable version-controlled JSONL at reports/mailbox/<agent>.jsonl; `e2m.py open` alerts on runs with no terminal envelope — silence IS the alert. Loops post mirrored via refetch. lsp_sweep rewritten clean (4 sequential patches had frankenlayered two main paths — patch archaeology stopped, honest rewrite): outermost SIGALRM bounds STARTUP too (a jedi server hang outlived the loop budget by 40min), per-query alarms, scope heartbeats to mailbox + per-file .progress. Result: 84 symbols in 4 SECONDS under pbs, envelope lifecycle started→heartbeat×3→completed in the mailbox. 3 zero-ref candidates = all verified false positives (string-wired framework refs: DUPEFILTER_CLASS, scrapy spider name) — no deletions; the delegates-must-verify rule proven. Runbook gains the e2m section.
created 2026-07-03 21:20:19 · updated 2026-07-03 21:20:19