Skip to content

feat(chronicle): Phase 5 — hardening & release - #111

Merged
splaice merged 5 commits into
mainfrom
cheap-coder/chronicle-phase-5
Jul 14, 2026
Merged

splaice merged 5 commits into
mainfrom
cheap-coder/chronicle-phase-5

Conversation

@splaice

@splaice splaice commented Jul 14, 2026 •

Copy link
Copy Markdown
Owner

Objective

Phase 5 (final) of Life Chronicle (epic #105): hardening and release. Goal mode: review + merge delegated via /goal.

Tasks — all complete

  • 5.1 — security: login rate limiting, reauth-for-export, app CSP, adversarial sanitizer corpus (nh3 held — zero code changes needed), redaction pipeline with review-before-write
  • 5.2 — universal command bar (Search/Ask/Explore), Ctrl/Cmd+K palette (G-004), §14.2 keyboard registry + live ? reference
  • 5.3 — Settings (§11.2) with independently-gating per-action AI toggles; skip links, landmark/name sweeps, reduced motion, WCAG contrast verification (all token pairs pass)
  • 5.4/5.4b — ETags + data-versioned response cache; live 1.28M-message harness: summary 2799→170ms, full-extent buckets 5414→173ms, 5/7 targets pass, search common-term soft-miss documented with EXPLAIN analysis + tsvector remediation path
  • 5.5 — workflows C & E acceptance, §19.6 verification report (all 61 §18 requirements dispositioned; every MUST met), run/deploy README

Release verdict

docs/superpowers/specs/2026-07-14-life-chronicle-verification-report.md — all §19.6 gates pass (Scale with-note). Honest deferrals: TR-003 thread corrections, WS-004 snapshots, PDF/ZIP export formats, passkeys (rate-limited argon2 shipped), RD-007 partial grouping.

Gates

Every task commit green on both gates. Final: 369 server + 366 web tests (6 acceptance workflow suites), root 674.

Reviews

Session .cheap-coder/review-NN.md; live-verification reviewer fixes in 5.4 (harness timestamps; 500→422 on malformed viewport).

Provenance

Implementer: Grok Build CLI, grok-4.5 @ max. Architecture, spec, review: Claude.

🤖 Generated with Claude Code

https://claude.ai/code/session_01XP7M17NHxw6mjpTFtMqwZu

Claude Code Agent and others added 5 commits July 13, 2026 22:44
…, redaction (Phase 5 task 5.1, #105)

Login rate limiting (fixed window, injectable clock); export endpoints
require fresh auth (auth_at in the signed session, web re-prompt flow);
app-shell CSP meta with no remote hosts + no-store API caching;
adversarial sanitizer corpus (mXSS, template, srcset, formaction,
escaped-scheme hrefs) pinning nh3's allowlist; export redaction pipeline
with review-before-write, [REDACTED:kind] copies, manifest disclosure,
and originals provably untouched.

Implemented via cheap-coder (grok-4.5 @ max).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XP7M17NHxw6mjpTFtMqwZu
…istry (Phase 5 task 5.2, #105)

Search/Ask/Explore command bar with accessible autocomplete over people/
topics/operators and date-phrase Explore jumps; Ctrl/Cmd+K palette
(focus-trapped, context-registered commands, recents) satisfying G-004;
the full §14.2 keyboard map through one central registry with input
guards; ? renders the live shortcut reference.

Implemented via cheap-coder (grok-4.5 @ max).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XP7M17NHxw6mjpTFtMqwZu
….3, #105)

/settings per §11.2: appearance density + reduced motion, per-action AI
toggles that independently gate ask/interpret/generate server-side,
search and lane defaults, privacy timeout, live keyboard reference.
Accessibility: skip link, landmark and accessible-name sweeps per route,
reduced-motion canvas flag, WCAG contrast verification — all §13.1 token
pairs pass their role minima.

Implemented via cheap-coder (grok-4.5 @ max).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XP7M17NHxw6mjpTFtMqwZu
…harness (Phase 5 tasks 5.4/5.4b, #105)

Scope-fingerprint ETags (304 with data-version busting) and a Postgres
read-through cache (app_cache) on summary/buckets/compare and search
facets — compute-once per data version, facets never staleness-affect
live results, size-bounded. Live 1.28M-message harness: summary
2799→170ms, full-extent buckets 5414→173ms; search common-term soft
misses documented with EXPLAIN analysis (trigram selectivity; tsvector
remediation path recorded). Reviewer fixes: harness timestamp
normalization; malformed viewport datetimes now 422 not 500.

Implemented via cheap-coder (grok-4.5 @ max).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XP7M17NHxw6mjpTFtMqwZu
…t, run docs (Phase 5 task 5.5, #105)

Encodes spec §19.3 and §19.5 end-to-end; verification report dispositions
all 61 §18 requirements against cited evidence (every MUST met; SHOULDs
deferred honestly: TR-003, WS-004, PDF/ZIP formats, passkeys) with the
live 1.28M-message performance table and remediation notes; app run/
deploy README. Completes Phase 5 and the Life Chronicle build.

Implemented via cheap-coder (grok-4.5 @ max).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XP7M17NHxw6mjpTFtMqwZu
@splaice
splaice merged commit 69b4b5b into main Jul 14, 2026
1 check passed
@splaice
splaice deleted the cheap-coder/chronicle-phase-5 branch July 14, 2026 06:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant