Skip to content

Repair UCNS exact inputs, evidence gates, and source distributions - #226

Merged
erinepshovel-code merged 65 commits into
mainfrom
repair/ucns-audit-20260911
Sep 12, 2026
Merged

erinepshovel-code merged 65 commits into
mainfrom
repair/ucns-audit-20260911

Conversation

@erinepshovel-code

@erinepshovel-code erinepshovel-code commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

UCNS could accept mutable or inexact evidence inputs, declare test coverage without a resolving executable witness, and build archives that could not reproduce the source checks. These repairs preserve valid geometry while failing closed on those gaps.

Exact input admission rejects Boolean/float substitutions, mutable records, and unordered NaN evidence. The no-exec contract graph reconciles the pinned canonical Python and TypeScript parser witnesses and a bounded pytest declaration format. Selected-check receipts use actual pytest outcomes, bound imports and source snapshots, observed source writes, and supervised descendant lifetimes. Skips, empty evidence, source changes, unsupported collection hooks, descriptors, and fixture-only CHECKS targets cannot establish a passing receipt.

CI requires nonempty, fully passing actual outcomes, including collection outcomes; skip, xfail, and XPASS cannot leave the suite gate green. Collection uses an explicit supported configuration with imported-test discovery disabled. All test helpers receive the collection-surface audit; the runtime observer compares actual test code with its declared source before and after execution. The full-suite gate requires every statically declared test to reach a call outcome; root helper imports outside the declared source layout fail the audit. Full and selected execution reconcile every collected parameter item with its call outcome. Bound imports compile inventoried source instead of stale bytecode caches; snapshot failures emit ERROR receipts with all selected checks accounted for.

Wheel and source archives are checked against exact source inputs, metadata, license bytes, directory hierarchy, empty directory payloads, and usable permissions. Bound source inventories reject symlinks. The source archive includes the full test, declaration, replay, fixture, and CI input trees. Receipt inventories cover every file in the declared source directories, including text and extensionless inputs; declared test-function bindings must be unique. This maintenance PR does not publish a release or ratify geometry; unresolved geometric questions remain hmmm.

Validation at 13c212e93e2868c41814695e28c2572f4c90c55f: all 156 tests pass on Python 3.10 and 3.12. The CI merge commit has the exact same source tree as this head. CodeQL, contract graph, strict nine-skill drift, build, Twine and exact archive checks pass. Final regressions cover hidden functions, removed parameter invocations, skip classification, bound imports and cold-start budgets. All five selected checks also pass from the updated evidence branch's actual source archive with unchanged source and no snapshot errors. Exact-commit review is clean; every reported finding is repaired and resolved.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 11, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-12T09:38:30.197098Z 13c212e Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 87765a6516

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

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".

Comment thread .agents/skills/gonol-build/check_edcm_boundary.py Outdated
Comment thread tools/verify_skill_lib_contracts.py Outdated
Comment thread tools/verify_distributions.py Outdated
Comment thread tools/run_skill_lib_boundaries.py Outdated
Comment thread tools/verify_skill_lib_contracts.py Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2a844e30d2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

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".

Comment thread tools/run_skill_lib_boundaries.py Outdated
Comment thread .agents/skills/gonol-build/SKILL.md Outdated
Comment thread docs/work-graphs/repository-plan-report.json Outdated
Comment thread tools/run_skill_lib_boundaries.py Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a42db1bcf8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

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".

Comment thread tools/verify_skill_lib_contracts.py
Comment thread tools/run_skill_lib_boundaries.py Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4f480d3f55

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

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".

Comment thread tools/verify_distributions.py Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0580677b66

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

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".

Comment thread tests/test_distributions.py
Comment thread .agents/skills/README.md Outdated
@erinepshovel-code

Copy link
Copy Markdown
Contributor Author

@codex review

Please review exact head c5cdef8ac0e766f56169fcde92536684f85690b5. The remaining review boundaries now have negative regressions: malformed ids/fences, pytest helper class selection, assertion subclass and both XPASS modes, alternate PYTHONPATH, source write-and-restore detection, wheel metadata/license fixtures, exact generated sdist setup.cfg, and msdmd provenance. The repository frontier report pins implementation commit 8ec6707. The revised focused suite passes 17 tests; the final full-suite/build gate and this head's CI are running. No geometry ratification or release is part of this maintenance PR.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

def _validate_check(check: Entry) -> tuple[tuple[str, ...], int, str, str]:
requires = _split(check.fields.get("requires", ""))
raw_timeout = check.fields.get("timeout", "")

P2 Badge Require capability declarations before execution

When a CHECKS entry omits requires, the contract audit accepts it and this default silently converts the missing declaration into an empty capability set; I reproduced the runner issuing a passed receipt with requires: (). Because capability availability is part of the receipt’s execution boundary, require the field—using an explicit value such as none when appropriate—instead of treating absent evidence as no prerequisites.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

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".

Comment thread tools/verify_distributions.py
Comment thread tools/verify_distributions.py Outdated
Comment thread tools/verify_skill_lib_contracts.py Outdated
Comment thread tools/run_skill_lib_boundaries.py

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e0d0647ae0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

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".

Comment thread tools/verify_skill_lib_contracts.py
Comment thread README.md Outdated
@erinepshovel-code

Copy link
Copy Markdown
Contributor Author

@codex review

Please review exact head 949495bb62f39e17bc9a9a31f7338d8d4dd122d4 (implementation 974ee0c). Both latest findings are repaired. Any destructuring assignment containing test is an unsupported collection opt-out, including nested, starred and chained forms. The README and agent build instructions use the synced project interpreter on Python 3.10, and the documented full suite uses the actual-outcome gate used by CI.

An additional class-binding ambiguity is repaired: local test classes and their bases must have unambiguous bindings, so a later replacement of a base cannot hide an imported init_subclass injector. Regressions cover both base replacement and duplicate test-class declarations.

All eight affected tests pass. The contract graph, build, Twine and exact archive gate pass. CI for this exact head passed all 156 tests on both Python 3.10 and 3.12 through the complete-outcome gate. No geometry or publication standing changes.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 949495bb62

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

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".

Comment thread tools/verify_skill_lib_contracts.py Outdated
Comment thread tools/run_skill_lib_boundaries.py Outdated
@erinepshovel-code

Copy link
Copy Markdown
Contributor Author

@codex review

Please review exact head 7b8abe16cbc760becffafa4e1d5062039e8f660d (implementation 0ff4fb7). Both latest findings are repaired. A declared test function must have exactly one module binding; duplicate definitions, an earlier import, or an earlier data binding cannot resolve that CHECKS witness. An actual public-runner regression rejects the failing-definition-then-passing-replacement example before execution.

Receipt snapshots now hash every file under the declared source directories, excluding pycache, without a suffix allowlist. A real check reading tests/witness.txt passes for both one and two while the two runs now have different source digests and explicit fixture hashes. Extensionless fixture inputs are covered in every bound directory. The source archive manifest and exact distribution gate now retain the complete package/test/tool/docs/generated/skill/CI trees and reject missing or altered text and extensionless fixtures. The README states the directory and root-input boundary explicitly.

All ten affected tests pass. Graph, canonical ratio checks for all six changed Python files, build, Twine and exact archive checks pass. Full 156-test CI is running on Python 3.10 and 3.12 for this head. No geometry or publication standing changes.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7b8abe16cb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

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".

Comment thread tools/run_skill_lib_boundaries.py Outdated
Comment thread tools/verify_skill_lib_contracts.py
Comment thread tools/verify_distributions.py
@erinepshovel-code

Copy link
Copy Markdown
Contributor Author

@codex review

Please review exact head 4b08f33130ef3f3a29712e53c256acece80e338f (implementation 3f7219d). All three latest findings are repaired.

The graph now audits every Python helper under tests, including filenames pytest does not collect. The runtime observer independently compares the actual test function code with the code compiled from its declared source, using the pinned pytest assertion rewriter, before and after each call. The reproduced frame-walking helper is rejected by the graph when placed under tests; when placed outside that static helper audit, its replacement with matching name/module is rejected by the runtime witness gate. This remains a trusted-check execution observer, not a hostile-Python sandbox.

Bound source entries reject file and directory symlinks, including bound directory ancestors and root inputs. Source distribution inventory applies the same fail-closed link boundary. Wheel and tar directory entries must have zero payload size; regressions cover nonempty otherwise-implied directories in both formats.

The 22 affected tests are covered by the full targeted run and final focused reruns. The initial new replacement regression had the wrong expected receipt spelling (failed versus the existing not-passed schema); that assertion was corrected and the final three affected tests pass. The final archive-specific regression passes separately. Contract graph, strict nine-skill canonical drift, all six changed Python ratio checks, build, Twine and exact archive checks pass. Full 156-test CI is running on Python 3.10 and 3.12 for this head. No geometry or publication standing changes.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4b08f33130

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

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".

Comment thread tools/_boundary_pytest.py Outdated
Comment thread tools/run_skill_lib_boundaries.py
Comment thread tools/run_skill_lib_boundaries.py
@erinepshovel-code

Copy link
Copy Markdown
Contributor Author

@codex review

Please review exact head 08ee40b6d43f646be6cb1e8902f2643877b74963 (implementation 5d0f2f3). The three latest findings are repaired.

