← Back to changelog
2026-05

Launch month — mobile, design, admin, and Knowledge Index Phase A

🚀 Launch

  • OAuth verification auto-approved (10 May 2026) — Google's review cleared, removing the last critical-path block to launch.
  • Launch track active — demo video CTA replaced with a placeholder, brand tone tightened, pre-launch code integrity (S78A) cleaned up.
  • Prompt template engine permanently hardened.formatstring.Template, retiring the 5/17 KeyError incident class for good.

📱 Mobile and design

  • Session 77 Mobile — landing and dashboard, end-to-end fix across 16 phases. Zero mobile viewport overflow, iOS Safari zoom avoided, NoteRenderer modal added, eight viewports laid out cleanly.
  • Mobile overflow FIX2 / FIX3 — sealed horizontal overflow on the analysis page with table-fixed + overflow-x-hidden.
  • Session 77B Design Track — font system, tone separation, content-type locale, Hero · Trust bar · 4-column footer, max-width across all three locales, dark-mode regression fix.
  • B-FINAL2 — removed status from the footer, brought down EN heroTitle size.

🛠 Admin panel hardening (S81 + S82)

  • Self-lockout prevention — admins can't downgrade their own role and lock themselves out.
  • pdf-regen elevated to verifyOwnerAdmin — blocks sub-admins from running pipeline commands.
  • Removed 1,000-user cap on user search — single SELECT against the new user_profiles.email index.
  • Real emails in audit logs — joined user_profiles instead of showing a UUID prefix.
  • pdf-regen smart batching — 50 per request, auto-loops, with a progress bar.
  • Slack incident notifier — fires on analysis-failure spikes and on Paddle webhook errors.
  • User drill-down page — profile + analyses + channels + audit on a single screen.
  • F1/F2/F3 — trend chart filled, channel-name lookup fixed, user counts corrected via Service Role Key.

📚 Knowledge Index Phase A (S83)

  • Library page — explore notes across Timeline / Cluster / Stack tabs.
  • Topic synthesis cron (weekly for Pro, daily for Max) — Claude Haiku synthesizes notes that share a topic.
  • Bulk delete — multi-select notes and delete them in one action, with integration-side cascade.

🔄 Operations Hygiene (S80) + Phase E (S84)

  • Zombie processing auto-reaper — rows stuck longer than an hour are cleared automatically.
  • Deterministic exceptions skip retry — code bugs like KeyError propagate immediately, cutting API costs by 3×.
  • RetryError unwraperror_msg now shows the inner exception, not a wrapper.
  • Env-var trim hardening — an invisible \n at the tail of a URL will no longer take production down.
  • Resurface daily digest (S84) — old notes resurface on 21 / 90 / 180 / 365-day intervals.
  • Recommendation fallback — when no same-topic notes exist, we fall back to your recent notes.

🎨 D18 sticky timeline

  • Left chapter sidebar — a 60-minute video becomes your personal index. IntersectionObserver highlights the active chapter on an amber background.
  • Chapter click jumps the YouTube video — direct watch?v=...&t=Ns link (one hotfix included).
  • Mobile hamburger sheet — chapters slide in from the left on small screens.