|
1 | 1 | # @stainless-code/codemap |
2 | 2 |
|
| 3 | +## 0.1.7 |
| 4 | + |
| 5 | +### Patch Changes |
| 6 | + |
| 7 | +- [#13](https://github.com/stainless-code/codemap/pull/13) [`13a2c14`](https://github.com/stainless-code/codemap/commit/13a2c14daa0dc555fe6dab7d318d2ccd8fdb32de) Thanks [@SutuSebastian](https://github.com/SutuSebastian)! - Replace `fast-glob` with `tinyglobby` for Node include globs. Smaller dependency footprint; `expandDirectories: false` keeps matching aligned with the previous behavior. |
| 8 | + |
3 | 9 | ## 0.1.6 |
4 | 10 |
|
5 | 11 | ### Patch Changes |
|
19 | 25 | ### Patch Changes |
20 | 26 |
|
21 | 27 | - [#8](https://github.com/stainless-code/codemap/pull/8) [`889ed5b`](https://github.com/stainless-code/codemap/commit/889ed5b695823e9a57f133c9643af9dbb3e89236) Thanks [@SutuSebastian](https://github.com/SutuSebastian)! - **Query CLI** |
| 28 | + |
22 | 29 | - **`codemap query --json`**: print a JSON array of result rows to stdout (and **`{"error":"…"}`** on SQL errors) for agents and automation. Document that the query subcommand does **not** cap rows — use SQL **`LIMIT`** for bounded results. Update bundled agent rule and skill with **`--json`** preference, verbatim structural answers, and generic SQL recipes (fan-out + sample targets). |
23 | 30 |
|
24 | 31 | - **`codemap query --recipe <id>`** for bundled read-only SQL so agents can run common structural queries without embedding SQL on the command line. **`--json`** works with recipes the same way as ad-hoc SQL. Bundled ids include dependency **`fan-out`** / **`fan-out-sample`** / **`fan-out-sample-json`** (JSON1 **`json_group_array`**) / **`fan-in`**, index **`index-summary`**, **`files-largest`**, React **`components-by-hooks`** (comma-based hook count, no JSON1), and **`markers-by-kind`**. The benchmark suite uses the **`fan-out`** recipe SQL for an indexed-path scenario; docs clarify that recipes add no extra query cost vs pasting the same SQL. |
25 | 32 |
|
26 | 33 | - **Recipe discovery (no index / DB):** **`codemap query --recipes-json`** prints all bundled recipes (**`id`**, **`description`**, **`sql`**) as JSON. **`codemap query --print-sql <id>`** prints one recipe’s SQL. **`listQueryRecipeCatalog()`** in **`src/cli/query-recipes.ts`** is the single derived view of **`QUERY_RECIPES`** for the JSON output. |
27 | 34 |
|
28 | 35 | **Golden tests** |
| 36 | + |
29 | 37 | - **`bun run test:golden`**: index **`fixtures/minimal`**, run scenarios from **`fixtures/golden/scenarios.json`**, and compare query JSON to **`fixtures/golden/minimal/`**. Use **`bun scripts/query-golden.ts --update`** after intentional fixture or schema changes. Documented in **benchmark.md** and **CONTRIBUTING**. |
30 | 38 |
|
31 | 39 | **Query robustness** |
| 40 | + |
32 | 41 | - With **`--json`**, **`{"error":"…"}`** is printed for invalid SQL, database open failures, and **`codemap query`** bootstrap failures (config / resolver setup), not only bad SQL. The CLI sets **`process.exitCode`** instead of **`process.exit`** so piped stdout is not cut off mid-stream. |
33 | 42 |
|
34 | 43 | **Benchmark & `CODEMAP_BENCHMARK_CONFIG`** |
| 44 | + |
35 | 45 | - Each **`indexedSql`** in custom scenario JSON is validated as a single read-only **`SELECT`** (or **`WITH` … `SELECT`**) — DDL/DML and **`RETURNING`** are rejected before execution. |
36 | 46 | - Config file paths are resolved from **`process.cwd()`** (see **benchmark.md**). **`traditional.regex`** strings are developer-controlled (local JSON); **`files`** mode compiles the regex once per scenario. |
37 | 47 | - Overlapping **globs** in the traditional path are **deduplicated** so **Files read** / **Bytes read** count each path once. |
38 | 48 | - The default **components in `shop/`** scenario uses a **`LIKE`** filter aligned with the traditional globs under **`components/shop/`** (**\*.tsx** and **\*.jsx**, matching **`components`** rows from the parser) and avoids unrelated paths such as **`workshop`**. |
39 | 49 |
|
40 | 50 | **Recipes (determinism)** |
| 51 | + |
41 | 52 | - Bundled recipe SQL adds stable secondary **`ORDER BY`** columns (and orders inner **`LIMIT`** samples) so **`--recipe`** / **`--json`** output does not vary on aggregate ties. |
42 | 53 |
|
43 | 54 | **External QA** |
| 55 | + |
44 | 56 | - **`bun run qa:external`**: **`--max-files`** and **`--max-symbols`** must be positive integers (invalid values throw before indexing). |
45 | 57 |
|
46 | 58 | ## 0.1.3 |
|
0 commit comments