Chronicle Visualizer
Chronicle Visualizer is a privacy-first visual work-history project. It started with a real local Chronicle browser that indexed recent screen frames and persisted Chronicle summaries, then split into a public-facing Next.js scaffold and a private archive/redaction operating lane. The project is not just a screenshot gallery. Its product shape is a governed visual evidence system: raw frames stay private, written context is archived with images, public derivatives require redaction and review, and project/work-state labels remain inferred until corroborated by durable sources.
Narrative
Privacy-first visual work history
Chronicle Visualizer is a visual work-history project that treats screenshots as sensitive source evidence rather than as automatically public media. The project decision is to split the system into private raw capture/archive, a local-only viewer for forensic browsing, and a public scaffold that only uses synthetic or redacted derivatives. That constraint matters because the useful product experience is exactly what makes the data sensitive: dense screen-frame browsing, inferred project labels, local source paths, OCR hints, and related Chronicle summaries can reveal private work context even when a single frame looks harmless.
From local MVP to governed public scaffold
The first real MVP lived under the Codex Skills local tooling tree and proved the interaction model: date-grouped thumbnails, search, inferred project filters, selected-frame detail, nearby frames, and related summary matching. The Chronicle Visualizer repo then turned that proof into a public-project scaffold with repo-native docs, project tracking, and an app-first timeline surface that uses synthetic/redacted placeholders. The public scaffold is intentionally limited until a redaction and review workflow can generate approved public images, manifests, and labels.
Durable private archive before publication
The project now has a completed v1 private archive lane: raw screen recordings and written Codex/Chronicle context are bundled, client-encrypted, uploaded to a private S3 bucket with account guardrails, verified through receipts, and preserved by a scheduled LaunchAgent. This storage workflow is evidence that the project chose durable private retention before public display. The remaining public limit is not storage, but publication safety: redaction manifests, review boards, and human approval must exist before real Chronicle-derived visuals become public.
System surfaces
Public visual timeline scaffold
Next.js app-first surface with synthetic/redacted frame cards, date groups, project filters, search, redaction status, date rail, and selected-frame inspector.
Private local Chronicle viewer
Local-only Node viewer that indexes recent Chronicle frames, memory summaries, OCR sidecars, inferred project labels, thumbnails, nearby frames, and frame-detail context.
Encrypted raw archive
Node archive scripts plus LaunchAgent preserve rolling screen data and written context through encrypted S3 snapshots, deltas, receipts, restore dry-runs, and local prune controls.
Redaction and review board pipeline
Governance docs define raw-private, candidate-redacted, approved-public, and quarantined states, with pixel-burned redaction and human review required before publication.
Implementation stack
Public app
- • Next.js 15
- • React 19
- • app router
- • CSS app shell
- • synthetic/redacted timeline placeholders
Private viewer
- • Node HTTP server
- • local filesystem index
- • Chronicle screen frames
- • Chronicle memory summaries
- • OCR sidecar search metadata
- • thumbnail cache
Archive and storage
- • Node archive scripts
- • macOS LaunchAgent
- • AWS S3
- • GPG AES256 client encryption
- • manifest and receipt JSON
- • restore dry-run
Governance
- • DOCS project lifecycle
- • checkpoint logs
- • review-board operating pattern
- • redaction publication states
- • privacy denylist planning
Artifacts
Local viewer evidence relationship model
The local viewer binds a selected frame to its time, source path, nearby frames, noisy OCR, inferred project labels, and closest Chronicle summary, while keeping those relationships private until reviewed.
Private archive and public derivative boundary
Chronicle Visualizer separates raw capture ingestion, private encrypted archive storage, redaction candidate processing, human approval, and public derivative publication so useful visual evidence does not leak private screen context.
Chronicle Visualizer private archive and publication loop
The operating loop that preserves Chronicle frames and written context privately, verifies encrypted storage, reviews candidate derivatives, and only publishes redacted public timeline assets after human approval.
Building Chronicle MVP
Codex implementation conversation that turned the Chronicle visual-timeline idea into a working local viewer, corrected the public scaffold into an app-first shape, documented privacy and raw-screenshot boundaries, and added emergency archive scripts plus a durable-private-storage plan for both screen frames and written context.
What Is Chronicle?
Codex conversation that explained Chronicle as a local screen-history and memory-summary feature, clarified its provenance and actual stored data, and framed the right first product move as a private visual work-history viewer rather than a canonical project-state database.
Chronicle Visualizer Intake Dossier
Chronicle Visualizer is a privacy-first visual work-history project. It started with a real local Chronicle browser that indexed recent screen frames and persisted Chronicle summaries, then split into a public-facing Next.js scaffold and a private archive/redaction operating lane. The project is not just a screenshot gallery. Its product shape is a governed visual evidence system: raw frames stay private, written context is archived with images, public derivatives require redaction and review, and project/work-state labels remain inferred until corroborated by durable sources.
README
Source Summary Chronicle Visualizer Chronicle Visualizer is a public project repo for a privacy-first visual work-history library. The primary product surfac...
project-master
Source Summary title: Project Master description: Product vision, scope, and living system map status: evolving lastUpdated: "2026-06-04 14:27 ET (America/Ne...
0002_capture-archive-storage-design
Source Summary title: 0002 - Capture Archive And Storage Design description: Design daily Chronicle frame and written-context preservation without keeping th...
0003_privacy-redaction-publication-pipeline
Source Summary title: 0003 - Privacy Redaction And Publication Pipeline description: Define the safety gates required before Chronicle-derived visuals can be...
0004_visual-timeline-viewer-roadmap
Source Summary title: 0004 - Visual Timeline Viewer Roadmap description: Track the local and public viewer evolution from MVP timeline to redacted publicatio...
archive-runbook
Source Summary title: Chronicle Archive Runbook description: Emergency and scheduled preservation commands for Chronicle screen recordings and written contex...
page
Source Summary "use client"; import { useMemo, useState } from "react"; const projects = ["all", "hyphenomenon", "rps-etsy", "family-shapes", "tmora", "shopi...
server
Source Summary import crypto from "node:crypto"; import fs from "node:fs"; import http from "node:http"; import os from "node:os"; import path from "node:pat...
Visual evidence
Key dates
The Building Chronicle MVP chat and linked screenshots show the local viewer browsing real Chronicle frames with search, filters, detail overlay, nearby frames, and related summaries.
The source repo was scaffolded with an app-first public visual timeline that uses synthetic/redacted placeholders and keeps docs/project tracking as secondary routes.
Project 0002 completed encrypted S3 raw storage, scheduled incremental uploads, remote verification, restore dry-run, and local prune controls.
The original local Chronicle viewer source was imported into `local-tools/chronicle-visualizer/`, with generated thumbnail cache and raw Chronicle data excluded from git.