{
  "version": "v0.1.7",
  "date": "2026-09-15",
  "commit": null,
  "commit_ref": "refs/tags/v0.1.7",
  "vault": null,
  "reconstructed": false,
  "title": "the recovered posts get their images back, which took fixing two unrelated bugs and resolving a conflict with the authoring contract",
  "summary": "Every architecture post in the library had been showing raw markdown where its images should be, since the recovery. Two independent causes. The archiver had been run with --skip-assets, so no image had ever been downloaded. And the inline-markdown renderer had never handled image syntax at all: its link rule required non-empty link text, and `![](url)` has none, so the pattern matched nothing and the source fell through to the page. Neither failed loudly; both were visible only to a human looking at a page.",
  "changes": [
    "back-office/archive/mvp.myfeeds.ai/content/ \u2014 the archived images, downloaded. Partial at this release: the Internet Archive is throttling, and the archiver resumes on a re-run (board card 010)",
    "admin/build/build_pages.py \u2014 markdown images render; post descriptions are stripped to prose, because a post opening with an image had put `![](https://\u2026png)` into its own meta description and JSON-LD",
    "assets/site.js \u2014 upgrades recovered image links into images, over the vault bridge where one exists and directly otherwise",
    "assets/site.css \u2014 a recovered article now sits on its own recessed surface with a marked edge, so somebody else's words are visibly not this site's",
    "admin/build/validate.js \u2014 three checks: no markdown rendered as literal source inside <main>, every image resolves locally or is explicitly marked not recovered, and none still points off-site"
  ],
  "corrects": "A decision from v0.1.3. The archive pages said images were 'left exactly as written rather than silently repaired, because a rewritten archive is no longer evidence'. The principle is right and the application was wrong: it produced an archive nobody could read, which is not evidence either. Images are now served from this repository with the original URL kept in each image's title \u2014 rewritten AND recorded. Separately, pointing an <img src> at the local copies broke the authoring contract, because a declarative reference to a vault path 404s inside a sandboxed frame before the bridge installs; the validator caught it before it shipped. Images are emitted as links that JavaScript upgrades, which passes the contract, works in a vault, works on the static mirror, and degrades to a working link with scripting disabled.",
  "basis": [],
  "site": "myfeeds.sgit.ai",
  "url": "https://myfeeds.sgit.ai/admin/versions.html#v0-1-7"
}
