feat(driver): spreadsheet out-of-band probe (OobProbe::Spreadsheet) - #485
Merged
HappyDevs1 merged 1 commit intoAug 18, 2026
Merged
Conversation
Reads a workbook directly with calamine, not through UI Automation over Excel's grid (untested and known-flaky). Behind the existing oob feature, alongside the sql/api probes. A cell resolves EITHER by an absolute A1 reference OR by a column/row_contains pair: column matches the sheet's first row exact-after-trim then unique-contains, the same two-rung ladder the web adapter's CellQuery uses for a live DOM table; row_contains is the unique data row where any cell's text contains it. Both ambiguity and no-match are reported by name, not silently defaulted. Classified as always-retryable in is_retryable, like Sql — a read, and a just-finished download may still be mid-write when the first poll fires. Consumes the format::Assertion::Spreadsheet variant added in the previous PR in this stack, but nothing calls this probe yet: the assert_spreadsheet: step grammar and the record/replay wiring are the next PR.
HappyDevs1
force-pushed
the
feat/assert-spreadsheet-probe
branch
from
August 18, 2026 09:09
09fbde1 to
4023683
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Stacked on #484 (Slice 3a: the spreadsheet trace-format kind).
calamine, not through UI Automation over Excel's grid (untested and known-flaky). Behind the existingoobfeature, alongside thesql/apiprobes.A1reference OR by acolumn/row_containspair:columnmatches the sheet's first row exact-after-trim then unique-contains — the same two-rung ladder the web adapter'sCellQueryuses for a live DOM table;row_containsis the unique data row where any cell's text contains it. Ambiguity and no-match are both reported by name.is_retryable, likeSql— a read, and a just-finished download may still be mid-write when the first poll fires.format::Assertion::Spreadsheetfrom the previous PR, but nothing calls this probe yet — theassert_spreadsheet:step grammar and record/replay wiring are the next PR in this stack.Test plan
cargo test --workspace— 59/59 suites, 993 tests (12 new: A1 parsing, column/row resolution ladder, retry classification, pollable-miss-vs-hard-error on a missing file)cargo clippy --workspace --all-targets -- -D warningscargo fmt --checkscripts/gate/ratchets.sh(against this PR's actual base) — diff size 328/400🤖 Generated with Claude Code
https://claude.ai/code/session_01FrvHcYH5Soxy5x9hBMjEob