Repository navigation
fix(registry): enforce offline structural schema references (#83, #85) - #108
Conversation
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. |
LIghtJUNction
left a comment
There was a problem hiding this comment.
Reviewed final four-file diff against the tested local blob hashes: schema-bearing traversal preserves annotation/instance data, the explicit reference registry disables implicit external retrieval, failure translation avoids URI/path disclosure, and the earlier ownership protections remain intact. Run 36351787828 completed successfully across all four shards and the contracts gate; shard 0 also passed conformance and installable builds. No authority/operation contract expansion or production deployment. Squash merge removes the corrected intermediate publication typo from main history. The broader #83/#85 acceptance items remain open.
Refs #83 and #85. Focused Registry contract hardening; not closure of the broad acceptance issues.
Reproduced gaps
The former canonical-JSON substring check rejects safe local references whenever unrelated metadata mentions HTTP, yet permits file/FTP/relative/URN references and remote dynamic references. A fragment can also point into an annotation containing an external schema.
Changes
Verification
31 new cases plus 7 existing ownership cases. Before: 28 failed / 10 passed. After: 38 passed locally on Python 3.13.5; no PostgreSQL substitute is involved in these pure Registry tests. compileall passed. Uploaded registry.py and pyproject.toml Git blob hashes match the locally tested bytes. Full exact-head Python 3.15/PostgreSQL/Valkey/conformance/build CI is required before merge.
A transient publication typo was corrected before this PR; squash merge is intended. No production deployment, data migration, network permission or new operation.