The release where every agent on the machine gets the same memory. Amp,
prime-agent and VS Code Copilot Chat are wired from nothing — the last of them
joining as the twenty-third harness — and the ones that were already wired now
reach the moments recall is worth most: the first prompt, the failing command,
the file about to be edited, the turn after a compaction. The agent now says
"déjà vu" with a date and a session id when it reuses what it was handed.
Added
- VS Code Copilot Chat: its chat sessions are indexed (
chatSessions/*.jsonl, the append log VS Code writes since 1.109), the twenty-third harness — contributed by @Sora-bluesky. (#3088) - VS Code:
deja install vscodewrites themcp.jsonCopilot Chat reads in agent mode, one per host present (Code, Insiders, VSCodium), and adeja.instructions.mdapplied to every chat so recall arrives without being asked for; measured on VS Code 1.134.0 from the MCP traffic. (#3102, #3107) - Amp:
deja install ampwrites the MCP server the wayamp mcp adddoes;amp-autoadds a plugin under~/.config/amp/pluginsthat hands the project digest to the first turn, per-prompt recall after it, and the repair beside a failed command in the same turn. (#3118) - prime-agent (PrimeIntellect):
deja install primewrites the MCP server into~/.prime/agent/settings.jsonand an extension that opens a session with the project digest, recalls on each prompt, forgets on compaction, and adds/deja. Itstool_callandtool_resultevents never fire on 0.9.1, so the fix pair is deliberately not wired there. (#3125) - Kimi Code: the session digest rides the first prompt and a compaction forgets what it threw away, measured on 0.28.1 —
UserPromptSubmitis the one event whose output reaches the model. (#3121) - Roo Code:
deja install roonames deja's own tool in the entry'salwaysAllow, so Roo stops asking before every recall — without it a non-interactive run waits at the first one forever.deja resumeprintsroo --session-id <uuid>for tasks the Roo CLI created, with the workspace it must run in; editor tasks still reopen from the editor. Measured against a recording endpoint on @roo-code/cli 0.1.17 with the 3.53 extension. (#3130) deja files --json: the ranked rows a caller had to parse out of padded columns, with the three counts the ranking is built from. (#3106, #3124)- pi and omp:
@vshulcz/pi-deja, the recall extension as a pi package —pi install npm:@vshulcz/pi-deja— session-start digest, per-prompt recall and/deja. (#3095) - pi and omp: a failed command gets its repair in the same turn (
tool_resultis the event whose return reaches the model; omp's bash tool reports the exit code indetails.exitCode), a compaction forgets, and a file's history arrives when the agent reads it — the step before the edit, since neither harness has a pre-edit hook. (#3112, #3113) - Cline: the repair for a failed command arrives in the same turn, appended to the tool result by the message builder;
hook-tool-afterlearns cline'srun_commandsand grows--plain. (#3098) - OpenClaw:
@vshulcz/openclaw-deja, the recall plugin as a package —openclaw plugins install clawhub:@vshulcz/openclaw-deja— and a local session opens with the project digest viabefore_agent_start(74 ms and 1.6 KB on the first turn, nothing after). A compaction now forgets what it threw away, and the digest moved to the phase hook that fires once a turn. (#3058, #3087, #3123) - DeepSeek Harness: a session opens knowing what the project settled — a second
systemPrompt.contextcontributor ahead of per-prompt recall, once per session. (#3094) - Antigravity:
PreInvocationanswers the question instead of only opening with the digest (the invocation counter is zero-based and restarts every turn); the repair arrives at the failing command; what a compaction threw away is served again; and the project is recalled when the payload names no workspace, read fromcache/last_conversations.json. Measured on antigravity-cli 1.1.13. (#3059, #3063, #3077, #3078) - Install: the proof opens with the questions this machine asked more than once, and one of them —
26 questions asked more than once on this machine — one of them: "…". (#3071) - The first session after an index build hears what was indexed —
deja indexed 1,444 sessions from 19 agents on this machine — 27 questions asked more than once— once per index. (#3074) - Once a week, session start says what the week looked like:
deja this week: 41 recalls, 3 déjà vu — deja stats --card. (#3070)
Changed
- The line an agent says when it reused a recall is now
déjà vu: <what you asked then> (<agent>, <date>, deja:<id>) — reusing it., on every surface that asks for one; a question this machine already asked is quoted back in its own words. The line names the session the digest shows, not the top of the ranking.deja statscounts the new shape alongside "deja-vu recalled". (#3108) deja stats --cardleads with the questions asked more than once, the week moves to the supporting row, and the footer links to the repository. (#3069)- The README, the site and the npm page lead with what the harness count is for: one memory every agent on the machine reads. (#3109)
Fixed
- Qwen Code: the repair sat on
PostToolUse, which qwen fires only when the tool succeeded — the one event that never comes at a failure. It moves toPostToolUseFailure, whose return is appended to the tool result the model reads, and the old entry is dropped on install. The failing output arrives undererrorinside qwen's ownCommand: / Output: / Exit Code:block, which is unwrapped before the signature is taken. Measured on qwen-code 0.20.0. (#3126) - Qwen Code:
install qwen-autoreported "unchanged" while it rewired the hooks, because it returned only the MCP half of the same file. (#3127) - Grok Build:
SessionStartandPreCompactmatchers that grok never fired are dropped and corrected on machines that already installed deja; hook inputs read grok's camelCase; agents it spawns are reached. (#3085) - Codex: the plugin manifest carries its icon, spells the URL keys the way the spec does, and names its hooks file as one path. (#3132)
- DeepSeek Harness: the plugin declares the DSH release it was measured on. (#3129)
- Zed: the
/dejafix from #3020 never shipped becauseextension.tomlstill said 0.1.0; the version moves and CI fails when a change outruns it. (#3081) - pi: the generated
/dejacommand declaredargstwice, so pi loaded the extension with no deja at all. (#3096) - A compiler error is one wall wherever the line moves: the position is masked on the repair signature, so adding an import no longer turns one recurring error into a new one on every edit. (#3080)
- Search: offer
--limitin bash, zsh, fish, and PowerShell completions. (#1929) - The README GIF recipe is complete and reproducible. (#1832)
- Release scripts run npm, tar and unzip without a shell, and the digest marker constants are named as markers — the plugin scanner the Codex plugin catalogue pins reports nothing on main. (#3114, #3116)
Changelog
Features
- feat(amp): wire Amp — MCP server, plugin, skill and command (#3118)
- feat(antigravity): answer the question, not just open with the digest (#3059)
- feat(antigravity): serve again what a compaction threw away (#3078)
- feat(antigravity): the repair arrives at the failing command (#3077)
- feat(cli): --json for files (#3106) (@vaibhav8a)
- feat(cline): the repair for a failed command, in the same turn (#3098)
- feat(deepseek): a dsh session opens knowing what this project settled (#3094)
- feat(dsh): declare the DSH release the plugin was measured on (#3129)
- feat(hook): once a week, session start says what the week looked like (#3070)
- feat(hook): the first session after a build hears what was indexed (#3074)
- feat(hook): the recall credit is a déjà vu line that opens the reply (#3110)
- feat(install): the proof opens with the questions this machine asked more than once (#3071)
- feat(kimi): the session digest rides the first prompt, and compaction forgets (#3121)
- feat(openclaw): a local session opens knowing what this project settled (#3087)
- feat(openclaw): forget on compaction, and move the digest to the phase hook (#3123)
- feat(openclaw): the recall plugin as a package OpenClaw can install by name (#3058)
- feat(pi): the recall extension as a pi package (#3095)
- feat(pi,omp): a file's history arrives when the agent opens it (#3113)
- feat(pi,omp): repair a failed command in the same turn, and forget on compaction (#3112)
- feat(prime): wire prime-agent — MCP server, extension, skill and command (#3125)
- feat(roo): resume CLI tasks and stop Roo asking before every recall (#3130)
- feat(sources): index VS Code Copilot Chat sessions (#3088) (@Sora-bluesky)
- feat(vscode): recall that arrives without being asked for (#3107)
- feat(vscode): wire deja MCP into VS Code Copilot Chat (#3102)
Fixes
- fix(antigravity): recall the project when the payload names no workspace (#3063)
- fix(codex): the plugin manifest carries its icon and spells the URL keys as the spec does (#3132)
- fix(friction): a compiler error is one wall wherever the line moves (#3080)
- fix(grok): read grok's payload, and reach the agents it spawns (#3085)
- fix(pi): the /deja command no longer redeclares its own argument (#3096)
- fix(qwen): move the fix pair to PostToolUseFailure and unwrap qwen's report (#3126)
- fix(qwen): report the hooks qwen-auto rewired, not just the MCP half (#3127)
- fix(stats): the card leads with the questions asked more than once, and its rows stop sharing the footer line (#3069)
- fix(zed): ship the /deja fix, and fail CI when a change outruns the version (#3081)
- fix: search --limit exists and the word never appears in any completio (#1929) (#3091) (@keii-2596)
- fix: the README GIF recipe ends in an ellipsis, so nobody can rebuild (#1832) (#3090) (@keii-2596)
Documentation
- docs(packages): homepage points at the page that documents each package (#3083)
- docs(packages): the openclaw and pi packages count twenty-three, and a test that keeps extensions/ counted (#3100)
- docs(readme): say what redaction strips and what it cannot promise (#3068)
- docs(site): say how to delete Claude Code sessions, not only whether to (#3120)
- docs: a per-agent guide for VS Code Copilot Chat (#3105)
- docs: changelog and site for 0.19.4 (#3133)
- docs: changelog for the unreleased harness pass (#3122)
- docs: lead with the memory every agent shares, not memory for one agent (#3111)
Other
- chore(scripts): run npm, tar and unzip without a shell (#3115)
- chore: name the digest markers as markers, and keep test suites out of the plugin scan (#3117)
- chore: pin the manifests to 0.19.3 (#3057)
- test(files): pin the ranked rows of files --json, and name the flag in help (#3124)
- test(index): cover BuiltSummary's gate and missing-manifest paths (#3076)
Install
curl -fsSL https://raw.githubusercontent.com/vshulcz/deja-vu/main/install.sh | sh
go install github.com/vshulcz/deja-vu/cmd/deja@v0.19.4
brew install deja-vu