14 KiB
Next integration preflight against 865483b
Codex-ytr83r /root/wsl_startup_review, 2026-09-11. Private read-only planning; production baseline is 865483b4c66361a01fe0d9e731859220bafb4136 on codex/release1-ytr83r. Root's current packaged native acceptance remains pending. No integration, build, compiler, GUI, WSL, Git mutation, or Gitea write occurred in this task.
Recommendation: retain the current preview checkpoint. Leave navigation pending its four observed native corrections; prepare canvas only as a dedicated chooser/parent-focus + camera + B4/header + child-work union. Neither peer branch is a safe whole-file replacement for our production source. Issue 3 allocation drag is a separate unpublished implementation, not part of the accepted canvas source.
Published source and actual readiness
| Contribution | Exact published source | Evidence and remaining limit |
|---|---|---|
| Canvas/palette, peer 956atf | a31b40d0f8551ed87c8cd66250b9afb4809b3a79, branch codex/release1-956atf |
Issue 2 comment 475: final 729 passed, no failed/ignored/filtered; strict desktop all-target Clippy passed at 18:38:52 UTC, 518 inputs unchanged. This supersedes the older report's failed obsolete-variant Clippy result. No final matching native acceptance was published in the inspected evidence; our B4 renderer was outside that peer union. |
| Definition/References/Back, peer 9e8r6t | 36db9356cce3c7614ae37eec9fe17678ca210afe; evidence/build tip 8e00d3ce4f71eb8d6d1256ab283819c88c0fe803, branch codex/release1-9e8r6t |
Earlier full desktop 737 passed + 1 ignored predates final replay/Escape changes. Final source had focused 181 passed + 1 ignored and strict desktop Clippy, not a repeated full 737. Matching GUI SHA256 DF7126B8FC14C90985C2A0C55A640990F990E487D95A33F194AA7238754CEABD, 113,197,056 bytes. Native work then found four unresolved defects. |
| Allocation drag, issue 3 | No implementation commit published in inspected issue/branch evidence | Comment 472: private planner review found no remainder; three additional tests were being added, unexecuted. Private App/diagram candidate is outside the canvas freeze. Contract is published at 88c17a448fcecc9cf9cfb108d0f4315f925d4851; this does not establish compiled/native gesture acceptance. |
Navigation comment 479 established useful native F12/References/Back, dirty-draft choice, source Undo, Find focus suppression and minimum-window editing, but also editor vertical movement when diagnostics clear/refresh and an empty 300 px pane after Close then Back. Latest comment 482, 19:03:17 UTC adds Find-only requiring two Escapes and Alt+Space → Escape → neutral header click inserting a delayed space at the old caret. These corrections were still unpublished. The latter defect appeared only after the settled sequence; immediate screenshots were misleading. Visible Save All followed by the complete Project/ID and four reachable/four physical-file oracle passed after edits were restored, which does not clear these interaction defects. Its initial 52-payload archive was reported, not independently replayed here.
Pinned source reports: canvas gate, navigation integrated evaluation. Earlier component counts, focused runs and full runs overlap and must not be added. The 100-module/10,000-use performance result measures worker capture/query, not GUI latency or model validity. Initial core 445 + 1 ignored preceded the corrected Unicode fixtures; those had a separate 12-test validation.
Exact source boundaries
Canvas's 20 changed crate paths below are the exact complete-tree delta 638d06c4e33a1f54203b234d0b49c3ecf551d27d → a31b40d0.... Intermediate implementation/corrections are 6969c825, 06ec9621, ff017548, 82fd0acf, abffa4b3, 88c17a44, then a31b40d0. Older candidate branch tip ca19ad27 is superseded.
crates/oa-desktop/src/app.rscrates/oa-desktop/src/app/process_canvas.rscrates/oa-desktop/src/app/reference_authoring.rscrates/oa-desktop/src/behavior.rscrates/oa-desktop/src/behavior/canvas_workspace.rscrates/oa-desktop/src/behavior/canvas_workspace/control.rscrates/oa-desktop/src/behavior/canvas_workspace/focus.rscrates/oa-desktop/src/behavior/canvas_workspace/tests.rscrates/oa-desktop/src/behavior/canvas_workspace/viewport.rscrates/oa-desktop/src/behavior/contextual_source_tests.rscrates/oa-desktop/src/behavior/scenario.rscrates/oa-desktop/src/behavior/scenario/workspace.rscrates/oa-desktop/src/behavior/scenario/workspace/tests.rscrates/oa-desktop/src/behavior/topology.rscrates/oa-desktop/src/behavior/topology/contextual.rscrates/oa-desktop/src/behavior/topology/direct.rscrates/oa-desktop/src/behavior/topology/direct_tests.rscrates/oa-desktop/src/behavior/topology/layout_tests.rscrates/oa-desktop/src/behavior/topology/view.rscrates/oa-desktop/src/guide.rs
This delta is not self-contained on 865483b. Its base already contains reference chooser, form-session and parent-focus plumbing. Local readback confirms these four entrypoints absent: app/reference_authoring.rs, behavior/form_session.rs, behavior/scenario/focus.rs, forms/reference_chooser.rs. The prerequisite closure also spans chooser adapter/trigger/focus/widget/tests; reference-authoring tests/mounted tests; forms/data_fields; scenario workspace; semantic-review row/view/batch interfaces and tests; boxed workflow events; App review-navigation bindings. Canvas's reference overlay and keyboard ownership call those APIs directly. This is a concrete dependency family, not a claim that a minimal cherry-pick/apply closure has been validated.
Do not wholesale import the base: it also includes unrelated analysis_numeric/core Cargo/lock changes. More seriously, peer behavior/creation.rs and behavior/source_draft.rs retain old pre-b2c blobs (6940c7b9..., 7c5dced5...), whereas our corrected b2c versions are d30281a4..., a8a39041.... Replacing them would lose staged-owner/minimum-source-card corrections. Merge any needed chooser/session changes into our corrected files.
Navigation has these 18 exact crate paths relative to contextual b2c3e54001fc19a05423bcd5808ceea78d13ff59:
crates/oa-core/src/language.rscrates/oa-core/src/language_outline_tests.rscrates/oa-desktop/src/app.rscrates/oa-desktop/src/app/hosted.rscrates/oa-desktop/src/app/source_symbols.rscrates/oa-desktop/src/app/source_symbols/tests.rscrates/oa-desktop/src/guide.rscrates/oa-desktop/src/source_navigation.rscrates/oa-desktop/src/source_navigation/controller.rscrates/oa-desktop/src/source_navigation/interaction.rscrates/oa-desktop/src/source_navigation/interaction/tests.rscrates/oa-desktop/src/source_navigation/query.rscrates/oa-desktop/src/source_navigation/query_tests.rscrates/oa-desktop/src/source_navigation/symbols.rscrates/oa-desktop/src/source_workspace.rscrates/oa-desktop/src/tests.rscrates/oa-desktop/src/views.rscrates/oa-desktop/src/views/source_symbols.rs
Also preserve its language guide source/generated HTML pair, docs/language.rst and docs/language.html. The intermediate contextual publication fb24def2... has the same crate tree as b2c (b77bddcf03b1869add8da06d14f94892b69a6b21). Navigation source and evidence tip share crate tree 2638806948b29322f251777e6bb3d8f3f178ea1d. Root Cargo.toml/Cargo.lock remain unchanged there; this nevertheless changes core language implementation, not just desktop. No inherited evidence archive or unrelated live record needs wholesale copying.
Concrete merge risks
| Our retained file/behavior | Required union |
|---|---|
app.rs child-work correction |
Both peer add_element bodies are identical to each other and still pre-fix: neither transfers leaf responsibility relations nor validates the placement candidate with execute_batch. Keep our allocation/role target transfer preserving relation IDs, unambiguous later-child inheritance and atomic candidate execution. Merge other App hunks around it. |
tests.rs |
Preserve all three child_work regressions. Navigation edits older source-find/reveal tests; canvas's 20-path delta does not touch this file. Whole peer-file replacement would drop our child-work tests. |
behavior.rs |
Canvas adds camera_pan and pan/scale drawing. Our runtime lifecycle rendering and bounded header text are absent from that peer file. Keep both and adapt clip rectangle plus clipped child-text transform to pan AND scale; clipped frames reset their transform. |
behavior/scenario_lifecycle/render_tests.rs and renderer |
Peer tree has no B4 render_tests and only its earlier projection module. Preserve our markers/selection/visible lifetimes. Create-label clipped child frames and hit coordinates need the same pan/scale mapping as the scene; scale-only tests cannot prove this union. |
Navigation itself does not change behavior.rs in its 18-path delta, so copying its older branch version would introduce needless B4 loss. Its App raw-input observer must compose with canvas/reference/scenario focus roots: observe raw events before nested widget/overlay capture while preserving current owner/revision/mount guards and chooser priority. A winner-takes-all App::view replacement loses one contribution. Captured Escape, modal ownership, source editor focus and canvas shortcuts are the highest-risk shared event routes. Preserve our lifecycle/contextual guide text when merging the independent canvas/navigation help additions.
Issue 3's later semantic drag must remain separate from transient camera movement. The published contract distinguishes layout-only moves with the same effective performer from explicit semantic incoming/reassign/outgoing drops with clean press/release admission and complete candidate validation. Mixed convergence and unsupported role exits refuse. Its private implementation cannot be inferred from branch names or filesystem paths.
Next bounded step and genuinely new checks
Root has chosen to publish current evidence and defer integration. At the next source checkpoint, first pin the peer's ready canvas/chooser prerequisite closure and perform a dedicated hunk-level B4/header/child-work union, excluding analysis_numeric and preserving b2c form fixes. Obtain an independently reviewed diff before building. Wait for peer 9e8r6t's published four native fixes and matching results before adding navigation; compose the App observer/focus routes in that separate step. Do not import private issue 3 work or repeat its unexecuted-test claims as passes.
New union checks have concrete purposes:
- Run the retained child-work three tests, contextual-source and parent-focus/chooser tests to detect lost responsibility/source/session behavior; retain actual mounted App roots, overlay handling, message draining before returned Tasks, and stale-task assertions.
- Add/run pan-aware B4 and header pixel/hit checks at nonzero pan and relevant zoom/minimum-window sizes, including Create capsule labels and clipped viewport edges. Test pan + scale on both clip and child text, not only scene geometry.
- Run actual mounted canvas Fit/Tab/F6/palette/dirty/modal ownership cases; the peer's forced 1100×420 overflow case is not itself native 1100×700 acceptance.
- For navigation union, exercise raw editor/Find/results/chooser/modal Escape and delayed Alt+Space input after the peer correction; dirty/stale query/reveal and explicit candidate selection must leave source/model history coherent.
- A frozen combined desktop needs its own full all-target tests, strict desktop Clippy and matching packaged native workflow evidence. Prior 707/729/737 counts prove their recorded inputs only. Adding language.rs also requires the relevant core language/Unicode and core/server/CLI gates; do not relabel immutable older server ABA87A5F as a newly built navigation server.
Evidence limits
This review used Gitea issue 3 through comment 472, issue 2 through 475, issue 6 through 482, published branch/commit metadata, exact blob contents and complete recursive crates subtrees (not truncated repository-wide inventories), local read-only Git/source comparisons, and relevant wiki pages (BehaviorCanvasPhase120260911, ScenarioFocus20260911, Authoring20260911). Older wiki execution-pending wording is historical; later issue results are scoped above. Peer execution is attributed, not independently repeated. No apply-check or compiler validation of a merged candidate was performed; current peer objects were not fetched into this checkout. Different filesystem views are established by peer coordination comments 473/477; matching Windows paths do not imply shared binaries, profiles or private working trees.