Skip to content

Substrate Audit — July 2026

Findings from VividRaven's ~7-hour substrate session (Opus 4.7 → 4.6), 2026-07-01/02.

Session Output Summary

DeliverableCommitStatus
Identity-continuity extensionae21c02Shipped
Ghostty QoL (scrollback 100M, image-storage 640MB)ae21c02Shipped
TP-391: pi TUI code-render upliftd2df553✅ Done (regression fixed by substrate-GUY 3367295b0)
TP-392: ClickHouse schema cleanup8b72a69Staged (P2)
TP-393: GPT-5.5 empty-output retry29ee3baea✅ Closed
Moneypenny brand corpus → ClickHouse7c4132fShipped
Brand north-star archaeology (14.6M tokens, 8 agents)Complete
Moneypenny/BatonPass naming lockedDecision
OMP updated 14.7.7 → 16.2.13Shipped
BlueBubbles Flatpak killed (37% CPU reclaimed)Shipped
EasyEffects killed (39% CPU reclaimed)Shipped
ClickHouse tools installed (clickhouse binary + clickhousectl)Shipped

Azure Endpoint Smoke Results

Tested 2026-07-02. 12 live, 3 dead.

Live Endpoints

EndpointStatus
azure-anthropic/claude-opus-4-6 ×3
azure-anthropic/claude-opus-4-7
azure-anthropic/claude-sonnet-4-6 ×2
azure-openai-responses/gpt-5.5 ×2
azure-openai-responses/gpt-5.4
azure-openai-responses/gpt-5.4-mini
azure-openai-responses/gpt-5.4-nano
azure-openai-responses/gpt-5.5-mini

Dead Endpoints

EndpointStatus
azure-anthropic/claude-haiku-4-5 ×3❌ All copies down

Impact: Small-reactive fallback chain is gpt-5.5-minigpt-5.4-minigpt-5.4-nanogpt-5.4.

Identity Bug Fix

Problem: Agent names cycled randomly on /reload-runtime. Root cause: pi-messenger-swarm's findContinuityRegistration() matches on cwd + gitBranch + pid. PID changes on /reload, and multi-agent-same-cwd shares the continuity slot — identity flips randomly (observed: TrueYak → VividRaven, MintIce → ZenEagle).

Fix: The identity-continuity extension:

  1. Derives a stable anchor from process.ppid + hostname (cross-platform, Bun/Node)
  2. Linux enhancement: tty-path + start-time from /proc for per-cmux-tab uniqueness
  3. Persists name ↔ anchor mapping in ~/.pi/messenger/identity-by-key/
  4. Extension factory sets PI_AGENT_NAME from disk before swarm registers
  5. /rename NewName persists identity, updates env, emits OSC 2/1 for tab title

Performance Wins

ActionCPU Reclaimed
Killed BlueBubbles Flatpak37%
Killed EasyEffects39%
Total~76% CPU freed

TP-400 closed — measurement artifact

PipeWire is not currently hot. TP-400 found ps %CPU was a lifetime average from the earlier EasyEffects/spatializer active period; pw-top showed PipeWire idle at ~0% / 0 ctx/s, with 16 clients but 0 active streams and no PipeWire/WirePlumber journal errors. Remaining risk is latent: spatializer-7.1.conf uses 8 SOFA HRTF convolvers and may spike CPU when headphone playback resumes.

ClickHouse State

Brand corpus ingested into ClickHouse:

  • discover.moneypenny_brand_docs — 5 rows (north-star, brand-system, generation-prompts, tokens-css, tokens-json)
  • discover.kg_taste_signals — 15 archaeology quotes (domain: moneypenny_aesthetic)
  • discover.joe_voice_model — dry-competent-warm register, 13 canonical examples
  • discover.images — Brandmark PNG (category: moneypenny_asset)

Data Quality Issues Found (TP-392)

IssueScope
HuggingFace training data in corpus.*~2.89M rows of public HF corpora mingled with Joe's corpus
Duplicate rows in memory.agent_jsonl_raw806k rows (~38% duplication)
Identity splitjosephlanzone (work-Mac) vs joe (personal-Mac) = same person

Codex OAuth

Refreshed via codex login --device-auth. Known issue: personal OPENAI_API_KEY poisons Codex fallback with 401 no_organization. Alias fix recommended.

GPT-5.5 Failure Diagnosis

Symptom: status: "failed", output: [], no error, no incomplete_details.

Not the cause: pi's adapter already sets include: ["reasoning.encrypted_content"] correctly.

Actual cause: OpenAI-side capacity allocation on xhigh reasoning tier combined with multi-tool loops.

Fix Timeline

  1. Step 1 shipped (fe62200): Effort-clamp patch — caps reasoning effort when tools present. Also sets store: true (store:false was causing 8 consecutive failures).
  2. Step 2 staged (6c8680c): Empty-output retry-with-degrade (GPT-5.5 → GPT-5.4 → GPT-5.4-mini).
  3. store:true initially verified by substrate-GUY (5 tool calls across 2 turns passed).
  4. store:true regressed — opaque response.failed returned despite prior success. Azure Responses 1M path remains unstable for tool-heavy workloads.

Current Model Routing (as of fleet activation)

Use CaseRoute
Routine fleet workazure-anthropic/claude-opus-4-6
Cheap/non-long-contextopenai-codex (harness-login, cheapest/free)
Long-context synthesis (1M)azure-openai-responses/gpt-5.5 (unstable — prefer codex fallback)
Small-reactive fallbackgpt-5.5-minigpt-5.4-minigpt-5.4-nano

Incidents (Fleet Session)

Pi 0.80.3 Crash on Node 24

Discovered: By Joe (operator) after repo-steward-GUY push triggered /reload on Mac agents.

Root cause: createRequire not imported in theme.js:861 — upstream pi build bug in 0.80.3, not caused by fleet pushes.

Fix: Pin pi 0.80.2 via mise. Applied to personal-Mac via SSH by repo-steward-GUY. Steambox already on 0.80.2.

Built with ❤️ following Bell Labs standards. Dedicated to Stan Eisenstat.