Commit 9cc17ee
committed
fix(pi): make the search provider drift guards actually fire
The "you cannot add a provider without mirroring it" story rested on two
mechanisms that did not hold. Verified by adding a fifth provider to
`PI_SEARCH_PROVIDERS` and running the build: it produced only two errors, and
every test still passed.
- `normalizePiSearchRecords` assigns to `let built` inside its switch rather
than returning, so unlike its two siblings a missing case was not a type
error — it silently normalized the new provider to zero results. Added an
explicit `never` check.
- The sandbox copy's `normalizeRecords` used a trailing `else` for Firecrawl,
so an unmirrored provider was silently normalized with Firecrawl's field
names; `extractRecords` did the same with its `payload.data` tail. Both now
test for `firecrawl` explicitly and throw otherwise.
- `Record<PiSearchProvider, ...>` on the `TOOLS` and `payloads` fixtures looked
like exhaustiveness guards but are inert: `apps/sim/tsconfig.json` excludes
`**/*.test.ts`, and vitest transpiles without typechecking. Both suites drive
their providers off `Object.keys(fixture)`, so a missing provider was skipped
rather than failed. Each suite now asserts its fixture covers the registry.
Re-running the same experiment now yields three compile errors plus two test
failures naming the missing fixtures.1 parent 41d2917 commit 9cc17ee
4 files changed
Lines changed: 33 additions & 3 deletions
File tree
- apps/sim/executor/handlers/pi/search
Lines changed: 8 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
| 14 | + | |
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| |||
258 | 258 | | |
259 | 259 | | |
260 | 260 | | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
261 | 268 | | |
262 | 269 | | |
263 | 270 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
177 | 177 | | |
178 | 178 | | |
179 | 179 | | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
180 | 183 | | |
181 | 184 | | |
182 | 185 | | |
| |||
210 | 213 | | |
211 | 214 | | |
212 | 215 | | |
213 | | - | |
| 216 | + | |
214 | 217 | | |
215 | 218 | | |
216 | 219 | | |
217 | 220 | | |
218 | 221 | | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
219 | 226 | | |
220 | 227 | | |
221 | 228 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
311 | 311 | | |
312 | 312 | | |
313 | 313 | | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
314 | 321 | | |
315 | 322 | | |
316 | 323 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| |||
110 | 110 | | |
111 | 111 | | |
112 | 112 | | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
113 | 122 | | |
114 | 123 | | |
115 | 124 | | |
| |||
0 commit comments