memgineering 0.25.2 → 0.26.0
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/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,78 @@ language the reader wants. The bilingual rule the monorepo applies to
|
|
|
11
11
|
|
|
12
12
|
## [Unreleased]
|
|
13
13
|
|
|
14
|
+
## [0.26.0] — 2026-10-10
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- **The before-edit check costs almost nothing after its first answer in a
|
|
19
|
+
session.** On a machine signed in to a hosted brain, the `PreToolUse` hook
|
|
20
|
+
started node on every file tool an agent used — about 110 ms each, measured
|
|
21
|
+
(about 490 ms on 0.21.0 and earlier, which also asked the server each time).
|
|
22
|
+
On macOS and Linux it is now a short shell script in front of
|
|
23
|
+
`memgineering guard` that answers a session already shown its rules from a
|
|
24
|
+
marker `guard` leaves: about 20 ms. Everything it is not sure of — the first
|
|
25
|
+
call, a folder brain, a brain switch, a sign-out, a path into an agent's own
|
|
26
|
+
memory folder — still goes to `memgineering guard`, 5–14 ms slower than
|
|
27
|
+
before. Windows keeps the plain `memgineering guard` command.
|
|
28
|
+
- **A hosted brain with no rules is asked at most every two minutes**, not on
|
|
29
|
+
every tool call. A rule written on this machine with `remember --rule` or
|
|
30
|
+
`revise --rule` reaches the next tool call; one written elsewhere — another
|
|
31
|
+
machine, a chat app's connector — arrives within two minutes.
|
|
32
|
+
- **On a folder brain, `guard` reads the brain once per session, not on every
|
|
33
|
+
tool call.** It takes the session's turn before reading and hands it back
|
|
34
|
+
when the brain had no rules, so a rule written later in the session still
|
|
35
|
+
arrives. A read that outlives the hook's five-second limit now costs that
|
|
36
|
+
session's rules from that brain, instead of five seconds on every tool call.
|
|
37
|
+
|
|
38
|
+
### Added
|
|
39
|
+
|
|
40
|
+
- **`memgineering update` brings memgineering's own hooks along.** The first
|
|
41
|
+
time the new version runs — the next agent session's start, or any command you
|
|
42
|
+
type — it rewrites the hook commands memgineering installed in Claude Code's
|
|
43
|
+
`settings.json` and Codex's `hooks.json` to this version's shape, and says so
|
|
44
|
+
once. Only a command exactly as memgineering shipped it is changed: matchers,
|
|
45
|
+
timeouts, other tools' hooks, a command you edited, a hook you removed, a
|
|
46
|
+
symlinked or unparseable settings file all stay as they are (the last two are
|
|
47
|
+
mentioned once). Codex runs a changed hook only after you trust it, so it asks
|
|
48
|
+
you to review it at its next start; until you do (press `t`), neither
|
|
49
|
+
memgineering hook runs in Codex.
|
|
50
|
+
|
|
51
|
+
### Agent guidance
|
|
52
|
+
|
|
53
|
+
- `memgineering-setup`: an update refreshes memgineering's own hook commands
|
|
54
|
+
in Claude Code and Codex by itself — nothing to re-run after an update — and
|
|
55
|
+
a changed Codex hook asks for one review, which is worth relaying with the
|
|
56
|
+
key.
|
|
57
|
+
|
|
58
|
+
## [0.25.3] — 2026-10-06
|
|
59
|
+
|
|
60
|
+
### Fixed
|
|
61
|
+
|
|
62
|
+
- **`onboard` no longer asks again for a base note you filled in with prose.**
|
|
63
|
+
On a hosted brain, a `USER.md` or other `01_BASE/` note whose prompt you
|
|
64
|
+
replaced with your own sentences still counted as unfilled, so `onboard` told
|
|
65
|
+
the agent to ask the same questions and write the body again — over what you
|
|
66
|
+
had written. A note counts as filled once its body is your words, prose or
|
|
67
|
+
bullets. Hosted `resurface` no longer labels such a note "not filled in yet"
|
|
68
|
+
either.
|
|
69
|
+
- **`onboard` keeps asking about a note whose body is still the prompt**, even
|
|
70
|
+
after a `revise` put a claim in its frontmatter. On a folder brain this used
|
|
71
|
+
to take the note off the list. The same goes for a note whose prompt was
|
|
72
|
+
deleted and nothing written in its place.
|
|
73
|
+
- **A starter note saved with Windows line endings (CRLF) or a byte-order mark
|
|
74
|
+
is still recognised as the untouched template** by `recall`, `resurface` and
|
|
75
|
+
`onboard`. `revise`'s "the body is still the prompt" warning now notices it
|
|
76
|
+
too.
|
|
77
|
+
|
|
78
|
+
### Agent guidance
|
|
79
|
+
|
|
80
|
+
- `memgineering-writing` and `onboard`'s `how_to_write`: `onboard` lists the
|
|
81
|
+
base notes whose body has not been written yet, and editing one directly is
|
|
82
|
+
right only while that is so.
|
|
83
|
+
- `memgineering-recall`: a card marked `not filled in yet` is exactly what
|
|
84
|
+
`init` wrote, line endings aside.
|
|
85
|
+
|
|
14
86
|
## [0.25.2] — 2026-10-05
|
|
15
87
|
|
|
16
88
|
Small fixes found by an independent review of 0.25.0 and 0.25.1. Nothing here
|
package/assets/MEMGINEERING.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: memgineering
|
|
3
3
|
description: Use whenever the user refers to something they told you before, asks what was decided, tells you something worth keeping, or settles something that should hold next time. The memory lives in their own folder and outlives this session; check it before answering from guesswork, and write to it when you learn something durable.
|
|
4
4
|
type: skill
|
|
5
|
-
version: 0.
|
|
5
|
+
version: 0.26.0
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# memgineering
|
|
@@ -205,7 +205,7 @@ next brain, and three of them said it out loud. Reading another brain does not
|
|
|
205
205
|
move the machine's pointer.
|
|
206
206
|
|
|
207
207
|
**Cards that are not answers.** A card marked `not filled in yet` is one of the
|
|
208
|
-
five `01_BASE/` files, still
|
|
208
|
+
five `01_BASE/` files, still exactly what `init` wrote (line endings aside). Nobody has answered
|
|
209
209
|
it, so it is evidence of nothing — do not quote it back as what they think. When
|
|
210
210
|
every card carries that mark, recall says so above them (`--json`:
|
|
211
211
|
`scaffolding: true`), and that is the moment to offer to fill them in rather
|
|
@@ -12,11 +12,11 @@ allowed-tools: Bash(memgineering:*)
|
|
|
12
12
|
Answer this from here, not from a guess. The line is capability, not brand, so
|
|
13
13
|
it does not move as products come and go:
|
|
14
14
|
|
|
15
|
-
|
|
|
16
|
-
|
|
|
17
|
-
| **Any tool that can run a shell command**
|
|
18
|
-
| **A chat app that takes a custom MCP connector, no shell**
|
|
19
|
-
| **Neither**
|
|
15
|
+
| | |
|
|
16
|
+
| ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
17
|
+
| **Any tool that can run a shell command** | Reads and writes the same brain. Nothing has to be built for a tool that does not exist yet. |
|
|
18
|
+
| **A chat app that takes a custom MCP connector, no shell** | Reads and writes the **hosted** brain on their account through `https://mcp.memgineering.com/mcp`, once they add that connector in the app and sign in with Google. Not a folder brain. |
|
|
19
|
+
| **Neither** | **Not yet.** |
|
|
20
20
|
|
|
21
21
|
`memgineering setup` writes its guidance into the agent tools it finds on the
|
|
22
22
|
machine, and `setup --dry-run` names the ones it actually found rather than
|
|
@@ -182,6 +182,15 @@ answered, and the trust is recorded per hook CONTENT
|
|
|
182
182
|
so an upgrade that changes a hook asks again. Somebody who is not told this
|
|
183
183
|
reads the silence as an install that did not take.
|
|
184
184
|
|
|
185
|
+
**An update brings the hooks along.** The first `resurface` (session start)
|
|
186
|
+
after an update — or the next command anybody types — replaces memgineering's
|
|
187
|
+
own hook commands with the new version's, in both Claude Code and Codex, and
|
|
188
|
+
says so once. It replaces only a command memgineering itself shipped: a hook
|
|
189
|
+
someone edited (an absolute path, say), a removed hook, a symlinked or
|
|
190
|
+
unreadable settings file are left exactly as they are, and the last two are
|
|
191
|
+
named once. When a Codex hook changed this way, Codex asks for the review
|
|
192
|
+
above again at its next start — relay that, with the key.
|
|
193
|
+
|
|
185
194
|
Grok is the case worth knowing, because the obvious guess is wrong: it has
|
|
186
195
|
hooks, more events than either of those two, and `~/.grok/hooks/` needs no
|
|
187
196
|
trust prompt — but a hook there cannot say anything to the model. Measured
|
|
@@ -359,7 +359,7 @@ so an empty one costs something every time.
|
|
|
359
359
|
memgineering onboard
|
|
360
360
|
```
|
|
361
361
|
|
|
362
|
-
Says which
|
|
362
|
+
Says which still have no body written and what to ask for each. Run it first rather
|
|
363
363
|
than working from a script — asking somebody a question they already answered is
|
|
364
364
|
its own kind of forgetting. They may also ask outright ("set up my memory", "fill in my profile"); same job.
|
|
365
365
|
|
|
@@ -404,7 +404,7 @@ always true and you have only just been told them, so dating them today is wrong
|
|
|
404
404
|
in the one field a memory store exists to get right.
|
|
405
405
|
|
|
406
406
|
**This is the ONE place you edit a brain file directly** — `01_BASE/` only, and
|
|
407
|
-
only while
|
|
407
|
+
only while its body has not been written yet. After that first pass these are theirs like
|
|
408
408
|
any other note.
|
|
409
409
|
|
|
410
410
|
**Do not invent an answer to move on, and do not fill a file because it is
|