Deliver verified private ordinary authored-name index evidence

This commit is contained in:
2026-09-24 15:58:08 -07:00
parent 76acfb1108
commit 852a79b566
11 changed files with 887 additions and 3 deletions
+10 -3
View File
@@ -253,11 +253,18 @@ preserving all 209 baseline statuses; formatting still has the identical eight
inherited blocks. Original lint and depth-expectation test failures are preserved.
The [source review](analysis-mixed-index-20260924/source-review.md) records three
repaired diagnostic findings; its reviewed production hashes are unchanged.
The new owner keeps legacy updater authority separate. Ordinary occurrence
indexing, complete mixed editing and public source8 remain required.
The new owner keeps legacy updater authority separate. Complete mixed editing
and public source8 remain required.
The [ordinary occurrence successor contract](analysis-ordinary-index-contract-20260924.md)
uses retained parser positions and physical token keys, with a separate consumed
read-only owner; it is an accepted design, not an implemented capability.
read-only owner. Private source **ee500908e3d77182ddd54e12524f9b6c6eb43b60** now
implements that dependency. Its [Windows evidence and independent review](experiments/analysis-ordinary-index-20260924/README.md)
verify all13 new cases, strict core Clippy and the229-name inventory on549
unchanged inputs. Full library remains **213 passed /16 failed**, with all216
prior outcomes and failure bodies unchanged; formatting retains the identical
eight inherited blocks. Initial9-pass/4-fail fixture evidence and exact test-only
repairs are preserved. Both occurrence families now retain complete original
authority, but no rename composition or public edit capability follows yet.
The preceding Project [Windows evidence](experiments/analysis-mixed-project-20260924/README.md)
distinguishes runtime source **71cadfa0cd0e112caa29588d2494753301f3cb6c** from
the formatting-only aaec successor. Strict core all-target Clippy, actual listing
@@ -0,0 +1,4 @@
*.py -text whitespace=cr-at-eol
*.json -text whitespace=cr-at-eol
ORDINARY-*.md -text whitespace=cr-at-eol
*.zip -text
@@ -0,0 +1,133 @@
# Independently authored ordinary-index oracle
2026-09-24. Base fixture: `rich_bundle(layer)` at private `93eb6117f95353d25d594d59780018f197c51672`, `crates/oa-core/src/language/analysis_source/mixed/project/tests.rs:253`; full expected model is the existing independently authored `rich_model(layer)`. This report uses literal source and byte arithmetic only, not parser/index/lowerer/formatter output. No Cargo/source edits. Supplement to the typed `ORACLE.md` and accepted ordinary-index contract.
## Exact complete ordinary map for the rich fixture
Use the existing `id(n)` helper, which formats decimal digits inside a UUID string; do not substitute `Id::from_u128(n)`. All records below belong to canonical file **2 = main.arcadia**. Canonical files 0=a.arcadia and 1=b.arcadia contain only typed calculations and contribute **zero ordinary records**. Entry remains main.arcadia, while include order is b then a. Targets below are global IDs, never calculation-scoped parameters.
Physical key is `(2, alias_start, alias_end)`. Value is `(owner id, global target id, Header|Reference, full extent)`. For Header the extent equals alias span. All endpoints are full-original-file byte offsets, half-open.
| Record | Layers | Owner | Target | Role | Full extent | Alias token | Spelling / unique source anchor |
|---|---|---:|---:|---|---|---|---|
| project | OA, SA | 1 | 1 | Header | 19..20 | 19..20 | p; `project p`, offset8 |
| node | OA, SA | 4 | 4 | Header | 122..123 | 122..123 | n; `node n`, offset5 |
| node diagram | OA, SA | 4 | 5 | Reference | 176..178 | 177..178 | d; `diagram @d`, alias offset9 |
| node element | OA, SA | 4 | 3 | Reference | 188..190 | 189..190 | v; `element @v`, alias offset9 |
| work | OA, SA | 2 | 2 | Header | 350..351 | 350..351 | w; `oa_activity w` / `sa_function w`, offset12 |
| diagram | OA, SA | 5 | 5 | Header | 412..413 | 412..413 | d; `diagram d`, offset8 |
| system | SA only | 6 | 6 | Header | 490..491 | 490..491 | s; `sa_system s`, offset10 |
This is the **entire** map, not a sample. OA: D=3 ordinary declarations, A=2 references, N=1+D+A=6. SA: D=4,A=2,N=7. Typed global headers f/g/v, typed subject @w, calculation parameters/uses and call labels remain exclusively in the existing typed family. Combining ordinary and typed global-header roles gives exactly the 7 OA or 8 SA catalog globals. Parameter x/id(1) is not the Project p/id(1), and scoped names are absent from ordinary resolution.
OA main is 474 bytes, SA main is 548 bytes; a/b remain 213 bytes each. The header offsets before the SA system are unchanged because oa_property/sa_property and oa_activity/sa_function have equal lengths; diagram's layer field affects only later positions. Full Project equality remains `rich_model(layer)`, with all prior warnings/admission metadata and typed maps unchanged.
## Unicode/CRLF exact map
Use the accepted transformation independently on every file: prefix `// 雨\r\n` (8 UTF-8 bytes), and replace each original LF with CRLF. An original endpoint b maps to `8 + b + number_of_LF_bytes_in_original[..b]`. This arithmetic is over original literals, not index output. Alias intervals in the transformed main are:
| Record | Full extent | Alias token |
|---|---|---|
| project | 28..29 | 28..29 |
| node | 133..134 | 133..134 |
| node diagram | 187..189 | 188..189 |
| node element | 199..201 | 200..201 |
| work | 363..364 | 363..364 |
| diagram | 426..427 | 426..427 |
| SA system | 505..506 | 505..506 |
Owner/target/role/file keys do not change. Only these token spans are replacement authority; the marker bytes remain in full reference extent only. Exhaustively compare both entire maps and original source slices, and preserve actual complete bundle pointer/entry/files.
## Retained and agreed live-scratch accounting
Implementation phase policy communicated independently by the implementer: build borrowed reverse-global map G with inline header-seen flags; build typed physical set T and mark typed headers; keep G/T until all ordinary records and final header coverage are checked. Per canonical file visit Project header first, then paired ordinary declarations. Insert each declaration header, then walk its synthetic root's actual field values via a Vec of borrowed value/parent-span items. The synthetic root itself consumes no work slot. Reserve every push; pop releases its slot before handling; drain one declaration before the next. Drop G/T last.
For the existing rich fixture T=21, G=7 OA /8 SA. Added retained ordinary delta is exactly `(entries:N, occurrences:0, text:0)` = `(6,0,0)` OA or `(7,0,0)` SA. No catalog name strings or typed data are copied.
Actual prefix peaks (not loose final-N+max-W bounds):
- OA: scratch G+T=28. Project+node headers yield new-map count2; node's diagram/element fields yield W2, so this phase peaks32. Two references finish at map4,W0 (32 total). Work header reaches33; final diagram header reaches **34**. Thus ordinary-stage peak is incoming indexed baseline+34, with final retention baseline+6.
- SA: scratch G+T=29. Node phase peaks33; work header34; diagram header35 then its sole `layer Sa` Atom work slot reaches **36**; system header later also reaches36. Final retention is baseline+7. Maximum W remains2, but never coincides with final N, so the loose N+G+T+W bound38 is not an actual peak.
**Do not use rich fixture +33/+34 as an end-to-end cap oracle.** Its preceding typed-index peak is resolved-baseline+98 and retained typed delta59. Incoming-indexed-baseline+34 is only resolved-baseline+93, so such a global profile fails at the earlier typed stage. A test that replaces/tightens the Budget after acceptance would evade the inherited policy and is not an adequate fix.
A candidate isolating fixture appends **three empty ordinary OA activity declarations** with distinct IDs/aliases to rich_bundle. Then G=10,N=9,T=21; final ordinary-stage peak becomes incoming-indexed-baseline+40, i.e. resolved-baseline+62+40=resolved-baseline+102. Earlier typed owner/physical peak is resolved-baseline+101, syntax peak96. Under the stated implementation phases, total cap102 and101 distinguish the new final-header growth *after* the typed stage can fit. The earlier resolver peak must also be verified below101 before using this as the acceptance cap case; these are design arithmetic, not runtime results. An ordinary-heavy category fixture can serve instead once its exact literals/lifetimes are agreed.
## Coverage expansion coordination
The rich fixture supplies only project/node/work/diagram/system ordinary headers and two node references, so it cannot alone certify all ordinary categories. The additional frozen category literal below supplies nested explicit/implicit parents with marker comments, relation/context chains, route/view-option references, artifacts, live trace endpoints and historical UUID exclusions. Expectations are authored from literal roles and raw source anchors, never inferred by scanning the produced ordinary map.
## Complete category map
Exact implementer-authored fixture: `crates/oa-core/src/language/analysis_source/mixed/project/ordinary_index/tests/fixtures/categories.arcadia`, **2152 UTF-8 bytes**, SHA256 **A220AE836C38E7F1568749EDC50891C43F7F34A4152E7224A125AE05618C8E05**. The report-only `ordinary_category_bytes.ps1` verifies that pin and independently authored unique source anchors. All following entries have canonical file **0**. H=Header, R=Reference. Numeric owner/target IDs use the same decimal UUID helper as above. Unicode 雨 appears before the first ordinary declaration: all numbers below count UTF-8 bytes, not UTF-16 characters. This is the entire ordinary map.
| Alias | Owner | Target | Role | Full extent | Alias token | Unique literal anchor |
|---|---:|---:|---|---|---|---|
| p | 1 | 1 | H | 19..20 | 19..20 | `project p "Authored` |
| a | 2 | 2 | H | 168..169 | 168..169 | `oa_activity a "Parent` |
| child | 3 | 3 | H | 249..254 | 249..254 | `oa_activity child "Explicit` |
| a | 3 | 2 | R | 323..345 | 344..345 | `parent @ /* @noise child */ a;` |
| implicit | 4 | 4 | H | 369..377 | 369..377 | `oa_activity implicit "Implicit` |
| s | 5 | 5 | H | 487..488 | 487..488 | `sa_function s "Selected` |
| link | 6 | 6 | H | 561..565 | 561..565 | `interaction link "Link` |
| child | 6 | 3 | R | 624..630 | 625..630 | `source @child;` |
| implicit | 6 | 4 | R | 639..648 | 640..648 | `target @implicit;` |
| d | 7 | 7 | H | 664..665 | 664..665 | `diagram d "View` |
| link | 7 | 6 | R | 740..745 | 741..745 | `routes [{ edge @link; }];` |
| link | 7 | 6 | R | 788..793 | 789..793 | `hidden_edges [@link]` |
| note | 8 | 8 | H | 818..822 | 818..822 | `artifact note "Evidence` |
| link | 8 | 6 | R | 884..889 | 885..889 | `owner @link;` |
| t | 9 | 9 | H | 925..926 | 925..926 | `trace t "Review` |
| child | 9 | 3 | R | 991..997 | 992..997 | `oa @child;` |
| s | 9 | 5 | R | 1002..1004 | 1003..1004 | `sa @s;` |
| q | 10 | 10 | H | 1328..1329 | 1328..1329 | `oa_process q "Caller` |
| use | 10 | 12 | R | 1390..1394 | 1391..1394 | `steps [@use, @right]` |
| right | 10 | 14 | R | 1396..1402 | 1397..1402 | `steps [@use, @right]` |
| sub | 11 | 11 | H | 1422..1425 | 1422..1425 | `oa_process sub "Callee` |
| left | 11 | 13 | R | 1486..1491 | 1487..1491 | `steps [@left]` |
| use | 12 | 12 | H | 1514..1517 | 1514..1517 | `oa_occurrence use "Call` |
| q | 12 | 10 | R | 1576..1578 | 1577..1578 | `parent @q; body { SequenceReference` |
| sub | 12 | 11 | R | 1616..1620 | 1617..1620 | `sequence @sub;` |
| left | 13 | 13 | H | 1648..1652 | 1648..1652 | `oa_occurrence left "Left` |
| sub | 13 | 11 | R | 1711..1715 | 1712..1715 | `parent @sub;` |
| child | 13 | 3 | R | 1740..1746 | 1741..1746 | `action @child;` |
| right | 14 | 14 | H | 1789..1794 | 1789..1794 | `oa_occurrence right "Right` |
| q | 14 | 10 | R | 1854..1856 | 1855..1856 | `parent @q; body { Action` |
| implicit | 14 | 4 | R | 1881..1890 | 1882..1890 | `action @implicit;` |
| context | 15 | 15 | H | 1935..1942 | 1935..1942 | `contextual_link context "Context` |
| q | 15 | 10 | R | 2003..2005 | 2004..2005 | `owner @q;` |
| use | 15 | 12 | R | 2028..2032 | 2029..2032 | `references [@use]` |
| left | 15 | 13 | R | 2046..2051 | 2047..2051 | `occurrence @left;` |
| right | 15 | 14 | R | 2091..2097 | 2092..2097 | `occurrence @right;` |
**N=36 = 15 headers +21 references** (D14,A21). G15,T0. All global catalog names total49 UTF-8 bytes; ordinary storage adds zero owned text and zero occurrence counters, exactly36 retained entries. There are no typed declarations in this category fixture; `Field { Type ... Named uuid ... }` is historical trace content, not a typed declaration. The historical UUID equals the live `child` ID deliberately but contributes no ordinary occurrence. The implicit child's lexical parent contributes no authored reference. Project/display/description strings, comment `@noise child`, artifact URI and contextual guard prose contribute no records. The explicit child's parent occurrence belongs to child/id3, never enclosing activity/id2.
The original draft's two routes for the same edge would fail admission (`validation.rs:738–748`, duplicate_edge_route). The frozen fixture has one route plus a view-option hidden-edge reference, retaining repeated-target coverage across valid separate fields. SA function without a System produces the existing missing_system warning rather than an admission error. These are source-derived checks; admission/runtime verification belongs to the parent and is not claimed here.
For the agreed phase policy the category stage reaches **incoming indexed baseline +52 entries**, not the loose bound G15+N36+maxW5=56. Before the final contextual declaration there are31 retained ordinary entries; its header raises this to32. Pushing its four actual root field values raises total to15+32+4=51. Pop `target` then push its `occurrence` and `references` values: W5,total52. The empty references list drains; target occurrence raises map33. Source traversal and its one-item references list reach map33,W4 or map34,W3,total52. Source occurrence finishes at map35,W2,total52; purpose's nested Precedence/guard values also reach52. Final owner reference completes map36,W0,total51. Earlier trace traversal reaches only36 (map17,W4,G15). No recursive work frame is added: numeric/static policy and typed Budget usage must remain exactly inherited.
Cap51 first refuses the `target.references` empty List push: after popping target, push occurrence reaches51, then push references would reach52. The value span is **2076..2078** (`[]`), not the encompassing field or contextual declaration. `language.rs:1067–1085` derives the List extent from matching delimiters; `ordinary_index.rs:377–388` charges `field.value.span` before each push. Cap52 fits this stage. Like the rich+3header cap pair, these global-cap tests must enter through the same accepted limits and demonstrate earlier admission/resolver/typed stages fit; replacing a Budget after acceptance is excluded.
## Cross-file ordinary reference supplement
The existing equal-offset canonical-file fixture checks only headers. A minimal authored extension changes only b.arcadia to `oa_activity bb "Same @aa @bb" id "00000000-0000-0000-0000-000000000003" { parent @aa; }` (87 bytes). Its entire ordinary map has four records: existing `(0,12,14)` H owner/target2, `(1,12,14)` H owner/target3, `(2,19,20)` H owner/target1, plus **`(1,82,84)` R owner3,target2,extent81..84**. Thus the reference target lives in canonical a.arcadia while ownership and replacement authority remain in b.arcadia; the display-name occurrences of @aa/@bb remain excluded. This supplement is suggested to the implementer, not claimed implemented or run.
## Oracle verification boundary
Both report-only scripts completed successfully on 2026-09-24. `ordinary_oracle_bytes.ps1` checked13 original and13 Unicode/CRLF rich records; `ordinary_category_bytes.ps1` checked all36 pinned category records and unique physical keys. Scripts use authored tuples and UTF-8 source arithmetic only; neither runs nor imports the parser, lowerer, formatter or index. They establish literal-byte expectations, not semantic admission, implementation correctness, editing parity or runtime acceptance. All source/build/test ownership remains with the implementer and parent.
## Final cap-fixture refinement, source147b247398cdae4b0fbbf977e301fffcaa450108
This section **supersedes the proposed rich+3 global-cap isolation and unexpanded-category52/51 global-cap pair above**. Their ordinary-stage peaks remain correct, but earlier resolver phases can refuse those global caps before ordinary indexing. The exhaustive semantic maps and pinned category literal are unchanged. Source-only review of final test helpers confirms these two selected variants; no Cargo or source edits were performed by this reviewer.
**Retained-growth variant: rich OA plus six empty activities**, IDs/aliases20..25 (`tests.rs:173–229`). G13,T21,N12. Typed retained delta65 over the new resolved baseline Rnew; ordinary stage delta46 over incoming indexed baseline Inew. Exact failing/succeeding inherited entry caps are Inew+45/+46 = **Rnew+110/+111**. Refusal is the last header `extra25` (seven-byte alias); successful new retention is12 entries. Plain-empty fields add no simultaneous ordinary work beyond the final header.
Earlier-phase justification uses the already verified93eb test (`mixed/project/tests/index_tests.rs:339–375`): the original resolver succeeded under Rold+97, with refusal later inside typed indexing. In `project.rs:233–253,300–344`, each new global contributes alias1+owner1+typed table2; its per-declaration pointer adds1 at `:452–500`. Therefore the catalog/ordinary-construction phase gains30 for six activities, but its concrete original peak is S+38 (G7*4 + scoped6 + ordinary D3 + node1), so the new phase is **Snew+68**, comfortably below Rnew+110. This separate phase is not incorrectly bounded by the smaller lower-phase delta18.
After alias and declaration-pointer releases (`project.rs:498–503`), lowering retains owner1+table2 per extra global, so the relevant overlap grows18. Typed expressions/arguments/all_lower remain unchanged. Each added unattached leaf contributes a retained unallocated_leaf warning (`validation.rs:434–446`, one entry admitted in `project.rs:599–613`), while existing relationships/warnings are unchanged; Rnew therefore includes six more warning entries in addition to changed syntax storage. Relative to Rnew the old proven97 upper bound grows at most18-6=12, yielding **<=109**, below the failing cap110. Warning accumulation itself coexists only with ownerG and retained sites, hence is also lower. The typed index's old98 owner/physical peak grows only six retained name entries to104; its old90 syntax/reverse-name overlap grows12 to102. Thus both previous index phases fit110. All limits are supplied at parse time and the same inherited ledger reaches ordinary indexing.
**Live-work variant: category plus64 route waypoints**, test-only replacement (`tests.rs:638–687`), each literal point `{ x 0; y 0; }`, joined with comma-space. The original2152-byte fixture is untouched. Expanded literal is **3124 UTF-8 bytes**; no new aliases/references, so N36,G15,T0 and final ordinary retention36 remain unchanged. Because root field order is routes then view_options and traversal is LIFO, view.hidden_edges is indexed first: diagram has map11 when its route is walked. Route fields edge/waypoints retain pendingedge W1 while the waypoint List pushes64 children, reachingW65. Pop the last point toW64; x Atom push reachesW65; y Atom push reachesW66. Hence the exact new peak is **map11+G15+W66=92** above Inew. Cap91 refuses the last point's y Atom before its push; independent raw UTF-8 arithmetic locates that `0` at **1712..1713**. `ordinary_index.rs:377–388` charges the value span before push, consistent with this diagnostic. Cap92 fits; later remaining points and original contextual declaration stay below that peak.
Earlier category catalog/ordinary-pointer overlap is4G+D=60+14=**Snew+74** (`project.rs:233–344,452–500`); no scoped signatures or nodes exist. Source-accounting traversal at `accounting.rs:155–183,272–294` walks one declaration/value at a time and reaches at most W66 for the expanded route, hence <=Snew+66. Typed lowering has no nodes/arguments, and its typed-name-only index is small. These earlier bounds are below Inew+91, since Inew retains Snew plus warnings and15 name entries. The64 waypoints remain within the existing route bound128; parent admission/runtime verification is still required.
Final selected counts and bounds were sent to parent and implementer before runtime gates. This is the completed source/arithmetic audit, not a claim that the new13 tests or full suite have passed.
@@ -0,0 +1,154 @@
{
"source": "ee500908e3d77182ddd54e12524f9b6c6eb43b60",
"baseline": "93eb6117f95353d25d594d59780018f197c51672",
"manifests": {
"4ecaa87a87f12fe818a61b29fdf8363b7c0b159da1d759c652f809c841214423": {
"source": "147b247398cdae4b0fbbf977e301fffcaa450108",
"count": 549,
"sha256": "4ecaa87a87f12fe818a61b29fdf8363b7c0b159da1d759c652f809c841214423"
},
"fd3bb5cb81341352f781587b747c6272287e71570491b6e916ce71370a1d89d6": {
"source": "ee500908e3d77182ddd54e12524f9b6c6eb43b60",
"count": 549,
"sha256": "fd3bb5cb81341352f781587b747c6272287e71570491b6e916ce71370a1d89d6"
}
},
"receipts": {
"ordinary-clippy-147b247-1.result.json": {
"mode": "clippy",
"source": "147b247398cdae4b0fbbf977e301fffcaa450108",
"exit": 0,
"outcomes": 0,
"listing": 0,
"log_sha256": "1982e2e4d90ca8f547de25b14c423c348b701d94ecdce6c6eef04e8f5c286208",
"result_sha256": "8944a110940fbcd68ea50e7b01892b1b8ab078a353d098a18d73f4c9178a85d2",
"launcher_sha256": "b82cee3c543f364576ead4dc117a079f0bb16f18a94f6517f9acd92dea0f84ce",
"artifacts": []
},
"ordinary-clippy-ee50090-1.result.json": {
"mode": "clippy",
"source": "ee500908e3d77182ddd54e12524f9b6c6eb43b60",
"exit": 0,
"outcomes": 0,
"listing": 0,
"log_sha256": "5c6ca3dede74f044538fca27bf90987e84c5949a2d7123c035e3e08800022679",
"result_sha256": "6d99a28b639ead2e5f6f7a305904a9f8e8fcd93c5d40d29ff6a011d614810f36",
"launcher_sha256": "2b88d5006c81dcfb801e45559ae2e7bd948d5897f04ea1d1f34a3d42bcdd5efe",
"artifacts": []
},
"ordinary-fmt-ee50090-1.result.json": {
"mode": "fmt",
"source": "ee500908e3d77182ddd54e12524f9b6c6eb43b60",
"exit": 1,
"outcomes": 0,
"listing": 0,
"log_sha256": "c1c6b12861c8117ce6ffc6d6742ebf92618aafb10160ec6f99d370ca72ebab2d",
"result_sha256": "08e5bcecc03f14d50050b5d7c2116488916beea9cf651ffff35fc3d0abd79782",
"launcher_sha256": "2b88d5006c81dcfb801e45559ae2e7bd948d5897f04ea1d1f34a3d42bcdd5efe",
"artifacts": []
},
"ordinary-focused-147b247-1.result.json": {
"mode": "focused",
"source": "147b247398cdae4b0fbbf977e301fffcaa450108",
"exit": 101,
"outcomes": 13,
"listing": 0,
"log_sha256": "e1e626e933748bffb1bcf8885bd94fc764e9d2fa495da827c7da7aaf6a48ea9e",
"result_sha256": "221118db34ee5d3f24a3511ddc57d4ecb8f1e9fb89342aae076d124b40ffb1a8",
"launcher_sha256": "b82cee3c543f364576ead4dc117a079f0bb16f18a94f6517f9acd92dea0f84ce",
"artifacts": [
{
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913\\debug\\deps\\oa_core-416e35542925bed6.exe",
"bytes": 41431040,
"sha256": "40a84a74ec3d9ad4f91fa4dda70c8b4af85ad4a87a47b051213e7c2d16199c78"
}
]
},
"ordinary-focused-ee50090-1.result.json": {
"mode": "focused",
"source": "ee500908e3d77182ddd54e12524f9b6c6eb43b60",
"exit": 0,
"outcomes": 13,
"listing": 0,
"log_sha256": "f709f82dc777f9374839e7a50cec8d8defb2f8d04c674d7ae1020c464805efbf",
"result_sha256": "59e66046fd8c9742a5d382f89b4843aadda4469632fedd70118178d7f5c4bf37",
"launcher_sha256": "2b88d5006c81dcfb801e45559ae2e7bd948d5897f04ea1d1f34a3d42bcdd5efe",
"artifacts": [
{
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913\\debug\\deps\\oa_core-416e35542925bed6.exe",
"bytes": 41463296,
"sha256": "208e0e790627d7ab20d1fdf4a83b65ccc452b003510c8f6ae3bfb96fe57b9110"
}
]
},
"ordinary-full-ee50090-1.result.json": {
"mode": "full",
"source": "ee500908e3d77182ddd54e12524f9b6c6eb43b60",
"exit": 101,
"outcomes": 229,
"listing": 0,
"log_sha256": "d2203c5ca80ad304aadabe623e6a088fb4261f3f59d077fee24b46692417597c",
"result_sha256": "61ec0aa942f1cc527b3947b0b72ad83ac697058a03cc9137f62243477105dcf9",
"launcher_sha256": "2b88d5006c81dcfb801e45559ae2e7bd948d5897f04ea1d1f34a3d42bcdd5efe",
"artifacts": [
{
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913\\debug\\deps\\oa_core-416e35542925bed6.exe",
"bytes": 41463296,
"sha256": "208e0e790627d7ab20d1fdf4a83b65ccc452b003510c8f6ae3bfb96fe57b9110"
}
]
},
"ordinary-list-147b247-1.result.json": {
"mode": "list",
"source": "147b247398cdae4b0fbbf977e301fffcaa450108",
"exit": 0,
"outcomes": 0,
"listing": 229,
"log_sha256": "a591a26f8abbe972718aaea302d73eb490776a60d9ab7ff4ffc78f3cdf5a1ef5",
"result_sha256": "d0921f4e0133fa899ec8abc5489ab29b07e1a6c114f39feec394e2c5aa58df8d",
"launcher_sha256": "b82cee3c543f364576ead4dc117a079f0bb16f18a94f6517f9acd92dea0f84ce",
"artifacts": [
{
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913\\debug\\deps\\oa_core-416e35542925bed6.exe",
"bytes": 41431040,
"sha256": "40a84a74ec3d9ad4f91fa4dda70c8b4af85ad4a87a47b051213e7c2d16199c78"
}
]
},
"ordinary-list-ee50090-1.result.json": {
"mode": "list",
"source": "ee500908e3d77182ddd54e12524f9b6c6eb43b60",
"exit": 0,
"outcomes": 0,
"listing": 229,
"log_sha256": "7b53e4dc83a29b26c4d6419b01e0a66e4b2592bbee947f85e6cae8cbbd692325",
"result_sha256": "9c966f748893e4275bf36f6036036fd9199e3f5c05228c9e4e0a9bb97bebdf53",
"launcher_sha256": "2b88d5006c81dcfb801e45559ae2e7bd948d5897f04ea1d1f34a3d42bcdd5efe",
"artifacts": [
{
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\analysis-checked-save-target-20260913\\debug\\deps\\oa_core-416e35542925bed6.exe",
"bytes": 41463296,
"sha256": "208e0e790627d7ab20d1fdf4a83b65ccc452b003510c8f6ae3bfb96fe57b9110"
}
]
}
},
"unchanged_old_outcomes": 216,
"added_passed": 13,
"identical_failure_blocks_after_pid_only_normalization": 16,
"failure_blocks_sha256": "0c2f887e10624bfd67f6a410689f839d245ef223d2aed396b65911b88a80adb8",
"identical_fmt_sha256": "c1c6b12861c8117ce6ffc6d6742ebf92618aafb10160ec6f99d370ca72ebab2d",
"production_sha256": {
"crates/oa-core/src/language/analysis_source/mixed/project/ordinary_index.rs": "f516574abd74ea92632b63684afa6ab38edb8485b43ed1ca80b2a91c01dff4a4",
"crates/oa-core/src/language/analysis_source/mixed/project.rs": "3f6aded6bff521d7991c491ded3001698874fc1a667951e91941669afa2aadd6"
},
"corrected_fixture_sha256": "3943579866157c7b5d95ce9edcb2d643058826b9af44257557e2864f130d15fc",
"superseded_fixture_sha256": "a220ae836c38e7f1568749edc50891c43f7f34a4152e7224a125ae05618c8e05",
"literal_oracle_rows_unchanged": 36,
"expanded_bytes": 3124,
"scratch_refusal_span": [
1712,
1713
],
"scope": "Read-only raw/Git/evaluator audit; no Cargo or executable invocation."
}
@@ -0,0 +1,72 @@
# Independent ordinary-index runtime review
2026-09-24. **No blocking finding for the accepted private authored-name indexing dependency.** Final source is `ee500908e3d77182ddd54e12524f9b6c6eb43b60`, private branch `codex/analysis-ordinary-index-956atf-20260924`, compared with typed-index baseline `93eb6117f95353d25d594d59780018f197c51672`. This review reconciles existing runtime evidence, source and independently authored byte oracles. It does not rerun Cargo or invoke a test executable. No production edits, commits or peer posts were made.
The scope remains the accepted `harness/analysis-ordinary-index-contract-20260924.md`: consumed, private, read-only complete ordinary authored-name occurrences alongside the retained typed owner. This is not rename composition, arbitrary edit coverage, public source8 activation, GUI parity or a green full suite.
## Frozen source and reproducible readback
Production is byte-identical to the earlier [source review](ORDINARY-SOURCE-REVIEW.md) and the initial test attempt at `147b247398cdae4b0fbbf977e301fffcaa450108`:
| File under `crates/oa-core/src/language/analysis_source/` | SHA256 |
| --- | --- |
| `mixed/project/ordinary_index.rs` | `f516574abd74ea92632b63684afa6ab38edb8485b43ed1ca80b2a91c01dff4a4` |
| `mixed/project.rs` | `3f6aded6bff521d7991c491ded3001698874fc1a667951e91941669afa2aadd6` |
The source checkout is tracked-clean at the stated final HEAD. The repair diff changes only `ordinary_index/tests.rs`, its category fixture and an implementation-note document. The production review's ownership, original-token projection, containment, complete global namespace, scratch lifecycle, error fallback and legacy-separation conclusions therefore remain applicable.
Independent report-only checker: [inspect_ordinary_runtime.py](inspect_ordinary_runtime.py), SHA256 `241abca33737692d6cf7a468c06c2ef5bf731110c488df39348b302149eb7ded`. Result: [ORDINARY-RUNTIME-READBACK.json](ORDINARY-RUNTIME-READBACK.json), SHA256 `2a9d234a22299dd97698c8f555fc8a1d3cc2b9a5d1f426ba8df7b02e54cfe03d`. Run from repository root:
```powershell
& 'C:/Users/User/.cache/codex-runtimes/codex-primary-runtime/dependencies/python/python.exe' -B .local/analysis-mixed-index-seam-20260924/inspect_ordinary_runtime.py
```
This script reads Git objects, raw files and receipts, hashes the current executable without running it, and writes only its report JSON. It was inspected before use and exits zero. Its first draft had an overly greedy multiline failure-header regex; that inspection-script bug was corrected to a newline-bounded header before the successful comparison. No raw evidence was altered.
## Runtime evidence and baseline comparison
Raw evidence is in `.local/analysis-ordinary-index-gates-20260924/ordinary-{focused,list,full,clippy,fmt}-ee50090-1.*`; baseline is `.local/analysis-mixed-index-gates-20260924/index-{list,full,fmt}-93eb611-1.*`.
| Gate | Actual result | Independent reconciliation |
| --- | --- | --- |
| Focused ordinary tests | 13 passed, 0 failed; exit 0 | Exact 13 new names, no duplicates/missing/ignored cases; summary agrees with raw outcome lines. |
| Library listing | 229 names; exit 0 | Exactly baseline 216 names plus those 13 names; equals final full-run membership. |
| Full library | 213 passed, 16 failed; exit 101 | Every old outcome unchanged: baseline 200 pass/16 fail, plus 13 passing additions. |
| Strict all-target clippy | exit 0 | Actual command includes `--locked --offline -p oa-core --all-targets -- -D warnings`; raw log ends with successful completion. |
| Workspace formatting | exit 1 | Entire raw log byte-identical to baseline; SHA256 `c1c6b12861c8117ce6ffc6d6742ebf92618aafb10160ec6f99d370ca72ebab2d`. |
All 16 complete failure blocks match the baseline after normalizing only the numeric thread identifier on the panic line and reading standard line endings. No diagnostic text, source location, test name, assertion body or backtrace note was removed. They remain the six `language::nesting_tests` and ten `source_files::transaction_tests` failures rejecting schema8 through the existing public reader (`Unsupported schema version: expected arcadia 3, 4, 5, 6 or 7.`). This comparison establishes unchanged observed failures, not correctness of those still-failing workflows. Formatting differences remain confined to the same `model.rs`, `references.rs`, `semantic/catalog.rs`, `session.rs` and `transitions.rs` hunks; no new ordinary-index formatting diff appears.
Both initial and final manifests contain **549 files**. Every recorded path, byte length and SHA256 matches its exact Git blob and the complete `ls-tree` set for the launcher's declared input scope. Every final file also matches the current raw working bytes. Final manifest SHA256 is `fd3bb5cb81341352f781587b747c6272287e71570491b6e916ce71370a1d89d6`; initial manifest is `4ecaa87a87f12fe818a61b29fdf8363b7c0b159da1d759c652f809c841214423`. This pins the specified Cargo/build/crates/assets/docs/examples/fixtures/vendor inputs, not every environment or every repository document.
For all eight initial/final receipts, result/log/input/launcher hashes were checked, raw outcome/list lines re-extracted, source/head-after equality confirmed and recorded changed-input/verification-failure arrays checked empty. The recorded launchers were read as code rather than executed. They require clean identified source, capture immutable helper bytes and input bytes before Cargo, preserve raw stdout/stderr, hash emitted executable paths, and record post-run inputs/HEAD. Final launcher SHA256 is `2b88d5006c81dcfb801e45559ae2e7bd948d5897f04ea1d1f34a3d42bcdd5efe`. The five final commands and their single-thread test arguments match the intended gates; lifecycle overrides and `RUST_MIN_STACK` are absent, with `CARGO_BUILD_JOBS=1`.
The executable named by the focused/full/list Cargo `Running` lines and their receipts is currently present at `.local/analysis-checked-save-target-20260913/debug/deps/oa_core-416e35542925bed6.exe`: **41,463,296 bytes**, SHA256 **`208e0e790627d7ab20d1fdf4a83b65ccc452b003510c8f6ae3bfb96fe57b9110`**. All three receipts match these independently read bytes. Initial executable receipts are historical; the current file is the final rebuilt artifact and is not misrepresented as the earlier executable.
## Original oracle and precise fixture supersession
The original [ORDINARY-ORACLE.md](ORDINARY-ORACLE.md) remains preserved as pre-runtime evidence. Its initial category literal hash `a220ae836c38e7f1568749edc50891c43f7f34a4152e7224a125ae05618c8e05` and the example `parent @ /* @noise child */ a;` are **superseded for runnable-fixture/admission claims**. The language does not support that block-comment spelling. Final category SHA256 is **`3943579866157c7b5d95ce9edcb2d643058826b9af44257557e2864f130d15fc`**. Both files are exactly 2,152 UTF-8 bytes; their sole replacement is the 22-byte reference extent **323..345**, from `@ /* @noise child */ a` to `@ // @noise child\r\n a`. Alias `a` remains exactly **344..345**.
All **36 complete original numeric tuples**, including file, owner, target, role, full extent and alias endpoints, remain valid unchanged. The independent checker compares all 36 original report rows to the final Rust literal tuple array and verifies every alias against the corrected raw UTF-8 source. Thus the repair changes valid trivia spelling without deriving expectations from implementation output. N remains15 headers+21 references=36; G15,T0; no new reference is introduced by the comment. Historical UUID, prose, implicit parent and include exclusions remain intentional.
The final rich-map test (`tests.rs:39–145`) preserves the original independently specified OA/SA maps and their Unicode/CRLF offsets, complete `rich_model(layer)` equality, canonical files, bundle identity, both retained typed maps, complete names/warnings/static metadata, parsed Usage and numeric units. Its retained ordinary increment is exactly6 OA/7 SA. The cross-file test (`:148–170`) includes the independently suggested reference `(1,82,84)` from owner3 to global2, extent81..84, while keeping coincident header coordinates in distinct canonical files and excluding display-name prose. The category test (`:554–647`) compares the complete36-row map, retained Project/warnings, ordinary-only empty typed maps, exact36-entry increment and unchanged Usage/numeric work. Category full-Project equality checks preservation of the incoming admitted model; the rich fixture supplies the independently constructed complete model oracle.
The initial focused log is retained: **9 passed/4 failed** at `147b247`. It correctly exposed three admission failures from unsupported block comments (category semantics, expanded category scratch and UTF-8 corruption), plus a duplicate-header test stopped at earlier physical uniqueness. These were test/fixture failures, not discarded passing evidence.
The final changes reach the intended checks:
- `tests.rs:447–495` removes the old physical CallTarget at file2 span291..292 before inserting a second typed Declaration token for the same global. It leaves the original declaration header intact. `ordinary_index.rs:103–119` can now finish unique physical insertion and reach `b.header`; the exact expected `Global declaration header appears more than once.` diagnostic passes. The separate ordinary/typed physical-collision tests remain present and pass.
- `tests.rs:531–543` uses valid `diagram @ // 雨\r\n d`, obtains an accepted indexed owner, then changes only the retained Reference start to the interior UTF-8 byte of 雨. It reaches original-file UTF-8 validation and asserts `Ordinary span is outside its original UTF-8 file.`, canonical `main.arcadia`, and default safe span without panic. It does not count an earlier parse error as a successful corruption test.
- The corrected category literal reaches the entire ordinary map and expanded-scratch walk; the original exact numeric expectations and exact refusal span are unchanged.
## Peak isolation, lifecycle and limits
The original oracle's final cap-fixture refinement remains the applicable accounting specification; earlier proposed rich+3 and unexpanded-category cap pairs are not the runtime acceptance tests.
`tests.rs:172–220` uses rich OA plus six leaf activities. Incoming indexed baseline remains live. G13+T21+finalN12 reaches **baseline+46**. Passing cap46 retains exactly12 extra entries; cap45 fails at the last authored header `extra25`, with its exact seven-byte span. Both cases establish a single parse-time profile, parse/resolve/typed-index successfully under that same inherited limit, compare the resulting baseline, and only then invoke ordinary indexing. No replacement ledger or relaxed earlier-stage profile hides a premature refusal.
`tests.rs:650–694` expands the corrected category with64 valid route points. Independent literal expansion is3,124 bytes. At the peak, retained map11+G15+pending edge/point work66 gives **baseline+92**; T0. LIFO traversal first handles the diagram view-option reference, then the route; after popping the last point, pushing x then y reaches W66. Cap91 fails before the y Atom push at **1712..1713**, checked independently from raw bytes; cap92 succeeds with exactly36 retained entries. Earlier stages again demonstrably succeed under the same profile before ordinary indexing. This covers scratch pre-reservation, successful release and full inherited baseline coexistence rather than assuming a loose final-N+max-W bound.
The remaining exact-message corruptions cover owner/lexical-owner disagreement, relocated alias, project identity, synthetic-root braces, missing marker, shortened/extended reference, spelling/class corruption, parent containment, absent global target/header, duplicate physical ownership, invalid file key and UTF-8 diagnostic fallback. The scoped-name test resolves ordinary `@x` to the global while preserving the same-spelled calculation parameter. Both128-KiB thread tests pass: normal indexing/drop, late absent-header failure, a127-deep typed expression owner, and32 nested ordinary declarations with unchanged Usage and33 retained headers. These are bounded observed lifecycle cases; they do not establish arbitrary-depth behavior or allocation-failure coverage.
Completeness still relies on the sealed parser projection plus the independent complete-map tests. The checks do not promise detection of arbitrary coordinated omissions from that trusted projection. No new constructor/updater authority or public behavior was introduced during the test repair. Final acceptance and publication remain with the parent; subsequent rename/edit composition needs its own contract and whole-output oracle.
@@ -0,0 +1,66 @@
# Ordinary authored-name index: independent production source review
2026-09-24. Reviewer `/root/mixed_index_source_review`, GPT-6 Astra. Local-only evidence for parent acceptance. No Cargo, runtime tests, source edits, Gitea posts or commits were performed by this reviewer. Only this report was written. Tests were still being authored during inspection; this is not a test-oracle or runtime acceptance report.
## Scope and exact reviewed source
Checkout `.local/as3batch`, branch `codex/analysis-ordinary-index-956atf-20260924`, HEAD/base `93eb6117f95353d25d594d59780018f197c51672`. Reviewed the entire new ordinary production module and the narrow `project.rs` delta against root `harness/analysis-ordinary-index-contract-20260924.md` and its accepted critique. No re-review of the completed typed index was undertaken.
SHA-256 working-file hashes:
| Repository-relative file | SHA-256 |
| --- | --- |
| `crates/oa-core/src/language/analysis_source/mixed/project/ordinary_index.rs` | `F516574ABD74EA92632B63684AFA6AB38EDB8485B43ED1CA80B2A91C01DFF4A4` |
| `crates/oa-core/src/language/analysis_source/mixed/project.rs` | `3F6ADED6BFF521D7991C491DED3001698874FC1A667951E91941669AFA2AADD6` |
The implementer confirmed both production files frozen and unchanged after initial formatting; a final hash reread matched this table. Concurrent changes to parent `project/tests.rs` and new ordinary test files are outside this production source snapshot.
Line references below use those working files and are relative to `crates/oa-core/src/language/analysis_source/mixed/`. `git diff --check` returned exit 0 for tracked changes; the new ordinary module was untracked at inspection and is identified by its hash above.
**Disposition: no concrete blocking production-source defect found in the reviewed snapshot.** Compilation, independent full-set oracles, exact storage caps, corruption paths and lifecycle execution remain parent gates. This is a complete authored-name occurrence capability, not a complete editing capability or public source8 activation.
## Provenance, ownership and unchanged legacy behavior
- `project/ordinary_index.rs:25–40` consumes `IndexedMixedProject` and retains it alongside one owned map. There is no clone of its bundle, complete Project, names, typed maps, syntax or raw arenas. Construction success returns the entire owner; failure drops the consumed attempt.
- The returned wrapper's fields are private. Read-only methods (`:44–67`) borrow its Project, warnings, original bundle/files, qualified names and both occurrence families. It does not expose an index constructor from loose source/position/model parts, mutable replacement state, a legacy `Index` conversion or old-updater adapter. Public record fields are observed only through a shared map reference and do not grant authority to modify the owner.
- `build` (`:77`) is module-private. Its temporary borrowed name lookup never escapes. The result stores only owned physical keys and inline ID/role/extent values, so no self-reference is introduced. Ordinary target identity is global; scoped parameters are filtered out before reverse lookup.
- The only modification to prior production behavior is extraction of the typed constructor's existing canonical-file/UTF-8-span fallback into `Failure::index` (`project.rs:128`). Source comparison shows identical filtering, range check, default-span fallback and final `Failure::typed` call. The typed constructor calls that helper with the same inputs. No old `Index`, `Plan`, public source updater, grammar, parser, lowerer, formatter, admission or ordinary converter changed.
## Complete name coverage and token/owner checks
- The builder enumerates only `Target::Global` catalog entries (`ordinary_index.rs:92`); each reverse-map value holds its ID and one inline seen-header flag. It visits existing typed declaration headers (`:103–119`) and requires their target to equal their owner. `header` (`:267`) checks spelling/ID agreement and rejects repeated global headers. The final scan (`:244`) rejects a global catalog member with no authored header. This covers the project, ordinary and typed declaration families while leaving parameter declaration names in their existing typed scope.
- Project header handling (`:121–150`) binds the header to the canonical entry path, binary-searches its original starting token, checks whole Word `project`, uses exactly the next retained significant token as the alias, checks containment and exact admitted spelling, then checks its global identity. No substring lexer or secondary header parser is used.
- Ordinary declarations are paired directly with their retained position entries (`:154–173`). The ID, full declaration span, body and lexical owner must agree. Thus nested declarations are separately owned flat occurrences; the algorithm does not assign ownership from overlapping parent spans. The alias must be the significant token immediately after that declaration's original starting token, lie before the body, be contained in the declaration, and match a whole original Word token and retained alias (`:176–204`).
- The synthetic root is explicitly checked against `body.start - 1 .. body.end + 1`, with checked arithmetic and valid source/decl containment (`:207–235`). It must be a Record; actual top-level fields are checked against body interior. This preserves the accepted braces exception instead of incorrectly requiring the synthetic root to fit inside the body interior.
- `fields`/`push_field` (`:303`, `:377`) walk every retained Record/List leaf iteratively. Actual field spans fit their parent, values fit their fields/list, and every popped value fits the owning declaration. References in scalar fields, nested structures and repeated lists all take the same path; there is no incomplete field-name/category selector and no reuse of `active_references`.
- A Reference (`:321–357`) must start at an original significant punctuation `@`, followed immediately in the significant stream by the alias Word, whose end must equal the full retained extent's end. Whole-token class/span and source spelling are checked by `word` (`:413`); the retained name must resolve in the global-only lookup. The map key grants authority only over the alias Word, while `extent` preserves marker/trivia/alias for inspection.
- Atom and HistoricalUuid leaves are skipped (`:372`). No prose, display-name, include-path, identity-string or historical UUID occurrence is invented. Implicit parenthood creates no reference, while any explicit `parent @x` is visited normally. Existing grammar restrictions remain unchanged.
- `insert` (`:286`) rejects a physical key present in either the typed-token set or the new ordinary map before allocation. Whole-token checking prevents partial-token overlap from becoming a separate legitimate occurrence. The map's keys are canonical file plus original Word span; repeated uses of one target at different physical locations stay distinct.
The runtime checks do not independently re-emit every ordinary reference from the raw AST. A coordinated omission from the trusted position projection is outside that check boundary, consistent with the accepted contract. Completeness is exhaustive traversal of the sealed projection plus independent full-set oracles; it must not be reported as arbitrary coordinated-corruption rejection.
## Storage, frame and failure lifecycle
The implementation matches the accepted one-map representation. If D is ordinary declarations and A is ordinary Reference leaves, successful retained delta is exactly **N = 1 + D + A entry slots**, zero lowerer occurrence slots and zero owned text bytes. The original complete witness and all typed/source/name/raw-arena/warning reservations remain live.
- Every reverse global entry is reserved before insertion (`:94`). It borrows catalog name strings; its seen-header bool requires no additional set/container.
- Every typed physical key is reserved before set insertion (`:110`). Its file/range is checked against the actual retained file table first. Existing typed maps are never cleared to make the new construction fit.
- Every ordinary map entry is reserved before insertion (`:299`), after duplicate checks. There is exactly one new retained map and no copied name, source, declaration, field/path key, formatter result, or path arena.
- Each pushed field/value/list work item reserves one entry first (`:367`, `:387`). Pop releases one logical slot (`:317`) under the established logical-live-slot policy. The Vec contains borrowed values and inline spans, so popping adds no owned subtree or copied path. Each declaration's work Vec drains and is dropped before returning.
- On complete success, both scratch maps are explicitly dropped (`:255–256`) before releasing their exact G+T entries. Work vectors have already drained/dropped; no scratch reservation is released while the corresponding logical entry remains live. All reserved additions flow through checked `Ledger::reserve`; no fresh permissive budget or ledger is introduced.
- The actual entry peak is inherited baseline plus **G + T + max over construction states of (ordinary entries already inserted + live work slots)**. `N+G+T+Wmax` is a conservative bound, not necessarily the exact fixture peak: the work maximum can occur before the last reference entry is inserted. Boundary tests must enumerate the real state sequence.
- The builder holds only `&Budget`; there are no parsing, reference/Exact recharge or `Budget::frame` calls. Parsed Usage, including deepest_frame, and numeric work therefore remain unchanged in this successor. Scratch entry checking is separate from frame usage.
- For an error, the current local file is recorded before all per-file and per-typed-location checks. Global-catalog/coverage failures explicitly use no file and default span. `Failure::index` preserves a valid canonical file and valid original range, resets malformed UTF-8/range spans safely, and uses the established entry fallback for unknown files. It avoids the previously repaired diagnostic-slicing hazard.
- A failed builder can leave reservations inflated only in the consumed witness that is immediately dropped; no partial map or reuse lease escapes. Builder maps contain simple IDs/spans/borrowed strings; work vectors contain borrowed pointers. No new recursive destruction is introduced. Existing retained syntax/model/typed Path cleanup remains the prior owner's lifecycle and still needs its required runtime small-stack checks.
## Remaining acceptance evidence
No compiler or runtime claim follows from this source review. Parent should require:
1. Independent complete numeric header/reference maps for OA/SA, Unicode/CRLF, nested ordinary owners, explicit/implicit parenthood, canonical ordering, marker comments and both ordinary/typed target directions.
2. Additional category/shape fixtures for relations/contextual chains, views/routes, artifacts, traces and historical UUID exclusion; ordinary global versus scoped-parameter spelling/UUID collision cases.
3. Intentional corruptions reaching project marker, whole Word, Reference marker/extent, global target, owner/file, root/field/value containment, physical uniqueness, repeated/missing header and safe diagnostic checks. Later checks should not be accidentally credited to an unrelated earlier rejection.
4. Exact retained delta, zero copied-name/occurrence delta, hand-counted actual scratch peak and cap-minus-one refusal with the inherited typed baseline still present. Compare every parsed Usage field and Exact counter, complete Project/warnings/static metadata and original bundle identity/file bytes.
5. Success/late-rejection destruction on the existing small-stack harness, typed-index regression tests after shared failure-helper extraction, strict required static checks and explicit inherited suite dispositions.
The separate complete-target rename contract and compositor remain future work. Nothing here grants ordinary scalar/structural edits, identity changes, missing-ID stabilization, public source8, history/checked-save or user-facing parity.
@@ -0,0 +1,25 @@
# Independent archive readback — 2026-09-24
No discrepancy found in this bounded delivery check. Reviewed the packaging script as text; did not execute it, archived evaluators, Cargo, product binaries or source tests. No staging, commit or remote mutation was performed. This report is additional to the frozen 50-member archive, not an archive member.
Independently read `evidence.zip`: **456,290 bytes**, SHA256 **99ee3761a77c2f634d36d4cdd0c3ec6d305cbd2f3322cf37a2f25f21e6d9fbed**. All **50** member paths are unique, including case-insensitive comparison, and safe relative paths without traversal, backslashes or drive separators. Exact member set, byte lengths and SHA256 match `manifest.json`; every member CRC and ZIP readback pass. Manifest raw SHA256: `47040569ad955304e9266f5ba006ed089f84fc116038e977c7c5b43d3c5cac62`.
Compared all 48 non-diff members byte-for-byte against their original files in `.local/analysis-ordinary-index-gates-20260924`, `.local/analysis-mixed-index-gates-20260924`, and `.local/analysis-mixed-index-seam-20260924`, following the builder's explicit mappings. Independently regenerated both diff byte streams with `git --no-replace-objects diff --no-ext-diff --no-textconv`: `50a5918fd64514b49ebfdb8881f7f388c02135bd` → `147b247398cdae4b0fbbf977e301fffcaa450108`, and `147b247398cdae4b0fbbf977e301fffcaa450108` → `ee500908e3d77182ddd54e12524f9b6c6eb43b60`. Both exactly match archived patches.
Read the actual staged Git blobs using `git show :path` for all nine existing delivery files, including ZIP, manifest, README and `.gitattributes`: every staged byte equals its raw working-file byte. The five readable review/script/result mirrors also exactly equal corresponding archive members. The staged `ORDINARY-RUNTIME-READBACK.json` retains its original **154 CRLF** sequences; its SHA256 is `2a9d234a22299dd97698c8f555fc8a1d3cc2b9a5d1f426ba8df7b02e54cfe03d`. The directory's `-text` attributes preserve JSON, Python, ORDINARY markdown and ZIP bytes. No line-ending normalization discrepancy exists. README reviewed SHA256: `16cac24d329f4549288b58cdd67d447ecf3f1a60a3d2202fff764d63682cc53c`.
Reconciled all eleven initial/final/baseline result records to their raw log and input-manifest hashes, captured launcher hashes, unchanged source/head and empty verification-failure lists. Parsed actual named outcomes and listing rows directly from logs and compared them in order with receipts:
| Recorded execution | Raw result |
| --- | --- |
| Initial147 focused | exit101; 9 passed, 4 failed, 216 filtered |
| Initial147 listing / strict Clippy | 229 names / exit0 |
| Finalee50090 focused | exit0; 13 passed, 0 failed, 216 filtered |
| Finalee50090 full library | exit101; 213 passed, 16 failed |
| Finalee50090 listing | exit0; 229 names |
| Finalee50090 strict Clippy | exit0 |
| Finalee50090 formatting | exit1 |
| Baseline93eb611 full / listing | exit101; 200 passed, 16 failed / 216 names |
| Baseline93eb611 formatting | exit1 |
Every one of the 216 baseline named outcomes remains unchanged in final full execution; precisely 13 additional names pass. All 16 final failure bodies retain `Unsupported schema version: expected arcadia 3, 4, 5, 6 or 7.` The entire 6,446-byte final formatting log is byte-identical to baseline, including eight diff blocks across five files. The README accurately retains these failures and the initial four fixture failures, distinguishes targeted/Clippy success from failed full-library/format gates, and excludes this source from the Windows prerelease. No broader source correctness or runtime acceptance was reassessed here.
@@ -0,0 +1,79 @@
# Private ordinary authored-name index checkpoint
Source **ee500908e3d77182ddd54e12524f9b6c6eb43b60**, separately published on
`codex/analysis-ordinary-index-956atf-20260924`. The
[accepted contract](../../analysis-ordinary-index-contract-20260924.md) is now
implemented by a consumed read-only owner that retains the complete typed
authority and adds ordinary/project headers and actual authored references.
Original canonical files, token ranges, full reference extents, ownership,
complete Project, warnings and inherited limits remain attached. No legacy
updater conversion, edit composition or public source8 activation is added.
This source is outside the published Windows prerelease.
Windows gnullvm, rustc/Cargo 1.98.1: strict core all-target Clippy and all **13 new
tests pass**. The actual listing contains229 names. Full library remains
**FAILED: 213 passed, 16 failed**, preserving all216 baseline outcomes plus13
new passes. All16 failure bodies retain their unsupported-public-source8
diagnostics. Formatting remains **FAILED** with exactly the same eight inherited
diff blocks in five files. Neither failure is reclassified as success. Linux
checks were not run.
The [independent runtime review](ORDINARY-RUNTIME-REVIEW.md) verifies all549
declared input paths against immutable Git/raw disk bytes, every actual named
outcome, original/final receipts, launcher hashes and the actual41,463,296-byte
test executable (`208e0e790627d7ab20d1fdf4a83b65ccc452b003510c8f6ae3bfb96fe57b9110`).
The [production source review](ORDINARY-SOURCE-REVIEW.md) remains applicable:
the final repairs changed only tests, their fixture and the implementation note.
The complete independent oracles cover OA/SA and Unicode/CRLF, cross-file
references with coincident coordinates, ordinary/global versus scoped parameter
names, nested explicit/implicit parents, routes/views, artifacts, traces and
historical UUID exclusion. Corruption cases reach exact ownership, whole-token,
extent, containment, uniqueness and safe-location checks. Hand-counted inherited
entry caps45/46 and91/92 reach this stage after earlier phases fit; successful
retention and small-stack success/late-failure cleanup are verified.
Preserved history matters: initial `147b247` focused execution passed9/failed4.
Three fixtures incorrectly assumed C-style block comments; the language supports
`//` comments. The fourth duplicated a physical call token before reaching the
intended duplicate-header check. Final `ee500908` uses accepted line comments
and removes the former call role in that corruption control. The category
replacement is byte-neutral: all36 authored numeric tuples remain unchanged,
with corrected fixture SHA256
`3943579866157c7b5d95ce9edcb2d643058826b9af44257557e2864f130d15fc`.
The [original oracle](ORDINARY-ORACLE.md) and its old pinned report-only scripts
remain historical; the runtime review explicitly supersedes its invalid comment
example and old runnable-fixture hash. Do not run that old pinned category script
against the repaired fixture and treat its expected pin refusal as a regression.
The archive contains **50 members**, **456,290 bytes**, SHA256
`99ee3761a77c2f634d36d4cdd0c3ec6d305cbd2f3322cf37a2f25f21e6d9fbed`.
[manifest.json](manifest.json) pins each member; [evidence.zip](evidence.zip)
contains eight initial/final gate triplets, three baseline triplets, captured
launchers, source/oracle/runtime reports, raw-byte evaluators/readbacks, two
repair diffs and the unchanged toolchain's earlier version capture. Accessible
review/script/result files here are exact mirrors of their archived bytes.
The archive builder re-read every member and verified its CRC and bytes.
Raw scripts retain their actual local directory layout. Their contents are
evidence, not an instruction to execute unreviewed code. The independent
readback checker reads Git/raw records and the current test executable without
running it; replay requires reconstructing its documented source/gate layout.
Receipts cover declared inputs and selected environment fields, not authenticated
build provenance or exhaustive environmental capture.
To rerun subject gates at the exact source with the project Windows toolchain,
use one compiler job, `CARGO_INCREMENTAL=0`, and no lifecycle/RUST_MIN_STACK
override:
```text
cargo test --locked --offline -p oa-core --lib -- --list
cargo test --locked --offline -p oa-core --lib language::analysis_source::mixed::project::ordinary_index::tests:: -- --test-threads=1
cargo test --locked --offline -p oa-core --lib -- --test-threads=1
cargo clippy --locked --offline -p oa-core --all-targets -- -D warnings
cargo fmt --all -- --check
```
Complete rename planning/output admission, scalar/structural editing, public
source8, checked persistence and graphical/API parity remain required work in
issue7. Complete occurrence indexing is one dependency toward that objective.
@@ -0,0 +1,133 @@
"""Independent read-only Git/raw-byte gate reconciliation; never executes Cargo."""
from pathlib import Path
import hashlib, json, re, subprocess
base = Path(__file__).resolve().parents[2]
root = base / '.local/as3batch'
out = Path(__file__).parent
gates = base / '.local/analysis-ordinary-index-gates-20260924'
oldg = base / '.local/analysis-mixed-index-gates-20260924'
source = 'ee500908e3d77182ddd54e12524f9b6c6eb43b60'
oldsource = '93eb6117f95353d25d594d59780018f197c51672'
initial = '147b247398cdae4b0fbbf977e301fffcaa450108'
sha = lambda b: hashlib.sha256(b).hexdigest()
def git(*args):
return subprocess.check_output(['git', *args], cwd=root)
assert git('rev-parse','HEAD').decode().strip() == source
assert not git('status','--porcelain','--untracked-files=no').strip()
scope = ['Cargo.toml','Cargo.lock','rust-toolchain.toml','.cargo','build','crates','assets','docs','examples','harness/fixtures','vendor']
def verify_inputs(path, current):
raw = path.read_bytes()
m = json.loads(raw)
paths = git('ls-tree','-r','--name-only',m['source'],*scope).decode().splitlines()
assert paths == [x['path'] for x in m['inputs']]
blobs = subprocess.check_output(['git','cat-file','--batch'],cwd=root,input=''.join(f"{m['source']}:{p}\n" for p in paths).encode())
at = 0
for x in m['inputs']:
end = blobs.index(b'\n',at)
_,kind,size = blobs[at:end].split()
size = int(size)
data = blobs[end+1:end+1+size]
assert kind == b'blob' and x['bytes'] == size and x['sha256'] == sha(data), x['path']
if current: assert (root/x['path']).read_bytes() == data, x['path']
at = end+size+2
assert at == len(blobs)
return {'source':m['source'],'count':len(paths),'sha256':sha(raw)}
manifests = {}
receipts = {}
for path in sorted(gates.glob('*.result.json')):
r = json.loads(path.read_bytes())
inp = gates/r['inputs']
if r['inputs_sha256'] not in manifests:
manifests[r['inputs_sha256']] = verify_inputs(inp,r['source']==source)
assert sha(inp.read_bytes()) == r['inputs_sha256']
raw = path.with_name(path.name.replace('.result.json','.log')).read_bytes()
assert sha(raw) == r['log_sha256']
launcher = gates/r['launcher_copy']
assert sha(launcher.read_bytes()) == r['launcher_sha256'] == r['launcher_sha256_after']
assert r['head_after'] == r['source'] and not r['changed_inputs'] and not r['verification_failures']
assert r['cwd'] == str(root) and r['environment']['CARGO_BUILD_JOBS'] == '1'
assert r['environment']['ARCADIA_CODEC_LIFECYCLE_PHASE'] is None and r['environment']['RUST_MIN_STACK'] is None
prefix=['cargo','test','--locked','--offline','-p','oa-core','--lib']
commands={'list':prefix+['--','--list'],'full':prefix+['--','--test-threads=1'],'focused':prefix+['language::analysis_source::mixed::project::ordinary_index::tests::','--','--test-threads=1'],'clippy':['cargo','clippy','--locked','--offline','-p','oa-core','--all-targets','--','-D','warnings'],'fmt':['cargo','fmt','--all','--','--check']}
assert r['command']==commands[r['mode']]
assert r['source'].encode() in launcher.read_bytes()
log = raw.decode()
actual = re.findall(r'^test ([^\r\n]+) \.\.\. (ok|FAILED|ignored)\r?$',log,re.M)
assert actual == [tuple(x) for x in r['outcomes']]
assert len(actual) == len(dict(actual))
members = re.findall(r'^([^\r\n]+): test\r?$',log,re.M) if r['mode']=='list' else []
assert members == r['listing_members'] and len(members)==r['listing_count']
if r['mode'] in ('full','focused'):
counts = {s:sum(v==s for _,v in actual) for s in ('ok','FAILED','ignored')}
summary = re.findall(r'^test result: (ok|FAILED)\. (\d+) passed; (\d+) failed; (\d+) ignored; 0 measured; (\d+) filtered out;',log,re.M)
assert len(summary)==1 and tuple(map(int,summary[0][1:4]))==(counts['ok'],counts['FAILED'],counts['ignored'])
assert r['exit']==(101 if counts['FAILED'] else 0)
if r['source']==source:
for a in r['artifacts']:
artifact = Path(a['path']).read_bytes()
assert len(artifact)==a['bytes'] and sha(artifact)==a['sha256']
assert str(Path(a['path'])).replace('\\','/') in log.replace('\\','/')
receipts[path.name] = {'mode':r['mode'],'source':r['source'],'exit':r['exit'],'outcomes':len(actual),'listing':len(members),'log_sha256':sha(raw),'result_sha256':sha(path.read_bytes()),'launcher_sha256':r['launcher_sha256'],'artifacts':r['artifacts']}
def read(directory,name): return json.loads((directory/(name+'.result.json')).read_bytes())
prior=read(oldg,'index-full-93eb611-1')
now=read(gates,'ordinary-full-ee50090-1')
assert {r['mode'] for r in receipts.values() if r['source']==source}=={'full','focused','list','clippy','fmt'}
assert read(gates,'ordinary-clippy-ee50090-1')['exit']==0 and read(gates,'ordinary-fmt-ee50090-1')['exit']==1
oldout=dict(prior['outcomes']); newout=dict(now['outcomes'])
assert len(oldout)==216 and len(newout)==229
assert all(newout.get(k)==v for k,v in oldout.items())
added=set(newout)-set(oldout)
assert len(added)==13 and all(newout[k]=='ok' for k in added)
assert set(read(gates,'ordinary-list-ee50090-1')['listing_members'])==set(newout)
assert set(read(oldg,'index-list-93eb611-1')['listing_members'])==set(oldout)
assert set(dict(read(gates,'ordinary-focused-ee50090-1')['outcomes']))==added
def failures(directory,name):
raw=(directory/(name+'.log')).read_bytes()
r=read(directory,name)
assert sha(raw)==r['log_sha256']
text=raw.decode().replace('\r\n','\n')
blocks={}
for m in re.finditer(r'^---- ([^\n]+) stdout ----\n(.*?)(?=^---- |^failures:|\Z)',text,re.M|re.S):
blocks[m[1]]=re.sub(r"(?m)^(thread '[^\n]*') \(\d+\) panicked",r'\1 (<PID>) panicked',m[2]).strip()
return blocks
fb=failures(oldg,'index-full-93eb611-1'); fn=failures(gates,'ordinary-full-ee50090-1')
if fb != fn:
import difflib
for key in fb.keys() | fn.keys():
if fb.get(key) != fn.get(key):
print(key)
print('\n'.join(difflib.unified_diff(fb.get(key,'').splitlines(),fn.get(key,'').splitlines())))
assert len(fb)==len(fn)==16 and fb==fn
fmt=(gates/'ordinary-fmt-ee50090-1.log').read_bytes()
assert fmt==(oldg/'index-fmt-93eb611-1.log').read_bytes()
rel='crates/oa-core/src/language/analysis_source/mixed/project/ordinary_index/tests/fixtures/categories.arcadia'
before=git('show',initial+':'+rel); after=(root/rel).read_bytes()
assert len(before)==len(after)==2152
assert after==before.replace(b'@ /* @noise child */ a',b'@ // @noise child\r\n a')
assert sha(after)=='3943579866157c7b5d95ce9edcb2d643058826b9af44257557e2864f130d15fc'
oracle=(out/'ORDINARY-ORACLE.md').read_text(encoding='utf-8')
rows=re.findall(r'^\| (\w+) \| (\d+) \| (\d+) \| ([HR]) \| (\d+)\.\.(\d+) \| (\d+)\.\.(\d+) \|',oracle,re.M)
assert len(rows)==36
expected=[]
for alias,owner,target,role,start,end,astart,aend in rows:
start,end,astart,aend=map(int,(start,end,astart,aend))
assert after[astart:aend].decode()==alias and aend==end
assert after[start:start+1]==b'@' if role=='R' else start==astart
expected.append((astart,aend,int(owner),int(target),role,start))
tests=(root/'crates/oa-core/src/language/analysis_source/mixed/project/ordinary_index/tests.rs').read_text()
numeric=tests.split('let rows = [',1)[1].split('];',1)[0]
actualrows=[(int(a),int(b),int(o),int(t),r,int(s)) for a,b,o,t,r,s in re.findall(r'\((\d+), (\d+), (\d+), (\d+), ([HR]), (\d+)\)',numeric)]
assert actualrows==expected and len(set((x[0],x[1]) for x in expected))==36
expanded=after.replace(b'routes [{ edge @link; }];',b'routes [{ edge @link; waypoints ['+b', '.join([b'{ x 0; y 0; }']*64)+b']; }];')
assert len(expanded)==3124 and expanded.rfind(b'y 0')+2==1712 and expanded[1712:1713]==b'0'
production={}
for rel in ['crates/oa-core/src/language/analysis_source/mixed/project/ordinary_index.rs','crates/oa-core/src/language/analysis_source/mixed/project.rs']:
raw=(root/rel).read_bytes()
assert raw==git('show',initial+':'+rel)==git('show',source+':'+rel)
production[rel]=sha(raw)
result={'source':source,'baseline':oldsource,'manifests':manifests,'receipts':receipts,'unchanged_old_outcomes':216,'added_passed':13,'identical_failure_blocks_after_pid_only_normalization':16,'failure_blocks_sha256':sha(json.dumps(fn,sort_keys=True).encode()),'identical_fmt_sha256':sha(fmt),'production_sha256':production,'corrected_fixture_sha256':sha(after),'superseded_fixture_sha256':sha(before),'literal_oracle_rows_unchanged':36,'expanded_bytes':len(expanded),'scratch_refusal_span':[1712,1713],'scope':'Read-only raw/Git/evaluator audit; no Cargo or executable invocation.'}
(out/'ORDINARY-RUNTIME-READBACK.json').write_text(json.dumps(result,indent=2)+'\n',encoding='utf-8')
print(json.dumps({k:v for k,v in result.items() if k!='receipts'},indent=2))
@@ -0,0 +1,211 @@
{
"source": "ee500908e3d77182ddd54e12524f9b6c6eb43b60",
"scope": "Private ordinary authored-name index. Strict Clippy and thirteen new tests pass; full library and formatting retain recorded baseline failures. Includes initial four failed fixture controls and repair.",
"archive": {
"file": "evidence.zip",
"bytes": 456290,
"sha256": "99ee3761a77c2f634d36d4cdd0c3ec6d305cbd2f3322cf37a2f25f21e6d9fbed"
},
"members": {
"baseline/index-fmt-93eb611-1.inputs.json": {
"bytes": 101639,
"sha256": "e3e8f12212ddc111c32dd925179785db5c7a52a87cf4730ad2c2a4b644f7a805"
},
"baseline/index-fmt-93eb611-1.log": {
"bytes": 6446,
"sha256": "c1c6b12861c8117ce6ffc6d6742ebf92618aafb10160ec6f99d370ca72ebab2d"
},
"baseline/index-fmt-93eb611-1.result.json": {
"bytes": 1880,
"sha256": "ead7fc6c8673fe8b565f2c0506a81261a0a401854e2c78bc5b12b72722476d62"
},
"baseline/index-full-93eb611-1.inputs.json": {
"bytes": 101639,
"sha256": "e3e8f12212ddc111c32dd925179785db5c7a52a87cf4730ad2c2a4b644f7a805"
},
"baseline/index-full-93eb611-1.log": {
"bytes": 36384,
"sha256": "7f4ede0908156a94c10c1d730f1b7bd89c23b6b777d1daef22693019827e97e1"
},
"baseline/index-full-93eb611-1.result.json": {
"bytes": 31080,
"sha256": "ca638920be3e438a12ee00447fd14e18339654bf10996c01b48032d56abc29a1"
},
"baseline/index-list-93eb611-1.inputs.json": {
"bytes": 101639,
"sha256": "e3e8f12212ddc111c32dd925179785db5c7a52a87cf4730ad2c2a4b644f7a805"
},
"baseline/index-list-93eb611-1.log": {
"bytes": 23201,
"sha256": "ff3b75a04657d81cd86d82acf33df77c815b374c50c2bee843577d18e40a1615"
},
"baseline/index-list-93eb611-1.result.json": {
"bytes": 25377,
"sha256": "729c0c04b8ca1d40b97ad93bb799fa840df75ee7870f4c72c880415563d4b495"
},
"baseline/launchers/f3b42e687b33b8a38b717823ae67e6abc2c2fa9c0c9a2c0525c9f564f6f61b4c.py": {
"bytes": 7631,
"sha256": "f3b42e687b33b8a38b717823ae67e6abc2c2fa9c0c9a2c0525c9f564f6f61b4c"
},
"diffs/147b247-to-ee50090.patch": {
"bytes": 6469,
"sha256": "d3c96ad9f9b9ef89bebbf570f4becc0819956d3c72131bee69acb4b354e52fdf"
},
"diffs/50a5918-to-147b247.patch": {
"bytes": 12197,
"sha256": "102c15d43f59634b09a688396dda92b793822413545d7c5faf219631f57d3c30"
},
"gates/launchers/2b88d5006c81dcfb801e45559ae2e7bd948d5897f04ea1d1f34a3d42bcdd5efe.py": {
"bytes": 7637,
"sha256": "2b88d5006c81dcfb801e45559ae2e7bd948d5897f04ea1d1f34a3d42bcdd5efe"
},
"gates/launchers/b82cee3c543f364576ead4dc117a079f0bb16f18a94f6517f9acd92dea0f84ce.py": {
"bytes": 7637,
"sha256": "b82cee3c543f364576ead4dc117a079f0bb16f18a94f6517f9acd92dea0f84ce"
},
"gates/ordinary-clippy-147b247-1.inputs.json": {
"bytes": 102544,
"sha256": "4ecaa87a87f12fe818a61b29fdf8363b7c0b159da1d759c652f809c841214423"
},
"gates/ordinary-clippy-147b247-1.log": {
"bytes": 165,
"sha256": "1982e2e4d90ca8f547de25b14c423c348b701d94ecdce6c6eef04e8f5c286208"
},
"gates/ordinary-clippy-147b247-1.result.json": {
"bytes": 1956,
"sha256": "8944a110940fbcd68ea50e7b01892b1b8ab078a353d098a18d73f4c9178a85d2"
},
"gates/ordinary-clippy-ee50090-1.inputs.json": {
"bytes": 102544,
"sha256": "fd3bb5cb81341352f781587b747c6272287e71570491b6e916ce71370a1d89d6"
},
"gates/ordinary-clippy-ee50090-1.log": {
"bytes": 165,
"sha256": "5c6ca3dede74f044538fca27bf90987e84c5949a2d7123c035e3e08800022679"
},
"gates/ordinary-clippy-ee50090-1.result.json": {
"bytes": 1969,
"sha256": "6d99a28b639ead2e5f6f7a305904a9f8e8fcd93c5d40d29ff6a011d614810f36"
},
"gates/ordinary-fmt-ee50090-1.inputs.json": {
"bytes": 102544,
"sha256": "fd3bb5cb81341352f781587b747c6272287e71570491b6e916ce71370a1d89d6"
},
"gates/ordinary-fmt-ee50090-1.log": {
"bytes": 6446,
"sha256": "c1c6b12861c8117ce6ffc6d6742ebf92618aafb10160ec6f99d370ca72ebab2d"
},
"gates/ordinary-fmt-ee50090-1.result.json": {
"bytes": 1883,
"sha256": "08e5bcecc03f14d50050b5d7c2116488916beea9cf651ffff35fc3d0abd79782"
},
"gates/ordinary-focused-147b247-1.inputs.json": {
"bytes": 102544,
"sha256": "4ecaa87a87f12fe818a61b29fdf8363b7c0b159da1d759c652f809c841214423"
},
"gates/ordinary-focused-147b247-1.log": {
"bytes": 5574,
"sha256": "e1e626e933748bffb1bcf8885bd94fc764e9d2fa495da827c7da7aaf6a48ea9e"
},
"gates/ordinary-focused-147b247-1.result.json": {
"bytes": 4565,
"sha256": "221118db34ee5d3f24a3511ddc57d4ecb8f1e9fb89342aae076d124b40ffb1a8"
},
"gates/ordinary-focused-ee50090-1.inputs.json": {
"bytes": 102544,
"sha256": "fd3bb5cb81341352f781587b747c6272287e71570491b6e916ce71370a1d89d6"
},
"gates/ordinary-focused-ee50090-1.log": {
"bytes": 2341,
"sha256": "f709f82dc777f9374839e7a50cec8d8defb2f8d04c674d7ae1020c464805efbf"
},
"gates/ordinary-focused-ee50090-1.result.json": {
"bytes": 4546,
"sha256": "59e66046fd8c9742a5d382f89b4843aadda4469632fedd70118178d7f5c4bf37"
},
"gates/ordinary-full-ee50090-1.inputs.json": {
"bytes": 102544,
"sha256": "fd3bb5cb81341352f781587b747c6272287e71570491b6e916ce71370a1d89d6"
},
"gates/ordinary-full-ee50090-1.log": {
"bytes": 38279,
"sha256": "d2203c5ca80ad304aadabe623e6a088fb4261f3f59d077fee24b46692417597c"
},
"gates/ordinary-full-ee50090-1.result.json": {
"bytes": 33238,
"sha256": "61ec0aa942f1cc527b3947b0b72ad83ac697058a03cc9137f62243477105dcf9"
},
"gates/ordinary-list-147b247-1.inputs.json": {
"bytes": 102544,
"sha256": "4ecaa87a87f12fe818a61b29fdf8363b7c0b159da1d759c652f809c841214423"
},
"gates/ordinary-list-147b247-1.log": {
"bytes": 25122,
"sha256": "a591a26f8abbe972718aaea302d73eb490776a60d9ab7ff4ffc78f3cdf5a1ef5"
},
"gates/ordinary-list-147b247-1.result.json": {
"bytes": 27222,
"sha256": "d0921f4e0133fa899ec8abc5489ab29b07e1a6c114f39feec394e2c5aa58df8d"
},
"gates/ordinary-list-ee50090-1.inputs.json": {
"bytes": 102544,
"sha256": "fd3bb5cb81341352f781587b747c6272287e71570491b6e916ce71370a1d89d6"
},
"gates/ordinary-list-ee50090-1.log": {
"bytes": 25017,
"sha256": "7b53e4dc83a29b26c4d6419b01e0a66e4b2592bbee947f85e6cae8cbbd692325"
},
"gates/ordinary-list-ee50090-1.result.json": {
"bytes": 27208,
"sha256": "9c966f748893e4275bf36f6036036fd9199e3f5c05228c9e4e0a9bb97bebdf53"
},
"notes/prior-toolchain.txt": {
"bytes": 536,
"sha256": "1f101518dd1f90bc2cba8d26570a762832aba6debebbbe6aa50f97a944590610"
},
"reviews/ORDINARY-FIXTURE-REPAIR-READBACK.json": {
"bytes": 391,
"sha256": "25e2c25aa3af48dbe3778fac9cc6ddfddcc9088df17daa8509d19cbb702abb32"
},
"reviews/ORDINARY-ORACLE.md": {
"bytes": 18873,
"sha256": "fc746e623fd6cef2a9952680233e1738b0be16ef49e32a7bd83832e1d5b2667b"
},
"reviews/ORDINARY-RUNTIME-READBACK.json": {
"bytes": 7249,
"sha256": "2a9d234a22299dd97698c8f555fc8a1d3cc2b9a5d1f426ba8df7b02e54cfe03d"
},
"reviews/ORDINARY-RUNTIME-REVIEW.md": {
"bytes": 12748,
"sha256": "4b39e3123b4350254d1fd2f7bf4404761f7f96c728daebf157c439fed882c429"
},
"reviews/ORDINARY-SOURCE-REVIEW.md": {
"bytes": 12148,
"sha256": "3febf3310593ff49433ec27e403fb8fbd83ded5e6cae941ee4a61373858ddd74"
},
"reviews/check_ordinary_fixture_repair.py": {
"bytes": 2112,
"sha256": "ff70ee2c5f125d751fb932070f867e8d6d93c8c60ff86f42e9100b88fb7d2095"
},
"reviews/inspect_ordinary_runtime.py": {
"bytes": 8878,
"sha256": "241abca33737692d6cf7a468c06c2ef5bf731110c488df39348b302149eb7ded"
},
"reviews/ordinary-category-parent-readback.txt": {
"bytes": 2684,
"sha256": "e6ce30e7f0b55b0bdb1f0b040ee4d683d0eb21d37474d5d4ddf4d1e8a72bc1fd"
},
"reviews/ordinary-oracle-parent-readback.json": {
"bytes": 503,
"sha256": "a39fcd9c883a3a3a73e6343734fae22511a144dd1983ea333d02273bd72b950c"
},
"reviews/ordinary_category_bytes.ps1": {
"bytes": 3549,
"sha256": "943132d53ae12af1cc9569ac1d2a5148a08bf25fc236dc2d93e97171b9bfae72"
},
"reviews/ordinary_oracle_bytes.ps1": {
"bytes": 3389,
"sha256": "fae548101b7d7d193e0cddcf257fa8c29599280a2979fcc00469189bb85d04c8"
}
}
}