The witness gate resolves the test function through pytest item/class metadata; parameter IDs containing :: remain valid. Bound imports compile inventoried .py bytes directly. Supervisors, ordinary descendants, pytest assertion rewriting and the parser use fresh bytecode locations or direct source compilation. A real timestamp-valid poisoned cache is first demonstrated to execute the wrong value under ordinary Python; the public boundary runner then executes the inventoried source, including its ordinary child. The regression also passes when selected through the public receipt runner itself.

Initial snapshot failures emit an audit-gap receipt. Post-check and subsequent snapshot failures become ERROR outcomes and structured snapshot errors, preserving source-write observations and accounting for every selected check. The new-symlink regression produces a not-passed receipt rather than aborting.

All 21 affected tests pass. The final poisoned-cache regression passes both directly and as an explicitly selected public check. Contract graph, all five changed Python ratio checks, build, Twine and exact archive checks pass. Full 156-test CI is running on Python 3.10 and 3.12. Geometry standing is unchanged.

@erinepshovel-code

Copy link
Copy Markdown
Contributor Author

@codex review

Please review current exact head d0c13d5eb4f189167b6f2be9e722f3dd5cba499b. Since 08ee40b, the only behavior-related change is the declared timeout for the nested nonactivation witness, increased from 10 to 30 seconds; the report now binds that implementation commit.

Both Python 3.10 and 3.12 CI jobs at 08ee40b passed all 156 tests. The archived-source preflight then observed the nested nonactivation witness hit its old 10-second cap under cold source compilation. With the explicit 30-second budget, the same public witness passes in 9.91 seconds with unchanged source and no snapshot errors. No assertions or timeout enforcement were weakened; the witness performs multiple nested runner startups. Current-head CI is running.

All three preceding review findings remain repaired as documented in the prior review request: parameter IDs use pytest item metadata, stale bytecode cannot replace inventoried source, and snapshot failures yield failed receipts with all selected outcomes accounted for.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d0c13d5eb4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

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".

Comment thread tools/verify_skill_lib_contracts.py
@erinepshovel-code

Copy link
Copy Markdown
Contributor Author

@codex review

Please review exact head 5c01f810943061019179949f8f2976b1782c4a9f (implementation 15e37de). The latest P1 root-helper finding is repaired.

The no-exec graph rejects imports of repository-root helpers outside the declared source layout, including namespace packages. The full-suite gate separately derives its required top-level test witnesses from static source before pytest starts and requires each to reach a call outcome. A helper hiding a failing test with test = False cannot leave a green suite. A test that removes a later failing item during execution is rejected too.

The regression verifies graph rejection for both root helper files and namespace packages, actual full-suite rejection of the reported hidden witness, and rejection of a witness removed after collection. The earlier code-replacement regression still exercises the lower-level runtime gate explicitly after graph rejection. Nine affected tests pass; the final two affected tests also pass with the added namespace and mid-run removal cases. Graph, all three changed Python ratio checks, build, Twine and exact archives pass. Full 156-test CI is running at this head. Prior d0c13d5 passed all 156 on Python 3.10 and 3.12.

This remains a bounded trusted-check evidence protocol. No geometry or publication standing changes.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5c01f81094

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

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".

Comment thread tools/_boundary_pytest.py
@erinepshovel-code

Copy link
Copy Markdown
Contributor Author

@codex review

Please review exact head 13c212e93e2868c41814695e28c2572f4c90c55f (implementation af02fa6). The latest P1 parameter-item finding is repaired.

Observer retains the actual collected pytest item objects and counts call-phase reports per item identity. Both the full-suite gate and selected-check bootstrap reconcile those counts; deleting a later failing parameter invocation cannot be hidden by an earlier passing invocation of the same function. The static function inventory remains in place for witnesses hidden before collection. Missing item execution emits an ERROR receipt with a diagnostic, while actual skips retain SKIP classification.

The regression uses parameter IDs including a::b, removes the assertion-failing second item, and proves rejection through both run_suite and the public selected-check runner. A separate marked-skip regression covers setup-phase skipping. All 14 boundary tests were exercised; the initial added fixture hit its old five-second cold-start budget, and the final four affected tests pass after the fixture budgets and diagnostics were corrected. Three changed Python ratio checks, graph, build, Twine and exact archive gates pass. Full 156-test CI is running at this head.

The real archived-source Python 3.10 wheel replay passed 156 tests. Its source-install replay had one import-origin fixture failure; an isolated rerun with full receipt capture passed both ordinary-child/source and poisoned-cache cases. The import/child fixtures now have 15-second declared budgets and full JSON failure diagnostics, with 30/90-second outer budgets for multi-startup witnesses. The dedicated timeout-enforcement regression retains its explicit one-second timeout and elapsed-time assertion. Final artifact-chain acceptance remains pending the current-source matrix.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Bravo.

Reviewed commit: 13c212e93e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

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".

@erinepshovel-code
erinepshovel-code merged commit 30e7a0d into main Sep 12, 2026
5 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