@cerefox/memory 1.17.4 → 1.19.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.
Files changed (48) hide show
  1. package/AGENT_GUIDE.md +8 -3
  2. package/AGENT_QUICK_REFERENCE.md +3 -3
  3. package/README.md +1 -1
  4. package/dist/bin/cerefox.js +1542 -1123
  5. package/dist/frontend/assets/index-01k5C3sG.css +1 -0
  6. package/dist/frontend/assets/index-HNs8rgY1.js +121 -0
  7. package/dist/frontend/assets/index-HNs8rgY1.js.map +1 -0
  8. package/dist/frontend/index.html +2 -2
  9. package/dist/server-assets/_shared/ef-meta/index.ts +3 -3
  10. package/dist/server-assets/_shared/embeddings/onnx-embedder.ts +25 -9
  11. package/dist/server-assets/_shared/mcp-tools/_document-meta.ts +24 -2
  12. package/dist/server-assets/_shared/mcp-tools/_utils.ts +92 -0
  13. package/dist/server-assets/_shared/mcp-tools/audit-log.ts +6 -2
  14. package/dist/server-assets/_shared/mcp-tools/audit-ops.ts +27 -0
  15. package/dist/server-assets/_shared/mcp-tools/get-document.ts +11 -1
  16. package/dist/server-assets/_shared/mcp-tools/get-help-content.ts +3 -3
  17. package/dist/server-assets/_shared/mcp-tools/ingest.ts +55 -17
  18. package/dist/server-assets/_shared/mcp-tools/metadata-search.ts +3 -1
  19. package/dist/server-assets/_shared/mcp-tools/partial-edits.ts +8 -13
  20. package/dist/server-assets/_shared/mcp-tools/search.ts +11 -2
  21. package/dist/server-assets/_shared/mcp-tools/set-document-metadata.ts +31 -5
  22. package/dist/server-assets/db/migrations/0012_content_format.sql +1 -1
  23. package/dist/server-assets/db/migrations/0014_document_relations.sql +1 -1
  24. package/dist/server-assets/db/migrations/0020_ingest_preserves_source.sql +1 -1
  25. package/dist/server-assets/db/migrations/0022_rls_on_document_relations.sql +1 -1
  26. package/dist/server-assets/db/migrations/0032_derive_grants.sql +1 -1
  27. package/dist/server-assets/db/migrations/0034_drop_vector_indexes.sql +22 -0
  28. package/dist/server-assets/db/migrations/0035_drop_content_hash_unique.sql +21 -0
  29. package/dist/server-assets/db/migrations/0036_metadata_revision.sql +43 -0
  30. package/dist/server-assets/db/rpcs.sql +260 -58
  31. package/dist/server-assets/db/schema.sql +49 -18
  32. package/dist/server-assets/supabase/functions/cerefox-get-document/index.ts +8 -1
  33. package/dist/server-assets/supabase/functions/cerefox-ingest/index.ts +42 -6
  34. package/docs/api/openapi.json +77 -3
  35. package/docs/guides/access-paths.md +7 -3
  36. package/docs/guides/api.md +1 -1
  37. package/docs/guides/cli.md +5 -3
  38. package/docs/guides/configuration.md +23 -2
  39. package/docs/guides/connect-agents.md +60 -25
  40. package/docs/guides/ops-scripts.md +1 -1
  41. package/docs/guides/quickstart.md +7 -3
  42. package/docs/guides/setup-local.md +30 -6
  43. package/docs/guides/setup-supabase.md +5 -0
  44. package/docs/guides/upgrading.md +16 -1
  45. package/package.json +7 -7
  46. package/dist/frontend/assets/index-B0H_N4if.css +0 -1
  47. package/dist/frontend/assets/index-D1kdLLr8.js +0 -121
  48. package/dist/frontend/assets/index-D1kdLLr8.js.map +0 -1
@@ -24,7 +24,7 @@ client; you can also run both in parallel.
24
24
  Three top-level paths plus a few special cases:
25
25
 
