v0.3.0
Minor Changes
- #23
ebd4c34Thanks @SutuSebastian! - Agent-friendly CLI surface plus a schema v3 bump that tightensNOT NULLinvariants. Existing.codemap.dbfiles auto-rebuild on first open.- New:
codemap validate [--json] [paths...]— diffs the on-disk SHA-256 of indexed files againstfiles.content_hashand prints stale / missing / unindexed rows. Lets agents skip re-reads they don’t need; exits1on any drift (git-status semantics) - New:
codemap context [--compact] [--for "<intent>"]— emits a stable JSON envelope (project metadata, top hubs, recent markers, recipe catalog) for any agent or editor that wants the index in one cheap shot.--forruns lightweight intent classification (refactor / debug / test / feature / explore / other) and returns matched recipe ids plus a hint - New:
codemap --performanceflag — prints a per-phase timing breakdown (collect / parse / insert / index_create) and the top-10 slowest files by parse time during full rebuilds, for triaging giant or pathological inputs - New:
-rshort alias forcodemap query --recipe+ cleaner organizedcodemap query --help(sectioned flags, dynamic recipe-id padding, examples for both forms) - New recipes:
deprecated-symbols(@deprecatedJSDoc tag scan),visibility-tags(@internal/@private/@alpha/@beta),files-hashes(powersvalidate),barrel-files(top files by export count) - Friendlier no-
.codemap.dberror:no such table: <X>now rewrites to an actionable hint pointing atcodemap/codemap --full, on both the JSON and human paths - Public type surface: new
IndexPerformanceReport;IndexRunStats.performance?field; per-field JSDoc coverage onIndexResult,IndexRunStats,ResolvedCodemapConfig, alldb.tsrow interfaces (FileRow,SymbolRow,ImportRow,ExportRow,ComponentRow,DependencyRow,MarkerRow,CssVariableRow,CssClassRow,CssKeyframeRow,CallRow,TypeMemberRow), andParsedFile - Documentation: README now leads with a “What you get” Grep/Read vs Codemap capability table and a “Daily commands” stripe;
docs/why-codemap.mdadds a “What Codemap is not” anti-pitch section and a scenario-keyed token-savings table (single lookup → 50-turn session) replacing the earlier hand-wave - Stricter lint baseline: enabled
prefer-const,consistent-type-specifier-style,consistent-type-definitions,no-confusing-non-null-assertion,no-unnecessary-{boolean-literal-compare,template-expression,type-assertion},prefer-{includes,nullish-coalescing,optional-chain}, andunicorn/switch-case-braces - Schema v3 — tighter
NOT NULLinvariants: every column whoseRow-interface type was non-nullable is nowNOT NULLin the SQLite DDL (files.size/line_count/language/last_modified/indexed_at,symbols.line_start/line_end/signature/is_exported/is_default_export,imports.specifiers/is_type_only/line_number,exports.kind/is_default,components.hooks_used/is_default_export,markers.line_number/content,css_variables.scope/line_number,css_classes.is_module/line_number,css_keyframes.line_number,type_members.is_optional/is_readonly). Existing v2 databases auto-rebuild viacreateSchema()’s version-mismatch detector — no manual action needed
- New: