7.3 KiB
Stable fallback ranking attribution — source-only handoff
Root-owned issue16 experiment; no production policy selection. New isolated worktree C:/Users/User/Documents/Git/ARCADIA-Studio/.local/resize-port-stable-ranking-20260912, branch codex/resize-port-stable-ranking-956atf-20260912, based on preserved falsifier commit a95db10ce73d639f59eb1ec1153de26f4967881c.
Commit: 6203b5c4c0cc8bd736196aa4744dccfc0e139a2a, Isolate stable per-port fallback ranking attribution. Committed worktree clean. rustfmt --edition 2024 and staged diff whitespace checks passed. No Cargo/compiler/native execution; no compiler lease held. Root tracked inputs and both prior experimental worktrees were untouched.
Exactly what changed
A fourth, explicitly experimental mode, CapacityAwareStableRanking, uses the existing capacity assignment algorithm but ranks remaining fallback sides per port identity. Existing Current, SameSidesAdaptSpacing and CapacityAware retain their original branches and default remains Current. The original CapacityAware calls the original count-based ranking with no identity argument. No node minima, capacities, peer-facing or semantic preference, midpoint clearance, manual override, position allocator, routing, schema or public user setting was changed.
This is deliberately stable-ranking attribution only. It does not implement clear intervals, repair, all-visible midpoint clearance or an extracted router obstacle kernel.
Ranking is reproducible and specified in projection/port_capacity_experiment.rs: interpret UUID as u128; XOR low64 with high64 rotated left17; XOR with wrapping (side_index+1)×0x9e3779b97f4a7c15; apply the SplitMix64 finalizer using shifts30/27/31 and multipliers 0xbf58476d1ce4e5b9, 0x94d049bb133111eb. Largest score wins, exact-score ties use Left/Right/Top/Bottom index order. The existing clear preferred side and then clear semantic side still precede fallbacks. Rankings use no runtime hash, side occupancy, overflow ordinal, label or alias. Matching still uses capacity counts and stable ID traversal; therefore a general low-churn guarantee is not asserted.
New evaluators, all unrun
The original two a95 falsifiers and their three-policy loops are preserved. Two tests are appended to experimental_port_policy_falsifiers.rs:
stable_fallback_ranking_bounds_threshold_churn_across_three_identity_sets_and_reverse:20 ports, original CapacityAware versus the new mode, three fixed UUID sets, five frames at heights259.9→260→260.1→260→259.9. The first identity set is the executed original. Sets1/2 are deterministic, declared arithmetic constructions in distinct UUID prefixes using odd multipliers and a fixed rotation; they are not random draws or chosen after observing results.Command::Reidentifychanges only the port identities and updates semantic references; models validate and roundtrip. Every frame routes actual exchanges and records full ports/routes/crowding. The new mode must retain nominal same-side separation and change no more than one side per adjacent frame in every identity set. Exact repeated frames must project identically after reverse movement. All measurements are gathered before the aggregate criterion assertion.stable_fallback_ranking_still_needs_real_exit_clearance_including_near_corner: runs all four modes on the executed unrelated-top-obstacle fixture, then the new unrelated actor(230,−120)/184×132near-corner fixture. Actual midpoint exits are independently clear in the latter, while the predicted first Right y18 exit is blocked. An independent five-position clear witness at y24.01,53.5075,83.005,112.5025,142 demonstrates approximately29.4975 spacing is geometrically possible. These witness points are never injected into the real projector/router. Actual outputs are separately measured and the new mode must have no blocked stubs or route warnings. This acceptance test is expected to fail because the position/clearance policy is intentionally unchanged.
Every measured frame preserves per-port vectors, actual route endpoints/orthogonality, independent finite-stub intersections, route warnings, total length/bends, owner bounds and same-side center separation. OA_PORT_POLICY_RECEIPTS optionally writes the same create-new canonical model, projection JSON and routing text artifacts as the a95 harness. New labels include identity set and frame index so reversed repeated heights cannot overwrite earlier evidence. The new tests create30 threshold frames and8 obstacle frames,114 artifacts when enabled; the original tests create36 more artifacts if the entire binary is run.
Predictions, not outcomes: original CapacityAware continues [12,0,0,12] in each threshold sweep; stable ranking should reduce that churn substantially, with the same≤1 acceptance threshold held across all three identity sets. If a fixed set still cascades, preserve it as a failed attribution result; do not alter the set/ranking to manufacture a pass. The near-corner case should still block actual Right stubs for the new mode. The old Top obstacle may remain blocked or happen to be avoided by a different fallback choice; an incidental clear Top result would not establish clearance logic, which is unchanged.
Next root-owned serialized gate
The new enum/allocator changes require a newly identified compiled core. Do not link these tests to the old7e25 rlib or reuse the a95 standalone helper unchanged. Use a new isolated target beneath this worktree, jobs1, locked dependencies and root absolute toolchain environment after root grants the lease. Preserve the old stamped core artifacts and receipts.
Suggested attribution commands:
cargo test --locked --jobs 1 -p oa-core --test experimental_port_policy_falsifiers stable_fallback_ranking -- --nocapture --test-threads=1
cargo test --locked --jobs 1 -p oa-core --test experimental_port_policy -- --nocapture --test-threads=1
cargo test --locked --jobs 1 -p oa-core --lib capacity_experiment::tests -- --nocapture --test-threads=1
The first command must select exactly the two new tests and is expected to return a test failure for real-exit clearance. Preserve its complete log and execute the original two falsifiers separately or the full four-test binary when checking unchanged historical outcomes; do not skip the remaining gates merely because the planned clearance criterion fails. The eight historical policy comparisons and three old allocator tests should pass. Existing port-anchor tests remain a useful additional gate when root batches the affected core checks.
Exact committed file hashes
| Path relative to new worktree | SHA-256 |
|---|---|
crates/oa-core/src/projection.rs |
5db6aebe98aaec0c8990dec1e4cb8897b63a35954c75510a60fabb992d90fe5b |
crates/oa-core/src/projection/port_layout.rs |
653f345c09db576c8b859bd6797739beec82216204706eb49b2427b3b7a7d0a9 |
crates/oa-core/src/projection/port_capacity_experiment.rs |
9d0fc16092fcc446e29110cb838969b134066c61cdeb50f5242fea8df32df7a3 |
crates/oa-core/tests/experimental_port_policy_falsifiers.rs |
a70368362c2e1d64c89afa78b0ae0bd3b7c19b88709ee34e0e383558787f160d |
No execution result or production readiness claim is made by this source handoff. The interval/repair comparison remains in resize-port-policy-revision-design-20260912.md for fresh critique after this attribution experiment.