26
26
  - **Path A** — MCP server (local subprocess or remote Edge Function). Best for purpose-built agent clients like Claude Desktop, Cursor, and Claude Code's MCP integration.
27
- - **Path B** — direct Edge Function HTTP. Best for ChatGPT Custom GPTs and any HTTP caller (curl, scripts).
27
+ - **Path B** — direct Edge Function HTTP. For any HTTP caller (curl, scripts), and for ChatGPT Custom GPTs until OpenAI retires them on December 11, 2026.
28
28
  - **Path C** — local shell CLI invoked by a coding agent's Bash tool. Best for Claude Code, Codex CLI, opencode, OpenClaw, Hermes, and similar local-agent CLIs **when the user prefers not to configure MCP** but still wants the agent to read and write Cerefox.
29
29
 
30
30
  | Client | Path | Search | Requirements / caveats |
@@ -33,7 +33,8 @@ Three top-level paths plus a few special cases:
33
33
  | Claude Code (remote) | Path A-Remote — `cerefox-mcp` Edge Function | Hybrid | URL + Cerefox token only; no local install. Advanced/fallback — prefer Path A-Local |
34
34
  | Cursor (remote) | Path A-Remote — `cerefox-mcp` Edge Function | Hybrid | URL + Cerefox token only; no local install. Advanced/fallback — prefer Path A-Local |
35
35
  | OpenAI Codex CLI (remote) | Path A-Remote — `cerefox-mcp` Edge Function | Hybrid | URL + Cerefox token env var; TOML config. Advanced/fallback — prefer Path A-Local |
