Every update, newest first.
Rich reviewed the new features live. Photo identification impressed; three gaps drove immediate work. Shipped same day: a review-then-generate step (candidates surfaced for selection before any valuation exists), adjust-search-and-rerun on the same report, visible sort affordances on every column, and a query-hash fix. Filed to the engine: stricter watch matching (a 16610 search surfaced 16610LV Kermits and modern larger cases, issue 59), run-to-run consistency (photo-keyed caching defeats cache hits across reports, issue 60), and the requested WatchCharts market-value benchmark (issue 61, gated on API access).
Replayed all 15 August inputs with the original reference photos re-attached, against the engine after its #33 to #38 fixes plus query normalization on the recentcomp side. Hermès Kelly 32: 0 to 22 comps. Louboutin Cabata Mini: 0 to 19 comps, 3 realized. Pochette Accessoires: 18 to 37 comps with 14 realized TheRealReal sales. Rolex 126603: 5 to 26 comps, 7 exact photo matches. Rolex 116000: 2 to 176 realized sales. The two brand-only searches, one of which produced the 134-Rolex, $52,559 report, are now refused at intake. Still open: Chrome Hearts ring finds nothing (jewelry is not a category yet), and handbag photo tiers came back all variant with no exact matches on three runs, raised with the engine. The comp table now sinks unjudged comps and orders exact photo matches ahead of variants, with the engine note shown.
Root causes from the persisted report trails: TheRealReal never ran (missing Scrapfly key, now set), Sotheby's returns no hits on any sale, Christie's crawls one sale, long model strings defeat token matching, the match filter fails open under load (one report valued a watch at $52,559 against a reference-based $476,000), and the photo filter passed every colorway of a Fendi bag because it was told not to reject on color. Six engine issues filed (#33 to #38). On the recentcomp side, query normalization, brand-only refusal, honest failure copy and paste-a-URL comp entry shipped in commit 1255c61. LAC's failed Hermès Kelly query now returns 22 comps.
A zero-comp engine result now offers a manual template report instead of a dead end. Manually added comps join the workspace history, so documenting a thin-market asset seeds every future search for similar pieces.
Org model, org-wide report visibility, roles with multiple Owners, invite links, the review pipeline from draft to approved with locking and reopen, Owner-editable policy enforced at action time, and an append-only audit ledger with CSV export. Built from Nick's claude.ai/design workspace design.
The engine shipped saleKind and per-class source ranks; reports now sort realized first, then by LAC's rankings, with realized/ask chips and a tier divider. Verified comps shipped the same day: reviewer-endorsed comps enter a private archive and resurface on future matching reports.
Photos uploaded at intake become reference images; the engine's Haiku vision pass rejects comps whose photos show a different asset. Intake upload was moved ahead of pipeline start so first runs benefit.
LAC's chief valuations officer asked for LTV off the conservative low and comp images in reports. Both shipped in the following weeks, along with the sold-as-new exclusion for their reseller policy.
Haiku judges every candidate comp; rejected comps appear under the comp table with one-line reasons. TheRealReal and Hagerty adapters shipped the same day via Scrapfly. Per-comp confidence surfaced in the UI.
Report pipeline, Postgres schema, Supabase auth, live-progress analyzing screen, reviewer edit affordances, photo attachments, PDF export via Browserless, and the marketing landing — phases A through D in one push.