@cerefox/memory 1.1.0-beta.3 → 1.1.0-beta.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.
@@ -15,7 +15,7 @@
15
15
  href="https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700&display=swap"
16
16
  />
17
17
  <title>Cerefox</title>
18
- <script type="module" crossorigin src="/app/assets/index-BLqrpbNz.js"></script>
18
+ <script type="module" crossorigin src="/app/assets/index-Co28kX04.js"></script>
19
19
  <link rel="stylesheet" crossorigin href="/app/assets/index-C1JXZA9m.css">
20
20
  </head>
21
21
  <body>
@@ -265,7 +265,7 @@ cerefox document get <document-id> --version-id <version-id>
265
265
  | Variable | Default | Description |
266
266
  |----------|---------|-------------|
267
267
  | `CEREFOX_BACKUP_DIR` | `~/.cerefox/backups` | Local directory where file system backups are stored. Created automatically if it doesn't exist. **Use an absolute path** — a relative value (such as the pre-v0.3.0 `./backups`) resolves against the current working directory, so snapshots scatter depending on where you run the command; `backup create` warns when it sees one. Does **not** follow `CEREFOX_CONFIG_DIR`, so a second environment must set it explicitly. |
268
- | `CEREFOX_ENV_LABEL` | _(unset)_ | Names a non-production environment (e.g. `staging`). Purely cosmetic and inert when unset. When set: the web UI shows a banner on every page, `doctor` appends `[LABEL]` to its config line, `backup create` puts the label in the snapshot filename and payload, and `backup restore` warns when a snapshot's environment differs from the target's. See [`staging-env.md`](staging-env.md). |
268
+ | `CEREFOX_ENV_LABEL` | _(unset)_ | Names a non-production environment (e.g. `staging`). Purely cosmetic and inert when unset. When set: the web UI shows a banner on every page, `doctor` shows `[LABEL]` on its title line, `backup create` puts the label in the snapshot filename and payload, and `backup restore` warns when a snapshot's environment differs from the target's. See [`staging-env.md`](staging-env.md). |
269
269
  | `CEREFOX_VERSION_RETENTION_HOURS` | `48` | How long to retain archived document versions (hours). The most recent version is always kept regardless of this setting. |
270
270
 
271
271
  ---
@@ -367,8 +367,12 @@ enable it.
367
367
 
368
368
  ### How it works
369
369
 
370
- A `cerefox_config` table in Postgres stores runtime configuration as key-value pairs. The only
371
- key currently in use is `usage_tracking_enabled`. Every usage logging call goes through the
370
+ A `cerefox_config` table in Postgres stores runtime configuration as key-value
371
+ pairs. The allow-list lives in the `cerefox_set_config` RPC; run `cerefox config
372
+ list` (or open **Settings** in the web UI) for the current set — today that is
373
+ usage tracking, the two requestor-identity keys, three retrieval tunables, and
374
+ `relations_enabled`. Usage logging is the illustrative case below: every logging
375
+ call goes through the
372
376
  `cerefox_log_usage` RPC, which checks this config value first:
373
377
 
374
378
  - If `usage_tracking_enabled` is `"true"` -- the RPC inserts a row into `cerefox_usage_log`
@@ -398,7 +402,30 @@ cerefox config set usage_tracking_enabled false
398
402
  cerefox config get usage_tracking_enabled
399
403
  ```
400
404
 
401
- The canonical path is the CLI (`cerefox config set <key> <value>` / `cerefox config get <key>`) above; it works regardless of whether the web server is running. The web UI's JSON API exposes the same config under `/api/v1/config/<key>` if you need programmatic access while `cerefox web` is running.
405
+ **Via the web UI:** `cerefox web` → **Settings**. Every runtime key is listed
406
+ with its description, current value and default, grouped into Retrieval,
407
+ Governance and Features.
408
+
409
+ Two things the page does deliberately:
410
+
411
+ - **Keys that change what agents see require confirmation.** Turning on
412
+ `relations_enabled` adds four tools to every connected agent's tool list, and
413
+ `require_requestor_identity` starts rejecting agents that don't identify
414
+ themselves. Neither is a bare toggle — you get a dialog naming the
415
+ consequence first.
416
+ - **Local overrides are shown, read-only.** If the server has
417
+ `CEREFOX_MIN_SEARCH_SCORE` (or the `..._TERM_COVERAGE` / `..._SEARCH_ALPHA`
418
+ equivalents) in its environment, that value beats the stored one *on that
419
+ machine*, and the row says so. Without this the page would report a value the
420
+ server isn't using. The page never edits `.env` — that file holds your
421
+ service-role key, OpenAI key and database password, and the server only reads
422
+ it at boot.
423
+
424
+ The CLI (`cerefox config set <key> <value>` / `cerefox config get <key>`) remains
425
+ the canonical path and works whether or not the web server is running. Both go
426
+ through the same `cerefox_set_config` RPC, so they cannot disagree.
427
+ `/api/v1/config` (list) and `/api/v1/config/<key>` (read/write) expose the same
428
+ data for programmatic access while `cerefox web` runs.
402
429
 
403
430
  ### What gets logged
404
431
 
@@ -49,6 +49,24 @@ in — even after the current version has moved to format 2.
49
49
  > existing chunk rows; it never re-chunks, so it cannot advance the stored
50
50
  > format. Earlier versions of this guide said otherwise (#164).
51
51
 
52
+ > **Large stores: batch it.** Converting a few hundred documents or more is a
53
+ > heavy bulk rewrite — each one is re-chunked, its previous chunks archived as
54
+ > a version snapshot, and new rows inserted. A contributor reindexing a
55
+ > ~1,300-document store on Supabase depleted the project's **Disk IO Budget**
56
+ > and got a warning email: slower responses, CPU climbing on IO wait, and
57
+ > potentially a briefly unresponsive instance (it recovers once the budget
58
+ > refills). Nothing is corrupted, but prefer `--limit 200` in stages during a
59
+ > quiet period. The command warns above 500 documents and is resumable.
60
+
61
+ > **Requires v1.1.0-beta.4 or later.** On **v1.0.7 through v1.1.0-beta.3**
62
+ > `migrate-format` printed `Converted N` while converting nothing: it
63
+ > re-ingests byte-identical content by design, and the pipeline answered an
64
+ > unchanged content hash with a metadata-only update — no re-chunk, so no
65
+ > format advance. If you ran it on one of those versions, the documents are
66
+ > untouched and still on format 1 (no data was harmed and no embedding spend
67
+ > was incurred); re-run it on a current build. Check with `cerefox doctor`,
68
+ > which reports the real count.
69
+
52
70
  `cerefox doctor` reports how many documents still use the legacy format — purely
53
71
  informational, never a failure. A fresh install shows zero.
54
72
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cerefox/memory",
3
- "version": "1.1.0-beta.3",
3
+ "version": "1.1.0-beta.5",
4
4
  "description": "Cerefox — 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",