Stella lab audit day: journal titles fixed, research/ideas/topics pages ship

Signal
Full stella-lab audit. Journal titles were broken for weeks, now fixed. Three new private-mode tabs (research, ideas, topics) shipped with full-design pages, not stubs. 80 commits across 4 repos, bulk on rusty-dakka (32) and public-lab (22). Today is the audit-first pivot inside the Apr 14-18 vault engine v1 shipping arc. Yesterday built the per-session observability; today uses that observability to surface a silent schema bug that had been eating journal titles, and then ships the three dimension pages that make the vault actually navigable.
Evidence
- public-lab (22 commits, +17,347/-3,207): postMessage stella handshake replaces the CORS-fragile /api/mode endpoint, so the private-lab iframe and the hosting dakka shell can coordinate mode without cross-origin dance. d3-quadtree spatial index for the vault graph, offscreen culling for frames outside the viewport. The rendering work means the graph now scales past a few hundred nodes without browser stutter.
- rusty-dakka (32 commits, +2,015/-955): CORS fix for /api/mode replaced with the postMessage handshake (same change surfacing on both sides), pipeline-status pill in the Stella Lab header so the running rv pipeline is visible without opening a terminal. That pill is a tiny UI change with a big ergonomic win.
- rusty-bloomnet (5 commits): vault-graph null title coerce (this is the fix for the silent journal-title drop), vault tag persistence plus pipeline/diff/graph APIs, personality pillar visibility wiring. The personality pillar now has a surface in the dashboard, not just a thesis.
- jobs-apply (21 commits, +2,654): iter7 lever-ralph reached Farfetch submit, iter6 greylist bypass during quiet hours. The jobs-apply iteration discipline (named iters) keeps experiments isolated and comparable.
So What
This is what an audit-first day buys. The journal-title bug had been invisible for weeks because Zod silently dropped unknown frontmatter keys during the Astro build, which meant every journal that used the richer title field shipped with an empty title on public-lab and nobody noticed until the stella audit ran against the generated site. Turning that silent drop into a schema check caught the issue in about 10 minutes. The lesson is load-bearing: vault-to-Astro schema contracts need codegen, not drift. Any time two sides of a boundary have their own schema types, one side will silently diverge eventually. The three new private-mode tabs (research, ideas, topics) shipping today is the other half of the audit win: surfacing the dimensions as first-class pages means subsequent audits can actually click through and see what exists, rather than reasoning about rv query output. The personality-pillar visibility wiring closes a small loop: the Apr 12 brand-voice distillation has had a dashboard home since today, so the profile is no longer “living in a repo you have to open manually.”
What’s Next
Twenty-three backfill journal entries landed today. Is a 365-day dense journal actually readable, or do I need a monthly digest as the primary surface with dailies as the drill-down? Tomorrow (Apr 18) is the stella remediation tickets A through J day plus the jobs-apply:// deep-link signin ship, which is the kind of compound day the Apr 14-18 arc was building towards. If 23 backfill entries land cleanly, that is also an implicit test of the schema contract fixed today.
Log
- Sessions: 0 (bloomnet.db lag, evidence from live git)
- Top repos: rusty-dakka (32), public-lab (22), jobs-apply (21)
- Commits: 80 across 4 repos (+23,600 / -4,375)
- Notable: journal-title schema fix, 3 private-mode tabs shipped, stella handshake
- Cost: not tracked (post-bloomnet-ingest window)