Commit Graph

90 Commits

Author SHA1 Message Date
82e12283de docs: surface Kijiji AND-matching behavior in tool, API, and MCP responses
Kijiji zero-result queries (e.g. 'macbook air m1 apple silicon') are
confusing because the failure mode is non-obvious. Surface the root
cause everywhere the caller can see it:
- MCP tool description warns about AND-matching and gives a concrete
  before/after example
- API 404 body includes the actionable hint via emptySearchResponse(hint)
- Core scraper logs the built URL and tip on page-1 zero results
- MCP handler unwraps the API message field so the hint reaches the LLM
2026-04-29 13:06:31 -04:00
3ea6ee3938 fix: strictly parse route integers 2026-04-29 00:12:26 -04:00
d178f9c9cb fix: remove cookie query forwarding 2026-04-28 23:52:45 -04:00
b6aaec0b65 chore: update ruler docs
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-28 22:29:12 -04:00
11dce39428 fix(core): parse Kijiji StandardListing records 2026-04-28 21:57:10 -04:00
2a5701aeb9 test: quiet and speed up test runs 2026-04-28 21:45:06 -04:00
c6c44a0914 fix(api): preserve unstable buckets 2026-04-28 21:34:47 -04:00
3fe5fdb63f fix(core): handle partial listing data 2026-04-28 21:34:45 -04:00
7966073bf8 fix(core): prefer explicit cookie source 2026-04-28 21:34:40 -04:00
63716272c5 chore: slim per-package tsconfigs to extend root 2026-04-28 19:55:59 -04:00
1d21c66945 chore: use exports field and catalog refs in all packages 2026-04-28 19:55:37 -04:00
bf393eacae chore: setup typecheck scripts for each package
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-28 19:37:18 -04:00
79bb249603 chore: replace any cast by asserting tool schema property types
Tightens the type assertion for the `unstableFilter` schema property in tests to ensure correct structural checking of its `type` and `description` fields.
2026-04-28 19:24:39 -04:00
957e0f137b chore: biome lint and formatting
Signed-off-by: Dmytro Stanchiev <git@dmytros.dev>
2026-04-28 19:21:16 -04:00
49e90d45f8 docs: expose unstable mode in mcp tools 2026-04-28 19:03:42 -04:00
b6456047a6 feat: add maxItems support to ebay scraper 2026-04-27 10:56:23 -04:00
02b3f805b2 fix: use explicit conditional calls and validate negative params 2026-04-27 10:46:06 -04:00
a1af5d2630 fix: align ebay route with spec and validate params 2026-04-27 09:56:39 -04:00
77b9fc9934 fix: validate route params and reduce duplication 2026-04-27 09:45:47 -04:00
a802035ca4 fix: correct empty-result and maxItems handling in routes 2026-04-27 09:34:08 -04:00
974190de6b fix: preserve maxItems limit in unstable mode 2026-04-27 08:57:48 -04:00
3c38232cd5 feat: expose unstable mode in api routes 2026-04-27 02:49:35 -04:00
224e83ac4c fix: correct ebay title filtering and type contracts 2026-04-27 02:04:48 -04:00
b73faa35da fix: respect scraper pacing details 2026-04-27 00:13:42 -04:00
0f77155c8d fix: align marketplace price filter parsing 2026-04-23 11:14:57 -04:00
10c2856bf6 fix: tighten item price and pacing behavior 2026-04-23 10:59:33 -04:00
9c8643086a fix: refine scraper output behavior 2026-04-23 10:43:38 -04:00
244a88e63c fix: harden scraper price parsing 2026-04-23 10:31:08 -04:00
807849e257 fix: expose ebay unstable mode typing 2026-04-23 05:47:50 -04:00
eb37e8814e fix: preserve free results and request pacing 2026-04-23 05:40:42 -04:00
13c0fec305 fix: tighten scraper type contracts 2026-04-23 05:28:46 -04:00
08d59ab497 fix: tighten ebay result parsing 2026-04-23 05:13:40 -04:00
0a0723a560 fix: respect filtered result sets in unstable mode 2026-04-23 05:03:26 -04:00
881c2ddf8c fix: finalize scraper unstable mode integration 2026-04-23 00:20:21 -04:00
55faee7dd5 fix: cover scraper pricing edge cases 2026-04-22 23:54:07 -04:00
b5e14e686a fix: tighten scraper edge case handling 2026-04-22 23:46:52 -04:00
6f9d4db419 fix: tighten scraper parsing behavior 2026-04-22 23:41:08 -04:00
08edfa8097 fix: align scraper unstable mode behavior 2026-04-22 23:36:00 -04:00
c7fc8352ac fix: preserve default scraper result contracts 2026-04-22 23:30:17 -04:00
1ee41fb346 feat: add unstable mode to scraper results 2026-04-22 23:23:31 -04:00
8141de5b4b feat: add shared unstable listing classifier 2026-04-22 17:56:26 -04:00
9070f76412 refactor: handle facebook route-aware failure states 2026-04-22 11:48:47 -04:00
7ddc96dfdf refactor: add facebook html fallbacks 2026-04-22 11:36:47 -04:00
63ca006696 refactor: rewrite facebook item parser for comet bootstrap 2026-04-22 02:44:17 -04:00
c90ee54cc1 refactor: rewrite facebook search parser for comet bootstrap 2026-04-22 02:32:55 -04:00
cfd7619737 refactor: add facebook bootstrap candidate extraction 2026-04-21 23:46:00 -04:00
b072599bc6 refactor: add facebook response classification 2026-04-21 23:31:45 -04:00
b6e9501448 docs: align cookie setup with env-only auth 2026-04-21 21:53:42 -04:00
d65d81dbd1 refactor: remove mcp cookie parameters 2026-04-21 21:48:34 -04:00
1a2c0cf6b8 refactor: remove api cookie query overrides 2026-04-21 21:47:37 -04:00