Skip to content

0.3.0 — English output, and four over-claims removed

Choose a tag to compare

@OnourImpram OnourImpram released this 27 Jul 04:47
· 12 commits to master since this release

npx routeledger

The output is in English

Every finding, warning, label and help line used to be Turkish written without its diacritics — unreadable to the audience this package has, and not correct Turkish either. Nothing about the checks changed; the words did. Code comments and test names went with them, so a contributor can read the repository too.

Four over-claims, all present in 0.2.0

This tool argues that an auditor must not assert more than its evidence supports. An adversarial review of the release held it to that standard and found four places where it did:

  • An unreadable version string walked straight through the version fence. compareVersions parses each segment with || 0, so banana, v2.2.0, 2.1.abc and "" all compared as 0.0.0 — below the fence — and the audit proceeded at full confidence, reporting modelsServedVerified: true against a transcript format it had never seen. A missing version already closed the fence; a version that cannot be read is less evidence than a missing one, not more. It now closes the fence too and names the string it could not read. versionFence in the JSON report gains unreadableVersions and closed.

  • plan-mode returned ok when there was no execution phase at all. A session conducted entirely in plan mode has nothing to compare against. That is unverifiable, not "nothing wrong here".

  • plan-mode compared the two sides for set equality, and so missed partial overlap. With plan on {fable-5} and execution on {fable-5, opus-4-8} the sets differ, so the old check said ok — while fable-5 had in fact served both sides and the plan-mode boundary had separated nothing. That is precisely the condition the check exists to report. It now flags any shared model and names it. This fires on the session in the README.

  • slugForCwd did not implement Claude Code's real encoding. It replaced only \, / and :; the actual rule replaces every non-alphanumeric character (C:\Users\you\.claude is stored as C--Users-you--claude). Any project path containing a dot, a space or a non-ASCII letter missed its own directory, and a bare routeledger silently audited the newest session of an unrelated project instead.

Smaller

  • The collapsed summary said 21 findings agree — declared model matches the one served, but those 21 came from three different checks and only 13 were declaration matches. It now says N findings raised nothing, which is true of all of them.
  • 1 turn is no longer printed as 1 turns.
  • CHANGELOG.md ships in the package; --sessions help says it lists 15; the unused description field was dropped from the subagent metadata type, so nothing user-derived sits within reach of a finding.

46 tests, up from 36 — each fix covered by a case that fails without it.

Site: https://onourimpram.github.io/routeledger/