memgineering 0.18.0 → 0.18.2

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,33 @@ language the reader wants. The bilingual rule the monorepo applies to
11
11
 
12
12
  ## [Unreleased]
13
13
 
14
+ ## [0.18.2] — 2026-08-31
15
+
16
+ ### Fixed
17
+
18
+ - **Setup no longer contradicts itself about Codex hooks.** Codex installs the
19
+ two hooks and runs neither until you answer a review panel; setup said so and
20
+ then announced two lines later that the hooks all worked. On a Codex install
21
+ it now says recall and remember work and the hooks start after that review.
22
+ - **The Codex hook notice names the key.** Press `t` to trust them. It also says
23
+ that the trust is recorded per hook content, so an upgrade that changes a hook
24
+ asks again — otherwise that reads as something breaking on its own.
25
+
26
+ ### Agent guidance
27
+
28
+ - `memgineering-setup` gained the same detail, including where Codex records the
29
+ trust (`~/.codex/config.toml`). Restart your agent session after upgrading.
30
+
31
+ ## [0.18.1] — 2026-08-30
32
+
33
+ ### Fixed
34
+
35
+ - **Choosing "in an account" now actually connects you to the brain it made.**
36
+ 0.18.0 created the hosted brain on the server and stopped there, so the
37
+ command right after a finished setup could answer "no brain is connected"
38
+ while the brain sat there, real and unreachable. Setup records which brain
39
+ this machine reads, the way `push` and `use` already did.
40
+
14
41
  ## [0.18.0] — 2026-08-30
15
42
 
16
43
  ### Added
@@ -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.18.0
5
+ version: 0.18.2
6
6
  ---
7
7
 
8
8
  # memgineering
@@ -139,7 +139,12 @@ again. Two outcomes are worth recognising:
139
139
 
140
140
  The hooks go to Claude Code and Codex, and only there. Codex asks the user to
141
141
  review new hooks once at the start of the next session and runs neither until
142
- they answer.
142
+ they answer — **tell them the key: `t` trusts them.** Measured on Codex
143
+ 0.149.1: both hooks show `Installed 1 / Active 0` until that panel is
144
+ answered, and the trust is recorded per hook CONTENT
145
+ (`[hooks.state."<path>:<event>:0:0"] trusted_hash`) in `~/.codex/config.toml`,
146
+ so an upgrade that changes a hook asks again. Somebody who is not told this
147
+ reads the silence as an install that did not take.
143
148
 
144
149
  Grok is the case worth knowing, because the obvious guess is wrong: it has
145
150
  hooks, more events than either of those two, and `~/.grok/hooks/` needs no
package/dist/index.js CHANGED
@@ -5723,6 +5723,12 @@ var init_init = __esm({
5723
5723
  });
5724
5724
 
5725
5725
  // src/lib/cloud-pointer.ts
5726
+ var cloud_pointer_exports = {};
5727
+ __export(cloud_pointer_exports, {
5728
+ pointConfigAt: () => pointConfigAt,
5729
+ printRepoint: () => printRepoint,
5730
+ repointJson: () => repointJson
5731
+ });
5726
5732
  async function pointConfigAt(destination) {
5727
5733
  const config = await loadConfig();
5728
5734
  const previous = config.brain.cloud ?? null;
@@ -7042,6 +7048,11 @@ async function applyAnswers(setupToken, claim, detected) {
7042
7048
  parts.push(`created ${made.root}`);
7043
7049
  }
7044
7050
  }
7051
+ if (answers.location === "cloud" && claim.brain) {
7052
+ const { pointConfigAt: pointConfigAt2 } = await Promise.resolve().then(() => (init_cloud_pointer(), cloud_pointer_exports));
7053
+ await pointConfigAt2({ brainId: claim.brain.id, name: claim.brain.name, apiUrl: apiUrl() });
7054
+ parts.push(`pointed at ${claim.brain.name}`);
7055
+ }
7045
7056
  if (answers.location === "cloud" && answers.upload_path) {
7046
7057
  await report2(setupToken, "applying", "\uB178\uD2B8\uB97C \uC62C\uB9AC\uB294 \uC911\uC774\uC5D0\uC694.");
7047
7058
  const { pushCommand: pushCommand2 } = await Promise.resolve().then(() => (init_push(), push_exports));
@@ -7415,7 +7426,7 @@ function setupCommand() {
7415
7426
  if (choice.tools.some((t) => t.id === "codex")) {
7416
7427
  printHuman(
7417
7428
  c.gray(
7418
- " \u2192 Codex will ask you to review these hooks once, next time it starts.\n Until you answer, neither one runs."
7429
+ " \u2192 Codex will ask you to review these hooks once, next time it\n starts: press `t` to trust them. Until you do, neither one runs,\n and an upgrade that changes a hook asks again."
7419
7430
  )
7420
7431
  );
7421
7432
  }
@@ -7449,7 +7460,12 @@ function setupCommand() {
7449
7460
  Could not touch ${refused.length} file(s): ${label(refused)}`)
7450
7461
  );
7451
7462
  }
7452
- printHuman(c.bold("\n Ready to use now \u2014 recall, remember and the hooks all work."));
7463
+ const codexHooksPending = choice.hook && choice.tools.some((t) => t.id === "codex");
7464
+ printHuman(
7465
+ c.bold(
7466
+ codexHooksPending ? "\n Ready to use now \u2014 recall and remember work; the hooks start once\n Codex has asked you about them." : "\n Ready to use now \u2014 recall, remember and the hooks all work."
7467
+ )
7468
+ );
7453
7469
  printHuman(
7454
7470
  c.gray(" The guidance files just written are read at the start of a session,")
7455
7471
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memgineering",
3
- "version": "0.18.0",
3
+ "version": "0.18.2",
4
4
  "private": false,
5
5
  "description": "One memory for the AI you connect. Recall, remember, and revise a brain your agents share \u2014 stored in your own folder.",
6
6
  "license": "Apache-2.0",