v2.10.0
v2.10.0 — 2026-06-07
Added — code_graph docstring-presence signal (memex#34)
memex stays EXTRACTOR-EXTERNAL — it does NO source/AST parsing to derive
docstrings. This release adds forward-compatible storage + documents the
limitation; it does not (and must not) compute docstring presence itself.
- Schema (
db/code_graph.sql). Added a NULLABLEhas_docstring INTEGER
column to thenodestable (values1/0/ NULL). Fresh installs get it
via the CREATE. - Additive migration (
scripts/install.py).CREATE TABLE IF NOT EXISTS
cannot add a column to an existingnodestable, so the code_graph
additive-reapply path now runs a GUARDEDALTER TABLE nodes ADD COLUMN has_docstring INTEGER— it readsPRAGMA table_info(nodes)and only adds the
column when absent, re-checking on every call (idempotent, no data loss on
re-run). Pre-2.10 stores (the real one already holds atelier+kaizen+memex
rows) migrate in place; existing rows read NULL. - Ingest passthrough (
scripts/code_graph.py).ingest_graph/
ingest_fragmentnow pass through each graphify node's optional
has_docstring: missing /None→ NULL, explicit0/False→0, any
other truthy →1. graphify does NOT emit it today, so re-ingesting current
graphs stores NULL everywhere and preserves EXACT prior behavior (counts +
the run-66 idempotency guarantee unchanged; the upsert updateshas_docstring
on conflict so values stay stable across re-ingest). - Query inclusion.
where_is,module_map,neighbors, and the node-row
results ofcallers/dependenciesnow surfacehas_docstringon returned
rows. Convention: the key is ALWAYS present; its value isNonewhen NULL. - Documented limitation. NULL means "extractor did not report" (UNKNOWN),
NOT "no docstring" — so there is deliberately NO "find undocumented" query.
Therationale_foredge relation is NOT a docstring proxy (it is
comment-derived# NOTE/# WHY, body-line-keyed, not the def line — using
it as one caused false positives in a real run). Caveats added to
internal/codegraph/query/SKILL.md,internal/codegraph/ingest/SKILL.md,
db/code_graph.sql, and thescripts/code_graph.pymodule docstring.