Files
ARCADIA-Studio/harness/release-text-navigation-outline-integration-20260911.md
T
sorokin.oleg.edu 36db9356cc Add bounded definition and reference navigation for current source drafts
Preserve loaded draft bytes and model history, reject stale workspace and input events, and keep captured Escape under modal priority. Verified 181 focused Windows tests and strict desktop Clippy on exact inputs4; earlier full737 scope and component/native preparation evidence are archived separately. Native navigation acceptance remains pending.
2026-09-11 11:23:20 -07:00

70 lines
12 KiB
Markdown

# Core outline integration — 2026-09-11
Codex-9e8r6t `/root/linux_readiness`, acting as the authorized Windows core integrator. Linux remains fully paused. Root released the source freeze and the sole compiler lease after the packaging metadata operation was terminal at 16:15:39 UTC. No query/App edits, native actions or Git/index operations belong to this task.
Outcome: production outline implementation passed full core (445 passed, zero failed, one ignored) and strict all-target core Clippy. Corrected private query passed 20/20 with warnings denied at compilation. After fixing a preparation encoding defect in four new outline-test fixture lines, the intended Unicode fixtures passed all 12 focused tests and applicable strict test Clippy. All owned executions are terminal and the compiler lease is released. Earlier broader evidence retains its exact original scope; the corrected fixture checks are separate below.
The private `outline-seam-v2.patch` SHA256 `2B37D404FD60BC871554CEC2FA4493063F3CC0134D13E7EA90DD1361A394EEC1` was applied with unified-diff context/hunk checks against production `language.rs` SHA256 `638F08A42E9CF4996B5D07F69B4D6F517A518369F3604D25BE1006E40E080765`. Later explicit-UTF-8 reconstruction confirmed production `language.rs` is byte-exact to the reviewed patch; its content is ASCII and was unaffected by the test-fixture encoding defect. The pre-gate base remains `b2c3e54001fc19a05423bcd5808ceea78d13ff59`. Local HEAD subsequently advanced externally to instruction-only `b70bf1df4575d163af41ef9a4b061a438758f04f`; the new AGENTS and root Gitea handoff 408 were read. That instruction synchronization does not relabel or invalidate the earlier source provenance. Private proposals and independent v1/v2 reviews remain unchanged.
Only `crates/oa-core/src/language.rs` and new `language_outline_tests.rs` were changed. The bounded outline borrows original source bytes, shares the existing lexer/tolerant declaration walk, checks source/token/declaration admission, and returns exact kind/alias/quoted-header roles without model parsing, lint or I/O. It exposes full-scan lexical/brace facts, not valid-model or complete-project claims. Both parsers, outline and the future query adapter share the existing decoded UUID shape predicate, with UUID parsing still required.
Compatibility corrections are intentional: `analyze` now returns no authored identity for compact/braced/URN header UUID spellings already rejected by the parser, while retaining their quoted literal spans in the outline. Uppercase and JSON-escaped valid UUIDs remain accepted with original raw bytes. Incomplete-header declaration extents now include consumed name/ID text at EOF. The ordinary parsers retain their existing admission/error behavior.
## Inputs and commands
Standalone `rustfmt.exe --edition 2024 --config skip_children=true` formatted only the two assigned files; the same invocation with `--check` passed. Source hashes after formatting:
- `language.rs`: `34CBB144A111E6F0DDADFCA7D40636A8E3323FE65EA8920FD2402F0352B41F57`.
- Corrected `language_outline_tests.rs`: `4C79A01E8AEA243DD9EF66CE71B9FAE263D0E79C319A46C51223679897E8B9DF`. Historical pre-correction tests were `F64BD89959554CD5842609C031D442F3D9E27B73A216DD936715284C9FE9FB97` and are preserved separately.
Private `.local/text-navigation-integration-20260911/inputs.json` binds 322 preserved core source, workspace manifest/lock, example and fixture files (4,113,327 bytes), SHA256 `e0dd3e617c1c365e1d315b498ce032f375b734341d2eb87d6dc89867b636196e`. Gates execute against the main working tree under the core edit hold; preserved raw copies allow post-run input equality checks. This is not an isolated-checkout execution claim.
An include-input audit during full-core compilation found `docs/language.rst` is also embedded by existing tests. It is preserved separately in `inputs-supplement.json`: 130,753 bytes, SHA256 `ac6b1d982c55f246de2f3c844b24b874599a3c20cfbd7ed22efe4561ac622b83`, exactly equal to the base Git blob. This was captured after the focused outline gate and is not retroactively included in the original pre-gate manifest.
The existing `.local/toolchain/env.ps1` selects the local stable Windows gnullvm toolchain, LLVM-MinGW linker and `.local/target-gnullvm`. The private `run-gates.ps1` sets `CARGO_BUILD_JOBS=1`, refuses receipt overwrites, records UTC start/end, actual exit code, exact arguments and combined stdout/stderr for each sequential gate:
```text
cargo test --locked --offline -p oa-core --lib language::outline_tests:: -- --test-threads=1
cargo test --locked --offline -p oa-core -- --test-threads=1
cargo clippy --locked --offline -p oa-core --all-targets -- -D warnings
```
Full core includes existing tokenize/analyze/parser, nested declarations, source bundles, identities, edits and language-limit regressions. Any failure remains a separate immutable receipt; successful results will be recorded only after terminal completion. Root owns query/App integration, workspace snapshot/provenance policy, release reporting, staging and commits.
Terminal test receipts:
| Gate | Result | Terminal UTC | Log SHA256 |
| --- | --- | --- | --- |
| outline1 | exit 0; 12 passed; original mojibake fixtures | 16:23:09 | `2582A9E5894D4CAEE7D092E6B0AA15BD02F49261A6BEEBAACA91D94AFFAE9230` |
| core1 | exit 0; 445 passed, 0 failed, 1 ignored; original fixture file | 16:48:34 | `4556049FBFC4CCECC118CAD85AFB2B1F92AF10BFD787ED416EC2AA4389B7BF24` |
| clippy1 | exit 0; all-target core; original fixture file | 16:55:38 | `5D3C946198A0870C7245B8EBD8EECEF6BFF21765F6D98A72221DD1DDED3E233E` |
| outline2 | exit 0; corrected UTF-8 fixtures, 12 passed | 17:18:18 | `0E045F4287675661FDE873950BCE2387584B377EE747B663FA41EC7FFACD1BC7` |
| clippy-tests2 | exit 0; corrected fixtures, core lib/tests, warnings denied | 17:18:37 | `78C52948B2DD53ACA55947CCD1039FEC7E054F0D8E61DE56B9BD54960E883F61` |
The full run compiled in 21m33s and contains 41 test summary sections (54 library tests, 39 integration binaries, zero doctests); summed reported test durations are 187.06 seconds. The intentionally ignored `r6_data::inheritance_chain_validation_scaling_probe` was not run. Full command wall time, including compilation and process overhead, is recorded by `core1-status.json` from 16:23:10 to 16:48:34 UTC. No failing compile/test attempt or source correction occurred in these two gates.
## Private query execution and exact binding
One `cargo build --locked --offline -p oa-core --lib --message-format=json` passed at 16:56:23 UTC (3.41 seconds reported), producing exact artifact messages. It was not repeated after the helper failure. `query-bindings.json` SHA256 `158F1C1797ABB634F74B2CBC8F09656871D999BFB6AAA9220FEACB443BC48889` preserves these messages, candidate hashes, unique byte-equality match and corresponding fingerprint files. No artifact was selected by recency.
The exact externs were `.local/target-gnullvm/debug/liboa_core.rlib` (SHA256 `43C8673DDBAE26D32D0557C7DB5E9F2AABA0B41F19AD1488A58461FE86BD5BDD`, byte-identical to the unique `deps/liboa_core-781c6973417b169c.rlib`) and `deps/libserde_json-b48005beba7e4267.rlib` (SHA256 `441E8532A8AB31BB414A7FA1357354C27A692B3818CD9A219CF2D6DE32608589`). Fingerprints and hashes were rechecked before the successful query compile. `compiler1` records Rust 1.98.1 / commit `48a229ceaefd4985c50990b14116b6d856af0985`, host Windows gnullvm, LLVM 22.1.8.
The authoritative private baseline `CF82E34544CE508E446787B6335AEFE97E146EA5E7CCA0A9788DEB9097F8F7BB` plus patch `F38B2D5BAB3CA6AB66B8BD865F3B01562299FB961C48C8172D39E1D35D90E329` was reconstructed using explicit UTF-8 and the agreed proportional scratch-storage wording. The correctly decoded candidate `86666C8390F0C63EC75B045366494A80D0ECDE82924F2BAC312AFD01675AEE56` then required three `map_or(&[][..], Vec::as_slice)` defaults instead of `map_or(&[], Vec::as_slice)` to resolve actual Rust E0271 inference errors. There is no API change.
Final private `source_symbols-v2-utf8-typed.rs` SHA256 is `FE37CD55B95C892C05AEC6C37A113154CAB7646DCFC333646FA8218345919751`. `query-compile3` passed with `rustc --edition=2024 --test -Dwarnings -C linker=clang.exe`, the two explicit externs and the common `debug/deps` dependency directory. `query-tests3` passed 20/20, zero failures/ignored, in 0.05 seconds at 17:16:47 UTC. Its stdout SHA256 is `FAEC6EB5A3BE074A755DFB0CE0BF7B34D2358FF543E0999EE51A27D7A8BCABC9`. Test executable SHA256 is `A20FD5147CC1953A13491050B289FAFC4049FBCD88D41B1BAC5D379FED2DAD63` (8,076,800 bytes). Exact commands, timestamps and exits are in immutable `query-compile3-status.json` / `query-tests3-status.json`; helper is `run-query-typed.ps1`. Root and adapter author received the corrected candidate path/hash. No query/App production file was changed by this task.
## Preserved failures and scoped correction
1. `run-query.ps1` failed before query compilation because it assumed Cargo returned a hash-suffixed dependency filename; core instead reports top-level `liboa_core.rlib`. `query-binding1-failure.json` preserves the exception and original helper hash. The resumed helper uses the recorded Cargo output plus a unique SHA256 match and direct byte equality to locate its fingerprint.
2. `query-compile1` failed on malformed character literals because my Python reconstruction used host-default cp1252 rather than explicit UTF-8. Failed candidate `source_symbols-v2.rs` SHA256 `8F3F20A7E72C870CFD1AD46F0AA8B8998FFC1EBF3357911957ED4995758E7520`, initial reconstruction receipt, and compiler stderr SHA256 `82B4BAEFDBB06C4B744CB750268C02DD0D540C0AE77DBD36359403B03DFBF5D0` remain intact. The original `query-source-reconstruction.json` is historical and superseded by `utf8-reconstruction-correction.json`; its earlier “exact patched” claim was incorrect for UTF-8 inputs.
3. The same preparation error affected four Unicode string fixtures in the new outline test file. Production `language.rs` was independently reconstructed with explicit UTF-8 from its original Git blob and verified byte-identical, so the implementation and its broader existing regression evidence remain unchanged. The failed fixture file is preserved as `language_outline_tests-pre-encoding-fix.rs`; corrected focused tests and applicable test Clippy are repeated below, without rerunning full core.
4. Correctly decoded `query-compile2` exposed three E0271 empty-default slice inference errors at candidate lines 543/547/551. Stderr SHA256 `B0206BB2A0BE17E6E6C27934566D145425BCF99CB3CC22F7F15143A5733D44FC` and the uncorrected UTF-8 candidate remain preserved. The three explicit slice coercions produced successful compile3/tests3.
`literal-byte-readback.json` independently compares explicit UTF-8 byte patterns with original raw bytes, including all four original `find('救')` uses; it does not reuse a locale decoder. It also preserves two verifier-only mistakes (one incorrect expected comment character and an assumed count of three instead of four); correcting those expectations changed no source. This proves the intended literal bytes after the encoding correction, not retrospective execution of the earlier wrong fixtures.
The corrected affected gates were `cargo test --locked --offline -p oa-core --lib language::outline_tests:: -- --test-threads=1` (`outline2`) and `cargo clippy --locked --offline -p oa-core --lib --tests -- -D warnings` (`clippy-tests2`), using one compiler job. Both passed: outline2 compiled in 34.77 seconds and ran its 12 tests in 0.11 seconds; applicable strict Clippy completed in 18.22 seconds. Full core was not repeated because production code and the broader existing tests were unchanged.
Final `final-readback.json` verifies 321 original inputs unchanged, the sole expected fixture correction to `4C79A01E…`, and the documentation supplement unchanged. Explicit final two-file formatting and scoped `git diff --check` passed. Core production remained `34CBB144…` throughout. Root owns final integration, source-navigation usability acceptance and publication; this report does not establish App navigation behavior. Shared live coordination is in Gitea; no local task ledger was added or updated.
For root's durable evidence integration, `.local/text-navigation-integration-20260911/evidence-records.zip` preserves 53 explicitly listed small payloads (374,285 uncompressed bytes), including failed/successful inputs, helpers, raw compiler/test logs, statuses and exact fingerprints. Archive size is 100,859 bytes; SHA256 `7E17DAA1F718344CC17E5A8090FBC1AB16CF3158634EAEB0452549F4D2549CA5`. Its manifest SHA256 is `CD55F663F126460E3EF857B55A24595349E28771537D94CFD4D36036B6B3F671`. Exact entry-set, byte-count and SHA256 readback passed. Executables and duplicate full input copies are excluded; both remain in the private evidence directory.