Skip to content

feat(driver): spreadsheet out-of-band probe (OobProbe::Spreadsheet) - #485

Merged
HappyDevs1 merged 1 commit into
feat/assert-spreadsheet-formatfrom
feat/assert-spreadsheet-probe
Aug 18, 2026
Merged

feat(driver): spreadsheet out-of-band probe (OobProbe::Spreadsheet)#485
HappyDevs1 merged 1 commit into
feat/assert-spreadsheet-formatfrom
feat/assert-spreadsheet-probe

Conversation

@HappyDevs1

Copy link
Copy Markdown
Collaborator

Summary

Stacked on #484 (Slice 3a: the spreadsheet trace-format kind).

  • 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. Ambiguity and no-match are both reported by name.
  • 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 format::Assertion::Spreadsheet from the previous PR, but nothing calls this probe yet — the assert_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 warnings
  • cargo fmt --check
  • scripts/gate/ratchets.sh (against this PR's actual base) — diff size 328/400

🤖 Generated with Claude Code

https://claude.ai/code/session_01FrvHcYH5Soxy5x9hBMjEob

@HappyDevs1
HappyDevs1 marked this pull request as ready for review August 18, 2026 09:09
Copilot AI lite review requested due to automatic review settings August 18, 2026 09:09

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

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
HappyDevs1 force-pushed the feat/assert-spreadsheet-probe branch from 09fbde1 to 4023683 Compare August 18, 2026 09:09
@HappyDevs1
HappyDevs1 merged commit c9dcc2e into main Aug 18, 2026
11 of 18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants