Skip to content

docs: fix drift in System Overview - #312

Draft
jack-arturo wants to merge 1 commit into
mainfrom
docs/audit-architecture-overview-20260818
Draft

docs: fix drift in System Overview#312
jack-arturo wants to merge 1 commit into
mainfrom
docs/audit-architecture-overview-20260818

Conversation

@jack-arturo

Copy link
Copy Markdown
Member

Routine docs-accuracy audit. First review of this page — no prior review state existed for architecture/overview.

Claim Current state Fix Evidence
Source note lists automem/api/ blueprints as memory, recall, graph, admin, health, enrichment, consolidation, viewer The package also ships entity.py, backup.py, and stream.py blueprints Added the three missing modules to the list automem@42ba8b6:automem/api/entity.py#L184, automem/api/backup.py#L30, automem/api/stream.py
"Graph Store Module … automem/stores/graph_store.py … Key functions: _build_graph_tag_predicate, _serialize_node, _summarize_relation_node" Only _build_graph_tag_predicate is in graph_store.py. _serialize_node and _summarize_relation_node are defined in automem/utils/graph.py; the latter's parameter is data, not rel Split the list, attributing the two serializers to automem/utils/graph.py and correcting the parameter name automem@42ba8b6:automem/stores/graph_store.py#L4, automem/utils/graph.py#L8, #L23
"Each worker implements retry logic with exponential backoff"; Enrichment backoff 5s, 10s, 15s The enrichment worker sleeps a flat enrichment_failure_backoff_seconds (ENRICHMENT_FAILURE_BACKOFF_SECONDS, default 5) before re-enqueueing — the value never scales with attempt count Heading changed to "bounded attempt count"; the Backoff cell now names the constant and its default automem@42ba8b6:automem/enrichment/runtime_worker.py#L149-L151, automem/config.py#L111, #L107
Config categories: ENRICHMENT_* (12 variables), CONSOLIDATION_* (15), SEARCH_WEIGHT_* (8) 7, 18, and 11 respectively (counted as distinct env-var names read anywhere under automem/ + app.py) Counts corrected automem@42ba8b6:automem/config.py#L107-L113, #L473-L482, #L580
Config loading priority: env vars → ~/.config/automem/.env → project .env → defaults config.py calls load_dotenv() (project .env) before load_dotenv(~/.config/automem/.env), and load_dotenv does not override names already set — so the project file actually outranks the user-level one Order 2 and 3 swapped, with a sentence explaining why automem@42ba8b6:automem/config.py#L10-L11

Verified against: verygoodplugins/automem@42ba8b6

Checked and found accurate, left unchanged: every path in the "Key Initialization Functions" table; all ten scoring weights and their defaults; the ServiceState worker/lock/tracking-set field names; the 14 relationship types (11 authorable + 3 system); the admin-token table for /admin/reembed, /enrichment/reprocess, /consolidate, /consolidate/status; the five embedding provider modules; the embedding batch accumulator's 20-item / 2s defaults (EMBEDDING_BATCH_SIZE, EMBEDDING_BATCH_TIMEOUT_SECONDS in app.py); the mcp-sse-server/server.js port 8080 node.

Questions

  • The Service Topology diagram shows the FalkorDB volume at /var/lib/falkordb/data. That matches docs/RAILWAY_DEPLOYMENT.md in the automem repo (the diagram is Railway-scoped), but docker-compose.yml uses /data for local Docker. Left as-is since the diagram is explicitly a Railway topology — flagging because the same string was previously corrected on the Docker Deployment page and the two pages now disagree by design.
  • The heading says "10-Component Hybrid Scoring" and the table lists ten weights, but there are eleven SEARCH_WEIGHT_* variables. SEARCH_WEIGHT_TEMPORAL only applies during the optional recency_bias re-rank, so excluding it from the ten looks deliberate — not touched.

Unverified

None — every code-anchored claim on this page resolved to current source.

Follow-ups

  • The Admin Endpoints table covers four routes; POST /admin/sync, the automem/api/backup.py routes, and two automem/api/entity.py routes also gate on require_admin_token. The table does not claim to be exhaustive, so this was left alone rather than expanded.
  • Source-note permalinks on this page are pinned to automem@4b5eaaf and automem@ed36b98. They still resolve, and only links actually touched by this PR were re-pinned; a wholesale refresh to 42ba8b6 would be a separate, larger diff.

Generated by Claude Code

- list all 11 api/ route blueprints (entity, backup, stream were missing)
- _serialize_node/_summarize_relation_node live in automem/utils/graph.py
- enrichment retry uses a flat backoff, not 5s/10s/15s exponential
- correct ENRICHMENT_*/CONSOLIDATION_*/SEARCH_WEIGHT_* variable counts
- correct .env load precedence (project .env is loaded first, so it wins)

Verified against verygoodplugins/automem@42ba8b6

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tnorev9PMn8gL7uTyZzege
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying automem-website with  Cloudflare Pages  Cloudflare Pages

Latest commit: 272449d
Status: ✅  Deploy successful!
Preview URL: https://0054864a.automem-website.pages.dev
Branch Preview URL: https://docs-audit-architecture-over-c4u8.automem-website.pages.dev

View logs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants