Commit 40d5680
authored
perf(semantic-search): index from manifest projection (#64)
## Summary
Carries the tool manifest projection into semantic-search scan jobs by
retaining each manifest source revision alongside the fingerprint. This
makes index work traceable to the source catalog version that produced
it without adding schema reads to scan.
## Changes
- Add optional `sourceRevision` to semantic-search index jobs.
- Copy `ToolSchemaManifest.sourceRevision` into both skipped and changed
scan jobs.
- Add regression coverage that manifest source revisions survive scan
materialization.
## Call Stack
```text
ToolSearchIndex.create()
-> executor.tools.manifest()
-> write manifest snapshot
ToolSearchIndex.scan()
-> read manifest projection
-> compare manifest.indexFingerprint with stored fingerprint
-> write IndexJob(sourceRevision, fingerprint, path, status)
```
## Tests
- `bun run --cwd packages/plugins/semantic-search test --
src/sdk/tool-search-index.test.ts`
- `bun run --cwd packages/plugins/semantic-search typecheck`
- `bunx oxfmt --check
packages/plugins/semantic-search/src/sdk/collections.ts
packages/plugins/semantic-search/src/sdk/tool-search-index.ts
packages/plugins/semantic-search/src/sdk/tool-search-index.test.ts`
- `bunx oxlint -c .oxlintrc.jsonc --deny-warnings
packages/plugins/semantic-search/src/sdk/collections.ts
packages/plugins/semantic-search/src/sdk/tool-search-index.ts
packages/plugins/semantic-search/src/sdk/tool-search-index.test.ts`
## Stack
Base: #63
<!-- stack:links:start -->
### [Stack](https://github.com/aryasaatvik/stack)
1. #63
2. **#64** 👈 current
3. #65
<!-- stack:links:end -->1 parent 25ee33d commit 40d5680
3 files changed
Lines changed: 88 additions & 0 deletions
File tree
- packages/plugins/semantic-search/src/sdk
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
70 | 70 | | |
71 | 71 | | |
72 | 72 | | |
| 73 | + | |
73 | 74 | | |
74 | 75 | | |
75 | 76 | | |
| |||
Lines changed: 81 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
| 70 | + | |
70 | 71 | | |
71 | 72 | | |
72 | 73 | | |
| |||
82 | 83 | | |
83 | 84 | | |
84 | 85 | | |
| 86 | + | |
85 | 87 | | |
86 | 88 | | |
87 | 89 | | |
| |||
327 | 329 | | |
328 | 330 | | |
329 | 331 | | |
| 332 | + | |
330 | 333 | | |
331 | 334 | | |
332 | 335 | | |
| |||
350 | 353 | | |
351 | 354 | | |
352 | 355 | | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
353 | 434 | | |
354 | 435 | | |
355 | 436 | | |
| |||
Lines changed: 6 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1092 | 1092 | | |
1093 | 1093 | | |
1094 | 1094 | | |
| 1095 | + | |
| 1096 | + | |
| 1097 | + | |
1095 | 1098 | | |
1096 | 1099 | | |
1097 | 1100 | | |
| |||
1110 | 1113 | | |
1111 | 1114 | | |
1112 | 1115 | | |
| 1116 | + | |
| 1117 | + | |
| 1118 | + | |
1113 | 1119 | | |
1114 | 1120 | | |
1115 | 1121 | | |
| |||
0 commit comments