Skip to content

Wick v1.6.0 — Timestamps: what, when, where

Latest

Choose a tag to compare

@Kielov Kielov released this 03 Aug 13:01
420c93b

v1.1 gave memory an owner. v1.2 made it portable. v1.5 made it findable. This makes it orderable — the thing a memory layer silently loses as it grows.

A preference captured in March and one captured last week read as equally current. Two entries conflict and nothing says which came later. Nothing records which host learned a thing. CLAUDE.md has said "Date everything" since v1.0 — it was prose, and prose does not enforce.

Added

  • tools/wick-freshness-audit.mjs — fifth scanner. Stamp presence, date sanity, index rows dated, and the check that actually bites: the index agreeing with the files it indexes.
  • --fix — backfills from git log, never today's clock, and only what is missing.
  • MEMORY-PROTOCOL.md §10 — the model, the measurements, the boundary.

Measured — the stamp is free

The index row is the routing surface, so this is a retrieval change, not a cosmetic one. 6 arms × 44 labelled queries on a matured 31-file layer: zero flips, both eval sets. Manipulation verified independently — the body stamp doubles the hostname's document frequency (29 → 60 term-slots) and still changes nothing. Measured at 31 files, not proven at 100.

The bug worth reading

The first --fix re-derived every stamp on each run. Correct exactly once: the moment the stamping commit lands, git reports that commit as every stamped file's last change, so the next run silently re-dated 8 files and 7 index rows to adoption day. It would have flattened the exact ordering the feature exists to preserve. Caught by dogfooding, not review.

Boundary

A date is a recall aid, never an expiry. Nothing auto-archives for being old.

Known gap

CI steps for wick-path-audit and wick-freshness-audit are not wired — editing .github/workflows/ needs the workflow OAuth scope. Both run clean locally.