WEEKLY BRIEFING · WEEK 41 ·
Carbitrage Weekly Digest — 2026-10-09 (data through ~15:00 UTC)
Week covered: since project reboot (initial commit ab9d245, 2026-10-06) — the git history is effectively one week old. Team lanes live since 2026-10-08 (AGENT-TASKS.md item 0): Kimi Code owns master, Key Glock codes in the kg worktree (kg/work, merge-gated), analyst/ops/digest crons read-only.
1. What shipped per lane
Kimi Code (main tree / master)
- 2026-10-08 foundation wave: vehicle-category system end-to-end (moto + heavy trucks: taxonomy, cohorts by displacement/family, category column, corridor costs per category, dashboard switcher); TruckScout24 source (adapter + fixture + 50 live listings); generation registry (config/generations.yaml + validated loader); year-band cohort axis 2 (kills the 'unknown' bucket); category-driven cohort rules; scrape-run history DB-persisted + multi-source parallel execution; car.gr live feed tap + collapsible source controls + feed toggle; Tasks 2+3 (enrichment priority queue, cohort-gated revalidation); trader gating v0 (token-gated /api/trader/<token>).
- 2026-10-09 task queue 5–11 wave: Task 9 surface (Opportunities tab: country multi-select FROM, TO default GR, type badges, corridor tooltip, marks/notes, n+confidence); Task 5 quick wins (corridor money bars in radar drilldown, el-GR km formatting); Task 8 matching bugs (audi Q340, bare-family ambiguity guards) + Task 6 market drift (config/market_drift.yaml auto-derived from snapshot trend, transparent drift block in /api/estimate); Task 11 surface (Listings-tab admin column: star/watch/ignore marks + audited edit drawer + notes); Task 8 residuals closed (refresh_taxonomy idempotent via shared resolve_listing_model); Task 10 leftovers (slow revalidation lane 10d/14d, revalidation backlog telemetry + loud warning, data-quality banner from event-log reset detection); fixed two KG merge bugs (annotations() missing visited_at; /api/trader 30s cache lacked DB_PATH in key); CarWorth Desk review + brand pass (desk.html restyled to trader-mark identity dark #0B1220 / lime #C9F24E, /brand/* route traversal-guarded, expired-session cleanup, login timing-hygiene, mark/note _UNSET sentinel fixes; desktop organized logo suite → brand/, demo videos → brand/media/).
Key Glock (kg/work → merged to master)
- 2026-10-08 expansion + hardening wave: AS24 country clones de/fr/es/nl config + __NEXT_DATA__ fallback, fr/es/nl live-verified via WebBridge (FR space-thousands + glued date, FR "Ch", NL "PK"); autoscout24.it audit + fixes; taxonomy union pass from measured live 'other' buckets; evening taxonomy batch (40+ models, glued suffixes, badge fixes — active 'other' 1,007 → 705); price-anomaly detection (outliers.py) + janitor cron (daily 12:20; 207 garbage prices excluded from deals/radar/estimate); Task 10 claim per owner 20:03 (no-sweep-expiry policy extended to ALL 13 marketplace sources, revalidate window_exit_days param bug fixed, 758-row reset precedes); deals-tab fix shipped + verified live (model-level price band backstop kicks junk €229k/€2.8M out of comparables medians, mileage sanity, no 2-point medians; 477 clean deals surface vs 1,620 noisy rows, 15% default, flagged toggle, 250-row cap); security headers universal on :8090; idempotent localhost-service starter (scripts/ensure_services.ps1) + Startup VBS + DEPLOY-RUNBOOK.md; team setup itself (worktree + merge gate, lane protocol, analyst snapshot script, MISSION briefs, analyst/ops/digest crons).
- 2026-10-09 pre-dawn wave: Task 9 core (trader_opportunities + config/countries.yaml + /api/trader endpoint); AS24 km/price fix shipped (data-* attrs primary, scoped CSS second, hardened regex last — dirty FR/IT/ES/NL rows self-heal on next scrape upserts); admin/back-office primitives (Tasks 11/12 backend: /api/admin/listings/<hash>/{edit,mark,note} + /api/listings/<hash>/detail, annotations table, mark/note on trader+listings rows).
Crons (autonomous, read-only)
- Janitor daily 12:20 — price-anomaly exclusion live since 2026-10-08.
- Analyst snapshots — 5 DB snapshots into the analysis worktree snapshots dir (10-08 15:26 → 10-09 12:20); morning/evening briefings produced 10-08 and 10-09 with corrections loop (withdrew a false encoding-bug alarm).
- Ops counts — live DB stats feed (6,954 listings at last pull).
- This digest — Friday team-digest cron (first run).
2. Test count trend
| When | Green tests | Marker |
|---|---|---|
| 2026-10-08 daytime | 125–145 | it-corridor / truckscout / categories wave |
| 2026-10-08 evening | 256 → 264 | no-sweep policy → deals-tab fix |
| 2026-10-09 00:15–01:35 | 273 → 282 → 288 | task 9 core → AS24 fix → admin primitives |
| 2026-10-09 daytime | 329 → 334 → 335 | task 9 surface → task 8 → task 11 |
| 2026-10-09 late | 328 → 347 | task 10 leftovers → CarWorth brand pass |
Trend: ~2.4× in two days (145 → 347); +31% in the last 24h (264 → 347). No red runs observed in the worklog this week.
3. Listing growth
| Date (first_seen) | New listings | Active now |
|---|---|---|
| 2026-10-06 (pipeline start) | 3,415 | 3,415 |
| 2026-10-07 | 1,010 | 987 |
| 2026-10-08 | 2,190 | 2,183 |
| 2026-10-09 (partial, through ~15:00 UTC) | 339 | 339 |
| Total | 6,954 | 6,924 active / 30 expired |
- +27.7% in the last ~24h: 5,446 total (10-08 15:26 snapshot) → 6,954.
- Source breadth grew 3 → 13 sources this week: car.gr, mobile.de, as24 it/es/de/fr/nl, truckscout24, car.gr trucks + moto, mobile.de trucks + moto, as24it moto.
- Active mix: cargr 4,591 · mobilede 652 · as24 clones 1,112 combined · trucks 405 · moto 164. New intake today skews moto (+78 car.gr moto) and as24 clones (+130).
- Events: 20,774 logged; 15,503 snapshot records.
4. Top 3 risks
- AS24 clone data quality is split — FR still crashing, es/it poisoned. The fr parser dies on U+202F narrow no-break space (
'2\u202f990') — latest cycle errored. The digit-concat fix landed for NL only; es/it still hold 4–5 glued prices per source (Avenger €169,501, RC F €699,901) corrupting clone medians. Only de/nl clone spreads are trustworthy today. Fixes are already at the top of Kimi Code's queue (FR U+202F, extend concat fix to es/it). - mobile.de window volatility can flip corridor signals intraday. Active count went 641 → 24 → 641 within a day (578 window-exits all reversed as REAPPEARED, same content_hashes). The DE→GR GLC spread (+30% year-matched 2019-21, n=41/32 asks per side in the 10-09 read, medium confidence — an asking-price spread, not a promised outcome) is the strongest signal in the DB, but any trade decision needs a fresh same-day snapshot on both sides.
- Taxonomy 'other' debt is re-accumulating faster than curation. Down to ~705 active after the evening batch, but mobile.de BMW M/variant tokenization (
M4Cabrio,M340dxDrive,X430d,iX1xDrive) adds ~76 other-NEW/day, plus mapping gaps (RAV 4, CLK 200, Space Star, Epiq, DS) and policy gaps (crane trucks, golf carts). truckscout24 remains thin (21% miss price, 33% miss year, 68% miss fuel).
5. Next week's proposed priorities
- Task 12 — unified trader desk/dashboard redesign. Only open task; owner's lane assignment says Key Glock executes with Kimi Code supporting/reviewing. Backend primitives (edit/mark/note/detail), Task 9 core + surface, and the CarWorth brand identity are all landed — the desk is the last big surface.
- Kimi Code queue, in order: (a) FR U+202F price-parser fix; (b) extend concat-price fix to es/it + schedule re-parse to clear residual garbage; (c) mobile.de M-variant tokenizer; (d) RAV 4 / CLK / Space Star / Epiq / DS mappings; (e) crane-truck / golf-cart category policy.
- Corridor verification pass once (a)+(b) land: re-measure es/it/fr spreads, re-validate the GLC signal with same-day snapshots, and write the verdict into the trader desk.
- TruckScout24 field completion (price/year/fuel misses) — heavy-truck corridor math is blocked until fields fill.
- Keep the autonomous lane humming: janitor daily, analyst snapshots ≥2×/day, Friday digest. Hold LOCAL-ONLY per owner decision (2026-10-08 17:29) — DEPLOY-RUNBOOK stays staged until the owner lifts the hold.
Generated by the friday-team-digest cron. Read-only on the main repo; written only inside the analysis worktree. Snapshot basis: live pulse_real.db pull at ~15:00 UTC + snapshots 10-08 15:26 → 10-09 12:20.