Skip to content

fix(shadow-ai): close SQLite handles and use UTF-8 after #322 - #335

Open
dinakarjs wants to merge 1 commit into
agentrust-io:mainfrom
dinakarjs:fix/shadow-ai-portability-main-20261017
Open

dinakarjs wants to merge 1 commit into
agentrust-io:mainfrom
dinakarjs:fix/shadow-ai-portability-main-20261017

Conversation

@dinakarjs

Copy link
Copy Markdown
Contributor

The merged shadow-AI adapter retains two portability defects identified during #322 review: sqlite3's connection context manager does not close the read handle before TemporaryDirectory cleanup, and catalog/JSONL reads use the platform encoding. This closes the connection explicitly and reads both inputs as UTF-8, with behavioral regression tests and the encoding contract documented.

Replaces the implementation-only delta of closed companion #329, now based directly on main 730be8b after #322 merged. Neither the SQLite fix nor explicit scanner UTF-8 reads was incorporated into that main tree. Six files, 50 insertions / 5 deletions; no adapter authentication or protocol change. #329's closed state is preserved.

Fresh Linux/Python 3.12.14 validation on this main-based tree: all 132 shadow-ai tests pass against the installed released cmcp-runtime 0.7.0 audit implementation (required, not skipped). Pytest comes from the prepared test environment, with the separate released SDK site-packages explicitly added; the actual imported audit module resolves into that installed 0.7.0 package. Current 0.2.0 execution is left to the existing hosted matrix, rather than inferred from the prior companion's run.

Independent process-memory reversions of the explicit connection close and UTF-8 reads each make the respective behavioral regression fail; no mutation retained. Repository Ruff selection E4/E7/E9/F with target py39 and whitespace checks pass. Published tree matches the validated local index exactly. No native Windows, hardware, source authentication or end-to-end execution claim. Independent maintainer approval and exact-head hosted checks remain required.

Carry the portability correction from closed companion agentrust-io#329 after agentrust-io#322 merged.

Signed-off-by: Srinivasa Dinakar Jainti <dinakarjs@gmail.com>
@github-actions

github-actions Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

🟡 Contributor Check: MEDIUM

Check Result
Profile MEDIUM
Credential LOW
Overall MEDIUM

Automated check by AgenTrust Contributor Check.

@github-actions github-actions Bot added the needs-review:MEDIUM Contributor check flagged MEDIUM risk label Oct 17, 2026

@noah-ing noah-ing left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Reviewed 747d18aabec830fedacd357fc68bd37f15ffe489 against 730be8b3eb929af60c6b236c67011788343aed4e; no blocking finding in this portability correction.

Both new regressions fail against the unchanged base: the producer leaves its SQLite read connection open, and a simulated cp1252 default corrupts the UTF-8 identity. The complete 132-test shadow-AI suite passes without skips in all six macOS combinations of Python 3.11.14/3.12.14/3.13.9 and the installed released cMCP audit APIs 0.2.0/0.7.0. Test dependencies and producer wheels were hash-checked in fresh environments.

Thirty additional reviewer controls pass in each environment, including independently exercised catalog/log decoders, exact Unicode identity, LF/CRLF/CR line accounting, malformed-input refusal, and connection closure before temporary-directory cleanup on success and injected read/write failures. Isolated in-memory reversions of each UTF-8 read and the explicit close are detected while other controls keep passing.

This is macOS execution with a simulated cp1252 default, not native Windows validation. It exercises released audit serialization, not a live gateway, authentication or hardware. Source checkouts remain unchanged; required independent maintainer approval remains separate.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-review:MEDIUM Contributor check flagged MEDIUM risk

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants