Skip to content

v0.1.3 — the published version stops being the weakest one

Latest

Choose a tag to compare

@francescofioredev francescofioredev released this 26 Aug 06:36
· 5 commits to main since this release
ed053cc

Twenty-three commits since 0.1.2, and the reason to ship them is that the version on npm was the weakest one: it accepted a source path that climbed out of the root, injected a quote into a single-quoted frontmatter value, and let two concurrent rebuilds race on the same staging filename.

bun add -g accreta

Breaking: the MCP responses changed shape

check_drift, get_page, search_pages, find_canonical and find_consumers returned core records untouched, so canonicalSource and lastVerifiedRevision arrived beside pages_checked and target_exists. A model reading four tools' JSON should not have to switch conventions between them. Everything is snake_case now (#64, #75).

Five tools that relay page text also carry a _provenance block naming which fields a page author wrote (#78). Values are byte-identical — the block names fields rather than delimiting them, because a delimiter is a string a page author can write too.

Hardening

  • A source read that climbs out of the root is refused (#74)
  • A single-quoted frontmatter value no longer has a quote injected into it (#67), and a plain scalar containing a wikilink is quoted whole rather than at the wikilink (#76)
  • The server README says plainly that pages are untrusted input to the model (#77)

Provenance

  • Every adapter's citations name the revision they were checked against (#53)
  • A citation is checked against something that actually exists (#72)
  • A quoted wikilink no longer discards the whole frontmatter (#54), and a page with no frontmatter is told why, not just that (#56)
  • Changed paths are reported once per revision, not once per page (#55)

Index and concurrency

  • The server reopens the index when a rebuild swaps it underneath (#68)
  • Two concurrent rebuilds no longer race on one staging filename (#66)

Measured, not asserted

The scaling curve and the MCP response budgets were finally weighed (#61), a six-lens adversarial review was run against the project and what survived recorded (#62), and ADR-0001's headline percentages gained the confidence intervals they never had — 3 of 20 queries change rank, McNemar exact p = 0.25. The decision stands; the confidence it projected did not. The constitution and the setup skill now ship the mechanism instead of the numbers (#88).

Also accreta --version (#63), and the server reading its own version rather than restating it (#52).