36
- | ChatGPT (chatgpt.com or desktop) | Path B — Custom GPT → Edge Functions | Hybrid | ChatGPT Plus required |
36
+ | ChatGPT (chatgpt.com or desktop) | Path B — Custom GPT → Edge Functions | Hybrid | ChatGPT Plus required. **Ends 2026-12-11** when Custom GPTs retire; see [ChatGPT Custom GPT](#chatgpt-custom-gpt-cloud--chatgptcom) |
37
+ | OpenAI Codex (CLI, and Codex threads in the ChatGPT desktop app) (local) | Path A-Local — `cerefox configure-agent --tool codex` | Hybrid | Writes `~/.codex/config.toml`; all 15 tools; zero Edge Function invocations. **Recommended for Codex** |
37
38
  | Claude Desktop (local) | Path A-Local — `@cerefox/memory` via `npx` | Hybrid | Local alternative; Node.js; zero Edge Function invocations |
38
39
  | Claude Code (local) | Path A-Local — `@cerefox/memory` via `npx` | Hybrid | Local alternative; zero Edge Function invocations |
39
40
  | Cursor (local) | Path A-Local — `@cerefox/memory` via `npx` | Hybrid | Local alternative; zero Edge Function invocations |
@@ -50,7 +51,8 @@ Three top-level paths plus a few special cases:
50
51
  > over the standard tool surface — no Cloud Run needed. Setup:
51
52
  > [setup-supabase Step 7](setup-supabase.md#step-7--oauth-for-cloud-agents-claudeai--mobile-optional)
52
53
  > + [Cloud Claude](#cloud-claude-claudeai-web--mobile-oauth) below. (An OAuth connector for
53
- > ChatGPT becomes possible on the same server but is not yet documented.)
54
+ > ChatGPT is expected to replace the Custom GPT path when Custom GPTs retire; it is being
55
+ > validated in [#326](https://github.com/fstamatelopoulos/cerefox/issues/326).)
54
56
 
55
57
  > **Perplexity** supports stdio-only MCP on macOS Desktop (via Helper App). Remote MCP is
56
58
  > "coming soon." Perplexity's CTO has signaled a strategic shift away from MCP (March 2026),
@@ -265,15 +267,26 @@ For the manual JSON (for the curious, or to debug if the CLI can't write your co
265
267
 
266
268
  ---
267
269
 
268
- ### ChatGPT Desktop
270
+ ### ChatGPT Desktop and Codex
269
271
 
270
- > **ChatGPT Desktop does not support local stdio MCP servers.**
271
- > OpenAI's MCP implementation for ChatGPT only supports remote servers via SSE or
272
- > streaming HTTP — not local subprocess (stdio) servers like `cerefox mcp`.
273
- > The "dev mode" MCP connector visible in the app also requires a public URL.
274
- >
275
- > **Use Path B (Custom GPT + Edge Functions) for all ChatGPT access** — both the web
276
- > app and the desktop app. The Custom GPT approach is fully validated and works well.
272
+ The ChatGPT desktop app hosts two different things, and they connect differently:
273
+
274
+ - **Codex threads** (and the Codex CLI) run local stdio MCP servers. Set them up with
275
+ `cerefox configure-agent --tool codex`, which writes the `cerefox` entry into
276
+ `~/.codex/config.toml`; the app's **Plugins → MCPs** screen edits the same entry. Start
277
+ a new Codex session after changing it (it reads the config at session start), then ask
278
+ it to call `cerefox_get_help`: the reply begins with the server version. All 15 tools
279
+ are available.
280
+ - **Regular ChatGPT chats** do not get local MCP servers, in the desktop app or anywhere
281
+ else. ChatGPT only connects to **remote** MCP servers (OAuth or no auth). Today ChatGPT
282
+ chats reach Cerefox through the [Custom GPT](#chatgpt-custom-gpt-cloud--chatgptcom)
283
+ path, which ends on December 11, 2026; see the notice there.
284
+
285
+ > **Tip**: `configure-agent` writes the `npx` form, which runs whatever version npx has
286
+ > cached. To keep Codex on the same version as your installed CLI (and start faster),
287
+ > point the entry at the binary instead: `command = "<path to cerefox>"`, `args = ["mcp"]`
288
+ > (`which cerefox` prints the path; use the full path, since GUI apps may not see your
289
+ > shell's `PATH`).
277
290
 
278
291
  ---
279
292
 
@@ -593,6 +606,8 @@ You have access to a personal knowledge base via the searchKnowledgeBase action.
593
606
  When the user asks a question, always search the knowledge base first using a
594
607
  relevant query. Present results by document title, citing the source for every claim.
595
608
  Use ingestNote to save any new information the user asks you to remember.
609
+ Pass author: "ChatGPT" on every action call, so your reads and writes are
610
+ attributed in the audit and usage logs.
596
611
  When UPDATING an existing document, first call getDocument and note its
597
612
  content_hash, then pass it as expected_content_hash on ingestNote. If you get a
598
613
  409 conflict, the document changed underneath you: call getDocument again, merge
@@ -620,6 +635,14 @@ Expected: JSON response with `results` array containing documents.
620
635
 
621
636
  ### ChatGPT Custom GPT (cloud — chatgpt.com)
622
637
 
638
+ > **Retiring on December 11, 2026.** OpenAI is retiring Custom GPTs in favor of plugins,
639
+ > and **custom actions do not carry over**: they have to be rebuilt as a connector or a
640
+ > custom MCP server. This section works until then, but do not build a new setup on it.
641
+ > ChatGPT will need a new connection, an MCP connector to `cerefox-mcp` over OAuth (the
642
+ > way [cloud Claude](#cloud-claude-claudeai-web--mobile-oauth) connects), which is being
643
+ > validated in [#326](https://github.com/fstamatelopoulos/cerefox/issues/326). Background and plan: [`chatgpt-after-custom-gpts.md`](../research/chatgpt-after-custom-gpts.md).
644
+ > For **Codex**, use the local MCP instead (see [ChatGPT Desktop and Codex](#chatgpt-desktop-and-codex)).
645
+
623
646
  A Custom GPT with Actions pointing at the Edge Functions gives ChatGPT full hybrid search from
624
647
  any browser — no local install, no MCP client, works free with ChatGPT Plus.
625
648
 
@@ -638,7 +661,7 @@ In the action editor, paste this schema (replace `<your-project-ref>`):
638
661
  openapi: 3.1.0
639
662
  info:
640
663
  title: Cerefox Knowledge Base
641
- version: 4.3.0
664
+ version: 4.4.0
642
665
  servers:
643
666
  - url: https://<your-project-ref>.supabase.co/functions/v1
644
667
  paths:
@@ -770,9 +793,10 @@ paths:
770
793
  metadata:
771
794
  type: object
772
795
  description: >
773
- Arbitrary JSON metadata. On an UPDATE, omitting this keeps
774
- the document's existing metadata (v2.1.0); pass {} to
775
- deliberately clear all tags.
796
+ Arbitrary JSON metadata. On an UPDATE it is MERGED into the
797
+ existing metadata (v4.4.0): keys you pass are set, a null
798
+ value removes that key, keys you omit are kept. Omitting
799
+ the field keeps the metadata as it is.
776
800
  update_if_exists:
777
801
  type: boolean
778
802
  default: false
@@ -790,6 +814,13 @@ paths:
790
814
  If the document changed since it was read, the update fails
791
815
  with HTTP 409 — re-read the document, merge your changes,
792
816
  retry with the new hash. Not needed when creating.
817
+ expected_metadata_revision:
818
+ type: integer
819
+ description: >
820
+ Optional, with metadata on an update (v4.4.0): the
821
+ metadata_revision returned by getDocument. If the metadata
822
+ changed since, the update fails with HTTP 409
823
+ (error "metadata_conflict").
793
824
  last_write_wins:
794
825
  type: boolean
795
826
  default: false
@@ -839,7 +870,9 @@ paths:
839
870
  changes, and retry with the new hash — do not overwrite blindly),
840
871
  or the target document is soft-deleted (error
841
872
  "document_deleted") — restore it first, then retry, or create a
842
- new document.
873
+ new document, or the metadata changed since it was read (error
874
+ "metadata_conflict") — re-read with getDocument and retry with
875
+ the new metadata_revision.
843
876
  '422':
844
877
  description: >
845
878
  Unresolved document links (error "unresolved_links") — the content
@@ -899,7 +932,8 @@ paths:
899
932
  description: >
900
933
  Document content and metadata:
901
934
  { document_id, doc_title, full_content, chunk_count, total_chars,
902
- is_archived, version_id, content_hash }.
935
+ is_archived, version_id, content_hash, metadata,
936
+ metadata_revision }.
903
937
  content_hash is the document's CURRENT hash — pass it back as
904
938
  expected_content_hash when updating via ingestNote.
905
939
  '404':
@@ -1084,15 +1118,16 @@ paths:
1084
1118
  In the action's **Authentication** settings:
1085
1119
  - Type: **API Key**
1086
1120
  - Auth type: **Bearer**
1087
- - API key: your **Cerefox access token** (`cfx_pat_…`). Generate it with
1088
- `cerefox token generate` (it prints the token once and sets it on Supabase).
1121
+ - API key: your **Cerefox access token** (`cfx_pat_…`). If you already have one
1122
+ (`cerefox token list` shows it; the value is `CEREFOX_ACCESS_TOKEN` in your `.env`),
1123
+ reuse it. Only on a first setup run `cerefox token generate`: it **replaces** the
1124
+ server's token, which breaks every client still using the old one. To add a second
1125
+ token alongside the first, use `cerefox token rotate`.
1089
1126
  The legacy Supabase anon key is no longer accepted (iter-28E).
1090
1127
 
1091
- > **Important:** ChatGPT resets the stored API key when you update the action
1092
- > schema. This release bumps the schema `info.version`, so on your next schema
1093
- > paste ChatGPT will clear the key — re-enter your **Cerefox access token** in the
1094
- > authentication settings. (That reset is expected here: it's what swaps you off
1095
- > the old anon key.)
1128
+ > **Important:** ChatGPT clears the stored API key whenever you save a changed action
1129
+ > schema. After pasting a new schema version, re-enter your **Cerefox access token** in
1130
+ > the authentication settings.
1096
1131
 
1097
1132
  **Step 4 — Save and test**
1098
1133
 
@@ -1131,7 +1166,7 @@ curl -s -X POST \
1131
1166
  }'
1132
1167
  ```
1133
1168
 
1134
- If the same content was already ingested (SHA-256 hash match), returns `"skipped": true`.
1169
+ If a live document already has the same content (SHA-256 hash match), a create returns that document with `"skipped": true` instead of a copy. Documents in the trash do not count, and updates never de-duplicate.
1135
1170
 
1136
1171
  **Edge Function parameters — `cerefox-search`:**
1137
1172
 
@@ -177,7 +177,7 @@ Output: `backup-data/cerefox-20260308T143022Z-before-v2-migration.json`
177
177
 
178
178
  ## backup_restore.ts — Restore from a backup
179
179
 
180
- Restores documents and chunks from a previously created backup file. Idempotent — documents with the same content hash are skipped. (End users use `cerefox backup restore`.)
180
+ Restores documents and chunks from a previously created backup file. Idempotent — a document is skipped when its id is already present, or when a live document outside the backup already has the same content. (End users use `cerefox backup restore`.)
181
181
 
182
182
  ```bash
183
183
  bun scripts/backup_restore.ts BACKUP_FILE [OPTIONS]
@@ -83,7 +83,8 @@ in place, so re-run it after upgrading. Detailed walkthrough:
83
83
  ## 3b. Generate the Edge Function access token
84
84
 
85
85
  The Edge Functions authenticate callers with a **Cerefox access token**. You need it
86
- if you'll connect a **Custom GPT** (GPT Actions) or a **remote HTTP MCP** client, and
86
+ if you'll connect a **Custom GPT** (GPT Actions, until OpenAI retires Custom GPTs on
87
+ December 11, 2026) or a **remote HTTP MCP** client, and
87
88
  for a fully-green `cerefox doctor`. The **local MCP** (local agents), **cloud Claude**
88
89
  (OAuth), and the CLI/web reach Supabase over the Data API and don't use it — so this
89
90
  step is optional if that's your whole setup, but it's quick and harmless to run:
@@ -147,8 +148,11 @@ clone the repo, run `bun install`, and use the contributor scripts
147
148
  - **Search from the CLI**: `cerefox search "your query"`
148
149
  - **Discover all commands**: `cerefox --help`
149
150
  - **Run the web UI**: `cerefox web` (TypeScript — Hono backend + React SPA); see [`cli.md`](cli.md)
150
- - **Connect more AI clients** (Cursor, Codex, ChatGPT GPT Actions, etc.):
151
- [`connect-agents.md`](connect-agents.md)
151
+ - **Connect more AI clients** (Cursor, Codex, Gemini, cloud Claude, etc.):
152
+ [`connect-agents.md`](connect-agents.md). Codex works with the local MCP
153
+ (`cerefox configure-agent --tool codex`). ChatGPT's Custom GPT path ends on
154
+ December 11, 2026; see
155
+ [`chatgpt-after-custom-gpts.md`](../research/chatgpt-after-custom-gpts.md)
152
156
  - **Configuration reference**: [`configuration.md`](configuration.md)
153
157
  - **Backup + restore**: [`ops-scripts.md`](ops-scripts.md)
154
158
 
@@ -4,9 +4,11 @@ Run Cerefox **fully on your own machine** — no hosted Supabase, no cloud datab
4
4
  Docker container bundles everything: Postgres + pgvector, the PostgREST Data API, and the
5
5
  Cerefox web server. You get the same web UI, CLI, and MCP server as the cloud setup.
6
6
 
7
- > **Embeddings still use the OpenAI API.** An `OPENAI_API_KEY` is required even for a
8
- > local setup (the database and web server are local; embedding generation is not). A
9
- > fully offline embedder is on the roadmap.
7
+ > **Two embedding choices.** By default embeddings use the OpenAI API (an
8
+ > `OPENAI_API_KEY` is needed). Or choose the **local embedder**
9
+ > (`--local-embedder`, `CEREFOX_EMBEDDER=local`): a model that runs inside the
10
+ > container, fully offline, no API key. See
11
+ > [Choose your embedder](#choose-your-embedder-openai-vs-fully-local).
10
12
 
11
13
  ## Cloud vs. Local — pick one
12
14
 
@@ -49,9 +51,14 @@ install; switching later requires a re-index (see below).
49
51
  The local model (~130 MB) downloads once — at install/init when selected — into the
50
52
  data volume, so it survives `cerefox-local upgrade`.
51
53
 
52
- > **Memory**: give the Docker VM **≥ 4 GB** for comfortable local-embedder use
53
- > (Colima defaults to 2 GB: `colima start --memory 4`). Inference is
54
- > sub-batched to keep peak memory flat, so smaller VMs work — just slower.
54
+ > **Memory**: with the local embedder, each Cerefox Local instance's web
55
+ > process sits around **0.3–0.5 GB** idle and reaches about **1.5 GB** while
56
+ > ingesting long documents dense with tables, ids or code (measured on
57
+ > synthetic 20,000-character documents; Postgres and PostgREST add a little
58
+ > more). Give the Docker VM room for **each** instance you run, plus everything
59
+ > else in it: **4 GB is comfortable for one instance**, not two. Colima defaults
60
+ > to 2 GB (`colima start --memory 4`, or `--memory 8` for two instances). If the
61
+ > VM runs out, the kernel kills the web process; see Troubleshooting.
55
62
 
56
63
  > **Switching embedders on existing data is breaking**: the two models produce
57
64
  > incompatible vector spaces, so documents embedded with one are invisible to
@@ -193,6 +200,23 @@ Re-run the installer with the key, or set it and `cerefox-local upgrade`.
193
200
 
194
201
  **Port already in use** — re-install with a free port: `PORT=8017 sh -c "$(curl -fsSL …/install-local.sh)"`.
195
202
 
203
+ **Requests fail with "socket connection closed", or the web process restarts on
204
+ its own** — usually the Docker VM ran out of memory and the kernel killed the
205
+ web process (most often during ingest with the local embedder). s6 restarts it
206
+ within seconds, so the container keeps running. Since v1.19.0 the container log
207
+ says so (`docker logs cerefox-local` shows "killed (SIGKILL), most likely by the
208
+ kernel's out-of-memory killer"); on older versions the log shows only the
209
+ restart. Confirm it in the VM's kernel log:
210
+
211
+ ```sh
212
+ colima ssh -- sudo dmesg | grep -i "out of memory" # Colima
213
+ ```
214
+
215
+ (Docker Desktop: the same `dmesg` from a privileged container, e.g.
216
+ `docker run --rm --privileged alpine dmesg | grep -i "out of memory"`.) The fix is
217
+ more memory for the VM, or fewer instances in it; see **Memory** above.
218
+ `CEREFOX_ONNX_BATCH` (default 1) trades memory for nothing useful above 1, so leave it.
219
+
196
220
  ---
197
221
 
198
222
  ## Contributor notes
@@ -220,6 +220,11 @@ FTS-only `mcp.supabase.com` path). This needs a one-time OAuth setup — see
220
220
  [Step 7](#step-7--oauth-for-cloud-agents-claudeai--mobile-optional) below.
221
221
 
222
222
  **For cloud ChatGPT** — create a Custom GPT with GPT Actions pointing at the Edge Functions.
223
+ This works until **December 11, 2026**, when OpenAI retires Custom GPTs (custom actions do
224
+ not carry over to its plugins). ChatGPT's replacement connection, an MCP connector over
225
+ OAuth like the cloud Claude one, is being validated in
226
+ [#326](https://github.com/fstamatelopoulos/cerefox/issues/326). **For Codex**, use the local
227
+ MCP: `cerefox configure-agent --tool codex`.
223
228
 
224
229
  See `docs/guides/connect-agents.md` for the complete guide including system prompts,
225
230
  architecture explanation, and ChatGPT GPT Actions setup.
@@ -194,6 +194,20 @@ knowing about:
194
194
  document must be restored before its content can be updated.
195
195
  - **v1.13.0 — the review workflow is a store setting.** Upgraded stores keep
196
196
  it on; fresh installs start with it off. See the callout above.
197
+ - **Schema 0.20.0 — content no longer has to be unique.** Updates that match
198
+ another document, or a document in the trash, are accepted; only creating a
199
+ document de-duplicates, against live documents. Needs `cerefox server deploy`.
200
+ Until the server is deployed, a 1.19.0 client writing content another
201
+ document (trashed ones included) already has gets an error telling it to
202
+ deploy. A client older than 1.19.0 against the new server is safe: when two
203
+ identical creates race, the loser gets an error, as it did before.
204
+ - **Schema 0.21.0 — metadata merges on content updates and has its own token.**
205
+ A content update's `metadata` now merges (`null` removes a key) instead of
206
+ replacing, so `{}` no longer clears tags; `replace` needs
207
+ `expected_metadata_revision`. Scripts that relied on replace-on-update should
208
+ use `document set-metadata --replace`. Needs `cerefox server deploy`; then
209
+ restart MCP clients and `cerefox web`, since an older client's metadata
210
+ `replace` is refused for lack of the token.
197
211
  - **v1.13.1 — the flag hides, it does not rewrite.** Agent writes are
198
212
  recorded `pending_review` whether or not the workflow is shown (v1.13.0
199
213
  stored `approved` while off). Redeploy to pick it up.
@@ -223,7 +237,8 @@ MCP path needs no reconfiguration; for the local stdio server, restart the
223
237
  client. `cerefox configure-agent --tool <client>` (re)writes a client's config
224
238
  if you need it.
225
239
 
226
- **ChatGPT Custom GPT (GPT Actions):** after an upgrade, check the OpenAPI schema
240
+ **ChatGPT Custom GPT (GPT Actions, until December 11, 2026, when OpenAI retires
241
+ Custom GPTs):** after an upgrade, check the OpenAPI schema
227
242
  version in [`connect-agents.md`](connect-agents.md); if it changed, paste the new
228
243
  schema into the Custom GPT editor and **re-enter your Cerefox access token**
229
244
  (`cfx_pat_…`, from `cerefox token generate`) as the Bearer token. (The editor
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cerefox/memory",
3
- "version": "1.17.4",
3
+ "version": "1.19.0",
4
4
  "description": "Cerefox \u2014 user-owned shared memory for AI agents. CLI + stdio MCP server + web UI + ingestion for a knowledge base on your own Supabase project (or fully self-hosted with Cerefox Local).",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/fstamatelopoulos/cerefox",
@@ -39,12 +39,12 @@
39
39
  "CHANGELOG.md"
40
40
  ],
41
41
  "dependencies": {
42
- "@hono/node-server": "^2.1.1",
43
- "@modelcontextprotocol/sdk": "^1.30.1",
44
- "@supabase/supabase-js": "^2.117.2",
42
+ "@hono/node-server": "^2.1.4",
43
+ "@modelcontextprotocol/sdk": "^1.32.1",
44
+ "@supabase/supabase-js": "^2.117.3",
45
45
  "cli-progress": "^3.12.0",
46
46
  "commander": "^15.0.0",
47
- "hono": "^4.13.9",
47
+ "hono": "^4.13.13",
48
48
  "mammoth": "^1.13.0",
49
49
  "ora": "^9.4.0",
50
50
  "picocolors": "^1.0.0",
@@ -54,13 +54,13 @@
54
54
  "zod": "^4.6.5"
55
55
  },
56
56
  "optionalDependencies": {
57
- "@huggingface/transformers": "^4.3.0",
57
+ "@huggingface/transformers": "^4.3.1",
58
58
  "onnxruntime-node": "^1.21.0"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@types/bun": "^1.4.2",
62
62
  "@types/cli-progress": "^3.11.5",
63
- "@types/node": "^24.19.0",
63
+ "@types/node": "^24.19.1",
64
64
  "@types/prompts": "^2.4.9",
65
65
  "typescript": "^6.0.3"
66
66
  },