fix(submit): compact repeated daily regression warnings
Summary
repeated daily token-decrease warnings for one client
-> one client heading and compact date / stored / incoming rows
other server warnings
-> unchanged
This keeps every date and both token values visible without requiring a new flag or another submission. Fewer than four matching warnings keep their existing text. Only the current, complete server warning format is grouped; unrecognized warnings remain unchanged. The existing unpriced-model output, submission payload, API, and server-side protection are untouched. This keeps the diagnostic detail retained by #1268 and the protection preserved by #1515.
Evidence
- The new CLI integration test submits a synthetic fixture to a local HTTP stub. Before the change, it fails because each daily warning is printed separately. Afterward, all nine dates and both values remain visible, while the repeated prose is removed and other warnings remain intact.
- Unit tests cover multiple clients, short warning lists, invalid dates, and unrecognized warning text.
cargo fmt --all -- --checkandcargo clippy --locked -p tokscale-cli --all-features --all-targets -- -D warningspass.cargo test --locked -p tokscale-cli --bin tokscalepasses (1,760 passed, one ignored).TZ=UTC cargo test --locked -p tokscale-cli --test cli_testspasses (221 passed); this pins the timezone for the suite's UTC-dated fixtures. On this macOS host, the unpinned run had five failures in timezone detection and import-date tests.
Merge Danger
Door: two-way.
Blast Radius: submit and import response display only. The server response and stored data are not changed.
Summary by cubic
Groups repeated daily token-decrease warnings in tokscale submit output so one client with many warnings prints a single heading plus compact date and stored/incoming token rows instead of repeating the full warning prose.
- Only groups warnings for the same client when there are four or more; fewer warnings keep their existing text.
- Only the known daily-decrease warning format is compacted; unrecognized warnings and warnings for other clients remain unchanged.
- The submission payload, server response, and server-side logic are untouched.
- The CLI integration test's fixture server now reads requests from a blocking stream so Windows sockets, which inherit nonblocking mode, are handled reliably.