You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: bring docs up to date with recently merged features (#436)
- ENGRAM_HTTP_TOKEN: document optional Bearer auth for local HTTP server
(requireAuth middleware, protected routes, constant-time compare,
zero-config default when unset)
- scope=personal cross-project: document that mem_search and mem_context
clear the project filter when scope=personal without explicit project
- global scope: add 'global' to every scope enum in DOCS.md, ARCHITECTURE.md,
and HTTP API docs
- ENGRAM_TIMEZONE: document IANA timezone for TUI/dashboard display
- engram delete --hard: add row to CLI reference tables in README.md and
ARCHITECTURE.md (already in printUsage)
- TUI 'c' copy: document copy-to-clipboard (OSC 52) in DOCS.md Navigation
and README.md Terminal UI sections
- ENGRAM_CLOUD_ALLOWED_PROJECTS '*' wildcard: document in DOCS.md cloud
env table, README.md cloud section, and ARCHITECTURE.md
- Pi npmCommand mise pinning: document ensurePiNpmCommand auto-pin behavior
in plugin/pi/README.md and docs/AGENT-SETUP.md
- Prior debt: expand DOCS.md env table from 3 rows to full list synced with
printUsage; add doctor, conflicts, delete, projects prune to CLI reference
tables in README.md and ARCHITECTURE.md; sync printUsage env block
(add ENGRAM_HTTP_TOKEN, ENGRAM_TIMEZONE, ENGRAM_AGENT_CLI,
ENGRAM_CLOUD_AUTOSYNC, ENGRAM_CLOUD_SERVER; fix indentation)
Closes#435
|`ENGRAM_DATA_DIR`| Override data directory |`~/.engram`|
459
-
|`ENGRAM_PORT`| Override HTTP server port |`7437`|
460
-
|`ENGRAM_PROJECT`| Default project for `engram serve``GET /sync/status` when no `project` query param is supplied. When unset, cwd detection is used as the fallback. | cwd-detected project |
|`ENGRAM_DATA_DIR`| Override data directory |`~/.engram`|
459
+
|`ENGRAM_PORT`| Override HTTP server port |`7437`|
460
+
|`ENGRAM_PROJECT`| Default project for `engram serve``GET /sync/status` when no `project` query param is supplied. When unset, cwd detection is used as the fallback. | cwd-detected project |
461
+
|`ENGRAM_HTTP_TOKEN`| Optional Bearer auth for the local HTTP server. When set, the following routes require `Authorization: Bearer <token>`: `DELETE /sessions/{id}`, `DELETE /observations/{id}`, `DELETE /prompts/{id}`, `GET /export`, `POST /import`, `POST /projects/migrate`. Comparison is constant-time. Token is read at request time (no restart needed). When unset, all routes are open (zero-config default). | (unset — open) |
462
+
|`ENGRAM_TIMEZONE`| Timezone for timestamp display in the TUI and cloud dashboard. Accepts any IANA zone name (e.g. `America/New_York`, `Europe/Berlin`). Falls back to system local time when unset or invalid. | system local |
463
+
|`ENGRAM_AGENT_CLI`| LLM runner name used by `engram conflicts scan --semantic` and the HTTP `/conflicts/scan` endpoint. Accepted values: `claude`, `opencode`. | (unset) |
464
+
|`ENGRAM_CLOUD_AUTOSYNC`| Set to `1` to enable background autosync. Requires `ENGRAM_CLOUD_TOKEN` and `ENGRAM_CLOUD_SERVER` to also be set. | (unset — disabled) |
465
+
|`ENGRAM_CLOUD_SERVER`| Cloud server URL used by the autosync manager and `engram sync --cloud`. | (unset) |
466
+
|`ENGRAM_DATABASE_URL`| Postgres DSN for `engram cloud serve`. | (unset) |
467
+
|`ENGRAM_CLOUD_HOST`| Bind host for `engram cloud serve`. |`127.0.0.1`|
468
+
|`ENGRAM_CLOUD_MAX_PUSH_BYTES`| Max cloud push payload bytes. |`8388608`|
|`ENGRAM_CLOUD_INSECURE_NO_AUTH`| Set to `1` for local insecure cloud serve (no auth). Cannot be combined with `ENGRAM_CLOUD_TOKEN`. | (unset) |
471
+
|`ENGRAM_CLOUD_ALLOWED_PROJECTS`| Comma-separated project allowlist enforced by `engram cloud serve`. Required in both token-auth and insecure modes. Use `*` to allow all projects (dev/internal deploys) — bypasses per-project name enforcement while still requiring a non-empty project on each request. | (unset) |
472
+
|`ENGRAM_JWT_SECRET`| Required in authenticated cloud serve mode. Must be explicitly set to a non-default value. | (unset) |
473
+
|`ENGRAM_CLOUD_ADMIN`| Optional admin-only dashboard token in authenticated cloud serve mode. Ignored/rejected in insecure mode. | (unset) |
|`ENGRAM_CLOUD_ALLOWED_PROJECTS`| yes | Comma-separated allowlist; always required (authenticated + insecure modes). Use `*` to allow all projects (dev/internal deploys) — bypasses per-project name enforcement while still requiring a non-empty project on each request.|
|`ENGRAM_JWT_SECRET`| yes (authenticated mode) | Must be explicitly set and non-default when token mode is enabled |
555
568
|`ENGRAM_CLOUD_INSECURE_NO_AUTH`| no | Set to `1` only for local insecure mode; cannot be combined with `ENGRAM_CLOUD_TOKEN`|
@@ -762,6 +775,8 @@ Search persistent memory across all sessions. Supports FTS5 full-text search wit
762
775
763
776
Set `all_projects: true` to search across every project instead of the resolved one. This bypasses project detection entirely and ignores the `project` argument, so an agent can recall a decision logged elsewhere without knowing the project key. The response envelope reports `project_source: "all_projects"` and an empty `project` to reflect the cross-project scope.
764
777
778
+
Scope values accepted by the `scope` parameter: `project` (default), `personal`, `global`. When `scope: personal` is passed without an explicit `project` override, the project filter is cleared and personal observations are searched across all projects (cross-project personal scope).
779
+
765
780
When an observation has judged relations in `memory_relations`, the result entry includes annotation lines immediately after the title/content block:
766
781
767
782
```
@@ -781,7 +796,7 @@ Save structured observations. The tool description teaches agents the format:
-**topic_key**: optional canonical topic id (e.g. `architecture/auth-model`) used to upsert evolving memories
786
801
-**capture_prompt**: optional boolean, default `true`; when current prompt context is available in the same MCP process for the same project/session, Engram best-effort records it alongside the observation. If that process-local context is unavailable or prompt capture fails, `mem_save` still succeeds. Automated pipeline saves such as SDD artifacts should pass `false`.
787
802
-**content**: Structured with `**What**`, `**Why**`, `**Where**`, `**Learned**`; required unless the legacy `observation` alias is provided
@@ -811,6 +826,8 @@ When called in the same MCP process, this also feeds process-local current promp
811
826
812
827
Get recent memory context from previous sessions — shows sessions, prompts, and observations, with optional scope filtering for observations.
813
828
829
+
Scope values accepted by the `scope` parameter: `project` (default), `personal`, `global`. When `scope: personal` is passed without an explicit `project` override, the project filter is cleared and personal observations are returned across all projects (cross-project personal scope).
830
+
814
831
### mem_stats
815
832
816
833
Show memory system statistics — sessions, observations, prompts, projects.
@@ -919,7 +936,7 @@ Format for `mem_save`:
919
936
920
937
-**title**: Verb + what — short, searchable (e.g. "Fixed N+1 query in UserList", "Chose Zustand over Redux")
Cloud mode is always project-scoped (`--project` is required; `engram sync --cloud --all` is intentionally blocked).
140
+
`ENGRAM_CLOUD_ALLOWED_PROJECTS` is required for `engram cloud serve` in both token-auth and insecure modes. Set it to `*` to allow all projects (useful for dev/internal deploys) — this bypasses per-project name enforcement while still requiring a non-empty project on each request.
140
141
Known repairable cloud sync/upsert/canonicalization failures keep the original error visible and recommend the explicit `doctor`/`repair` flow below; Engram never auto-applies repair from sync or autosync.
141
142
For blocked cloud sync, `transport_failed`, or legacy session directory repair, see [Engram Cloud Troubleshooting](docs/engram-cloud/troubleshooting.md).
142
143
If cloud sync stays blocked after `doctor`/`repair`, download the rescue helper and run the recommended exported-row repair:
@@ -306,19 +307,35 @@ Your production engram is fully untouched throughout.
306
307
|`engram tui`| Launch terminal UI |
307
308
|`engram search <query>`| Search memories |
308
309
|`engram save <title> <msg>`| Save a memory |
310
+
|`engram delete <obs_id>`| Delete an observation (soft by default; `--hard` removes permanently) |
|`ENGRAM_DATA_DIR`| Override data directory |`~/.engram`|
331
+
|`ENGRAM_PORT`| Override HTTP server port |`7437`|
332
+
|`ENGRAM_HTTP_TOKEN`| Optional Bearer auth for local HTTP server. When set, destructive and export routes require `Authorization: Bearer <token>`. Unset = open (zero-config default). | (unset) |
333
+
|`ENGRAM_TIMEZONE`| Timezone for timestamp display in TUI and cloud dashboard (e.g. `America/New_York`). Falls back to system local when unset or invalid. | system local |
334
+
|`ENGRAM_CLOUD_AUTOSYNC`| Set to `1` to enable background autosync (also requires `ENGRAM_CLOUD_TOKEN` + `ENGRAM_CLOUD_SERVER`). | (unset) |
335
+
|`ENGRAM_CLOUD_ALLOWED_PROJECTS`| Comma-separated project allowlist for `engram cloud serve`. Use `*` to allow all projects. | (unset) |
336
+
337
+
Full environment variable reference → [DOCS.md#environment-variables](DOCS.md#environment-variables)
0 commit comments