Mike opens chat (admin-dashboard chat or chat URL) and types something like load bid PDF + run review for ACC Distributors, or drag-drops a PDF into the chat. There's no proposed-action wait: Mike is the loop step, so the worker resolves the customer, picks the SY-version, preloads context, and runs the standardized 11-skill review. The trace thread (customer + SY-version) lights up the same downstream artifacts as Path 1. NS writes are still deferred to Path 3.
| kind | name | purpose |
|---|---|---|
| Code path | chat-pipeline.html | chat UI |
| Code path | src/chat_tools/impls.ts | chat tool routing |
| R2 bucket | bid-attachments | PDF / XLSX |
| D1 table | chat_session | session identity |
| D1 table | bid_customers | customer match |
| D1 table | bid_quote_versions | SY-version source-of-truth |
| D1 table | bid_price_snapshots | line-level |
| Event | bid.chat_review_completed | downstream |