2.1 KiB
Authored date (authored_at)
Conversation transcripts carry a per-line ISO-8601 timestamp (both Claude Code and
Codex JSONL). The miner records the most recent one per file as the drawer's
authored_at — when the content was actually written.
This is distinct from the ingest date:
| Field | Meaning |
|---|---|
filed_at / result created_at |
When the drawer was mined (written to the palace). A bulk re-mine collapses these to a single instant. |
authored_at |
When the underlying content was written, recovered from the transcript timestamps. Survives re-mining. |
authored_at is surfaced in search results (and shown in the CLI search output), and is
used as a deterministic tie-break in hybrid ranking: candidates with identical scores order
with the more recently authored drawer first. Drawers without per-line timestamps (e.g.
markdown) fall back to filed_at.
Backfilling existing memory
New mines populate authored_at automatically. Drawers mined before this feature only have
filed_at. Re-mining does not fix them — the scanner skips files already mined at the
current NORMALIZE_VERSION. Two options:
-
In-place backfill (recommended — no re-embedding).
scripts/backfill_authored_at.pyreads each convos drawer's source transcript and updates only theauthored_atmetadata. Idempotent and safe to re-run; embeddings are untouched.python scripts/backfill_authored_at.py \ --palace ~/.mempalace/palace \ --sessions ~/.claude --sessions ~/.codex # dry run python scripts/backfill_authored_at.py \ --palace ~/.mempalace/palace \ --sessions ~/.claude --sessions ~/.codex --apply # writeFor the Docker MCP image, mount the volume and session dirs read-only — see the header of
scripts/backfill_authored_at.pyfor the exactdocker runinvocation.Back up first:
tar czf palace-backup.tgz -C <palace-dir> .(or snapshot themempalace-datavolume). -
Drop and recreate. Delete the affected drawers and re-mine the transcripts; the fresh mine stamps
authored_at. Simpler, but re-embeds everything.