Conversation
|
@codex review Please review the exact head 438ad6c. Focus on whether canonical configured identity remains control-free, whether only one unique device-enumerated USB-INSTR spelling with exactly one trailing NUL in its serial token can reach open_resource, whether ambiguity and other controls fail closed, and whether non-USB/direct-open behavior is unchanged. |
|
Codex Review: Didn't find any major issues. Nice work! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Laboratory failure corrected
The laboratory Keithley is configured with the canonical resource
USB0::0x05E6::0x2604::4083236::0::INSTR, while the installed VISA stackenumerates the same physical device with one trailing NUL byte in the USB
serial token. Opening only the canonical spelling therefore failed before the
instrument could be used.
This change keeps the configured and durable instrument identity canonical
and control-free. At the transport-open boundary only, it accepts one unique
otherwise-identical enumerated USB-INSTR resource whose serial has exactly one
trailing NUL, and passes that raw device spelling to VISA. Other controls,
malformed or oversized enumeration, duplicate matches, and canonical-plus-NUL
ambiguity fail closed. Non-USB and direct-open fallback behavior is unchanged.
Evidence
The coordinator restored the exact old production open boundary and ran the
new production-path guard. It failed with pytest exit 1 because the canonical
resource was not openable. After byte-exact restoration of the correction:
PR #98 also touches
usbtmc.py, but only moves parent-death binding into ashared module; it does not alter resource discovery or the transport-open
boundary. This is file contention, not a duplicate fix.
This pull request remains a draft until an exact-head Codex review has no
findings. Full hosted CI is deferred until then.