diff --git a/docs/plans/bounded_full_audit_20260929.md b/docs/plans/bounded_full_audit_20260929.md new file mode 100644 index 0000000..73314b5 --- /dev/null +++ b/docs/plans/bounded_full_audit_20260929.md @@ -0,0 +1,108 @@ +# Bounded complete FULL audit + +Status: repair in progress. No production repair or complete audit is claimed. +Tracking: [issue 11](https://github.com/OpenHCSDev/NominalRefactorAdvisor/issues/11). +Base: `0844525ecaba93e090a064a4ae4914466b2dae60` (current remote main, +29 September 2026). Worktree: `fix/bounded-full-audit-20260929`. + +## Required behavior + +Retain the complete declared production and dependency source corpus, every +registered detector, authenticated source identities and existing native proof +admission. `--json --raw-findings --json-payload full` must retain source index, +observation graph and fibers, semantic-descent graph and refactor gate, +finding-recipe plan, and raw-record evidence. A compact `agent` or `summary` +payload is not a substitute. Increasing timeouts is not the repair. + +The motivating workload is OpenHCS plus its eight bundled libraries' production +source roots. Tests follow the existing discovery policy. Scientific images, +held-out annotations and notebook reference answers are not inputs to this task. + +## Source evidence at the base + +- `cli.py:754`, `JsonPayloadSections.compact_analysis_compatible`, excludes + source-index, observations/fibers and finding-recipe demand. +- `cli.py:3911`, the compact analysis branch, therefore does not serve FULL. +- `cli.py:3960`, the FULL branch, eagerly obtains all parsed modules before + `analyze_modules_with_cache`. +- `ast_tools.py:2738`, `parse_python_module_roots`, retains every parsed result + in a list. `PythonModuleRootParser.parsed_source_paths` also returns a list. +- `cli.py:1197`, `JsonPayloadBuilder`, consumes parsed modules for observations, + semantic descent and `CodemodSourceSnapshot.from_modules` for source-index and + recipe exports. These obligations cannot simply be removed from eligibility. +- `analysis.py:273`, `DetectorAnalysisWorkerPlan`, uses no process pool with one + requested analysis worker. The baseline requests one parse and analysis worker. + +The shared checkout at `52fe8b4` is preserved but is not the repair base: it +predates merged R1 detectors and subsequent native-proof changes. Historical +79-detector receipts do not establish current main's detector coverage. +The current source's `default_detector_types_for_analysis()` returns 85 +registered detectors. Import location was verified against the isolated worktree. + +## Current baseline and resource contract + +One FULL scan ran against the isolated current source and the same nine +analysis/context roots. Its separate receipt is +`scan-recovery-full-2048-cli-restart-current-main.*`; it does not overwrite the +earlier held-prelaunch receipt. Native scan budget is 160 seconds, guarded shell +shard 165 seconds, sampled scanner RSS ceiling 2 GiB. Start requires 11 GiB +available and memory PSI full at most 1 percent for ten seconds. Stop on less +than 8 GiB available, sampled RSS over the ceiling, or sustained pressure. +This is a diagnostic envelope, not a new production default or a proof of +constant-space behavior. + +Actual result: the guard stopped the scanner at 94 seconds when sampled RSS +reached 2,105,892 KiB, above the 2,097,152 KiB ceiling. Exit 143 reflects that +guard termination, not a native deadline. The FULL JSON is empty and the owned +scanner is absent after cleanup. Thus no complete coverage or full/raw R1 result +is available. This is a reproduced resource failure on current main with the +original source context, not just the earlier held-prelaunch condition. + +An attempted 20-second `py-spy` attach to this owned scanner was denied by the +operating system. It exited 1 and produced no profile. No privilege or kernel +policy was changed. The scan result is not presented as controlled timing. + +## Ownership and validation work + +Main owns integration, the baseline and public tracking. Darwin reviews existing +source/fact/snapshot lifetime owners; Nash independently reviews full-export, +cache-invalidation and proof tests. Both initial reviews completed read-only +against the same production base. Neither produced a production patch. Nash's +test worktree is clean; no test patch or test run was made. Both workers are now +closed to reduce the fleet after the desktop resource check warned about disk +headroom and swap. The two owned worktrees were moved intact under `/home/ts/wt`. + +The user explicitly directed that NRA must not block OpenHCS work. Use the +lightweight census/overlay scripts and bounded canonical Python queries for +local ownership investigation, followed by actual native regression and MCP +checks. Keep the FULL repair independent, without relabeling local evidence as +global audit completion. The next OpenHCS defect is the already reproduced +PolyStore POINT archive codec issue, tracked in PolyStore issue 12 / draft PR13. + +The census and overlay completed against current NRA production sources with +no parse warning. A bounded Python query through `parse_python_modules` and +`ModuleSyntaxIndex` inspected all 24 original classes in `roi.py` and 29 in +`roi_converters.py`, exposing the existing ImageJ converter family. It exited 0 +in 0.94 seconds at 64,300 KiB maximum RSS. This is original-syntax inspection, +not resolved native binding/MRO, invocation, codec or biological proof. + +The architecture review identified the decisive FULL lifetime problem: cached +`CodemodSourceContext` still carries AST-bearing `ClassFamilyIndex`, and recipe +compilation/simulation retains complete parsed snapshots. Extending bounded +projection/source-index/observation owners is insufficient unless native recipe +and proof materialization also gains a bounded original-identity lifetime. +Do not merely enable compact eligibility or defer the same eager snapshot. +The independent test review identified missing combined FULL cold/warm export, +complete-status, dependency-invalidation and native-proof rejection regressions. + +Prefer one source owner with bounded native materialization and derived exports +over another source roster, parser, proof cache or metadata mirror. Exact target +ownership remains under investigation. Preserve fail-closed absent, ambiguous, +changed and unsupported source/proof results. Tooling meets the same ownership +standard as product code (refactor-audit AGENT-8); a partially migrated second +route is not a completed repair (AGENT-2). + +Acceptance requires real all-detector/global completion, native FULL export +behavior, raw-record evidence, authenticated context invalidation, and bounded +wall time/RSS on this workload. Focused tests, cache hits or parse-only success +must be reported separately, not promoted to full audit or biological proof. diff --git a/docs/plans/r1_preparation_owner_357_20261001.md b/docs/plans/r1_preparation_owner_357_20261001.md new file mode 100644 index 0000000..658bac9 --- /dev/null +++ b/docs/plans/r1_preparation_owner_357_20261001.md @@ -0,0 +1,182 @@ +# R1 preparation owner checkpoint + +Source owner: Schrodinger/Codex. Integration and original complete acceptance: +parent. References: [NRA issue11](https://github.com/OpenHCSDev/NominalRefactorAdvisor/issues/11), +[pinned PR12](https://github.com/OpenHCSDev/NominalRefactorAdvisor/pull/12), +[OpenHCS issue357](https://github.com/OpenHCSDev/openhcs/issues/357). + +Worktree: `/home/ts/wt/nra-r1-preparation-owner-357-20261001`. +Branch: `fix/r1-preparation-owner-357-20261001`. +Pinned baseline: `673c062fc656e9c74f1eddcab30f036c9befbc1f`. +The baseline worktree and live main are read-only. No newer separate NRA +implementer was present in PR12/issue11 comments or open PRs at admission. +PR359's original consumer repair is already independently qualified; this +source assignment does not duplicate that consumer/revision staging owner. + +## Required relation and current evidence + +Retain original revisions `791650087e01c9d25766f12802a37296851f37cf` and +`3d58912d6e74e4b3dd4fa9e07a6b4a9d7dd9c7e4`, all three production roots and +eight exact recursive dependencies. Original repaired consumer SHA256: +`4c6282f52e7c188068dd9d63399f5522a7cb1d222504d0c0b809be10303884ca`. +No detector copy, context pruning, source-cache spoofing, proof weakening, +resource increase or global completion claim. + +Original complete attempt: 165.05s, 178.82MiB, exit-9. Original phase diagnostic: +60.03s, 179.55MiB, exit124. Its 15/30/45s stacks point into preparation before +the first scan_counts result, not a dominant-cost proof. Preserve both failures. +The immutable diagnostic and transcript are the parent's +`paired350-installed-20261001/diagnose-r1-phase-20261001.sh` and +`producer-installed-20261001/paired350-r1-phase-diagnostic-20261001.{log,command.json}` +under `/home/ts/wt/openhcs-issue-batch-20260929`. +Its archived scratch address is terminal and must not be reused. + +## Admission and next source boundary + +Serial source diagnostics/tests only: one CPU, kernel512MiB/no swap, outer60s. +Exact frozen installed Python3.12, read-only dependencies. No installs, +downloads, native/UI/MCP/science, shared locks, subagents or paid provider calls. +Startup helper reported 18.0GiB available RAM, home7.5GiB, swap13.6GiB and +advisory critical disk/swap status. No additional worker fleet is started. +The new owned disposable root is +`/home/ts/.cache/agent-scratch/nra-r1-preparation-owner-357-20261001`. +Retain recipes/profiles/resource receipts before cleaning exact owned scratch. + +No repository/ancestor AGENTS.md exists in the pinned source checkout or +checked `/home/ts/code/projects` ancestry. Supplied standing AGENTS instructions +and current NRA/refactor-audit skills remain binding. + +First obtain one bounded useful original-source profile, not another identical +full scan. Trace actual determining declarations and their consumers before +choosing a production change. Existing CollectedFamily/cache/source identities +and proof admission remain the authority. Shared algorithms must live on an +existing behavior-owning ancestor; leaves provide only varying hooks. Independent +capabilities compose through genuine cooperative MRO only where justified. +Relevant review: IMPL-12/13 repeated preparation, BOUND-1/2 admission boundaries, +MEMB-1/2/5 declaration-derived inventories and TIME-1/3/9 replacement closure. +Do not invent container dispatch families, a parallel schema or a compatibility +facade. A new family/capability must need only its declaration, not consumer edits. + +Status: source implementation checkpoint. Original complete two-revision R1, +installed acceptance and global85-detector/FULL audit remain unqualified. + +## Admitted source-owner move (2026-10-01) + +The bounded original-consumer profile contains eight parses and is not a full +audit. `CompactSemanticModuleProjectionFamily._collect` consumed 3.231s; +its presentation visitor and `DeclaredTypeCheckModule.collect` independently +walked the same live AST (the check visitor's function handlers alone consumed +0.702s). AST admission checks consumed 0.829s overall: the sparse predecessor +stack does not establish them as dominant. No whole-context dominance is claimed. + +Required answers are unchanged presentation/class supplements and unchanged +declared-attribute checks, including ignored lambda checks, shadowed builtins, +nested scope ownership and exact original source locations. These independently +meaningful capabilities already inherit `ClassFunctionStackNodeVisitor`; that +ancestor owns stack lifecycle and the single traversal endpoints. A source-bound +ancestor owns the shared parsed-module context, not a second identity store. +The compact semantic collector composes both existing capabilities via C3 and +cooperative `super()`, rather than invoking a second module traversal. The +type-check record owns construction from its collector. No consumer type switch, +new registry, detector copy or cache policy change is required. + +Catalog review: IMPL-12/13 (duplicate traversal mechanism), IMPL-4 (capabilities +must really participate in cooperative traversal), MEMB-1/2 (no parallel roster), +IDEN-5 (one source context), TIME-1/3 (delete second traversal; no fallback facade). +The supported refactor DSL does not certify this cooperative visitor fusion; +it is a manually authored source refactor with separate behavioral/proof gates. +No native equivalence, installed acceptance or global audit claim follows. + +## First behavioral checkpoint + +Composition/publication suite: 20 passed, 5.79s wall, 86.79MiB maxRSS. +The first invocation rejected pytest's inherited parallel flags (exit4); the +next retained one failed new-case test (6 passed) exposing presentation early +returns hiding another capability's events. Fixed by capability-local subtree +suppression and continued shared traversal, not weakened assertions. Subsequent +check cases cover projected assignment/annotated-assignment/return descendants. + +Original four-file source-family comparison: identical raw SHA256 and content +signatures, 458 presentations, 36 declared checks, 292 class supplements. +Collection 0.708180s baseline -> 0.619938s candidate (single sample, about12.5%). +Process wall was 2.77s -> 3.61s; no cold-process/full-context improvement claim. +Baseline/candidate maxRSS 80.92/83.10MiB. No source pruning of the original +two-revision acceptance inputs is licensed by this bounded component comparison. + +Broader five-file test shard: INCOMPLETE exit124, 60.01s, 88.42MiB. Partial dots +are not an accepted test count. Remaining checks split under the same bounds. +All failures and profiles remain retained for the final source handoff. + +## Frozen source handoff + +Production checkpoint `2ae2309967904e0195f0d8e75b9b9988c736a52a`. +[Validation index](../validation/r1_preparation_owner_357_20261001/INDEX.md) +and [freeze manifest](../validation/r1_preparation_owner_357_20261001/freeze-manifest.json) +retain exact commands, profiles, source/consumer hashes, all failed attempts, +ownership/new-case review and cleanup. Draft PR16 is the visible source vehicle. + +83distinct source cases pass; one native proof test remains failing identically +on candidate and unchanged baseline with `unproved_execution_effects`. The60s +broader shard timeout, first pytest rejection and repaired new-case failure are +retained. No proof weakening or blanket success claim. Peak observed source +shard443.25MiB remained below512MiB. + +Canonical four-file component comparison via original module/path owner gives +identical content signatures at0.747386 ->0.612257s collection in one sample; +cold-process wall2.99 ->3.73s, so no overall startup claim. Original unchanged +consumer profiles both stop intentionally at20CPU (exit75); semantic family +cost3.231 ->2.853s, second standalone check traversal absent, not a completed +two-revision comparison. Original3roots/eightexactdeps remain intact. + +Parent retains original R0/R1 160/165complete qualification and installed +acceptance. Global85detector/FULL remains separately unqualified. No native/UI, +science replay, install, lock, provider, download or other-owner source change. +Owned19MiB scratch removed after handle/process proof and evidence preservation; +the parent's original terminal cache address was neither reused nor removed. + +## Authorized same-node follow-through + +At predecessor c6ec13f the new independent same-node experiment demonstrated +that projection handlers bypassed downstream Assign/AnnAssign/Return hooks, +although earlier Call-only extension evidence passed. Source19f21b6 repairs +this in the existing shared traversal owner, preserves local suppression and +single traversal, and removes the bypassing helper. No confirmed installed +regression is asserted. The [follow-through receipt](../validation/r1_preparation_owner_357_20261001/same-node-followthrough/README.md) +and its separate freeze manifest retain both failing experiments, 47 distinct +passing current source cases (7 new), unchanged original component signatures, +resource bounds and cleanup. Original failure evidence remains unchanged; +parent's installed run and full qualification remain untouched. + +## Original full-context failure and bounded publication profile + +Parent's exact original18910a5 qualification is terminal ScanDeadlineExceeded160s, +exit1/164.42s/187.41MiB, not a pass. The latest [publication/preparation receipt](../validation/r1_preparation_owner_357_20261001/publication-profile/README.md) +retains that witness and one bounded45CPU profile inside the unchanged60s source +envelope. AST retention consumed2.752/45.582s sampled work, not demonstrated +overall dominance. Source remains19f21b6. A concrete unresolved IMPL-12/13 +duplication is recorded: the two composed function capabilities independently +rescan the same lexical body bindings (4393 calls each). It requires source-scope +owner reuse with lifecycle/proof behavior, not another cache authority or guard +waiver. This profile/review checkpoint adds no production fix or new test pass. + +## Shared determining function scope + +Sourcefbee396 extends the existing source-bound ancestor to own one original +lexical binding determination per function event, supplied through cooperative +context hooks to the independent presentation/check capabilities. Repeated leaf +calls/event overrides and copied unsafe postlude name-stack lifecycle are deleted; +the existing owning stack ancestor now protects both traversal and postlude. +No cache, store, roster, copied algorithm or proof/AST-admission waiver is added. +BindingCensus supplies only a new declaration/hook, participates before/after C3 +and demonstrates real nested/async ordering, freshness and exception restoration. + +The [source receipt](../validation/r1_preparation_owner_357_20261001/function-scope-reuse/README.md) +and [freeze](../validation/r1_preparation_owner_357_20261001/function-scope-reuse/freeze-manifest.json) +retain the red two-determination experiment,79 distinct current source passes +(12 new), identical complete component signatures and exact bounds/cleanup. +Single-sample component timing is essentially flat; no complete R1 speedup is +claimed. Original parent failure and baseline-equal native proof failure remain +retained. Class syntax facet binding requests remain independently owned. +Parent retains original160/165/512MiB complete qualification and installed gate; +global85-detector/FULL remains separately unqualified. Source development remains +active, not terminated by a fixed submission count or renamed a global pass. diff --git a/docs/validation/r1_preparation_owner_357_20261001/INDEX.md b/docs/validation/r1_preparation_owner_357_20261001/INDEX.md new file mode 100644 index 0000000..aa56a69 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/INDEX.md @@ -0,0 +1,145 @@ +# Source checkpoint and retained evidence + +Latest source migration: +[shared function-scope preparation](function-scope-reuse/README.md), sourcefbee396. +79 distinct current source cases pass, including12 new cooperative capability +cases. Full R1 and installed/global acceptance remain unqualified; prior original +failure is retained below. No identical full attempt was repeated. + +Latest terminal qualification/profile: +[publication/preparation cost and unresolved ownership](publication-profile/README.md). +Original full-context18910a5 R1 FAILED at160s; no production changes in this +diagnostic checkpoint. Historical pending statuses below are not current success. + +Current authorized follow-through: +[same-node cooperative receipt](same-node-followthrough/README.md), source19f21b6. +The original checkpoint/results below remain historical evidence, not overwritten +or retrospectively qualified by the follow-through. + +Source owner Schrodinger/Codex; integration and original R0/R1/installed +qualification parent. Draft https://github.com/OpenHCSDev/NominalRefactorAdvisor/pull/16. +Production source checkpoint `2ae2309967904e0195f0d8e75b9b9988c736a52a`; +baseline `673c062fc656e9c74f1eddcab30f036c9befbc1f` remains unchanged/clean. +No native/UI/science, installations, shared locks, providers or downloads. + +## Common execution envelope + +Read-only interpreter: +`/home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python`. +Python3.12.3, `-I -B`, source import explicitly pinned before importing NRA. +Each process: `systemd-run --user --scope --quiet -p MemoryMax=512M +-p MemorySwapMax=0 -p CPUQuota=100%`, `/usr/bin/time -v`, +`timeout --signal=TERM --kill-after=3s 60s`, `taskset -c 0`. +Serial processes only. `PYTHONDONTWRITEBYTECODE=1`; OMP/OPENBLAS/MKL/NUMBA +thread counts1. XDG_CACHE_HOME, NRA_CACHE_HOME and TMPDIR all under the new +owned scratch root, never the terminal parent diagnostic address. +Tests disable plugin autoload, `-o addopts=`, `-p no:cacheprovider` and have +explicit separate owned basetemps. The command line in every log identifies +the exact tests/arguments. Source diagnostic drivers import original NRA APIs; +none copies a detector or implements another parser/proof engine. + +Tests/diagnostics cwd is the owned NRA WT except baseline proof test08 (pinned +baseline WT) and original-context profiles (original OpenHCS UI workflow WT). +Original-context profiles retain consumer SHA256 +`4c6282f52e7c188068dd9d63399f5522a7cb1d222504d0c0b809be10303884ca`, +the original791650087 ->3d58912 revisions, all3roots/eightexactdeps and +`--budget-seconds160`. The SIGPROF20CPU diagnostic stop is separate from the +original SIGALRM deadline. Git packed window/limit8m/128m match admission. + +## Results (not original complete qualification) + +| Receipt | Outcome | Wall seconds | Peak KiB | +| --- | --- | ---: | ---: | +| cooperative-tests-01.log | rejected pytest parallel defaults; exit4 | 2.67 | 83596 | +| cooperative-tests-02.log | 6passed/1failed; capability event lost | 2.77 | 85216 | +| cooperative-tests-03.log | 20passed | 5.79 | 88868 | +| proof-tests-04.log | INCOMPLETE exit124; partial dots not counted | 60.01 | 90540 | +| cache-tests-05.log | 17passed/4CLI tests deferred to09/10 | 30.23 | 89540 | +| owner-tests-06.log | 32passed | 7.55 | 87268 | +| graph-tests-07.log | 20passed/1native proof failure | 14.84 | 453892 | +| predecessor-test-08.log | same native proof failure on673c062f | 2.18 | 86920 | +| cli-tests-09.log | 12passed (includes10 repeated focused cases) | 17.91 | 89560 | +| cli-tests-10.log | 2passed | 18.57 | 88644 | +| baseline-profile.log +baseline.pstats | INCOMPLETE exit75,20CPU | 23.37 | 122328 | +| candidate-profile.log +candidate.pstats | INCOMPLETE exit75,20CPU | 23.34 | 121804 | + +Accepted source shards cover83distinct passing cases plus one retained failing +native-capture case; do not sum repeated cases or partial dots. The failing +`test_completion_does_not_repeat_whole_module_syntax_walk` raises +`CapturedReferenceRejection: Object capture remains open: unproved_execution_effects` +on both candidate and baseline under the same frozen environment. Its admission +is not weakened, skipped or converted to success. No blanket green-suite claim. + +The initial new-case failure02 exposed another capability being hidden by +presentation early returns. It was fixed, not waived: projected assignment, +annotated assignment and return now suppress only presentation descendants, +while continuing shared traversal. Lambda check exclusion, scope/shadowing, +exception unwind, one-event-per-call and declaration-only extension are tested. + +Original-context partial profile: semantic family collection3.231 ->2.853s; +`DeclaredTypeCheckModule.collect` second traversal is absent in candidate, +`from_collector` called8times. Generic AST visits534623 ->411402. Both samples +have8parse calls but stop at different syntax events; these are NOT full-context +throughput estimates or R1 results. AST retention checks0.829 ->0.957s are +preserved, not declared dominant or weakened. + +`family-parity-{baseline,candidate}.log` is the initial source-component +comparison. `canonical-parity-{baseline,candidate}.log` improves its provenance: +the existing PythonModuleRootParser supplies actual package/module identities. +Both canonical runs retain the same four baseline source files/rawSHA256s and +identical complete content signatures, 458presentations/36checks/292supplements. +Collection total0.747386 ->0.612257s in this single sample (~18.1%); process +wall2.99 ->3.73s. **No cold-process or end-to-end speed improvement claim.** + +## Ownership and architecture review + +The original ClassFunctionStackNodeVisitor ABC remains traversal/stack owner. +ParsedModuleClassFunctionStackNodeVisitor centralizes the one parsed source +context formerly assigned separately by both capabilities. The concrete +composition declaration owns C3 order: presentation ->declared check ->shared +source/scope ancestor ->ast.NodeVisitor. The shared record constructor belongs +to DeclaredTypeCheckModule. No copied extraction body or fallback facade. + +Required pairs: presentation observations ->semantic family; declared checks +->semantic family; class/function scope ->both capabilities; parsed-module +identity ->both capabilities. Lambda checks remain forbidden while another +capability's lambda events remain admitted. Previously projected descendants +remain forbidden for the presentation capability, not for declared checks. +This preserves distinct independently varying questions, not a merged record. + +Catalog: IMPL-12/13 duplicate traversal removed; IMPL-4 completed cooperative +participation; IMPL-1/2/3/5 reviewed, no new domain string/enum/type dispatch; +MEMB-1/2 no roster introduced; IDEN-5 one source context; TIME-1/3 no duplicate +cutover/compatibility path. Python AST's external vocabulary remains honored. +The new-case CallCensus test adds only its declaration/hooks and a composition +declaration: no generic consumer edits. It proves the admitted event contract, +not every possible future AST policy. No ornamental MI or mirrored schema/store. + +`owner-census-*.log`: original ModuleSyntaxIndex census and compact class-family +projection; canonical variants also join through original class-family index. +Baseline212ClassDefs,211index-admitted,1OPEN function-nested Visitor; candidate +214ClassDefs,213index-admitted, same1OPEN. Alternative owners are retained, not +heuristically invented. Census is a source-review receipt, not global proof. +This cooperative fusion is manually authored; no unsupported DSL/native +equivalence certificate or global ancestry-minimum certificate is claimed. + +## Remaining limits / cleanup + +Parent runs original160NRA/165wall two-revision qualification and original R0, +then any paired installed acceptance. Global85detector/FULL is separately +unqualified. No baseline/main/backing package or other owner's source modified. +The original archived failure/60s diagnostic remain immutable predecessor +evidence, and their old scratch address was never reused or cleaned by us. + +All retained receipts/profiles have SHA256 in SHA256SUMS. Source file digests +and exact predecessor references are in freeze-manifest.json. Only the owned +`/home/ts/.cache/agent-scratch/nra-r1-preparation-owner-357-20261001` is disposable; +cleanup disposition is recorded after process/open-handle proof below. + +Cleanup complete: lsof +D exact owned root returned1/no handles; scoped process +search found no remaining worker. Every retained receipt/profile verified with +sha256sum -c before removal. realpath matched the explicit owned root. Removed +only that19MiB root with `rm -r --` and verified absence; disposable synthetic +test/cache artifacts are removed permanently, while all logs/profiles/recipes +are retained here. No parent cache, original archive, input, installed package, +baseline WT or other owner's work was removed. All tool PTY sessions terminal. diff --git a/docs/validation/r1_preparation_owner_357_20261001/SHA256SUMS b/docs/validation/r1_preparation_owner_357_20261001/SHA256SUMS new file mode 100644 index 0000000..74e3a4f --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/SHA256SUMS @@ -0,0 +1,21 @@ +65332a5bda92c10a350d94d073188e0382db91cf75d5ba988d694e9b901915e9 docs/validation/r1_preparation_owner_357_20261001/baseline-profile.log +3e496ef94773dd64876446429bcc455cb7d996851cbcfc370d20361a2f21bcd6 docs/validation/r1_preparation_owner_357_20261001/cache-tests-05.log +a944eeb1f6fb6f6b7230a8717ccf4a5917bf88e6a2aa5189901586081616a8d4 docs/validation/r1_preparation_owner_357_20261001/candidate-profile.log +934ead182a197733baae37d9e195ef58e3dccc6b705a1bb2d0b318fc4ecda244 docs/validation/r1_preparation_owner_357_20261001/canonical-parity-baseline.log +f09fcd3ecc2985960bd6358e67f1124fe603b4fadb0dbbfa17c3514ffdbbefa2 docs/validation/r1_preparation_owner_357_20261001/canonical-parity-candidate.log +3ceeab729e7e11668c1a71e8368fbb2158c8e10e40b5ed268a53ff6a1120adf4 docs/validation/r1_preparation_owner_357_20261001/cli-tests-09.log +e196dbda3cd969b307aacead923e98406bc8fd8c5bc7f0f0dba5b19b74f25d35 docs/validation/r1_preparation_owner_357_20261001/cli-tests-10.log +034296078fcbf48db6fd6e6d807ba2703861d8babb4d018697942d184ff493c3 docs/validation/r1_preparation_owner_357_20261001/cooperative-tests-01.log +7a30b4c19b77a926221dff2d20537332efd8da04f39fcbfdd20b6d3881cf0687 docs/validation/r1_preparation_owner_357_20261001/cooperative-tests-02.log +b1ab44f74e2b28eef37c19303326807bd6af38fbd8e7b6424cece0a6230fe333 docs/validation/r1_preparation_owner_357_20261001/cooperative-tests-03.log +cf053c39ee35d9f216141e55e620d2bfc4ac3d233a83d64db32687ec4797c49f docs/validation/r1_preparation_owner_357_20261001/family-parity-baseline.log +9fdf9f8e2df3323d972651d017235f6666ff7d6e6b8efdfc61b514ba2ed13aa3 docs/validation/r1_preparation_owner_357_20261001/family-parity-candidate.log +3311a969fccb131fe8e2f48b3cf895d9e83efa8690e95d24b8016940882befce docs/validation/r1_preparation_owner_357_20261001/graph-tests-07.log +20839f52524d94ce65a5215ca0ed6994a00e90bcc447a58e3b7d69635106a854 docs/validation/r1_preparation_owner_357_20261001/owner-census-baseline.log +48ccfaaf8507242c977fc966386ccf121831ad00ae53d23f035c0b984f645cc0 docs/validation/r1_preparation_owner_357_20261001/owner-census-canonical-baseline.log +508219f96461a45e8383c1ef3f6064bbd50118534722657b8ac3dc6fc3ffc6cf docs/validation/r1_preparation_owner_357_20261001/owner-census-canonical-candidate.log +f40909e1e611784f8210ec8dac394622d7b9be622b2d60fcc086d3dbc9786da1 docs/validation/r1_preparation_owner_357_20261001/owner-tests-06.log +71aaf21f0239dfba0a7036f84567801b0805168a270e98b06a762cf69d1a11bd docs/validation/r1_preparation_owner_357_20261001/predecessor-test-08.log +e01251e40333dc68ff9c7ceb36e12192ec49b6149b566eee5b8731e8641ad691 docs/validation/r1_preparation_owner_357_20261001/proof-tests-04.log +d1f93c92abf21649b4a3380478f105ea02325e8e3bfb2b40bd83da8f5466e8db docs/validation/r1_preparation_owner_357_20261001/baseline.pstats +45f1c4744d5391e54dc67c217e5648b4257bc0f9dd31d0f616e41f4407e1b0e0 docs/validation/r1_preparation_owner_357_20261001/candidate.pstats diff --git a/docs/validation/r1_preparation_owner_357_20261001/baseline-profile.log b/docs/validation/r1_preparation_owner_357_20261001/baseline-profile.log new file mode 100644 index 0000000..79125f5 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/baseline-profile.log @@ -0,0 +1,160 @@ + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/tools/profile_r1_preparation.py", line 63, in + raise SystemExit(main()) + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/tools/profile_r1_preparation.py", line 49, in main + runpy.run_path(str(args.consumer), run_name="__main__") + File "", line 286, in run_path + File "", line 98, in _run_module_code + File "", line 88, in _run_code + File "/home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py", line 338, in + raise SystemExit(main()) + File "/home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py", line 326, in main + result = compare( + File "/home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py", line 310, in compare + scan_counts(snapshot, roots, changed, cache_root=work / "nra") + File "/home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py", line 183, in scan_counts + result = analyze_compact_roots_with_cache( + File "/home/ts/.pyenv/versions/3.12.3/lib/python3.12/contextlib.py", line 81, in inner + return func(*args, **kwds) + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py", line 2292, in analyze_compact_roots_with_cache + build_results = worker_plan.map( + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py", line 288, in map + return [function(item) for item in items] + File "/home/ts/.pyenv/versions/3.12.3/lib/python3.12/contextlib.py", line 81, in inner + return func(*args, **kwds) + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py", line 1265, in build_compact_projection_shard + full_batch = collect_family_batch(module, family) + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py", line 2282, in collect_family_batch + for item in COLLECTED_ITEM_PROJECTION.flatten(family.collect(parsed_module)) + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py", line 3908, in collect + return cls._collect(parsed_module, None) + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py", line 4013, in _collect + public_export_contract=module_public_export_contract(parsed_module), + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py", line 2755, in module_public_export_contract + LEXICAL_SCOPE_BINDING_AUTHORITY.bound_names(module.body) + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/lexical_bindings.py", line 612, in bound_names + collector.visit(node) + File "/home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py", line 407, in visit + return visitor(node) + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/lexical_bindings.py", line 542, in visit_ClassDef + self.bound_names.add(node.name) +INCOMPLETE: diagnostic CPU profiling bound reached + 38096319 function calls (35410770 primitive calls) in 20.618 seconds + + Ordered by: cumulative time + List reduced from 1569 to 50 due to restriction <50> + + ncalls tottime percall cumtime percall filename:lineno(function) + 1 0.000 0.000 20.790 20.790 :262(run_path) + 1 0.000 0.000 20.787 20.787 :91(_run_module_code) + 1 0.000 0.000 20.787 20.787 :65(_run_code) + 43/1 0.003 0.000 20.787 20.787 {built-in method builtins.exec} + 1 0.000 0.000 20.787 20.787 /home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py:1() + 1 0.000 0.000 20.780 20.780 /home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py:319(main) + 1 0.001 0.001 20.779 20.779 /home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py:277(compare) + 1 0.000 0.000 18.912 18.912 /home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py:169(scan_counts) + 4/1 0.015 0.004 18.910 18.910 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/contextlib.py:78(inner) + 1 0.043 0.043 18.907 18.907 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py:1836(analyze_compact_roots_with_cache) + 16 0.000 0.000 8.723 0.545 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:2267(collect_family_batch) + 1 0.000 0.000 6.064 6.064 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py:281(map) + 3 0.001 0.000 6.048 2.016 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py:1100(build_compact_projection_shard) + 10 0.000 0.000 4.164 0.416 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:2292(collect_family_items) +648502/16788 0.452 0.000 3.783 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:403(visit) +67307/33811 0.089 0.000 3.742 0.000 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/scan_cache.py:41(invoke) +534623/11785 0.735 0.000 3.607 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:409(generic_visit) + 8 0.000 0.000 3.567 0.446 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:3903(collect) + 8 0.003 0.000 3.567 0.446 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:3981(_collect) + 8 0.000 0.000 3.231 0.404 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:4325(collect) + 8 0.000 0.000 3.231 0.404 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:4345(_collect) + 2 0.001 0.001 3.172 1.586 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py:2923(cache_identity) + 2 0.001 0.000 3.171 1.586 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis_cache.py:824(from_source_paths) +3346/1536 0.001 0.000 2.586 0.002 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:1543(traverse_node_body) + 19039 0.034 0.000 2.475 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/pathlib.py:1228(resolve) + 3070 0.009 0.000 2.159 0.001 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis_cache.py:842() + 3073 0.016 0.000 2.148 0.001 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/cache_checkout.py:88(checkout_relative_path) + 22109 0.035 0.000 2.142 0.000 :431(realpath) + 8 0.105 0.013 2.105 0.263 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:5321(_compact_class_syntax_facets) +1180/1165 0.022 0.000 2.078 0.002 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:4842(visit_FunctionDef) + 8 0.000 0.000 2.062 0.258 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:657(_parse_source_module) + 22109 0.407 0.000 1.951 0.000 :440(_joinrealpath) + 7678 0.073 0.000 1.901 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/pathlib.py:663(relative_to) + 986 0.002 0.000 1.864 0.002 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:1556(visit_ClassDef) + 9/1 0.004 0.000 1.695 1.695 /home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py:151(materialize) + 1534 0.006 0.000 1.684 0.001 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/cache_checkout.py:37(_admitted_checkout_path) + 9/1 0.023 0.003 1.657 1.657 /home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py:84(materialize) +2360/2330 0.004 0.000 1.618 0.001 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:1564(visit_FunctionDef) + 8 0.001 0.000 1.614 0.202 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:3020(module_syntax_index) + 8 0.770 0.096 1.613 0.202 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:2943(build) + 3068 0.004 0.000 1.609 0.001 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/cache_checkout.py:40() + 6136 0.007 0.000 1.605 0.000 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/cache_checkout.py:28(relative_path) +136269/90820 0.101 0.000 1.563 0.000 {built-in method builtins.any} + 8061013 1.344 0.000 1.528 0.000 {built-in method builtins.isinstance} + 394817 0.292 0.000 1.457 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:369(walk) + 493 0.004 0.000 1.444 0.003 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:4811(visit_ClassDef) + 15 0.001 0.000 1.395 0.093 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:2153(store_items) + 4 0.000 0.000 1.350 0.338 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/implementation_identity.py:57(declaration_implementation_module_names) + 3 0.000 0.000 1.350 0.450 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/implementation_identity.py:65(_declaration_implementation_module_names) + 3 0.002 0.001 1.350 0.450 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/implementation_identity.py:48(implementation_module_names) + + + 38096319 function calls (35410770 primitive calls) in 20.618 seconds + + Ordered by: internal time + List reduced from 1569 to 30 due to restriction <30> + + ncalls tottime percall cumtime percall filename:lineno(function) + 8061013 1.344 0.000 1.528 0.000 {built-in method builtins.isinstance} + 8 0.770 0.096 1.613 0.202 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:2943(build) +534623/11785 0.735 0.000 3.607 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:409(generic_visit) +3368723/3368243 0.721 0.000 0.722 0.000 {built-in method builtins.getattr} + 2832679 0.688 0.000 0.966 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:257(iter_fields) + 259408 0.675 0.000 0.675 0.000 {built-in method posix.lstat} +23482/21207 0.622 0.000 0.647 0.000 {method 'read' of '_io.BufferedReader' objects} + 1054402 0.589 0.000 1.285 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:269(iter_child_nodes) + 286212 0.471 0.000 0.826 0.000 :71(join) + 8 0.453 0.057 0.996 0.125 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:476(semantic_python_source_hash) +648502/16788 0.452 0.000 3.783 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:403(visit) + 22109 0.407 0.000 1.951 0.000 :440(_joinrealpath) + 64090 0.402 0.000 0.713 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/pathlib.py:387(_parse_path) +142717/15 0.345 0.000 0.748 0.050 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:1932(_stable_collected_family_cache_value) +252505/98 0.345 0.000 1.348 0.014 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/implementation_identity.py:98(_visit) + 394817 0.292 0.000 1.457 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:369(walk) +1762049/1477797 0.271 0.000 0.322 0.000 {built-in method builtins.len} + 65258 0.261 0.000 0.962 0.000 {built-in method posix.stat} + 213539 0.233 0.000 0.404 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/pathlib.py:358(__init__) + 204562 0.224 0.000 0.907 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/pathlib.py:380(with_segments) + 211984 0.224 0.000 0.398 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/pathlib.py:484(_str_normcase) +187791/20 0.221 0.000 0.829 0.041 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:1106(retains_python_ast) + 2596 0.214 0.000 0.214 0.000 {built-in method builtins.compile} + 171268 0.196 0.000 0.320 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/tokenize.py:569(_generate_tokens_from_c_tokenizer) + 243397 0.189 0.000 1.094 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/pathlib.py:437(__str__) + 212005 0.182 0.000 0.583 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/pathlib.py:1157(__init__) + 380464 0.180 0.000 1.076 0.000 {method 'extend' of 'collections.deque' objects} + 668875 0.173 0.000 0.173 0.000 {built-in method sys.intern} + 692161 0.164 0.000 0.164 0.000 {method 'append' of 'list' objects} + 148256 0.157 0.000 1.125 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/pathlib.py:277(__getitem__) + + +Command exited with non-zero status 75 + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -u /home/ts/wt/nra-r1-preparation-owner-357-20261001/tools/profile_r1_preparation.py --consumer /home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py --profile /home/ts/.cache/agent-scratch/nra-r1-preparation-owner-357-20261001/baseline.pstats --cpu-seconds 20 -- --base 791650087e01c9d25766f12802a37296851f37cf --head 3d58912d6e74e4b3dd4fa9e07a6b4a9d7dd9c7e4 --scratch-root /home/ts/.cache/agent-scratch/nra-r1-preparation-owner-357-20261001/baseline-r1 --budget-seconds 160" + User time (seconds): 22.22 + System time (seconds): 1.01 + Percent of CPU this job got: 99% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:23.37 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 122328 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 57953 + Voluntary context switches: 25045 + Involuntary context switches: 24487 + Swaps: 0 + File system inputs: 0 + File system outputs: 65016 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 75 diff --git a/docs/validation/r1_preparation_owner_357_20261001/baseline.pstats b/docs/validation/r1_preparation_owner_357_20261001/baseline.pstats new file mode 100644 index 0000000..1132904 Binary files /dev/null and b/docs/validation/r1_preparation_owner_357_20261001/baseline.pstats differ diff --git a/docs/validation/r1_preparation_owner_357_20261001/cache-tests-05.log b/docs/validation/r1_preparation_owner_357_20261001/cache-tests-05.log new file mode 100644 index 0000000..12ccf92 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/cache-tests-05.log @@ -0,0 +1,48 @@ +============================= test session starts ============================== +platform linux -- Python 3.12.3, pytest-8.3.5, pluggy-1.6.0 -- /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python +rootdir: /home/ts/wt/nra-r1-preparation-owner-357-20261001 +configfile: pyproject.toml +collecting ... collected 21 items / 4 deselected / 17 selected + +tests/test_exact_cache_coverage.py::test_subset_aggregate_cannot_satisfy_full_request[0] PASSED [ 5%] +tests/test_exact_cache_coverage.py::test_subset_aggregate_cannot_satisfy_full_request[1] PASSED [ 11%] +tests/test_exact_cache_coverage.py::test_equal_size_distinct_subsets_have_distinct_aggregate_identities PASSED [ 17%] +tests/test_exact_cache_coverage.py::test_registry_signature_owner_resolves_requested_roster[None] PASSED [ 23%] +tests/test_exact_cache_coverage.py::test_registry_signature_owner_resolves_requested_roster[0] PASSED [ 29%] +tests/test_exact_cache_coverage.py::test_registry_signature_owner_resolves_requested_roster[1] PASSED [ 35%] +tests/test_exact_cache_coverage.py::test_registry_signature_owner_resolves_requested_roster[2] PASSED [ 41%] +tests/test_exact_cache_coverage.py::test_default_roster_is_resolved_before_signature_cache_lookup PASSED [ 47%] +tests/test_exact_cache_coverage.py::test_all_identity_factories_preserve_requested_roster[None] PASSED [ 52%] +tests/test_exact_cache_coverage.py::test_all_identity_factories_preserve_requested_roster[0] PASSED [ 58%] +tests/test_exact_cache_coverage.py::test_all_identity_factories_preserve_requested_roster[1] PASSED [ 64%] +tests/test_exact_cache_coverage.py::test_interrupted_compact_scan_does_not_publish_aggregate PASSED [ 70%] +tests/test_exact_cache_coverage.py::test_exact_identity_drift_invalidates_findings_and_summary[source] PASSED [ 76%] +tests/test_exact_cache_coverage.py::test_exact_identity_drift_invalidates_findings_and_summary[config] PASSED [ 82%] +tests/test_exact_cache_coverage.py::test_exact_identity_drift_invalidates_findings_and_summary[scope] PASSED [ 88%] +tests/test_exact_cache_coverage.py::test_exact_identity_drift_invalidates_findings_and_summary[registry] PASSED [ 94%] +tests/test_exact_cache_coverage.py::test_exact_identity_drift_invalidates_findings_and_summary[engine] PASSED [100%] + +====================== 17 passed, 4 deselected in 27.48s ======================= + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -c import sys; sys.path.insert(0,"/home/ts/wt/nra-r1-preparation-owner-357-20261001"); import pytest; raise SystemExit(pytest.main(["-v","-o","addopts=","-p","no:cacheprovider","--basetemp=/home/ts/.cache/agent-scratch/nra-r1-preparation-owner-357-20261001/pytest-cache-05","tests/test_exact_cache_coverage.py","-k","not cli"]))" + User time (seconds): 26.22 + System time (seconds): 2.18 + Percent of CPU this job got: 93% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:30.23 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 89540 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 298224 + Voluntary context switches: 274 + Involuntary context switches: 731 + Swaps: 0 + File system inputs: 0 + File system outputs: 7768 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 0 diff --git a/docs/validation/r1_preparation_owner_357_20261001/candidate-profile.log b/docs/validation/r1_preparation_owner_357_20261001/candidate-profile.log new file mode 100644 index 0000000..a47b3ca --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/candidate-profile.log @@ -0,0 +1,180 @@ + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/tools/profile_r1_preparation.py", line 65, in + raise SystemExit(main()) + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/tools/profile_r1_preparation.py", line 49, in main + runpy.run_path(str(args.consumer), run_name="__main__") + File "", line 286, in run_path + File "", line 98, in _run_module_code + File "", line 88, in _run_code + File "/home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py", line 338, in + raise SystemExit(main()) + File "/home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py", line 326, in main + result = compare( + File "/home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py", line 310, in compare + scan_counts(snapshot, roots, changed, cache_root=work / "nra") + File "/home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py", line 183, in scan_counts + result = analyze_compact_roots_with_cache( + File "/home/ts/.pyenv/versions/3.12.3/lib/python3.12/contextlib.py", line 81, in inner + return func(*args, **kwds) + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py", line 2292, in analyze_compact_roots_with_cache + build_results = worker_plan.map( + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py", line 288, in map + return [function(item) for item in items] + File "/home/ts/.pyenv/versions/3.12.3/lib/python3.12/contextlib.py", line 81, in inner + return func(*args, **kwds) + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py", line 1265, in build_compact_projection_shard + full_batch = collect_family_batch(module, family) + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py", line 2303, in collect_family_batch + parsed_module.collected_family_cache.store_items(family, items), + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py", line 2197, in store_items + return _store_collected_family_content_signature( + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py", line 1996, in _store_collected_family_content_signature + signature = collected_family_items_content_signature(items) + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py", line 1941, in collected_family_items_content_signature + _stable_collected_family_cache_value(items), + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py", line 1974, in _stable_collected_family_cache_value + return "tuple", tuple( + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py", line 1975, in + _stable_collected_family_cache_value(item) for item in value + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py", line 1953, in _stable_collected_family_cache_value + tuple( + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py", line 1956, in + _stable_collected_family_cache_value(getattr(value, item.name)), + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py", line 1974, in _stable_collected_family_cache_value + return "tuple", tuple( + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py", line 1975, in + _stable_collected_family_cache_value(item) for item in value + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py", line 1953, in _stable_collected_family_cache_value + tuple( + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py", line 1956, in + _stable_collected_family_cache_value(getattr(value, item.name)), + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py", line 1974, in _stable_collected_family_cache_value + return "tuple", tuple( + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py", line 1975, in + _stable_collected_family_cache_value(item) for item in value + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py", line 1974, in _stable_collected_family_cache_value + return "tuple", tuple( + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py", line 1975, in + _stable_collected_family_cache_value(item) for item in value + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py", line 1961, in _stable_collected_family_cache_value + if isinstance(value, dict): +INCOMPLETE: diagnostic CPU profiling bound reached + 37124090 function calls (34620967 primitive calls) in 20.630 seconds + + Ordered by: cumulative time + List reduced from 1572 to 50 due to restriction <50> + + ncalls tottime percall cumtime percall filename:lineno(function) + 1 0.000 0.000 20.802 20.802 :262(run_path) + 1 0.000 0.000 20.799 20.799 :91(_run_module_code) + 1 0.000 0.000 20.799 20.799 :65(_run_code) + 43/1 0.003 0.000 20.799 20.799 {built-in method builtins.exec} + 1 0.000 0.000 20.799 20.799 /home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py:1() + 1 0.000 0.000 20.792 20.792 /home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py:319(main) + 1 0.001 0.001 20.791 20.791 /home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py:277(compare) + 1 0.000 0.000 18.883 18.883 /home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py:169(scan_counts) + 4/1 0.015 0.004 18.881 18.881 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/contextlib.py:78(inner) + 1 0.045 0.045 18.878 18.878 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py:1836(analyze_compact_roots_with_cache) + 16 0.000 0.000 8.568 0.536 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:2282(collect_family_batch) + 1 0.000 0.000 6.059 6.059 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py:281(map) + 3 0.001 0.000 6.044 2.015 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py:1100(build_compact_projection_shard) + 10 0.000 0.000 4.020 0.402 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:2307(collect_family_items) +67328/33812 0.087 0.000 3.763 0.000 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/scan_cache.py:41(invoke) + 8 0.000 0.000 3.642 0.455 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:3903(collect) + 8 0.004 0.000 3.642 0.455 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:3981(_collect) +525060/16856 0.380 0.000 3.419 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:403(visit) +411402/11795 0.593 0.000 3.238 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:409(generic_visit) + 2 0.001 0.000 3.158 1.579 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py:2923(cache_identity) + 2 0.001 0.000 3.157 1.579 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis_cache.py:824(from_source_paths) + 8 0.000 0.000 2.853 0.357 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:4325(collect) + 8 0.000 0.000 2.853 0.357 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:4345(_collect) + 19039 0.035 0.000 2.522 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/pathlib.py:1228(resolve) +1180/1165 0.023 0.000 2.430 0.002 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:4851(visit_FunctionDef) + 1673/768 0.001 0.000 2.206 0.003 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:1544(traverse_node_body) + 22109 0.035 0.000 2.183 0.000 :431(realpath) + 3070 0.008 0.000 2.176 0.001 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis_cache.py:842() + 3073 0.015 0.000 2.165 0.001 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/cache_checkout.py:88(checkout_relative_path) + 8 0.119 0.015 2.133 0.267 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:5321(_compact_class_syntax_facets) + 8 0.000 0.000 2.112 0.264 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:657(_parse_source_module) + 22109 0.415 0.000 1.986 0.000 :440(_joinrealpath) + 7678 0.075 0.000 1.945 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/pathlib.py:663(relative_to) + 9/1 0.005 0.001 1.743 1.743 /home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py:151(materialize) + 1534 0.007 0.000 1.723 0.001 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/cache_checkout.py:37(_admitted_checkout_path) + 9/1 0.023 0.003 1.702 1.702 /home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py:84(materialize) +141310/90872 0.109 0.000 1.693 0.000 {built-in method builtins.any} + 493 0.005 0.000 1.692 0.003 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:4820(visit_ClassDef) + 3068 0.004 0.000 1.646 0.001 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/cache_checkout.py:40() + 6136 0.007 0.000 1.643 0.000 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/cache_checkout.py:28(relative_path) + 493 0.001 0.000 1.639 0.003 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:1557(visit_ClassDef) + 8 0.001 0.000 1.616 0.202 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:3035(module_syntax_index) + 8 0.770 0.096 1.616 0.202 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:2958(build) + 7798362 1.339 0.000 1.577 0.000 {built-in method builtins.isinstance} +1180/1165 0.010 0.000 1.545 0.001 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/record_checks.py:67(visit_FunctionDef) + 16 0.002 0.000 1.535 0.096 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:2168(store_items) + 394853 0.299 0.000 1.483 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:369(walk) + 4 0.000 0.000 1.331 0.333 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/implementation_identity.py:57(declaration_implementation_module_names) + 3 0.000 0.000 1.331 0.444 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/implementation_identity.py:65(_declaration_implementation_module_names) + 3 0.003 0.001 1.331 0.444 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/implementation_identity.py:48(implementation_module_names) + + + 37124090 function calls (34620967 primitive calls) in 20.630 seconds + + Ordered by: internal time + List reduced from 1572 to 30 due to restriction <30> + + ncalls tottime percall cumtime percall filename:lineno(function) + 7798362 1.339 0.000 1.577 0.000 {built-in method builtins.isinstance} + 8 0.770 0.096 1.616 0.202 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:2958(build) + 259408 0.686 0.000 0.686 0.000 {built-in method posix.lstat} +3052055/3051575 0.659 0.000 0.660 0.000 {built-in method builtins.getattr} +23482/21207 0.650 0.000 0.676 0.000 {method 'read' of '_io.BufferedReader' objects} + 2511879 0.616 0.000 0.870 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:257(iter_fields) + 1054476 0.598 0.000 1.297 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:269(iter_child_nodes) +411402/11795 0.593 0.000 3.238 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:409(generic_visit) + 286214 0.477 0.000 0.841 0.000 :71(join) + 8 0.451 0.056 0.991 0.124 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:476(semantic_python_source_hash) + 22109 0.415 0.000 1.986 0.000 :440(_joinrealpath) + 64091 0.412 0.000 0.736 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/pathlib.py:387(_parse_path) +525060/16856 0.380 0.000 3.419 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:403(visit) +146305/16 0.345 0.000 0.756 0.047 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:1947(_stable_collected_family_cache_value) +253034/98 0.342 0.000 1.328 0.014 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/implementation_identity.py:98(_visit) + 394853 0.299 0.000 1.483 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:369(walk) +1765838/1481586 0.272 0.000 0.324 0.000 {built-in method builtins.len} + 65256 0.265 0.000 0.983 0.000 {built-in method posix.stat} +210680/21 0.238 0.000 0.957 0.046 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:1106(retains_python_ast) + 213540 0.238 0.000 0.412 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/pathlib.py:358(__init__) + 211984 0.230 0.000 0.411 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/pathlib.py:484(_str_normcase) + 204563 0.228 0.000 0.923 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/pathlib.py:380(with_segments) + 2597 0.220 0.000 0.220 0.000 {built-in method builtins.compile} + 171268 0.194 0.000 0.316 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/tokenize.py:569(_generate_tokens_from_c_tokenizer) + 243400 0.192 0.000 1.120 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/pathlib.py:437(__str__) + 210717 0.184 0.000 0.239 0.000 :117(__instancecheck__) + 668886 0.184 0.000 0.184 0.000 {built-in method sys.intern} + 380499 0.184 0.000 1.094 0.000 {method 'extend' of 'collections.deque' objects} + 212006 0.183 0.000 0.592 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/pathlib.py:1157(__init__) + 691157 0.168 0.000 0.168 0.000 {method 'append' of 'list' objects} + + +Command exited with non-zero status 75 + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -u /home/ts/wt/nra-r1-preparation-owner-357-20261001/tools/profile_r1_preparation.py --consumer /home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py --profile /home/ts/.cache/agent-scratch/nra-r1-preparation-owner-357-20261001/candidate.pstats --cpu-seconds 20 -- --base 791650087e01c9d25766f12802a37296851f37cf --head 3d58912d6e74e4b3dd4fa9e07a6b4a9d7dd9c7e4 --scratch-root /home/ts/.cache/agent-scratch/nra-r1-preparation-owner-357-20261001/candidate-r1 --budget-seconds 160" + User time (seconds): 22.12 + System time (seconds): 1.07 + Percent of CPU this job got: 99% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:23.34 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 121804 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 57775 + Voluntary context switches: 25284 + Involuntary context switches: 24676 + Swaps: 0 + File system inputs: 1000 + File system outputs: 65592 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 75 diff --git a/docs/validation/r1_preparation_owner_357_20261001/candidate.pstats b/docs/validation/r1_preparation_owner_357_20261001/candidate.pstats new file mode 100644 index 0000000..b6b5592 Binary files /dev/null and b/docs/validation/r1_preparation_owner_357_20261001/candidate.pstats differ diff --git a/docs/validation/r1_preparation_owner_357_20261001/canonical-parity-baseline.log b/docs/validation/r1_preparation_owner_357_20261001/canonical-parity-baseline.log new file mode 100644 index 0000000..918df29 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/canonical-parity-baseline.log @@ -0,0 +1,27 @@ +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "raw_sha256": "7a30d8cb97412abfbd6a113368712e4f56a71897cc1858d1b4c640ebeca019a1", "content_signature": "79730eaec7c75ee228c3c8b816d8fa82", "collection_seconds": 0.2610713030444458, "presentations": 116, "checks": 10, "supplements": 138} +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/class_index.py", "raw_sha256": "245f8e47ebc4456c67db8d180efa223362af292d73e7facb62264b7ae5f53a9f", "content_signature": "828ab748be59018c6d14f0bd7916d311", "collection_seconds": 0.3068090609740466, "presentations": 215, "checks": 19, "supplements": 88} +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "raw_sha256": "ca795d41eac570fab9eb81d94f71cce01f21529a2ab3c143519328654104b1e1", "content_signature": "cd23388afcd0c8035e3dc3e9b23eadcf", "collection_seconds": 0.16687885101418942, "presentations": 119, "checks": 6, "supplements": 62} +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/record_checks.py", "raw_sha256": "2a31a0a132ac3ca611a1c53daa575b8fa471cf6a53f0d88738a926d14a194eaf", "content_signature": "8d5920e4ec4c134932598f5a54ae1d72", "collection_seconds": 0.012626585026737303, "presentations": 8, "checks": 1, "supplements": 4} + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -u tools/check_semantic_preparation_parity.py --advisor-root /home/ts/wt/nra-bounded-full-audit-20260929 /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/class_index.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/record_checks.py" + User time (seconds): 2.87 + System time (seconds): 0.09 + Percent of CPU this job got: 99% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:02.99 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 82860 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 26535 + Voluntary context switches: 27 + Involuntary context switches: 316 + Swaps: 0 + File system inputs: 0 + File system outputs: 8 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 0 diff --git a/docs/validation/r1_preparation_owner_357_20261001/canonical-parity-candidate.log b/docs/validation/r1_preparation_owner_357_20261001/canonical-parity-candidate.log new file mode 100644 index 0000000..bfba488 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/canonical-parity-candidate.log @@ -0,0 +1,27 @@ +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "raw_sha256": "7a30d8cb97412abfbd6a113368712e4f56a71897cc1858d1b4c640ebeca019a1", "content_signature": "79730eaec7c75ee228c3c8b816d8fa82", "collection_seconds": 0.21715612598927692, "presentations": 116, "checks": 10, "supplements": 138} +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/class_index.py", "raw_sha256": "245f8e47ebc4456c67db8d180efa223362af292d73e7facb62264b7ae5f53a9f", "content_signature": "828ab748be59018c6d14f0bd7916d311", "collection_seconds": 0.24274341901764274, "presentations": 215, "checks": 19, "supplements": 88} +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "raw_sha256": "ca795d41eac570fab9eb81d94f71cce01f21529a2ab3c143519328654104b1e1", "content_signature": "cd23388afcd0c8035e3dc3e9b23eadcf", "collection_seconds": 0.1414245399646461, "presentations": 119, "checks": 6, "supplements": 62} +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/record_checks.py", "raw_sha256": "2a31a0a132ac3ca611a1c53daa575b8fa471cf6a53f0d88738a926d14a194eaf", "content_signature": "8d5920e4ec4c134932598f5a54ae1d72", "collection_seconds": 0.010932626959402114, "presentations": 8, "checks": 1, "supplements": 4} + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -u tools/check_semantic_preparation_parity.py --advisor-root /home/ts/wt/nra-r1-preparation-owner-357-20261001 /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/class_index.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/record_checks.py" + User time (seconds): 3.60 + System time (seconds): 0.09 + Percent of CPU this job got: 99% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:03.73 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 85164 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 24710 + Voluntary context switches: 26 + Involuntary context switches: 386 + Swaps: 0 + File system inputs: 0 + File system outputs: 8 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 0 diff --git a/docs/validation/r1_preparation_owner_357_20261001/cli-tests-09.log b/docs/validation/r1_preparation_owner_357_20261001/cli-tests-09.log new file mode 100644 index 0000000..f4d7f7f --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/cli-tests-09.log @@ -0,0 +1,43 @@ +============================= test session starts ============================== +platform linux -- Python 3.12.3, pytest-8.3.5, pluggy-1.6.0 -- /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python +rootdir: /home/ts/wt/nra-r1-preparation-owner-357-20261001 +configfile: pyproject.toml +collecting ... collected 12 items + +tests/test_exact_cache_coverage.py::test_cli_full_scan_rejects_subset_aggregate[agent] PASSED [ 8%] +tests/test_exact_cache_coverage.py::test_cli_full_scan_rejects_subset_aggregate[loop] PASSED [ 16%] +tests/test_cooperative_semantic_preparation.py::test_composed_facts_equal_independent_capabilities[] PASSED [ 25%] +tests/test_cooperative_semantic_preparation.py::test_composed_facts_equal_independent_capabilities[\nisinstance = lambda *args: True\n] PASSED [ 33%] +tests/test_cooperative_semantic_preparation.py::test_composed_facts_equal_independent_capabilities[\ntype = lambda value: int\n] PASSED [ 41%] +tests/test_cooperative_semantic_preparation.py::test_compact_family_does_not_reenter_independent_check_collection PASSED [ 50%] +tests/test_cooperative_semantic_preparation.py::test_new_capability_is_only_a_declaration_and_cooperative_hook PASSED [ 58%] +tests/test_cooperative_semantic_preparation.py::test_exception_unwinds_both_capabilities_and_shared_owner PASSED [ 66%] +tests/test_cooperative_semantic_preparation.py::test_presentation_short_circuit_does_not_hide_another_capability[result = {'left': isinstance(value.count, int), 'right': 'name'}] PASSED [ 75%] +tests/test_cooperative_semantic_preparation.py::test_presentation_short_circuit_does_not_hide_another_capability[result: dict = {'left': isinstance(value.count, int), 'right': 'name'}] PASSED [ 83%] +tests/test_cooperative_semantic_preparation.py::test_presentation_short_circuit_does_not_hide_another_capability[return {'left': isinstance(value.count, int), 'right': 'name'}] PASSED [ 91%] +tests/test_cooperative_semantic_preparation.py::test_context_only_family_keeps_its_existing_no_checks_contract PASSED [100%] + +============================= 12 passed in 15.28s ============================== + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -c import sys; sys.path.insert(0,"/home/ts/wt/nra-r1-preparation-owner-357-20261001"); import pytest; raise SystemExit(pytest.main(["-v","-o","addopts=","-p","no:cacheprovider","--basetemp=/home/ts/.cache/agent-scratch/nra-r1-preparation-owner-357-20261001/pytest-cli-09","tests/test_exact_cache_coverage.py::test_cli_full_scan_rejects_subset_aggregate[agent]","tests/test_exact_cache_coverage.py::test_cli_full_scan_rejects_subset_aggregate[loop]","tests/test_cooperative_semantic_preparation.py"]))" + User time (seconds): 16.96 + System time (seconds): 0.62 + Percent of CPU this job got: 98% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:17.91 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 89560 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 142281 + Voluntary context switches: 258 + Involuntary context switches: 275 + Swaps: 0 + File system inputs: 16 + File system outputs: 5872 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 0 diff --git a/docs/validation/r1_preparation_owner_357_20261001/cli-tests-10.log b/docs/validation/r1_preparation_owner_357_20261001/cli-tests-10.log new file mode 100644 index 0000000..6c2352f --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/cli-tests-10.log @@ -0,0 +1,33 @@ +============================= test session starts ============================== +platform linux -- Python 3.12.3, pytest-8.3.5, pluggy-1.6.0 -- /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python +rootdir: /home/ts/wt/nra-r1-preparation-owner-357-20261001 +configfile: pyproject.toml +collecting ... collected 2 items + +tests/test_exact_cache_coverage.py::test_cli_full_scan_rejects_subset_aggregate[summary] PASSED [ 50%] +tests/test_exact_cache_coverage.py::test_cli_full_scan_rejects_subset_aggregate[full] PASSED [100%] + +============================== 2 passed in 15.90s ============================== + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -c import sys; sys.path.insert(0,"/home/ts/wt/nra-r1-preparation-owner-357-20261001"); import pytest; raise SystemExit(pytest.main(["-v","-o","addopts=","-p","no:cacheprovider","--basetemp=/home/ts/.cache/agent-scratch/nra-r1-preparation-owner-357-20261001/pytest-cli-10","tests/test_exact_cache_coverage.py::test_cli_full_scan_rejects_subset_aggregate[summary]","tests/test_exact_cache_coverage.py::test_cli_full_scan_rejects_subset_aggregate[full]"]))" + User time (seconds): 17.48 + System time (seconds): 0.72 + Percent of CPU this job got: 98% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:18.57 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 88644 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 15 + Minor (reclaiming a frame) page faults: 142477 + Voluntary context switches: 354 + Involuntary context switches: 156 + Swaps: 0 + File system inputs: 1104 + File system outputs: 7584 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 0 diff --git a/docs/validation/r1_preparation_owner_357_20261001/cooperative-tests-01.log b/docs/validation/r1_preparation_owner_357_20261001/cooperative-tests-01.log new file mode 100644 index 0000000..6ac3c88 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/cooperative-tests-01.log @@ -0,0 +1,29 @@ +ERROR: usage: -c [options] [file_or_dir] [file_or_dir] [...] +-c: error: unrecognized arguments: -n --maxprocesses=8 --dist=worksteal tests/test_cooperative_semantic_preparation.py + inifile: /home/ts/wt/nra-r1-preparation-owner-357-20261001/pyproject.toml + rootdir: /home/ts/wt/nra-r1-preparation-owner-357-20261001 + +Command exited with non-zero status 4 + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -c import sys; sys.path.insert(0,"/home/ts/wt/nra-r1-preparation-owner-357-20261001"); import pytest; raise SystemExit(pytest.main(["-q","-p","no:cacheprovider","--basetemp=/home/ts/.cache/agent-scratch/nra-r1-preparation-owner-357-20261001/pytest-cooperative","tests/test_cooperative_semantic_preparation.py"]))" + User time (seconds): 2.51 + System time (seconds): 0.10 + Percent of CPU this job got: 97% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:02.67 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 83596 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 24269 + Voluntary context switches: 146 + Involuntary context switches: 13 + Swaps: 0 + File system inputs: 6512 + File system outputs: 16 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 4 diff --git a/docs/validation/r1_preparation_owner_357_20261001/cooperative-tests-02.log b/docs/validation/r1_preparation_owner_357_20261001/cooperative-tests-02.log new file mode 100644 index 0000000..71dc8a7 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/cooperative-tests-02.log @@ -0,0 +1,61 @@ +....F.. [100%] +=================================== FAILURES =================================== +________ test_new_capability_is_only_a_declaration_and_cooperative_hook ________ + +tmp_path = PosixPath('/home/ts/.cache/agent-scratch/nra-r1-preparation-owner-357-20261001/pytest-cooperative-02/test_new_capability_is_only_a_0') + + def test_new_capability_is_only_a_declaration_and_cooperative_hook(tmp_path): + class CallCensus(ParsedModuleClassFunctionStackNodeVisitor): + def __init__(self, parsed_module): + super().__init__(parsed_module) + self.calls = Counter() + + def visit_Call(self, node): + self.calls[id(node)] += 1 + super().visit_Call(node) + + class Extended(CallCensus, _CompactSemanticProjectionVisitor): + pass + + # All constructors and event handlers reach the original shared owner once. + # The new capability has no taxonomy registration or generic consumer edit. + module = SourceModule(tmp_path / "case.py", "case", SOURCE).parse() + visitor = Extended(module) + visitor.visit(module.module) +> assert visitor.calls == Counter({id(node): 1 for node in ast.walk(module.module) + if isinstance(node, ast.Call)}) +E assert Counter({1398...503860688: 1}) == Counter({1398...503687440: 1}) +E +E Omitting 7 identical items, use -vv to show +E Right contains 1 more item: +E {139821503796624: 1} +E Use -v to get more diff + +tests/test_cooperative_semantic_preparation.py:111: AssertionError +=========================== short test summary info ============================ +FAILED tests/test_cooperative_semantic_preparation.py::test_new_capability_is_only_a_declaration_and_cooperative_hook +1 failed, 6 passed in 0.18s +Command exited with non-zero status 1 + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -c import sys; sys.path.insert(0,"/home/ts/wt/nra-r1-preparation-owner-357-20261001"); import pytest; raise SystemExit(pytest.main(["-q","-o","addopts=","-p","no:cacheprovider","--basetemp=/home/ts/.cache/agent-scratch/nra-r1-preparation-owner-357-20261001/pytest-cooperative-02","tests/test_cooperative_semantic_preparation.py"]))" + User time (seconds): 2.67 + System time (seconds): 0.11 + Percent of CPU this job got: 100% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:02.77 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 85216 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 25197 + Voluntary context switches: 28 + Involuntary context switches: 20 + Swaps: 0 + File system inputs: 0 + File system outputs: 16 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 1 diff --git a/docs/validation/r1_preparation_owner_357_20261001/cooperative-tests-03.log b/docs/validation/r1_preparation_owner_357_20261001/cooperative-tests-03.log new file mode 100644 index 0000000..66280e9 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/cooperative-tests-03.log @@ -0,0 +1,25 @@ +.................... [100%] +20 passed in 3.18s + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -c import sys; sys.path.insert(0,"/home/ts/wt/nra-r1-preparation-owner-357-20261001"); import pytest; raise SystemExit(pytest.main(["-q","-o","addopts=","-p","no:cacheprovider","--basetemp=/home/ts/.cache/agent-scratch/nra-r1-preparation-owner-357-20261001/pytest-cooperative-03","tests/test_cooperative_semantic_preparation.py","tests/test_projection_shard_publication.py"]))" + User time (seconds): 5.16 + System time (seconds): 0.61 + Percent of CPU this job got: 99% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:05.79 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 88868 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 99905 + Voluntary context switches: 28 + Involuntary context switches: 36 + Swaps: 0 + File system inputs: 0 + File system outputs: 296 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 0 diff --git a/docs/validation/r1_preparation_owner_357_20261001/family-parity-baseline.log b/docs/validation/r1_preparation_owner_357_20261001/family-parity-baseline.log new file mode 100644 index 0000000..45d13e0 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/family-parity-baseline.log @@ -0,0 +1,27 @@ +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "raw_sha256": "7a30d8cb97412abfbd6a113368712e4f56a71897cc1858d1b4c640ebeca019a1", "content_signature": "0a9ab8d0c987ac754232f6da054bc4d5", "collection_seconds": 0.2414114170242101, "presentations": 116, "checks": 10, "supplements": 138} +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/class_index.py", "raw_sha256": "245f8e47ebc4456c67db8d180efa223362af292d73e7facb62264b7ae5f53a9f", "content_signature": "a6103a7a18fa058c7ddabd0472f5262d", "collection_seconds": 0.28476344601949677, "presentations": 215, "checks": 19, "supplements": 88} +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "raw_sha256": "ca795d41eac570fab9eb81d94f71cce01f21529a2ab3c143519328654104b1e1", "content_signature": "cfa0fcbde095e4aa3f0897e78c74f445", "collection_seconds": 0.16953488101717085, "presentations": 119, "checks": 6, "supplements": 62} +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/record_checks.py", "raw_sha256": "2a31a0a132ac3ca611a1c53daa575b8fa471cf6a53f0d88738a926d14a194eaf", "content_signature": "5d0f4015b5d82d4ef9f9ce9d76b4b14f", "collection_seconds": 0.012470039015170187, "presentations": 8, "checks": 1, "supplements": 4} + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -u tools/check_semantic_preparation_parity.py --advisor-root /home/ts/wt/nra-bounded-full-audit-20260929 /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/class_index.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/record_checks.py" + User time (seconds): 2.66 + System time (seconds): 0.10 + Percent of CPU this job got: 100% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:02.77 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 82860 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 26011 + Voluntary context switches: 26 + Involuntary context switches: 24 + Swaps: 0 + File system inputs: 0 + File system outputs: 8 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 0 diff --git a/docs/validation/r1_preparation_owner_357_20261001/family-parity-candidate.log b/docs/validation/r1_preparation_owner_357_20261001/family-parity-candidate.log new file mode 100644 index 0000000..a6c4ce2 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/family-parity-candidate.log @@ -0,0 +1,27 @@ +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "raw_sha256": "7a30d8cb97412abfbd6a113368712e4f56a71897cc1858d1b4c640ebeca019a1", "content_signature": "0a9ab8d0c987ac754232f6da054bc4d5", "collection_seconds": 0.21006925404071808, "presentations": 116, "checks": 10, "supplements": 138} +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/class_index.py", "raw_sha256": "245f8e47ebc4456c67db8d180efa223362af292d73e7facb62264b7ae5f53a9f", "content_signature": "a6103a7a18fa058c7ddabd0472f5262d", "collection_seconds": 0.26070872601121664, "presentations": 215, "checks": 19, "supplements": 88} +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "raw_sha256": "ca795d41eac570fab9eb81d94f71cce01f21529a2ab3c143519328654104b1e1", "content_signature": "cfa0fcbde095e4aa3f0897e78c74f445", "collection_seconds": 0.13834056904306635, "presentations": 119, "checks": 6, "supplements": 62} +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/record_checks.py", "raw_sha256": "2a31a0a132ac3ca611a1c53daa575b8fa471cf6a53f0d88738a926d14a194eaf", "content_signature": "5d0f4015b5d82d4ef9f9ce9d76b4b14f", "collection_seconds": 0.010819121962413192, "presentations": 8, "checks": 1, "supplements": 4} + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -u tools/check_semantic_preparation_parity.py --advisor-root /home/ts/wt/nra-r1-preparation-owner-357-20261001 /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/class_index.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/record_checks.py" + User time (seconds): 3.52 + System time (seconds): 0.09 + Percent of CPU this job got: 100% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:03.61 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 85092 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 24999 + Voluntary context switches: 27 + Involuntary context switches: 25 + Swaps: 0 + File system inputs: 0 + File system outputs: 8 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 0 diff --git a/docs/validation/r1_preparation_owner_357_20261001/freeze-manifest.json b/docs/validation/r1_preparation_owner_357_20261001/freeze-manifest.json new file mode 100644 index 0000000..55a77bc --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/freeze-manifest.json @@ -0,0 +1,25 @@ +{ + "source_owner": "Schrodinger/Codex", + "integration_and_original_qualification_owner": "parent", + "draft_pr": "https://github.com/OpenHCSDev/NominalRefactorAdvisor/pull/16", + "worktree": "/home/ts/wt/nra-r1-preparation-owner-357-20261001", + "source_checkpoint": "2ae2309967904e0195f0d8e75b9b9988c736a52a", + "baseline": "673c062fc656e9c74f1eddcab30f036c9befbc1f", + "source_sha256": { + "nominal_refactor_advisor/ast_tools.py": "e41ef8011aac67857131f5f79b140c201c9a0f6ca4584a92d57789cd234b354e", + "nominal_refactor_advisor/record_checks.py": "4b77a6fc7af2eaff8d81e5a7e764b8f3db0fd6b4a7af687c4bb8c7831512fd53", + "nominal_refactor_advisor/semantic_descent.py": "7ba2cf06a9e2a175e45e7f213ba111fdebf1bf2a17e83df4ac7926aa4a1e8ff9" + }, + "immutable_consumer": "/home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py", + "consumer_sha256": "4c6282f52e7c188068dd9d63399f5522a7cb1d222504d0c0b809be10303884ca", + "base_revision": "791650087e01c9d25766f12802a37296851f37cf", + "head_revision": "3d58912d6e74e4b3dd4fa9e07a6b4a9d7dd9c7e4", + "original_context_roots": 3, + "original_recursive_dependencies": 8, + "source_limits": {"cpu": 1, "memory_mib": 512, "swap_mib": 0, "outer_seconds": 60}, + "profile_disposition": "both intentional20CPU stops exit75 INCOMPLETE", + "original_r0_r1": "pending parent qualification", + "global_85_detector_full": "unqualified", + "retained_native_failure": "unproved_execution_effects reproduced on unchanged baseline", + "science_native_installs_locks_providers_downloads": "none" +} diff --git a/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/README.md b/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/README.md new file mode 100644 index 0000000..f900411 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/README.md @@ -0,0 +1,111 @@ +# Shared function-scope preparation checkpoint + +Source owner Schrodinger/Codex; parent retains integration and complete original +qualification. Source checkpoint `fbee3963d1120b19dd37e7dfa1d7a1b9c751a488`, +same [draft PR16](https://github.com/OpenHCSDev/NominalRefactorAdvisor/pull/16). +Predecessor production19f21b6 / evidenceff192cf and pinned baseline673c062f +remain reproducible. No parent source, installed package or original input changed. + +## Measured concern and owning mechanism + +The [preceding bounded profile](../publication-profile/README.md) attributed4393 +`bound_names(node.body)` calls to each composed function capability. This does +not establish the dominant complete R1 hotspot. A new same-event experiment on +the actual existing visitor demonstrated two determinations per function body +instead of one in both C3 composition orders; both failures are retained in +`function-scope-before.log`. The original lexical algorithm was only observed, +not replaced or copied. + +`LexicalScopeBindingAuthority` remains the determining algorithm owner. +`ParsedModuleClassFunctionStackNodeVisitor` now owns the shared function event: +one original body-binding determination and one argument-binding determination, +passed as immutable arguments through cooperative `function_scope` context hooks. +There is no node-id cache, persistent binding field, parallel store or roster. +`_ProjectionVisitor` and `DeclaredAttributeCheckCollector` retain only their +independent presentation/type-check scope preparation, postlude and unwind hooks. +They delegate with `super().function_scope(...)`; C3 enters both once and unwinds +in reverse order. Their old event overrides, repeated lexical calls, async event +aliases and unused authority imports are deleted. + +`ClassFunctionStackNodeVisitor` owns `function_name_scope`: its original push/pop +algorithm now protects both traversal and the mapping-projection postlude. This +deletes the latter's unprotected copied push/pop and restores names on failure. +Existing matching `super().visit_Assign/visit_AnnAssign/visit_Return`, cooperative +native traversal endpoints, projection-local suppression and the one AST walk +remain intact. No hook dispatch table or mirrored visitor was added. + +Review against current authoritative NRA/refactor-audit archive: IMPL-12/13 +repeated preparation/lifecycle mechanism repaired here; IMPL-4 requires actual +capability delivery, not decorative bases. IMPL-1/2/3/5, MEMB-1/2, IDEN-5, +TIME-1/3 checks found no added consumer type/string/enum switch, parallel registry, +duplicate identity store, wrapper-only relocation or compatibility path. Original +AST-free batch/cache guards, exact-source/dependency identities and fail-closed +proof admission are unchanged. This is an authored owner refactor, not a native +equivalence proof or a completed global audit. + +## Independent new-case behavior + +`BindingCensus` declares one cooperative scope hook and its own observations. +Empty declaration compositions put it before and after the existing compact +visitor. No generic consumer is edited for that new capability. Tests exercise +real synchronous, nested and asynchronous function entry/exit ordering and +qualnames, exact-once authority calls, existing complete facts and shadowed +builtins. Reusing the visitor after diagnostic AST mutation proves the answer is +recomputed, not a stale cache. Body, hook-entry, hook-exit and mapping-postlude +controlled failures prove restoration in both MRO positions. + +Twelve new cases cover that contract. The seventeen existing same-node capability +cases still pass, including downstream assignment/return hooks and suppression. +The distinct current-checkpoint count below excludes repeated initial passes and +does not retrospectively qualify earlier failed/terminal attempts. + +| Retained receipt | Outcome | Wall seconds | Peak KiB | +| --- | --- | ---: | ---: | +| function-scope-before.log | expected red:2failed/4deselected | 2.65 | 85136 | +| function-scope-after.log | initial6new +36existing:42passed | 6.43 | 90344 | +| function-scope-final.log | complete12new +36existing:48passed | 7.10 | 90524 | +| function-scope-consumers.log | original deferred/cache/graph consumers:11passed | 7.24 | 106056 | +| function-scope-lexical.log | native symbol-table/live-scope +target identity:20passed/7deselected | 2.90 | 85072 | +| function-scope-parity-before.log | complete four-source facts, predecessor | 3.57 | 85264 | +| function-scope-parity-after.log | identical complete four-source facts, candidate | 3.70 | 85424 | + +**79 distinct current source cases passed**, peak103.57MiB. Original family API +comparison uses the same four pinned673c062f files, canonical path/module owner, +unchanged raw SHA256 and complete content signatures:458 presentations,36 checks, +292 supplements. Collection0.612698 ->0.606487s in one sample is essentially flat; +process wall3.57 ->3.70s, so no overall startup/full-context improvement claim. +The fixed four-file component comparison is not a narrowed substitute for R1. + +## Bounds and remaining acceptance + +Each serial source worker used frozen installed Python3.12.3 read-only, +`-I -B`, tasksetCPU0, systemd MemoryMax512M/MemorySwapMax0/CPUQuota100%, +outer60s and thread pools1. Full exact commands/test selections are retained in +each log; tests disable plugin autoload/cacheprovider and use distinct owned +basetemps. Startup helper warned (exit2): RAM20.6GiB/home8.5GiB/swap10.7GiB. +Later read-only headroom check still warned: RAM18.9GiB/home11.7GiB/swap10.2GiB. +No extra fleet, native/UI/MCP/science, installs, provider calls, downloads or +shared lock was used. Improved disk headroom does not authorize a live run. + +Parent's original18910a5 full R1 remains **FAILED ScanDeadlineExceeded160s**, +exit1/164.42s/187.41MiB, with immutable witness retained under publication-profile. +Earlier timeout and baseline-equal `unproved_execution_effects` proof failure +remain retained, not waived or silently reclassified. No identical full scan was +repeated here. Original160/165 qualification, installed acceptance and global +85-detector/FULL remain separately unqualified. Parent retains those gates. +Class syntax facets still determine bindings independently; this checkpoint +does not claim elimination of all preparation cost or resolution of the R1 deadline. + +## Owned scratch disposition + +Only newly owned +`/home/ts/.cache/agent-scratch/nra-r1-function-scope-357-20261001` (1316KiB) +was used. All seven source logs are preserved byte-for-byte here with SHA256SUMS. +Cleanup complete: all seven retained checksums passed; exact-root `lsof +D` +returned no handles, scoped process inspection found no remaining worker, and +realpath matched the explicit owned address. Removed only that1316KiB root with +`rm -r --`, verified absence and rechecked all retained checksums. Disposable +test/cache data is permanently deleted; source, every log and original failure +are retained. Prior owned19MiB/816KiB/288KiB roots are already absent and were +not deleted again. No predecessor or parent scratch address, scientific output, +other owner's worktree or installed package was removed. diff --git a/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/SHA256SUMS b/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/SHA256SUMS new file mode 100644 index 0000000..8dd9e25 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/SHA256SUMS @@ -0,0 +1,7 @@ +e6dae6a675df53f3fa61bc1cee4017ef6fcd385af0e56da0af1a219e78e14125 function-scope-after.log +87b90670ac0944de164753bcd1c1dbf3495a0570ac4b71b9a902b62419767056 function-scope-before.log +5c2ffbbc2caba5cd31e6f7861fd5240d9110a9495a1aea46455aebeadc5913c8 function-scope-consumers.log +ee9cd1df302aff953bfa5bde29122019d5b9c6d98c423d669cb60781022cf0c3 function-scope-final.log +389c1c39f512f0a00ae384fd82bc11a1a64d0dd505e1a98d6e683d7ac6eedcca function-scope-lexical.log +682444f1f4775212fb8cbb43a333ee9bdcb1ac885b37b2b1cb59d798edc0abfd function-scope-parity-after.log +c99c3d97ce19518083ea0fab17b077f77d98022f06d340a9d5bbba1030ad5793 function-scope-parity-before.log diff --git a/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/freeze-manifest.json b/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/freeze-manifest.json new file mode 100644 index 0000000..e407384 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/freeze-manifest.json @@ -0,0 +1,36 @@ +{ + "source_owner": "Schrodinger/Codex", + "integration_and_complete_qualification_owner": "parent", + "draft_pr": "https://github.com/OpenHCSDev/NominalRefactorAdvisor/pull/16", + "source_checkpoint": "fbee3963d1120b19dd37e7dfa1d7a1b9c751a488", + "predecessor_evidence_head": "ff192cf70d6cd15f3a3e0e60f7ce5e3d8c0ac3e0", + "baseline": "673c062fc656e9c74f1eddcab30f036c9befbc1f", + "source_sha256": { + "nominal_refactor_advisor/ast_tools.py": "8b66bbf26b918852a3b866136ea3858052bef86b5f347eaaffcdd950fb9c2e2b", + "nominal_refactor_advisor/record_checks.py": "fb152d5d056c1bfa20395562ef8efbf0449152e8a7a731214d7801cf27112f92", + "nominal_refactor_advisor/semantic_descent.py": "c3cf3996c45fdef2816c723dee0384c3093d73b5f0f30a777d4d822934876d6e", + "nominal_refactor_advisor/analysis.py": "9df4ad1ea64bae4b88a4d911e6355630c82826ff2a54c96d720fa6171d92cfbd", + "tests/test_cooperative_function_bindings.py": "7a32cc2ad7289785640e468d7598cd1830fadce428faef7a86745e24f32ad631", + "tests/test_cooperative_semantic_preparation.py": "0516c686c26b058d8f394e1ba8ed591805237db3d4ecbe1ab4377cb28832adff" + }, + "immutable_consumer_sha256": "4c6282f52e7c188068dd9d63399f5522a7cb1d222504d0c0b809be10303884ca", + "base_revision": "791650087e01c9d25766f12802a37296851f37cf", + "head_revision": "3d58912d6e74e4b3dd4fa9e07a6b4a9d7dd9c7e4", + "original_context_roots": 3, + "original_recursive_dependencies": 8, + "source_limits": {"cpu": 1, "memory_mib": 512, "swap_mib": 0, "outer_seconds": 60}, + "peak_observed_kib": 106056, + "current_distinct_passing_cases": 79, + "new_cases": 12, + "binding_determinations_per_function_event": {"predecessor": 2, "candidate": 1}, + "new_case": "independent BindingCensus scope hook before/after actual compact visitor; no generic consumer edits; nested/async order, fresh invocation and controlled failures", + "complete_component_facts": {"presentations": 458, "checks": 36, "supplements": 292, "all_signatures_equal": true}, + "complete_original_r1_repeated": false, + "original_parent_r1_status": "FAILED at18910a5 ScanDeadlineExceeded160s; unchanged failure witness retained", + "candidate_original_r1_installed_global_full": "unqualified; parent owns complete original and installed gates", + "earlier_native_proof_failure_and_timeout": "retained unchanged, not requalified", + "remaining_preparation": "class syntax facet binding requests remain independent; no whole-R1 speedup or dominant hotspot claim", + "science_native_installs_locks_providers_downloads": "none", + "owned_scratch": "/home/ts/.cache/agent-scratch/nra-r1-function-scope-357-20261001", + "cleanup": "only owned1316KiB root removed after seven checksums/no-handle/process/realpath proof; absence and retained checksums reverified" +} diff --git a/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/function-scope-after.log b/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/function-scope-after.log new file mode 100644 index 0000000..c568f69 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/function-scope-after.log @@ -0,0 +1,73 @@ +============================= test session starts ============================== +platform linux -- Python 3.12.3, pytest-8.3.5, pluggy-1.6.0 -- /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python +rootdir: /home/ts/wt/nra-r1-preparation-owner-357-20261001 +configfile: pyproject.toml +collecting ... collected 42 items + +tests/test_cooperative_function_bindings.py::test_shared_function_bindings_need_one_determination_per_event[CensusBeforeProjection] PASSED [ 2%] +tests/test_cooperative_function_bindings.py::test_shared_function_bindings_need_one_determination_per_event[CensusAfterProjection] PASSED [ 4%] +tests/test_cooperative_function_bindings.py::test_function_scope_recomputes_each_invocation_without_a_parallel_cache[CensusBeforeProjection] PASSED [ 7%] +tests/test_cooperative_function_bindings.py::test_function_scope_recomputes_each_invocation_without_a_parallel_cache[CensusAfterProjection] PASSED [ 9%] +tests/test_cooperative_function_bindings.py::test_function_scope_body_failure_unwinds_cooperative_contexts[CensusBeforeProjection] PASSED [ 11%] +tests/test_cooperative_function_bindings.py::test_function_scope_body_failure_unwinds_cooperative_contexts[CensusAfterProjection] PASSED [ 14%] +tests/test_cooperative_semantic_preparation.py::test_composed_facts_equal_independent_capabilities[] PASSED [ 16%] +tests/test_cooperative_semantic_preparation.py::test_composed_facts_equal_independent_capabilities[\nisinstance = lambda *args: True\n] PASSED [ 19%] +tests/test_cooperative_semantic_preparation.py::test_composed_facts_equal_independent_capabilities[\ntype = lambda value: int\n] PASSED [ 21%] +tests/test_cooperative_semantic_preparation.py::test_compact_family_does_not_reenter_independent_check_collection PASSED [ 23%] +tests/test_cooperative_semantic_preparation.py::test_new_capability_is_only_a_declaration_and_cooperative_hook PASSED [ 26%] +tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[True-CensusBeforeProjection] PASSED [ 28%] +tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[True-CensusAfterProjection] PASSED [ 30%] +tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[False-CensusBeforeProjection] PASSED [ 33%] +tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[False-CensusAfterProjection] PASSED [ 35%] +tests/test_cooperative_semantic_preparation.py::test_same_node_exception_unwinds_projection_policy_and_scope[result = {'left': consume(value), 'right': 'name'}] PASSED [ 38%] +tests/test_cooperative_semantic_preparation.py::test_same_node_exception_unwinds_projection_policy_and_scope[result: dict = {'left': consume(value), 'right': 'name'}] PASSED [ 40%] +tests/test_cooperative_semantic_preparation.py::test_same_node_exception_unwinds_projection_policy_and_scope[return {'left': consume(value), 'right': 'name'}] PASSED [ 42%] +tests/test_cooperative_semantic_preparation.py::test_exception_unwinds_both_capabilities_and_shared_owner PASSED [ 45%] +tests/test_cooperative_semantic_preparation.py::test_presentation_short_circuit_does_not_hide_another_capability[result = {'left': isinstance(value.count, int), 'right': 'name'}] PASSED [ 47%] +tests/test_cooperative_semantic_preparation.py::test_presentation_short_circuit_does_not_hide_another_capability[result: dict = {'left': isinstance(value.count, int), 'right': 'name'}] PASSED [ 50%] +tests/test_cooperative_semantic_preparation.py::test_presentation_short_circuit_does_not_hide_another_capability[return {'left': isinstance(value.count, int), 'right': 'name'}] PASSED [ 52%] +tests/test_cooperative_semantic_preparation.py::test_context_only_family_keeps_its_existing_no_checks_contract PASSED [ 54%] +tests/test_projection_shard_publication.py::test_full_family_is_published_once_per_shard[False-False-False] PASSED [ 57%] +tests/test_projection_shard_publication.py::test_full_family_is_published_once_per_shard[False-False-True] PASSED [ 59%] +tests/test_projection_shard_publication.py::test_full_family_is_published_once_per_shard[False-True-False] PASSED [ 61%] +tests/test_projection_shard_publication.py::test_full_family_is_published_once_per_shard[False-True-True] PASSED [ 64%] +tests/test_projection_shard_publication.py::test_full_family_is_published_once_per_shard[True-False-False] PASSED [ 66%] +tests/test_projection_shard_publication.py::test_full_family_is_published_once_per_shard[True-False-True] PASSED [ 69%] +tests/test_projection_shard_publication.py::test_full_family_is_published_once_per_shard[True-True-False] PASSED [ 71%] +tests/test_projection_shard_publication.py::test_full_family_is_published_once_per_shard[True-True-True] PASSED [ 73%] +tests/test_projection_shard_publication.py::test_list_collection_and_batch_share_the_same_publication PASSED [ 76%] +tests/test_projection_shard_publication.py::test_incomplete_publication_keeps_all_facts_in_memory PASSED [ 78%] +tests/test_raw_record_detectors.py::test_mapping_reads_match_schema_but_only_actual_decode_descends PASSED [ 80%] +tests/test_raw_record_detectors.py::test_unmodeled_shapes_aggregate_same_keys_and_ignore_small_dynamic_reads PASSED [ 83%] +tests/test_raw_record_detectors.py::test_redundant_checks_resolve_declared_self_parameters_and_keep_unknowns PASSED [ 85%] +tests/test_raw_record_detectors.py::test_detector_ids_are_derived_and_registered PASSED [ 88%] +tests/test_raw_record_detectors.py::test_cross_module_schema_and_annotated_owner_use_complete_context PASSED [ 90%] +tests/test_source_projection_owner.py::test_source_projection_retains_actual_parsed_owner_without_compact_ast_debt PASSED [ 92%] +tests/test_source_projection_owner.py::test_another_revision_reusing_ast_cannot_relabel_existing_source_observations PASSED [ 95%] +tests/test_source_projection_owner.py::test_reparsed_source_owns_distinct_canonical_read_nodes PASSED [ 97%] +tests/test_source_projection_owner.py::test_pickle_preserves_shared_module_node_identity_inside_source_projection PASSED [100%] + +============================== 42 passed in 3.90s ============================== + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -c import sys; sys.path.insert(0,"/home/ts/wt/nra-r1-preparation-owner-357-20261001"); import pytest; raise SystemExit(pytest.main(["-v","-o","addopts=","-p","no:cacheprovider","--basetemp=/home/ts/.cache/agent-scratch/nra-r1-function-scope-357-20261001/pytest-after","tests/test_cooperative_function_bindings.py","tests/test_cooperative_semantic_preparation.py","tests/test_projection_shard_publication.py","tests/test_raw_record_detectors.py","tests/test_source_projection_owner.py"]))" + User time (seconds): 5.69 + System time (seconds): 0.66 + Percent of CPU this job got: 98% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:06.43 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 90344 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 2 + Minor (reclaiming a frame) page faults: 102306 + Voluntary context switches: 38 + Involuntary context switches: 134 + Swaps: 0 + File system inputs: 288 + File system outputs: 400 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 0 diff --git a/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/function-scope-before.log b/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/function-scope-before.log new file mode 100644 index 0000000..4dfa071 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/function-scope-before.log @@ -0,0 +1,142 @@ +============================= test session starts ============================== +platform linux -- Python 3.12.3, pytest-8.3.5, pluggy-1.6.0 -- /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python +rootdir: /home/ts/wt/nra-r1-preparation-owner-357-20261001 +configfile: pyproject.toml +collecting ... collected 6 items / 4 deselected / 2 selected + +tests/test_cooperative_function_bindings.py::test_shared_function_bindings_need_one_determination_per_event[CensusBeforeProjection] FAILED [ 50%] +tests/test_cooperative_function_bindings.py::test_shared_function_bindings_need_one_determination_per_event[CensusAfterProjection] FAILED [100%] + +=================================== FAILURES =================================== +_ test_shared_function_bindings_need_one_determination_per_event[CensusBeforeProjection] _ + +tmp_path = PosixPath('/home/ts/.cache/agent-scratch/nra-r1-function-scope-357-20261001/pytest-before/test_shared_function_bindings_0') +monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fa118aff1d0> +visitor_type = + + @pytest.mark.parametrize("visitor_type", (CensusBeforeProjection, CensusAfterProjection)) + def test_shared_function_bindings_need_one_determination_per_event( + tmp_path, monkeypatch, visitor_type + ): + module = SourceModule(tmp_path / "case.py", "case", SOURCE).parse() + functions = tuple( + node + for node in ast.walk(module.module) + if isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef)) + ) + body_ids = {id(node.body) for node in functions} + body_calls = Counter() + argument_calls = Counter() + original_bound = LEXICAL_SCOPE_BINDING_AUTHORITY.bound_names + original_arguments = LEXICAL_SCOPE_BINDING_AUTHORITY.argument_names + + def observed_bound(nodes): + if id(nodes) in body_ids: + body_calls[id(nodes)] += 1 + return original_bound(nodes) + + def observed_arguments(node): + argument_calls[id(node)] += 1 + return original_arguments(node) + + # Parse/source identity and existing lexical algorithm are unchanged. Only + # observe calls during this one original generic visitor invocation. + monkeypatch.setattr(LEXICAL_SCOPE_BINDING_AUTHORITY, "bound_names", observed_bound) + monkeypatch.setattr( + LEXICAL_SCOPE_BINDING_AUTHORITY, "argument_names", observed_arguments + ) + visitor = visitor_type(module) + visitor.visit(module.module) +> assert body_calls == Counter({id(node.body): 1 for node in functions}) +E AssertionError: assert Counter({1403...879410816: 2}) == Counter({1403...882213952: 1}) +E +E Differing items: +E {140329882162944: 2} != {140329882162944: 1} +E {140329882166080: 2} != {140329882166080: 1} +E {140329879410816: 2} != {140329879410816: 1} +E {140329882213952: 2} != {140329882213952: 1} +E ... +E +E ...Full output truncated (17 lines hidden), use '-vv' to show + +tests/test_cooperative_function_bindings.py:94: AssertionError +_ test_shared_function_bindings_need_one_determination_per_event[CensusAfterProjection] _ + +tmp_path = PosixPath('/home/ts/.cache/agent-scratch/nra-r1-function-scope-357-20261001/pytest-before/test_shared_function_bindings_1') +monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fa118b16ab0> +visitor_type = + + @pytest.mark.parametrize("visitor_type", (CensusBeforeProjection, CensusAfterProjection)) + def test_shared_function_bindings_need_one_determination_per_event( + tmp_path, monkeypatch, visitor_type + ): + module = SourceModule(tmp_path / "case.py", "case", SOURCE).parse() + functions = tuple( + node + for node in ast.walk(module.module) + if isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef)) + ) + body_ids = {id(node.body) for node in functions} + body_calls = Counter() + argument_calls = Counter() + original_bound = LEXICAL_SCOPE_BINDING_AUTHORITY.bound_names + original_arguments = LEXICAL_SCOPE_BINDING_AUTHORITY.argument_names + + def observed_bound(nodes): + if id(nodes) in body_ids: + body_calls[id(nodes)] += 1 + return original_bound(nodes) + + def observed_arguments(node): + argument_calls[id(node)] += 1 + return original_arguments(node) + + # Parse/source identity and existing lexical algorithm are unchanged. Only + # observe calls during this one original generic visitor invocation. + monkeypatch.setattr(LEXICAL_SCOPE_BINDING_AUTHORITY, "bound_names", observed_bound) + monkeypatch.setattr( + LEXICAL_SCOPE_BINDING_AUTHORITY, "argument_names", observed_arguments + ) + visitor = visitor_type(module) + visitor.visit(module.module) +> assert body_calls == Counter({id(node.body): 1 for node in functions}) +E AssertionError: assert Counter({1403...881254912: 2}) == Counter({1403...881369984: 1}) +E +E Differing items: +E {140329881369152: 2} != {140329881369152: 1} +E {140329881254912: 2} != {140329881254912: 1} +E {140329881367552: 2} != {140329881367552: 1} +E {140329881369984: 2} != {140329881369984: 1} +E ... +E +E ...Full output truncated (17 lines hidden), use '-vv' to show + +tests/test_cooperative_function_bindings.py:94: AssertionError +=========================== short test summary info ============================ +FAILED tests/test_cooperative_function_bindings.py::test_shared_function_bindings_need_one_determination_per_event[CensusBeforeProjection] +FAILED tests/test_cooperative_function_bindings.py::test_shared_function_bindings_need_one_determination_per_event[CensusAfterProjection] +======================= 2 failed, 4 deselected in 0.16s ======================== +Command exited with non-zero status 1 + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -c import sys; sys.path.insert(0,"/home/ts/wt/nra-r1-preparation-owner-357-20261001"); import pytest; raise SystemExit(pytest.main(["-v","-o","addopts=","-p","no:cacheprovider","--basetemp=/home/ts/.cache/agent-scratch/nra-r1-function-scope-357-20261001/pytest-before","tests/test_cooperative_function_bindings.py","-k","shared_function_bindings"]))" + User time (seconds): 2.54 + System time (seconds): 0.11 + Percent of CPU this job got: 100% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:02.65 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 85136 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 25069 + Voluntary context switches: 27 + Involuntary context switches: 23 + Swaps: 0 + File system inputs: 0 + File system outputs: 24 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 1 diff --git a/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/function-scope-consumers.log b/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/function-scope-consumers.log new file mode 100644 index 0000000..79fbf42 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/function-scope-consumers.log @@ -0,0 +1,42 @@ +============================= test session starts ============================== +platform linux -- Python 3.12.3, pytest-8.3.5, pluggy-1.6.0 -- /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python +rootdir: /home/ts/wt/nra-r1-preparation-owner-357-20261001 +configfile: pyproject.toml +collecting ... collected 11 items + +tests/test_deferred_projection_family.py::test_complete_content_signature_does_not_require_loading_all_graphs PASSED [ 9%] +tests/test_deferred_projection_family.py::test_missing_signature_requires_complete_original_content_evidence PASSED [ 18%] +tests/test_deferred_projection_family.py::test_materialized_public_api_retains_its_tuple_contract PASSED [ 27%] +tests/test_deferred_projection_family.py::test_count_derives_unique_source_materializations_without_rescanning_batches PASSED [ 36%] +tests/test_deferred_projection_family.py::test_corrupt_cache_repairs_only_the_requested_original_source PASSED [ 45%] +tests/test_deferred_projection_family.py::test_repair_rejects_a_changed_source_and_can_retry_the_original PASSED [ 54%] +tests/test_deferred_projection_family.py::test_global_lookup_still_reads_later_ambiguous_modules PASSED [ 63%] +tests/test_deferred_projection_family.py::test_eligibility_short_circuit_does_not_truncate_later_queries PASSED [ 72%] +tests/test_semantic_descent.py::test_construction_authority_materialization_indexes_each_method_once PASSED [ 81%] +tests/test_semantic_descent.py::test_semantic_descent_graph_flags_returned_declaration_table PASSED [ 90%] +tests/test_semantic_descent.py::test_semantic_descent_ignores_function_local_variable_tuple_projection PASSED [100%] + +============================== 11 passed in 4.39s ============================== + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -c import sys; sys.path.insert(0,"/home/ts/wt/nra-r1-preparation-owner-357-20261001"); import pytest; raise SystemExit(pytest.main(["-v","-o","addopts=","-p","no:cacheprovider","--basetemp=/home/ts/.cache/agent-scratch/nra-r1-function-scope-357-20261001/pytest-consumers","tests/test_deferred_projection_family.py","tests/test_semantic_descent.py::test_construction_authority_materialization_indexes_each_method_once","tests/test_semantic_descent.py::test_semantic_descent_graph_flags_returned_declaration_table","tests/test_semantic_descent.py::test_semantic_descent_ignores_function_local_variable_tuple_projection"]))" + User time (seconds): 6.64 + System time (seconds): 0.56 + Percent of CPU this job got: 99% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:07.24 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 106056 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 91675 + Voluntary context switches: 47 + Involuntary context switches: 45 + Swaps: 0 + File system inputs: 0 + File system outputs: 648 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 0 diff --git a/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/function-scope-final.log b/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/function-scope-final.log new file mode 100644 index 0000000..777b326 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/function-scope-final.log @@ -0,0 +1,79 @@ +============================= test session starts ============================== +platform linux -- Python 3.12.3, pytest-8.3.5, pluggy-1.6.0 -- /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python +rootdir: /home/ts/wt/nra-r1-preparation-owner-357-20261001 +configfile: pyproject.toml +collecting ... collected 48 items + +tests/test_cooperative_function_bindings.py::test_shared_function_bindings_need_one_determination_per_event[CensusBeforeProjection] PASSED [ 2%] +tests/test_cooperative_function_bindings.py::test_shared_function_bindings_need_one_determination_per_event[CensusAfterProjection] PASSED [ 4%] +tests/test_cooperative_function_bindings.py::test_function_scope_recomputes_each_invocation_without_a_parallel_cache[CensusBeforeProjection] PASSED [ 6%] +tests/test_cooperative_function_bindings.py::test_function_scope_recomputes_each_invocation_without_a_parallel_cache[CensusAfterProjection] PASSED [ 8%] +tests/test_cooperative_function_bindings.py::test_function_scope_body_failure_unwinds_cooperative_contexts[CensusBeforeProjection] PASSED [ 10%] +tests/test_cooperative_function_bindings.py::test_function_scope_body_failure_unwinds_cooperative_contexts[CensusAfterProjection] PASSED [ 12%] +tests/test_cooperative_function_bindings.py::test_function_scope_entry_and_exit_failures_unwind_in_both_mro_orders[EntryFailureBeforeProjection] PASSED [ 14%] +tests/test_cooperative_function_bindings.py::test_function_scope_entry_and_exit_failures_unwind_in_both_mro_orders[EntryFailureAfterProjection] PASSED [ 16%] +tests/test_cooperative_function_bindings.py::test_function_scope_entry_and_exit_failures_unwind_in_both_mro_orders[ExitFailureBeforeProjection] PASSED [ 18%] +tests/test_cooperative_function_bindings.py::test_function_scope_entry_and_exit_failures_unwind_in_both_mro_orders[ExitFailureAfterProjection] PASSED [ 20%] +tests/test_cooperative_function_bindings.py::test_mapping_postlude_failure_uses_the_shared_name_scope_owner[CensusBeforeProjection] PASSED [ 22%] +tests/test_cooperative_function_bindings.py::test_mapping_postlude_failure_uses_the_shared_name_scope_owner[CensusAfterProjection] PASSED [ 25%] +tests/test_cooperative_semantic_preparation.py::test_composed_facts_equal_independent_capabilities[] PASSED [ 27%] +tests/test_cooperative_semantic_preparation.py::test_composed_facts_equal_independent_capabilities[\nisinstance = lambda *args: True\n] PASSED [ 29%] +tests/test_cooperative_semantic_preparation.py::test_composed_facts_equal_independent_capabilities[\ntype = lambda value: int\n] PASSED [ 31%] +tests/test_cooperative_semantic_preparation.py::test_compact_family_does_not_reenter_independent_check_collection PASSED [ 33%] +tests/test_cooperative_semantic_preparation.py::test_new_capability_is_only_a_declaration_and_cooperative_hook PASSED [ 35%] +tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[True-CensusBeforeProjection] PASSED [ 37%] +tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[True-CensusAfterProjection] PASSED [ 39%] +tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[False-CensusBeforeProjection] PASSED [ 41%] +tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[False-CensusAfterProjection] PASSED [ 43%] +tests/test_cooperative_semantic_preparation.py::test_same_node_exception_unwinds_projection_policy_and_scope[result = {'left': consume(value), 'right': 'name'}] PASSED [ 45%] +tests/test_cooperative_semantic_preparation.py::test_same_node_exception_unwinds_projection_policy_and_scope[result: dict = {'left': consume(value), 'right': 'name'}] PASSED [ 47%] +tests/test_cooperative_semantic_preparation.py::test_same_node_exception_unwinds_projection_policy_and_scope[return {'left': consume(value), 'right': 'name'}] PASSED [ 50%] +tests/test_cooperative_semantic_preparation.py::test_exception_unwinds_both_capabilities_and_shared_owner PASSED [ 52%] +tests/test_cooperative_semantic_preparation.py::test_presentation_short_circuit_does_not_hide_another_capability[result = {'left': isinstance(value.count, int), 'right': 'name'}] PASSED [ 54%] +tests/test_cooperative_semantic_preparation.py::test_presentation_short_circuit_does_not_hide_another_capability[result: dict = {'left': isinstance(value.count, int), 'right': 'name'}] PASSED [ 56%] +tests/test_cooperative_semantic_preparation.py::test_presentation_short_circuit_does_not_hide_another_capability[return {'left': isinstance(value.count, int), 'right': 'name'}] PASSED [ 58%] +tests/test_cooperative_semantic_preparation.py::test_context_only_family_keeps_its_existing_no_checks_contract PASSED [ 60%] +tests/test_projection_shard_publication.py::test_full_family_is_published_once_per_shard[False-False-False] PASSED [ 62%] +tests/test_projection_shard_publication.py::test_full_family_is_published_once_per_shard[False-False-True] PASSED [ 64%] +tests/test_projection_shard_publication.py::test_full_family_is_published_once_per_shard[False-True-False] PASSED [ 66%] +tests/test_projection_shard_publication.py::test_full_family_is_published_once_per_shard[False-True-True] PASSED [ 68%] +tests/test_projection_shard_publication.py::test_full_family_is_published_once_per_shard[True-False-False] PASSED [ 70%] +tests/test_projection_shard_publication.py::test_full_family_is_published_once_per_shard[True-False-True] PASSED [ 72%] +tests/test_projection_shard_publication.py::test_full_family_is_published_once_per_shard[True-True-False] PASSED [ 75%] +tests/test_projection_shard_publication.py::test_full_family_is_published_once_per_shard[True-True-True] PASSED [ 77%] +tests/test_projection_shard_publication.py::test_list_collection_and_batch_share_the_same_publication PASSED [ 79%] +tests/test_projection_shard_publication.py::test_incomplete_publication_keeps_all_facts_in_memory PASSED [ 81%] +tests/test_raw_record_detectors.py::test_mapping_reads_match_schema_but_only_actual_decode_descends PASSED [ 83%] +tests/test_raw_record_detectors.py::test_unmodeled_shapes_aggregate_same_keys_and_ignore_small_dynamic_reads PASSED [ 85%] +tests/test_raw_record_detectors.py::test_redundant_checks_resolve_declared_self_parameters_and_keep_unknowns PASSED [ 87%] +tests/test_raw_record_detectors.py::test_detector_ids_are_derived_and_registered PASSED [ 89%] +tests/test_raw_record_detectors.py::test_cross_module_schema_and_annotated_owner_use_complete_context PASSED [ 91%] +tests/test_source_projection_owner.py::test_source_projection_retains_actual_parsed_owner_without_compact_ast_debt PASSED [ 93%] +tests/test_source_projection_owner.py::test_another_revision_reusing_ast_cannot_relabel_existing_source_observations PASSED [ 95%] +tests/test_source_projection_owner.py::test_reparsed_source_owns_distinct_canonical_read_nodes PASSED [ 97%] +tests/test_source_projection_owner.py::test_pickle_preserves_shared_module_node_identity_inside_source_projection PASSED [100%] + +============================== 48 passed in 4.23s ============================== + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -c import sys; sys.path.insert(0,"/home/ts/wt/nra-r1-preparation-owner-357-20261001"); import pytest; raise SystemExit(pytest.main(["-v","-o","addopts=","-p","no:cacheprovider","--basetemp=/home/ts/.cache/agent-scratch/nra-r1-function-scope-357-20261001/pytest-final","tests/test_cooperative_function_bindings.py","tests/test_cooperative_semantic_preparation.py","tests/test_projection_shard_publication.py","tests/test_raw_record_detectors.py","tests/test_source_projection_owner.py"]))" + User time (seconds): 6.31 + System time (seconds): 0.68 + Percent of CPU this job got: 98% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:07.10 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 90524 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 40 + Minor (reclaiming a frame) page faults: 102260 + Voluntary context switches: 114 + Involuntary context switches: 57 + Swaps: 0 + File system inputs: 10136 + File system outputs: 400 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 0 diff --git a/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/function-scope-lexical.log b/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/function-scope-lexical.log new file mode 100644 index 0000000..bf093c7 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/function-scope-lexical.log @@ -0,0 +1,51 @@ +============================= test session starts ============================== +platform linux -- Python 3.12.3, pytest-8.3.5, pluggy-1.6.0 -- /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python +rootdir: /home/ts/wt/nra-r1-preparation-owner-357-20261001 +configfile: pyproject.toml +collecting ... collected 27 items / 7 deselected / 20 selected + +tests/test_lexical_binding_authority.py::test_enclosing_bindings_match_native_python[def method(value=(hidden := 3)): pass] PASSED [ 5%] +tests/test_lexical_binding_authority.py::test_enclosing_bindings_match_native_python[async def method(value=(hidden := 3)): pass] PASSED [ 10%] +tests/test_lexical_binding_authority.py::test_enclosing_bindings_match_native_python[@(hidden := staticmethod)\ndef method(): pass] PASSED [ 15%] +tests/test_lexical_binding_authority.py::test_enclosing_bindings_match_native_python[class Inner((base := object)): pass] PASSED [ 20%] +tests/test_lexical_binding_authority.py::test_enclosing_bindings_match_native_python[value = lambda item=(hidden := 3): item] PASSED [ 25%] +tests/test_lexical_binding_authority.py::test_enclosing_bindings_match_native_python[values = (item for item in (1, 2))] PASSED [ 30%] +tests/test_lexical_binding_authority.py::test_enclosing_bindings_match_native_python[def method():\n internal = 3\n return internal] PASSED [ 35%] +tests/test_lexical_binding_authority.py::test_enclosing_bindings_match_native_python[class Inner:\n internal = 3] PASSED [ 40%] +tests/test_lexical_binding_authority.py::test_enclosing_bindings_match_native_python[try:\n pass\nexcept Exception as error:\n pass] PASSED [ 45%] +tests/test_lexical_binding_authority.py::test_enclosing_bindings_match_native_python[match value:\n case {'first': captured, **rest}: pass] PASSED [ 50%] +tests/test_lexical_binding_authority.py::test_comprehension_ownership_matches_live_function_scope[values = [item for item in (1, 2)]] PASSED [ 55%] +tests/test_lexical_binding_authority.py::test_comprehension_ownership_matches_live_function_scope[item = 0\nvalues = [item for item in (1, 2)]] PASSED [ 60%] +tests/test_lexical_binding_authority.py::test_comprehension_ownership_matches_live_function_scope[values = {item for item in (1, 2)}] PASSED [ 65%] +tests/test_lexical_binding_authority.py::test_comprehension_ownership_matches_live_function_scope[values = {item: item for item in (1, 2)}] PASSED [ 70%] +tests/test_lexical_binding_authority.py::test_comprehension_ownership_matches_live_function_scope[values = [(last := item) for item in (1, 2)]] PASSED [ 75%] +tests/test_lexical_binding_authority.py::test_comprehension_ownership_matches_live_function_scope[values = [lambda default=(last := item): default for item in (1, 2)]] PASSED [ 80%] +tests/test_lexical_binding_authority.py::test_comprehension_ownership_matches_live_function_scope[values = [lambda: (internal := item) for item in (1, 2)]] PASSED [ 85%] +tests/test_lexical_binding_authority.py::test_function_local_projection_uses_shared_header_bindings PASSED [ 90%] +tests/test_unique_identity_index.py::test_source_index_rejects_forced_target_handle_collision PASSED [ 95%] +tests/test_unique_identity_index.py::test_source_index_rejects_forced_file_handle_collision PASSED [100%] + +======================= 20 passed, 7 deselected in 0.18s ======================= + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -c import sys; sys.path.insert(0,"/home/ts/wt/nra-r1-preparation-owner-357-20261001"); import pytest; raise SystemExit(pytest.main(["-v","-o","addopts=","-p","no:cacheprovider","--basetemp=/home/ts/.cache/agent-scratch/nra-r1-function-scope-357-20261001/pytest-lexical","tests/test_lexical_binding_authority.py","tests/test_unique_identity_index.py::test_source_index_rejects_forced_target_handle_collision","tests/test_unique_identity_index.py::test_source_index_rejects_forced_file_handle_collision","-k","enclosing_bindings or comprehension_ownership or function_local_projection or source_index_rejects_forced"]))" + User time (seconds): 2.78 + System time (seconds): 0.11 + Percent of CPU this job got: 99% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:02.90 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 85072 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 24891 + Voluntary context switches: 30 + Involuntary context switches: 16 + Swaps: 0 + File system inputs: 56 + File system outputs: 64 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 0 diff --git a/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/function-scope-parity-after.log b/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/function-scope-parity-after.log new file mode 100644 index 0000000..5b42909 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/function-scope-parity-after.log @@ -0,0 +1,27 @@ +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "raw_sha256": "7a30d8cb97412abfbd6a113368712e4f56a71897cc1858d1b4c640ebeca019a1", "content_signature": "79730eaec7c75ee228c3c8b816d8fa82", "collection_seconds": 0.20858151197899133, "presentations": 116, "checks": 10, "supplements": 138} +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/class_index.py", "raw_sha256": "245f8e47ebc4456c67db8d180efa223362af292d73e7facb62264b7ae5f53a9f", "content_signature": "828ab748be59018c6d14f0bd7916d311", "collection_seconds": 0.2512098620063625, "presentations": 215, "checks": 19, "supplements": 88} +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "raw_sha256": "ca795d41eac570fab9eb81d94f71cce01f21529a2ab3c143519328654104b1e1", "content_signature": "cd23388afcd0c8035e3dc3e9b23eadcf", "collection_seconds": 0.13600456505082548, "presentations": 119, "checks": 6, "supplements": 62} +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/record_checks.py", "raw_sha256": "2a31a0a132ac3ca611a1c53daa575b8fa471cf6a53f0d88738a926d14a194eaf", "content_signature": "8d5920e4ec4c134932598f5a54ae1d72", "collection_seconds": 0.010690875991713256, "presentations": 8, "checks": 1, "supplements": 4} + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -u tools/check_semantic_preparation_parity.py --advisor-root /home/ts/wt/nra-r1-preparation-owner-357-20261001 /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/class_index.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/record_checks.py" + User time (seconds): 3.59 + System time (seconds): 0.10 + Percent of CPU this job got: 99% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:03.70 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 85424 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 25175 + Voluntary context switches: 25 + Involuntary context switches: 26 + Swaps: 0 + File system inputs: 0 + File system outputs: 8 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 0 diff --git a/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/function-scope-parity-before.log b/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/function-scope-parity-before.log new file mode 100644 index 0000000..05f69c4 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/function-scope-reuse/function-scope-parity-before.log @@ -0,0 +1,27 @@ +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "raw_sha256": "7a30d8cb97412abfbd6a113368712e4f56a71897cc1858d1b4c640ebeca019a1", "content_signature": "79730eaec7c75ee228c3c8b816d8fa82", "collection_seconds": 0.20862350799143314, "presentations": 116, "checks": 10, "supplements": 138} +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/class_index.py", "raw_sha256": "245f8e47ebc4456c67db8d180efa223362af292d73e7facb62264b7ae5f53a9f", "content_signature": "828ab748be59018c6d14f0bd7916d311", "collection_seconds": 0.25155621202429757, "presentations": 215, "checks": 19, "supplements": 88} +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "raw_sha256": "ca795d41eac570fab9eb81d94f71cce01f21529a2ab3c143519328654104b1e1", "content_signature": "cd23388afcd0c8035e3dc3e9b23eadcf", "collection_seconds": 0.14136431296356022, "presentations": 119, "checks": 6, "supplements": 62} +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/record_checks.py", "raw_sha256": "2a31a0a132ac3ca611a1c53daa575b8fa471cf6a53f0d88738a926d14a194eaf", "content_signature": "8d5920e4ec4c134932598f5a54ae1d72", "collection_seconds": 0.011153803032357246, "presentations": 8, "checks": 1, "supplements": 4} + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -u tools/check_semantic_preparation_parity.py --advisor-root /home/ts/wt/nra-r1-preparation-owner-357-20261001 /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/class_index.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/record_checks.py" + User time (seconds): 3.50 + System time (seconds): 0.06 + Percent of CPU this job got: 100% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:03.57 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 85264 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 2 + Minor (reclaiming a frame) page faults: 24744 + Voluntary context switches: 29 + Involuntary context switches: 27 + Swaps: 0 + File system inputs: 280 + File system outputs: 8 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 0 diff --git a/docs/validation/r1_preparation_owner_357_20261001/graph-tests-07.log b/docs/validation/r1_preparation_owner_357_20261001/graph-tests-07.log new file mode 100644 index 0000000..e077c94 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/graph-tests-07.log @@ -0,0 +1,90 @@ +/home/ts/code/projects/openhcs-sequential/.venv/lib/python3.12/site-packages/pytest_asyncio/plugin.py:208: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset. +The event loop scope for asynchronous fixtures will default to the fixture caching scope. Future versions of pytest-asyncio will default the loop scope for asynchronous fixtures to function scope. Set the default fixture loop scope explicitly in order to avoid unexpected behavior in the future. Valid fixture loop scopes are: "function", "class", "module", "package", "session" + + warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET)) +============================= test session starts ============================== +platform linux -- Python 3.12.3, pytest-8.3.5, pluggy-1.6.0 -- /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python +PyQt6 6.11.0 -- Qt runtime 6.11.2 -- Qt compiled 6.11.0 +rootdir: /home/ts/wt/nra-r1-preparation-owner-357-20261001 +configfile: pyproject.toml +plugins: asyncio-1.0.0, napari-0.6.1, napari-plugin-engine-0.2.0, anyio-4.9.0, timeout-2.4.0, zarr-3.4.0, xdist-3.8.0, langsmith-0.4.37, cov-6.1.1, npe2-0.7.8, qt-4.5.0 +asyncio: mode=Mode.STRICT, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function +collecting ... collected 21 items + +tests/test_syntax_children_projection.py::test_children_preserve_original_order_and_share_parent_authority PASSED [ 4%] +tests/test_syntax_children_projection.py::test_ambiguous_original_child_cannot_gain_an_owner[False] PASSED [ 9%] +tests/test_syntax_children_projection.py::test_ambiguous_original_child_cannot_gain_an_owner[True] PASSED [ 14%] +tests/test_syntax_children_projection.py::test_lazily_derived_children_still_refer_to_original_tree PASSED [ 19%] +tests/test_syntax_children_projection.py::test_completion_does_not_repeat_whole_module_syntax_walk FAILED [ 23%] +tests/test_deferred_projection_family.py::test_complete_content_signature_does_not_require_loading_all_graphs PASSED [ 28%] +tests/test_deferred_projection_family.py::test_missing_signature_requires_complete_original_content_evidence PASSED [ 33%] +tests/test_deferred_projection_family.py::test_materialized_public_api_retains_its_tuple_contract PASSED [ 38%] +tests/test_deferred_projection_family.py::test_count_derives_unique_source_materializations_without_rescanning_batches PASSED [ 42%] +tests/test_deferred_projection_family.py::test_corrupt_cache_repairs_only_the_requested_original_source PASSED [ 47%] +tests/test_deferred_projection_family.py::test_repair_rejects_a_changed_source_and_can_retry_the_original PASSED [ 52%] +tests/test_deferred_projection_family.py::test_global_lookup_still_reads_later_ambiguous_modules PASSED [ 57%] +tests/test_deferred_projection_family.py::test_eligibility_short_circuit_does_not_truncate_later_queries PASSED [ 61%] +tests/test_analysis_cache.py::test_module_analysis_memory_release_clears_ast_bound_lru_caches PASSED [ 66%] +tests/test_analysis_cache.py::test_module_analysis_memory_release_preserves_compiled_native_queries PASSED [ 71%] +tests/test_analysis_cache.py::test_compact_family_projection_batch_rejects_ast_payloads PASSED [ 76%] +tests/test_analysis_cache.py::test_compact_family_cache_identity_derives_projection_implementation PASSED [ 80%] +tests/test_analysis_cache.py::test_compact_semantic_descent_graph_matches_legacy_ast_graph PASSED [ 85%] +tests/test_analysis_cache.py::test_compact_analysis_returns_semantic_graph_on_cold_and_aggregate_hits PASSED [ 90%] +tests/test_analysis_cache.py::test_cold_focused_semantic_scan_omits_only_context_presentations PASSED [ 95%] +tests/test_analysis_cache.py::test_mixed_projection_shard_uses_only_python_ast PASSED [100%] + +=================================== FAILURES =================================== +___________ test_completion_does_not_repeat_whole_module_syntax_walk ___________ +ValueError: Native class capture remains unproved + +The above exception was the direct cause of the following exception: + + def test_completion_does_not_repeat_whole_module_syntax_walk(): + entry = entry_for("key = None\npass") + syntax = module_syntax_index(entry.execution.module.module) +> expected = entry.final_evaluation + +tests/test_syntax_children_projection.py:55: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +nominal_refactor_advisor/source_execution.py:2922: in final_evaluation + self.execution.require_terminal_evaluation(evaluation) +nominal_refactor_advisor/source_execution.py:3867: in require_terminal_evaluation + prefix = self.required_prefix(context, None) +nominal_refactor_advisor/source_execution.py:3879: in required_prefix + result.require_closed() +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + +self = OpenCapturedReference(violation=, mutation=None) + + def require_closed(self) -> None: +> raise self.rejection("Object capture") +E nominal_refactor_advisor.captured_reference.CapturedReferenceRejection: Object capture remains open: unproved_execution_effects + +nominal_refactor_advisor/captured_reference.py:533: CapturedReferenceRejection +=========================== short test summary info ============================ +FAILED tests/test_syntax_children_projection.py::test_completion_does_not_repeat_whole_module_syntax_walk +========================= 1 failed, 20 passed in 8.66s ========================= +Command exited with non-zero status 1 + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -c import sys; sys.path.insert(0,"/home/ts/wt/nra-r1-preparation-owner-357-20261001"); import pytest; raise SystemExit(pytest.main(["-v","-o","addopts=","-p","no:cacheprovider","--basetemp=/home/ts/.cache/agent-scratch/nra-r1-preparation-owner-357-20261001/pytest-graph-07","tests/test_syntax_children_projection.py","tests/test_deferred_projection_family.py","tests/test_analysis_cache.py::test_module_analysis_memory_release_clears_ast_bound_lru_caches","tests/test_analysis_cache.py::test_module_analysis_memory_release_preserves_compiled_native_queries","tests/test_analysis_cache.py::test_compact_family_projection_batch_rejects_ast_payloads","tests/test_analysis_cache.py::test_compact_family_cache_identity_derives_projection_implementation","tests/test_analysis_cache.py::test_compact_semantic_descent_graph_matches_legacy_ast_graph","tests/test_analysis_cache.py::test_compact_analysis_returns_semantic_graph_on_cold_and_aggregate_hits","tests/test_analysis_cache.py::test_cold_focused_semantic_scan_omits_only_context_presentations","tests/test_analysis_cache.py::test_mixed_projection_shard_uses_only_python_ast"]))" + User time (seconds): 13.47 + System time (seconds): 1.10 + Percent of CPU this job got: 98% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:14.84 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 453892 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 174489 + Voluntary context switches: 299 + Involuntary context switches: 1788 + Swaps: 0 + File system inputs: 496 + File system outputs: 4392 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 1 diff --git a/docs/validation/r1_preparation_owner_357_20261001/owner-census-baseline.log b/docs/validation/r1_preparation_owner_357_20261001/owner-census-baseline.log new file mode 100644 index 0000000..fede6b1 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/owner-census-baseline.log @@ -0,0 +1,235 @@ +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 109, "name": "AstKeywordSourceProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.AstKeywordSourceProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 152, "name": "AstParseCacheSchema", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.AstParseCacheSchema"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 158, "name": "AstCachePayloadUnavailable", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.AstCachePayloadUnavailable"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 163, "name": "AstParseCachePayload", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.AstParseCachePayload"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 196, "name": "CollectedFamilyCacheSchema", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyCacheSchema"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 204, "name": "CollectedFamilyContentSignatureIndexSchema", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyContentSignatureIndexSchema"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 211, "name": "CollectedFamilyImplementationSource", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyImplementationSource"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 216, "name": "CollectedFamilyImplementationIdentity", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyImplementationIdentity"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 235, "name": "CollectedFamilySchemaIdentity", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilySchemaIdentity"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 263, "name": "CollectedFamilyProjectionIdentity", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyProjectionIdentity"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 281, "name": "CollectedFamilyContentSignatureIndexKey", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyContentSignatureIndexKey"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 301, "name": "CollectedFamilyContentSignatureIndexPayload", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyContentSignatureIndexPayload"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 314, "name": "CollectedFamilyCacheIdentity", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyCacheIdentity"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 335, "name": "CollectedFamilyDemandCacheIdentity", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyDemandCacheIdentity"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 351, "name": "CollectedFamilyContentSignatureIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyContentSignatureIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 449, "name": "CollectedFamilyPresenceDemand", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyPresenceDemand"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 456, "name": "PythonModuleParseContext", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.PythonModuleParseContext"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 495, "name": "PythonSourceSemanticHash", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.PythonSourceSemanticHash"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 735, "name": "PythonParseWorkerPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.PythonParseWorkerPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 751, "name": "CompactModuleIdentity", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CompactModuleIdentity"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 759, "name": "ParsedModule", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ParsedModule"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 825, "name": "AstParentIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.AstParentIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 862, "name": "SourceModule", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.SourceModule"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 922, "name": "PythonModulePathAuthority", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.PythonModulePathAuthority"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1002, "name": "ParsedModuleSourceProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ParsedModuleSourceProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1091, "name": "SourceModuleBatchParser", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.SourceModuleBatchParser"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1135, "name": "BuiltinCallName", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.BuiltinCallName"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1262, "name": "VariableAnnotationVisitorABC", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.VariableAnnotationVisitorABC"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1274, "name": "ModuleAnnotationEvaluationMode", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ModuleAnnotationEvaluationMode"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1341, "name": "EagerFunctionAnnotationVisitor", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.EagerFunctionAnnotationVisitor"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1348, "name": "EagerNameLoadCollector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.EagerNameLoadCollector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1414, "name": "AstCallObservation", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.AstCallObservation"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1420, "name": "_BuilderCallContext", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools._BuilderCallContext"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1430, "name": "ScopedAstObservationRole", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ScopedAstObservationRole"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1447, "name": "ScopedAstObservation", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ScopedAstObservation"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1504, "name": "ClassAstObservation", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ClassAstObservation"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1509, "name": "ClassFunctionStackNodeVisitor", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ClassFunctionStackNodeVisitor"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1587, "name": "CollectedFamilyCachePayload", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyCachePayload"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1629, "name": "RegisteredTypeLineage", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.RegisteredTypeLineage"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1665, "name": "ModuleShapeSpec", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ModuleShapeSpec"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1673, "name": "SharedRegistryRootBase", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.SharedRegistryRootBase"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1679, "name": "AutoRegisteredModuleShapeSpec", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.AutoRegisteredModuleShapeSpec"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1714, "name": "CollectedFamily", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamily"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2008, "name": "CollectedFamilyCacheContext", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyCacheContext"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2260, "name": "CollectedFamilyBatch", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyBatch"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2300, "name": "RegisteredSpecCollectedFamily", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.RegisteredSpecCollectedFamily"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2315, "name": "SingleSpecCollectedFamily", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.SingleSpecCollectedFamily"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2332, "name": "ScopedShapeSpec", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ScopedShapeSpec"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2359, "name": "ObservationShapeSpec", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ObservationShapeSpec"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2374, "name": "ContextForwardingShapeSpec", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ContextForwardingShapeSpec"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2404, "name": "ContextHelperShapeSpec", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ContextHelperShapeSpec"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2431, "name": "FunctionObservationSpec", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.FunctionObservationSpec"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2456, "name": "AssignObservationSpec", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.AssignObservationSpec"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2479, "name": "SentinelTypeObservationSpecRoot", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.SentinelTypeObservationSpecRoot"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2527, "name": "PythonSourcePathPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.PythonSourcePathPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2569, "name": "PythonSourcePathDiscovery", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.PythonSourcePathDiscovery"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2621, "name": "PythonModuleRootParser", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.PythonModuleRootParser"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2847, "name": "LexicalSyntaxScope", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.LexicalSyntaxScope"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2858, "name": "ModuleSyntaxIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ModuleSyntaxIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 3153, "name": "CollectedItemProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedItemProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 3193, "name": "ClassObservationProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ClassObservationProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 3347, "name": "LiteralDispatchCaseMatcher", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.LiteralDispatchCaseMatcher"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 3363, "name": "_LiteralDispatchCompare", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools._LiteralDispatchCompare"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 3368, "name": "_LiteralDispatchCompareStep", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools._LiteralDispatchCompareStep"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 3377, "name": "_LiteralDispatchCaseStep", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools._LiteralDispatchCaseStep"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 3838, "name": "RootNameProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.RootNameProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 3842, "name": "Visitor", "scope": ["RootNameProjection", "root_names"], "admitted_owners": [], "status": "OPEN_UNPROJECTED_OR_AMBIGUOUS"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/record_checks.py", "line": 24, "name": "DeclaredAttributeCheck", "scope": [], "admitted_owners": ["nominal_refactor_advisor.record_checks.DeclaredAttributeCheck"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/record_checks.py", "line": 33, "name": "DeclaredTypeCheckModule", "scope": [], "admitted_owners": ["nominal_refactor_advisor.record_checks.DeclaredTypeCheckModule"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/record_checks.py", "line": 49, "name": "DeclaredAttributeCheckCollector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.record_checks.DeclaredAttributeCheckCollector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/record_checks.py", "line": 163, "name": "DeclaredAttributeContractResolver", "scope": [], "admitted_owners": ["nominal_refactor_advisor.record_checks.DeclaredAttributeContractResolver"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 129, "name": "SemanticAuthorityKind", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityKind"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 203, "name": "SemanticFactKind", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticFactKind"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 212, "name": "AuthorityClaimStatus", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityClaimStatus"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 257, "name": "AuthorityClaimProvenance", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityClaimProvenance"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 279, "name": "AuthorityProofEdgeKind", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityProofEdgeKind"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 292, "name": "PresentationProjectionPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationProjectionPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 303, "name": "PresentationProjectionKind", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationProjectionKind"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 391, "name": "PresentationProjectionSiteKind", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationProjectionSiteKind"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 405, "name": "PresentationTokenKind", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationTokenKind"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 433, "name": "PresentationTokenRole", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationTokenRole"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 447, "name": "DescentStatus", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.DescentStatus"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 455, "name": "SemanticDescentGraphCacheSchema", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheSchema"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 466, "name": "SemanticDescentImplementationSignature", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentImplementationSignature"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 503, "name": "SemanticDescentModuleFamilySignature", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentModuleFamilySignature"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 512, "name": "SemanticDescentModuleSignature", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentModuleSignature"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 555, "name": "SemanticDescentGraphCacheIdentity", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheIdentity"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 681, "name": "SemanticDescentGraphCacheFamilyIdentity", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheFamilyIdentity"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 730, "name": "SemanticAuthorityReference", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityReference"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 737, "name": "SemanticFactReference", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticFactReference"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 744, "name": "SemanticProjectionReference", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticProjectionReference"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 751, "name": "SemanticAuthorityProjectionReference", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityProjectionReference"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 759, "name": "SemanticFact", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticFact"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 842, "name": "SemanticAuthority", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthority"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 855, "name": "AuthorityClaim", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityClaim"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 959, "name": "AuthorityClaimCarrier", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityClaimCarrier"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 966, "name": "AuthorityProofEdge", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityProofEdge"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1013, "name": "AuthorityDiscoveryRequired", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityDiscoveryRequired"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1023, "name": "AuthorityClaimResolution", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityClaimResolution"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1119, "name": "AuthorityClaimResolver", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityClaimResolver"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1197, "name": "PresentationToken", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationToken"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1207, "name": "PresentationAuthorityConstruction", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationAuthorityConstruction"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1219, "name": "ProjectionOwnerSymbol", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ProjectionOwnerSymbol"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1243, "name": "PresentationKeyValuePair", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationKeyValuePair"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1282, "name": "MappingReadArgument", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.MappingReadArgument"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1294, "name": "KeywordMappingReadArgument", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.KeywordMappingReadArgument"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1302, "name": "PositionalMappingReadArgument", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PositionalMappingReadArgument"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1310, "name": "MappingReadConstructor", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.MappingReadConstructor"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1337, "name": "PresentationProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1395, "name": "SemanticClassSupplement", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticClassSupplement"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1476, "name": "CompactSemanticModuleProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.CompactSemanticModuleProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1485, "name": "CompactSemanticProjectionDemand", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.CompactSemanticProjectionDemand"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1503, "name": "DeferredModuleClassReferenceCollector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.DeferredModuleClassReferenceCollector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1536, "name": "_DeferredClassReferencePartsVisitor", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent._DeferredClassReferencePartsVisitor"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1569, "name": "ProjectionSuppressionIntent", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ProjectionSuppressionIntent"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1583, "name": "ProjectionSuppressionPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ProjectionSuppressionPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1599, "name": "SemanticAuthorityAffinityPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityAffinityPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1637, "name": "SemanticAuthorityMatch", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityMatch"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1701, "name": "SemanticAuthorityProjectionRelation", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityProjectionRelation"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1739, "name": "MirrorEdge", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.MirrorEdge"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1781, "name": "SemanticDerivationEdge", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDerivationEdge"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1821, "name": "SemanticAuthorityProjectionResolution", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityProjectionResolution"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1890, "name": "SemanticMirrorEdgeCandidate", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticMirrorEdgeCandidate"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1926, "name": "SemanticAuthorityMirrorPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityMirrorPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1992, "name": "ClassFamilyLikeMirrorPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ClassFamilyLikeMirrorPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2092, "name": "ClassFamilyMirrorPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ClassFamilyMirrorPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2098, "name": "AutoRegisterFamilyMirrorPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AutoRegisterFamilyMirrorPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2104, "name": "MappingSemanticAuthorityMirrorPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.MappingSemanticAuthorityMirrorPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2120, "name": "DataclassSchemaMirrorPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.DataclassSchemaMirrorPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2243, "name": "EnumMirrorPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.EnumMirrorPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2270, "name": "FindingDeclaredAuthorityMirrorPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.FindingDeclaredAuthorityMirrorPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2287, "name": "SemanticFactAuthorityIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticFactAuthorityIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2324, "name": "SemanticFactSpecificityIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticFactSpecificityIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2370, "name": "SemanticAuthorityNameIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityNameIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2397, "name": "SemanticAuthorityCatalog", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityCatalog"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2417, "name": "PresentationProjectionCatalog", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationProjectionCatalog"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2437, "name": "SemanticFactTokenIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticFactTokenIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2464, "name": "SemanticFactTokenMatch", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticFactTokenMatch"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2471, "name": "SemanticFactMatchIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticFactMatchIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2504, "name": "ProjectionClassSymbolFactMatcher", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ProjectionClassSymbolFactMatcher"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2547, "name": "SemanticDescentCertificate", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentCertificate"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2559, "name": "DescentCertificate", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.DescentCertificate"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2584, "name": "SemanticDerivationCertificate", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDerivationCertificate"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2596, "name": "SemanticAuthorityInventory", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityInventory"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2604, "name": "SemanticDescentGraphSpace", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphSpace"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2637, "name": "ResolvedDescentCertificate", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ResolvedDescentCertificate"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2680, "name": "ResolvedDescentCertificateSelection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ResolvedDescentCertificateSelection"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2728, "name": "FindingDescentCertificateAuthority", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.FindingDescentCertificateAuthority"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2794, "name": "SemanticDescentGraph", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraph"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2847, "name": "SemanticDescentGraphModuleOverlay", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphModuleOverlay"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2917, "name": "SemanticDescentAuthorityKindCount", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentAuthorityKindCount"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2925, "name": "SemanticDescentProjectionKindCount", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentProjectionKindCount"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2933, "name": "SemanticDescentCertificateSummary", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentCertificateSummary"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2973, "name": "SemanticDescentGraphReport", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphReport"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3029, "name": "SemanticDescentGraphPayloadReport", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphPayloadReport"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3079, "name": "FindingBackedSemanticDescentGraphRequest", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.FindingBackedSemanticDescentGraphRequest"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3116, "name": "FindingBackedAuthorityEvidence", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.FindingBackedAuthorityEvidence"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3134, "name": "DetectorSourceFindingAuthorityEvidence", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.DetectorSourceFindingAuthorityEvidence"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3150, "name": "InferredProjectionFindingAuthorityEvidence", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.InferredProjectionFindingAuthorityEvidence"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3171, "name": "FindingBackedSemanticDescent", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.FindingBackedSemanticDescent"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3316, "name": "FindingAuthorityNamePolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.FindingAuthorityNamePolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3356, "name": "SemanticDescentGraphCacheLookup", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheLookup"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3364, "name": "SemanticDescentGraphCacheDisabled", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheDisabled"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3369, "name": "SemanticDescentGraphCacheMiss", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheMiss"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3374, "name": "SemanticDescentGraphCacheHit", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheHit"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3516, "name": "SemanticDescentGraphCacheEntry", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheEntry"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3544, "name": "SemanticDescentGraphLatestPointer", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphLatestPointer"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3584, "name": "SemanticDescentGraphCache", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCache"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3808, "name": "SemanticDescentGraphBuildRequest", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphBuildRequest"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3913, "name": "SemanticDescentGraphCacheDirAuthority", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheDirAuthority"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3930, "name": "SemanticAuthorityBuilder", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityBuilder"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4003, "name": "SemanticAuthorityProviderResult", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityProviderResult"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4010, "name": "SemanticAuthorityBuildContext", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityBuildContext"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4058, "name": "AstSemanticAuthorityBuildContext", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AstSemanticAuthorityBuildContext"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4090, "name": "CompactSemanticAuthorityBuildContext", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.CompactSemanticAuthorityBuildContext"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4117, "name": "SemanticAuthorityDeclaration", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityDeclaration"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4131, "name": "ClassFamilySemanticAuthorityProvider", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ClassFamilySemanticAuthorityProvider"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4151, "name": "DataclassSemanticAuthorityProvider", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.DataclassSemanticAuthorityProvider"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4177, "name": "SemanticAuthorityProvider", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityProvider"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4205, "name": "SemanticProjectionCollector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticProjectionCollector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4223, "name": "CompactSemanticModuleProjectionFamily", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.CompactSemanticModuleProjectionFamily"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4381, "name": "CompactSemanticDescentResolution", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.CompactSemanticDescentResolution"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4395, "name": "CompactSemanticDescentRepository", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.CompactSemanticDescentRepository"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4609, "name": "MappingReadProjectionCollector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.MappingReadProjectionCollector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4680, "name": "ProjectionOwnerConstructionFrame", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ProjectionOwnerConstructionFrame"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4688, "name": "ProjectionTypeScope", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ProjectionTypeScope"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4765, "name": "CompactSemanticClassSupplementFrame", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.CompactSemanticClassSupplementFrame"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4775, "name": "_ProjectionVisitor", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent._ProjectionVisitor"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 5301, "name": "SemanticMirrorPolicyCatalog", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticMirrorPolicyCatalog"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 5320, "name": "ProjectionSemanticAuthority", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ProjectionSemanticAuthority"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 5424, "name": "ProjectionClassSymbolLineageIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ProjectionClassSymbolLineageIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 5474, "name": "ConstructionAuthorityResolver", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ConstructionAuthorityResolver"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 5813, "name": "DataclassProjectionDescentAuthority", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.DataclassProjectionDescentAuthority"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6240, "name": "SemanticAuthorityProjectionResolutionContext", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityProjectionResolutionContext"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6250, "name": "SemanticMirrorResolver", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticMirrorResolver"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6455, "name": "NormalizeNameProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.NormalizeNameProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6504, "name": "PresentationTokenNodeProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationTokenNodeProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6550, "name": "PresentationTokenProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationTokenProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6573, "name": "IterChildPresentationTokenProjectorMixin", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.IterChildPresentationTokenProjectorMixin"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6590, "name": "ConstantPresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ConstantPresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6614, "name": "NamePresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.NamePresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6634, "name": "AttributePresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AttributePresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6666, "name": "DictPresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.DictPresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6697, "name": "SequencePresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SequencePresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6717, "name": "StarredPresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.StarredPresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6734, "name": "CallPresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.CallPresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6778, "name": "ComparePresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ComparePresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6787, "name": "BoolOpPresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.BoolOpPresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6796, "name": "MatchValuePresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.MatchValuePresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6813, "name": "MatchSequencePresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.MatchSequencePresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6822, "name": "MatchOrPresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.MatchOrPresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6831, "name": "PresentationAuthorityConstructionCollector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationAuthorityConstructionCollector"], "status": "INDEX_ADMITTED"} + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -u tools/census_semantic_preparation_owners.py --advisor-root /home/ts/wt/nra-bounded-full-audit-20260929 /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/record_checks.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py" + User time (seconds): 2.47 + System time (seconds): 0.07 + Percent of CPU this job got: 56% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:04.50 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 82240 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 22640 + Voluntary context switches: 27 + Involuntary context switches: 766 + Swaps: 0 + File system inputs: 0 + File system outputs: 120 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 0 diff --git a/docs/validation/r1_preparation_owner_357_20261001/owner-census-canonical-baseline.log b/docs/validation/r1_preparation_owner_357_20261001/owner-census-canonical-baseline.log new file mode 100644 index 0000000..b23b244 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/owner-census-canonical-baseline.log @@ -0,0 +1,235 @@ +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 109, "name": "AstKeywordSourceProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.AstKeywordSourceProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 152, "name": "AstParseCacheSchema", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.AstParseCacheSchema"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 158, "name": "AstCachePayloadUnavailable", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.AstCachePayloadUnavailable"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 163, "name": "AstParseCachePayload", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.AstParseCachePayload"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 196, "name": "CollectedFamilyCacheSchema", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyCacheSchema"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 204, "name": "CollectedFamilyContentSignatureIndexSchema", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyContentSignatureIndexSchema"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 211, "name": "CollectedFamilyImplementationSource", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyImplementationSource"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 216, "name": "CollectedFamilyImplementationIdentity", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyImplementationIdentity"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 235, "name": "CollectedFamilySchemaIdentity", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilySchemaIdentity"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 263, "name": "CollectedFamilyProjectionIdentity", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyProjectionIdentity"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 281, "name": "CollectedFamilyContentSignatureIndexKey", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyContentSignatureIndexKey"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 301, "name": "CollectedFamilyContentSignatureIndexPayload", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyContentSignatureIndexPayload"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 314, "name": "CollectedFamilyCacheIdentity", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyCacheIdentity"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 335, "name": "CollectedFamilyDemandCacheIdentity", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyDemandCacheIdentity"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 351, "name": "CollectedFamilyContentSignatureIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyContentSignatureIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 449, "name": "CollectedFamilyPresenceDemand", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyPresenceDemand"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 456, "name": "PythonModuleParseContext", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.PythonModuleParseContext"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 495, "name": "PythonSourceSemanticHash", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.PythonSourceSemanticHash"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 735, "name": "PythonParseWorkerPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.PythonParseWorkerPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 751, "name": "CompactModuleIdentity", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CompactModuleIdentity"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 759, "name": "ParsedModule", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ParsedModule"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 825, "name": "AstParentIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.AstParentIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 862, "name": "SourceModule", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.SourceModule"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 922, "name": "PythonModulePathAuthority", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.PythonModulePathAuthority"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1002, "name": "ParsedModuleSourceProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ParsedModuleSourceProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1091, "name": "SourceModuleBatchParser", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.SourceModuleBatchParser"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1135, "name": "BuiltinCallName", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.BuiltinCallName"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1262, "name": "VariableAnnotationVisitorABC", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.VariableAnnotationVisitorABC"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1274, "name": "ModuleAnnotationEvaluationMode", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ModuleAnnotationEvaluationMode"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1341, "name": "EagerFunctionAnnotationVisitor", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.EagerFunctionAnnotationVisitor"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1348, "name": "EagerNameLoadCollector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.EagerNameLoadCollector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1414, "name": "AstCallObservation", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.AstCallObservation"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1420, "name": "_BuilderCallContext", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools._BuilderCallContext"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1430, "name": "ScopedAstObservationRole", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ScopedAstObservationRole"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1447, "name": "ScopedAstObservation", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ScopedAstObservation"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1504, "name": "ClassAstObservation", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ClassAstObservation"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1509, "name": "ClassFunctionStackNodeVisitor", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ClassFunctionStackNodeVisitor"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1587, "name": "CollectedFamilyCachePayload", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyCachePayload"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1629, "name": "RegisteredTypeLineage", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.RegisteredTypeLineage"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1665, "name": "ModuleShapeSpec", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ModuleShapeSpec"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1673, "name": "SharedRegistryRootBase", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.SharedRegistryRootBase"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1679, "name": "AutoRegisteredModuleShapeSpec", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.AutoRegisteredModuleShapeSpec"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 1714, "name": "CollectedFamily", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamily"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2008, "name": "CollectedFamilyCacheContext", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyCacheContext"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2260, "name": "CollectedFamilyBatch", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyBatch"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2300, "name": "RegisteredSpecCollectedFamily", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.RegisteredSpecCollectedFamily"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2315, "name": "SingleSpecCollectedFamily", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.SingleSpecCollectedFamily"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2332, "name": "ScopedShapeSpec", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ScopedShapeSpec"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2359, "name": "ObservationShapeSpec", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ObservationShapeSpec"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2374, "name": "ContextForwardingShapeSpec", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ContextForwardingShapeSpec"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2404, "name": "ContextHelperShapeSpec", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ContextHelperShapeSpec"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2431, "name": "FunctionObservationSpec", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.FunctionObservationSpec"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2456, "name": "AssignObservationSpec", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.AssignObservationSpec"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2479, "name": "SentinelTypeObservationSpecRoot", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.SentinelTypeObservationSpecRoot"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2527, "name": "PythonSourcePathPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.PythonSourcePathPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2569, "name": "PythonSourcePathDiscovery", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.PythonSourcePathDiscovery"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2621, "name": "PythonModuleRootParser", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.PythonModuleRootParser"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2847, "name": "LexicalSyntaxScope", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.LexicalSyntaxScope"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 2858, "name": "ModuleSyntaxIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ModuleSyntaxIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 3153, "name": "CollectedItemProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedItemProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 3193, "name": "ClassObservationProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ClassObservationProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 3347, "name": "LiteralDispatchCaseMatcher", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.LiteralDispatchCaseMatcher"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 3363, "name": "_LiteralDispatchCompare", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools._LiteralDispatchCompare"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 3368, "name": "_LiteralDispatchCompareStep", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools._LiteralDispatchCompareStep"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 3377, "name": "_LiteralDispatchCaseStep", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools._LiteralDispatchCaseStep"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 3838, "name": "RootNameProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.RootNameProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "line": 3842, "name": "Visitor", "scope": ["RootNameProjection", "root_names"], "admitted_owners": [], "status": "OPEN_UNPROJECTED_OR_AMBIGUOUS"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/record_checks.py", "line": 24, "name": "DeclaredAttributeCheck", "scope": [], "admitted_owners": ["nominal_refactor_advisor.record_checks.DeclaredAttributeCheck"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/record_checks.py", "line": 33, "name": "DeclaredTypeCheckModule", "scope": [], "admitted_owners": ["nominal_refactor_advisor.record_checks.DeclaredTypeCheckModule"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/record_checks.py", "line": 49, "name": "DeclaredAttributeCheckCollector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.record_checks.DeclaredAttributeCheckCollector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/record_checks.py", "line": 163, "name": "DeclaredAttributeContractResolver", "scope": [], "admitted_owners": ["nominal_refactor_advisor.record_checks.DeclaredAttributeContractResolver"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 129, "name": "SemanticAuthorityKind", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityKind"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 203, "name": "SemanticFactKind", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticFactKind"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 212, "name": "AuthorityClaimStatus", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityClaimStatus"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 257, "name": "AuthorityClaimProvenance", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityClaimProvenance"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 279, "name": "AuthorityProofEdgeKind", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityProofEdgeKind"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 292, "name": "PresentationProjectionPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationProjectionPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 303, "name": "PresentationProjectionKind", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationProjectionKind"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 391, "name": "PresentationProjectionSiteKind", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationProjectionSiteKind"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 405, "name": "PresentationTokenKind", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationTokenKind"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 433, "name": "PresentationTokenRole", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationTokenRole"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 447, "name": "DescentStatus", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.DescentStatus"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 455, "name": "SemanticDescentGraphCacheSchema", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheSchema"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 466, "name": "SemanticDescentImplementationSignature", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentImplementationSignature"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 503, "name": "SemanticDescentModuleFamilySignature", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentModuleFamilySignature"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 512, "name": "SemanticDescentModuleSignature", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentModuleSignature"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 555, "name": "SemanticDescentGraphCacheIdentity", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheIdentity"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 681, "name": "SemanticDescentGraphCacheFamilyIdentity", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheFamilyIdentity"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 730, "name": "SemanticAuthorityReference", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityReference"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 737, "name": "SemanticFactReference", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticFactReference"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 744, "name": "SemanticProjectionReference", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticProjectionReference"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 751, "name": "SemanticAuthorityProjectionReference", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityProjectionReference"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 759, "name": "SemanticFact", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticFact"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 842, "name": "SemanticAuthority", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthority"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 855, "name": "AuthorityClaim", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityClaim"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 959, "name": "AuthorityClaimCarrier", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityClaimCarrier"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 966, "name": "AuthorityProofEdge", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityProofEdge"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1013, "name": "AuthorityDiscoveryRequired", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityDiscoveryRequired"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1023, "name": "AuthorityClaimResolution", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityClaimResolution"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1119, "name": "AuthorityClaimResolver", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityClaimResolver"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1197, "name": "PresentationToken", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationToken"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1207, "name": "PresentationAuthorityConstruction", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationAuthorityConstruction"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1219, "name": "ProjectionOwnerSymbol", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ProjectionOwnerSymbol"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1243, "name": "PresentationKeyValuePair", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationKeyValuePair"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1282, "name": "MappingReadArgument", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.MappingReadArgument"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1294, "name": "KeywordMappingReadArgument", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.KeywordMappingReadArgument"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1302, "name": "PositionalMappingReadArgument", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PositionalMappingReadArgument"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1310, "name": "MappingReadConstructor", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.MappingReadConstructor"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1337, "name": "PresentationProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1395, "name": "SemanticClassSupplement", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticClassSupplement"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1476, "name": "CompactSemanticModuleProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.CompactSemanticModuleProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1485, "name": "CompactSemanticProjectionDemand", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.CompactSemanticProjectionDemand"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1503, "name": "DeferredModuleClassReferenceCollector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.DeferredModuleClassReferenceCollector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1536, "name": "_DeferredClassReferencePartsVisitor", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent._DeferredClassReferencePartsVisitor"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1569, "name": "ProjectionSuppressionIntent", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ProjectionSuppressionIntent"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1583, "name": "ProjectionSuppressionPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ProjectionSuppressionPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1599, "name": "SemanticAuthorityAffinityPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityAffinityPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1637, "name": "SemanticAuthorityMatch", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityMatch"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1701, "name": "SemanticAuthorityProjectionRelation", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityProjectionRelation"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1739, "name": "MirrorEdge", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.MirrorEdge"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1781, "name": "SemanticDerivationEdge", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDerivationEdge"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1821, "name": "SemanticAuthorityProjectionResolution", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityProjectionResolution"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1890, "name": "SemanticMirrorEdgeCandidate", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticMirrorEdgeCandidate"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1926, "name": "SemanticAuthorityMirrorPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityMirrorPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 1992, "name": "ClassFamilyLikeMirrorPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ClassFamilyLikeMirrorPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2092, "name": "ClassFamilyMirrorPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ClassFamilyMirrorPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2098, "name": "AutoRegisterFamilyMirrorPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AutoRegisterFamilyMirrorPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2104, "name": "MappingSemanticAuthorityMirrorPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.MappingSemanticAuthorityMirrorPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2120, "name": "DataclassSchemaMirrorPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.DataclassSchemaMirrorPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2243, "name": "EnumMirrorPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.EnumMirrorPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2270, "name": "FindingDeclaredAuthorityMirrorPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.FindingDeclaredAuthorityMirrorPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2287, "name": "SemanticFactAuthorityIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticFactAuthorityIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2324, "name": "SemanticFactSpecificityIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticFactSpecificityIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2370, "name": "SemanticAuthorityNameIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityNameIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2397, "name": "SemanticAuthorityCatalog", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityCatalog"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2417, "name": "PresentationProjectionCatalog", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationProjectionCatalog"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2437, "name": "SemanticFactTokenIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticFactTokenIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2464, "name": "SemanticFactTokenMatch", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticFactTokenMatch"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2471, "name": "SemanticFactMatchIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticFactMatchIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2504, "name": "ProjectionClassSymbolFactMatcher", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ProjectionClassSymbolFactMatcher"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2547, "name": "SemanticDescentCertificate", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentCertificate"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2559, "name": "DescentCertificate", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.DescentCertificate"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2584, "name": "SemanticDerivationCertificate", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDerivationCertificate"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2596, "name": "SemanticAuthorityInventory", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityInventory"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2604, "name": "SemanticDescentGraphSpace", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphSpace"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2637, "name": "ResolvedDescentCertificate", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ResolvedDescentCertificate"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2680, "name": "ResolvedDescentCertificateSelection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ResolvedDescentCertificateSelection"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2728, "name": "FindingDescentCertificateAuthority", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.FindingDescentCertificateAuthority"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2794, "name": "SemanticDescentGraph", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraph"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2847, "name": "SemanticDescentGraphModuleOverlay", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphModuleOverlay"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2917, "name": "SemanticDescentAuthorityKindCount", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentAuthorityKindCount"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2925, "name": "SemanticDescentProjectionKindCount", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentProjectionKindCount"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2933, "name": "SemanticDescentCertificateSummary", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentCertificateSummary"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 2973, "name": "SemanticDescentGraphReport", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphReport"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3029, "name": "SemanticDescentGraphPayloadReport", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphPayloadReport"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3079, "name": "FindingBackedSemanticDescentGraphRequest", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.FindingBackedSemanticDescentGraphRequest"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3116, "name": "FindingBackedAuthorityEvidence", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.FindingBackedAuthorityEvidence"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3134, "name": "DetectorSourceFindingAuthorityEvidence", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.DetectorSourceFindingAuthorityEvidence"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3150, "name": "InferredProjectionFindingAuthorityEvidence", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.InferredProjectionFindingAuthorityEvidence"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3171, "name": "FindingBackedSemanticDescent", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.FindingBackedSemanticDescent"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3316, "name": "FindingAuthorityNamePolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.FindingAuthorityNamePolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3356, "name": "SemanticDescentGraphCacheLookup", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheLookup"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3364, "name": "SemanticDescentGraphCacheDisabled", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheDisabled"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3369, "name": "SemanticDescentGraphCacheMiss", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheMiss"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3374, "name": "SemanticDescentGraphCacheHit", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheHit"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3516, "name": "SemanticDescentGraphCacheEntry", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheEntry"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3544, "name": "SemanticDescentGraphLatestPointer", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphLatestPointer"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3584, "name": "SemanticDescentGraphCache", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCache"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3808, "name": "SemanticDescentGraphBuildRequest", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphBuildRequest"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3913, "name": "SemanticDescentGraphCacheDirAuthority", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheDirAuthority"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 3930, "name": "SemanticAuthorityBuilder", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityBuilder"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4003, "name": "SemanticAuthorityProviderResult", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityProviderResult"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4010, "name": "SemanticAuthorityBuildContext", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityBuildContext"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4058, "name": "AstSemanticAuthorityBuildContext", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AstSemanticAuthorityBuildContext"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4090, "name": "CompactSemanticAuthorityBuildContext", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.CompactSemanticAuthorityBuildContext"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4117, "name": "SemanticAuthorityDeclaration", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityDeclaration"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4131, "name": "ClassFamilySemanticAuthorityProvider", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ClassFamilySemanticAuthorityProvider"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4151, "name": "DataclassSemanticAuthorityProvider", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.DataclassSemanticAuthorityProvider"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4177, "name": "SemanticAuthorityProvider", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityProvider"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4205, "name": "SemanticProjectionCollector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticProjectionCollector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4223, "name": "CompactSemanticModuleProjectionFamily", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.CompactSemanticModuleProjectionFamily"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4381, "name": "CompactSemanticDescentResolution", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.CompactSemanticDescentResolution"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4395, "name": "CompactSemanticDescentRepository", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.CompactSemanticDescentRepository"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4609, "name": "MappingReadProjectionCollector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.MappingReadProjectionCollector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4680, "name": "ProjectionOwnerConstructionFrame", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ProjectionOwnerConstructionFrame"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4688, "name": "ProjectionTypeScope", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ProjectionTypeScope"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4765, "name": "CompactSemanticClassSupplementFrame", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.CompactSemanticClassSupplementFrame"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 4775, "name": "_ProjectionVisitor", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent._ProjectionVisitor"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 5301, "name": "SemanticMirrorPolicyCatalog", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticMirrorPolicyCatalog"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 5320, "name": "ProjectionSemanticAuthority", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ProjectionSemanticAuthority"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 5424, "name": "ProjectionClassSymbolLineageIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ProjectionClassSymbolLineageIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 5474, "name": "ConstructionAuthorityResolver", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ConstructionAuthorityResolver"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 5813, "name": "DataclassProjectionDescentAuthority", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.DataclassProjectionDescentAuthority"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6240, "name": "SemanticAuthorityProjectionResolutionContext", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityProjectionResolutionContext"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6250, "name": "SemanticMirrorResolver", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticMirrorResolver"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6455, "name": "NormalizeNameProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.NormalizeNameProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6504, "name": "PresentationTokenNodeProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationTokenNodeProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6550, "name": "PresentationTokenProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationTokenProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6573, "name": "IterChildPresentationTokenProjectorMixin", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.IterChildPresentationTokenProjectorMixin"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6590, "name": "ConstantPresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ConstantPresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6614, "name": "NamePresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.NamePresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6634, "name": "AttributePresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AttributePresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6666, "name": "DictPresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.DictPresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6697, "name": "SequencePresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SequencePresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6717, "name": "StarredPresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.StarredPresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6734, "name": "CallPresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.CallPresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6778, "name": "ComparePresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ComparePresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6787, "name": "BoolOpPresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.BoolOpPresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6796, "name": "MatchValuePresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.MatchValuePresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6813, "name": "MatchSequencePresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.MatchSequencePresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6822, "name": "MatchOrPresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.MatchOrPresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "line": 6831, "name": "PresentationAuthorityConstructionCollector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationAuthorityConstructionCollector"], "status": "INDEX_ADMITTED"} + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -u tools/census_semantic_preparation_owners.py --advisor-root /home/ts/wt/nra-bounded-full-audit-20260929 /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/record_checks.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py" + User time (seconds): 2.36 + System time (seconds): 0.08 + Percent of CPU this job got: 100% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:02.44 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 81120 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 23110 + Voluntary context switches: 27 + Involuntary context switches: 14 + Swaps: 0 + File system inputs: 0 + File system outputs: 120 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 0 diff --git a/docs/validation/r1_preparation_owner_357_20261001/owner-census-canonical-candidate.log b/docs/validation/r1_preparation_owner_357_20261001/owner-census-canonical-candidate.log new file mode 100644 index 0000000..98074f6 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/owner-census-canonical-candidate.log @@ -0,0 +1,237 @@ +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 109, "name": "AstKeywordSourceProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.AstKeywordSourceProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 152, "name": "AstParseCacheSchema", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.AstParseCacheSchema"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 158, "name": "AstCachePayloadUnavailable", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.AstCachePayloadUnavailable"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 163, "name": "AstParseCachePayload", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.AstParseCachePayload"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 196, "name": "CollectedFamilyCacheSchema", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyCacheSchema"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 204, "name": "CollectedFamilyContentSignatureIndexSchema", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyContentSignatureIndexSchema"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 211, "name": "CollectedFamilyImplementationSource", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyImplementationSource"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 216, "name": "CollectedFamilyImplementationIdentity", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyImplementationIdentity"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 235, "name": "CollectedFamilySchemaIdentity", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilySchemaIdentity"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 263, "name": "CollectedFamilyProjectionIdentity", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyProjectionIdentity"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 281, "name": "CollectedFamilyContentSignatureIndexKey", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyContentSignatureIndexKey"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 301, "name": "CollectedFamilyContentSignatureIndexPayload", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyContentSignatureIndexPayload"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 314, "name": "CollectedFamilyCacheIdentity", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyCacheIdentity"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 335, "name": "CollectedFamilyDemandCacheIdentity", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyDemandCacheIdentity"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 351, "name": "CollectedFamilyContentSignatureIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyContentSignatureIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 449, "name": "CollectedFamilyPresenceDemand", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyPresenceDemand"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 456, "name": "PythonModuleParseContext", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.PythonModuleParseContext"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 495, "name": "PythonSourceSemanticHash", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.PythonSourceSemanticHash"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 735, "name": "PythonParseWorkerPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.PythonParseWorkerPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 751, "name": "CompactModuleIdentity", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CompactModuleIdentity"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 759, "name": "ParsedModule", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ParsedModule"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 825, "name": "AstParentIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.AstParentIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 862, "name": "SourceModule", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.SourceModule"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 922, "name": "PythonModulePathAuthority", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.PythonModulePathAuthority"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 1002, "name": "ParsedModuleSourceProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ParsedModuleSourceProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 1091, "name": "SourceModuleBatchParser", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.SourceModuleBatchParser"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 1135, "name": "BuiltinCallName", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.BuiltinCallName"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 1262, "name": "VariableAnnotationVisitorABC", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.VariableAnnotationVisitorABC"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 1274, "name": "ModuleAnnotationEvaluationMode", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ModuleAnnotationEvaluationMode"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 1341, "name": "EagerFunctionAnnotationVisitor", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.EagerFunctionAnnotationVisitor"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 1348, "name": "EagerNameLoadCollector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.EagerNameLoadCollector"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 1414, "name": "AstCallObservation", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.AstCallObservation"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 1420, "name": "_BuilderCallContext", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools._BuilderCallContext"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 1430, "name": "ScopedAstObservationRole", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ScopedAstObservationRole"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 1447, "name": "ScopedAstObservation", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ScopedAstObservation"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 1504, "name": "ClassAstObservation", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ClassAstObservation"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 1509, "name": "ClassFunctionStackNodeVisitor", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ClassFunctionStackNodeVisitor"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 1582, "name": "ParsedModuleClassFunctionStackNodeVisitor", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ParsedModuleClassFunctionStackNodeVisitor"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 1602, "name": "CollectedFamilyCachePayload", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyCachePayload"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 1644, "name": "RegisteredTypeLineage", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.RegisteredTypeLineage"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 1680, "name": "ModuleShapeSpec", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ModuleShapeSpec"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 1688, "name": "SharedRegistryRootBase", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.SharedRegistryRootBase"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 1694, "name": "AutoRegisteredModuleShapeSpec", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.AutoRegisteredModuleShapeSpec"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 1729, "name": "CollectedFamily", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamily"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 2023, "name": "CollectedFamilyCacheContext", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyCacheContext"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 2275, "name": "CollectedFamilyBatch", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedFamilyBatch"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 2315, "name": "RegisteredSpecCollectedFamily", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.RegisteredSpecCollectedFamily"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 2330, "name": "SingleSpecCollectedFamily", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.SingleSpecCollectedFamily"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 2347, "name": "ScopedShapeSpec", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ScopedShapeSpec"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 2374, "name": "ObservationShapeSpec", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ObservationShapeSpec"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 2389, "name": "ContextForwardingShapeSpec", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ContextForwardingShapeSpec"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 2419, "name": "ContextHelperShapeSpec", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ContextHelperShapeSpec"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 2446, "name": "FunctionObservationSpec", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.FunctionObservationSpec"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 2471, "name": "AssignObservationSpec", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.AssignObservationSpec"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 2494, "name": "SentinelTypeObservationSpecRoot", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.SentinelTypeObservationSpecRoot"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 2542, "name": "PythonSourcePathPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.PythonSourcePathPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 2584, "name": "PythonSourcePathDiscovery", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.PythonSourcePathDiscovery"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 2636, "name": "PythonModuleRootParser", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.PythonModuleRootParser"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 2862, "name": "LexicalSyntaxScope", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.LexicalSyntaxScope"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 2873, "name": "ModuleSyntaxIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ModuleSyntaxIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 3168, "name": "CollectedItemProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.CollectedItemProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 3208, "name": "ClassObservationProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.ClassObservationProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 3362, "name": "LiteralDispatchCaseMatcher", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.LiteralDispatchCaseMatcher"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 3378, "name": "_LiteralDispatchCompare", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools._LiteralDispatchCompare"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 3383, "name": "_LiteralDispatchCompareStep", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools._LiteralDispatchCompareStep"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 3392, "name": "_LiteralDispatchCaseStep", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools._LiteralDispatchCaseStep"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 3853, "name": "RootNameProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.ast_tools.RootNameProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/ast_tools.py", "line": 3857, "name": "Visitor", "scope": ["RootNameProjection", "root_names"], "admitted_owners": [], "status": "OPEN_UNPROJECTED_OR_AMBIGUOUS"} +{"file_path": "nominal_refactor_advisor/record_checks.py", "line": 24, "name": "DeclaredAttributeCheck", "scope": [], "admitted_owners": ["nominal_refactor_advisor.record_checks.DeclaredAttributeCheck"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/record_checks.py", "line": 33, "name": "DeclaredTypeCheckModule", "scope": [], "admitted_owners": ["nominal_refactor_advisor.record_checks.DeclaredTypeCheckModule"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/record_checks.py", "line": 55, "name": "DeclaredAttributeCheckCollector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.record_checks.DeclaredAttributeCheckCollector"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/record_checks.py", "line": 178, "name": "DeclaredAttributeContractResolver", "scope": [], "admitted_owners": ["nominal_refactor_advisor.record_checks.DeclaredAttributeContractResolver"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 129, "name": "SemanticAuthorityKind", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityKind"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 203, "name": "SemanticFactKind", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticFactKind"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 212, "name": "AuthorityClaimStatus", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityClaimStatus"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 257, "name": "AuthorityClaimProvenance", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityClaimProvenance"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 279, "name": "AuthorityProofEdgeKind", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityProofEdgeKind"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 292, "name": "PresentationProjectionPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationProjectionPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 303, "name": "PresentationProjectionKind", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationProjectionKind"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 391, "name": "PresentationProjectionSiteKind", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationProjectionSiteKind"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 405, "name": "PresentationTokenKind", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationTokenKind"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 433, "name": "PresentationTokenRole", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationTokenRole"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 447, "name": "DescentStatus", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.DescentStatus"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 455, "name": "SemanticDescentGraphCacheSchema", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheSchema"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 466, "name": "SemanticDescentImplementationSignature", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentImplementationSignature"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 503, "name": "SemanticDescentModuleFamilySignature", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentModuleFamilySignature"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 512, "name": "SemanticDescentModuleSignature", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentModuleSignature"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 555, "name": "SemanticDescentGraphCacheIdentity", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheIdentity"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 681, "name": "SemanticDescentGraphCacheFamilyIdentity", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheFamilyIdentity"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 730, "name": "SemanticAuthorityReference", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityReference"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 737, "name": "SemanticFactReference", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticFactReference"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 744, "name": "SemanticProjectionReference", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticProjectionReference"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 751, "name": "SemanticAuthorityProjectionReference", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityProjectionReference"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 759, "name": "SemanticFact", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticFact"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 842, "name": "SemanticAuthority", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthority"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 855, "name": "AuthorityClaim", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityClaim"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 959, "name": "AuthorityClaimCarrier", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityClaimCarrier"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 966, "name": "AuthorityProofEdge", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityProofEdge"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1013, "name": "AuthorityDiscoveryRequired", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityDiscoveryRequired"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1023, "name": "AuthorityClaimResolution", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityClaimResolution"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1119, "name": "AuthorityClaimResolver", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AuthorityClaimResolver"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1197, "name": "PresentationToken", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationToken"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1207, "name": "PresentationAuthorityConstruction", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationAuthorityConstruction"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1219, "name": "ProjectionOwnerSymbol", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ProjectionOwnerSymbol"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1243, "name": "PresentationKeyValuePair", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationKeyValuePair"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1282, "name": "MappingReadArgument", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.MappingReadArgument"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1294, "name": "KeywordMappingReadArgument", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.KeywordMappingReadArgument"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1302, "name": "PositionalMappingReadArgument", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PositionalMappingReadArgument"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1310, "name": "MappingReadConstructor", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.MappingReadConstructor"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1337, "name": "PresentationProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1395, "name": "SemanticClassSupplement", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticClassSupplement"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1476, "name": "CompactSemanticModuleProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.CompactSemanticModuleProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1485, "name": "CompactSemanticProjectionDemand", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.CompactSemanticProjectionDemand"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1503, "name": "DeferredModuleClassReferenceCollector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.DeferredModuleClassReferenceCollector"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1536, "name": "_DeferredClassReferencePartsVisitor", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent._DeferredClassReferencePartsVisitor"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1569, "name": "ProjectionSuppressionIntent", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ProjectionSuppressionIntent"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1583, "name": "ProjectionSuppressionPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ProjectionSuppressionPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1599, "name": "SemanticAuthorityAffinityPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityAffinityPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1637, "name": "SemanticAuthorityMatch", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityMatch"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1701, "name": "SemanticAuthorityProjectionRelation", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityProjectionRelation"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1739, "name": "MirrorEdge", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.MirrorEdge"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1781, "name": "SemanticDerivationEdge", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDerivationEdge"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1821, "name": "SemanticAuthorityProjectionResolution", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityProjectionResolution"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1890, "name": "SemanticMirrorEdgeCandidate", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticMirrorEdgeCandidate"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1926, "name": "SemanticAuthorityMirrorPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityMirrorPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 1992, "name": "ClassFamilyLikeMirrorPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ClassFamilyLikeMirrorPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2092, "name": "ClassFamilyMirrorPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ClassFamilyMirrorPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2098, "name": "AutoRegisterFamilyMirrorPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AutoRegisterFamilyMirrorPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2104, "name": "MappingSemanticAuthorityMirrorPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.MappingSemanticAuthorityMirrorPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2120, "name": "DataclassSchemaMirrorPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.DataclassSchemaMirrorPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2243, "name": "EnumMirrorPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.EnumMirrorPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2270, "name": "FindingDeclaredAuthorityMirrorPolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.FindingDeclaredAuthorityMirrorPolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2287, "name": "SemanticFactAuthorityIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticFactAuthorityIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2324, "name": "SemanticFactSpecificityIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticFactSpecificityIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2370, "name": "SemanticAuthorityNameIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityNameIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2397, "name": "SemanticAuthorityCatalog", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityCatalog"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2417, "name": "PresentationProjectionCatalog", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationProjectionCatalog"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2437, "name": "SemanticFactTokenIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticFactTokenIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2464, "name": "SemanticFactTokenMatch", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticFactTokenMatch"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2471, "name": "SemanticFactMatchIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticFactMatchIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2504, "name": "ProjectionClassSymbolFactMatcher", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ProjectionClassSymbolFactMatcher"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2547, "name": "SemanticDescentCertificate", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentCertificate"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2559, "name": "DescentCertificate", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.DescentCertificate"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2584, "name": "SemanticDerivationCertificate", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDerivationCertificate"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2596, "name": "SemanticAuthorityInventory", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityInventory"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2604, "name": "SemanticDescentGraphSpace", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphSpace"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2637, "name": "ResolvedDescentCertificate", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ResolvedDescentCertificate"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2680, "name": "ResolvedDescentCertificateSelection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ResolvedDescentCertificateSelection"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2728, "name": "FindingDescentCertificateAuthority", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.FindingDescentCertificateAuthority"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2794, "name": "SemanticDescentGraph", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraph"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2847, "name": "SemanticDescentGraphModuleOverlay", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphModuleOverlay"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2917, "name": "SemanticDescentAuthorityKindCount", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentAuthorityKindCount"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2925, "name": "SemanticDescentProjectionKindCount", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentProjectionKindCount"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2933, "name": "SemanticDescentCertificateSummary", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentCertificateSummary"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 2973, "name": "SemanticDescentGraphReport", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphReport"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 3029, "name": "SemanticDescentGraphPayloadReport", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphPayloadReport"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 3079, "name": "FindingBackedSemanticDescentGraphRequest", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.FindingBackedSemanticDescentGraphRequest"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 3116, "name": "FindingBackedAuthorityEvidence", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.FindingBackedAuthorityEvidence"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 3134, "name": "DetectorSourceFindingAuthorityEvidence", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.DetectorSourceFindingAuthorityEvidence"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 3150, "name": "InferredProjectionFindingAuthorityEvidence", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.InferredProjectionFindingAuthorityEvidence"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 3171, "name": "FindingBackedSemanticDescent", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.FindingBackedSemanticDescent"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 3316, "name": "FindingAuthorityNamePolicy", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.FindingAuthorityNamePolicy"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 3356, "name": "SemanticDescentGraphCacheLookup", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheLookup"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 3364, "name": "SemanticDescentGraphCacheDisabled", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheDisabled"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 3369, "name": "SemanticDescentGraphCacheMiss", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheMiss"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 3374, "name": "SemanticDescentGraphCacheHit", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheHit"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 3516, "name": "SemanticDescentGraphCacheEntry", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheEntry"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 3544, "name": "SemanticDescentGraphLatestPointer", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphLatestPointer"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 3584, "name": "SemanticDescentGraphCache", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCache"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 3808, "name": "SemanticDescentGraphBuildRequest", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphBuildRequest"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 3913, "name": "SemanticDescentGraphCacheDirAuthority", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticDescentGraphCacheDirAuthority"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 3930, "name": "SemanticAuthorityBuilder", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityBuilder"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 4003, "name": "SemanticAuthorityProviderResult", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityProviderResult"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 4010, "name": "SemanticAuthorityBuildContext", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityBuildContext"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 4058, "name": "AstSemanticAuthorityBuildContext", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AstSemanticAuthorityBuildContext"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 4090, "name": "CompactSemanticAuthorityBuildContext", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.CompactSemanticAuthorityBuildContext"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 4117, "name": "SemanticAuthorityDeclaration", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityDeclaration"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 4131, "name": "ClassFamilySemanticAuthorityProvider", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ClassFamilySemanticAuthorityProvider"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 4151, "name": "DataclassSemanticAuthorityProvider", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.DataclassSemanticAuthorityProvider"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 4177, "name": "SemanticAuthorityProvider", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityProvider"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 4205, "name": "SemanticProjectionCollector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticProjectionCollector"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 4223, "name": "CompactSemanticModuleProjectionFamily", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.CompactSemanticModuleProjectionFamily"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 4385, "name": "CompactSemanticDescentResolution", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.CompactSemanticDescentResolution"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 4399, "name": "CompactSemanticDescentRepository", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.CompactSemanticDescentRepository"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 4613, "name": "MappingReadProjectionCollector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.MappingReadProjectionCollector"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 4684, "name": "ProjectionOwnerConstructionFrame", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ProjectionOwnerConstructionFrame"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 4692, "name": "ProjectionTypeScope", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ProjectionTypeScope"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 4769, "name": "CompactSemanticClassSupplementFrame", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.CompactSemanticClassSupplementFrame"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 4779, "name": "_ProjectionVisitor", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent._ProjectionVisitor"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 5318, "name": "_CompactSemanticProjectionVisitor", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent._CompactSemanticProjectionVisitor"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 5330, "name": "SemanticMirrorPolicyCatalog", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticMirrorPolicyCatalog"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 5349, "name": "ProjectionSemanticAuthority", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ProjectionSemanticAuthority"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 5453, "name": "ProjectionClassSymbolLineageIndex", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ProjectionClassSymbolLineageIndex"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 5503, "name": "ConstructionAuthorityResolver", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ConstructionAuthorityResolver"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 5842, "name": "DataclassProjectionDescentAuthority", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.DataclassProjectionDescentAuthority"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 6269, "name": "SemanticAuthorityProjectionResolutionContext", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticAuthorityProjectionResolutionContext"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 6279, "name": "SemanticMirrorResolver", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SemanticMirrorResolver"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 6484, "name": "NormalizeNameProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.NormalizeNameProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 6533, "name": "PresentationTokenNodeProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationTokenNodeProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 6579, "name": "PresentationTokenProjection", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationTokenProjection"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 6602, "name": "IterChildPresentationTokenProjectorMixin", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.IterChildPresentationTokenProjectorMixin"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 6619, "name": "ConstantPresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ConstantPresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 6643, "name": "NamePresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.NamePresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 6663, "name": "AttributePresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.AttributePresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 6695, "name": "DictPresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.DictPresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 6726, "name": "SequencePresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.SequencePresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 6746, "name": "StarredPresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.StarredPresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 6763, "name": "CallPresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.CallPresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 6807, "name": "ComparePresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.ComparePresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 6816, "name": "BoolOpPresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.BoolOpPresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 6825, "name": "MatchValuePresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.MatchValuePresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 6842, "name": "MatchSequencePresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.MatchSequencePresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 6851, "name": "MatchOrPresentationTokenProjector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.MatchOrPresentationTokenProjector"], "status": "INDEX_ADMITTED"} +{"file_path": "nominal_refactor_advisor/semantic_descent.py", "line": 6860, "name": "PresentationAuthorityConstructionCollector", "scope": [], "admitted_owners": ["nominal_refactor_advisor.semantic_descent.PresentationAuthorityConstructionCollector"], "status": "INDEX_ADMITTED"} + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -u tools/census_semantic_preparation_owners.py --advisor-root /home/ts/wt/nra-r1-preparation-owner-357-20261001 nominal_refactor_advisor/ast_tools.py nominal_refactor_advisor/record_checks.py nominal_refactor_advisor/semantic_descent.py" + User time (seconds): 3.40 + System time (seconds): 0.09 + Percent of CPU this job got: 100% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:03.48 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 83640 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 23708 + Voluntary context switches: 27 + Involuntary context switches: 21 + Swaps: 0 + File system inputs: 0 + File system outputs: 104 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 0 diff --git a/docs/validation/r1_preparation_owner_357_20261001/owner-tests-06.log b/docs/validation/r1_preparation_owner_357_20261001/owner-tests-06.log new file mode 100644 index 0000000..8c9e7e3 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/owner-tests-06.log @@ -0,0 +1,63 @@ +============================= test session starts ============================== +platform linux -- Python 3.12.3, pytest-8.3.5, pluggy-1.6.0 -- /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python +rootdir: /home/ts/wt/nra-r1-preparation-owner-357-20261001 +configfile: pyproject.toml +collecting ... collected 32 items + +tests/test_raw_record_detectors.py::test_mapping_reads_match_schema_but_only_actual_decode_descends PASSED [ 3%] +tests/test_raw_record_detectors.py::test_unmodeled_shapes_aggregate_same_keys_and_ignore_small_dynamic_reads PASSED [ 6%] +tests/test_raw_record_detectors.py::test_redundant_checks_resolve_declared_self_parameters_and_keep_unknowns PASSED [ 9%] +tests/test_raw_record_detectors.py::test_detector_ids_are_derived_and_registered PASSED [ 12%] +tests/test_raw_record_detectors.py::test_cross_module_schema_and_annotated_owner_use_complete_context PASSED [ 15%] +tests/test_family_identity_lifetime.py::test_unscoped_identity_remains_fresh PASSED [ 18%] +tests/test_family_identity_lifetime.py::test_shared_schema_and_source_identity_live_only_within_outer_scan PASSED [ 21%] +tests/test_family_identity_lifetime.py::test_token_format_is_unchanged_and_computed_once_per_identity[] PASSED [ 25%] +tests/test_family_identity_lifetime.py::test_token_format_is_unchanged_and_computed_once_per_identity[focused-demand] PASSED [ 28%] +tests/test_family_identity_lifetime.py::test_changed_source_demand_module_and_schema_keep_distinct_keys PASSED [ 31%] +tests/test_family_identity_lifetime.py::test_changed_family_declaration_is_observed_on_the_next_invocation PASSED [ 34%] +tests/test_family_identity_lifetime.py::test_replacement_does_not_inherit_an_old_derived_token PASSED [ 37%] +tests/test_family_identity_lifetime.py::test_exception_releases_scoped_identities_and_contexts PASSED [ 40%] +tests/test_source_projection_owner.py::test_source_projection_retains_actual_parsed_owner_without_compact_ast_debt PASSED [ 43%] +tests/test_source_projection_owner.py::test_another_revision_reusing_ast_cannot_relabel_existing_source_observations PASSED [ 46%] +tests/test_source_projection_owner.py::test_reparsed_source_owns_distinct_canonical_read_nodes PASSED [ 50%] +tests/test_source_projection_owner.py::test_pickle_preserves_shared_module_node_identity_inside_source_projection PASSED [ 53%] +tests/test_cooperative_semantic_preparation.py::test_composed_facts_equal_independent_capabilities[] PASSED [ 56%] +tests/test_cooperative_semantic_preparation.py::test_composed_facts_equal_independent_capabilities[\nisinstance = lambda *args: True\n] PASSED [ 59%] +tests/test_cooperative_semantic_preparation.py::test_composed_facts_equal_independent_capabilities[\ntype = lambda value: int\n] PASSED [ 62%] +tests/test_cooperative_semantic_preparation.py::test_compact_family_does_not_reenter_independent_check_collection PASSED [ 65%] +tests/test_cooperative_semantic_preparation.py::test_new_capability_is_only_a_declaration_and_cooperative_hook PASSED [ 68%] +tests/test_cooperative_semantic_preparation.py::test_exception_unwinds_both_capabilities_and_shared_owner PASSED [ 71%] +tests/test_cooperative_semantic_preparation.py::test_presentation_short_circuit_does_not_hide_another_capability[result = {'left': isinstance(value.count, int), 'right': 'name'}] PASSED [ 75%] +tests/test_cooperative_semantic_preparation.py::test_presentation_short_circuit_does_not_hide_another_capability[result: dict = {'left': isinstance(value.count, int), 'right': 'name'}] PASSED [ 78%] +tests/test_cooperative_semantic_preparation.py::test_presentation_short_circuit_does_not_hide_another_capability[return {'left': isinstance(value.count, int), 'right': 'name'}] PASSED [ 81%] +tests/test_cooperative_semantic_preparation.py::test_context_only_family_keeps_its_existing_no_checks_contract PASSED [ 84%] +tests/test_context_projection_reuse.py::test_cross_module_preparation_reuses_exact_candidate_snapshot PASSED [ 87%] +tests/test_context_projection_reuse.py::test_grouped_shape_preparation_reuses_exact_shape_snapshot PASSED [ 90%] +tests/test_context_projection_reuse.py::test_process_cli_hard_exits_after_publishing_deadline_payload PASSED [ 93%] +tests/test_context_projection_reuse.py::test_hard_deadline_terminates_at_signal_boundary PASSED [ 96%] +tests/test_context_projection_reuse.py::test_repository_semantic_signature_changes_for_contextual_source_edit PASSED [100%] + +============================== 32 passed in 2.54s ============================== + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -c import sys; sys.path.insert(0,"/home/ts/wt/nra-r1-preparation-owner-357-20261001"); import pytest; raise SystemExit(pytest.main(["-v","-o","addopts=","-p","no:cacheprovider","--basetemp=/home/ts/.cache/agent-scratch/nra-r1-preparation-owner-357-20261001/pytest-owner-06","tests/test_raw_record_detectors.py","tests/test_family_identity_lifetime.py","tests/test_source_projection_owner.py","tests/test_cooperative_semantic_preparation.py","tests/test_context_projection_reuse.py"]))" + User time (seconds): 4.12 + System time (seconds): 0.15 + Percent of CPU this job got: 56% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:07.55 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 87268 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 27536 + Voluntary context switches: 34 + Involuntary context switches: 1286 + Swaps: 0 + File system inputs: 0 + File system outputs: 152 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 0 diff --git a/docs/validation/r1_preparation_owner_357_20261001/predecessor-test-08.log b/docs/validation/r1_preparation_owner_357_20261001/predecessor-test-08.log new file mode 100644 index 0000000..23936e5 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/predecessor-test-08.log @@ -0,0 +1,63 @@ +============================= test session starts ============================== +platform linux -- Python 3.12.3, pytest-8.3.5, pluggy-1.6.0 -- /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python +rootdir: /home/ts/wt/nra-bounded-full-audit-20260929 +configfile: pyproject.toml +collecting ... collected 1 item + +tests/test_syntax_children_projection.py::test_completion_does_not_repeat_whole_module_syntax_walk FAILED [100%] + +=================================== FAILURES =================================== +___________ test_completion_does_not_repeat_whole_module_syntax_walk ___________ +ValueError: Native class capture remains unproved + +The above exception was the direct cause of the following exception: + + def test_completion_does_not_repeat_whole_module_syntax_walk(): + entry = entry_for("key = None\npass") + syntax = module_syntax_index(entry.execution.module.module) +> expected = entry.final_evaluation + +tests/test_syntax_children_projection.py:55: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +nominal_refactor_advisor/source_execution.py:2922: in final_evaluation + self.execution.require_terminal_evaluation(evaluation) +nominal_refactor_advisor/source_execution.py:3867: in require_terminal_evaluation + prefix = self.required_prefix(context, None) +nominal_refactor_advisor/source_execution.py:3879: in required_prefix + result.require_closed() +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + +self = OpenCapturedReference(violation=, mutation=None) + + def require_closed(self) -> None: +> raise self.rejection("Object capture") +E nominal_refactor_advisor.captured_reference.CapturedReferenceRejection: Object capture remains open: unproved_execution_effects + +nominal_refactor_advisor/captured_reference.py:533: CapturedReferenceRejection +=========================== short test summary info ============================ +FAILED tests/test_syntax_children_projection.py::test_completion_does_not_repeat_whole_module_syntax_walk +============================== 1 failed in 0.39s =============================== +Command exited with non-zero status 1 + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -c import sys; sys.path.insert(0,"/home/ts/wt/nra-bounded-full-audit-20260929"); import pytest; raise SystemExit(pytest.main(["-v","-o","addopts=","-p","no:cacheprovider","--basetemp=/home/ts/.cache/agent-scratch/nra-r1-preparation-owner-357-20261001/pytest-predecessor-08","tests/test_syntax_children_projection.py::test_completion_does_not_repeat_whole_module_syntax_walk"]))" + User time (seconds): 2.06 + System time (seconds): 0.11 + Percent of CPU this job got: 99% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:02.18 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 86920 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 24557 + Voluntary context switches: 34 + Involuntary context switches: 229 + Swaps: 0 + File system inputs: 88 + File system outputs: 16 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 1 diff --git a/docs/validation/r1_preparation_owner_357_20261001/proof-tests-04.log b/docs/validation/r1_preparation_owner_357_20261001/proof-tests-04.log new file mode 100644 index 0000000..7b3d89e --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/proof-tests-04.log @@ -0,0 +1,24 @@ +.................................Command exited with non-zero status 124 + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -c import sys; sys.path.insert(0,"/home/ts/wt/nra-r1-preparation-owner-357-20261001"); import pytest; raise SystemExit(pytest.main(["-q","-o","addopts=","-p","no:cacheprovider","--basetemp=/home/ts/.cache/agent-scratch/nra-r1-preparation-owner-357-20261001/pytest-proofs-04","tests/test_raw_record_detectors.py","tests/test_family_identity_lifetime.py","tests/test_exact_cache_coverage.py","tests/test_context_projection_reuse.py","tests/test_source_projection_owner.py"]))" + User time (seconds): 49.51 + System time (seconds): 3.14 + Percent of CPU this job got: 87% + Elapsed (wall clock) time (h:mm:ss or m:ss): 1:00.01 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 90540 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 3 + Minor (reclaiming a frame) page faults: 482044 + Voluntary context switches: 645 + Involuntary context switches: 2439 + Swaps: 0 + File system inputs: 664 + File system outputs: 16976 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 124 diff --git a/docs/validation/r1_preparation_owner_357_20261001/publication-profile/README.md b/docs/validation/r1_preparation_owner_357_20261001/publication-profile/README.md new file mode 100644 index 0000000..533bab1 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/publication-profile/README.md @@ -0,0 +1,116 @@ +# Publication/preparation profile after the original R1 failure + +Source owner Schrodinger/Codex; parent retains integration and complete +qualification. Same [PR16](https://github.com/OpenHCSDev/NominalRefactorAdvisor/pull/16), +reviewed evidence head18910a5, production checkpoint19f21b6. Production source, +test declarations and the original consumer are **unchanged by this checkpoint**. + +## Original full qualification is terminal, not a pass + +Parent's exact791650087 ->3d58912 case, immutable4c6282f5 consumer, +all3roots/eightexactdeps, inner160/outer165, CPU0/512MiB reached native +`ScanDeadlineExceeded` at160s. Receipt: exit1,164.42s,187.41MiB. The stack was +`CompactFamilyProjectionBatch.__post_init__` -> accumulator `_retains_ast` -> +the original `retains_python_ast`. This is a failure before the base scan +returned, not installed NRA/globalFULL qualification. + +The log and command JSON copied here retain exact bytes and SHA256 of the +parent's immutable originals under +`/home/ts/wt/openhcs-issue-batch-20260929/producer-installed-20261001/`: +`r1-357-newcase-parent-original-context-20261001.{log,command.json}`. +No original run, script, archive or parent scratch address was reused/changed. + +## One bounded useful profile, not another complete attempt + +Used the existing `tools/profile_r1_preparation.py` and original consumer with +the unchanged revisions/context/inner160 budget. A new owned root and SIGPROF45 +CPU diagnostic stop remain inside the fixed outer60s/oneCPU/512MiB source bounds. +This is not an increased original deadline. Interpreter remains the read-only +frozen installed Python3.12.3, `-I -B`; systemd scope MemoryMax512M/no swap, +CPUQuota100%, tasksetCPU0, thread pools1, original Git packed-window/limit8m/128m. +All exact command arguments appear in the retained log. No narrower scan, cached +continuation, context pruning, detector copy or provider/native/UI/science run. + +Profile: intentional INCOMPLETE exit75,48.37s wall,122540KiB RSS (119.67MiB), +96,830,231 calls /45.582s instrumented work. It stops in AST line-number +canonicalization before the first base scan result. 33 parse calls,64 family +collection calls and54 runtime-batch construction calls are **invocation counts**, +not a certificate of distinct/complete modules or full-context coverage. + +| Original owner/function | Calls | Inclusive profile seconds | +| --- | ---: | ---: | +| build_compact_projection_shard | 28 | 31.900 | +| collect_family_batch | 64 | 27.193 | +| compact class family collection | 32 | 12.589 | +| compact semantic family collection | 32 | 9.947 | +| _parse_source_module | 33 | 7.361 | +| _compact_class_syntax_facets | 32 | 7.239 | +| ModuleSyntaxIndex.build | 32 | 5.654 | +| cache store_items | 64 | 4.147 | +| retains_python_ast | 118 roots /731740 total | 2.752 | +| runtime batch __post_init__ | 54 | 1.240 | + +These times include children and overlap; they must not be added. AST retention +is6.04% of this partial sample, not demonstrated to dominate the complete run. +Caller attribution is64 cache-admission roots/1.515s and54 batch-admission +roots/1.237s. A deadline landing inside one guard does not establish its overall +cost. No guard is weakened, bypassed or memoized on that observation. + +## Concrete ownership review and unresolved duplication + +Reviewed the actual combined production diff against authoritative current +refactor-audit catalogue (IMPL-4/12/13, IMPL-1/2/3/5, MEMB-1/2, IDEN-5, +TIME-1/3). Shared traversal still belongs to ClassFunctionStackNodeVisitor; +source context belongs to ParsedModuleClassFunctionStackNodeVisitor. Independent +presentation/check algorithms remain on their existing capabilities, composing +through real C3 and matching `super().visit_*` hooks. Projection suppression is +owned by that capability and does not perform traversal. The replaced bypassing +helper and second full check walk remain deleted. No new consumer switch, +registry, duplicate procedure, cache authority or compatibility path appears. + +Retained same-node evidence remains applicable because production hashes are +unchanged: StatementCensus supplies only declarations/hooks, before/after +composition observes each assignment/annotated assignment/return and call once, +both presentation modes pass, and downstream controlled exceptions unwind scope +and suppression. Seven new cases are included in the earlier47 distinct current +source passes. This receipt does not pretend to have rerun that suite. + +The profile and source reveal a **specific unresolved IMPL-12/13 preparation +duplication**: within the composed function event, declared-check prelude and +presentation postlude independently call the existing lexical binding authority +on the same `node.body`. The caller trace reports4393 calls/1.026s from +DeclaredAttributeCheckCollector.visit_FunctionDef and4393 calls/1.040s from +_ProjectionVisitor.visit_FunctionDef. Class syntax facets also request function +bindings (4425 body/module calls/1.069s). The algorithm itself already belongs +to LexicalScopeBindingAuthority; its determining function scope is not yet shared +by the preparation consumers. This is separate from successful same-node hook +delivery and is not hidden by it. + +Next owner-level source work is to share that exact lexical determining answer +through the existing function/source-scope owners, with prelude/postlude lifetime, +shadowing, nested scope and exception behavior demonstrated. It must not add a +parallel binding store/roster, cross-boundary AST-free verdict cache, new type +taxonomy or copied collector. This diagnostic checkpoint does not implement or +certify that migration. ModuleSyntaxIndex's one traversal is measured too; it is +not claimed to be duplicated merely because its cost is large. + +## Bounds, remaining limits and cleanup + +Admission helper reported RAM20.9GiB/home8.2GiB/swap11.0GiB; advisory warning, +not a passed helper or hard-limit breach. Only serial bounded source processes +were started. Caller/callee reports read the original cProfile artifact with +stdlib pstats under the same resource envelope; no algorithm/detector was copied. +No production edit or new behavioral/throughput pass is claimed. Original +R1 remains FAILED; original R0/installed acceptance/global85detector/FULL are not +qualified by this work. Parent's serial lock/native slot are untouched. + +Owned disposable root: +`/home/ts/.cache/agent-scratch/nra-r1-publication-357-20261001` (288KiB). +All logs/profile/parent witness copies are retained here with SHA256SUMS. +Cleanup complete: all six retained checksums passed; exact-root `lsof +D` +returned1/no handles; scoped process search found no remaining worker. `realpath` +matched the explicit owned address. Removed only that288KiB root with `rm -r --` +and verified absence. Disposable staging/cache artifacts are removed permanently; +all diagnostic logs/profile/recipes and parent witness copies are retained here. +All tool PTY sessions terminal. No parent scratch, original archive, frozen input, +baseline, installed package or other owner's source was removed. diff --git a/docs/validation/r1_preparation_owner_357_20261001/publication-profile/SHA256SUMS b/docs/validation/r1_preparation_owner_357_20261001/publication-profile/SHA256SUMS new file mode 100644 index 0000000..0316e62 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/publication-profile/SHA256SUMS @@ -0,0 +1,6 @@ +3d04d8640ba4cf3bbe48de75eed7d9cb36a588e804f53912d14cba824a009ae6 predecessor-publication.log +8ea33448ea8b63755f82491a58725afcda3acf61d874187e3065668f4675b5a9 predecessor-publication.pstats +2306c1c2f8f393d2cf9be92d4c463a5a6a63c4eb365d1b278df6b60ad8735517 predecessor-callers.log +96040bdb97346870310f8aa5d70293edbc235100a837f6c62186ddc1a0769def preparation-callers.log +4c8674bb8dee62b1677f467e199da50a0fed9391563dadae11bbce9e9298487e parent-full-context.log +f93ac35cf540c2c7651dfe8f98ef371ea858f3ff41f66ba32adaeb6a911dfdd3 parent-full-context.command.json diff --git a/docs/validation/r1_preparation_owner_357_20261001/publication-profile/freeze-manifest.json b/docs/validation/r1_preparation_owner_357_20261001/publication-profile/freeze-manifest.json new file mode 100644 index 0000000..f15a476 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/publication-profile/freeze-manifest.json @@ -0,0 +1,30 @@ +{ + "source_owner": "Schrodinger/Codex", + "integration_and_complete_qualification_owner": "parent", + "draft_pr": "https://github.com/OpenHCSDev/NominalRefactorAdvisor/pull/16", + "reviewed_evidence_head": "18910a5aea638e0c2dcd7a574c40a498bcbf3aea", + "production_checkpoint_unchanged": "19f21b6cb660826fa7c593af1d59101009b46019", + "source_sha256": { + "nominal_refactor_advisor/ast_tools.py": "6eb222cdb5a262178c10166b50fe63a21382b5871a50234618b40cef0861f143", + "nominal_refactor_advisor/record_checks.py": "4b77a6fc7af2eaff8d81e5a7e764b8f3db0fd6b4a7af687c4bb8c7831512fd53", + "nominal_refactor_advisor/semantic_descent.py": "028189663e120322be8ccb730815b95acc0b731e4ea70db3ccde9c0ce5aa141f", + "nominal_refactor_advisor/analysis.py": "9df4ad1ea64bae4b88a4d911e6355630c82826ff2a54c96d720fa6171d92cfbd" + }, + "immutable_consumer_sha256": "4c6282f52e7c188068dd9d63399f5522a7cb1d222504d0c0b809be10303884ca", + "base_revision": "791650087e01c9d25766f12802a37296851f37cf", + "head_revision": "3d58912d6e74e4b3dd4fa9e07a6b4a9d7dd9c7e4", + "original_context_roots": 3, + "original_recursive_dependencies": 8, + "source_limits": {"cpu": 1, "memory_mib": 512, "swap_mib": 0, "outer_seconds": 60}, + "diagnostic_cpu_stop_seconds": 45, + "diagnostic_status": "INCOMPLETE exit75; not complete R1 or throughput evidence", + "diagnostic_wall_seconds": 48.37, + "diagnostic_peak_kib": 122540, + "original_parent_r1_status": "FAILED ScanDeadlineExceeded160s; exit1,164.42s,187.41MiB", + "original_r0_installed_global_full": "not qualified by this checkpoint", + "behavioral_evidence": "earlier47 source cases retained and applicable; not rerun here", + "unresolved_ownership": "two composed function capabilities rescan same lexical body bindings", + "science_native_installs_locks_providers_downloads": "none", + "owned_scratch": "/home/ts/.cache/agent-scratch/nra-r1-publication-357-20261001", + "cleanup": "only owned288KiB root removed after checksum/no-handle/process/realpath proof; retained evidence intact" +} diff --git a/docs/validation/r1_preparation_owner_357_20261001/publication-profile/parent-full-context.command.json b/docs/validation/r1_preparation_owner_357_20261001/publication-profile/parent-full-context.command.json new file mode 100644 index 0000000..fdf578c --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/publication-profile/parent-full-context.command.json @@ -0,0 +1,13 @@ +{ + "command": [ + "/usr/bin/taskset", + "-c", + "0", + "/bin/bash", + "/home/ts/wt/openhcs-issue-batch-20260929/r1-357-newcase-parent-20261001/run-full-case.sh" + ], + "exit": 1, + "limit": null, + "peak_rss_mib": 187.41, + "seconds": 164.42 +} diff --git a/docs/validation/r1_preparation_owner_357_20261001/publication-profile/parent-full-context.log b/docs/validation/r1_preparation_owner_357_20261001/publication-profile/parent-full-context.log new file mode 100644 index 0000000..29f46d6 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/publication-profile/parent-full-context.log @@ -0,0 +1,53 @@ +Traceback (most recent call last): + File "", line 1, in + File "", line 286, in run_path + File "", line 98, in _run_module_code + File "", line 88, in _run_code + File "/home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py", line 338, in + raise SystemExit(main()) + ^^^^^^ + File "/home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py", line 326, in main + result = compare( + ^^^^^^^^ + File "/home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py", line 310, in compare + scan_counts(snapshot, roots, changed, cache_root=work / "nra") + File "/home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py", line 183, in scan_counts + result = analyze_compact_roots_with_cache( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/ts/.pyenv/versions/3.12.3/lib/python3.12/contextlib.py", line 81, in inner + return func(*args, **kwds) + ^^^^^^^^^^^^^^^^^^^ + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py", line 2292, in analyze_compact_roots_with_cache + build_results = worker_plan.map( + ^^^^^^^^^^^^^^^^ + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py", line 288, in map + return [function(item) for item in items] + ^^^^^^^^^^^^^^ + File "/home/ts/.pyenv/versions/3.12.3/lib/python3.12/contextlib.py", line 81, in inner + return func(*args, **kwds) + ^^^^^^^^^^^^^^^^^^^ + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py", line 1283, in build_compact_projection_shard + add_runtime_projection(family, projections, projection_signature) + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py", line 1116, in add_runtime_projection + CompactFamilyProjectionBatch( + File "", line 6, in __init__ + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py", line 1078, in __post_init__ + if any( + ^^^^ + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py", line 1079, in + CompactGlobalProjectionAccumulator._retains_ast(item) for item in self.items + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py", line 798, in _retains_ast + return retains_python_ast(value, seen_ids) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py", line 1122, in retains_python_ast + return any( + ^^^^ + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py", line 1123, in + retains_python_ast(getattr(value, item.name), seen) + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py", line 1106, in retains_python_ast + def retains_python_ast( + + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/deadline.py", line 91, in deadline_handler + raise error +nominal_refactor_advisor.deadline.ScanDeadlineExceeded: scan deadline exceeded during parse_python_module: 160.000s/160.000s diff --git a/docs/validation/r1_preparation_owner_357_20261001/publication-profile/predecessor-callers.log b/docs/validation/r1_preparation_owner_357_20261001/publication-profile/predecessor-callers.log new file mode 100644 index 0000000..e875c94 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/publication-profile/predecessor-callers.log @@ -0,0 +1,46 @@ +Thu Oct 1 11:34:54 2026 /home/ts/.cache/agent-scratch/nra-r1-publication-357-20261001/predecessor-publication.pstats + + 96830231 function calls (89480929 primitive calls) in 45.582 seconds + + Ordered by: cumulative time + List reduced from 1606 to 10 due to restriction <'__post_init__|add_runtime_projection|retains_python_ast|collect_family_batch|store_items'> + + ncalls tottime percall cumtime percall filename:lineno(function) + 64 0.002 0.000 27.193 0.425 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:2285(collect_family_batch) + 64 0.004 0.000 4.147 0.065 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:2171(store_items) +731740/118 0.778 0.000 2.752 0.023 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:1106(retains_python_ast) + 54 0.000 0.000 1.240 0.023 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py:1110(add_runtime_projection) + 54 0.000 0.000 1.240 0.023 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py:1077(__post_init__) + 7506 0.005 0.000 0.010 0.000 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/lexical_bindings.py:454(__post_init__) + 2791 0.003 0.000 0.007 0.000 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/models.py:217(__post_init__) + 1313 0.002 0.000 0.003 0.000 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:2815(__post_init__) + 1 0.000 0.000 0.001 0.001 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py:134(__post_init__) + 5 0.000 0.000 0.000 0.000 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:2670(__post_init__) + + + Ordered by: cumulative time + List reduced from 1606 to 1 due to restriction <'retains_python_ast'> + +Function was called by... + ncalls tottime cumtime +/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:1106(retains_python_ast) <- 54 0.000 1.237 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py:791(_retains_ast) + 378664/1357 0.373 2.747 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:1122() + 17122 0.026 0.208 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:1127() + 335836/24862 0.379 2.668 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:1131() + 64 0.000 1.515 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:2171(store_items) + + + Ordered by: cumulative time + List reduced from 1606 to 1 due to restriction <'retains_python_ast'> + +Function called... + ncalls tottime cumtime +/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:1106(retains_python_ast) -> 71838 0.140 0.219 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/dataclasses.py:1271(fields) + 166754 0.075 0.127 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/dataclasses.py:1294(is_dataclass) + 166754/118 0.163 2.750 {built-in method builtins.any} + 255818 0.040 0.040 {built-in method builtins.id} + 1725091 0.533 0.948 {built-in method builtins.isinstance} + 166754 0.048 0.048 {method 'add' of 'set' objects} + 59 0.000 0.000 {method 'items' of 'dict' objects} + + diff --git a/docs/validation/r1_preparation_owner_357_20261001/publication-profile/predecessor-publication.log b/docs/validation/r1_preparation_owner_357_20261001/publication-profile/predecessor-publication.log new file mode 100644 index 0000000..76d8f49 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/publication-profile/predecessor-publication.log @@ -0,0 +1,156 @@ + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/tools/profile_r1_preparation.py", line 65, in + raise SystemExit(main()) + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/tools/profile_r1_preparation.py", line 49, in main + runpy.run_path(str(args.consumer), run_name="__main__") + File "", line 286, in run_path + File "", line 98, in _run_module_code + File "", line 88, in _run_code + File "/home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py", line 338, in + raise SystemExit(main()) + File "/home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py", line 326, in main + result = compare( + File "/home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py", line 310, in compare + scan_counts(snapshot, roots, changed, cache_root=work / "nra") + File "/home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py", line 183, in scan_counts + result = analyze_compact_roots_with_cache( + File "/home/ts/.pyenv/versions/3.12.3/lib/python3.12/contextlib.py", line 81, in inner + return func(*args, **kwds) + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py", line 2292, in analyze_compact_roots_with_cache + build_results = worker_plan.map( + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py", line 288, in map + return [function(item) for item in items] + File "/home/ts/.pyenv/versions/3.12.3/lib/python3.12/contextlib.py", line 81, in inner + return func(*args, **kwds) + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py", line 1237, in build_compact_projection_shard + modules = (source.parsed_module(),) + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py", line 1013, in parsed_module + module = parser.parsed_source_path( + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py", line 2704, in parsed_source_path + return _parse_source_module( + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py", line 692, in _parse_source_module + _canonicalize_ast_line_numbers(module, context._line_numbers_by_value) + File "/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py", line 714, in _canonicalize_ast_line_numbers + for node in ast.walk(module): + File "/home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py", line 379, in walk + todo.extend(iter_child_nodes(node)) +INCOMPLETE: diagnostic CPU profiling bound reached + 96830231 function calls (89480929 primitive calls) in 45.582 seconds + + Ordered by: cumulative time + List reduced from 1606 to 50 due to restriction <50> + + ncalls tottime percall cumtime percall filename:lineno(function) + 1 0.000 0.000 45.940 45.940 :262(run_path) + 1 0.000 0.000 45.938 45.938 :91(_run_module_code) + 1 0.000 0.000 45.938 45.938 :65(_run_code) + 44/1 0.003 0.000 45.938 45.938 {built-in method builtins.exec} + 1 0.000 0.000 45.938 45.938 /home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py:1() + 1 0.000 0.000 45.930 45.930 /home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py:319(main) + 1 0.001 0.001 45.930 45.930 /home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py:277(compare) + 1 0.000 0.000 44.055 44.055 /home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py:169(scan_counts) + 29/1 0.097 0.003 44.053 44.053 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/contextlib.py:78(inner) + 1 0.041 0.041 44.051 44.051 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py:1836(analyze_compact_roots_with_cache) + 1 0.000 0.000 31.998 31.998 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py:281(map) + 28 0.006 0.000 31.900 1.139 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py:1100(build_compact_projection_shard) + 64 0.002 0.000 27.193 0.425 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:2285(collect_family_batch) + 32 0.000 0.000 12.589 0.393 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:3903(collect) + 32 0.010 0.000 12.589 0.393 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:3981(_collect) +1965599/55258 1.361 0.000 11.897 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:403(visit) +1554965/39510 2.143 0.000 11.262 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:409(generic_visit) + 32 0.000 0.000 9.947 0.311 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:4327(collect) + 32 0.000 0.000 9.947 0.311 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:4347(_collect) +4393/4261 0.075 0.000 8.982 0.002 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:4853(visit_FunctionDef) +5693/2000 0.002 0.000 8.127 0.004 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:1544(traverse_node_body) + 33 0.002 0.000 7.361 0.223 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:657(_parse_source_module) + 32 0.154 0.005 7.239 0.226 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:5321(_compact_class_syntax_facets) +1300/1291 0.011 0.000 6.763 0.005 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:4822(visit_ClassDef) +1300/1291 0.002 0.000 6.626 0.005 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:1557(visit_ClassDef) + 28 0.000 0.000 6.537 0.233 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py:1003(parsed_module) + 28 0.000 0.000 6.528 0.233 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:2694(parsed_source_path) +4393/4261 0.035 0.000 5.688 0.001 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/record_checks.py:67(visit_FunctionDef) + 32 0.001 0.000 5.655 0.177 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:3038(module_syntax_index) + 32 2.700 0.084 5.654 0.177 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:2961(build) + 1503675 1.061 0.000 5.262 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:369(walk) +307315/140624 0.305 0.000 5.232 0.000 {built-in method builtins.any} +4393/4261 0.007 0.000 4.589 0.001 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:1565(visit_FunctionDef) + 3886948 2.069 0.000 4.495 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:269(iter_child_nodes) + 23205894 3.792 0.000 4.206 0.000 {built-in method builtins.isinstance} + 64 0.004 0.000 4.147 0.065 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:2171(store_items) + 1451617 0.648 0.000 3.882 0.000 {method 'extend' of 'collections.deque' objects} + 10 0.000 0.000 3.748 0.375 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:2310(collect_family_items) + 16254 0.044 0.000 3.625 0.000 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/lexical_bindings.py:608(bound_names) + 33 1.645 0.050 3.602 0.109 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:476(semantic_python_source_hash) +67524/33958 0.081 0.000 3.574 0.000 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/scan_cache.py:41(invoke) + 9354091 2.161 0.000 3.056 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:257(iter_fields) + 2 0.001 0.000 3.013 1.507 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis.py:2923(cache_identity) + 2 0.001 0.000 3.012 1.506 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/analysis_cache.py:824(from_source_paths) +731740/118 0.778 0.000 2.752 0.023 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:1106(retains_python_ast) +450502/1475 0.208 0.000 2.749 0.002 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:1122() +430693/25323 0.145 0.000 2.678 0.000 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:1131() + 33 0.451 0.014 2.543 0.077 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:708(_canonicalize_ast_line_numbers) + 32 0.001 0.000 2.494 0.078 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:3629(_compact_indexed_classes) + 19186 0.033 0.000 2.415 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/pathlib.py:1228(resolve) + + + 96830231 function calls (89480929 primitive calls) in 45.582 seconds + + Ordered by: internal time + List reduced from 1606 to 30 due to restriction <30> + + ncalls tottime percall cumtime percall filename:lineno(function) + 23205894 3.792 0.000 4.206 0.000 {built-in method builtins.isinstance} + 32 2.700 0.084 5.654 0.177 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:2961(build) + 9354091 2.161 0.000 3.056 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:257(iter_fields) +1554965/39510 2.143 0.000 11.262 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:409(generic_visit) + 3886948 2.069 0.000 4.495 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:269(iter_child_nodes) +9649702/9647522 2.050 0.000 2.055 0.000 {built-in method builtins.getattr} + 33 1.645 0.050 3.602 0.109 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:476(semantic_python_source_hash) +1965599/55258 1.361 0.000 11.897 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:403(visit) + 1503675 1.061 0.000 5.262 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:369(walk) +445202/64 0.947 0.000 2.300 0.036 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:1950(_stable_collected_family_cache_value) +731740/118 0.778 0.000 2.752 0.023 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:1106(retains_python_ast) + 638868 0.703 0.000 1.145 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/tokenize.py:569(_generate_tokens_from_c_tokenizer) + 261111 0.668 0.000 0.668 0.000 {built-in method posix.lstat} + 3131 0.657 0.000 0.657 0.000 {built-in method builtins.compile} + 1451617 0.648 0.000 3.882 0.000 {method 'extend' of 'collections.deque' objects} +23508/21233 0.640 0.000 0.666 0.000 {method 'read' of '_io.BufferedReader' objects} +3948390/3663530 0.541 0.000 0.590 0.000 {built-in method builtins.len} + 34 0.465 0.014 0.465 0.014 {built-in method _pickle.dump} + 288445 0.463 0.000 0.812 0.000 :71(join) + 33 0.451 0.014 2.543 0.077 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:708(_canonicalize_ast_line_numbers) +764177/745279 0.430 0.000 0.782 0.000 {method 'extend' of 'list' objects} + 22256 0.399 0.000 1.919 0.000 :440(_joinrealpath) + 64667 0.393 0.000 0.697 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/pathlib.py:387(_parse_path) +373015/19272 0.384 0.000 1.870 0.000 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:4628(visit) + 1723634 0.374 0.000 0.374 0.000 {method 'append' of 'list' objects} + 1476792 0.358 0.000 0.358 0.000 {method 'append' of 'array.array' objects} +253077/98 0.320 0.000 1.252 0.013 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/implementation_identity.py:98(_visit) +307315/140624 0.305 0.000 5.232 0.000 {built-in method builtins.any} + 1360313 0.299 0.000 0.301 0.000 {method 'get' of 'dict' objects} + 1156672 0.299 0.000 0.299 0.000 {method 'update' of '_blake2.blake2s' objects} + + +Command exited with non-zero status 75 + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B /home/ts/wt/nra-r1-preparation-owner-357-20261001/tools/profile_r1_preparation.py --consumer /home/ts/wt/openhcs-r1-revision-staging-357-20261001/scripts/check_refactor_r1.py --profile /home/ts/.cache/agent-scratch/nra-r1-publication-357-20261001/predecessor-publication.pstats --cpu-seconds 45 -- --base 791650087e01c9d25766f12802a37296851f37cf --head 3d58912d6e74e4b3dd4fa9e07a6b4a9d7dd9c7e4 --scratch-root /home/ts/.cache/agent-scratch/nra-r1-publication-357-20261001/original-context --budget-seconds 160" + User time (seconds): 47.06 + System time (seconds): 1.02 + Percent of CPU this job got: 99% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:48.37 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 122540 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 3 + Minor (reclaiming a frame) page faults: 65566 + Voluntary context switches: 25122 + Involuntary context switches: 24879 + Swaps: 0 + File system inputs: 520 + File system outputs: 98480 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 75 diff --git a/docs/validation/r1_preparation_owner_357_20261001/publication-profile/predecessor-publication.pstats b/docs/validation/r1_preparation_owner_357_20261001/publication-profile/predecessor-publication.pstats new file mode 100644 index 0000000..1b39203 Binary files /dev/null and b/docs/validation/r1_preparation_owner_357_20261001/publication-profile/predecessor-publication.pstats differ diff --git a/docs/validation/r1_preparation_owner_357_20261001/publication-profile/preparation-callers.log b/docs/validation/r1_preparation_owner_357_20261001/publication-profile/preparation-callers.log new file mode 100644 index 0000000..7be1ef9 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/publication-profile/preparation-callers.log @@ -0,0 +1,73 @@ + Ordered by: cumulative time + List reduced from 1606 to 5 due to restriction <'_compact_class_syntax_facets|semantic_descent.py.*visit_FunctionDef|module_syntax_index|lexical_bindings.py.*bound_names'> + +Function called... + ncalls tottime cumtime +/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:4853(visit_FunctionDef) -> 2182 0.016 0.036 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/dataclasses.py:1533(replace) + 2457 0.001 0.008 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/collection_algebra.py:211(sorted_tuple) + 4393 0.011 1.040 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/lexical_bindings.py:608(bound_names) + 4393 0.015 0.019 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/lexical_bindings.py:615(argument_names) + 4393/4261 0.035 5.688 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/record_checks.py:67(visit_FunctionDef) + 4393 0.001 0.001 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:4624(__init__) + 19272 0.022 1.870 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:4628(visit) + 4393 0.026 0.270 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:4700(from_function) + 7897 0.003 0.004 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:4857() + 716 0.000 0.000 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:4893() + 163 0.000 0.003 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:4908() + 643 0.000 0.001 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:4942() + 136 0.002 0.005 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:5271(_append_projection) + 37 0.000 0.000 {built-in method builtins.any} + 3779 0.001 0.001 {built-in method builtins.len} + 136 0.000 0.000 {built-in method builtins.sorted} + 8922 0.003 0.003 {method 'append' of 'list' objects} + 4393 0.001 0.001 {method 'extend' of 'list' objects} + 136 0.000 0.000 {method 'intersection' of 'set' objects} + 4393 0.002 0.002 {method 'items' of 'dict' objects} + 8922 0.002 0.002 {method 'pop' of 'list' objects} +/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:5321(_compact_class_syntax_facets) -> 4 0.000 0.000 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:1789(unparse) + 5418 0.001 0.002 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/heapq.py:316(merge) + 2 0.000 0.000 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_projection.py:40(attribute_chain) + 32 0.000 0.002 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:2576(is_test_path) + 32 0.001 5.655 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:3038(module_syntax_index) + 5365 0.006 0.011 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:4902(_exact_type_predicate) + 3 0.000 0.000 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:4950(_fail_loud_block) + 4995 0.035 0.235 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:4977(_enum_member_refs_by_key_type) + 32 0.009 0.027 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:5276(_compact_autoregister_reference_projection) + 5757 0.007 0.011 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:5352() + 5757 0.006 0.008 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:5359() + 5757 0.003 0.007 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:5370() + 5757 0.002 0.003 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:5378() + 4393 0.002 0.002 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:5380() + 1282 0.001 0.001 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:5383() + 4284 0.001 0.002 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:5479() + 6661 0.005 0.009 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:5490() + 2 0.000 0.000 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:6333(reference_node) + 4425 0.012 1.069 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/lexical_bindings.py:608(bound_names) + 4393 0.014 0.018 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/lexical_bindings.py:615(argument_names) + 13039 0.002 0.002 {built-in method builtins.id} + 34008 0.004 0.004 {built-in method builtins.isinstance} + 4393 0.002 0.002 {built-in method builtins.sorted} + 27408 0.007 0.007 {method 'add' of 'set' objects} + 1284 0.000 0.000 {method 'append' of 'list' objects} + 159 0.000 0.000 {method 'get' of 'dict' objects} + 9390 0.002 0.002 {method 'items' of 'dict' objects} + 3002 0.001 0.001 {method 'update' of 'set' objects} +/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:3038(module_syntax_index) -> 32 2.700 5.654 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/ast_tools.py:2961(build) +/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/lexical_bindings.py:608(bound_names) -> 78871 0.057 3.568 /home/ts/.pyenv/versions/3.12.3/lib/python3.12/ast.py:403(visit) +/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:4635(visit_FunctionDef) -> + + + Ordered by: cumulative time + List reduced from 1606 to 1 due to restriction <'lexical_bindings.py.*bound_names'> + +Function was called by... + ncalls tottime cumtime +/home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/lexical_bindings.py:608(bound_names) <- 32 0.001 0.096 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:2750(module_public_export_contract) + 1724 0.003 0.030 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:3302(_direct_statement_bound_names) + 1281 0.006 0.362 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:4687(_compact_class_methods) + 4425 0.012 1.069 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/class_index.py:5321(_compact_class_syntax_facets) + 4393 0.012 1.026 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/record_checks.py:67(visit_FunctionDef) + 4393 0.011 1.040 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:4853(visit_FunctionDef) + 6 0.000 0.002 /home/ts/wt/nra-r1-preparation-owner-357-20261001/nominal_refactor_advisor/semantic_descent.py:4908() + + diff --git a/docs/validation/r1_preparation_owner_357_20261001/same-node-followthrough/README.md b/docs/validation/r1_preparation_owner_357_20261001/same-node-followthrough/README.md new file mode 100644 index 0000000..6bdc79d --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/same-node-followthrough/README.md @@ -0,0 +1,99 @@ +# Same-node cooperative follow-through + +Source owner Schrodinger/Codex; parent retains integration and installed/full +qualification. Same [draft PR16](https://github.com/OpenHCSDev/NominalRefactorAdvisor/pull/16), +not a competing implementation. Source checkpoint +`19f21b6cb660826fa7c593af1d59101009b46019`, predecessor evidence HEAD +`c6ec13f8bf2b6c07b8fae8db8533fcd6fb5d6d2b`. The preceding source freeze, +profiles, timeout and native-proof failure remain retained unchanged. + +## What the experiment establishes + +At c6ec13f, `_ProjectionVisitor.visit_Assign`, `visit_AnnAssign` and +`visit_Return` called `_traverse_projection_children`, which delegated directly +to `super().generic_visit`. Child events could reach another capability, but +same-node hooks downstream of this capability in C3 could not. + +The independent `StatementCensus` declares a cooperative constructor and small +Assign/AnnAssign/Return/Call hooks. Two composition declarations put it before +and after the existing compact visitor. The new-case test compares exact node +identity, source scope and event multiplicity, projected/unprojected and +valueless statements, nested scopes, descendant calls, both presentation modes, +unchanged presentation/check/supplement facts, and one shared ancestor in MRO. +No shared consumer or taxonomy registration is edited to admit the experiment. + +The first experiment retained an additional test-constructor mistake: the +before-order constructor did not forward projection kwargs. After correcting +that independent test hook, the before-order cases passed and both after-order +cases failed with **zero of seven required same-node observations**. Thus the +bypass is demonstrated, while no production regression or installed failure is +claimed. The current test with `-k same_node_capability` supplies the same +experiment against the predecessor production owners. + +## Ownership and replacement + +`ClassFunctionStackNodeVisitor` remains the single shared traversal owner. It +now supplies native AST traversal endpoints for the three additional events, +using the original `ast.NodeVisitor.generic_visit`, not a copied algorithm. +The projection capability delegates through each matching `super().visit_*`. +Its one context manager owns only its suppression state and exception restoration; +it does not perform traversal or dispatch. Suppression spans the downstream +cooperative chain and its children; independent observations remain enabled. +The bypassing helper is removed, not retained as a facade or fallback. + +Three additional tests raise at a downstream same-node hook after presentation +emission and verify suppression, both capability stacks and the shared scope +unwind. The full new-case extension needs only its declaration/hooks and a +composition declaration. The generic consumer is unchanged. This is a contract +for the admitted events, not a claim that every unrelated AST override is now +cooperative. + +Catalog review: IMPL-4 incomplete cooperative participation repaired; IMPL-12/13 +the original shared traversal reused rather than duplicated; IMPL-1/2/3/5 no +new consumer dispatch; MEMB-1/2 no roster or hook table; IDEN-5 no mirrored +source/suppression store; TIME-1/3 no legacy helper or compatibility facade. +Existing cache identity, strict AST-free admission and fail-closed proof code +are unchanged. This remains manually authored, not a native-equivalence or +global architecture certificate. + +## Bounded source receipts + +| Receipt | Outcome | Wall seconds | Peak KiB | +| --- | --- | ---: | ---: | +| same-node-before.log | 4 failed; includes constructor error | 2.72 | 86036 | +| same-node-before-02.log | 2 passed / 2 failed; downstream bypass isolated | 2.77 | 86036 | +| same-node-after.log | 36 passed, including 7 new cases | 6.33 | 90072 | +| same-node-consumers.log | 11 existing consumer/cache cases passed | 6.57 | 105996 | +| same-node-parity.log | complete four-file component signatures unchanged | 3.51 | 85300 | + +47 distinct current-checkpoint cases pass, not a rerun of the earlier entire +83-case coverage. Maximum observed RSS is 103.51MiB. The component comparison +retains identical original paths, raw source SHA256s, content signatures and +458 presentations / 36 checks / 292 supplements from the predecessor receipts. +No end-to-end speed, completed original R1 or global audit claim follows. + +Each command is retained in its log: exact read-only frozen Python3.12.3, +`-I -B`, one CPU/thread pools, systemd scope512MiB/no swap/100% CPU, outer60s, +explicit source import, isolated pytest without xdist/cacheprovider. All source +checks are serial and provider-free. No native/UI/MCP/science, installation, +shared lock, original consumer, parent run or baseline change. Baseline remains +clean at673c062f and the immutable consumer retains its recorded SHA256. + +Resource admission reported RAM18.5GiB/home9.6GiB and swap12.9GiB; advisory +warning, not a hard-limit failure. Owned disposable root: +`/home/ts/.cache/agent-scratch/nra-r1-same-node-357-20261001` (816KiB). +Logs are copied here and checksummed before removal. The first copy command was +rejected before execution because its new destination cwd did not yet exist; +the successful copy used the existing owned worktree cwd. + +Parent retains complete original R0/R1 160/165 qualification and installed +acceptance. The original native-proof failure and broader timeout are not +waived or requalified by these tests; global85detector/FULL remains unqualified. +The parent's terminal scratch address is neither reused nor removed. + +Cleanup complete: all five retained log checksums passed; `lsof +D` exact root +returned1/no handles and scoped process search found no worker. `realpath` +matched the explicit owned address. Removed only that816KiB root with `rm -r --` +and verified absence. Synthetic cache/test artifacts are permanently removed; +all logs and command recipes are retained here. All tool PTY sessions terminal. +No parent scratch, installed package, frozen input or other-owner source removed. diff --git a/docs/validation/r1_preparation_owner_357_20261001/same-node-followthrough/SHA256SUMS b/docs/validation/r1_preparation_owner_357_20261001/same-node-followthrough/SHA256SUMS new file mode 100644 index 0000000..743428e --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/same-node-followthrough/SHA256SUMS @@ -0,0 +1,5 @@ +96e7f11fc135783ecc3c7b854d310cccdc546bf7993b5d10babdf43f22dbfafa same-node-before.log +4fbcbdad40e3daed3f085c797fb7139b75a017ae57a3261b3cf9442e9aa229b9 same-node-before-02.log +fc6b2a3c90e025bc322fa74121392f3c92078ed5cde62661ec8ac9373bfaf8be same-node-after.log +a2be53b4723356077d5f754a3b85970df1f9f3c21e5eb04650234b86babe0698 same-node-consumers.log +5d0f2a4d551b807ea0d6a0efb12de76282cd0c2cc9bab839b964fd04f436bf8e same-node-parity.log diff --git a/docs/validation/r1_preparation_owner_357_20261001/same-node-followthrough/freeze-manifest.json b/docs/validation/r1_preparation_owner_357_20261001/same-node-followthrough/freeze-manifest.json new file mode 100644 index 0000000..245cc95 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/same-node-followthrough/freeze-manifest.json @@ -0,0 +1,25 @@ +{ + "source_owner": "Schrodinger/Codex", + "integration_and_original_qualification_owner": "parent", + "draft_pr": "https://github.com/OpenHCSDev/NominalRefactorAdvisor/pull/16", + "source_checkpoint": "19f21b6cb660826fa7c593af1d59101009b46019", + "predecessor_evidence_head": "c6ec13f8bf2b6c07b8fae8db8533fcd6fb5d6d2b", + "baseline": "673c062fc656e9c74f1eddcab30f036c9befbc1f", + "source_sha256": { + "nominal_refactor_advisor/ast_tools.py": "6eb222cdb5a262178c10166b50fe63a21382b5871a50234618b40cef0861f143", + "nominal_refactor_advisor/semantic_descent.py": "028189663e120322be8ccb730815b95acc0b731e4ea70db3ccde9c0ce5aa141f", + "tests/test_cooperative_semantic_preparation.py": "0516c686c26b058d8f394e1ba8ed591805237db3d4ecbe1ab4377cb28832adff" + }, + "immutable_consumer_sha256": "4c6282f52e7c188068dd9d63399f5522a7cb1d222504d0c0b809be10303884ca", + "current_distinct_passing_cases": 47, + "new_cases": 7, + "same_node_bypass": "demonstrated downstream in C3, repaired; no observed installed regression claimed", + "source_limits": {"cpu": 1, "memory_mib": 512, "swap_mib": 0, "outer_seconds": 60}, + "peak_observed_kib": 105996, + "original_r0_r1_and_installed_acceptance": "pending parent qualification, untouched", + "global_85_detector_full": "unqualified", + "earlier_native_proof_failure_and_timeout": "retained unchanged, not requalified", + "science_native_installs_locks_providers_downloads": "none", + "owned_scratch": "/home/ts/.cache/agent-scratch/nra-r1-same-node-357-20261001", + "cleanup": "only owned816KiB root removed after retained checksums, realpath, process and no-handle proof; all receipts retained" +} diff --git a/docs/validation/r1_preparation_owner_357_20261001/same-node-followthrough/same-node-after.log b/docs/validation/r1_preparation_owner_357_20261001/same-node-followthrough/same-node-after.log new file mode 100644 index 0000000..ea13875 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/same-node-followthrough/same-node-after.log @@ -0,0 +1,67 @@ +============================= test session starts ============================== +platform linux -- Python 3.12.3, pytest-8.3.5, pluggy-1.6.0 -- /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python +rootdir: /home/ts/wt/nra-r1-preparation-owner-357-20261001 +configfile: pyproject.toml +collecting ... collected 36 items + +tests/test_cooperative_semantic_preparation.py::test_composed_facts_equal_independent_capabilities[] PASSED [ 2%] +tests/test_cooperative_semantic_preparation.py::test_composed_facts_equal_independent_capabilities[\nisinstance = lambda *args: True\n] PASSED [ 5%] +tests/test_cooperative_semantic_preparation.py::test_composed_facts_equal_independent_capabilities[\ntype = lambda value: int\n] PASSED [ 8%] +tests/test_cooperative_semantic_preparation.py::test_compact_family_does_not_reenter_independent_check_collection PASSED [ 11%] +tests/test_cooperative_semantic_preparation.py::test_new_capability_is_only_a_declaration_and_cooperative_hook PASSED [ 13%] +tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[True-CensusBeforeProjection] PASSED [ 16%] +tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[True-CensusAfterProjection] PASSED [ 19%] +tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[False-CensusBeforeProjection] PASSED [ 22%] +tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[False-CensusAfterProjection] PASSED [ 25%] +tests/test_cooperative_semantic_preparation.py::test_same_node_exception_unwinds_projection_policy_and_scope[result = {'left': consume(value), 'right': 'name'}] PASSED [ 27%] +tests/test_cooperative_semantic_preparation.py::test_same_node_exception_unwinds_projection_policy_and_scope[result: dict = {'left': consume(value), 'right': 'name'}] PASSED [ 30%] +tests/test_cooperative_semantic_preparation.py::test_same_node_exception_unwinds_projection_policy_and_scope[return {'left': consume(value), 'right': 'name'}] PASSED [ 33%] +tests/test_cooperative_semantic_preparation.py::test_exception_unwinds_both_capabilities_and_shared_owner PASSED [ 36%] +tests/test_cooperative_semantic_preparation.py::test_presentation_short_circuit_does_not_hide_another_capability[result = {'left': isinstance(value.count, int), 'right': 'name'}] PASSED [ 38%] +tests/test_cooperative_semantic_preparation.py::test_presentation_short_circuit_does_not_hide_another_capability[result: dict = {'left': isinstance(value.count, int), 'right': 'name'}] PASSED [ 41%] +tests/test_cooperative_semantic_preparation.py::test_presentation_short_circuit_does_not_hide_another_capability[return {'left': isinstance(value.count, int), 'right': 'name'}] PASSED [ 44%] +tests/test_cooperative_semantic_preparation.py::test_context_only_family_keeps_its_existing_no_checks_contract PASSED [ 47%] +tests/test_projection_shard_publication.py::test_full_family_is_published_once_per_shard[False-False-False] PASSED [ 50%] +tests/test_projection_shard_publication.py::test_full_family_is_published_once_per_shard[False-False-True] PASSED [ 52%] +tests/test_projection_shard_publication.py::test_full_family_is_published_once_per_shard[False-True-False] PASSED [ 55%] +tests/test_projection_shard_publication.py::test_full_family_is_published_once_per_shard[False-True-True] PASSED [ 58%] +tests/test_projection_shard_publication.py::test_full_family_is_published_once_per_shard[True-False-False] PASSED [ 61%] +tests/test_projection_shard_publication.py::test_full_family_is_published_once_per_shard[True-False-True] PASSED [ 63%] +tests/test_projection_shard_publication.py::test_full_family_is_published_once_per_shard[True-True-False] PASSED [ 66%] +tests/test_projection_shard_publication.py::test_full_family_is_published_once_per_shard[True-True-True] PASSED [ 69%] +tests/test_projection_shard_publication.py::test_list_collection_and_batch_share_the_same_publication PASSED [ 72%] +tests/test_projection_shard_publication.py::test_incomplete_publication_keeps_all_facts_in_memory PASSED [ 75%] +tests/test_raw_record_detectors.py::test_mapping_reads_match_schema_but_only_actual_decode_descends PASSED [ 77%] +tests/test_raw_record_detectors.py::test_unmodeled_shapes_aggregate_same_keys_and_ignore_small_dynamic_reads PASSED [ 80%] +tests/test_raw_record_detectors.py::test_redundant_checks_resolve_declared_self_parameters_and_keep_unknowns PASSED [ 83%] +tests/test_raw_record_detectors.py::test_detector_ids_are_derived_and_registered PASSED [ 86%] +tests/test_raw_record_detectors.py::test_cross_module_schema_and_annotated_owner_use_complete_context PASSED [ 88%] +tests/test_source_projection_owner.py::test_source_projection_retains_actual_parsed_owner_without_compact_ast_debt PASSED [ 91%] +tests/test_source_projection_owner.py::test_another_revision_reusing_ast_cannot_relabel_existing_source_observations PASSED [ 94%] +tests/test_source_projection_owner.py::test_reparsed_source_owns_distinct_canonical_read_nodes PASSED [ 97%] +tests/test_source_projection_owner.py::test_pickle_preserves_shared_module_node_identity_inside_source_projection PASSED [100%] + +============================== 36 passed in 3.62s ============================== + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -c import sys; sys.path.insert(0,"/home/ts/wt/nra-r1-preparation-owner-357-20261001"); import pytest; raise SystemExit(pytest.main(["-v","-o","addopts=","-p","no:cacheprovider","--basetemp=/home/ts/.cache/agent-scratch/nra-r1-same-node-357-20261001/pytest-after","tests/test_cooperative_semantic_preparation.py","tests/test_projection_shard_publication.py","tests/test_raw_record_detectors.py","tests/test_source_projection_owner.py"]))" + User time (seconds): 5.38 + System time (seconds): 0.61 + Percent of CPU this job got: 94% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:06.33 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 90072 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 102685 + Voluntary context switches: 60 + Involuntary context switches: 1078 + Swaps: 0 + File system inputs: 696 + File system outputs: 400 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 0 diff --git a/docs/validation/r1_preparation_owner_357_20261001/same-node-followthrough/same-node-before-02.log b/docs/validation/r1_preparation_owner_357_20261001/same-node-followthrough/same-node-before-02.log new file mode 100644 index 0000000..be70460 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/same-node-followthrough/same-node-before-02.log @@ -0,0 +1,140 @@ +============================= test session starts ============================== +platform linux -- Python 3.12.3, pytest-8.3.5, pluggy-1.6.0 -- /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python +rootdir: /home/ts/wt/nra-r1-preparation-owner-357-20261001 +configfile: pyproject.toml +collecting ... collected 14 items / 10 deselected / 4 selected + +tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[True-CensusBeforeProjection] PASSED [ 25%] +tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[True-CensusAfterProjection] FAILED [ 50%] +tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[False-CensusBeforeProjection] PASSED [ 75%] +tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[False-CensusAfterProjection] FAILED [100%] + +=================================== FAILURES =================================== +_ test_same_node_capability_composes_in_both_mro_orders[True-CensusAfterProjection] _ + +tmp_path = PosixPath('/home/ts/.cache/agent-scratch/nra-r1-same-node-357-20261001/pytest-before-02/test_same_node_capability_comp1') +visitor_type = +include_presentations = True + + @pytest.mark.parametrize("visitor_type", (CensusBeforeProjection, CensusAfterProjection)) + @pytest.mark.parametrize("include_presentations", (True, False)) + def test_same_node_capability_composes_in_both_mro_orders( + tmp_path, visitor_type, include_presentations + ): + source = """\ + class Example: + def target(self, value: Value): + projected = {'left': isinstance(value.count, int), 'right': 'name'} + annotated: dict = {'left': isinstance(value.count, int), 'right': 'name'} + plain = consume(value) + uninitialized: int + def nested(): + local = consume(value) + return + return {'left': isinstance(value.count, int), 'right': 'name'} + """ + module = SourceModule(tmp_path / "case.py", "case", source).parse() + independent = _ProjectionVisitor( + module, include_presentations=include_presentations + ) + independent.visit(module.module) + visitor = visitor_type(module, include_presentations=include_presentations) + visitor.visit(module.module) + target = module.module.body[0].body[0] + nested = target.body[4] +> assert visitor.statements == Counter( + { + ("Example.target", id(node)): 1 + for node in (*target.body[:4], target.body[-1]) + } + ) + Counter({("Example.target.nested", id(node)): 1 for node in nested.body}) +E AssertionError: assert Counter() == Counter({('Ex...27238416): 1}) +E +E Right contains 7 more items: +E {('Example.target', 140050927238288): 1, +E ('Example.target', 140050927389264): 1, +E ('Example.target', 140050927391632): 1, +E ('Example.target', 140050927400080): 1, +E ('Example.target', 140050927401296): 1,... +E +E ...Full output truncated (16 lines hidden), use '-vv' to show + +tests/test_cooperative_semantic_preparation.py:188: AssertionError +_ test_same_node_capability_composes_in_both_mro_orders[False-CensusAfterProjection] _ + +tmp_path = PosixPath('/home/ts/.cache/agent-scratch/nra-r1-same-node-357-20261001/pytest-before-02/test_same_node_capability_comp3') +visitor_type = +include_presentations = False + + @pytest.mark.parametrize("visitor_type", (CensusBeforeProjection, CensusAfterProjection)) + @pytest.mark.parametrize("include_presentations", (True, False)) + def test_same_node_capability_composes_in_both_mro_orders( + tmp_path, visitor_type, include_presentations + ): + source = """\ + class Example: + def target(self, value: Value): + projected = {'left': isinstance(value.count, int), 'right': 'name'} + annotated: dict = {'left': isinstance(value.count, int), 'right': 'name'} + plain = consume(value) + uninitialized: int + def nested(): + local = consume(value) + return + return {'left': isinstance(value.count, int), 'right': 'name'} + """ + module = SourceModule(tmp_path / "case.py", "case", source).parse() + independent = _ProjectionVisitor( + module, include_presentations=include_presentations + ) + independent.visit(module.module) + visitor = visitor_type(module, include_presentations=include_presentations) + visitor.visit(module.module) + target = module.module.body[0].body[0] + nested = target.body[4] +> assert visitor.statements == Counter( + { + ("Example.target", id(node)): 1 + for node in (*target.body[:4], target.body[-1]) + } + ) + Counter({("Example.target.nested", id(node)): 1 for node in nested.body}) +E AssertionError: assert Counter() == Counter({('Ex...27153936): 1}) +E +E Right contains 7 more items: +E {('Example.target', 140050927146128): 1, +E ('Example.target', 140050927150416): 1, +E ('Example.target', 140050927153296): 1, +E ('Example.target', 140050927155408): 1, +E ('Example.target', 140050927155792): 1,... +E +E ...Full output truncated (16 lines hidden), use '-vv' to show + +tests/test_cooperative_semantic_preparation.py:188: AssertionError +=========================== short test summary info ============================ +FAILED tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[True-CensusAfterProjection] +FAILED tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[False-CensusAfterProjection] +================== 2 failed, 2 passed, 10 deselected in 0.19s ================== +Command exited with non-zero status 1 + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -c import sys; sys.path.insert(0,"/home/ts/wt/nra-r1-preparation-owner-357-20261001"); import pytest; raise SystemExit(pytest.main(["-v","-o","addopts=","-p","no:cacheprovider","--basetemp=/home/ts/.cache/agent-scratch/nra-r1-same-node-357-20261001/pytest-before-02","tests/test_cooperative_semantic_preparation.py","-k","same_node"]))" + User time (seconds): 2.61 + System time (seconds): 0.13 + Percent of CPU this job got: 98% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:02.77 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 86036 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 24771 + Voluntary context switches: 26 + Involuntary context switches: 442 + Swaps: 0 + File system inputs: 0 + File system outputs: 24 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 1 diff --git a/docs/validation/r1_preparation_owner_357_20261001/same-node-followthrough/same-node-before.log b/docs/validation/r1_preparation_owner_357_20261001/same-node-followthrough/same-node-before.log new file mode 100644 index 0000000..f059cb8 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/same-node-followthrough/same-node-before.log @@ -0,0 +1,206 @@ +============================= test session starts ============================== +platform linux -- Python 3.12.3, pytest-8.3.5, pluggy-1.6.0 -- /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python +rootdir: /home/ts/wt/nra-r1-preparation-owner-357-20261001 +configfile: pyproject.toml +collecting ... collected 14 items / 10 deselected / 4 selected + +tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[True-CensusBeforeProjection] FAILED [ 25%] +tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[True-CensusAfterProjection] FAILED [ 50%] +tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[False-CensusBeforeProjection] FAILED [ 75%] +tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[False-CensusAfterProjection] FAILED [100%] + +=================================== FAILURES =================================== +_ test_same_node_capability_composes_in_both_mro_orders[True-CensusBeforeProjection] _ + +tmp_path = PosixPath('/home/ts/.cache/agent-scratch/nra-r1-same-node-357-20261001/pytest-before/test_same_node_capability_comp0') +visitor_type = +include_presentations = True + + @pytest.mark.parametrize("visitor_type", (CensusBeforeProjection, CensusAfterProjection)) + @pytest.mark.parametrize("include_presentations", (True, False)) + def test_same_node_capability_composes_in_both_mro_orders( + tmp_path, visitor_type, include_presentations + ): + source = """\ + class Example: + def target(self, value: Value): + projected = {'left': isinstance(value.count, int), 'right': 'name'} + annotated: dict = {'left': isinstance(value.count, int), 'right': 'name'} + plain = consume(value) + uninitialized: int + def nested(): + local = consume(value) + return + return {'left': isinstance(value.count, int), 'right': 'name'} + """ + module = SourceModule(tmp_path / "case.py", "case", source).parse() + independent = _ProjectionVisitor( + module, include_presentations=include_presentations + ) + independent.visit(module.module) +> visitor = visitor_type(module, include_presentations=include_presentations) +E TypeError: StatementCensus.__init__() got an unexpected keyword argument 'include_presentations' + +tests/test_cooperative_semantic_preparation.py:184: TypeError +_ test_same_node_capability_composes_in_both_mro_orders[True-CensusAfterProjection] _ + +tmp_path = PosixPath('/home/ts/.cache/agent-scratch/nra-r1-same-node-357-20261001/pytest-before/test_same_node_capability_comp1') +visitor_type = +include_presentations = True + + @pytest.mark.parametrize("visitor_type", (CensusBeforeProjection, CensusAfterProjection)) + @pytest.mark.parametrize("include_presentations", (True, False)) + def test_same_node_capability_composes_in_both_mro_orders( + tmp_path, visitor_type, include_presentations + ): + source = """\ + class Example: + def target(self, value: Value): + projected = {'left': isinstance(value.count, int), 'right': 'name'} + annotated: dict = {'left': isinstance(value.count, int), 'right': 'name'} + plain = consume(value) + uninitialized: int + def nested(): + local = consume(value) + return + return {'left': isinstance(value.count, int), 'right': 'name'} + """ + module = SourceModule(tmp_path / "case.py", "case", source).parse() + independent = _ProjectionVisitor( + module, include_presentations=include_presentations + ) + independent.visit(module.module) + visitor = visitor_type(module, include_presentations=include_presentations) + visitor.visit(module.module) + target = module.module.body[0].body[0] + nested = target.body[4] +> assert visitor.statements == Counter( + { + ("Example.target", id(node)): 1 + for node in (*target.body[:4], target.body[-1]) + } + ) + Counter({("Example.target.nested", id(node)): 1 for node in nested.body}) +E AssertionError: assert Counter() == Counter({('Ex...02591696): 1}) +E +E Right contains 7 more items: +E {('Example.target', 139861302593936): 1, +E ('Example.target', 139861302595344): 1, +E ('Example.target', 139861302597264): 1, +E ('Example.target', 139861302602256): 1, +E ('Example.target', 139861302602960): 1,... +E +E ...Full output truncated (16 lines hidden), use '-vv' to show + +tests/test_cooperative_semantic_preparation.py:188: AssertionError +_ test_same_node_capability_composes_in_both_mro_orders[False-CensusBeforeProjection] _ + +tmp_path = PosixPath('/home/ts/.cache/agent-scratch/nra-r1-same-node-357-20261001/pytest-before/test_same_node_capability_comp2') +visitor_type = +include_presentations = False + + @pytest.mark.parametrize("visitor_type", (CensusBeforeProjection, CensusAfterProjection)) + @pytest.mark.parametrize("include_presentations", (True, False)) + def test_same_node_capability_composes_in_both_mro_orders( + tmp_path, visitor_type, include_presentations + ): + source = """\ + class Example: + def target(self, value: Value): + projected = {'left': isinstance(value.count, int), 'right': 'name'} + annotated: dict = {'left': isinstance(value.count, int), 'right': 'name'} + plain = consume(value) + uninitialized: int + def nested(): + local = consume(value) + return + return {'left': isinstance(value.count, int), 'right': 'name'} + """ + module = SourceModule(tmp_path / "case.py", "case", source).parse() + independent = _ProjectionVisitor( + module, include_presentations=include_presentations + ) + independent.visit(module.module) +> visitor = visitor_type(module, include_presentations=include_presentations) +E TypeError: StatementCensus.__init__() got an unexpected keyword argument 'include_presentations' + +tests/test_cooperative_semantic_preparation.py:184: TypeError +_ test_same_node_capability_composes_in_both_mro_orders[False-CensusAfterProjection] _ + +tmp_path = PosixPath('/home/ts/.cache/agent-scratch/nra-r1-same-node-357-20261001/pytest-before/test_same_node_capability_comp3') +visitor_type = +include_presentations = False + + @pytest.mark.parametrize("visitor_type", (CensusBeforeProjection, CensusAfterProjection)) + @pytest.mark.parametrize("include_presentations", (True, False)) + def test_same_node_capability_composes_in_both_mro_orders( + tmp_path, visitor_type, include_presentations + ): + source = """\ + class Example: + def target(self, value: Value): + projected = {'left': isinstance(value.count, int), 'right': 'name'} + annotated: dict = {'left': isinstance(value.count, int), 'right': 'name'} + plain = consume(value) + uninitialized: int + def nested(): + local = consume(value) + return + return {'left': isinstance(value.count, int), 'right': 'name'} + """ + module = SourceModule(tmp_path / "case.py", "case", source).parse() + independent = _ProjectionVisitor( + module, include_presentations=include_presentations + ) + independent.visit(module.module) + visitor = visitor_type(module, include_presentations=include_presentations) + visitor.visit(module.module) + target = module.module.body[0].body[0] + nested = target.body[4] +> assert visitor.statements == Counter( + { + ("Example.target", id(node)): 1 + for node in (*target.body[:4], target.body[-1]) + } + ) + Counter({("Example.target.nested", id(node)): 1 for node in nested.body}) +E AssertionError: assert Counter() == Counter({('Ex...02508176): 1}) +E +E Right contains 7 more items: +E {('Example.target', 139861302496656): 1, +E ('Example.target', 139861302497296): 1, +E ('Example.target', 139861302503376): 1, +E ('Example.target', 139861302506896): 1, +E ('Example.target', 139861302506960): 1,... +E +E ...Full output truncated (16 lines hidden), use '-vv' to show + +tests/test_cooperative_semantic_preparation.py:188: AssertionError +=========================== short test summary info ============================ +FAILED tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[True-CensusBeforeProjection] +FAILED tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[True-CensusAfterProjection] +FAILED tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[False-CensusBeforeProjection] +FAILED tests/test_cooperative_semantic_preparation.py::test_same_node_capability_composes_in_both_mro_orders[False-CensusAfterProjection] +======================= 4 failed, 10 deselected in 0.19s ======================= +Command exited with non-zero status 1 + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -c import sys; sys.path.insert(0,"/home/ts/wt/nra-r1-preparation-owner-357-20261001"); import pytest; raise SystemExit(pytest.main(["-v","-o","addopts=","-p","no:cacheprovider","--basetemp=/home/ts/.cache/agent-scratch/nra-r1-same-node-357-20261001/pytest-before","tests/test_cooperative_semantic_preparation.py","-k","same_node"]))" + User time (seconds): 2.59 + System time (seconds): 0.11 + Percent of CPU this job got: 99% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:02.72 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 86036 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 2 + Minor (reclaiming a frame) page faults: 25575 + Voluntary context switches: 30 + Involuntary context switches: 434 + Swaps: 0 + File system inputs: 280 + File system outputs: 32 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 1 diff --git a/docs/validation/r1_preparation_owner_357_20261001/same-node-followthrough/same-node-consumers.log b/docs/validation/r1_preparation_owner_357_20261001/same-node-followthrough/same-node-consumers.log new file mode 100644 index 0000000..f1790e3 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/same-node-followthrough/same-node-consumers.log @@ -0,0 +1,42 @@ +============================= test session starts ============================== +platform linux -- Python 3.12.3, pytest-8.3.5, pluggy-1.6.0 -- /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python +rootdir: /home/ts/wt/nra-r1-preparation-owner-357-20261001 +configfile: pyproject.toml +collecting ... collected 11 items + +tests/test_deferred_projection_family.py::test_complete_content_signature_does_not_require_loading_all_graphs PASSED [ 9%] +tests/test_deferred_projection_family.py::test_missing_signature_requires_complete_original_content_evidence PASSED [ 18%] +tests/test_deferred_projection_family.py::test_materialized_public_api_retains_its_tuple_contract PASSED [ 27%] +tests/test_deferred_projection_family.py::test_count_derives_unique_source_materializations_without_rescanning_batches PASSED [ 36%] +tests/test_deferred_projection_family.py::test_corrupt_cache_repairs_only_the_requested_original_source PASSED [ 45%] +tests/test_deferred_projection_family.py::test_repair_rejects_a_changed_source_and_can_retry_the_original PASSED [ 54%] +tests/test_deferred_projection_family.py::test_global_lookup_still_reads_later_ambiguous_modules PASSED [ 63%] +tests/test_deferred_projection_family.py::test_eligibility_short_circuit_does_not_truncate_later_queries PASSED [ 72%] +tests/test_semantic_descent.py::test_construction_authority_materialization_indexes_each_method_once PASSED [ 81%] +tests/test_semantic_descent.py::test_semantic_descent_graph_flags_returned_declaration_table PASSED [ 90%] +tests/test_semantic_descent.py::test_semantic_descent_ignores_function_local_variable_tuple_projection PASSED [100%] + +============================== 11 passed in 4.00s ============================== + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -c import sys; sys.path.insert(0,"/home/ts/wt/nra-r1-preparation-owner-357-20261001"); import pytest; raise SystemExit(pytest.main(["-v","-o","addopts=","-p","no:cacheprovider","--basetemp=/home/ts/.cache/agent-scratch/nra-r1-same-node-357-20261001/pytest-consumers","tests/test_deferred_projection_family.py","tests/test_semantic_descent.py::test_construction_authority_materialization_indexes_each_method_once","tests/test_semantic_descent.py::test_semantic_descent_graph_flags_returned_declaration_table","tests/test_semantic_descent.py::test_semantic_descent_ignores_function_local_variable_tuple_projection"]))" + User time (seconds): 5.92 + System time (seconds): 0.54 + Percent of CPU this job got: 98% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:06.57 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 105996 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 91982 + Voluntary context switches: 32 + Involuntary context switches: 1085 + Swaps: 0 + File system inputs: 0 + File system outputs: 648 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 0 diff --git a/docs/validation/r1_preparation_owner_357_20261001/same-node-followthrough/same-node-parity.log b/docs/validation/r1_preparation_owner_357_20261001/same-node-followthrough/same-node-parity.log new file mode 100644 index 0000000..31e56d0 --- /dev/null +++ b/docs/validation/r1_preparation_owner_357_20261001/same-node-followthrough/same-node-parity.log @@ -0,0 +1,27 @@ +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py", "raw_sha256": "7a30d8cb97412abfbd6a113368712e4f56a71897cc1858d1b4c640ebeca019a1", "content_signature": "79730eaec7c75ee228c3c8b816d8fa82", "collection_seconds": 0.20762656698934734, "presentations": 116, "checks": 10, "supplements": 138} +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/class_index.py", "raw_sha256": "245f8e47ebc4456c67db8d180efa223362af292d73e7facb62264b7ae5f53a9f", "content_signature": "828ab748be59018c6d14f0bd7916d311", "collection_seconds": 0.2527896009851247, "presentations": 215, "checks": 19, "supplements": 88} +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py", "raw_sha256": "ca795d41eac570fab9eb81d94f71cce01f21529a2ab3c143519328654104b1e1", "content_signature": "cd23388afcd0c8035e3dc3e9b23eadcf", "collection_seconds": 0.13979970797663555, "presentations": 119, "checks": 6, "supplements": 62} +{"path": "/home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/record_checks.py", "raw_sha256": "2a31a0a132ac3ca611a1c53daa575b8fa471cf6a53f0d88738a926d14a194eaf", "content_signature": "8d5920e4ec4c134932598f5a54ae1d72", "collection_seconds": 0.01071797899203375, "presentations": 8, "checks": 1, "supplements": 4} + Command being timed: "timeout --signal=TERM --kill-after=3s 60s taskset -c 0 /home/ts/wt/openhcs-generated-inputs-installed-parent-20261001/.venv/bin/python -I -B -u tools/check_semantic_preparation_parity.py --advisor-root /home/ts/wt/nra-r1-preparation-owner-357-20261001 /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/semantic_descent.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/class_index.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/ast_tools.py /home/ts/wt/nra-bounded-full-audit-20260929/nominal_refactor_advisor/record_checks.py" + User time (seconds): 3.39 + System time (seconds): 0.08 + Percent of CPU this job got: 98% + Elapsed (wall clock) time (h:mm:ss or m:ss): 0:03.51 + Average shared text size (kbytes): 0 + Average unshared data size (kbytes): 0 + Average stack size (kbytes): 0 + Average total size (kbytes): 0 + Maximum resident set size (kbytes): 85300 + Average resident set size (kbytes): 0 + Major (requiring I/O) page faults: 0 + Minor (reclaiming a frame) page faults: 24728 + Voluntary context switches: 27 + Involuntary context switches: 586 + Swaps: 0 + File system inputs: 0 + File system outputs: 8 + Socket messages sent: 0 + Socket messages received: 0 + Signals delivered: 0 + Page size (bytes): 4096 + Exit status: 0 diff --git a/nominal_refactor_advisor/ast_tools.py b/nominal_refactor_advisor/ast_tools.py index cdaeb7d..7a82389 100644 --- a/nominal_refactor_advisor/ast_tools.py +++ b/nominal_refactor_advisor/ast_tools.py @@ -1510,6 +1510,7 @@ class ClassFunctionStackNodeVisitor(ast.NodeVisitor, ABC): """Nominal AST visitor base that owns class/function scope stack lifecycle.""" def __init__(self) -> None: + super().__init__() self.class_stack: list[str] = [] self.function_stack: list[str] = [] @@ -1561,14 +1562,62 @@ def visit_ClassDef(self, node: ast.ClassDef) -> None: finally: self.class_stack.pop() - def visit_FunctionDef(self, node: ast.FunctionDef) -> None: - self.before_visit_function(node) + @contextmanager + def function_name_scope( + self, node: ast.FunctionDef | ast.AsyncFunctionDef + ) -> Iterator[None]: + """Own name-stack restoration for traversal and scoped postludes.""" self.function_stack.append(node.name) try: - self.traverse_function_body(node) + yield finally: self.function_stack.pop() + def visit_FunctionDef(self, node: ast.FunctionDef) -> None: + self.before_visit_function(node) + with self.function_name_scope(node): + self.traverse_function_body(node) + + visit_AsyncFunctionDef = visit_FunctionDef + + # Cooperative capabilities observe an event before delegating here. The + # owning ancestor traverses children once, regardless of capability count. + visit_Call = ast.NodeVisitor.generic_visit + visit_Compare = ast.NodeVisitor.generic_visit + visit_Lambda = ast.NodeVisitor.generic_visit + visit_Assign = ast.NodeVisitor.generic_visit + visit_AnnAssign = ast.NodeVisitor.generic_visit + visit_Return = ast.NodeVisitor.generic_visit + + +class ParsedModuleClassFunctionStackNodeVisitor(ClassFunctionStackNodeVisitor): + """Source-bound scope traversal shared by independent module capabilities.""" + + def __init__(self, parsed_module: ParsedModule) -> None: + super().__init__() + self.parsed_module = parsed_module + + @contextmanager + def function_scope( + self, + node: ast.FunctionDef | ast.AsyncFunctionDef, + assigned_names: frozenset[str], + argument_names: frozenset[str], + ) -> Iterator[None]: + """Cooperative capability hook spanning one function's traversal.""" + del node, assigned_names, argument_names + yield + + def visit_FunctionDef( + self, node: ast.FunctionDef | ast.AsyncFunctionDef + ) -> None: + # The original lexical authority determines these facts once per event. + # Pass them through C3 capability hooks, not a node-id cache or a store. + assigned_names = LEXICAL_SCOPE_BINDING_AUTHORITY.bound_names(node.body) + argument_names = LEXICAL_SCOPE_BINDING_AUTHORITY.argument_names(node) + with self.function_scope(node, assigned_names, argument_names): + super().visit_FunctionDef(node) + visit_AsyncFunctionDef = visit_FunctionDef diff --git a/nominal_refactor_advisor/record_checks.py b/nominal_refactor_advisor/record_checks.py index b65cb95..916a608 100644 --- a/nominal_refactor_advisor/record_checks.py +++ b/nominal_refactor_advisor/record_checks.py @@ -3,10 +3,12 @@ from __future__ import annotations import ast +from collections.abc import Iterator +from contextlib import contextmanager from dataclasses import dataclass from .annotation_semantics import NOMINAL_ANNOTATION_SOURCE_AUTHORITY -from .ast_tools import ClassFunctionStackNodeVisitor, ParsedModule +from .ast_tools import ParsedModuleClassFunctionStackNodeVisitor, ParsedModule from .class_index import ( CompactClassFamilyIndex, CompactClassReferenceResolver, @@ -16,7 +18,6 @@ ModuleNominalBindingAuthority, ModuleNominalBindingSnapshot, ) -from .lexical_bindings import LEXICAL_SCOPE_BINDING_AUTHORITY from .models import SourceLocation @@ -43,28 +44,41 @@ def collect( collector = DeclaredAttributeCheckCollector(module) if include_checks: collector.visit(module.module) + return cls.from_collector(collector) + + @classmethod + def from_collector( + cls, collector: DeclaredAttributeCheckCollector + ) -> DeclaredTypeCheckModule: return cls(collector.module_bindings, tuple(collector.checks)) -class DeclaredAttributeCheckCollector(ClassFunctionStackNodeVisitor): +class DeclaredAttributeCheckCollector(ParsedModuleClassFunctionStackNodeVisitor): """Collect contracts once at the lexical boundary, without a second class index.""" - def __init__(self, module: ParsedModule) -> None: - super().__init__() - self.module = module - self.module_bindings = ModuleNominalBindingAuthority(module).snapshot_before( - None - ) + def __init__(self, parsed_module: ParsedModule) -> None: + super().__init__(parsed_module) + self.module_bindings = ModuleNominalBindingAuthority( + parsed_module + ).snapshot_before(None) self.subjects: list[dict[str, tuple[str, ...]]] = [] self.locals: list[frozenset[str]] = [] self.checks: list[DeclaredAttributeCheck] = [] - def visit_FunctionDef(self, node: ast.FunctionDef | ast.AsyncFunctionDef) -> None: - assigned = LEXICAL_SCOPE_BINDING_AUTHORITY.bound_names(node.body) + @contextmanager + def function_scope( + self, + node: ast.FunctionDef | ast.AsyncFunctionDef, + assigned_names: frozenset[str], + argument_names: frozenset[str], + ) -> Iterator[None]: parameters = (*node.args.posonlyargs, *node.args.args, *node.args.kwonlyargs) subjects = {} for parameter in parameters: - if parameter.arg not in assigned and parameter.annotation is not None: + if ( + parameter.arg not in assigned_names + and parameter.annotation is not None + ): parts = NOMINAL_ANNOTATION_SOURCE_AUTHORITY.reference_parts_or_none( parameter.annotation ) @@ -75,7 +89,7 @@ def visit_FunctionDef(self, node: ast.FunctionDef | ast.AsyncFunctionDef) -> Non and not self.function_stack and parameters and parameters[0].arg == "self" - and "self" not in assigned + and "self" not in assigned_names and not any( isinstance(d, ast.Name) and d.id in {"staticmethod", "classmethod"} for d in node.decorator_list @@ -83,19 +97,24 @@ def visit_FunctionDef(self, node: ast.FunctionDef | ast.AsyncFunctionDef) -> Non ): subjects["self"] = (*self.class_stack,) self.subjects.append(subjects) - self.locals.append( - assigned | LEXICAL_SCOPE_BINDING_AUTHORITY.argument_names(node) - ) + self.locals.append(assigned_names | argument_names) try: - super().visit_FunctionDef(node) + with super().function_scope(node, assigned_names, argument_names): + yield finally: self.subjects.pop() self.locals.pop() - visit_AsyncFunctionDef = visit_FunctionDef - def visit_Lambda(self, node: ast.Lambda) -> None: - pass + # This capability has never admitted checks in lambda bodies. Other + # composed capabilities may still require those syntax events. + self.subjects.append({}) + self.locals.append(frozenset()) + try: + super().visit_Lambda(node) + finally: + self.locals.pop() + self.subjects.pop() def _builtin(self, node: ast.AST, name: str) -> bool: return ( @@ -112,7 +131,7 @@ def visit_Call(self, node: ast.Call) -> None: and not node.keywords ): self._record(node, node.args[0], node.args[1]) - self.generic_visit(node) + super().visit_Call(node) def visit_Compare(self, node: ast.Compare) -> None: if len(node.ops) == 1 and isinstance( @@ -129,7 +148,7 @@ def visit_Compare(self, node: ast.Compare) -> None: and not call.keywords ): self._record(node, call.args[0], expected) - self.generic_visit(node) + super().visit_Compare(node) def _record(self, node: ast.AST, value: ast.AST, expected: ast.AST) -> None: if ( @@ -150,7 +169,9 @@ def _record(self, node: ast.AST, value: ast.AST, expected: ast.AST) -> None: return self.checks.append( DeclaredAttributeCheck( - SourceLocation(self.module.file_path, node.lineno, self.qualname), + SourceLocation( + self.parsed_module.file_path, node.lineno, self.qualname + ), subject_type, value.attr, self.module_bindings.reference_for(expected_parts), diff --git a/nominal_refactor_advisor/semantic_descent.py b/nominal_refactor_advisor/semantic_descent.py index eb70283..d27cd84 100644 --- a/nominal_refactor_advisor/semantic_descent.py +++ b/nominal_refactor_advisor/semantic_descent.py @@ -21,9 +21,11 @@ from collections.abc import ( Callable, Iterable, + Iterator, Mapping, Sequence, ) +from contextlib import contextmanager from dataclasses import dataclass, field, replace from enum import Flag, StrEnum, auto from functools import cached_property, lru_cache @@ -36,10 +38,10 @@ from .assignment_projection import SingleAssignmentAndValueNameProjection from .ast_tools import ( AstExpressionProjection, - ClassFunctionStackNodeVisitor, CollectedFamily, CompactModuleIdentity, ParsedModule, + ParsedModuleClassFunctionStackNodeVisitor, PythonSourcePathPolicy, module_syntax_index, python_module_path_identities_for_roots, @@ -79,7 +81,6 @@ from .enum_semantics import PYTHON_ENUM_BASE_AUTHORITY from .export_tools import PYTHON_PUBLIC_EXPORT_ASSIGNMENT from .implementation_identity import ImplementationSource, implementation_module_names -from .lexical_bindings import LEXICAL_SCOPE_BINDING_AUTHORITY from .json_reports import ( DataclassJsonReport, SemanticRecord, @@ -95,7 +96,7 @@ ) from .name_algebra import CLASS_NAME_ALGEBRA from .python_module_identity import PythonModulePathIdentity -from .record_checks import DeclaredTypeCheckModule +from .record_checks import DeclaredAttributeCheckCollector, DeclaredTypeCheckModule from .registry_identity import AutoRegisterClassAuthority, class_name_registry_key from .semantic_identity import ( SemanticIdentifierTokenProjection, @@ -4351,14 +4352,18 @@ def _collect( ) -> list[CompactSemanticModuleProjection]: visitor = None if include_presentations: - visitor = _ProjectionVisitor(parsed_module, None) + visitor = _CompactSemanticProjectionVisitor(parsed_module, None) visitor.visit(parsed_module.module) return [ CompactSemanticModuleProjection( module_name=parsed_module.module_name, file_path=parsed_module.file_path, - type_checks=DeclaredTypeCheckModule.collect( - parsed_module, include_checks=include_presentations + type_checks=( + DeclaredTypeCheckModule.from_collector(visitor) + if visitor is not None + else DeclaredTypeCheckModule.collect( + parsed_module, include_checks=False + ) ), projections=sorted_tuple( (() if visitor is None else visitor.projections), @@ -4772,17 +4777,17 @@ class CompactSemanticClassSupplementFrame: constructed_type_names: set[str] = field(default_factory=set) -class _ProjectionVisitor(ClassFunctionStackNodeVisitor): +class _ProjectionVisitor(ParsedModuleClassFunctionStackNodeVisitor): def __init__( self, parsed_module: ParsedModule, - class_index: ClassFamilyIndex | None, + class_index: ClassFamilyIndex | None = None, *, include_presentations: bool = True, ) -> None: - super().__init__() - self.parsed_module = parsed_module + super().__init__(parsed_module) self.include_presentations = include_presentations + self._projection_suppression_depth = 0 self.class_reference_resolver = ( None if class_index is None or not include_presentations @@ -4808,6 +4813,11 @@ def class_supplements(self) -> tuple[SemanticClassSupplement, ...]: if supplement is not None ) + @property + def _collecting_presentations(self) -> bool: + """Whether this capability still needs this subtree's facts.""" + return self.include_presentations and not self._projection_suppression_depth + def visit_ClassDef(self, node: ast.ClassDef) -> None: frame: CompactSemanticClassSupplementFrame | None = None if not self.function_stack: @@ -4839,10 +4849,13 @@ def visit_ClassDef(self, node: ast.ClassDef) -> None: ) ) - def visit_FunctionDef( + @contextmanager + def function_scope( self, node: ast.FunctionDef | ast.AsyncFunctionDef, - ) -> None: + assigned_names: frozenset[str], + argument_names: frozenset[str], + ) -> Iterator[None]: direct_class_frames = tuple( frame for frame in self.class_supplement_stack @@ -4866,12 +4879,11 @@ def visit_FunctionDef( ) ) try: - super().visit_FunctionDef(node) + with super().function_scope(node, assigned_names, argument_names): + yield if self.include_presentations: collector = MappingReadProjectionCollector() - bound_names = LEXICAL_SCOPE_BINDING_AUTHORITY.bound_names( - node.body - ) | LEXICAL_SCOPE_BINDING_AUTHORITY.argument_names(node) + bound_names = assigned_names | argument_names for statement in node.body: collector.visit(statement) for subject, reads in collector.reads.items(): @@ -4917,39 +4929,35 @@ def visit_FunctionDef( if parts[0] not in bound_names or ( parts == (classmethod_receiver,) - and classmethod_receiver - not in LEXICAL_SCOPE_BINDING_AUTHORITY.bound_names( - node.body - ) + and classmethod_receiver not in assigned_names ) ) - self.function_stack.append(node.name) - self._append_projection( - node, - PresentationProjectionKind.MAPPING_READ, - f"{node.name}:{subject}", - tuple( - PresentationToken( - key, - PresentationTokenKind.STRING_LITERAL, - PresentationTokenRole.DICT_KEY, - ) - for key in keys - ), - mapping_read_constructors=constructors, - ) - if self.class_reference_resolver is not None: - projection = self.projections[-1] - self.projections[-1] = replace( - projection, - class_symbols=projection.resolved_read_constructor_symbols( - lambda parts: self.class_reference_resolver.symbol_for_reference( - ast.parse(".".join(parts), mode="eval").body - ), - self.class_reference_resolver.class_index, + with self.function_name_scope(node): + self._append_projection( + node, + PresentationProjectionKind.MAPPING_READ, + f"{node.name}:{subject}", + tuple( + PresentationToken( + key, + PresentationTokenKind.STRING_LITERAL, + PresentationTokenRole.DICT_KEY, + ) + for key in keys ), + mapping_read_constructors=constructors, ) - self.function_stack.pop() + if self.class_reference_resolver is not None: + projection = self.projections[-1] + self.projections[-1] = replace( + projection, + class_symbols=projection.resolved_read_constructor_symbols( + lambda parts: self.class_reference_resolver.symbol_for_reference( + ast.parse(".".join(parts), mode="eval").body + ), + self.class_reference_resolver.class_index, + ), + ) finally: self.type_scopes.pop() if frame is not None: @@ -4969,23 +4977,21 @@ def visit_FunctionDef( if direct_class_frames: del self.active_class_method_frames[-len(direct_class_frames) :] - visit_AsyncFunctionDef = visit_FunctionDef - def _axis_type_names_for_node(self, node: ast.AST) -> tuple[str, ...]: return ( self.type_scopes[-1].projection_type_names(node) if self.type_scopes else () ) def visit_Call(self, node: ast.Call) -> None: - if self.active_class_method_frames: + if self.active_class_method_frames and not self._projection_suppression_depth: self._record_class_construction_type_names( PresentationAuthorityConstructionCollector.construction_type_names(node) ) - if self.include_presentations: + if self._collecting_presentations: self._record_owner_constructions( PresentationAuthorityConstructionCollector.constructions_for_call(node) ) - self.generic_visit(node) + super().visit_Call(node) def _record_class_construction_type_names( self, @@ -5016,32 +5022,45 @@ def _record_owner_constructions( frame.constructions.update(constructions) def visit_Assign(self, node: ast.Assign) -> None: - if not self.include_presentations: - self.generic_visit(node) - return - if self._collect_assignment_projection(node, node.value): - return - self.generic_visit(node) + projected = ( + self._collecting_presentations + and self._collect_assignment_projection(node, node.value) + ) + with self._suppress_projection_descendants(projected): + super().visit_Assign(node) def visit_AnnAssign(self, node: ast.AnnAssign) -> None: - if not self.include_presentations: - self.generic_visit(node) - return - if node.value is not None and self._collect_assignment_projection( - node, - node.value, - axis_type_names=ProjectionTypeScope.annotation_type_names(node.annotation), - ): - return - self.generic_visit(node) + projected = ( + self._collecting_presentations + and node.value is not None + and self._collect_assignment_projection( + node, + node.value, + axis_type_names=ProjectionTypeScope.annotation_type_names(node.annotation), + ) + ) + with self._suppress_projection_descendants(projected): + super().visit_AnnAssign(node) def visit_Return(self, node: ast.Return) -> None: - if not self.include_presentations: - self.generic_visit(node) - return - if node.value is not None and self._collect_return_projection(node, node.value): - return - self.generic_visit(node) + projected = ( + self._collecting_presentations + and node.value is not None + and self._collect_return_projection(node, node.value) + ) + with self._suppress_projection_descendants(projected): + super().visit_Return(node) + + @contextmanager + def _suppress_projection_descendants(self, suppress: bool) -> Iterator[None]: + # An emitted presentation has already consumed this expression's + # descendant facts. Suppress only this capability, never another + # cooperative capability's required syntax events. + self._projection_suppression_depth += int(suppress) + try: + yield + finally: + self._projection_suppression_depth -= int(suppress) def visit_If(self, node: ast.If) -> None: if not self.include_presentations: @@ -5297,6 +5316,17 @@ def _append_projection( ) +class _CompactSemanticProjectionVisitor( + _ProjectionVisitor, DeclaredAttributeCheckCollector +): + """Independent presentation/check capabilities sharing one C3 traversal. + + Presentation scope prelude precedes declared-check prelude, followed by the + common class/function lifecycle. Both postludes unwind in reverse order. + Neither capability owns or repeats the other's extraction algorithm. + """ + + @dataclass(frozen=True) class SemanticMirrorPolicyCatalog: """Nominal policy lookup for semantic mirror authority kinds.""" diff --git a/tests/test_cooperative_function_bindings.py b/tests/test_cooperative_function_bindings.py new file mode 100644 index 0000000..4ae4bf8 --- /dev/null +++ b/tests/test_cooperative_function_bindings.py @@ -0,0 +1,243 @@ +"""Function binding determination belongs to the shared source/scope owner.""" + +import ast +from collections import Counter +from contextlib import contextmanager + +import pytest + +from nominal_refactor_advisor.ast_tools import ( + ParsedModuleClassFunctionStackNodeVisitor, + SourceModule, +) +from nominal_refactor_advisor.lexical_bindings import LEXICAL_SCOPE_BINDING_AUTHORITY +from nominal_refactor_advisor.record_checks import DeclaredTypeCheckModule +from nominal_refactor_advisor.semantic_descent import ( + PresentationProjectionKind, + _CompactSemanticProjectionVisitor, + _ProjectionVisitor, +) + + +SOURCE = """\ +def outer(value: Value, payload): + local = payload['left'] + def nested(value: Value): + other = 1 + return isinstance(value.count, int) + async def nested_async(value: Value): + return isinstance(value.count, int) + return payload.get('right') + +def shadowed(value: Value, isinstance): + return isinstance(value.count, int) +""" + + +class BindingCensus(ParsedModuleClassFunctionStackNodeVisitor): + def __init__(self, parsed_module, **kwargs): + super().__init__(parsed_module, **kwargs) + self.binding_events = [] + + @contextmanager + def function_scope(self, node, assigned_names, argument_names): + self.binding_events.append( + ("enter", node.name, self.qualname, assigned_names, argument_names) + ) + try: + with super().function_scope(node, assigned_names, argument_names): + yield + finally: + self.binding_events.append(("exit", node.name, self.qualname)) + + +class CensusBeforeProjection(BindingCensus, _CompactSemanticProjectionVisitor): + pass + + +class CensusAfterProjection(_CompactSemanticProjectionVisitor, BindingCensus): + pass + + +@pytest.mark.parametrize("visitor_type", (CensusBeforeProjection, CensusAfterProjection)) +def test_shared_function_bindings_need_one_determination_per_event( + tmp_path, monkeypatch, visitor_type +): + module = SourceModule(tmp_path / "case.py", "case", SOURCE).parse() + functions = tuple( + node + for node in ast.walk(module.module) + if isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef)) + ) + body_ids = {id(node.body) for node in functions} + body_calls = Counter() + argument_calls = Counter() + original_bound = LEXICAL_SCOPE_BINDING_AUTHORITY.bound_names + original_arguments = LEXICAL_SCOPE_BINDING_AUTHORITY.argument_names + + def observed_bound(nodes): + if id(nodes) in body_ids: + body_calls[id(nodes)] += 1 + return original_bound(nodes) + + def observed_arguments(node): + argument_calls[id(node)] += 1 + return original_arguments(node) + + # Parse/source identity and existing lexical algorithm are unchanged. Only + # observe calls during this one original generic visitor invocation. + monkeypatch.setattr(LEXICAL_SCOPE_BINDING_AUTHORITY, "bound_names", observed_bound) + monkeypatch.setattr( + LEXICAL_SCOPE_BINDING_AUTHORITY, "argument_names", observed_arguments + ) + visitor = visitor_type(module) + visitor.visit(module.module) + assert body_calls == Counter({id(node.body): 1 for node in functions}) + assert argument_calls == Counter({id(node): 1 for node in functions}) + assert visitor.binding_events == [ + ( + "enter", "outer", "", + frozenset(("local", "nested", "nested_async")), + frozenset(("value", "payload")), + ), + ("enter", "nested", "outer", frozenset(("other",)), frozenset(("value",))), + ("exit", "nested", "outer"), + ("enter", "nested_async", "outer", frozenset(), frozenset(("value",))), + ("exit", "nested_async", "outer"), + ("exit", "outer", ""), + ( + "enter", "shadowed", "", frozenset(), + frozenset(("value", "isinstance")), + ), + ("exit", "shadowed", ""), + ] + independent = _ProjectionVisitor(module) + independent.visit(module.module) + assert visitor.projections == independent.projections + assert visitor.class_supplements == independent.class_supplements + assert DeclaredTypeCheckModule.from_collector( + visitor + ) == DeclaredTypeCheckModule.collect(module) + assert len(visitor.checks) == 2 + assert visitor_type.__mro__.count(ParsedModuleClassFunctionStackNodeVisitor) == 1 + assert visitor.class_stack == visitor.function_stack == [] + assert visitor.subjects == visitor.locals == [] + assert visitor.type_scopes == visitor.owner_construction_stack == [] + + +@pytest.mark.parametrize("visitor_type", (CensusBeforeProjection, CensusAfterProjection)) +def test_function_scope_recomputes_each_invocation_without_a_parallel_cache( + tmp_path, visitor_type +): + module = SourceModule(tmp_path / "case.py", "case", SOURCE).parse() + visitor = visitor_type(module) + visitor.visit(module.module) + # The determining AST is intentionally changed to distinguish scoped reuse + # from a stale node-id cache. Nothing is persisted or relabeled as new source. + outer = module.module.body[0] + outer.body.insert(0, ast.parse("fresh = 1").body[0]) + before = len(visitor.binding_events) + visitor.visit(module.module) + event = visitor.binding_events[before] + assert event[:3] == ("enter", "outer", "") + assert event[3] == frozenset(("fresh", "local", "nested", "nested_async")) + + +@pytest.mark.parametrize("visitor_type", (CensusBeforeProjection, CensusAfterProjection)) +def test_function_scope_body_failure_unwinds_cooperative_contexts(tmp_path, visitor_type): + class FailOnCall(ParsedModuleClassFunctionStackNodeVisitor): + def visit_Call(self, node): + raise RuntimeError("controlled binding-scope body failure") + + class Failing(visitor_type, FailOnCall): + pass + + module = SourceModule(tmp_path / "case.py", "case", SOURCE).parse() + visitor = Failing(module) + with pytest.raises(RuntimeError, match="controlled binding-scope body failure"): + visitor.visit(module.module) + assert visitor.binding_events[-2:] == [ + ("exit", "nested", "outer"), ("exit", "outer", "") + ] + assert visitor.class_stack == visitor.function_stack == [] + assert visitor.subjects == visitor.locals == [] + assert visitor.type_scopes == visitor.owner_construction_stack == [] + assert visitor.class_supplement_stack == visitor.active_class_method_frames == [] + assert visitor._projection_suppression_depth == 0 + + +class FailScopeEntry(ParsedModuleClassFunctionStackNodeVisitor): + @contextmanager + def function_scope(self, node, assigned_names, argument_names): + raise RuntimeError("controlled binding-scope entry failure") + yield + + +class FailScopeExit(ParsedModuleClassFunctionStackNodeVisitor): + @contextmanager + def function_scope(self, node, assigned_names, argument_names): + with super().function_scope(node, assigned_names, argument_names): + yield + raise RuntimeError("controlled binding-scope exit failure") + + +class EntryFailureBeforeProjection(FailScopeEntry, _CompactSemanticProjectionVisitor): + pass + + +class EntryFailureAfterProjection(_CompactSemanticProjectionVisitor, FailScopeEntry): + pass + + +class ExitFailureBeforeProjection(FailScopeExit, _CompactSemanticProjectionVisitor): + pass + + +class ExitFailureAfterProjection(_CompactSemanticProjectionVisitor, FailScopeExit): + pass + + +@pytest.mark.parametrize( + "visitor_type", + ( + EntryFailureBeforeProjection, + EntryFailureAfterProjection, + ExitFailureBeforeProjection, + ExitFailureAfterProjection, + ), +) +def test_function_scope_entry_and_exit_failures_unwind_in_both_mro_orders( + tmp_path, visitor_type +): + module = SourceModule(tmp_path / "case.py", "case", SOURCE).parse() + visitor = visitor_type(module) + with pytest.raises(RuntimeError, match="controlled binding-scope .* failure"): + visitor.visit(module.module) + assert visitor.class_stack == visitor.function_stack == [] + assert visitor.subjects == visitor.locals == [] + assert visitor.type_scopes == visitor.owner_construction_stack == [] + assert visitor.class_supplement_stack == visitor.active_class_method_frames == [] + assert visitor._projection_suppression_depth == 0 + + +@pytest.mark.parametrize("visitor_type", (CensusBeforeProjection, CensusAfterProjection)) +def test_mapping_postlude_failure_uses_the_shared_name_scope_owner( + tmp_path, monkeypatch, visitor_type +): + module = SourceModule(tmp_path / "case.py", "case", SOURCE).parse() + original = _ProjectionVisitor._append_projection + + def controlled_failure(self, node, kind, *args, **kwargs): + if kind is PresentationProjectionKind.MAPPING_READ: + assert self.qualname == "outer" + raise RuntimeError("controlled mapping postlude failure") + return original(self, node, kind, *args, **kwargs) + + monkeypatch.setattr(_ProjectionVisitor, "_append_projection", controlled_failure) + visitor = visitor_type(module) + with pytest.raises(RuntimeError, match="controlled mapping postlude failure"): + visitor.visit(module.module) + assert visitor.class_stack == visitor.function_stack == [] + assert visitor.subjects == visitor.locals == [] + assert visitor.type_scopes == visitor.owner_construction_stack == [] + assert visitor.binding_events[-1] == ("exit", "outer", "") diff --git a/tests/test_cooperative_semantic_preparation.py b/tests/test_cooperative_semantic_preparation.py new file mode 100644 index 0000000..aeb5620 --- /dev/null +++ b/tests/test_cooperative_semantic_preparation.py @@ -0,0 +1,297 @@ +"""Independent semantic capabilities compose without a second AST traversal.""" + +import ast +from collections import Counter +from dataclasses import replace + +import pytest + +from nominal_refactor_advisor.ast_tools import ( + ParsedModuleClassFunctionStackNodeVisitor, + SourceModule, + retains_python_ast, +) +from nominal_refactor_advisor.record_checks import ( + DeclaredAttributeCheckCollector, + DeclaredTypeCheckModule, +) +from nominal_refactor_advisor.semantic_descent import ( + CompactSemanticModuleProjectionFamily, + _CompactSemanticProjectionVisitor, + _ProjectionVisitor, +) + +SOURCE = """\ +class Value: + count: int + +class Example: + def method(self, value: Value, payload): + if isinstance(value.count, int): + pass + type(value.count) is int + ignored = lambda: isinstance(value.count, str) + data = {'value': payload['value'], 'count': payload.get('count')} + def nested(other: Value): + return isinstance(other.count, int) + return data + +async def async_function(value: Value): + return isinstance(value.count, int) + +def shadowed(value: Value, isinstance): + return isinstance(value.count, int) + +def reassigned(value: Value): + value = None + return isinstance(value.count, int) +""" + + +@pytest.mark.parametrize( + "suffix", + ( + "", + "\nisinstance = lambda *args: True\n", + "\ntype = lambda value: int\n", + ), +) +def test_composed_facts_equal_independent_capabilities(tmp_path, suffix): + module = SourceModule(tmp_path / "case.py", "case", SOURCE + suffix).parse() + independent = _ProjectionVisitor(module, None) + independent.visit(module.module) + checks = DeclaredTypeCheckModule.collect(module) + composed = _CompactSemanticProjectionVisitor(module, None) + composed.visit(module.module) + assert composed.projections == independent.projections + assert composed.class_supplements == independent.class_supplements + assert DeclaredTypeCheckModule.from_collector(composed) == checks + assert not retains_python_ast(tuple(composed.projections)) + assert not retains_python_ast(checks) + assert composed.class_stack == composed.function_stack == [] + assert composed.subjects == composed.locals == [] + assert composed.parsed_module is module + if not suffix: + assert len(checks.checks) == 4 + assert tuple(check.location.symbol for check in checks.checks) == ( + "Example.method", + "Example.method", + "Example.method.nested", + "async_function", + ) + assert all("str" not in check.expression for check in checks.checks) + + +def test_compact_family_does_not_reenter_independent_check_collection( + tmp_path, monkeypatch +): + module = SourceModule(tmp_path / "case.py", "case", SOURCE).parse() + + def forbidden(*args, **kwargs): + raise AssertionError("The complete family must not traverse checks again") + + monkeypatch.setattr(DeclaredTypeCheckModule, "collect", forbidden) + (projection,) = CompactSemanticModuleProjectionFamily.collect(module) + assert len(projection.type_checks.checks) == 4 + assert projection.projections + assert not retains_python_ast(projection) + + +def test_new_capability_is_only_a_declaration_and_cooperative_hook(tmp_path): + class CallCensus(ParsedModuleClassFunctionStackNodeVisitor): + def __init__(self, parsed_module): + super().__init__(parsed_module) + self.calls = Counter() + + def visit_Call(self, node): + self.calls[id(node)] += 1 + super().visit_Call(node) + + class Extended(CallCensus, _CompactSemanticProjectionVisitor): + pass + + # All constructors and event handlers reach the original shared owner once. + # The new capability has no taxonomy registration or generic consumer edit. + module = SourceModule(tmp_path / "case.py", "case", SOURCE).parse() + visitor = Extended(module) + visitor.visit(module.module) + assert visitor.calls == Counter( + {id(node): 1 for node in ast.walk(module.module) if isinstance(node, ast.Call)} + ) + assert DeclaredTypeCheckModule.from_collector( + visitor + ) == DeclaredTypeCheckModule.collect(module) + mro = Extended.__mro__ + assert mro.index(_ProjectionVisitor) < mro.index(DeclaredAttributeCheckCollector) + assert mro.count(ParsedModuleClassFunctionStackNodeVisitor) == 1 + + +class StatementCensus(ParsedModuleClassFunctionStackNodeVisitor): + """Independent same-node capability, not a second visitor or dispatch map.""" + + def __init__(self, parsed_module, **kwargs): + super().__init__(parsed_module, **kwargs) + self.statements = Counter() + self.calls = Counter() + + def visit_Assign(self, node): + self.statements[(self.qualname, id(node))] += 1 + super().visit_Assign(node) + + def visit_AnnAssign(self, node): + self.statements[(self.qualname, id(node))] += 1 + super().visit_AnnAssign(node) + + def visit_Return(self, node): + self.statements[(self.qualname, id(node))] += 1 + super().visit_Return(node) + + def visit_Call(self, node): + self.calls[id(node)] += 1 + super().visit_Call(node) + + +class CensusBeforeProjection(StatementCensus, _CompactSemanticProjectionVisitor): + pass + + +class CensusAfterProjection(_CompactSemanticProjectionVisitor, StatementCensus): + pass + + +@pytest.mark.parametrize("visitor_type", (CensusBeforeProjection, CensusAfterProjection)) +@pytest.mark.parametrize("include_presentations", (True, False)) +def test_same_node_capability_composes_in_both_mro_orders( + tmp_path, visitor_type, include_presentations +): + source = """\ +class Example: + def target(self, value: Value): + projected = {'left': isinstance(value.count, int), 'right': 'name'} + annotated: dict = {'left': isinstance(value.count, int), 'right': 'name'} + plain = consume(value) + uninitialized: int + def nested(): + local = consume(value) + return + return {'left': isinstance(value.count, int), 'right': 'name'} +""" + module = SourceModule(tmp_path / "case.py", "case", source).parse() + independent = _ProjectionVisitor( + module, include_presentations=include_presentations + ) + independent.visit(module.module) + visitor = visitor_type(module, include_presentations=include_presentations) + visitor.visit(module.module) + target = module.module.body[0].body[0] + nested = target.body[4] + assert visitor.statements == Counter( + { + ("Example.target", id(node)): 1 + for node in (*target.body[:4], target.body[-1]) + } + ) + Counter({("Example.target.nested", id(node)): 1 for node in nested.body}) + assert visitor.calls == Counter( + {id(node): 1 for node in ast.walk(module.module) if isinstance(node, ast.Call)} + ) + assert visitor.projections == independent.projections + assert visitor.class_supplements == independent.class_supplements + assert DeclaredTypeCheckModule.from_collector( + visitor + ) == DeclaredTypeCheckModule.collect(module) + assert len(visitor.checks) == 3 + mro = visitor_type.__mro__ + assert mro.count(ParsedModuleClassFunctionStackNodeVisitor) == 1 + assert mro.index(StatementCensus) < mro.index( + ParsedModuleClassFunctionStackNodeVisitor + ) + assert visitor.class_stack == visitor.function_stack == [] + assert visitor.subjects == visitor.locals == [] + assert visitor._projection_suppression_depth == 0 + + +@pytest.mark.parametrize( + "statement", + ( + "result = {'left': consume(value), 'right': 'name'}", + "result: dict = {'left': consume(value), 'right': 'name'}", + "return {'left': consume(value), 'right': 'name'}", + ), +) +def test_same_node_exception_unwinds_projection_policy_and_scope(tmp_path, statement): + class FailAtStatement(ParsedModuleClassFunctionStackNodeVisitor): + def visit_Assign(self, node): + assert self._projection_suppression_depth == 1 + raise RuntimeError("controlled same-node failure") + + visit_AnnAssign = visit_Assign + visit_Return = visit_Assign + + class Failing(_CompactSemanticProjectionVisitor, FailAtStatement): + pass + + source = ( + "class Example:\n def target(self, value: Value):\n " + statement + ) + module = SourceModule(tmp_path / "case.py", "case", source).parse() + visitor = Failing(module) + with pytest.raises(RuntimeError, match="controlled same-node failure"): + visitor.visit(module.module) + assert visitor.class_stack == visitor.function_stack == [] + assert visitor.subjects == visitor.locals == [] + assert visitor.owner_construction_stack == visitor.type_scopes == [] + assert visitor.class_supplement_stack == visitor.active_class_method_frames == [] + assert visitor._projection_suppression_depth == 0 + + +def test_exception_unwinds_both_capabilities_and_shared_owner(tmp_path): + class FailOnCall(ParsedModuleClassFunctionStackNodeVisitor): + def visit_Call(self, node): + raise RuntimeError("controlled syntax failure") + + class Failing(_CompactSemanticProjectionVisitor, FailOnCall): + pass + + module = SourceModule(tmp_path / "case.py", "case", SOURCE).parse() + visitor = Failing(module, None) + with pytest.raises(RuntimeError, match="controlled syntax failure"): + visitor.visit(module.module) + assert visitor.class_stack == visitor.function_stack == [] + assert visitor.subjects == visitor.locals == [] + assert visitor.owner_construction_stack == visitor.type_scopes == [] + assert visitor.class_supplement_stack == visitor.active_class_method_frames == [] + assert visitor._projection_suppression_depth == 0 + + +@pytest.mark.parametrize( + "statement", + ( + "result = {'left': isinstance(value.count, int), 'right': 'name'}", + "result: dict = {'left': isinstance(value.count, int), 'right': 'name'}", + "return {'left': isinstance(value.count, int), 'right': 'name'}", + ), +) +def test_presentation_short_circuit_does_not_hide_another_capability( + tmp_path, statement +): + source = "def target(value: Value):\n " + statement + "\n" + module = SourceModule(tmp_path / "case.py", "case", source).parse() + independent = _ProjectionVisitor(module, None) + independent.visit(module.module) + composed = _CompactSemanticProjectionVisitor(module, None) + composed.visit(module.module) + assert composed.projections == independent.projections + checks = DeclaredTypeCheckModule.from_collector(composed) + assert checks == DeclaredTypeCheckModule.collect(module) + assert len(checks.checks) == 1 + assert composed._projection_suppression_depth == 0 + + +def test_context_only_family_keeps_its_existing_no_checks_contract(tmp_path): + module = SourceModule(tmp_path / "case.py", "case", SOURCE).parse() + demand = CompactSemanticModuleProjectionFamily.report_demand((), None) + (focused,) = CompactSemanticModuleProjectionFamily.collect_demanded(module, demand) + (complete,) = CompactSemanticModuleProjectionFamily.collect(module) + assert focused.type_checks == replace(complete.type_checks, checks=()) + assert focused.projections == () + assert focused.class_supplements == complete.class_supplements diff --git a/tools/census_semantic_preparation_owners.py b/tools/census_semantic_preparation_owners.py new file mode 100644 index 0000000..8d5c67d --- /dev/null +++ b/tools/census_semantic_preparation_owners.py @@ -0,0 +1,62 @@ +"""Original syntax/class-family census; unmatched declarations remain OPEN.""" + +from __future__ import annotations + +import argparse +import ast +import json +import sys +from pathlib import Path + + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--advisor-root", required=True, type=Path) + parser.add_argument("sources", nargs="+", type=Path) + args = parser.parse_args() + sys.path.insert(0, str(args.advisor_root)) + from nominal_refactor_advisor.ast_tools import ( + PythonModuleRootParser, + module_syntax_index, + ) + from nominal_refactor_advisor.class_index import ( + CompactModuleClassProjectionFamily, + build_compact_class_family_index, + ) + from nominal_refactor_advisor.analysis import release_module_analysis_memory + + for path in args.sources: + module = PythonModuleRootParser.for_root( + path, use_parse_cache=False, parse_workers=1 + ).parsed_source_path(path) + syntax = module_syntax_index(module.module) + indexed = tuple( + build_compact_class_family_index( + CompactModuleClassProjectionFamily.collect(module) + ).classes_by_symbol.values() + ) + for index, node in syntax.indexed_nodes_of_type(ast.ClassDef): + matches = tuple(owner for owner in indexed if owner.line == node.lineno) + print( + json.dumps( + { + "file_path": str(path), + "line": node.lineno, + "name": node.name, + "scope": syntax.scopes[syntax.scope_ids[index]].names, + "admitted_owners": [owner.symbol for owner in matches], + "status": ( + "INDEX_ADMITTED" + if len(matches) == 1 + else "OPEN_UNPROJECTED_OR_AMBIGUOUS" + ), + } + ), + flush=True, + ) + del module, syntax, indexed + release_module_analysis_memory() + + +if __name__ == "__main__": + main() diff --git a/tools/check_semantic_preparation_parity.py b/tools/check_semantic_preparation_parity.py new file mode 100644 index 0000000..b86e76b --- /dev/null +++ b/tools/check_semantic_preparation_parity.py @@ -0,0 +1,60 @@ +"""Measure the original family on fixed source files; not a detector/audit copy.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import sys +from pathlib import Path +from time import perf_counter + + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--advisor-root", required=True, type=Path) + parser.add_argument("sources", nargs="+", type=Path) + args = parser.parse_args() + sys.path.insert(0, str(args.advisor_root)) + import nominal_refactor_advisor + from nominal_refactor_advisor.analysis import release_module_analysis_memory + from nominal_refactor_advisor.ast_tools import ( + PythonModuleRootParser, + collected_family_items_content_signature, + retains_python_ast, + ) + from nominal_refactor_advisor.semantic_descent import ( + CompactSemanticModuleProjectionFamily, + ) + + assert Path(nominal_refactor_advisor.__file__).is_relative_to(args.advisor_root) + for path in args.sources: + module = PythonModuleRootParser.for_root( + path, use_parse_cache=False, parse_workers=1 + ).parsed_source_path(path) + started = perf_counter() + items = tuple(CompactSemanticModuleProjectionFamily.collect(module)) + elapsed = perf_counter() - started + assert not retains_python_ast(items) + print( + json.dumps( + { + "path": str(path), + "raw_sha256": hashlib.sha256(path.read_bytes()).hexdigest(), + "content_signature": collected_family_items_content_signature( + items + ), + "collection_seconds": elapsed, + "presentations": sum(len(item.projections) for item in items), + "checks": sum(len(item.type_checks.checks) for item in items), + "supplements": sum(len(item.class_supplements) for item in items), + } + ), + flush=True, + ) + del module, items + release_module_analysis_memory() + + +if __name__ == "__main__": + main() diff --git a/tools/profile_r1_preparation.py b/tools/profile_r1_preparation.py new file mode 100644 index 0000000..86d928c --- /dev/null +++ b/tools/profile_r1_preparation.py @@ -0,0 +1,65 @@ +"""Bound a useful profile of the unchanged original R1 consumer, not a pass. + +SIGPROF bounds CPU profiling independently of NRA's unchanged real-time scan +deadline. Call under an outer60s/512MiB/oneCPU supervisor with a new owned cache. +The consumer still stages both exact revisions and its complete source context. +""" + +from __future__ import annotations + +import argparse +import cProfile +import pstats +import runpy +import signal +import sys +import traceback +from pathlib import Path + + +class PreparationProfileBudgetReached(BaseException): + """Diagnostic terminal condition; never a successful audit result.""" + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--consumer", required=True, type=Path) + parser.add_argument("--profile", required=True, type=Path) + parser.add_argument("--cpu-seconds", type=float, default=20.0) + parser.add_argument("consumer_arguments", nargs=argparse.REMAINDER) + args = parser.parse_args() + source_root = Path(__file__).resolve().parents[1] + sys.path.insert(0, str(source_root)) + import nominal_refactor_advisor + + assert Path(nominal_refactor_advisor.__file__).is_relative_to(source_root) + sys.argv = [str(args.consumer), *args.consumer_arguments] + if len(sys.argv) > 1 and sys.argv[1] == "--": + del sys.argv[1] + profiler = cProfile.Profile() + + def finish_profile(_signal, frame): + traceback.print_stack(frame, file=sys.stderr) + raise PreparationProfileBudgetReached() + + signal.signal(signal.SIGPROF, finish_profile) + signal.setitimer(signal.ITIMER_PROF, args.cpu_seconds) + profiler.enable() + try: + runpy.run_path(str(args.consumer), run_name="__main__") + except PreparationProfileBudgetReached: + print("INCOMPLETE: diagnostic CPU profiling bound reached", file=sys.stderr) + return 75 + finally: + profiler.disable() + signal.setitimer(signal.ITIMER_PROF, 0.0) + profiler.dump_stats(str(args.profile)) + pstats.Stats(profiler, stream=sys.stderr).sort_stats("cumulative").print_stats( + 50 + ) + pstats.Stats(profiler, stream=sys.stderr).sort_stats("tottime").print_stats(30) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main())