memgineering 0.27.0 → 0.28.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 +99 -1
- package/README.md +11 -0
- package/assets/MEMGINEERING.md +4 -4
- package/assets/memgineering-setup/SKILL.md +77 -7
- package/dist/index.js +1195 -504
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,7 +9,105 @@ upgrade and by agents summarising a release, and both re-render it in whatever
|
|
|
9
9
|
language the reader wants. The bilingual rule the monorepo applies to
|
|
10
10
|
`@rayul/kordis` does not extend here.
|
|
11
11
|
|
|
12
|
-
## [
|
|
12
|
+
## [0.28.0] — 2026-11-01
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- **`memgineering delete-account` deletes your account — the hosted brain
|
|
17
|
+
account and the registry account the same Google sign-in made — in one
|
|
18
|
+
command.** Brain first (every brain on it, every note, every token), then
|
|
19
|
+
the registry account (profile, stars, follows, comment text, sign-ins;
|
|
20
|
+
the account is renamed `deleted-…`, and its published packages and versions
|
|
21
|
+
stay at their existing addresses), then this machine is signed out. It is confirmed with the sentence `delete my account`: typed at
|
|
22
|
+
the prompt, or passed as `--confirm "delete my account"`. Without either and
|
|
23
|
+
with no terminal to ask in, it refuses; there is no dry run. Folders on this
|
|
24
|
+
disk are never touched.
|
|
25
|
+
- **Before deleting anything it checks both sign-ins work and are one
|
|
26
|
+
person's** — the two accounts' emails, or, when either account has no email
|
|
27
|
+
on record, this machine's registry sign-in, which the brain sign-in issued. `--json` reports which as `matched` (`email`, `federation`, or
|
|
28
|
+
`earlier-run`). Two different people answer `account_mismatch`; a machine
|
|
29
|
+
signed in to a brain with no registry half answers `not_linked`; a machine
|
|
30
|
+
signed in to nothing answers `not_signed_in` (a brain kept in a folder has
|
|
31
|
+
no account). Each refusal says nothing was deleted and how to go on,
|
|
32
|
+
including mailing support@memgineering.com.
|
|
33
|
+
- **A run that stops halfway can be finished.** If the registry fails after
|
|
34
|
+
the brain account is gone, the command answers `account_partly_deleted`
|
|
35
|
+
and keeps a progress file (`delete-account.json` in the memgineering home,
|
|
36
|
+
mode 600); running it again skips the brain and deletes only the registry
|
|
37
|
+
account, and the file is removed when both are done. An answer lost on the
|
|
38
|
+
way back is checked with the server rather than guessed. `--json` on success:
|
|
39
|
+
`{deleted, brain: {status, account_id, api_url}, registry: {status, user_id,
|
|
40
|
+
username, api_url}, matched, credentials_cleared, pointer_cleared,
|
|
41
|
+
local_folders, hint}`, where each `status` is `deleted` or `deleted-earlier`.
|
|
42
|
+
- **`memgineering logout --all` reports what it ended in the registry.** On a
|
|
43
|
+
server with "disconnect everything", `--all` also ends every registry sign-in
|
|
44
|
+
of the same Google account, and anything approved before that moment can no
|
|
45
|
+
longer finish. `--json` passes the server's `registry_sessions` (`revoked`
|
|
46
|
+
with a count, `not_linked`, or `unreachable` with a `hint`) and
|
|
47
|
+
`revoked_before` on unchanged, and the human output gives the registry result
|
|
48
|
+
its own line (none when there were no live registry sign-ins to end). The existing `registry` field keeps its meaning: this machine's
|
|
49
|
+
registry session.
|
|
50
|
+
- **`memgineering logout --all` with nothing signed in says how to do it** —
|
|
51
|
+
the website's "disconnect everything" button, or `memgineering login` and
|
|
52
|
+
then `logout --all` — in a `hint`, instead of only "nothing to do".
|
|
53
|
+
|
|
54
|
+
### Changed
|
|
55
|
+
|
|
56
|
+
- **`logout --all` no longer ends this machine's registry session separately
|
|
57
|
+
when the server already ended every registry session.** An older server, an
|
|
58
|
+
unreachable registry, or an account the server found no registry link for
|
|
59
|
+
still gets this machine's session ended as before.
|
|
60
|
+
|
|
61
|
+
### Fixed
|
|
62
|
+
|
|
63
|
+
- **`registry search` with nothing searchable in the query finds nothing**
|
|
64
|
+
(registry-side, every version). A query of only emoji or punctuation used to
|
|
65
|
+
return every package as a match; it now returns no results.
|
|
66
|
+
|
|
67
|
+
### Known issue
|
|
68
|
+
|
|
69
|
+
- **An older CLI can report `registry: revoke-failed-expires-on-its-own` after
|
|
70
|
+
`logout --all` against an updated server.** The server has already ended the
|
|
71
|
+
registry session, so the old CLI's own attempt finds it gone and reports a
|
|
72
|
+
failure that did not happen. Upgrading fixes the report; nothing is left
|
|
73
|
+
signed in.
|
|
74
|
+
|
|
75
|
+
### Agent guidance
|
|
76
|
+
|
|
77
|
+
- `memgineering-setup` describes `delete-account`: when to run it (only on an
|
|
78
|
+
explicit request), what it deletes and keeps, the refusals, and what to tell
|
|
79
|
+
the user after `account_partly_deleted`. Restart the agent session after
|
|
80
|
+
upgrading to pick it up.
|
|
81
|
+
- `memgineering-setup` also points a person with no terminal to the "Delete my
|
|
82
|
+
account" section at the bottom of memgineering.com/brain (one tick), which
|
|
83
|
+
deletes the same two accounts. Restart the agent session after upgrading to
|
|
84
|
+
pick it up.
|
|
85
|
+
- `memgineering-setup` now says a Google account that never opened a brain can
|
|
86
|
+
delete its registry account from the same page: the consent screen shows a
|
|
87
|
+
"Delete my account" section below the terms. Only an account that never
|
|
88
|
+
signed in with Google, and a brain account whose terms were never accepted,
|
|
89
|
+
are deleted by mail to support@memgineering.com. Restart the agent session
|
|
90
|
+
after upgrading to pick it up.
|
|
91
|
+
- `memgineering-setup` describes `logout --all` as "disconnect everything" and
|
|
92
|
+
what to tell the user for each `registry_sessions` answer. Restart the agent
|
|
93
|
+
session after upgrading to pick it up.
|
|
94
|
+
- `memgineering-setup` no longer says consent is asked only once. The terms
|
|
95
|
+
are agreed once per account; connecting a chat app asks on every connection
|
|
96
|
+
for two consents — to giving what it reads and writes to the company that
|
|
97
|
+
runs it, and to that company being in the United States — and without both
|
|
98
|
+
ticks the app is not connected. It says what the connect screen tells the
|
|
99
|
+
person (what is sent, automatically at the start of every conversation and
|
|
100
|
+
without asking each time it records; the company's purpose, model training
|
|
101
|
+
included; how long it keeps it), that a program on their own computer asks
|
|
102
|
+
for no tick, that a refused unknown app (`unknown_connector_recipient`) is
|
|
103
|
+
answered by suggesting Claude or Gemini, and that a "notice changed" screen
|
|
104
|
+
is reloaded and approved again. Restart the agent session after upgrading to
|
|
105
|
+
pick it up.
|
|
106
|
+
- `memgineering-setup` says **connecting ChatGPT is paused** for now
|
|
107
|
+
(`connector_recipient_paused`, while the notice about OpenAI is verified):
|
|
108
|
+
agents offer Claude or Gemini instead of walking the user through ChatGPT's
|
|
109
|
+
Developer mode. The hub and `memgineering setup --help` say the same beside
|
|
110
|
+
ChatGPT's route, which works again once the pause ends.
|
|
13
111
|
|
|
14
112
|
## [0.27.0] — 2026-10-18
|
|
15
113
|
|
package/README.md
CHANGED
|
@@ -185,6 +185,17 @@ automatically when a Claude Code session starts.
|
|
|
185
185
|
| `brains` | list your hosted brains, and which one answers here |
|
|
186
186
|
| `create` · `rename` · `delete-brain` | make, rename, or delete a hosted brain |
|
|
187
187
|
| `push` · `pull` | carry a brain to your account, and back down again |
|
|
188
|
+
| `delete-account` | delete your account — brain and registry — for good |
|
|
189
|
+
|
|
190
|
+
`delete-account` deletes the hosted brain account (every brain, note and
|
|
191
|
+
token on it) and then the registry account the same Google sign-in made
|
|
192
|
+
(the account is renamed `deleted-…`; its published packages and versions
|
|
193
|
+
stay at their existing addresses), and signs this machine out. It asks for the sentence `delete my account` — typed at the prompt, or
|
|
194
|
+
`--confirm "delete my account"` — and checks first that both sign-ins work and
|
|
195
|
+
belong to one person (their emails match; if either account has no email, the
|
|
196
|
+
registry sign-in this machine got from the brain sign-in is the match). If it stops halfway, run it again: it finishes the side
|
|
197
|
+
that is left. Folders on this disk are never touched. Without a sign-in you
|
|
198
|
+
can use, mail support@memgineering.com from the address on the account.
|
|
188
199
|
|
|
189
200
|
**System**
|
|
190
201
|
|
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.28.0
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# memgineering
|
|
@@ -81,13 +81,13 @@ at six skills, each of which loads on its own when its topic comes up:
|
|
|
81
81
|
- `memgineering-rules` — decisions that bind, and the before-edit hook
|
|
82
82
|
- `memgineering-setup` — installing, which tools this reaches, accounts, moving a brain
|
|
83
83
|
- `memgineering-registry` — the public layer
|
|
84
|
-
- `memgineering-installing` — putting a package in
|
|
84
|
+
- `memgineering-installing` — putting a package in a project, updating it
|
|
85
85
|
|
|
86
|
-
Not shell-only:
|
|
86
|
+
Not shell-only: Claude.ai reaches a hosted brain via connector `https://mcp.memgineering.com/mcp`; ChatGPT is paused for now.
|
|
87
87
|
|
|
88
88
|
A host short on room lists a skill by NAME ONLY, no description — measured on
|
|
89
89
|
Claude Code. When you cannot see what it covers, READ
|
|
90
90
|
`<tool-home>/skills/memgineering-<name>/SKILL.md` before deciding it is empty.
|
|
91
91
|
|
|
92
|
-
If `memgineering: command not found`,
|
|
92
|
+
If `memgineering: command not found`, run `npm i -g memgineering`, then
|
|
93
93
|
`memgineering setup --web`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: memgineering-setup
|
|
3
|
-
description: Use when installing or configuring memgineering, when moving a brain between a machine and an account, when renaming or deleting a hosted brain, or whenever the user asks WHICH of their AI tools can see this memory. Triggers include "set up memgineering", "connect my notes", "rename my brain", "delete that brain", "does my other AI see this too", "which of my tools can read this", "will it work in the app on my phone", "can I use this in ChatGPT", "does it work in Claude.ai", "no brain is linked".
|
|
3
|
+
description: Use when installing or configuring memgineering, when moving a brain between a machine and an account, when renaming or deleting a hosted brain, when the user wants their whole account deleted, or whenever the user asks WHICH of their AI tools can see this memory. Triggers include "set up memgineering", "connect my notes", "rename my brain", "delete that brain", "delete my account", "close my account", "does my other AI see this too", "which of my tools can read this", "will it work in the app on my phone", "can I use this in ChatGPT", "does it work in Claude.ai", "no brain is linked".
|
|
4
4
|
type: skill
|
|
5
5
|
allowed-tools: Bash(memgineering:*)
|
|
6
6
|
---
|
|
@@ -25,11 +25,15 @@ guessing from a list.
|
|
|
25
25
|
So when someone names a tool and asks whether it remembers too, work it out from
|
|
26
26
|
those rows and answer plainly — not a hedge, not a promise:
|
|
27
27
|
|
|
28
|
-
- **ChatGPT** — Settings → **Developer mode** → add an MCP server with
|
|
29
|
-
`https://mcp.memgineering.com/mcp`, then sign in with Google when it asks.
|
|
30
28
|
- **Claude.ai, Claude Desktop, Cowork** — **Customize** → **Connectors** →
|
|
31
|
-
**Add custom connector** →
|
|
32
|
-
custom connectors are on every plan, the free one
|
|
29
|
+
**Add custom connector** → `https://mcp.memgineering.com/mcp`. One connector
|
|
30
|
+
covers all three, and custom connectors are on every plan, the free one
|
|
31
|
+
included. Then sign in with Google when it asks and tick both consents on the
|
|
32
|
+
connect screen (below).
|
|
33
|
+
- **ChatGPT** — **paused for now.** The connect screen refuses it with
|
|
34
|
+
`connector_recipient_paused` while the notice about OpenAI is verified. Say so
|
|
35
|
+
plainly, and offer Claude or Gemini instead, or trying again later; do not
|
|
36
|
+
walk them through Developer mode in the meantime.
|
|
33
37
|
- It reaches the brain **on their account**. A brain that lives only as a folder
|
|
34
38
|
on this machine is out of its reach until it is moved up (see "Moving a brain
|
|
35
39
|
between this machine and their account").
|
|
@@ -110,8 +114,35 @@ the brain identity and a `registry:` line with the username. If the registry
|
|
|
110
114
|
line says "not linked", the link simply did not happen at sign-in time (older
|
|
111
115
|
server, registry briefly down); a fresh `logout` + `login` links it. Never
|
|
112
116
|
treat a missing registry line as a failed brain sign-in — the brain token
|
|
113
|
-
stands on its own. Consent is asked
|
|
114
|
-
created.
|
|
117
|
+
stands on its own. Consent to the terms is asked once, when an account is
|
|
118
|
+
first created. Two other consents are asked on every chat-app connection
|
|
119
|
+
instead. Connecting Claude or Gemini gives the company that runs it what the app
|
|
120
|
+
reads from the brain — brain names, the questions asked, note titles,
|
|
121
|
+
summaries, claims and sources, the rules in force, opened notes in full — and
|
|
122
|
+
what it writes, automatically at the start of every conversation and without
|
|
123
|
+
asking each time it records; that company is in the United States. So the
|
|
124
|
+
connect screen names who receives it and how to reach them, what it is used for
|
|
125
|
+
(that company's model training included, as the app's own settings allow) and
|
|
126
|
+
how long it is kept, and asks for two ticks: one to the provision to that
|
|
127
|
+
company, one to the transfer abroad. Without both the app is not connected, and
|
|
128
|
+
nothing else changes; to connect, the user starts again from the app and ticks
|
|
129
|
+
both. If the screen says the notice changed, the user reloads it (or starts
|
|
130
|
+
again from the app) and approves again. A program on their own computer (a
|
|
131
|
+
connector redirecting to 127.0.0.1 or localhost) asks for no tick — what it
|
|
132
|
+
sends onward follows that program's own terms. An app whose recipient
|
|
133
|
+
memgineering has no notice for is refused (`unknown_connector_recipient`):
|
|
134
|
+
suggest Claude or Gemini.
|
|
135
|
+
|
|
136
|
+
**`logout --all` is "disconnect everything".** It ends every brain token on
|
|
137
|
+
the account (every machine, ChatGPT and Claude connections, the website), and
|
|
138
|
+
anything approved before that moment — a sign-in nobody collected yet, a half-
|
|
139
|
+
finished connection — can no longer finish. It also ends every registry
|
|
140
|
+
sign-in of the same Google account. `--json` carries `registry_sessions`:
|
|
141
|
+
`revoked` (with a count), `not_linked`, or `unreachable` with a `hint` — on
|
|
142
|
+
that one, tell the user the brain side is done and relay the hint (it names
|
|
143
|
+
`kordis logout`). Signing in again afterwards works as usual. With nothing
|
|
144
|
+
signed in on this machine, it says how to do it instead: the website's button,
|
|
145
|
+
or `login` first.
|
|
115
146
|
|
|
116
147
|
**When the setup finishes, say what is true and no more.** Commands work
|
|
117
148
|
immediately — `recall`, `remember`, the session hook. What waits is the
|
|
@@ -284,6 +315,45 @@ person to retype the brain's name; with no terminal it refuses rather than
|
|
|
284
315
|
deciding. `unlink --brain` is the gentle sibling: it only stops this machine
|
|
285
316
|
reading a brain and deletes nothing.
|
|
286
317
|
|
|
318
|
+
### Deleting the whole account
|
|
319
|
+
|
|
320
|
+
`memgineering delete-account --confirm "delete my account"` deletes the
|
|
321
|
+
hosted brain account (every brain on it, every note, every token) and the
|
|
322
|
+
registry account the same Google sign-in made (profile, stars, follows,
|
|
323
|
+
comment text, sign-ins; the account is renamed `deleted-…`, and its
|
|
324
|
+
published packages and versions stay at their existing addresses), in that
|
|
325
|
+
order, then signs this machine out. Nothing comes back. Run it ONLY
|
|
326
|
+
when the person has explicitly asked for their account to be deleted, and
|
|
327
|
+
pass the sentence exactly as written; without `--confirm` in a real terminal
|
|
328
|
+
it asks them to type it, and with no terminal it refuses rather than
|
|
329
|
+
deciding. There is no dry run.
|
|
330
|
+
|
|
331
|
+
A person with no terminal can delete the same two accounts on the website:
|
|
332
|
+
signed in at memgineering.com/brain, the "Delete my account" section at the
|
|
333
|
+
bottom of the page, confirmed with one tick (there is no sentence to type). Point
|
|
334
|
+
them there when they ask; you cannot press it for them. A deletion that stopped
|
|
335
|
+
half way is finished from the same page ("Finish deleting"). A Google account
|
|
336
|
+
that never opened a brain can delete its registry account from the same page too:
|
|
337
|
+
signed in, the consent screen shows a "Delete my account" section below the terms,
|
|
338
|
+
with the same single tick. Only an account that never signed in with Google, and a
|
|
339
|
+
brain account whose terms were never accepted, are deleted by mail to
|
|
340
|
+
support@memgineering.com.
|
|
341
|
+
|
|
342
|
+
- **Before deleting anything** it checks both sign-ins work and belong to one
|
|
343
|
+
person: the two accounts' emails, or — when either account has no email on
|
|
344
|
+
record — this machine's registry sign-in, which the brain sign-in issued. `--json` says which in `matched`. Different people answer
|
|
345
|
+
`account_mismatch` and nothing is deleted.
|
|
346
|
+
- **It refuses rather than deleting half**: a machine signed in to a brain
|
|
347
|
+
with no registry half answers `not_linked` (`memgineering logout`, then
|
|
348
|
+
`memgineering login`, links it). A machine signed in to nothing answers
|
|
349
|
+
`not_signed_in`: a brain kept in a folder has no account, and this command
|
|
350
|
+
never touches folders on this disk.
|
|
351
|
+
- **Stopped halfway** — `account_partly_deleted` means the brain account is
|
|
352
|
+
gone and the registry account is not. Tell the person exactly that, then
|
|
353
|
+
run the same command again: it skips the brain and finishes the registry.
|
|
354
|
+
- Somebody who cannot sign in, or whose account never used Google, writes to
|
|
355
|
+
support@memgineering.com from the address on the account.
|
|
356
|
+
|
|
287
357
|
**They already keep notes in a folder on this machine** — carry them up
|
|
288
358
|
instead of starting empty:
|
|
289
359
|
|