Skip to content

v0.0.6 — first public beta

Choose a tag to compare

@saiyam1814 saiyam1814 released this 24 Aug 09:21
· 32 commits to main since this release
9a316ba

The first public beta. Two of these are corrections to bugs that made the layer dishonest in practice, and they are listed first on purpose.

Fixed

The durability contract: code-backed knowledge is distilled, never dropped.
The retention sweep deleted expiring observations without checking whether anything durable had been distilled from them first. Measured on a real 0.0.5 install: 15,771 observations captured, 0 memories, and hundreds of code-backed rows removed per hour at the TTL — the layer was a sieve.

At the TTL an observation carrying file provenance is now promoted into a Memory (via distillMembers, the same primitive the consolidate pipeline uses), carrying its content and capture-time hashes verbatim so Verified Recall still re-checks it against the live file. Repeat touches of a file converge on one memory id, so storage still shrinks. Observations with no provenance have nothing durable to promote and are deleted as before. This also makes sweep-vs-consolidate ordering irrelevant. MEMWARDEN_FORGET_PROMOTE=off restores the old behavior.

Consolidation reaches published builds. The distillation pipeline was absent from the published 0.0.5 tarball, which is why installs reported 0 memories.

status diagnoses itself. It printed 0 memories beside 15771 observations for weeks without flagging it. It now names the condition and what to run, and prints the on-disk footprint with a reclaim hint.

Added

Verified Memory Canon — git-native portable verified memory.
memwarden canon push promotes distilled memories into .memwarden/canon.jsonl (one JSON record per line, repo-relative paths, capture-time SHA-256 per file). canon verify re-hashes the canon against any checkout and reports UNCHANGED / REFORMATTED / DRIFTED / UNVERIFIABLE with the files that drifted; --strict exits 1 as a CI gate. canon pull loads what still holds into the local brain. canon reanchor re-hashes drifted records against the current checkout and records who asserted they still hold (attestation, reported separately from capture-time proof).

Trust becomes portable with no server, no account, and no vendor. Hardened after adversarial review: a secret gate with no override (--all relaxes staleness only, because git history is a one-way door), pull refuses unverifiable records and requires --yes, drift severity so --strict never fails on reformatting, and honest labels that state the coverage limit. action.yml ships the PR gate as a composite GitHub Action.

Fleet mode, phase 2: an agent registry and memwarden fleet status [--cwd dir] [--json] with POST /memwarden/fleet/status. Thanks @sivasubramanian95 (#34, #25) and #35 (#26).

memwarden compact --prune-history [--keep-days N]: the oplog held 316MB of payloads against 16.6MB of live state — 95% of the database was superseded copies. Pruning drops those while keeping every entry's payload_hash, so the chain still verifies. Measured on a real install: 438MB → 203MB, 222MB reclaimed, and verify returns verified: true across all 193,298 entries.

Changed

up/down are scoped to the daemon they target: pointing MEMWARDEN_URL / MEMWARDEN_REST_PORT at a throwaway daemon no longer rewrites every real tool's config or unloads the user-global service. URL comparison is normalized, and non-default down --data refuses to delete the default brain. Thanks @d-cryptic (#21, #17).

Verification

tsc --noEmit clean · 729 tests · firewall eval 8/8 at 100% · canon and compact both verified live against a real daemon.

Note

npm publish for this tag failed on registry auth (the NPM_TOKEN secret needs refreshing or Trusted Publishing needs configuring). Install from source until 0.0.6 appears on npm.