6.8 KiB
Independent entry-producer test review
Reviewed six functions in crates/oa-core/src/language/analysis_source/mixed/carried/entry_producer.rs against the accepted entry contract and independently authored ENTRY-ORACLE.md. Current reviewed test SHA256 67839578b8969ed22a749445f41af057223126ad68f504018aeed7021636fc66. Baseline production97a8703; implementation is locally pending. No compiler, parser, binary or debugger executed by this reviewer. Compilation/runtime acceptance remains with the parent.
Disposition: no remaining test blocker in these reviewed bytes after correcting the evaluator's extra inventory-walk scratch demand. Final formatting or source/test changes require rebinding the hash before this becomes final.
Concrete pre-execution correction
Initial test SHA256 e134d5f162ae5036a1a76a4db6075aaad1324543169ecbf1e3786dd7c91f1b1b called project::text_producer_inventory(...).unwrap() on syntax with fully occupied entry caps29,37 and103. That helper invokes accounting::syntax, whose Walk::push reserves its existing scratch entry (mixed/project/accounting.rs:118–123). It would refuse after C+U+M already equaled the cap, even though the intended syntax producer check succeeded. This was an evaluator phase conflation, not evidence against the authored syntax caps.
Implementer corrected the tests: exact29/37/103 syntax controls remain, asserting literal C+U+M; the independent existing inventory runs on a separate same-source roomy4096 fixture and still must equal29/37/103 after scratch release. The original cap-minus-one and prefix refusals were not weakened. E/H have no position/AST work and their exact-cap inventory checks remain valid.
Oracle comparison
| Test family | Independent assessment |
|---|---|
| E and H syntax/resolve | C/U/M tuples1/1/11 and3/3/19, syntax13/12 and25/24, resolver17/16 and29/28 match the oracle. Syntax refusal pathsmain/part0..1 are distinguished from resolvermain11..73. Successful transfers retain C once and unchanged Usage/numeric work. |
| Owner/value timing | Prefix4 at75..76 and7 at149..150 match literal grammar positions. Complete syntax positives29/37 are separate; next-integer prefix completion is not falsely claimed. Direct reserve/mutate helper tests check unchanged actual map/Vec on new-entry refusal. |
| Nested syntax-only | Literal344-byte source matches the authored body: U13, M89,49tokens, three owners [None,Some(0),None], three envelopes, element/node actual header lengths5/4 while both reserve7. Exact103/102 limits and six value spans145..221,153..218,154..156,158..201,203..217,210..214 match. No full Project admission is claimed for arbitrary payload/top-level node. |
| Quota and helper controls | 29 underflow/31 leftover surround authored projection30. They are explicitly injected invariants, not alternate valid source inventories. Existing-key replacement consumes no new M, new-key/owner refusals preserve collections. Overflow, sticky error, atomic initial install and syntax-work precedence are separately checked. |
| OA/SA and compatibility | Supported oa_property/sa_property grammar provides complete resolution parity versus text-only for actual owner and explicit borrowed C0. Compares whole Project/warnings/storage, Usage/numeric/T/M and original source. Old legacy11 versus new C0 combined12 and old phase/text-only owner refusal locations remain distinct. |
Byte policy4096 avoids the previously observed grammar UUID/text peaks and source-byte prechecks; other policies remain the same inherited fixture profile. The nested fixture's arbitrary ordinary payload is correctly limited to syntax evidence. Calls to the existing inventory walk are independent reconciliation, not production-output-derived expected numbers; expected totals are literal authored constants. Whole-Project equality against text-only is a parity control, not an independently authored new semantic model oracle; existing prior complete-model tests retain that role.
Test access is within the carried descendant module, using ancestor-private state/helpers and existing language functions. I found no obvious privacy/type-shape blocker by inspection; that is not a compilation result.
Source-adjacent qualification
Reported to parent: State::value_end initially calls reserve_metadata only for a new key. A replacement after an already latched failure could therefore bypass Budget.active and mutate/return Ok. The actual parser propagates the first Err immediately, so this is not a demonstrated successful-witness escape. Parent/source reviewer owns whether the accepted latch contract requires active checking before replacement; the initial tests follow a failed map reservation with an owner reservation and do not cover that replacement path. Any repair/test addition should be reviewed and hash-bound below.
No tests were edited by this reviewer. This review establishes consistency of finite evaluators, not execution success, complete storage-domain closure or accepted-output authority.
Final frozen rebind
Final formatted test SHA256 6d37e6976d9d164e70a9947de2d6655b57bd7ff6a5cf0fb5a0eb1dcbbb4417f7 supersedes the intermediate67839578 hash above. Independently reread the bounded delta: value_end now calls reserve_metadata with delta0 for an existing key before mutation, and the test attempts replacement10..99 after the earlier new-key20 refusal. It requires original offset20/message, unchanged map10→12 and unchanged M2. This resolves the source-adjacent qualification without changing real fixture caps or expected inventories. Parent/implementer source mixed.rs pin is 6db2e6cc414becd32d80868653651e31de3036a6d8bf63a2c7b0c055ca7cc314.
No remaining pre-execution test blocker in the final frozen bytes; ready for parent's compiler/runtime gates. Earlier hashes and corrections remain recorded rather than being relabeled runtime failures.
Actual first compile refusal and test-only repair
Parent's first focused build at a629ae01 failed before any test ran: E0277 at entry_producer.rs:241, because Result::unwrap_err requires Debug on its success value, and the projected EditDeclaration vector does not implement it. My preceding static review did not detect this trait-bound issue; it was not a compilation guarantee. Preserve the original log/receipt and do not report that candidate's focused tests as passed.
Independently reviewed the exact test delta at 29417130c71f70c4eaefe8ed4c879efba78eb72c: replaces only this unwrap_err with explicit Err(error) => error and Ok(_) => panic!("injected projection quota must refuse"). Both quota29/31 refusal assertions and all expected diagnostics remain unchanged. Production code is unchanged; the other modified file is the implementation note. Final current test SHA256 is ebdcd69eae66103a7ed596356e5f629099399d944b5659ace54edc9f558e7bc9. No compiler or binary was executed by this reviewer; parent owns subsequent gates.