Status: open · Priority: P2 · Effort: S–M (~1 week measure + decision)
Motivator: Body search requires
--with-fts/fts5: truetoday. Agents miss content matches unless configured. Default-on improves discoverability but may inflate.codemap/index.dbsize and index time.Roadmap: § Floors — Full-text search default-on · § Agent & indexing ops — P2
| # | Decision | Source |
|---|---|---|
| L.1 | Measure before flipping default — benchmark 3 fixture sizes for index time + DB bytes with/without FTS. | Empirical gate |
| L.2 | If adopted: change config.ts default fts5: true for new projects only; existing configs unchanged. |
No silent behavior change |
| L.3 | --with-fts CLI flag overrides config; config fts5: false opts out (no --no-fts flag today). |
Explicit escape hatch |
| L.4 | Document size tax in README + packaging.md. | Transparency |
- Fixtures: codemap self-index, medium TS app (~500 files), large OSS snapshot (public, cached in CI)
- Metrics:
index.dbbytes, full index wall ms, FTS populate phase ms - Threshold proposal: if median size increase <40% and index increase <15%, recommend default-on
- Record results in
docs/benchmark.md§ FTS size tax
- Update
codemapUserConfigSchemadefaultfts5: true - Update README quickstart to mention opt-out
- Ensure
ensureStateConfigdoesn't overwrite user false - Golden tests unchanged (FTS-specific recipes already gated)
- Benchmark table published with decision rationale
- If default-on: new init gets FTS without extra flags
- If stay opt-in: document why with numbers
- Synergy with field-qualified
show --query/snippet --query(agents.md) when FTS joins symbol filters
Plan closes with Adopt or Defer header update — no perpetual open state.