- Sync scheduler in the content service with a per-job cache (sync_cache),
sync_runs reporting and Healthchecks pings. Jobs: Archidekt, BoardGameGeek,
cover art (Open Library, TMDB, AniList), Suwayomi and Kavita reading
progress, Bambuddy filament and Homebox material stock. A note's own value
always wins over a synced one.
- PersonalReader: updates only Library notes with a matching anilistId,
changes to Greg's notes are held for review; Reading series with no note
show as suggestions on the admin Overview.
- /api/inquiries and /api/orders: Turnstile, rate limits, a saved copy in the
content service (intake token) plus email over SMTP. Orders are re-checked
against the live notes: accepted only when the category's ordersOpen is
true and the line has capacity.
- Admin Inbox for saved submissions. Options' inStock is optional so synced
stock can fill it. All settings from process.env; .env.example per service.
- Sources could not be reached from the build environment; parsers are tested
against fixtures labelled as not live.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012aSbo2D1qP8cMFQCykf7kx
Phase 1 of the functional design plan.
- Move the old site into legacy/, unchanged, for reference. It still
builds from there until cutover.
- Add packages/schema: the one definition of all 20 note types, with
field titles and descriptions, note and vault checks, and JSON Schema
export so later editing tools and the MCP server share it.
- Add vault-kit: Obsidian templates generated from the schema, and the
Site guide for 24.01_PersonalWebsite.
- Add tools/migrate: turns the legacy JSON, collections, store data and
page text into 545 Site folder notes and 84 images, and checks the
result with the schema.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012aSbo2D1qP8cMFQCykf7kx