@cerefox/memory 0.9.4 → 0.9.6

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.
@@ -1,581 +0,0 @@
1
- # Migrating to Cerefox v0.5.x
2
-
3
- **This is the canonical upgrade guide for any user landing on Cerefox v0.5+.**
4
- It covers the v0.4 → v0.5 transition, the v0.5.x patch trail (v0.5.1, v0.5.2,
5
- v0.5.3), and the Python `cerefox` → TS `cerefox` migration path.
6
-
7
- ## Where to start
8
-
9
- | Coming from | Read |
10
- |---|---|
11
- | Never used Cerefox before | [`quickstart.md`](quickstart.md) first, then come back here only if you hit a `.env` / config question |
12
- | Python `cerefox` (any version through v0.5.x) | "What changed" → "Install paths" → "v0.5.3 migrated `.env`" sections below |
13
- | `@cerefox/memory` v0.4.x (npm) | "Upgrading an existing MCP client config" → "v0.5.2 fixed the soft wrapper" → "v0.5.3 migrated `.env`" |
14
- | `@cerefox/memory` v0.5.0 or v0.5.1 (npm) | "v0.5.2 fixed the soft wrapper" + "v0.5.3 migrated `.env`" + "v0.5.4 fixed configure-agent claude-code" |
15
- | `@cerefox/memory` v0.5.2 (npm) | "v0.5.3 migrated `.env`" + "v0.5.4 fixed configure-agent claude-code" |
16
- | `@cerefox/memory` v0.5.3 (npm) | **"v0.5.4 fixed configure-agent claude-code"** — re-run configure-agent |
17
-
18
- > Looking for `migration-v0.4.md`? It's been demoted to a historical
19
- > record (the bin names it documents no longer exist). Everything you
20
- > need to know about the v0.4 → v0.5 transition lives in this file.
21
-
22
- **TL;DR:** the Cerefox CLI is now a TypeScript binary published to npm.
23
- You can keep using the Python CLI through v0.7.x (it just prints a
24
- one-line ⚠ banner now), but the npm path is faster, doesn't need a
25
- local clone, and adds new lifecycle commands (`init`, `doctor`,
26
- `configure-agent`, `self-update`).
27
-
28
- > **Existing v0.4.x users:** your MCP client configs need a one-line
29
- > update (the `cerefox-mcp` bin from v0.4 → v0.5.0 was removed in
30
- > v0.5.1 — it's redundant with `cerefox mcp`). See the
31
- > ["Upgrading an existing MCP client config"](#upgrading-an-existing-mcp-client-config) section below for the exact diff.
32
-
33
- ---
34
-
35
- ## What changed
36
-
37
- ### `cerefox` is now an npm-installable binary
38
-
39
- ```bash
40
- npm install -g @cerefox/memory # or: bun install -g @cerefox/memory
41
- cerefox doctor # callable from any directory
42
- ```
43
-
44
- The Python `cerefox` CLI (installed via `uv sync` in a Cerefox checkout)
45
- keeps working, but now prints a deprecation banner. Removal is v0.8 /
46
- v0.9 — see iter-23 plan / Decision Log Q2 for the schedule.
47
-
48
- ### New lifecycle commands
49
-
50
- | Command | What it does |
51
- |---|---|
52
- | `cerefox init` | Interactive 5-step bootstrap (Supabase URL, key, OpenAI, Postgres URL, identity). Writes `~/.cerefox/.env`, validates credentials, ingests bundled self-docs, optionally wires Claude Code or Claude Desktop. |
53
- | `cerefox doctor` | 9 diagnostic checks (runtime, config, Supabase, OpenAI, schema version, MCP clients, …). |
54
- | `cerefox status` | Fast 3-check subset of `doctor`. |
55
- | `cerefox configure-agent --tool claude-code` | Writes `~/.claude/mcp.json` (or merges) to wire up the `cerefox` MCP server. Phase 1: Claude Code + Claude Desktop. Cursor / Codex / Gemini ship in v0.5.x. |
56
- | `cerefox self-update` (alias `cerefox upgrade`) | Detects installer (bun / npm / yarn / pnpm) and upgrades in place. Also refreshes the bundled-docs ingest. |
57
- | `cerefox sync-self-docs` | Ingests bundled `AGENT_GUIDE.md` + `AGENT_QUICK_REFERENCE.md` + curated `docs/guides/*.md` under the `_cerefox-self-docs` project. Layer 2 of the MCP discoverability story (§10d in the design doc). |
58
-
59
- ### Improved help + tab completion
60
-
61
- ```bash
62
- cerefox --help # commands grouped READS / WRITES / SERVERS / LIFECYCLE / OPS
63
- cerefox completion bash > ~/.cerefox-completion.bash
64
- echo 'source ~/.cerefox-completion.bash' >> ~/.bashrc
65
- ```
66
-
67
- ### Documented exit codes
68
-
69
- | Code | Meaning |
70
- |---|---|
71
- | 0 | Success |
72
- | 1 | User error (bad flag, missing arg, malformed JSON) |
73
- | 2 | System error (Supabase unreachable, RPC failure) |
74
- | 3 | Not found (document / version / project) |
75
-
76
- ---
77
-
78
- ## Install paths
79
-
80
- ### Option A — one-line install (recommended for new machines)
81
-
82
- ```bash
83
- curl -fsSL https://github.com/fstamatelopoulos/cerefox/releases/latest/download/install.sh | sh
84
- ```
85
-
86
- The script detects Bun first, falls back to npm, bootstraps Bun if
87
- neither is available. Then runs `<runtime> install -g @cerefox/memory`.
88
-
89
- ### Option B — direct npm install
90
-
91
- ```bash
92
- npm install -g @cerefox/memory # Node ≥ 20 required
93
- # or
94
- bun install -g @cerefox/memory # faster install + bin start
95
- # or
96
- pnpm add -g @cerefox/memory
97
- yarn global add @cerefox/memory
98
- ```
99
-
100
- ### Option C — keep the Python install (no change required)
101
-
102
- Your existing `uv run cerefox …` keeps working. You'll see a one-line ⚠
103
- banner pointing at the migration path; suppress with
104
- `CEREFOX_NO_DEPRECATION_BANNER=1`.
105
-
106
- ---
107
-
108
- ## What's NOT in v0.5
109
-
110
- Three commands are deliberately Python-only (or deferred) for v0.5:
111
-
112
- - **`cerefox web`** — the TypeScript web server lands in v0.6. For now,
113
- the npm-installed `cerefox web` prints a "use `uv run cerefox web` from
114
- a clone" message and exits 0. The Python web server keeps working.
115
- - **`cerefox reindex`** — depends on the v0.7 TS ingestion pipeline.
116
- Same "use uv" message; exit 0.
117
- - **Schema deploy in `cerefox init`** — needs a Postgres direct
118
- connection that v0.5 doesn't ship. `init` prints the
119
- `uv run python scripts/db_deploy.py` command at the right moment; v0.6
120
- ports the deploy step.
121
-
122
- If your usage hits any of these, keep your Python install around for now.
123
-
124
- ---
125
-
126
- ## Upgrading an existing MCP client config
127
-
128
- The v0.4.x → v0.5.0 config you may have written looked like:
129
-
130
- ```json
131
- {
132
- "mcpServers": {
133
- "cerefox": {
134
- "command": "npx",
135
- "args": ["-y", "--package=@cerefox/memory", "cerefox-mcp"]
136
- }
137
- }
138
- }
139
- ```
140
-
141
- **In v0.5.1 this breaks.** The standalone `cerefox-mcp` bin was removed
142
- in v0.5.1 — it duplicated `cerefox mcp` for no functional gain. Update
143
- the `args` array to invoke the `mcp` subcommand of the main bin
144
- instead:
145
-
146
- ```diff
147
- "args": [
148
- "-y",
149
- "--package=@cerefox/memory",
150
- - "cerefox-mcp"
151
- + "cerefox",
152
- + "mcp"
153
- ]
154
- ```
155
-
156
- The behaviour is identical — same `buildServer()` factory, same 10
157
- MCP tools, same stdio transport. Only the bin name changes.
158
-
159
- If you want `cerefox configure-agent` to rewrite the config for you,
160
- the command is non-destructive: it backs up the existing file to
161
- `<file>.pre-cerefox.bak` and merges. Existing `mcpServers` entries
162
- are preserved.
163
-
164
- ```bash
165
- cerefox configure-agent --tool claude-code --dry-run # preview
166
- cerefox configure-agent --tool claude-code # apply
167
- ```
168
-
169
- ---
170
-
171
- ## v0.5.2 fixed the soft wrapper
172
-
173
- v0.4.0 through v0.5.1 advertised that `cerefox mcp` (the Python CLI's
174
- subcommand, used by configs of the form `uv run --directory /path/to/cerefox cerefox mcp`)
175
- was a "soft wrapper": it would try to delegate to the npm package's
176
- TS MCP server via `npx --no-install --package=@cerefox/memory cerefox`
177
- and fall back to the in-tree Python server otherwise.
178
-
179
- **The probe was unreliable under `uv run`-launched MCP-client contexts.**
180
- `uv run` puts the project's `.venv/bin/` first on PATH. When the npm
181
- cache only has v0.4.x (which doesn't ship a `cerefox` bin name), npx
182
- falls back to PATH and finds `.venv/bin/cerefox` — the Python CLI
183
- itself — making the probe report success. The execvp then PATH-falls
184
- back to the same `.venv/bin/cerefox`, which calls `_run_mcp()` again
185
- → infinite recursion → MCP client times out with "Could not attach
186
- to MCP server cerefox."
187
-
188
- **v0.5.2 stripped the wrapper.** `cerefox mcp` always starts the
189
- in-tree Python MCP server. To use the TS MCP server, configure your
190
- client to invoke it explicitly:
191
-
192
- ```json
193
- "command": "npx",
194
- "args": ["-y", "--package=@cerefox/memory", "cerefox", "mcp"]
195
- ```
196
-
197
- or, if you have `@cerefox/memory` installed globally:
198
-
199
- ```json
200
- "command": "cerefox",
201
- "args": ["mcp"]
202
- ```
203
-
204
- The two paths (Python via `uv run`, TS via `cerefox mcp` on PATH or
205
- via `npx`) are functionally equivalent — same 10 MCP tools, same wire
206
- shapes. Pick whichever fits your environment, but the choice is now
207
- explicit instead of "magic delegation".
208
-
209
- > **Affected configs**: if your Claude Desktop / Claude Code / Cursor
210
- > config invokes `uv run … cerefox mcp` AND you saw "Could not attach
211
- > to MCP server cerefox" after restarting your client on
212
- > @cerefox/memory v0.5.1 or earlier, this is the bug. Upgrade to
213
- > v0.5.2+ (pull `main` and `uv sync`) — the Python MCP server boots
214
- > directly and your existing config works again.
215
-
216
- ---
217
-
218
- ## v0.5.3 migrated `.env` from `<repo>/.env` to `~/.cerefox/.env`
219
-
220
- If you've been using the Python `cerefox` CLI, your `.env` lives in your
221
- repo root (`/path/to/cerefox/.env`). The TS CLI v0.5.2 also read that
222
- file, via a "CWD `.env` wins" precedence inherited from Python. v0.5.3
223
- flips that precedence: **once `~/.cerefox/.env` exists, the TS CLI reads
224
- from there**; the repo file becomes a legacy fallback for Python's
225
- `uv run cerefox …` workflows.
226
-
227
- **You see zero behavior change until you run `cerefox init`.** If your
228
- home dir doesn't have `~/.cerefox/.env`, the TS CLI keeps reading your
229
- existing repo `.env` (legacy dev-mode precedence). No action required.
230
-
231
- When you do run `cerefox init` with a repo `.env` already in place, the
232
- TS CLI offers a three-choice menu:
233
-
234
- ```
235
- ⚠ Found existing config at /path/to/cerefox/.env.
236
-
237
- [c] Copy to /Users/you/.cerefox/.env (recommended)
238
- • TS reads the new home from now on
239
- • Python keeps reading /path/to/cerefox/.env (backward compat)
240
- • Edit ~/.cerefox/.env going forward; the repo .env is legacy
241
-
242
- [u] Use /path/to/cerefox/.env as-is, skip writing anything
243
- • Both TS and Python keep reading the existing file
244
- • Defer the migration
245
-
246
- [f] Fresh start — interactive prompts, write to /Users/you/.cerefox/.env
247
- • Use if the existing file is stale or wrong
248
- ```
249
-
250
- Pick **[c]** for the typical Python → TS upgrade. The TS CLI starts
251
- reading `~/.cerefox/.env`; your remaining Python `uv run cerefox …`
252
- commands keep reading the unchanged repo file. The two files diverge
253
- only if you start editing one of them — keep them in sync (or just edit
254
- `~/.cerefox/.env` and accept that Python uses a frozen snapshot until
255
- v0.9).
256
-
257
- After v0.9 (Python CLI removed), `cerefox doctor` will say "ok" if you
258
- delete the repo file. Until then, `doctor` reports it as
259
- `legacy env … (shadowed by ~/.cerefox/.env)` so you know it's harmless.
260
-
261
- ### Python paths.py precedence (unchanged)
262
-
263
- `src/cerefox/paths.py` keeps the v0.5.2 precedence (CWD `.env` wins).
264
- Your existing `uv run cerefox …` invocations from inside the repo
265
- continue to read the repo file regardless of what's in `~/.cerefox/`.
266
- When this module goes away in v0.9+, the divergence resolves naturally.
267
-
268
- ### `CEREFOX_CONFIG_DIR` is unchanged
269
-
270
- If you have `CEREFOX_CONFIG_DIR` set (e.g. for a non-standard install),
271
- it still wins over both home and repo `.env` files. Init writes there
272
- and skips the migration prompt.
273
-
274
- ---
275
-
276
- ## v0.5.4 fixed `cerefox configure-agent --tool claude-code`
277
-
278
- **If you ran `cerefox configure-agent --tool claude-code` on any version
279
- from v0.5.0 through v0.5.3, Claude Code did not actually pick up the
280
- config.** The writer wrote to `~/.claude/mcp.json` — a path Claude Code
281
- doesn't read. Claude Code's user-scope MCP servers live in
282
- **`~/.claude.json`** (a dot-file in `$HOME`) under the `.mcpServers` key.
283
-
284
- The bug went unnoticed because `cerefox doctor` was scanning the same
285
- wrong path — both surfaces were consistently lying.
286
-
287
- ### What v0.5.4 changed
288
-
289
- - **`configure-agent --tool claude-code`** now shells out to Claude Code's
290
- own `claude mcp add --scope user` CLI. Claude Code manages its own
291
- config schema; delegating is future-proof. Requires the `claude` CLI
292
- on PATH (fair assumption — you're configuring it).
293
- - Before invoking the delegated CLI, the writer takes a defensive backup
294
- of `~/.claude.json` to `~/.claude.json.pre-cerefox.bak`.
295
- - **`cerefox doctor`** now scans `~/.claude.json` for a `mcpServers.cerefox`
296
- entry (not the orphaned `~/.claude/mcp.json` from the bug window).
297
- - **`--tool claude-desktop` is unchanged** — Claude Desktop has no CLI
298
- helper, so its writer remains direct-file-write.
299
-
300
- ### What you need to do
301
-
302
- Anyone who ran `configure-agent --tool claude-code` on v0.5.0–v0.5.3:
303
-
304
- ```bash
305
- # 1. Upgrade
306
- bun update -g @cerefox/memory # or: npm update -g @cerefox/memory
307
-
308
- # 2. (Optional) Remove the orphaned file the buggy versions wrote.
309
- # It does nothing — Claude Code never read it. Safe to delete.
310
- rm -f ~/.claude/mcp.json
311
-
312
- # 3. Re-run configure-agent to write the config at the correct path.
313
- cerefox configure-agent --tool claude-code
314
-
315
- # 4. Verify
316
- claude mcp list # should now show 'cerefox'
317
- cerefox doctor # 'mcp clients' should list 'Claude Code (user)'
318
-
319
- # 5. Start a fresh Claude Code session — the cerefox tools appear.
320
- ```
321
-
322
- Running sessions cache the MCP server list at startup, so an
323
- **already-open Claude Code session won't pick up the new server**.
324
- Open a new session.
325
-
326
- ### `--config-path FILE` override (advanced)
327
-
328
- If you pass `--config-path FILE` explicitly, configure-agent does a
329
- direct-write to FILE instead of shelling out — preserves the v0.5.0–v0.5.3
330
- test path and works for power users who want a specific file location.
331
-
332
- ---
333
-
334
- ## v0.6.0 moved the web server to TypeScript
335
-
336
- **TL;DR**: `cerefox web` from the npm package now boots an in-process
337
- Hono server (TypeScript on Bun) instead of pointing you at
338
- `uv run cerefox web`. Three ingestion endpoints temporarily return
339
- 503; the web UI shows a friendly toast pointing at the working CLI
340
- fallback. Full ingestion support lands in v0.7.
341
-
342
- ### What's new
343
-
344
- - **`cerefox web` works from npm.** No clone, no `uv`. `npm install
345
- -g @cerefox/memory` followed by `cerefox web` boots the local web
346
- UI + JSON API on `http://127.0.0.1:8000/`.
347
- - **React SPA bundled** into `@cerefox/memory`. The web UI is part
348
- of the npm tarball; you get the same UI Python's `uv run cerefox
349
- web` serves, no extra install.
350
- - **Configure-agent grew Phase 2 writers**: `cerefox configure-agent
351
- --tool cursor` / `--tool codex` / `--tool gemini` join the existing
352
- `--tool claude-code` / `--tool claude-desktop`. Codex's config is
353
- TOML (`~/.codex/config.toml`); the rest are JSON.
354
-
355
- ### The 503-ingestion-stubs window
356
-
357
- Three endpoints return 503 with `{error: "Ingestion lands in v0.7",
358
- see: <url>, note: …}`:
359
-
360
- - `POST /api/v1/ingest` (paste)
361
- - `POST /api/v1/ingest/file` (file upload)
362
- - `POST /api/v1/documents/{id}/upload` (replace)
363
-
364
- The web UI detects this and shows a yellow Mantine toast — no scary
365
- error banner. `/documents/{id}/edit` also returns 503 if you try to
366
- change content (it compares SHA-256 hashes against the stored
367
- `content_hash` — title / metadata / project changes work fine).
368
-
369
- ### Working fallbacks during the v0.6 window
370
-
371
- Both fully functional, no behaviour change:
372
-
373
- ```bash
374
- # Option A — npm-installed CLI hits the deployed Edge Function.
375
- cerefox ingest my-notes.md
376
- cerefox ingest-dir docs/
377
-
378
- # Option B — keep using the Python web for ingestion until v0.7.
379
- uv run cerefox web
380
- ```
381
-
382
- v0.7 swaps the 503 stubs for in-process pipeline calls. The toast
383
- just stops firing — no frontend changes, no config changes, no
384
- re-install.
385
-
386
- ### Should I upgrade from v0.5.4 to v0.6.0?
387
-
388
- | Workflow | Recommendation |
389
- |---|---|
390
- | MCP client only (Claude Code, Cursor, etc.) | Yes — Phase 2 writers + faster install matter. No risk. |
391
- | `cerefox` CLI for ingest / search | Yes — same CLI, no API changes. Ingest still works via the Edge Function. |
392
- | Web UI to ingest documents | Optional — wait a few days for v0.7 if ingestion-via-web is your main flow. Or upgrade and use the CLI for ingest until v0.7. |
393
- | `uv run cerefox web` | Keep using it through v0.7; the Python web is unchanged. The deprecation banner lands in v0.7 once the TS web is feature-complete. |
394
-
395
- ### Python web kept through v0.7.x
396
-
397
- `src/cerefox/api/app.py` and `routes_api.py` ship unchanged in v0.6.
398
- The Python web-specific deprecation banner is **deferred to v0.7's
399
- Part 25L** — we won't nudge users away from a fully-working Python
400
- web while the TS web's 3 ingest endpoints are still 503. v0.8 makes
401
- the banner prominent; v0.9 deletes the Python web code.
402
-
403
- ---
404
-
405
- ## v0.7.0 completes the TS migration arc
406
-
407
- **TL;DR**: the 3 ingestion endpoints that returned 503 in v0.6 now
408
- work. `cerefox ingest` and `cerefox ingest-dir` run in-process (no
409
- Edge Function round-trip). `cerefox reindex` (a v0.5 deferred stub)
410
- is a real command. PDF/DOCX support dropped. Python web prints a
411
- deprecation banner. Python MCP server keeps working unchanged.
412
-
413
- ### The 503 toast is gone
414
-
415
- If you saw "Ingestion lands in v0.7 — use `cerefox ingest <file>` from
416
- the CLI for now" anywhere in the web UI during v0.6, that's gone in
417
- v0.7. The 3 ingestion endpoints (`POST /api/v1/ingest`,
418
- `POST /api/v1/ingest/file`, `POST /api/v1/documents/{id}/upload`) now
419
- call the in-process TS pipeline. The frontend's
420
- `V07IngestionDeferredError` toast detector stays in `api/client.ts`
421
- as dead code — no churn there, just stops firing.
422
-
423
- ### CLI gets faster (no EF round-trip)
424
-
425
- `cerefox ingest <file>` and `cerefox ingest-dir <dir>` pre-v0.7 made
426
- an HTTP call to the `cerefox-ingest` Edge Function (Deno on Supabase).
427
- In v0.7+ they run the in-process TS pipeline directly: chunk +
428
- embed + atomic RPC, all in the same Bun/Node process. Faster + no
429
- network egress to Supabase Functions (only to Postgres + OpenAI).
430
-
431
- `cerefox reindex` is no longer a v0.5 stub. It re-embeds chunks via
432
- the same in-process pipeline. Defaults to stale-only (chunks with a
433
- different embedder model recorded); `--all` reindexes everything.
434
- `--batch <n>` controls the batch size. `--document-id <uuid>` scopes
435
- to one doc. `--dry-run` previews.
436
-
437
- ### PDF / DOCX support dropped
438
-
439
- The `src/cerefox/chunking/converters.py` module and its tests are
440
- deleted. The Python CLI's `.pdf` / `.docx` branches now print a clear
441
- "support dropped in v0.7.0" error pointing at pandoc / docling for
442
- client-side conversion. The TS surfaces never had PDF/DOCX support;
443
- no UX change there.
444
-
445
- If you were using the Python CLI to ingest PDFs/DOCXs: convert them
446
- to markdown client-side first (`pandoc input.pdf -o input.md` or
447
- similar), then ingest the .md.
448
-
449
- ### Python web shows a deprecation banner
450
-
451
- `uv run cerefox web` now prints a yellow ⚠ deprecation banner at
452
- startup:
453
-
454
- ```
455
- ⚠ Cerefox Python web server is deprecated as of v0.7.0.
456
- The canonical web UI is `cerefox web` from `@cerefox/memory`
457
- (npm install -g @cerefox/memory). The Python web stays through
458
- v0.7.x and v0.8 as a husk; consider switching now.
459
- See docs/guides/migration-v0.5.md § v0.7 for the migration path.
460
- ```
461
-
462
- The Python web stays through v0.7.x and v0.8 (likely as a husk that
463
- returns 503 on every route in v0.8). v0.9's call on the Python web is
464
- TBD per the iter-26 design pass. Switch to `cerefox web` from npm
465
- when you can — it's been functionally complete since v0.6 + has had
466
- ingestion since v0.7.
467
-
468
- ### Python MCP server stays unchanged
469
-
470
- Per the "Python minimization, not removal" policy locked at iter-24,
471
- the Python MCP server stays fully functional through v0.9+. If you
472
- check out the repo and run `uv run cerefox mcp`, that keeps working
473
- indefinitely. `CerefoxClient` stays in the Python tree for the same
474
- reason — MCP uses it.
475
-
476
- ### Scripts: 3 ported, 2 stay Python
477
-
478
- | Script | Status in v0.7.0 |
479
- |---|---|
480
- | `scripts/db_deploy.py` | Husk; use `bun scripts/db_deploy.ts` |
481
- | `scripts/db_migrate.py` | Husk; use `bun scripts/db_migrate.ts` |
482
- | `scripts/reindex_all.py` | Husk; use `bun scripts/reindex_all.ts` |
483
- | `scripts/backup_create.py` | Stays Python through v0.7.x (port deferred) |
484
- | `scripts/backup_restore.py` | Stays Python through v0.7.x (port deferred) |
485
-
486
- The Postgres client used by `db_deploy.ts` / `db_migrate.ts` is the
487
- `postgres` (Porsager) library — small, well-typed, no native deps.
488
- Cross-runtime (Bun + Node).
489
-
490
- ### Should I upgrade from v0.6.0 to v0.7.0?
491
-
492
- | Workflow | Recommendation |
493
- |---|---|
494
- | Web UI for ingestion | **Yes — that's the whole point.** v0.6 sent you to the CLI for ingest; v0.7 has it in the browser. |
495
- | MCP client only (Claude Code, Cursor, etc.) | Yes — no functional change for you, but you'll get the v0.7 npm cleanup. |
496
- | `cerefox` CLI | Yes — faster ingest paths + working reindex. |
497
- | `uv run cerefox web` (Python) | Optional — banner appears; can ignore for now. v0.8 will make this prominent. |
498
- | `uv run cerefox mcp` (Python) | No-op — Python MCP unchanged. |
499
- | PDF/DOCX ingest via Python CLI | Convert to markdown client-side before upgrading. |
500
-
501
- ---
502
-
503
- ## v0.8.0 — production-ready install (redeploy required)
504
-
505
- > **Upgrading to v0.8 changes the server side. After upgrading the client,
506
- > redeploy your Supabase server** so the new client↔server compatibility
507
- > checks pass:
508
- >
509
- > ```bash
510
- > cerefox deploy-server # schema + RPCs + all 9 Edge Functions
511
- > # or, if your schema is already current:
512
- > cerefox deploy-server --functions-only
513
- > ```
514
-
515
- **What changed for you:**
516
-
517
- - **No more repo clone to deploy.** `@cerefox/memory` now bundles the
518
- schema, RPCs, and Edge Functions. `cerefox deploy-server` stands up (or
519
- updates) the whole server side. It runs a pre-flight first and tells you
520
- exactly what's missing (Node/npx, the Supabase CLI, `npx supabase login`
521
- + `link`, env vars, the OpenAI secret) — fix and re-run; it's idempotent.
522
- - **`cerefox init`** now offers to run `deploy-server` automatically when it
523
- detects no schema (or a schema below the minimum). Existing, up-to-date
524
- installs see no new prompt.
525
- - **Version visibility.** Every Edge Function answers `GET <ef>/version`;
526
- `cerefox-mcp` aggregates them (`GET /version?peers=true`). `cerefox
527
- doctor` gains an "edge functions" row that flags drift. Until you redeploy
528
- the v0.8 functions, doctor shows them as "predate v0.8" (non-blocking).
529
- - **Background web server.** `cerefox web start` / `stop` / `status` run the
530
- web app as a detached daemon (logs to `~/.cerefox/web.log`). Plain
531
- `cerefox web` still runs in the foreground.
532
- - **`cerefox web` will refuse to start** against a server older than the
533
- client's minimum — with a message telling you to redeploy. Compatible or
534
- unknown (pre-0.8) servers boot normally.
535
- - **New export script.** `bun scripts/cerefox_export.ts <folder>` dumps all
536
- documents to markdown files (one folder per project) — a quick local copy
537
- independent of the JSON `backup_create`/`restore` round-trip.
538
-
539
- **Nothing destructive happens automatically.** `deploy-server` prompts
540
- before deploying, and `--reset` (which drops tables) requires an explicit
541
- extra confirmation. Your documents are untouched by a normal
542
- `--functions-only` redeploy.
543
-
544
- | If you… | Do this |
545
- |---|---|
546
- | Installed via npm and have a working Supabase | `cerefox deploy-server --functions-only` after upgrading, then `cerefox doctor` |
547
- | Are setting up fresh | `cerefox init` → accept the deploy prompt (or run `cerefox deploy-server`) |
548
- | Run `cerefox web` at login | Switch to `cerefox web start` for background mode |
549
- | Use the Python MCP server | No change — it's not deprecated and needs no redeploy |
550
-
551
- ---
552
-
553
- ## Known gotchas
554
-
555
- ### `npx` from inside an npm workspace
556
-
557
- The v0.4 gotcha still applies: running `npx -y --package=@cerefox/memory
558
- cerefox mcp` from inside another npm workspace can fail with "command
559
- not found." Use `bunx` instead, run from outside any workspace, or
560
- `npm install -g`.
561
-
562
- Doesn't affect MCP-client launches (the client controls the launched
563
- process's CWD).
564
-
565
- ### Schema-version banner in the web UI
566
-
567
- If you upgrade `@cerefox/memory` but haven't redeployed the schema, the
568
- v0.3.0+ schema-version-mismatch banner fires. Run
569
- `uv run python scripts/db_deploy.py` to sync.
570
-
571
- This isn't unique to v0.5 — it's the same banner v0.3.0 introduced.
572
-
573
- ---
574
-
575
- ## Where to go next
576
-
577
- - `cerefox docs --list` — bundled docs, offline.
578
- - `cerefox doctor` — see what's missing / configured.
579
- - [`docs/guides/connect-agents.md`](connect-agents.md) — full MCP client guide.
580
- - [`docs/guides/cli.md`](cli.md) — every command and flag, in detail.
581
- - [`CHANGELOG.md`](../../CHANGELOG.md) — what shipped in v0.5.0.