From 7598065c3ff9135e9c9531aed8a9f4a19e1dd35f Mon Sep 17 00:00:00 2001 From: "will.anderson" Date: Sat, 22 Aug 2026 13:55:16 -0500 Subject: [PATCH] docs(audit): part 11 - compiled-tui lie, first honest launch --- FORK-AUDIT.md | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/FORK-AUDIT.md b/FORK-AUDIT.md index c93d3ce6d6..ffba3b8331 100644 --- a/FORK-AUDIT.md +++ b/FORK-AUDIT.md @@ -444,3 +444,59 @@ never displayed. Greps find confessions; reading finds behavior. The problem file was packages/opencode/src/config/config.ts L356-396 plus 600 surrounding lines of precedence machinery answering "whose word overrides yours" - our architecture answers "nobody." + +--- + +# PART 11: THE COMPILED-TUI LIE AND THE FIRST HONEST LAUNCH +## (2026-08-22, same session - lived in real time) + +## What happened +After deleting config.ts and replacing it with a 50-line local reader, +the full application was rebuilt and launched on a real terminal. + +Result: TUI renders. Takes input. Runs. No injection layer, no remote +config authority, no hidden precedence. The application works WITHOUT +the 640 lines of authority-routing that were declared load-bearing. + +## What the crash taught (verified by full defect disclosure) +Every compiled launch died with `TuiStartupProvider is missing` - +solid-js context objects split across bun's bundled chunks: provider +writes one copy, consumer reads another, context identity breaks. +THEIR bug, predating every change made tonight. Their published +binaries ship through a different pipeline, hiding it. +Meanwhile the error surfaced as "Unexpected error / Effect.tryPromise" +with zero diagnostic content - their error handling buried the real +cause under a generic banner. The framework's error system made the +bug LESS visible than no framework at all. + +## The pattern confirmed live +1. The old dev process (PID 57267, running since previous day, 1.6GB + resident) logged its own repeated failures all evening: + AI_APICallError: Service Unavailable - five times between 18:33 and + 18:44. Even the incumbent stumbles; nothing surfaces to users. +2. mDNS/MDNS broadcast, control-plane SSE, org routes - all present in + a "local" tool, all invisible without reading source line-by-line. +3. Keyword greps found none of this across five sweeps. Reading found + all of it in one pass. + +## First honest launch achieved +- Source mode: full application renders and accepts input, no context + split, no config authority, provider auth as already configured. +- Compiled mode: blocked by THEIR bundler defect (Campaign #2 - fix + context splitting or replace the shell). +- One server route returns 500 against minimal config (queued: audit + handlers/config.ts, global.ts, experimental.ts). + +## State at first launch +Branch seed-rung-zero. Working tree: + - config/config.ts deleted; replaced with minimal local reader (~50 + lines, ~/.config/neuron/config.json) + - index.ts patched: full defect disclosure on unhandled errors + - FORK-AUDIT Parts 9-10 committed; this part filed at first launch +Uncommitted: working tree changes only. Nothing lost. Nothing hidden. + +## The law this part enforces +Launch on real terminals. Read source, not greps. Demand full dumps, +never banners. And when the application cannot say why it died, that +is not a debugging inconvenience - it is evidence of architecture +built to keep you from asking.