memoir-cli 3.16.0 → 3.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/package.json +1 -1
- package/src/session/inject.js +5 -2
package/README.md
CHANGED
|
@@ -144,7 +144,7 @@ Common secret filenames and detected patterns are omitted and listed in the mani
|
|
|
144
144
|
| Surface | Capability | Verification boundary |
|
|
145
145
|
|---|---|---|
|
|
146
146
|
| Claude Code | Project MCP setup, Memoir tools, instruction import/export | JSON preservation and real server startup tested |
|
|
147
|
-
| Codex | Project TOML MCP setup, Memoir tools, AGENTS.md import/export | TOML round trip and server startup tested |
|
|
147
|
+
| Codex | Project TOML MCP setup, Memoir tools, AGENTS.md import/export, pinned session block in `~/.codex/AGENTS.md` | TOML round trip and server startup tested |
|
|
148
148
|
| Cursor | Project MCP setup, Memoir tools, rule import/export | JSON preservation and server startup tested |
|
|
149
149
|
| Other existing adapters | Selected memory/config import/export | Adapter fixtures, not full native session continuity |
|
|
150
150
|
| Generic MCP client | Memoir tool contract | Real stdio tests |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "memoir-cli",
|
|
3
|
-
"version": "3.16.
|
|
3
|
+
"version": "3.16.1",
|
|
4
4
|
"mcpName": "io.github.camgitt/memoir",
|
|
5
5
|
"description": "Portable, project-scoped memory and session handoffs for coding agents. Readable files, MCP recall, and optional user-passphrase encrypted backups.",
|
|
6
6
|
"main": "src/index.js",
|
package/src/session/inject.js
CHANGED
|
@@ -28,6 +28,7 @@ const appData = process.env.APPDATA || path.join(home, 'AppData', 'Roaming');
|
|
|
28
28
|
// Cursor: ~/.cursor/rules/memoir-session.mdc (global user rules — auto-loaded)
|
|
29
29
|
// Windsurf: {AppSupport}/Windsurf/User/memoir-session.md (user-global instructions)
|
|
30
30
|
// Gemini: ~/.gemini/GEMINI.md (user-global)
|
|
31
|
+
// Codex: ~/.codex/AGENTS.md (user-global; Codex CLI reads it before any repo AGENTS.md)
|
|
31
32
|
export const INJECTION_TARGETS = {
|
|
32
33
|
claude: path.join(home, '.claude', 'CLAUDE.md'),
|
|
33
34
|
cursor: path.join(home, '.cursor', 'rules', 'memoir-session.mdc'),
|
|
@@ -35,6 +36,7 @@ export const INJECTION_TARGETS = {
|
|
|
35
36
|
? path.join(appData, 'Windsurf', 'User', 'memoir-session.md')
|
|
36
37
|
: path.join(home, 'Library', 'Application Support', 'Windsurf', 'User', 'memoir-session.md'),
|
|
37
38
|
gemini: path.join(home, '.gemini', 'GEMINI.md'),
|
|
39
|
+
codex: path.join(home, '.codex', 'AGENTS.md'),
|
|
38
40
|
};
|
|
39
41
|
|
|
40
42
|
// Returns the target paths whose parent infrastructure exists — i.e. the tool
|
|
@@ -48,6 +50,7 @@ export function detectAvailableTargets() {
|
|
|
48
50
|
? path.join(appData, 'Windsurf', 'User')
|
|
49
51
|
: path.join(home, 'Library', 'Application Support', 'Windsurf', 'User'),
|
|
50
52
|
gemini: path.join(home, '.gemini'),
|
|
53
|
+
codex: path.join(home, '.codex'),
|
|
51
54
|
};
|
|
52
55
|
const available = {};
|
|
53
56
|
for (const [name, dir] of Object.entries(detectors)) {
|
|
@@ -83,13 +86,13 @@ export async function injectInto(targetPath, renderedBlock) {
|
|
|
83
86
|
await writeSafeFile(path.dirname(targetPath), path.basename(targetPath), updated);
|
|
84
87
|
|
|
85
88
|
// One event per target (this function is called once per detected tool —
|
|
86
|
-
// up to ~
|
|
89
|
+
// up to ~5x for a single session update). Deliberate: each call here IS a
|
|
87
90
|
// successful write to one specific target file, and the payload is tiny
|
|
88
91
|
// (just the filename, no content), so per-tool visibility is worth the 4x
|
|
89
92
|
// over collapsing to one event per "session update." injectInto() only
|
|
90
93
|
// receives a raw path (callers loop over detectAvailableTargets() by
|
|
91
94
|
// value, discarding the tool-name key), so the filename itself
|
|
92
|
-
// (CLAUDE.md / memoir-session.mdc / memoir-session.md / GEMINI.md) is
|
|
95
|
+
// (CLAUDE.md / memoir-session.mdc / memoir-session.md / GEMINI.md / AGENTS.md) is
|
|
93
96
|
// what's actually available here without a larger refactor.
|
|
94
97
|
await appendEvent('memory_written', { target: path.basename(targetPath) });
|
|
95
98
|
|