-
973b474
Publish revisions as a JSON API, Atom, JSON Feed and terminal text The store now becomes something readers and sites can use. One build renders every file; `serve` serves it over HTTP and rebuilds after each scan that changed something, and `export` writes the same bytes to a directory. - render: public model (retracted revisions and removed pages left out), the v1 JSON API, Atom and JSON Feed entries marked up with <del>/<ins>, and plain or ANSI text for curl - server: routes for slugs with slashes, .json aliases, ETag and 304, JSON errors, /healthz - export: atomic swap of the output directory - engine: retract (later diffs are rebased), amend, rebuild-diffs, backfill of older copies - schema/v1: strict JSON Schema for the API, checked against every generated file - cli: serve, export, retract, amend, snapshot, rebuild-diffs, backup, health - excerpts sum up long runs of deleted blocks, so a rewrite's new text isn't cut off Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pablo Murad
-
f18feed
Snapshot content folders and decide which edits become revisions Patchwork keeps the version history of pages that keep changing and publishes the revisions an author announces with a frontmatter note. This first commit is the core, with no feeds or HTTP yet. - slug: the moonflowersociety.org rule, checked against a parity table generated by the site's own JavaScript - doc: normalization, frontmatter, ignore regions, block splitting, plain text per block, word tokens, content hashes - diff: Myers on blocks and words, moves, modify pairing, excerpts - store: SQLite schema and migrations (pure Go, no cgo) - config: patchwork.yaml with defaults and env overrides - engine: baseline, silent, published, amended and folded revisions, two-scan removal - source/folder: scans with an upload settle time, watch with file events, debounce and polling - cli: init, scan, watch, log, diff, doctor, version Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pablo Murad