@cerefox/memory 0.9.4 → 0.9.5
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/README.md +4 -4
- package/dist/bin/cerefox.js +28610 -570
- package/dist/frontend/assets/{index-D0zn7Zv2.js → index-BHVfMLlE.js} +29 -29
- package/dist/frontend/assets/{index-D0zn7Zv2.js.map → index-BHVfMLlE.js.map} +1 -1
- package/dist/frontend/index.html +1 -1
- package/docs/guides/cli.md +1 -1
- package/docs/guides/connect-agents.md +3 -3
- package/docs/guides/quickstart.md +2 -2
- package/docs/guides/upgrading.md +69 -311
- package/package.json +2 -1
- package/docs/guides/migration-v0.5.md +0 -581
|
@@ -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.
|