Files
Claude e3b0cf60c5 Phase 6: sync jobs, inquiry and order forms
- 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
2026-10-11 23:50:06 +00:00

29 lines
689 B
JSON

{
"name": "@gk/site",
"version": "0.1.0",
"private": true,
"type": "module",
"description": "GregKilmer.com: the public site, rendered from the content service's published notes.",
"scripts": {
"dev": "astro dev --port 4330",
"build": "astro build",
"start": "node dist/server/entry.mjs",
"check": "astro check"
},
"dependencies": {
"@astrojs/node": "11.1.6",
"@gk/schema": "*",
"@gk/ui": "*",
"astro": "7.3.5",
"marked": "18.0.14",
"nodemailer": "10.0.10",
"pdf-lib": "^1.17.1",
"pdfkit": "^0.20.2"
},
"devDependencies": {
"@astrojs/check": "0.9.10",
"@types/pdfkit": "^0.17.6",
"typescript": "^5.9.0"
}
}