Every route handler was written as one dense semicolon-chained line
(server.mjs's main handler was over 2000 characters wide) — real
width, not a VSCode wrapping artifact. Ran Prettier to break statement
structure into properly indented multi-line code; left template
literal string contents untouched since Prettier doesn't reformat
inside those, so the large HTML-generating return strings are still
single long lines by nature, just no longer compounded by unformatted
surrounding JS. Verified: tests pass, node --check passes, and the
app renders identically before/after (screenshotted the diff).
No devDependency added — npx prettier@3.9.5 pinned in the new scripts
keeps the zero-runtime-dependency pledge intact; formatting is a dev-
time concern only.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Its inline <style> block never defined nav{display:flex;gap:...} like
the shared stylesheet does, so the three links ran together with no
spacing as soon as the previous commit added them. Screenshotted to
confirm before committing.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The operational-events page existed and worked but was never linked
from the incident notebook (or vice versa) — reachable only if you
already knew the URL. Both layouts now share the same three-item nav.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Full walkthrough of the private incident notebook (timeline,
hypotheses, publishing), an endpoint reference table for the receipts
API, real curl examples for both receipt types, a config reference,
and an honest note about the dead pre-v1 /api/receipts endpoint
instead of leaving it undocumented.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>