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

12 KiB

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:

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.