docs(audit): part 11 - compiled-tui lie, first honest launch

This commit is contained in:
2026-08-22 13:55:16 -05:00
parent 9bd3670e2d
commit 7598065c3f
+56
View File
@@ -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.