@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.
- package/AGENT_GUIDE.md +8 -3
- package/AGENT_QUICK_REFERENCE.md +3 -3
- package/README.md +1 -1
- package/dist/bin/cerefox.js +1542 -1123
- package/dist/frontend/assets/index-01k5C3sG.css +1 -0
- package/dist/frontend/assets/index-HNs8rgY1.js +121 -0
- package/dist/frontend/assets/index-HNs8rgY1.js.map +1 -0
- package/dist/frontend/index.html +2 -2
- package/dist/server-assets/_shared/ef-meta/index.ts +3 -3
- package/dist/server-assets/_shared/embeddings/onnx-embedder.ts +25 -9
- package/dist/server-assets/_shared/mcp-tools/_document-meta.ts +24 -2
- package/dist/server-assets/_shared/mcp-tools/_utils.ts +92 -0
- package/dist/server-assets/_shared/mcp-tools/audit-log.ts +6 -2
- package/dist/server-assets/_shared/mcp-tools/audit-ops.ts +27 -0
- package/dist/server-assets/_shared/mcp-tools/get-document.ts +11 -1
- package/dist/server-assets/_shared/mcp-tools/get-help-content.ts +3 -3
- package/dist/server-assets/_shared/mcp-tools/ingest.ts +55 -17
- package/dist/server-assets/_shared/mcp-tools/metadata-search.ts +3 -1
- package/dist/server-assets/_shared/mcp-tools/partial-edits.ts +8 -13
- package/dist/server-assets/_shared/mcp-tools/search.ts +11 -2
- package/dist/server-assets/_shared/mcp-tools/set-document-metadata.ts +31 -5
- package/dist/server-assets/db/migrations/0012_content_format.sql +1 -1
- package/dist/server-assets/db/migrations/0014_document_relations.sql +1 -1
- package/dist/server-assets/db/migrations/0020_ingest_preserves_source.sql +1 -1
- package/dist/server-assets/db/migrations/0022_rls_on_document_relations.sql +1 -1
- package/dist/server-assets/db/migrations/0032_derive_grants.sql +1 -1
- package/dist/server-assets/db/migrations/0034_drop_vector_indexes.sql +22 -0
- package/dist/server-assets/db/migrations/0035_drop_content_hash_unique.sql +21 -0
- package/dist/server-assets/db/migrations/0036_metadata_revision.sql +43 -0
- package/dist/server-assets/db/rpcs.sql +260 -58
- package/dist/server-assets/db/schema.sql +49 -18
- package/dist/server-assets/supabase/functions/cerefox-get-document/index.ts +8 -1
- package/dist/server-assets/supabase/functions/cerefox-ingest/index.ts +42 -6
- package/docs/api/openapi.json +77 -3
- package/docs/guides/access-paths.md +7 -3
- package/docs/guides/api.md +1 -1
- package/docs/guides/cli.md +5 -3
- package/docs/guides/configuration.md +23 -2
- package/docs/guides/connect-agents.md +60 -25
- package/docs/guides/ops-scripts.md +1 -1
- package/docs/guides/quickstart.md +7 -3
- package/docs/guides/setup-local.md +30 -6
- package/docs/guides/setup-supabase.md +5 -0
- package/docs/guides/upgrading.md +16 -1
- package/package.json +7 -7
- package/dist/frontend/assets/index-B0H_N4if.css +0 -1
- package/dist/frontend/assets/index-D1kdLLr8.js +0 -121
- 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.
|
|
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
|
|
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
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
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.
|
|
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
|
|
774
|
-
|
|
775
|
-
|
|
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_…`).
|
|
1088
|
-
`cerefox token
|
|
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
|
|
1092
|
-
> schema.
|
|
1093
|
-
>
|
|
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
|
|
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 —
|
|
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
|
|
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,
|
|
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
|
-
> **
|
|
8
|
-
>
|
|
9
|
-
>
|
|
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**:
|
|
53
|
-
>
|
|
54
|
-
>
|
|
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.
|
package/docs/guides/upgrading.md
CHANGED
|
@@ -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
|
|
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.
|
|
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.
|
|
43
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
44
|
-
"@supabase/supabase-js": "^2.117.
|
|
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.
|
|
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.
|
|
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.
|
|
63
|
+
"@types/node": "^24.19.1",
|
|
64
64
|
"@types/prompts": "^2.4.9",
|
|
65
65
|
"typescript": "^6.0.3"
|
|
66
66
|
},
|