Skip to content

backdraft 0.8.0

Choose a tag to compare

@spencerbraun spencerbraun released this 21 Aug 13:20
· 76 commits to main since this release

A week on web sources: a fetched page is named, slugged and shown as the page it came from, and ingest finally says what it did.

  • The demo cites a web page. backdraft.dev/demo.html now carries three sources, one of them a Wikipedia article ingested at its permanent link (?oldid=), so a citation into the web is visible in the artifact anybody actually looks at — and stays resolved rather than reporting drifted the next time somebody edits the page.
  • Every surface names a fetched source by its URL. ingest, ls, backdraft read's document list and its table-of-contents headline all print the page rather than the filename the fetch invented to stage the bytes in. ls loses its fifth column: one true name replaces two names of which one was fictional.
  • A URL's slug names its site when its path names nothing. Two sites' index.html pages used to become index and index-2; they are now named for their hosts. Directory indexes, generic handlers and bare numeric ids earn the host in front of them; a path that already names its page (/reports/q4-2025) is untouched. Truncated slugs no longer keep a dangling hyphen.
  • ingest says which of its three outcomes happened, and how much text came out. Each line carries the extracted character count, plus unchanged for a no-op or new generation when the bytes moved — the moment older citations can start reporting drifted, now named alongside the command that checks. A source that came back thin — a scan with no text layer, a login wall, a deck of images — gets a note naming the likely cause and what to do, at exit 0.
  • Fixes. The artifact-reading skill described the JSON island's escaping wrongly, which would send an auditing agent reaching for an HTML unescape that does nothing; backdraft ls --help no longer points a user at a module path.

1190 tests.