Compare commits

...
386 changed files with 128851 additions and 0 deletions
+18
View File
@@ -1117,6 +1117,14 @@ fn in_machine(p: &Project, id: Id, machine: Id) -> bool {
false
}
#[cfg(test)]
#[path = "../../../harness/experiments/behavior-layout-scene-20260912/mod.rs"]
mod behavior_layout_scene_experiment;
#[cfg(test)]
#[path = "../../../harness/experiments/behavior-anchor-plan-20260912/mod.rs"]
mod behavior_anchor_plan_experiment;
struct BoxItem {
id: Id,
rect: Rectangle,
@@ -1328,6 +1336,8 @@ impl Scene {
let mut y = if scenario { 148. } else { 120. };
scene.occurrences(p, owner, scenario, &lane_x, &mut y, 0);
scene.size.height = (y + 45.).max(210.);
#[cfg(test)]
behavior_anchor_plan_experiment::scene_extent(&mut scene);
if scenario {
scene.lifecycle = scenario_lifecycle::render::Rendering::new(
p,
@@ -1435,6 +1445,10 @@ impl Scene {
// the preceding action/state/reference box, before recording rows.
*y += 16.;
}
#[cfg(test)]
behavior_layout_scene_experiment::resolve_row_anchor(*id, y);
#[cfg(test)]
behavior_anchor_plan_experiment::row_anchor(*id, y);
if ordered {
let slot = scenario::Slot {
parent: owner,
@@ -1459,6 +1473,8 @@ impl Scene {
(*y - top).max(95.),
),
);
#[cfg(test)]
let rect = behavior_anchor_plan_experiment::frame_bounds(*id, rect);
self.boxes.insert(
0,
BoxItem {
@@ -1643,6 +1659,8 @@ impl Scene {
}
if ordered {
self.sequence_bounds.insert(owner, (sequence_top, *y - 42.));
#[cfg(test)]
behavior_anchor_plan_experiment::scope_end(owner, y, &mut self.sequence_bounds);
let slot = scenario::Slot {
parent: owner,
before: None,
@@ -0,0 +1 @@
wiring.patch -text -whitespace
@@ -0,0 +1,95 @@
# Complete anchor plan into actual Scene — pending execution
Prepared 2026-09-12 in isolated branch `codex/behavior-anchor-plan-ytr83r-20260912`, base `66a1f1690f778c8814bfefff7f46fe7f6bbe520e`. Parent owns compilation and publication. **Not compiled or executed.** Only test-only additions to `crates/oa-desktop/src/behavior.rs` and this new directory were authored. The existing floor experiment and its fixtures are unchanged. All new production-file statements are guarded by `cfg(test)`; normal production rendering is unchanged.
## Bounded question
Can a complete ephemeral anchor plan drive the actual Scene at exact requested y coordinates without the old running-cursor floor, preserve unspecified anchors and the entire Document, and maintain covered extents and real lifecycle derivation? This isolates the integration seam from the unresolved choice of a product movement policy.
The old floor candidate imposed existing seed increments on every requested row. This candidate seeds missing anchors from the actual baseline Scene, then replaces explicitly requested coordinates exactly. It does not impose sequence-order constraints or overlap spacing. Source-order crossings are returned as diagnostic data, not silently clamped or converted into semantic Reorder. This is a mechanical projection experiment, not evidence that crossed vertical ordering is acceptable UX.
`Candidate` is an external map keyed by occurrence UUID. `Plan` is a complete resolved input for the currently visible Scene, including operand headers missing from the ordinary rows map. It contains row roles, derived message send/receive y values, frame bounds, sequence extents and canvas height. It is not a model, parser or REST payload.
## Actual code boundary and wiring
`wiring.patch` records the exact production-file delta from the base commit. The five new cfg(test) integration points are:
1. Include this module as a private child of `behavior`, next to the unchanged floor module.
2. Immediately after the old floor hook, consume the complete plan's exact occurrence anchor, before Scene records rows and constructs the occurrence's existing geometry.
3. Before inserting an existing fragment BoxItem, use the plan's frame bounds. Existing fragment paint and label code remain in place.
4. Immediately after recording a sequence's bounds, substitute planned bounds and update the existing final insertion axis. An earlier event placed lower than the last event cannot truncate the scope merely because traversal ends earlier.
5. Before current lifecycle and activation construction, substitute the covered canvas height. Current `Rendering::new`, message alignment, activation generation and drawing remain responsible for their actual geometry.
The plan is scoped per thread, inactive by default, restored by Drop during unwinding, and has a deliberate-panic test requiring the exact sentinel payload. Other tests on other threads cannot consume its plan. The original floor hooks remain operational when their own scope is active; the new plan is otherwise absent.
Footprints are measured from the actual baseline named boxes, message polylines and label bounds, translated by requested row deltas. This avoids cloning the renderer's line or lifecycle algorithms. Empty activation bars are excluded because the real renderer derives those later. Frames conservatively preserve seed extents and can grow downward; growth adds an explicitly experimental 20px presentation margin. A move requiring upward frame growth returns `FixedFrameHeaderWouldMove`, because the candidate cannot move an unspecified painted header while retaining its FrameStart and insertion slot. Mere overlap inside the existing frame is not categorically rejected. Sequence bounds preserve seed extents and measured edge padding while expanding to cover outliers; canvas height uses the original scope-to-canvas margin. Neither these margins nor nonshrinking seed extents are adopted user requirements. This is not a general container-resize solver.
## Independently expected checks
Thirteen new test functions use the existing hand-authored fixtures through the actual parser and Document bundle loader. Numeric expectations below are independently stated rather than generated from the new planner:
| Case | Expected actual Scene result |
| --- | --- |
| Empty complete plan, both fixtures | Same rows, named boxes and marker kinds, lines and labels, scopes, slots, lifecycle, open calls and size as the unmodified baseline Scene |
| Second delivery240→200 | First148; second200; every other occurrence anchor unchanged; both second-message endpoints200; repeated exchange references retain different occurrence IDs |
| Nested action477→457 | Box top437, height70; actual fragment metadata and active header332..370 retained, header hit still resolves the fragment, before-slot290 and label unchanged; operand bounds and all other anchors unchanged |
| Nested action→300 | Proposed footprint280..350 would relocate unspecified frame top332 to260; reject with `FixedFrameHeaderWouldMove` before rendering |
| Nested action→353 / admitted380 overlap | Proposed353 gives footprint333 and operand start311, outside fragment start332; reject with `OperandScopeOutsideEnclosingInterval`. At380 the box starts360 and overlaps the fixed header while scope338..530 stays feasible; actual lifecycle diagnostics remain empty, post-fragment alive span530..845 and later self-call bars remain unchanged |
| Create243→50 or84 | Reject with `LifecycleAnchorOutsideRenderScope`; actual root lifecycle span starts85 even when insertion-scope planning expands higher. At85 the real birth marker and alive span85..427 remain present |
| Death427→380 | Create243 and call335 stay fixed; real alive span243..380; actual bar335..380; death marker/hit moves to380; unresolved-call cue remains, no Reply is invented |
| Self-call636→610 | Actual send610/receive634, using the current24 offset; reply728 unchanged; MessageSend role distinguished from the lifecycle MessageReceive role |
| Signed zero and candidate restoration | Both0 and-0 return the exact original sparse candidate; no first-edit materialization; restoring the original candidate restores Scene geometry |
| First event→1000, last remains728 | First1000/second240, SourceOrderCrossing diagnostic, source order unchanged; root scope end1026 and height1113 cover the earlier outlier rather than the traversal tail |
| Nested action→1000 | Box top980/bottom1050; enclosing frame bottom1070; actual root scope/canvas cover it; following self-call636 remains fixed and overlap is diagnosed |
| Invalid/unsupported input | Unknown anchor, nonfinite y, compound frame movement and same-scope inverted birth/death fail explicitly |
| Scoped execution | Another thread sees baseline geometry; a deliberate panic restores the baseline scope |
The primary cases compare the entire Project and original SourceBundle and require the real Document to remain clean with no Undo/Redo entry. Canonical parser roundtrip is used, but it covers only the semantic Project: layout stays external. Candidate restoration is a reversible-sidecar check, **not** a production Undo implementation. No command has been added to Document.
## Explicit limitations and falsifiers
- Crossing source-ordered events is deliberately drawable with diagnostics. That proves removal of the mechanical floor, not adoption of unrestricted vertical notation. The crossing output remains an independent product-policy falsifier.
- An expanded frame can overlap the next event. Its diagnostic preserves that evidence instead of shifting the next event implicitly. The experiment does not establish a frame/header constraint policy or all feasible layouts.
- Upward growth that would relocate an unspecified frame header is explicitly unsupported. This does not ban arbitrary overlap gaps; the numeric380 example remains admitted. Full compound/header movement policy remains unresolved.
- A proposed operand interval escaping its actual enclosing fragment/caller interval returns `OperandScopeOutsideEnclosingInterval`. The353 example would otherwise cause the real lifecycle traversal to report MissingGeometry and make the later lifetime unresolved, potentially suppressing a self-call bar despite stable row coordinates. No generic gap or sibling-order rule is added. General nested/cross-operand placement remains unproven.
- Lifecycle receive anchors must be within the actual effective Rendering scope: root85..height-20, or its recorded non-root scope with the renderer's existing empty-scope allowance. Outside coordinates are rejected before exposing a Scene whose row exists but whose marker/lifetime is missing. This bounds the inspected bridge; it does not establish general ancestor/operand ordering or cross-operand lifetime support.
- The same-scope creation-after-deletion case returns `LifetimeInversionNotSupported` before rendering. Current lifecycle intervals cannot truthfully depict that inversion without another representation policy. This is an experimental bridge limitation, not permission to reject semantically valid models or a user-approved global movement rule. Cross-operand lifecycle combinations remain unproven.
- Compound frame/operand movement, box resizing, horizontal layout, independent send/receive movement, route editing, drag transaction stamps, pointer capture, dirty-source recovery, persistence, REST and native UI are not implemented.
- Self-call send and receive roles are explicit, but the current activation engine still owns its existing row-based behavior. Peer #21's typed activation integration must consume the actual receive anchor and retain the existing lifetime clipping. These tests do not silently bless the old activation-start discrepancy.
- Scope/containment walking is deliberately straightforward and not a large-model performance implementation. There is no responsiveness claim.
- Some self-message fixture exchanges are unassigned because the current global relation model forbids self edges. The existing fixture's known incomplete-model warnings remain; tests reject semantic errors.
No storage or parser design should be adopted from this adapter. Coordinate any eventual payload with prospective #7, whose required addressing must preserve diagram/owner/occurrence identity and explicit anchor roles. Coordinate inverse resize with #16 and typed activation/lifetime union with #21 before broad UI work.
The accumulating frame, scope and lifecycle dependencies show that this is only a bridge for demonstrated feasible positions, **not an adoptable free-editing architecture**. It neither establishes unrestricted placement nor selects a semantic constraint policy. Further fundamental contradictions should become explicit falsifiers for parent replanning, not an expanding list of speculative guards in this prototype.
Parent reports [peer #21 comment716](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/21#issuecomment-716), posted2026-09-12 23:06UTC: Codex-956atf owns an isolated typed-activation/lifecycle source union. Its intended order is finalized rows/height, lifecycle construction and Create/Delete alignment, then typed Call/Reply attachment, with receiver/scope clipping, logical reply timing distinct from clipped geometry, no resurrection after Delete, and unanswered-call cues preserved. That WIP is not integrated here. Retain the explicit send/receive seam and review the future union against these fixtures; this paragraph records a coordination dependency, not verified acceptance of peer code.
## Reproduction and handoff
At the parent's chosen compiler checkpoint, use the configured Windows Rust/linker environment:
```powershell
cargo test -p oa-desktop --bin arcadia-studio --locked --offline -- behavior_layout_scene_experiment behavior_anchor_plan_experiment --list
cargo test -p oa-desktop --bin arcadia-studio --locked --offline -- behavior_layout_scene_experiment behavior_anchor_plan_experiment --nocapture
```
The listing must contain thirteen complete-anchor tests and ten existing floor/lifetime tests. The following execution must report all23 passed,0 failed,0 ignored. Both filter strings are passed to the same test binary. Preserve compile failures, parser failures, numeric mismatches and diagnostics as results. Do not claim success from a zero-test filtered run or from compiling only production targets. An intentional panic should be followed by its restoration test passing; another panic payload is a failure.
## Static review correction history
The frozen attempt1 candidate was preserved before these corrections. The [authoritative attempt1 archive](../behavior-anchor-plan-review-20260912/attempt1/manifest.json) preserves all five original files; the adjacent review report records the source-verified counterexamples. The pre-review failures are static, unexecuted findings: nested300 silently moved the frame header to260 while row332/slot290 stayed fixed, and Create50 was omitted as MissingGeometry by the actual root lifetime span starting85. The corrected candidate adds named unsupported errors and independent numeric checks rather than recording either original behavior as acceptance. Production hooks and the original floor experiment remain unchanged.
Before the third correction, parent preserved all five attempt2 files and matching hashes under `harness/experiments/behavior-anchor-plan-review-20260912/attempt2`. That static, unexecuted candidate still admitted nested353: its operand start311 preceded enclosing fragment332, causing MissingGeometry/Unresolved in the actual lifecycle source path. The third correction rejects that exact unsupported scope escape and replaces the positive overlap example with380, including actual lifecycle diagnostics, post-fragment spans and activation-bar preservation checks. The parent-owned review archive is not modified by this experiment.
Record exact compiled commit/uncommitted patch, commands and results before publication. Source hashes supplied with the handoff identify prepared bytes, not tested code. Root should publish the complete directory and exact behavior.rs delta so remote peers can reproduce it; workspace-local paths are not remote handoffs.
## Modeling intent: primary-source comparison
The [Sirius sequence user guide](https://eclipse.dev/sirius/doc/user/sequences/Sequence%20Diagrams.html#SequenceDiagramsSemantics) explicitly ties displayed event order to semantic order: moving an event across another can update the model. It separately describes horizontal lifeline movement, Create/Delete attachment and blank-space gestures. This is framework evidence; the exact Capella modifier, feedback and saved-file effects were not verified natively.
The [Sirius event-reorder specification](https://eclipse.dev/sirius/doc/specifier/sequences/Sequence%20Diagrams.html#EventReorderTool) provides separate predecessor information for start/send and finish/receive, including coupled synchronous-message movement. That supports preserving distinct endpoint roles; it does not specify a separate user-selected reorder mode.
Root inference: the user request for intuitive whole-arrow movement does not by itself require arbitrary cosmetic chronology crossing. Compare two coherent product gestures: presentation movement within semantic order plus an explicit reorder action, versus direct dragging that previews and commits a semantic reorder when crossing an event. Evaluate ordinary spacing, intentional order changes, accidental crossing, invalid call/reply/lifetime moves, cross-operand moves, discoverability, one-step Undo and exact preview/reopen behavior. A semantic reorder may change Project/source; presentation-only adjustment must retain semantic content. The current sidecar experiment tests the latter boundary and is not a universal nonmutation requirement for all future drag operations. No gesture or public schema is selected by this note.
Root formatting completed for the new Rust modules. Independent correction review found no new blocking source finding after the operand-scope repair, including non-vacuous actual lifetime/bar assertions. Compiler and runtime results remain pending. [Prepared input hashes](prepared-inputs.json) bind the current candidate, not an accepted build.
@@ -0,0 +1,448 @@
//! Experimental complete anchor input for the actual Scene, cfg(test) only.
//! No persistence schema and no replacement line/lifecycle/activation renderer.
use super::*;
use std::cell::RefCell;
mod tests;
type Candidate = BTreeMap<Id, f32>;
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
enum AnchorRole {
MessageSend,
MessageReceive,
Observation,
FrameStart,
OperandStart,
}
#[derive(Clone, Copy, Debug, PartialEq)]
struct Anchor {
y: f32,
role: AnchorRole,
}
#[derive(Clone, Copy, Debug, PartialEq)]
struct MessageAnchors {
send_y: f32,
receive_y: f32,
}
#[derive(Clone, Debug, PartialEq, Eq)]
enum Diagnostic {
SourceOrderCrossing { scope: Id, before: Id, after: Id },
FrameExtendsPastFollowingAnchor { frame: Id, following: Id },
}
#[derive(Clone, Debug, PartialEq, Eq)]
enum PlanError {
UnknownAnchor(Id),
NonFinite(Id),
CompoundMoveNotImplemented(Id),
FixedFrameHeaderWouldMove { frame: Id },
OperandScopeOutsideEnclosingInterval { operand: Id, fragment: Id },
LifecycleAnchorOutsideRenderScope { occurrence: Id, scope: Id },
LifetimeInversionNotSupported { create: Id, delete: Id },
}
#[derive(Clone, Debug)]
struct Plan {
anchors: BTreeMap<Id, Anchor>,
messages: BTreeMap<Id, MessageAnchors>,
frames: BTreeMap<Id, Rectangle>,
scopes: BTreeMap<Id, (f32, f32)>,
height: f32,
diagnostics: Vec<Diagnostic>,
}
fn occurrence(p: &Project, id: Id) -> Option<&OccurrenceBody> {
match p.elements.get(&id)?.shared()? {
SharedBody::Occurrence { body, .. } => Some(body),
_ => None,
}
}
fn role(body: &OccurrenceBody) -> AnchorRole {
match body {
OccurrenceBody::Exchange {
message_kind: MessageKind::Create | MessageKind::Delete,
..
} => AnchorRole::MessageReceive,
OccurrenceBody::Exchange { .. } => AnchorRole::MessageSend,
OccurrenceBody::Fragment { .. } => AnchorRole::FrameStart,
OccurrenceBody::Branch { .. } => AnchorRole::OperandStart,
_ => AnchorRole::Observation,
}
}
fn inside(p: &Project, id: Id, owner: Id) -> bool {
let mut current = p.elements.get(&id).and_then(|e| e.parent);
for _ in 0..p.elements.len() {
match current {
Some(parent) if parent == owner => return true,
Some(parent) => current = p.elements.get(&parent).and_then(|e| e.parent),
None => return false,
}
}
false
}
fn depth(p: &Project, id: Id) -> usize {
let mut current = p.elements.get(&id).and_then(|e| e.parent);
let mut result = 0;
while let Some(parent) = current {
result += 1;
if result > p.elements.len() {
break;
}
current = p.elements.get(&parent).and_then(|e| e.parent);
}
result
}
fn union(a: Rectangle, b: Rectangle) -> Rectangle {
let x = a.x.min(b.x);
let y = a.y.min(b.y);
Rectangle::new(
Point::new(x, y),
Size::new(
(a.x + a.width).max(b.x + b.width) - x,
(a.y + a.height).max(b.y + b.height) - y,
),
)
}
/// Actual named shapes/message paths supply footprint measurements; activation
/// bars are intentionally excluded because current Scene derives them later.
fn footprints(
scene: &Scene,
anchors: &BTreeMap<Id, Anchor>,
seed: &BTreeMap<Id, Anchor>,
) -> BTreeMap<Id, Rectangle> {
let mut out = BTreeMap::new();
for item in scene.boxes.iter().filter(|item| !item.title.is_empty()) {
let Some(anchor) = anchors.get(&item.id) else {
continue;
};
let mut rect = item.rect;
rect.y += anchor.y - seed[&item.id].y;
out.insert(item.id, rect);
}
for line in &scene.lines {
let Some(anchor) = anchors.get(&line.id) else {
continue;
};
let delta = anchor.y - seed[&line.id].y;
let mut rect = line.label_bounds();
rect.y += delta;
for point in &line.points {
rect = union(
rect,
Rectangle::new(Point::new(point.x, point.y + delta), Size::ZERO),
);
}
out.entry(line.id)
.and_modify(|old| *old = union(*old, rect))
.or_insert(rect);
}
out
}
fn covered_bounds(
p: &Project,
owner: Id,
footprints: &BTreeMap<Id, Rectangle>,
) -> Option<Rectangle> {
footprints
.iter()
.filter(|(id, _)| inside(p, **id, owner))
.map(|(_, rect)| *rect)
.reduce(union)
}
impl Plan {
fn build(
p: &Project,
owner: Id,
baseline: &Scene,
desired: &Candidate,
) -> Result<Self, PlanError> {
let mut seed: BTreeMap<_, _> = baseline
.rows
.iter()
.map(|(id, (_, y))| {
(
*id,
Anchor {
y: *y,
role: role(occurrence(p, *id).expect("Scene occurrence")),
},
)
})
.collect();
// Operand headers are real Scene boxes, but are not entries in rows.
for item in &baseline.boxes {
if matches!(occurrence(p, item.id), Some(OccurrenceBody::Branch { .. })) {
seed.insert(
item.id,
Anchor {
y: item.rect.y,
role: AnchorRole::OperandStart,
},
);
}
}
let mut anchors = seed.clone();
for (&id, &y) in desired {
let anchor = anchors.get_mut(&id).ok_or(PlanError::UnknownAnchor(id))?;
if !y.is_finite() {
return Err(PlanError::NonFinite(id));
}
if matches!(
anchor.role,
AnchorRole::FrameStart | AnchorRole::OperandStart
) && y != anchor.y
{
return Err(PlanError::CompoundMoveNotImplemented(id));
}
anchor.y = y;
}
let mut messages = BTreeMap::new();
for line in &baseline.lines {
if let (Some(anchor), Some(first), Some(last)) = (
anchors.get(&line.id),
line.points.first(),
line.points.last(),
) {
let delta = anchor.y - seed[&line.id].y;
messages.insert(
line.id,
MessageAnchors {
send_y: first.y + delta,
receive_y: last.y + delta,
},
);
}
}
// The current lifecycle bridge needs positive birth/death intervals.
// This is an explicit unsupported crossing, not a new semantic rule.
for (&create, message) in &messages {
if let Some(OccurrenceBody::Exchange {
message_kind: MessageKind::Create,
receiver: Some(lane),
..
}) = occurrence(p, create)
{
for (&delete, finish) in &messages {
if p.elements[&create].parent == p.elements[&delete].parent
&& matches!(occurrence(p, delete), Some(OccurrenceBody::Exchange { message_kind: MessageKind::Delete, receiver: Some(other), .. }) if other == lane)
&& message.receive_y > finish.receive_y
{
return Err(PlanError::LifetimeInversionNotSupported { create, delete });
}
}
}
}
let old_footprints = footprints(baseline, &seed, &seed);
let mut drawn = footprints(baseline, &anchors, &seed);
let mut frames = BTreeMap::new();
let mut containers: Vec<_> = seed
.keys()
.copied()
.filter(|id| matches!(occurrence(p, *id), Some(OccurrenceBody::Fragment { .. })))
.collect();
containers.sort_by_key(|id| std::cmp::Reverse(depth(p, *id)));
for id in containers {
let original = old_footprints[&id];
let mut rect = original;
if let Some(covered) = covered_bounds(p, id, &drawn) {
// Keep seed extents where possible; 20px growth padding is an
// explicit experimental presentation preference, not semantics.
// Upward envelope growth would move the painted frame header
// while its fixed FrameStart/row/slot remained at the seed.
// Reject that unsupported compound change, not mere overlap.
if covered.y < rect.y {
return Err(PlanError::FixedFrameHeaderWouldMove { frame: id });
}
if covered.y + covered.height > rect.y + rect.height {
rect.height = covered.y + covered.height + 20. - rect.y;
}
}
frames.insert(id, rect);
drawn.insert(id, rect);
}
let mut scopes = baseline.sequence_bounds.clone();
for (&scope, bounds) in &mut scopes {
if let (Some(old), Some(new)) = (
covered_bounds(p, scope, &old_footprints),
covered_bounds(p, scope, &drawn),
) {
let top_padding = (old.y - bounds.0).max(0.);
let bottom_padding = (bounds.1 - old.y - old.height).max(0.);
if new.y < bounds.0 {
bounds.0 = new.y - top_padding;
}
bounds.1 = bounds.1.max(new.y + new.height + bottom_padding);
}
}
let tail = baseline.size.height - baseline.sequence_bounds[&owner].1;
let height = baseline.size.height.max(scopes[&owner].1 + tail);
for (&operand, &(start, end)) in &scopes {
if !matches!(occurrence(p, operand), Some(OccurrenceBody::Branch { .. })) {
continue;
}
let fragment = p.elements[&operand].parent.expect("operand fragment");
let caller = p.elements[&fragment]
.parent
.expect("fragment caller sequence");
let enclosing_frame = frames[&fragment];
let (caller_start, caller_end) = if caller == owner {
(85., height - 20.)
} else {
let (a, b) = scopes[&caller];
(a, if a == b { a + 26. } else { b })
};
let enclosing_start = anchors[&fragment].y.max(caller_start);
let enclosing_end = (enclosing_frame.y + enclosing_frame.height).min(caller_end);
let effective_end = if start == end { start + 26. } else { end };
// Actual lifecycle traversal cannot enter an operand that escapes
// this enclosing interval. This guards bridge feasibility only;
// it is not a generic event-spacing or sibling-ordering policy.
if start < enclosing_start || effective_end > enclosing_end {
return Err(PlanError::OperandScopeOutsideEnclosingInterval { operand, fragment });
}
}
for (&id, message) in &messages {
if matches!(
occurrence(p, id),
Some(OccurrenceBody::Exchange {
message_kind: MessageKind::Create | MessageKind::Delete,
..
})
) {
let scope = p.elements[&id].parent.expect("lifecycle sequence owner");
// Match Rendering::new's effective scope, not the insertion
// scope: it overrides the root span to 85..height-20 and gives
// empty non-root scopes the existing 26px lifetime allowance.
let (start, end) = if scope == owner {
(85., height - 20.)
} else if let Some(&(start, end)) = scopes.get(&scope) {
(start, if start == end { start + 26. } else { end })
} else {
return Err(PlanError::LifecycleAnchorOutsideRenderScope {
occurrence: id,
scope,
});
};
if message.receive_y < start || message.receive_y > end {
return Err(PlanError::LifecycleAnchorOutsideRenderScope {
occurrence: id,
scope,
});
}
}
}
let mut diagnostics = Vec::new();
for element in p
.elements
.values()
.filter(|e| e.id == owner || inside(p, e.id, owner))
{
if let Some(steps) = element.steps() {
for pair in steps.windows(2) {
if let (Some(a), Some(b)) = (anchors.get(&pair[0]), anchors.get(&pair[1])) {
if a.y > b.y {
diagnostics.push(Diagnostic::SourceOrderCrossing {
scope: element.id,
before: pair[0],
after: pair[1],
});
}
if let Some(frame) = frames.get(&pair[0]) {
if frame.y + frame.height > b.y {
diagnostics.push(Diagnostic::FrameExtendsPastFollowingAnchor {
frame: pair[0],
following: pair[1],
});
}
}
}
}
}
}
Ok(Self {
anchors,
messages,
frames,
scopes,
height,
diagnostics,
})
}
}
thread_local! {
static PLAN: RefCell<Option<Plan>> = const { RefCell::new(None) };
}
struct Scope(Option<Plan>);
impl Scope {
fn install(plan: &Plan) -> Self {
Self(PLAN.with(|slot| slot.replace(Some(plan.clone()))))
}
}
impl Drop for Scope {
fn drop(&mut self) {
PLAN.with(|slot| {
slot.replace(self.0.take());
});
}
}
pub(super) fn row_anchor(id: Id, y: &mut f32) {
PLAN.with(|slot| {
if let Some(plan) = slot.borrow().as_ref() {
*y = plan.anchors.get(&id).expect("complete Scene anchor plan").y;
}
});
}
pub(super) fn frame_bounds(id: Id, fallback: Rectangle) -> Rectangle {
PLAN.with(|slot| {
slot.borrow()
.as_ref()
.map_or(fallback, |plan| plan.frames[&id])
})
}
pub(super) fn scope_end(owner: Id, y: &mut f32, bounds: &mut BTreeMap<Id, (f32, f32)>) {
PLAN.with(|slot| {
if let Some(plan) = slot.borrow().as_ref() {
bounds.insert(owner, plan.scopes[&owner]);
*y = plan.scopes[&owner].1 + 42.; // Existing insertion-axis offset.
}
});
}
pub(super) fn scene_extent(scene: &mut Scene) {
PLAN.with(|slot| {
if let Some(plan) = slot.borrow().as_ref() {
scene.size.height = plan.height;
}
});
}
fn render(p: &Project, owner: Id, plan: &Plan) -> Scene {
let _scope = Scope::install(plan);
Scene::sequence(p, owner, owner)
}
fn drag(original: &Candidate, frame: &Scene, target: Id, delta_y: f32) -> Candidate {
assert!(delta_y.is_finite());
if delta_y == 0. {
return original.clone();
}
let mut result = original.clone();
result.insert(target, frame.rows[&target].1 + delta_y);
result
}
@@ -0,0 +1,31 @@
{
"base": "66a1f1690f778c8814bfefff7f46fe7f6bbe520e",
"status": "Formatted candidate; uncompiled and unexecuted",
"files": [
{
"path": "crates/oa-desktop/src/behavior.rs",
"bytes": 137409,
"sha256": "5884ba35ad994eb5936ca29c071a5002efc221dc42ef35e2265d50593bdf60ec"
},
{
"path": "harness/experiments/behavior-anchor-plan-20260912/mod.rs",
"bytes": 15658,
"sha256": "cfa848bcf1f8f48324f5cd746944c9b8b4959e6aa086a7726b922d6a01cbbf3c"
},
{
"path": "harness/experiments/behavior-anchor-plan-20260912/tests.rs",
"bytes": 25567,
"sha256": "c93b5668872217888c517df549fb6bea99fbc5642fdf8c2e55bdd92537df07b8"
},
{
"path": "harness/experiments/behavior-anchor-plan-20260912/README.md",
"bytes": 16350,
"sha256": "da062779c90c7b9f0696f697521c1b0055c58d473329ac1817a55b0ba0f88370"
},
{
"path": "harness/experiments/behavior-anchor-plan-20260912/wiring.patch",
"bytes": 2131,
"sha256": "4ce4bc45fbc419eba6a07b048b82efb8d85525514e3d2e56421948e7733f40fd"
}
]
}
@@ -0,0 +1,727 @@
use super::*;
use crate::document::Document;
use oa_core::{
language,
source_project::{ProjectLimits, SourceBundle},
validation,
};
fn id(p: &Project, alias: &str) -> Id {
p.identities()
.into_iter()
.find(|(_, name)| *name == alias)
.unwrap()
.0
}
fn fixture(lifetime: bool) -> (Document, Id) {
let (name, input, owner) = if lifetime {
(
"lifetime.arcadia",
include_str!("../behavior-layout-scene-20260912/lifetime.arcadia"),
"lifetime_conversation",
)
} else {
(
"fixture.arcadia",
include_str!("../behavior-layout-scene-20260912/fixture.arcadia"),
"conversation",
)
};
let p = language::parse(input).expect("existing real Arcadia fixture");
let errors: Vec<_> = validation::validate(&p)
.into_iter()
.filter(|issue| issue.severity == validation::Severity::Error)
.collect();
assert!(errors.is_empty(), "{errors:?}");
let bundle = SourceBundle {
entry: name.into(),
files: BTreeMap::from([(name.into(), input.into())]),
};
let document = Document::from_bundle(bundle, ProjectLimits::default()).unwrap();
assert_eq!(document.project(), &p);
assert_eq!(language::parse(&language::format(&p)).unwrap(), p);
let owner = id(&p, owner);
(document, owner)
}
fn passive(document: &Document, before: &Project, source: &SourceBundle) {
assert_eq!(document.project(), before);
assert_eq!(document.bundle(), source);
assert!(!document.dirty());
assert!(!document.can_undo() && !document.can_redo());
}
fn row(scene: &Scene, id: Id) -> f32 {
scene.rows[&id].1
}
fn line(scene: &Scene, id: Id) -> &Line {
assert_eq!(scene.lines.iter().filter(|line| line.id == id).count(), 1);
scene.lines.iter().find(|line| line.id == id).unwrap()
}
fn named_box(scene: &Scene, id: Id) -> &BoxItem {
scene
.boxes
.iter()
.find(|item| item.id == id && !item.title.is_empty())
.unwrap()
}
fn same_scene(a: &Scene, b: &Scene) {
assert_eq!(a.rows, b.rows);
assert_eq!(a.sequence_bounds, b.sequence_bounds);
assert_eq!(a.size, b.size);
assert_eq!(a.lanes, b.lanes);
assert_eq!(a.lifecycle, b.lifecycle);
assert_eq!(a.open_calls, b.open_calls);
let boxes = |s: &Scene| {
s.boxes
.iter()
.map(|b| (b.id, b.rect, b.title.clone(), b.detail.clone(), b.marker))
.collect::<Vec<_>>()
};
let lines = |s: &Scene| {
s.lines
.iter()
.map(|l| {
(
l.id,
l.points.clone(),
l.label_at,
l.label.clone(),
l.dashed,
)
})
.collect::<Vec<_>>()
};
let slots = |s: &Scene| {
s.slots
.iter()
.map(|slot| {
(
slot.slot.parent,
slot.slot.before,
slot.y,
slot.label.clone(),
)
})
.collect::<Vec<_>>()
};
assert_eq!(boxes(a), boxes(b));
assert_eq!(lines(a), lines(b));
assert_eq!(slots(a), slots(b));
}
fn others_fixed(before: &Scene, after: &Scene, changed: Id) {
assert_eq!(before.rows.len(), after.rows.len());
for (&id, original) in &before.rows {
if id != changed {
assert_eq!(&after.rows[&id], original, "unexpected movement of {id}");
}
}
}
fn fixed_frame_metadata(before: &Scene, after: &Scene, frame: Id) {
let original = named_box(before, frame);
let current = named_box(after, frame);
assert_eq!(
(
current.id,
current.rect,
&current.title,
&current.detail,
current.marker
),
(
original.id,
original.rect,
&original.title,
&original.detail,
original.marker
)
);
assert_eq!(before.rows[&frame], after.rows[&frame]);
assert_eq!(row(after, frame), 332.);
// Scene::hit uses the first38px as the frame's active painted header.
let header = Rectangle::new(
Point::new(original.rect.x, original.rect.y),
Size::new(original.rect.width, 38.),
);
assert_eq!((header.y, header.y + header.height), (332., 370.));
let probe = Point::new(header.x + 8., header.y + 8.);
assert_eq!(before.hit(probe), Some(frame));
assert_eq!(after.hit(probe), Some(frame));
let original_slot = before
.slots
.iter()
.find(|slot| slot.slot.before == Some(frame))
.unwrap();
let current_slot = after
.slots
.iter()
.find(|slot| slot.slot.before == Some(frame))
.unwrap();
assert_eq!(
(
current_slot.slot.parent,
current_slot.slot.before,
current_slot.y,
&current_slot.label
),
(
original_slot.slot.parent,
original_slot.slot.before,
original_slot.y,
&original_slot.label
)
);
assert_eq!(current_slot.y, 290.);
}
fn actual_lifetime_projection(
p: &Project,
owner: Id,
scene: &Scene,
) -> Vec<scenario_lifecycle::LaneLifetime> {
// Same actual rows/scope inputs as Rendering::new, including its root span
// and empty-operand allowance; call the real projector for diagnostics.
let mut scopes = scene.sequence_bounds.clone();
for (&scope, (start, end)) in &mut scopes {
if scope != owner && *start == *end {
*end = *start + 26.;
}
}
scopes.insert(owner, (85., scene.size.height - 20.));
scenario_lifecycle::project_lifetimes(
p,
owner,
&scenario_lifecycle::Geometry {
rows: &scene.rows,
scopes: &scopes,
},
)
}
#[test]
fn complete_seed_plan_preserves_both_actual_scene_and_document_baselines() {
for lifetime in [false, true] {
let (document, owner) = fixture(lifetime);
let p = document.project();
let before = p.clone();
let source = document.bundle().clone();
let baseline = Scene::sequence(p, owner, owner);
let plan = Plan::build(p, owner, &baseline, &Candidate::new()).unwrap();
assert!(plan.diagnostics.is_empty());
for (&id, (_, y)) in &baseline.rows {
assert_eq!(plan.anchors[&id].y, *y);
}
same_scene(&baseline, &render(p, owner, &plan));
let reparsed = language::parse(&language::format(p)).unwrap();
same_scene(&baseline, &render(&reparsed, owner, &plan));
passive(&document, &before, &source);
}
}
#[test]
fn upward_second_delivery_reaches_200_and_all_other_occurrence_anchors_stay_fixed() {
let (document, owner) = fixture(false);
let p = document.project();
let before = p.clone();
let source = document.bundle().clone();
let baseline = Scene::sequence(p, owner, owner);
let first = id(p, "first");
let second = id(p, "second");
assert_ne!(first, second);
for occurrence_id in [first, second] {
assert!(
matches!(occurrence(p,occurrence_id),Some(OccurrenceBody::Exchange { exchange:Some(edge),.. }) if *edge==id(p,"channel"))
);
}
assert_eq!(
(row(&baseline, first), row(&baseline, second)),
(148., 240.)
);
let candidate = drag(&Candidate::new(), &baseline, second, -40.);
assert_eq!(candidate, Candidate::from([(second, 200.)]));
let plan = Plan::build(p, owner, &baseline, &candidate).unwrap();
let moved = render(p, owner, &plan);
assert_eq!((row(&moved, first), row(&moved, second)), (148., 200.));
others_fixed(&baseline, &moved, second);
assert_eq!(line(&moved, first).points, line(&baseline, first).points);
let left = moved.lanes[&id(p, "left")];
let right = moved.lanes[&id(p, "right")];
assert_eq!(
line(&moved, second).points,
vec![Point::new(left, 200.), Point::new(right, 200.)]
);
assert_eq!(
plan.messages[&second],
MessageAnchors {
send_y: 200.,
receive_y: 200.
}
);
assert!(plan.diagnostics.is_empty());
same_scene(&moved, &render(p, owner, &plan));
passive(&document, &before, &source);
}
#[test]
fn nested_upward_anchor_reaches_457_without_moving_parent_or_followers() {
let (document, owner) = fixture(false);
let p = document.project();
let before = p.clone();
let source = document.bundle().clone();
let baseline = Scene::sequence(p, owner, owner);
let nested = id(p, "nested");
let fragment = id(p, "fragment");
assert_eq!(row(&baseline, nested), 477.);
let candidate = drag(&Candidate::new(), &baseline, nested, -20.);
let plan = Plan::build(p, owner, &baseline, &candidate).unwrap();
let moved = render(p, owner, &plan);
assert_eq!(row(&moved, nested), 457.);
assert_eq!(named_box(&moved, nested).rect.y, 437.);
assert_eq!(named_box(&moved, nested).rect.height, 70.);
assert_eq!(
named_box(&moved, fragment).rect,
named_box(&baseline, fragment).rect
);
assert_eq!(
(
named_box(&moved, fragment).rect.y,
named_box(&moved, fragment).rect.height
),
(332., 240.)
);
fixed_frame_metadata(&baseline, &moved, fragment);
assert_eq!(
moved.sequence_bounds[&id(p, "operand")],
baseline.sequence_bounds[&id(p, "operand")]
);
others_fixed(&baseline, &moved, nested);
assert!(plan.diagnostics.is_empty());
passive(&document, &before, &source);
}
#[test]
fn nested_move_that_would_relocate_fixed_header_is_rejected_but_mere_overlap_is_not_banned() {
let (document, owner) = fixture(false);
let p = document.project();
let before = p.clone();
let source = document.bundle().clone();
let baseline = Scene::sequence(p, owner, owner);
let nested = id(p, "nested");
let fragment = id(p, "fragment");
let requested = Candidate::from([(nested, 300.)]);
// Actual70px action box has row-to-top offset-20: proposed footprint280..350.
// The old envelope union would move frame/header top332 to260 while leaving
// FrameStart332 and before-slot290. Reject before any such Scene is exposed.
let original = named_box(&baseline, nested).rect;
assert_eq!(
(row(&baseline, nested), original.y, original.height),
(477., 457., 70.)
);
let proposed_top = original.y + (300. - row(&baseline, nested));
assert_eq!((proposed_top, proposed_top + original.height), (280., 350.));
assert_eq!(
Plan::build(p, owner, &baseline, &requested).unwrap_err(),
PlanError::FixedFrameHeaderWouldMove { frame: fragment }
);
fixed_frame_metadata(&baseline, &Scene::sequence(p, owner, owner), fragment);
// Overlap inside the existing frame does not itself move its top. This
// remains admitted mechanical geometry, not a claim of usable overlap UX.
let overlap = Plan::build(p, owner, &baseline, &Candidate::from([(nested, 380.)])).unwrap();
let overlapping = render(p, owner, &overlap);
assert_eq!(named_box(&overlapping, nested).rect.y, 360.);
assert_eq!(overlapping.sequence_bounds[&id(p, "operand")], (338., 530.));
fixed_frame_metadata(&baseline, &overlapping, fragment);
let original_lifetimes = actual_lifetime_projection(p, owner, &baseline);
let moved_lifetimes = actual_lifetime_projection(p, owner, &overlapping);
assert_eq!(original_lifetimes.len(), 2);
assert_eq!(moved_lifetimes.len(), 2);
assert!(
original_lifetimes
.iter()
.all(|lane| lane.uncertainties.is_empty())
);
assert!(
moved_lifetimes
.iter()
.all(|lane| lane.uncertainties.is_empty()),
"{moved_lifetimes:?}"
);
let receiver = id(p, "right");
for scene in [&baseline, &overlapping] {
assert_eq!(
scene
.lifecycle
.alive_spans(receiver, owner, 530., scene.size.height - 20.)
.iter()
.map(|span| (span.start, span.end))
.collect::<Vec<_>>(),
vec![(530., 845.)]
);
}
let call = id(p, "self_call");
let bars = |scene: &Scene| {
scene
.boxes
.iter()
.filter(|item| item.id == call && item.title.is_empty())
.map(|item| (item.rect, item.marker))
.collect::<Vec<_>>()
};
assert!(!bars(&baseline).is_empty());
assert_eq!(bars(&overlapping), bars(&baseline));
passive(&document, &before, &source);
}
#[test]
fn nested353_scope_escape_is_named_and_rejected_before_missing_lifecycle_geometry_is_exposed() {
let (document, owner) = fixture(false);
let p = document.project();
let before = p.clone();
let source = document.bundle().clone();
let baseline = Scene::sequence(p, owner, owner);
let nested = id(p, "nested");
let operand = id(p, "operand");
let fragment = id(p, "fragment");
let original = named_box(&baseline, nested).rect;
assert_eq!(
(original.y, baseline.sequence_bounds[&operand].0),
(457., 435.)
);
let proposed_top = original.y + (353. - row(&baseline, nested));
let proposed_scope_start = proposed_top - (original.y - baseline.sequence_bounds[&operand].0);
assert_eq!(
(proposed_top, proposed_scope_start, row(&baseline, fragment)),
(333., 311., 332.)
);
assert_eq!(
Plan::build(p, owner, &baseline, &Candidate::from([(nested, 353.)])).unwrap_err(),
PlanError::OperandScopeOutsideEnclosingInterval { operand, fragment }
);
same_scene(&baseline, &Scene::sequence(p, owner, owner));
passive(&document, &before, &source);
}
#[test]
fn lifecycle_anchor_below_actual_root_render_scope_is_rejected_before_scene_construction() {
let (document, owner) = fixture(true);
let p = document.project();
let before = p.clone();
let source = document.bundle().clone();
let baseline = Scene::sequence(p, owner, owner);
let create = id(p, "create_receiver");
let provider = id(p, "provider");
let requester = id(p, "requester");
let root_life = baseline
.lifecycle
.alive_spans(requester, owner, 0., baseline.size.height);
assert_eq!(
root_life
.iter()
.map(|span| (span.start, span.end))
.collect::<Vec<_>>(),
vec![(85., 544.)]
);
for requested in [50., 84.] {
assert_eq!(
Plan::build(p, owner, &baseline, &Candidate::from([(create, requested)])).unwrap_err(),
PlanError::LifecycleAnchorOutsideRenderScope {
occurrence: create,
scope: owner
}
);
}
// At the renderer's actual85 boundary the marker/lifetime remains present.
// Source-order crossing is still diagnosed separately, not silently banned.
let boundary = Plan::build(p, owner, &baseline, &Candidate::from([(create, 85.)])).unwrap();
let moved = render(p, owner, &boundary);
let x = moved.lanes[&provider];
assert_eq!(row(&moved, create), 85.);
assert_eq!(moved.lifecycle.marker_at(Point::new(x, 85.)), Some(create));
let alive = moved
.lifecycle
.alive_spans(provider, owner, 0., moved.size.height);
assert_eq!(
alive
.iter()
.map(|span| (span.start, span.end))
.collect::<Vec<_>>(),
vec![(85., 427.)]
);
passive(&document, &before, &source);
}
#[test]
fn earlier_death_reaches_380_and_actual_lifetime_and_activation_clip_there() {
let (document, owner) = fixture(true);
let p = document.project();
let before = p.clone();
let source = document.bundle().clone();
let baseline = Scene::sequence(p, owner, owner);
let create = id(p, "create_receiver");
let call = id(p, "service_call");
let delete = id(p, "delete_receiver");
let provider = id(p, "provider");
assert_eq!(
(
row(&baseline, create),
row(&baseline, call),
row(&baseline, delete)
),
(243., 335., 427.)
);
let candidate = drag(&Candidate::new(), &baseline, delete, -47.);
let plan = Plan::build(p, owner, &baseline, &candidate).unwrap();
assert_eq!(plan.anchors[&delete].role, AnchorRole::MessageReceive);
assert_eq!(
plan.messages[&delete],
MessageAnchors {
send_y: 380.,
receive_y: 380.
}
);
let moved = render(p, owner, &plan);
assert_eq!(row(&moved, delete), 380.);
others_fixed(&baseline, &moved, delete);
let spans = moved
.lifecycle
.alive_spans(provider, owner, 85., moved.size.height - 20.);
assert_eq!(
spans.iter().map(|s| (s.start, s.end)).collect::<Vec<_>>(),
vec![(243., 380.)]
);
assert!(
moved
.lifecycle
.alive_spans(provider, owner, 380., moved.size.height - 20.)
.is_empty()
);
let x = moved.lanes[&provider];
assert_eq!(moved.lifecycle.marker_at(Point::new(x, 380.)), Some(delete));
assert_eq!(moved.lifecycle.marker_at(Point::new(x, 427.)), None);
assert_eq!(moved.hit(Point::new(x, 380.)), Some(delete));
let bars: Vec<_> = moved
.boxes
.iter()
.filter(|b| b.id == call && b.title.is_empty())
.collect();
assert_eq!(bars.len(), 1);
assert_eq!(
bars[0].rect,
Rectangle::new(Point::new(x - 4., 335.), Size::new(8., 45.))
);
assert_eq!(moved.open_calls, vec![Point::new(x + 12., 364.)]);
assert!(plan.diagnostics.is_empty());
passive(&document, &before, &source);
}
#[test]
fn self_call_has_explicit_send610_receive634_and_reply_stays728() {
let (document, owner) = fixture(false);
let p = document.project();
let before = p.clone();
let source = document.bundle().clone();
let baseline = Scene::sequence(p, owner, owner);
let call = id(p, "self_call");
let reply = id(p, "self_reply");
let candidate = drag(&Candidate::new(), &baseline, call, -26.);
let plan = Plan::build(p, owner, &baseline, &candidate).unwrap();
assert_eq!(
plan.anchors[&call],
Anchor {
y: 610.,
role: AnchorRole::MessageSend
}
);
assert_eq!(
plan.messages[&call],
MessageAnchors {
send_y: 610.,
receive_y: 634.
}
);
let moved = render(p, owner, &plan);
assert_eq!(row(&moved, call), 610.);
assert_eq!(row(&moved, reply), 728.);
assert_eq!(
line(&moved, call)
.points
.iter()
.map(|p| p.y)
.collect::<Vec<_>>(),
vec![610., 610., 634., 634.]
);
assert_eq!(line(&moved, reply).points, line(&baseline, reply).points);
others_fixed(&baseline, &moved, call);
// Peer #21 owns the activation start/column contract. This assertion covers
// actual message anchors, not the old row-based activation start defect.
passive(&document, &before, &source);
}
#[test]
fn signed_zero_keeps_sparse_candidate_and_restoring_original_candidate_restores_actual_scene() {
let (document, owner) = fixture(false);
let p = document.project();
let before = p.clone();
let source = document.bundle().clone();
let baseline = Scene::sequence(p, owner, owner);
let second = id(p, "second");
let original = Candidate::new();
for zero in [0., -0.] {
assert_eq!(drag(&original, &baseline, second, zero), original);
}
let changed = drag(&original, &baseline, second, -40.);
let plan = Plan::build(p, owner, &baseline, &changed).unwrap();
let frame = render(p, owner, &plan);
for zero in [0., -0.] {
let untouched = drag(&changed, &frame, second, zero);
assert_eq!(untouched, changed);
same_scene(
&frame,
&render(
p,
owner,
&Plan::build(p, owner, &baseline, &untouched).unwrap(),
),
);
}
// This restores the exact sidecar candidate; it is not a production Undo
// command or evidence of a layout source/REST persistence implementation.
same_scene(
&baseline,
&render(
p,
owner,
&Plan::build(p, owner, &baseline, &original).unwrap(),
),
);
passive(&document, &before, &source);
}
#[test]
fn crossing_is_rendered_exactly_and_diagnosed_with_extents_covering_the_earlier_far_event() {
let (document, owner) = fixture(false);
let p = document.project();
let before = p.clone();
let source = document.bundle().clone();
let baseline = Scene::sequence(p, owner, owner);
let first = id(p, "first");
let second = id(p, "second");
let plan = Plan::build(p, owner, &baseline, &Candidate::from([(first, 1000.)])).unwrap();
assert!(plan.diagnostics.contains(&Diagnostic::SourceOrderCrossing {
scope: owner,
before: first,
after: second
}));
let moved = render(p, owner, &plan);
assert_eq!((row(&moved, first), row(&moved, second)), (1000., 240.));
assert_eq!(row(&moved, id(p, "self_reply")), 728.);
others_fixed(&baseline, &moved, first);
assert_eq!(moved.sequence_bounds[&owner].1, 1026.);
assert_eq!(moved.size.height, 1113.);
assert!(
line(&moved, first)
.points
.iter()
.all(|point| point.y < moved.size.height)
);
assert_eq!(&p.elements[&owner].steps().unwrap()[..2], &[first, second]);
// This is a policy falsifier: mechanically exact coordinates do not prove
// that out-of-order vertical notation is understandable or acceptable.
passive(&document, &before, &source);
}
#[test]
fn nested_outlier_expands_enclosing_geometry_without_using_final_traversal_row_as_extent() {
let (document, owner) = fixture(false);
let p = document.project();
let baseline = Scene::sequence(p, owner, owner);
let nested = id(p, "nested");
let fragment = id(p, "fragment");
let following = id(p, "self_call");
let plan = Plan::build(p, owner, &baseline, &Candidate::from([(nested, 1000.)])).unwrap();
assert!(
plan.diagnostics
.contains(&Diagnostic::FrameExtendsPastFollowingAnchor {
frame: fragment,
following
})
);
let moved = render(p, owner, &plan);
assert_eq!(row(&moved, nested), 1000.);
assert_eq!(named_box(&moved, nested).rect.y, 980.);
let enclosing = named_box(&moved, fragment).rect;
assert_eq!(enclosing.y + enclosing.height, 1070.);
assert!(moved.sequence_bounds[&owner].1 >= 1070.);
assert!(moved.size.height > 1070.);
assert_eq!(row(&moved, following), 636.);
others_fixed(&baseline, &moved, nested);
}
#[test]
fn unsupported_targets_and_lifetime_inversion_fail_explicitly_instead_of_silent_clamping() {
let (document, owner) = fixture(true);
let p = document.project();
let baseline = Scene::sequence(p, owner, owner);
let create = id(p, "create_receiver");
let delete = id(p, "delete_receiver");
assert_eq!(
Plan::build(p, owner, &baseline, &Candidate::from([(delete, 200.)])).unwrap_err(),
PlanError::LifetimeInversionNotSupported { create, delete }
);
assert_eq!(
Plan::build(p, owner, &baseline, &Candidate::from([(delete, f32::NAN)])).unwrap_err(),
PlanError::NonFinite(delete)
);
let edge = id(p, "service");
assert_eq!(
Plan::build(p, owner, &baseline, &Candidate::from([(edge, 200.)])).unwrap_err(),
PlanError::UnknownAnchor(edge)
);
let (other, other_owner) = fixture(false);
let fragment = id(other.project(), "fragment");
let other_scene = Scene::sequence(other.project(), other_owner, other_owner);
assert_eq!(
Plan::build(
other.project(),
other_owner,
&other_scene,
&Candidate::from([(fragment, 300.)])
)
.unwrap_err(),
PlanError::CompoundMoveNotImplemented(fragment)
);
}
#[test]
fn complete_plan_scope_is_inactive_in_other_threads_and_restored_after_deliberate_panic() {
let (document, owner) = fixture(false);
let p = document.project();
let baseline = Scene::sequence(p, owner, owner);
let second = id(p, "second");
let plan = Plan::build(p, owner, &baseline, &Candidate::from([(second, 200.)])).unwrap();
let caught = std::panic::catch_unwind(|| {
let _scope = Scope::install(&plan);
assert_eq!(row(&Scene::sequence(p, owner, owner), second), 200.);
std::thread::spawn(|| {
let (document, owner) = fixture(false);
let p = document.project();
assert_eq!(
row(&Scene::sequence(p, owner, owner), id(p, "second")),
240.
);
})
.join()
.unwrap();
panic!("deliberate complete-anchor scope unwind");
});
let payload = caught.expect_err("deliberate panic is required");
assert_eq!(
payload.downcast_ref::<&str>().copied(),
Some("deliberate complete-anchor scope unwind")
);
same_scene(&baseline, &Scene::sequence(p, owner, owner));
}
@@ -0,0 +1,51 @@
diff --git a/crates/oa-desktop/src/behavior.rs b/crates/oa-desktop/src/behavior.rs
index 3f9fd97..f1ef5b7 100644
--- a/crates/oa-desktop/src/behavior.rs
+++ b/crates/oa-desktop/src/behavior.rs
@@ -1121,6 +1121,10 @@ fn in_machine(p: &Project, id: Id, machine: Id) -> bool {
#[path = "../../../harness/experiments/behavior-layout-scene-20260912/mod.rs"]
mod behavior_layout_scene_experiment;
+#[cfg(test)]
+#[path = "../../../harness/experiments/behavior-anchor-plan-20260912/mod.rs"]
+mod behavior_anchor_plan_experiment;
+
struct BoxItem {
id: Id,
rect: Rectangle,
@@ -1332,6 +1336,8 @@ impl Scene {
let mut y = if scenario { 148. } else { 120. };
scene.occurrences(p, owner, scenario, &lane_x, &mut y, 0);
scene.size.height = (y + 45.).max(210.);
+ #[cfg(test)]
+ behavior_anchor_plan_experiment::scene_extent(&mut scene);
if scenario {
scene.lifecycle = scenario_lifecycle::render::Rendering::new(
p,
@@ -1441,6 +1447,8 @@ impl Scene {
}
#[cfg(test)]
behavior_layout_scene_experiment::resolve_row_anchor(*id, y);
+ #[cfg(test)]
+ behavior_anchor_plan_experiment::row_anchor(*id, y);
if ordered {
let slot = scenario::Slot {
parent: owner,
@@ -1465,6 +1473,8 @@ impl Scene {
(*y - top).max(95.),
),
);
+ #[cfg(test)]
+ let rect = behavior_anchor_plan_experiment::frame_bounds(*id, rect);
self.boxes.insert(
0,
BoxItem {
@@ -1649,6 +1659,8 @@ impl Scene {
}
if ordered {
self.sequence_bounds.insert(owner, (sequence_top, *y - 42.));
+ #[cfg(test)]
+ behavior_anchor_plan_experiment::scope_end(owner, y, &mut self.sequence_bounds);
let slot = scenario::Slot {
parent: owner,
before: None,
@@ -0,0 +1,8 @@
check.log -text -whitespace
check-receipt.json -text whitespace=cr-at-eol
list.log -text -whitespace
list-receipt.json -text whitespace=cr-at-eol
tests.log -text -whitespace
tests-receipt.json -text whitespace=cr-at-eol
inputs-complete-before.json -text whitespace=cr-at-eol
inputs-complete-after.json -text whitespace=cr-at-eol
@@ -0,0 +1,31 @@
# Actual Scene anchor experiments: Windows result
Tested source: **4b782a71fc011defd39331d3d6d5b73c1506275c**. The complete-anchor candidate and the older floor/lifetime experiment were exercised together against their actual parser, Document and Scene implementation. This result does not cover the later typed-activation renderer or saved-layout implementation.
| Gate | Result |
| --- | --- |
| `cargo check -p oa-desktop --bin arcadia-studio --tests --locked --offline` | Exit 0; test-only experiment wiring compiled. |
| `cargo test -p oa-desktop --bin arcadia-studio --locked --offline -- behavior_layout_scene_experiment behavior_anchor_plan_experiment --list` | Exit 0; exactly 10 floor/lifetime and 13 complete-anchor tests. |
| Same two filters with `--nocapture` instead of `--list` | **23 passed, 0 failed, 0 ignored**; exit 0; 895 other tests filtered out. |
[Check output](check.log), [check receipt](check-receipt.json), [listing](list.log), [listing receipt](list-receipt.json), [test output](tests.log) and [test receipt](tests-receipt.json) are preserved without line-ending conversion. The two panic messages are deliberate restoration probes: both enclosing tests passed after checking their scoped state restoration. They are not unhandled application crashes.
The check ran from 2026-09-13T00:14:13.0884576Z through 00:47:39.8146970Z. Listing/build ran from 00:48:09.7268903Z through 01:05:48.2819288Z. Execution ran from 01:06:35.7121760Z through 01:06:41.2500471Z; libtest reported 0.62 seconds for the selected tests. Compilation reported 32m49s for check and 17m31s for the test build on this heavily delayed Windows host. These timings are not a comparative performance or large-model responsiveness result.
The [before](inputs-complete-before.json) and [after](inputs-complete-after.json) manifests contain the same **574 paths, byte lengths and SHA-256 hashes**, with identical membership. The capture covers Cargo manifests/lockfile, crates, docs, examples, build files, harness fixtures, the existing textual-authoring experiment and both live layout experiment directories. Historical review snapshots are not compiled. [Artifact hashes](artifacts.json) identify the eight raw output/receipt/input files. Raw terminal blank lines are preserved; exact-path attributes exclude raw logs from whitespace rewriting and allow CRLF in receipts/manifests.
Environment: Windows, Rust/Cargo 1.98.1, `stable-x86_64-pc-windows-gnullvm`, configured LLVM-MinGW/UCRT clang linker, one Cargo build job, incremental compilation disabled, locked offline dependencies, unoptimized profile. The exact shell runner applies the project's local toolchain environment; the portable commands above select the same test groups.
## What the result establishes
The independently specified numeric cases in the [prepared candidate](../behavior-anchor-plan-20260912/README.md) passed: upward message and nested-anchor placement, fixed-header and enclosing-scope refusals, actual Create/Delete lifetime geometry, self-message send/receive offsets, earlier outlier coverage, sparse signed-zero restoration, source-order crossing diagnostics and scoped thread/panic isolation. The full semantic Project and SourceBundle/history invariants asserted by those cases passed.
The old floor test remains a passing **counterexample to that policy**: an upward requested position is still clamped by the floor. Its test passing does not mean the floor satisfies free editing. Likewise the complete plan's explicit unsupported positions and its drawable chronology/overlap diagnostics are retained limitations, not a selected product movement policy.
## Limits and next integration
No public layout payload, source syntax, REST command, drag transaction, box/route editing or native workflow is implemented by these test-only hooks. No full regression suite, strict lint or GUI acceptance of a new product behavior is claimed here. Linux remains user-paused.
Preserve this original result before combining with peer `aadc6396d39ff336d05381d58d545093d3f37a73`. That renderer stores typed activation segments separately from boxes. Its future union must compare the complete activation vector, adapt bar/cue and activation-edge oracles, and strengthen the self-call expectation to receive634 → reply-send728. Retain lifecycle clipping, explicit nonempty/count checks and exact source/history assertions. [Issue 21 comment 754](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/21#issuecomment-754) records the pinned source comparison.
The selected storage direction and remaining gesture/label requirements are in the [reviewed scenario layout design](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/src/commit/75cb09dade2cf4b9a176b5e6159f43e2345d196e/harness/scenario-layout-design.md). This bounded experiment does not close full scenario editing or the application goal.
@@ -0,0 +1,54 @@
{
"sourceCommit": "4b782a71fc011defd39331d3d6d5b73c1506275c",
"count": 8,
"files": [
{
"path": "check.log",
"bytes": 472,
"sha256": "7f9626500c6507b12e039f5383579ecdec07d0ebd69deda6c95d1c44addf57e2",
"git_blob": "34d68b0d1bb6eb853b577386b97698cca8b8a5f8"
},
{
"path": "check-receipt.json",
"bytes": 401,
"sha256": "e4c1208ba0d59f39355a3fe65c2d044cf153376bde32afed53f644ecbcb1d08c",
"git_blob": "0a6847e62286928072fc9a8a6f56735bfb909617"
},
{
"path": "list.log",
"bytes": 3796,
"sha256": "e9d34a70c74aab4aea075f42f15df715339241271912e74445d125823e1d2567",
"git_blob": "84d775081a622a61237526328fac103f49e62b27"
},
{
"path": "list-receipt.json",
"bytes": 463,
"sha256": "df58692a05de2dac138e1f626d9f5fc2e19224e777499024127726c9d3afce03",
"git_blob": "b7050a3be5c7456de1b0f64c22db812f6f9fa441"
},
{
"path": "tests.log",
"bytes": 4274,
"sha256": "83846d9ffe05f0f555307cc5e1ea7097a8d53894e2755683790c6cbca9b9eeda",
"git_blob": "167ed1f1852f4237daa8cf6f83cc2deb6b85edc7"
},
{
"path": "tests-receipt.json",
"bytes": 472,
"sha256": "6e22ee3e80f49b987373eb99c25fcd8f4fe8d4af8b7bf5873e003b225187b7bb",
"git_blob": "db735f324df988d7bbb3036d6b95610a29a66114"
},
{
"path": "inputs-complete-before.json",
"bytes": 110608,
"sha256": "d5f268ab403dcc22abb1991fe04c652123ff32240dff8e9e7010937282ad967d",
"git_blob": "3fde735115dcccad217a8ffa8000fec670084d76"
},
{
"path": "inputs-complete-after.json",
"bytes": 110608,
"sha256": "45f1fc4d805a8948a83fa77bb46d83f59cea64d4af5a1bcc78a9a7a0fbf758b1",
"git_blob": "04f0ec9b138c400f404755aa5e604ae4605cc7a4"
}
]
}
@@ -0,0 +1,12 @@
{
"command": "cargo check -p oa-desktop --bin arcadia-studio --tests --locked --offline",
"startUtc": "2026-09-13T00:14:13.0884576Z",
"endUtc": "2026-09-13T00:47:39.8146970Z",
"base": "4b782a71fc011defd39331d3d6d5b73c1506275c",
"cargoExitCode": 0,
"expectedOldTests": 10,
"expectedNewTests": 13,
"listedOldTests": null,
"listedNewTests": null,
"selectionValid": true
}
@@ -0,0 +1,4 @@
Compiling oa-core v0.2.0 (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\behavior-anchor-plan-ytr83r-20260912\crates\oa-core)
Compiling oa-desktop v0.2.0 (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\behavior-anchor-plan-ytr83r-20260912\crates\oa-desktop)
Compiling oa-server v0.2.0 (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\behavior-anchor-plan-ytr83r-20260912\crates\oa-server)
Finished `dev` profile [unoptimized] target(s) in 32m 49s
@@ -0,0 +1,12 @@
{
"command": "cargo test -p oa-desktop --bin arcadia-studio --locked --offline -- behavior_layout_scene_experiment behavior_anchor_plan_experiment --list",
"startUtc": "2026-09-13T00:48:09.7268903Z",
"endUtc": "2026-09-13T01:05:48.2819288Z",
"base": "4b782a71fc011defd39331d3d6d5b73c1506275c",
"cargoExitCode": 0,
"expectedOldTests": 10,
"expectedNewTests": 13,
"listedOldTests": 10,
"listedNewTests": 13,
"selectionValid": true
}
@@ -0,0 +1,30 @@
Compiling oa-core v0.2.0 (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\behavior-anchor-plan-ytr83r-20260912\crates\oa-core)
Compiling oa-server v0.2.0 (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\behavior-anchor-plan-ytr83r-20260912\crates\oa-server)
Compiling oa-desktop v0.2.0 (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\behavior-anchor-plan-ytr83r-20260912\crates\oa-desktop)
Finished `test` profile [unoptimized] target(s) in 17m 31s
Running unittests src\main.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\arcadia_studio-27db9628b266bf39.exe)
behavior::behavior_anchor_plan_experiment::tests::complete_plan_scope_is_inactive_in_other_threads_and_restored_after_deliberate_panic: test
behavior::behavior_anchor_plan_experiment::tests::complete_seed_plan_preserves_both_actual_scene_and_document_baselines: test
behavior::behavior_anchor_plan_experiment::tests::crossing_is_rendered_exactly_and_diagnosed_with_extents_covering_the_earlier_far_event: test
behavior::behavior_anchor_plan_experiment::tests::earlier_death_reaches_380_and_actual_lifetime_and_activation_clip_there: test
behavior::behavior_anchor_plan_experiment::tests::lifecycle_anchor_below_actual_root_render_scope_is_rejected_before_scene_construction: test
behavior::behavior_anchor_plan_experiment::tests::nested353_scope_escape_is_named_and_rejected_before_missing_lifecycle_geometry_is_exposed: test
behavior::behavior_anchor_plan_experiment::tests::nested_move_that_would_relocate_fixed_header_is_rejected_but_mere_overlap_is_not_banned: test
behavior::behavior_anchor_plan_experiment::tests::nested_outlier_expands_enclosing_geometry_without_using_final_traversal_row_as_extent: test
behavior::behavior_anchor_plan_experiment::tests::nested_upward_anchor_reaches_457_without_moving_parent_or_followers: test
behavior::behavior_anchor_plan_experiment::tests::self_call_has_explicit_send610_receive634_and_reply_stays728: test
behavior::behavior_anchor_plan_experiment::tests::signed_zero_keeps_sparse_candidate_and_restoring_original_candidate_restores_actual_scene: test
behavior::behavior_anchor_plan_experiment::tests::unsupported_targets_and_lifetime_inversion_fail_explicitly_instead_of_silent_clamping: test
behavior::behavior_anchor_plan_experiment::tests::upward_second_delivery_reaches_200_and_all_other_occurrence_anchors_stay_fixed: test
behavior::behavior_layout_scene_experiment::current_floor_is_an_explicit_counterexample_to_general_free_positioning: test
behavior::behavior_layout_scene_experiment::lifetime::delayed_create_call_and_delete_have_real_lifetime_markers_and_exact_clipped_activation: test
behavior::behavior_layout_scene_experiment::lifetime::moving_create_moves_real_lifetime_and_followers_without_changing_semantics_or_source: test
behavior::behavior_layout_scene_experiment::lifetime::moving_delete_extends_only_to_actual_death_and_zero_motion_preserves_latent_lifetime_intent: test
behavior::behavior_layout_scene_experiment::moved_repeat_drives_actual_scene_followers_frames_and_self_message_without_semantic_edits: test
behavior::behavior_layout_scene_experiment::nested_anchor_grows_actual_fragment_and_self_call_keeps_its_receive_offset: test
behavior::behavior_layout_scene_experiment::real_parser_roundtrip_and_baseline_scene_have_independent_expected_anchors: test
behavior::behavior_layout_scene_experiment::scoped_hook_is_inactive_by_default_thread_local_and_restored_after_panic: test
behavior::behavior_layout_scene_experiment::source_reorder_keeps_override_bound_to_occurrence_identity_and_does_not_write_back_projection: test
behavior::behavior_layout_scene_experiment::zero_pointer_delta_preserves_latent_authored_intent_but_explicit_assignment_can_change_it: test
23 tests, 0 benchmarks
@@ -0,0 +1,12 @@
{
"command": "cargo test -p oa-desktop --bin arcadia-studio --locked --offline -- behavior_layout_scene_experiment behavior_anchor_plan_experiment --nocapture",
"startUtc": "2026-09-13T01:06:35.7121760Z",
"endUtc": "2026-09-13T01:06:41.2500471Z",
"base": "4b782a71fc011defd39331d3d6d5b73c1506275c",
"cargoExitCode": 0,
"expectedOldTests": 10,
"expectedNewTests": 13,
"listedOldTests": null,
"listedNewTests": null,
"selectionValid": true
}
@@ -0,0 +1,37 @@
Finished `test` profile [unoptimized] target(s) in 3.34s
Running unittests src\main.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\arcadia_studio-27db9628b266bf39.exe)
running 23 tests
test behavior::behavior_anchor_plan_experiment::tests::complete_seed_plan_preserves_both_actual_scene_and_document_baselines ... ok
thread 'behavior::behavior_anchor_plan_experiment::tests::complete_plan_scope_is_inactive_in_other_threads_and_restored_after_deliberate_panic' (4328) panicked at crates\oa-desktop\src\..\..\..\harness\experiments\behavior-anchor-plan-20260912\tests.rs:719:9:
deliberate complete-anchor scope unwind
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
test behavior::behavior_anchor_plan_experiment::tests::complete_plan_scope_is_inactive_in_other_threads_and_restored_after_deliberate_panic ... ok
test behavior::behavior_anchor_plan_experiment::tests::crossing_is_rendered_exactly_and_diagnosed_with_extents_covering_the_earlier_far_event ... ok
test behavior::behavior_anchor_plan_experiment::tests::earlier_death_reaches_380_and_actual_lifetime_and_activation_clip_there ... ok
test behavior::behavior_anchor_plan_experiment::tests::lifecycle_anchor_below_actual_root_render_scope_is_rejected_before_scene_construction ... ok
test behavior::behavior_anchor_plan_experiment::tests::nested353_scope_escape_is_named_and_rejected_before_missing_lifecycle_geometry_is_exposed ... ok
test behavior::behavior_anchor_plan_experiment::tests::nested_move_that_would_relocate_fixed_header_is_rejected_but_mere_overlap_is_not_banned ... ok
test behavior::behavior_anchor_plan_experiment::tests::nested_outlier_expands_enclosing_geometry_without_using_final_traversal_row_as_extent ... ok
test behavior::behavior_anchor_plan_experiment::tests::self_call_has_explicit_send610_receive634_and_reply_stays728 ... ok
test behavior::behavior_anchor_plan_experiment::tests::nested_upward_anchor_reaches_457_without_moving_parent_or_followers ... ok
test behavior::behavior_anchor_plan_experiment::tests::unsupported_targets_and_lifetime_inversion_fail_explicitly_instead_of_silent_clamping ... ok
test behavior::behavior_anchor_plan_experiment::tests::signed_zero_keeps_sparse_candidate_and_restoring_original_candidate_restores_actual_scene ... ok
test behavior::behavior_layout_scene_experiment::current_floor_is_an_explicit_counterexample_to_general_free_positioning ... ok
test behavior::behavior_anchor_plan_experiment::tests::upward_second_delivery_reaches_200_and_all_other_occurrence_anchors_stay_fixed ... ok
test behavior::behavior_layout_scene_experiment::lifetime::moving_create_moves_real_lifetime_and_followers_without_changing_semantics_or_source ... ok
test behavior::behavior_layout_scene_experiment::lifetime::delayed_create_call_and_delete_have_real_lifetime_markers_and_exact_clipped_activation ... ok
test behavior::behavior_layout_scene_experiment::moved_repeat_drives_actual_scene_followers_frames_and_self_message_without_semantic_edits ... ok
test behavior::behavior_layout_scene_experiment::lifetime::moving_delete_extends_only_to_actual_death_and_zero_motion_preserves_latent_lifetime_intent ... ok
test behavior::behavior_layout_scene_experiment::nested_anchor_grows_actual_fragment_and_self_call_keeps_its_receive_offset ... ok
test behavior::behavior_layout_scene_experiment::real_parser_roundtrip_and_baseline_scene_have_independent_expected_anchors ... ok
test behavior::behavior_layout_scene_experiment::source_reorder_keeps_override_bound_to_occurrence_identity_and_does_not_write_back_projection ... ok
test behavior::behavior_layout_scene_experiment::zero_pointer_delta_preserves_latent_authored_intent_but_explicit_assignment_can_change_it ... ok
thread 'behavior::behavior_layout_scene_experiment::scoped_hook_is_inactive_by_default_thread_local_and_restored_after_panic' (856) panicked at crates\oa-desktop\src\..\..\..\harness\experiments\behavior-layout-scene-20260912\mod.rs:336:9:
exercise scoped restoration
test behavior::behavior_layout_scene_experiment::scoped_hook_is_inactive_by_default_thread_local_and_restored_after_panic ... ok
test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 895 filtered out; finished in 0.62s
@@ -0,0 +1,4 @@
attempt1/** -text
attempt2/** -text
attempt1/harness/experiments/behavior-anchor-plan-20260912/wiring.patch -whitespace
attempt2/harness/experiments/behavior-anchor-plan-20260912/wiring.patch -whitespace
@@ -0,0 +1,14 @@
# Complete-anchor plan: independent static findings
The [original five-file candidate and hashes](attempt1/manifest.json), based on66a1f1690f778c8814bfefff7f46fe7f6bbe520e, are preserved exactly. It was not compiled or executed. These are source-verified counterexamples, not recorded runtime failures. Two reviewers independently examined the first; the independent reviewer also traced the second into actual lifecycle projection.
1. In the original named scenario fixture, setting the nested action anchor to300 moves its box to280..350. Frame coverage expands the fragment from top332 to260 while its FrameStart anchor and Scene row remain332; title and header hit geometry follow260..298, and the before-slot remains290. The existing rows-only unchanged-anchor check cannot detect this split. A bounded repair must keep the frame header invariant or reject this unsupported operation explicitly until a compound/header policy is defined.
2. In the lifetime fixture, setting Create to50 passes the candidate admission checks, but the actual lifecycle renderer starts the root span at85. Its projection rejects the birth as missing geometry; the message and row can remain50 while the real birth marker disappears. Admission must account for the actual supported scope or expose an explicit unsupported result, rather than claiming preserved lifecycle geometry.
Feasible upward movement inside the existing headers/lifetimes remains required by the experiment. Neither finding authorizes turning preferred spacing into a permanent user movement restriction. The corrected candidate, compiler results and production-policy decision remain separate. No native, persistence or Undo acceptance is claimed.
## Additional scope-boundary finding before execution
The [two-fix candidate](attempt2/manifest.json) remains uncompiled. Its author found that the admitted nested353 overlap case can expand an operand scope upward to311, before the enclosing fragment starts332. The existing lifecycle projector rejects that scope as missing geometry. Earlier review of the two guards did not establish this ancestor relationship. The next bounded bridge must reject incompatible scope intervals explicitly and test the actual lifecycle diagnostics; overlapping header geometry alone must not become a global spacing ban. These accumulating dependencies show that complete anchors require a coherent scope/lifecycle contract. The legacy renderer is not demonstrated to support arbitrary free placement by changing its cursor.
The three exact wiring.patch artifacts retain CRLF and patch-context blank lines. Git whitespace checking is disabled only for those raw patch paths; their recorded bytes are preserved. All other changed source and report paths remain checked.
@@ -0,0 +1,71 @@
# Complete anchor plan into actual Scene — pending execution
Prepared 2026-09-12 in isolated branch `codex/behavior-anchor-plan-ytr83r-20260912`, base `66a1f1690f778c8814bfefff7f46fe7f6bbe520e`. Parent owns compilation and publication. **Not compiled, executed, staged or committed.** Only test-only additions to `crates/oa-desktop/src/behavior.rs` and this new directory were authored. The existing floor experiment and its fixtures are unchanged. All new production-file statements are guarded by `cfg(test)`; normal production rendering is unchanged.
## Bounded question
Can a complete ephemeral anchor plan drive the actual Scene at exact requested y coordinates without the old running-cursor floor, preserve unspecified anchors and the entire Document, and maintain covered extents and real lifecycle derivation? This isolates the integration seam from the unresolved choice of a product movement policy.
The old floor candidate imposed existing seed increments on every requested row. This candidate seeds missing anchors from the actual baseline Scene, then replaces explicitly requested coordinates exactly. It does not impose sequence-order constraints or overlap spacing. Source-order crossings are returned as diagnostic data, not silently clamped or converted into semantic Reorder. This is a mechanical projection experiment, not evidence that crossed vertical ordering is acceptable UX.
`Candidate` is an external map keyed by occurrence UUID. `Plan` is a complete resolved input for the currently visible Scene, including operand headers missing from the ordinary rows map. It contains row roles, derived message send/receive y values, frame bounds, sequence extents and canvas height. It is not a model, parser or REST payload.
## Actual code boundary and wiring
`wiring.patch` records the exact production-file delta from the base commit. The five new cfg(test) integration points are:
1. Include this module as a private child of `behavior`, next to the unchanged floor module.
2. Immediately after the old floor hook, consume the complete plan's exact occurrence anchor, before Scene records rows and constructs the occurrence's existing geometry.
3. Before inserting an existing fragment BoxItem, use the plan's frame bounds. Existing fragment paint and label code remain in place.
4. Immediately after recording a sequence's bounds, substitute planned bounds and update the existing final insertion axis. An earlier event placed lower than the last event cannot truncate the scope merely because traversal ends earlier.
5. Before current lifecycle and activation construction, substitute the covered canvas height. Current `Rendering::new`, message alignment, activation generation and drawing remain responsible for their actual geometry.
The plan is scoped per thread, inactive by default, restored by Drop during unwinding, and has a deliberate-panic test requiring the exact sentinel payload. Other tests on other threads cannot consume its plan. The original floor hooks remain operational when their own scope is active; the new plan is otherwise absent.
Footprints are measured from the actual baseline named boxes, message polylines and label bounds, translated by requested row deltas. This avoids cloning the renderer's line or lifecycle algorithms. Empty activation bars are excluded because the real renderer derives those later. Frames conservatively preserve seed extents and expand when covered geometry escapes; growth adds an explicitly experimental 20px presentation margin. Sequence bounds preserve seed extents and measured edge padding while expanding to cover outliers; canvas height uses the original scope-to-canvas margin. Neither these margins nor nonshrinking seed extents are adopted user requirements. This is not a general container-resize solver.
## Independently expected checks
Ten new test functions use the existing hand-authored fixtures through the actual parser and Document bundle loader. Numeric expectations below are independently stated rather than generated from the new planner:
| Case | Expected actual Scene result |
| --- | --- |
| Empty complete plan, both fixtures | Same rows, named boxes and marker kinds, lines and labels, scopes, slots, lifecycle, open calls and size as the unmodified baseline Scene |
| Second delivery240→200 | First148; second200; every other occurrence anchor unchanged; both second-message endpoints200; repeated exchange references retain different occurrence IDs |
| Nested action477→457 | Box top437, height70; original fragment top332/height240 retained; operand bounds and all other anchors unchanged |
| Death427→380 | Create243 and call335 stay fixed; real alive span243..380; actual bar335..380; death marker/hit moves to380; unresolved-call cue remains, no Reply is invented |
| Self-call636→610 | Actual send610/receive634, using the current24 offset; reply728 unchanged; MessageSend role distinguished from the lifecycle MessageReceive role |
| Signed zero and candidate restoration | Both0 and-0 return the exact original sparse candidate; no first-edit materialization; restoring the original candidate restores Scene geometry |
| First event→1000, last remains728 | First1000/second240, SourceOrderCrossing diagnostic, source order unchanged; root scope end1026 and height1113 cover the earlier outlier rather than the traversal tail |
| Nested action→1000 | Box top980/bottom1050; enclosing frame bottom1070; actual root scope/canvas cover it; following self-call636 remains fixed and overlap is diagnosed |
| Invalid/unsupported input | Unknown anchor, nonfinite y, compound frame movement and same-scope inverted birth/death fail explicitly |
| Scoped execution | Another thread sees baseline geometry; a deliberate panic restores the baseline scope |
The primary cases compare the entire Project and original SourceBundle and require the real Document to remain clean with no Undo/Redo entry. Canonical parser roundtrip is used, but it covers only the semantic Project: layout stays external. Candidate restoration is a reversible-sidecar check, **not** a production Undo implementation. No command has been added to Document.
## Explicit limitations and falsifiers
- Crossing source-ordered events is deliberately drawable with diagnostics. That proves removal of the mechanical floor, not adoption of unrestricted vertical notation. The crossing output remains an independent product-policy falsifier.
- An expanded frame can overlap the next event. Its diagnostic preserves that evidence instead of shifting the next event implicitly. The experiment does not establish a frame/header constraint policy or all feasible layouts.
- The same-scope creation-after-deletion case returns `LifetimeInversionNotSupported` before rendering. Current lifecycle intervals cannot truthfully depict that inversion without another representation policy. This is an experimental bridge limitation, not permission to reject semantically valid models or a user-approved global movement rule. Cross-operand lifecycle combinations remain unproven.
- Compound frame/operand movement, box resizing, horizontal layout, independent send/receive movement, route editing, drag transaction stamps, pointer capture, dirty-source recovery, persistence, REST and native UI are not implemented.
- Self-call send and receive roles are explicit, but the current activation engine still owns its existing row-based behavior. Peer #21's typed activation integration must consume the actual receive anchor and retain the existing lifetime clipping. These tests do not silently bless the old activation-start discrepancy.
- Scope/containment walking is deliberately straightforward and not a large-model performance implementation. There is no responsiveness claim.
- Some self-message fixture exchanges are unassigned because the current global relation model forbids self edges. The existing fixture's known incomplete-model warnings remain; tests reject semantic errors.
No storage or parser design should be adopted from this adapter. Coordinate any eventual payload with prospective #7, whose required addressing must preserve diagram/owner/occurrence identity and explicit anchor roles. Coordinate inverse resize with #16 and typed activation/lifetime union with #21 before broad UI work.
Parent reports [peer #21 comment716](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/21#issuecomment-716), posted2026-09-12 23:06UTC: Codex-956atf owns an isolated typed-activation/lifecycle source union. Its intended order is finalized rows/height, lifecycle construction and Create/Delete alignment, then typed Call/Reply attachment, with receiver/scope clipping, logical reply timing distinct from clipped geometry, no resurrection after Delete, and unanswered-call cues preserved. That WIP is not integrated here. Retain the explicit send/receive seam and review the future union against these fixtures; this paragraph records a coordination dependency, not verified acceptance of peer code.
## Reproduction and handoff
At the parent's chosen compiler checkpoint, use the configured Windows Rust/linker environment:
```powershell
cargo test -p oa-desktop behavior_anchor_plan_experiment --locked --offline -- --nocapture
cargo test -p oa-desktop behavior_layout_scene_experiment --locked --offline -- --nocapture
```
The first filter must execute ten new tests; the second must retain the ten existing floor/lifetime tests. Preserve compile failures, parser failures, numeric mismatches and diagnostics as results. Do not claim success from a zero-test filtered run or from compiling only production targets. An intentional panic should be followed by its restoration test passing; another panic payload is a failure.
Record exact compiled commit/uncommitted patch, commands and results before publication. Source hashes supplied with the handoff identify prepared bytes, not tested code. Root should publish the complete directory and exact behavior.rs delta so remote peers can reproduce it; workspace-local paths are not remote handoffs.
@@ -0,0 +1,270 @@
//! Experimental complete anchor input for the actual Scene, cfg(test) only.
//! No persistence schema and no replacement line/lifecycle/activation renderer.
use super::*;
use std::cell::RefCell;
mod tests;
type Candidate = BTreeMap<Id, f32>;
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
enum AnchorRole {
MessageSend,
MessageReceive,
Observation,
FrameStart,
OperandStart,
}
#[derive(Clone, Copy, Debug, PartialEq)]
struct Anchor {
y: f32,
role: AnchorRole,
}
#[derive(Clone, Copy, Debug, PartialEq)]
struct MessageAnchors {
send_y: f32,
receive_y: f32,
}
#[derive(Clone, Debug, PartialEq, Eq)]
enum Diagnostic {
SourceOrderCrossing { scope: Id, before: Id, after: Id },
FrameExtendsPastFollowingAnchor { frame: Id, following: Id },
}
#[derive(Clone, Debug, PartialEq, Eq)]
enum PlanError {
UnknownAnchor(Id),
NonFinite(Id),
CompoundMoveNotImplemented(Id),
LifetimeInversionNotSupported { create: Id, delete: Id },
}
#[derive(Clone, Debug)]
struct Plan {
anchors: BTreeMap<Id, Anchor>,
messages: BTreeMap<Id, MessageAnchors>,
frames: BTreeMap<Id, Rectangle>,
scopes: BTreeMap<Id, (f32, f32)>,
height: f32,
diagnostics: Vec<Diagnostic>,
}
fn occurrence(p: &Project, id: Id) -> Option<&OccurrenceBody> {
match p.elements.get(&id)?.shared()? {
SharedBody::Occurrence { body, .. } => Some(body),
_ => None,
}
}
fn role(body: &OccurrenceBody) -> AnchorRole {
match body {
OccurrenceBody::Exchange { message_kind: MessageKind::Create | MessageKind::Delete, .. } => AnchorRole::MessageReceive,
OccurrenceBody::Exchange { .. } => AnchorRole::MessageSend,
OccurrenceBody::Fragment { .. } => AnchorRole::FrameStart,
OccurrenceBody::Branch { .. } => AnchorRole::OperandStart,
_ => AnchorRole::Observation,
}
}
fn inside(p: &Project, id: Id, owner: Id) -> bool {
let mut current = p.elements.get(&id).and_then(|e| e.parent);
for _ in 0..p.elements.len() {
match current {
Some(parent) if parent == owner => return true,
Some(parent) => current = p.elements.get(&parent).and_then(|e| e.parent),
None => return false,
}
}
false
}
fn depth(p: &Project, id: Id) -> usize {
let mut current = p.elements.get(&id).and_then(|e| e.parent);
let mut result = 0;
while let Some(parent) = current {
result += 1;
if result > p.elements.len() { break; }
current = p.elements.get(&parent).and_then(|e| e.parent);
}
result
}
fn union(a: Rectangle, b: Rectangle) -> Rectangle {
let x = a.x.min(b.x);
let y = a.y.min(b.y);
Rectangle::new(Point::new(x, y), Size::new(
(a.x + a.width).max(b.x + b.width) - x,
(a.y + a.height).max(b.y + b.height) - y,
))
}
/// Actual named shapes/message paths supply footprint measurements; activation
/// bars are intentionally excluded because current Scene derives them later.
fn footprints(scene: &Scene, anchors: &BTreeMap<Id, Anchor>, seed: &BTreeMap<Id, Anchor>) -> BTreeMap<Id, Rectangle> {
let mut out = BTreeMap::new();
for item in scene.boxes.iter().filter(|item| !item.title.is_empty()) {
let Some(anchor) = anchors.get(&item.id) else { continue; };
let mut rect = item.rect;
rect.y += anchor.y - seed[&item.id].y;
out.insert(item.id, rect);
}
for line in &scene.lines {
let Some(anchor) = anchors.get(&line.id) else { continue; };
let delta = anchor.y - seed[&line.id].y;
let mut rect = line.label_bounds();
rect.y += delta;
for point in &line.points {
rect = union(rect, Rectangle::new(Point::new(point.x, point.y + delta), Size::ZERO));
}
out.entry(line.id).and_modify(|old| *old = union(*old, rect)).or_insert(rect);
}
out
}
fn covered_bounds(p: &Project, owner: Id, footprints: &BTreeMap<Id, Rectangle>) -> Option<Rectangle> {
footprints.iter().filter(|(id, _)| inside(p, **id, owner))
.map(|(_, rect)| *rect).reduce(union)
}
impl Plan {
fn build(p: &Project, owner: Id, baseline: &Scene, desired: &Candidate) -> Result<Self, PlanError> {
let mut seed: BTreeMap<_, _> = baseline.rows.iter().map(|(id, (_, y))| {
(*id, Anchor { y: *y, role: role(occurrence(p, *id).expect("Scene occurrence")) })
}).collect();
// Operand headers are real Scene boxes, but are not entries in rows.
for item in &baseline.boxes {
if matches!(occurrence(p, item.id), Some(OccurrenceBody::Branch { .. })) {
seed.insert(item.id, Anchor { y: item.rect.y, role: AnchorRole::OperandStart });
}
}
let mut anchors = seed.clone();
for (&id, &y) in desired {
let anchor = anchors.get_mut(&id).ok_or(PlanError::UnknownAnchor(id))?;
if !y.is_finite() { return Err(PlanError::NonFinite(id)); }
if matches!(anchor.role, AnchorRole::FrameStart | AnchorRole::OperandStart) && y != anchor.y {
return Err(PlanError::CompoundMoveNotImplemented(id));
}
anchor.y = y;
}
let mut messages = BTreeMap::new();
for line in &baseline.lines {
if let (Some(anchor), Some(first), Some(last)) = (anchors.get(&line.id), line.points.first(), line.points.last()) {
let delta = anchor.y - seed[&line.id].y;
messages.insert(line.id, MessageAnchors { send_y: first.y + delta, receive_y: last.y + delta });
}
}
// The current lifecycle bridge needs positive birth/death intervals.
// This is an explicit unsupported crossing, not a new semantic rule.
for (&create, message) in &messages {
if let Some(OccurrenceBody::Exchange { message_kind: MessageKind::Create, receiver: Some(lane), .. }) = occurrence(p, create) {
for (&delete, finish) in &messages {
if p.elements[&create].parent == p.elements[&delete].parent
&& matches!(occurrence(p, delete), Some(OccurrenceBody::Exchange { message_kind: MessageKind::Delete, receiver: Some(other), .. }) if other == lane)
&& message.receive_y > finish.receive_y {
return Err(PlanError::LifetimeInversionNotSupported { create, delete });
}
}
}
}
let old_footprints = footprints(baseline, &seed, &seed);
let mut drawn = footprints(baseline, &anchors, &seed);
let mut frames = BTreeMap::new();
let mut containers: Vec<_> = seed.keys().copied()
.filter(|id| matches!(occurrence(p, *id), Some(OccurrenceBody::Fragment { .. }))).collect();
containers.sort_by_key(|id| std::cmp::Reverse(depth(p, *id)));
for id in containers {
let original = old_footprints[&id];
let mut rect = original;
if let Some(covered) = covered_bounds(p, id, &drawn) {
// Keep seed extents where possible; 20px growth padding is an
// explicit experimental presentation preference, not semantics.
if covered.y < rect.y { rect = union(rect, Rectangle::new(Point::new(covered.x, covered.y - 20.), Size::new(covered.width, covered.height + 20.))); }
if covered.y + covered.height > rect.y + rect.height {
rect.height = covered.y + covered.height + 20. - rect.y;
}
}
frames.insert(id, rect);
drawn.insert(id, rect);
}
let mut scopes = baseline.sequence_bounds.clone();
for (&scope, bounds) in &mut scopes {
if let (Some(old), Some(new)) = (covered_bounds(p, scope, &old_footprints), covered_bounds(p, scope, &drawn)) {
let top_padding = (old.y - bounds.0).max(0.);
let bottom_padding = (bounds.1 - old.y - old.height).max(0.);
if new.y < bounds.0 { bounds.0 = new.y - top_padding; }
bounds.1 = bounds.1.max(new.y + new.height + bottom_padding);
}
}
let tail = baseline.size.height - baseline.sequence_bounds[&owner].1;
let height = baseline.size.height.max(scopes[&owner].1 + tail);
let mut diagnostics = Vec::new();
for element in p.elements.values().filter(|e| e.id == owner || inside(p, e.id, owner)) {
if let Some(steps) = element.steps() {
for pair in steps.windows(2) {
if let (Some(a), Some(b)) = (anchors.get(&pair[0]), anchors.get(&pair[1])) {
if a.y > b.y { diagnostics.push(Diagnostic::SourceOrderCrossing { scope: element.id, before: pair[0], after: pair[1] }); }
if let Some(frame) = frames.get(&pair[0]) {
if frame.y + frame.height > b.y { diagnostics.push(Diagnostic::FrameExtendsPastFollowingAnchor { frame: pair[0], following: pair[1] }); }
}
}
}
}
}
Ok(Self { anchors, messages, frames, scopes, height, diagnostics })
}
}
thread_local! {
static PLAN: RefCell<Option<Plan>> = const { RefCell::new(None) };
}
struct Scope(Option<Plan>);
impl Scope {
fn install(plan: &Plan) -> Self { Self(PLAN.with(|slot| slot.replace(Some(plan.clone())))) }
}
impl Drop for Scope {
fn drop(&mut self) { PLAN.with(|slot| { slot.replace(self.0.take()); }); }
}
pub(super) fn row_anchor(id: Id, y: &mut f32) {
PLAN.with(|slot| {
if let Some(plan) = slot.borrow().as_ref() {
*y = plan.anchors.get(&id).expect("complete Scene anchor plan").y;
}
});
}
pub(super) fn frame_bounds(id: Id, fallback: Rectangle) -> Rectangle {
PLAN.with(|slot| slot.borrow().as_ref().map_or(fallback, |plan| plan.frames[&id]))
}
pub(super) fn scope_end(owner: Id, y: &mut f32, bounds: &mut BTreeMap<Id, (f32, f32)>) {
PLAN.with(|slot| {
if let Some(plan) = slot.borrow().as_ref() {
bounds.insert(owner, plan.scopes[&owner]);
*y = plan.scopes[&owner].1 + 42.; // Existing insertion-axis offset.
}
});
}
pub(super) fn scene_extent(scene: &mut Scene) {
PLAN.with(|slot| {
if let Some(plan) = slot.borrow().as_ref() { scene.size.height = plan.height; }
});
}
fn render(p: &Project, owner: Id, plan: &Plan) -> Scene {
let _scope = Scope::install(plan);
Scene::sequence(p, owner, owner)
}
fn drag(original: &Candidate, frame: &Scene, target: Id, delta_y: f32) -> Candidate {
assert!(delta_y.is_finite());
if delta_y == 0. { return original.clone(); }
let mut result = original.clone();
result.insert(target, frame.rows[&target].1 + delta_y);
result
}
@@ -0,0 +1,276 @@
use super::*;
use crate::document::Document;
use oa_core::{language, source_project::{ProjectLimits, SourceBundle}, validation};
fn id(p: &Project, alias: &str) -> Id {
p.identities().into_iter().find(|(_, name)| *name == alias).unwrap().0
}
fn fixture(lifetime: bool) -> (Document, Id) {
let (name, input, owner) = if lifetime {
("lifetime.arcadia", include_str!("../behavior-layout-scene-20260912/lifetime.arcadia"), "lifetime_conversation")
} else {
("fixture.arcadia", include_str!("../behavior-layout-scene-20260912/fixture.arcadia"), "conversation")
};
let p = language::parse(input).expect("existing real Arcadia fixture");
let errors: Vec<_> = validation::validate(&p).into_iter()
.filter(|issue| issue.severity == validation::Severity::Error).collect();
assert!(errors.is_empty(), "{errors:?}");
let bundle = SourceBundle { entry: name.into(), files: BTreeMap::from([(name.into(), input.into())]) };
let document = Document::from_bundle(bundle, ProjectLimits::default()).unwrap();
assert_eq!(document.project(), &p);
assert_eq!(language::parse(&language::format(&p)).unwrap(), p);
let owner = id(&p, owner);
(document, owner)
}
fn passive(document: &Document, before: &Project, source: &SourceBundle) {
assert_eq!(document.project(), before);
assert_eq!(document.bundle(), source);
assert!(!document.dirty());
assert!(!document.can_undo() && !document.can_redo());
}
fn row(scene: &Scene, id: Id) -> f32 { scene.rows[&id].1 }
fn line(scene: &Scene, id: Id) -> &Line {
assert_eq!(scene.lines.iter().filter(|line| line.id == id).count(), 1);
scene.lines.iter().find(|line| line.id == id).unwrap()
}
fn named_box(scene: &Scene, id: Id) -> &BoxItem {
scene.boxes.iter().find(|item| item.id == id && !item.title.is_empty()).unwrap()
}
fn same_scene(a: &Scene, b: &Scene) {
assert_eq!(a.rows, b.rows);
assert_eq!(a.sequence_bounds, b.sequence_bounds);
assert_eq!(a.size, b.size);
assert_eq!(a.lanes, b.lanes);
assert_eq!(a.lifecycle, b.lifecycle);
assert_eq!(a.open_calls, b.open_calls);
let boxes = |s: &Scene| s.boxes.iter().map(|b| (b.id,b.rect,b.title.clone(),b.detail.clone(),b.marker)).collect::<Vec<_>>();
let lines = |s: &Scene| s.lines.iter().map(|l| (l.id,l.points.clone(),l.label_at,l.label.clone(),l.dashed)).collect::<Vec<_>>();
let slots = |s: &Scene| s.slots.iter().map(|slot| (slot.slot.parent,slot.slot.before,slot.y,slot.label.clone())).collect::<Vec<_>>();
assert_eq!(boxes(a),boxes(b));
assert_eq!(lines(a),lines(b));
assert_eq!(slots(a),slots(b));
}
fn others_fixed(before: &Scene, after: &Scene, changed: Id) {
assert_eq!(before.rows.len(),after.rows.len());
for (&id, original) in &before.rows {
if id != changed { assert_eq!(&after.rows[&id],original,"unexpected movement of {id}"); }
}
}
#[test]
fn complete_seed_plan_preserves_both_actual_scene_and_document_baselines() {
for lifetime in [false,true] {
let (document,owner)=fixture(lifetime);
let p=document.project(); let before=p.clone(); let source=document.bundle().clone();
let baseline=Scene::sequence(p,owner,owner);
let plan=Plan::build(p,owner,&baseline,&Candidate::new()).unwrap();
assert!(plan.diagnostics.is_empty());
for (&id,(_,y)) in &baseline.rows { assert_eq!(plan.anchors[&id].y,*y); }
same_scene(&baseline,&render(p,owner,&plan));
let reparsed=language::parse(&language::format(p)).unwrap();
same_scene(&baseline,&render(&reparsed,owner,&plan));
passive(&document,&before,&source);
}
}
#[test]
fn upward_second_delivery_reaches_200_and_all_other_occurrence_anchors_stay_fixed() {
let (document,owner)=fixture(false);
let p=document.project(); let before=p.clone(); let source=document.bundle().clone();
let baseline=Scene::sequence(p,owner,owner);
let first=id(p,"first"); let second=id(p,"second");
assert_ne!(first,second);
for occurrence_id in [first,second] {
assert!(matches!(occurrence(p,occurrence_id),Some(OccurrenceBody::Exchange { exchange:Some(edge),.. }) if *edge==id(p,"channel")));
}
assert_eq!((row(&baseline,first),row(&baseline,second)),(148.,240.));
let candidate=drag(&Candidate::new(),&baseline,second,-40.);
assert_eq!(candidate,Candidate::from([(second,200.)]));
let plan=Plan::build(p,owner,&baseline,&candidate).unwrap();
let moved=render(p,owner,&plan);
assert_eq!((row(&moved,first),row(&moved,second)),(148.,200.));
others_fixed(&baseline,&moved,second);
assert_eq!(line(&moved,first).points,line(&baseline,first).points);
let left=moved.lanes[&id(p,"left")]; let right=moved.lanes[&id(p,"right")];
assert_eq!(line(&moved,second).points,vec![Point::new(left,200.),Point::new(right,200.)]);
assert_eq!(plan.messages[&second],MessageAnchors { send_y:200.,receive_y:200. });
assert!(plan.diagnostics.is_empty());
same_scene(&moved,&render(p,owner,&plan));
passive(&document,&before,&source);
}
#[test]
fn nested_upward_anchor_reaches_457_without_moving_parent_or_followers() {
let (document,owner)=fixture(false);
let p=document.project(); let before=p.clone(); let source=document.bundle().clone();
let baseline=Scene::sequence(p,owner,owner);
let nested=id(p,"nested"); let fragment=id(p,"fragment");
assert_eq!(row(&baseline,nested),477.);
let candidate=drag(&Candidate::new(),&baseline,nested,-20.);
let plan=Plan::build(p,owner,&baseline,&candidate).unwrap();
let moved=render(p,owner,&plan);
assert_eq!(row(&moved,nested),457.);
assert_eq!(named_box(&moved,nested).rect.y,437.);
assert_eq!(named_box(&moved,nested).rect.height,70.);
assert_eq!(named_box(&moved,fragment).rect,named_box(&baseline,fragment).rect);
assert_eq!((named_box(&moved,fragment).rect.y,named_box(&moved,fragment).rect.height),(332.,240.));
assert_eq!(moved.sequence_bounds[&id(p,"operand")],baseline.sequence_bounds[&id(p,"operand")]);
others_fixed(&baseline,&moved,nested);
assert!(plan.diagnostics.is_empty());
passive(&document,&before,&source);
}
#[test]
fn earlier_death_reaches_380_and_actual_lifetime_and_activation_clip_there() {
let (document,owner)=fixture(true);
let p=document.project(); let before=p.clone(); let source=document.bundle().clone();
let baseline=Scene::sequence(p,owner,owner);
let create=id(p,"create_receiver"); let call=id(p,"service_call"); let delete=id(p,"delete_receiver");
let provider=id(p,"provider");
assert_eq!((row(&baseline,create),row(&baseline,call),row(&baseline,delete)),(243.,335.,427.));
let candidate=drag(&Candidate::new(),&baseline,delete,-47.);
let plan=Plan::build(p,owner,&baseline,&candidate).unwrap();
assert_eq!(plan.anchors[&delete].role,AnchorRole::MessageReceive);
assert_eq!(plan.messages[&delete],MessageAnchors { send_y:380.,receive_y:380. });
let moved=render(p,owner,&plan);
assert_eq!(row(&moved,delete),380.);
others_fixed(&baseline,&moved,delete);
let spans=moved.lifecycle.alive_spans(provider,owner,85.,moved.size.height-20.);
assert_eq!(spans.iter().map(|s|(s.start,s.end)).collect::<Vec<_>>(),vec![(243.,380.)]);
assert!(moved.lifecycle.alive_spans(provider,owner,380.,moved.size.height-20.).is_empty());
let x=moved.lanes[&provider];
assert_eq!(moved.lifecycle.marker_at(Point::new(x,380.)),Some(delete));
assert_eq!(moved.lifecycle.marker_at(Point::new(x,427.)),None);
assert_eq!(moved.hit(Point::new(x,380.)),Some(delete));
let bars:Vec<_>=moved.boxes.iter().filter(|b|b.id==call && b.title.is_empty()).collect();
assert_eq!(bars.len(),1);
assert_eq!(bars[0].rect,Rectangle::new(Point::new(x-4.,335.),Size::new(8.,45.)));
assert_eq!(moved.open_calls,vec![Point::new(x+12.,364.)]);
assert!(plan.diagnostics.is_empty());
passive(&document,&before,&source);
}
#[test]
fn self_call_has_explicit_send610_receive634_and_reply_stays728() {
let (document,owner)=fixture(false);
let p=document.project(); let before=p.clone(); let source=document.bundle().clone();
let baseline=Scene::sequence(p,owner,owner);
let call=id(p,"self_call"); let reply=id(p,"self_reply");
let candidate=drag(&Candidate::new(),&baseline,call,-26.);
let plan=Plan::build(p,owner,&baseline,&candidate).unwrap();
assert_eq!(plan.anchors[&call],Anchor { y:610.,role:AnchorRole::MessageSend });
assert_eq!(plan.messages[&call],MessageAnchors { send_y:610.,receive_y:634. });
let moved=render(p,owner,&plan);
assert_eq!(row(&moved,call),610.);
assert_eq!(row(&moved,reply),728.);
assert_eq!(line(&moved,call).points.iter().map(|p|p.y).collect::<Vec<_>>(),vec![610.,610.,634.,634.]);
assert_eq!(line(&moved,reply).points,line(&baseline,reply).points);
others_fixed(&baseline,&moved,call);
// Peer #21 owns the activation start/column contract. This assertion covers
// actual message anchors, not the old row-based activation start defect.
passive(&document,&before,&source);
}
#[test]
fn signed_zero_keeps_sparse_candidate_and_restoring_original_candidate_restores_actual_scene() {
let (document,owner)=fixture(false);
let p=document.project(); let before=p.clone(); let source=document.bundle().clone();
let baseline=Scene::sequence(p,owner,owner);
let second=id(p,"second");
let original=Candidate::new();
for zero in [0.,-0.] { assert_eq!(drag(&original,&baseline,second,zero),original); }
let changed=drag(&original,&baseline,second,-40.);
let plan=Plan::build(p,owner,&baseline,&changed).unwrap();
let frame=render(p,owner,&plan);
for zero in [0.,-0.] {
let untouched=drag(&changed,&frame,second,zero);
assert_eq!(untouched,changed);
same_scene(&frame,&render(p,owner,&Plan::build(p,owner,&baseline,&untouched).unwrap()));
}
// This restores the exact sidecar candidate; it is not a production Undo
// command or evidence of a layout source/REST persistence implementation.
same_scene(&baseline,&render(p,owner,&Plan::build(p,owner,&baseline,&original).unwrap()));
passive(&document,&before,&source);
}
#[test]
fn crossing_is_rendered_exactly_and_diagnosed_with_extents_covering_the_earlier_far_event() {
let (document,owner)=fixture(false);
let p=document.project(); let before=p.clone(); let source=document.bundle().clone();
let baseline=Scene::sequence(p,owner,owner);
let first=id(p,"first"); let second=id(p,"second");
let plan=Plan::build(p,owner,&baseline,&Candidate::from([(first,1000.)])).unwrap();
assert!(plan.diagnostics.contains(&Diagnostic::SourceOrderCrossing { scope:owner,before:first,after:second }));
let moved=render(p,owner,&plan);
assert_eq!((row(&moved,first),row(&moved,second)),(1000.,240.));
assert_eq!(row(&moved,id(p,"self_reply")),728.);
others_fixed(&baseline,&moved,first);
assert_eq!(moved.sequence_bounds[&owner].1,1026.);
assert_eq!(moved.size.height,1113.);
assert!(line(&moved,first).points.iter().all(|point| point.y<moved.size.height));
assert_eq!(&p.elements[&owner].steps().unwrap()[..2],&[first,second]);
// This is a policy falsifier: mechanically exact coordinates do not prove
// that out-of-order vertical notation is understandable or acceptable.
passive(&document,&before,&source);
}
#[test]
fn nested_outlier_expands_enclosing_geometry_without_using_final_traversal_row_as_extent() {
let (document,owner)=fixture(false);
let p=document.project(); let baseline=Scene::sequence(p,owner,owner);
let nested=id(p,"nested"); let fragment=id(p,"fragment"); let following=id(p,"self_call");
let plan=Plan::build(p,owner,&baseline,&Candidate::from([(nested,1000.)])).unwrap();
assert!(plan.diagnostics.contains(&Diagnostic::FrameExtendsPastFollowingAnchor { frame:fragment,following }));
let moved=render(p,owner,&plan);
assert_eq!(row(&moved,nested),1000.);
assert_eq!(named_box(&moved,nested).rect.y,980.);
let enclosing=named_box(&moved,fragment).rect;
assert_eq!(enclosing.y+enclosing.height,1070.);
assert!(moved.sequence_bounds[&owner].1>=1070.);
assert!(moved.size.height>1070.);
assert_eq!(row(&moved,following),636.);
others_fixed(&baseline,&moved,nested);
}
#[test]
fn unsupported_targets_and_lifetime_inversion_fail_explicitly_instead_of_silent_clamping() {
let (document,owner)=fixture(true);
let p=document.project(); let baseline=Scene::sequence(p,owner,owner);
let create=id(p,"create_receiver"); let delete=id(p,"delete_receiver");
assert_eq!(Plan::build(p,owner,&baseline,&Candidate::from([(delete,200.)])).unwrap_err(),
PlanError::LifetimeInversionNotSupported { create,delete });
assert_eq!(Plan::build(p,owner,&baseline,&Candidate::from([(delete,f32::NAN)])).unwrap_err(),PlanError::NonFinite(delete));
let edge=id(p,"service");
assert_eq!(Plan::build(p,owner,&baseline,&Candidate::from([(edge,200.)])).unwrap_err(),PlanError::UnknownAnchor(edge));
let (other,other_owner)=fixture(false);
let fragment=id(other.project(),"fragment");
let other_scene=Scene::sequence(other.project(),other_owner,other_owner);
assert_eq!(Plan::build(other.project(),other_owner,&other_scene,&Candidate::from([(fragment,300.)])).unwrap_err(),
PlanError::CompoundMoveNotImplemented(fragment));
}
#[test]
fn complete_plan_scope_is_inactive_in_other_threads_and_restored_after_deliberate_panic() {
let (document,owner)=fixture(false);
let p=document.project(); let baseline=Scene::sequence(p,owner,owner);
let second=id(p,"second");
let plan=Plan::build(p,owner,&baseline,&Candidate::from([(second,200.)])).unwrap();
let caught=std::panic::catch_unwind(|| {
let _scope=Scope::install(&plan);
assert_eq!(row(&Scene::sequence(p,owner,owner),second),200.);
std::thread::spawn(|| {
let (document,owner)=fixture(false);
let p=document.project();
assert_eq!(row(&Scene::sequence(p,owner,owner),id(p,"second")),240.);
}).join().unwrap();
panic!("deliberate complete-anchor scope unwind");
});
let payload=caught.expect_err("deliberate panic is required");
assert_eq!(payload.downcast_ref::<&str>().copied(),Some("deliberate complete-anchor scope unwind"));
same_scene(&baseline,&Scene::sequence(p,owner,owner));
}
@@ -0,0 +1,51 @@
diff --git a/crates/oa-desktop/src/behavior.rs b/crates/oa-desktop/src/behavior.rs
index 3f9fd97..f1ef5b7 100644
--- a/crates/oa-desktop/src/behavior.rs
+++ b/crates/oa-desktop/src/behavior.rs
@@ -1121,6 +1121,10 @@ fn in_machine(p: &Project, id: Id, machine: Id) -> bool {
#[path = "../../../harness/experiments/behavior-layout-scene-20260912/mod.rs"]
mod behavior_layout_scene_experiment;
+#[cfg(test)]
+#[path = "../../../harness/experiments/behavior-anchor-plan-20260912/mod.rs"]
+mod behavior_anchor_plan_experiment;
+
struct BoxItem {
id: Id,
rect: Rectangle,
@@ -1332,6 +1336,8 @@ impl Scene {
let mut y = if scenario { 148. } else { 120. };
scene.occurrences(p, owner, scenario, &lane_x, &mut y, 0);
scene.size.height = (y + 45.).max(210.);
+ #[cfg(test)]
+ behavior_anchor_plan_experiment::scene_extent(&mut scene);
if scenario {
scene.lifecycle = scenario_lifecycle::render::Rendering::new(
p,
@@ -1441,6 +1447,8 @@ impl Scene {
}
#[cfg(test)]
behavior_layout_scene_experiment::resolve_row_anchor(*id, y);
+ #[cfg(test)]
+ behavior_anchor_plan_experiment::row_anchor(*id, y);
if ordered {
let slot = scenario::Slot {
parent: owner,
@@ -1465,6 +1473,8 @@ impl Scene {
(*y - top).max(95.),
),
);
+ #[cfg(test)]
+ let rect = behavior_anchor_plan_experiment::frame_bounds(*id, rect);
self.boxes.insert(
0,
BoxItem {
@@ -1649,6 +1659,8 @@ impl Scene {
}
if ordered {
self.sequence_bounds.insert(owner, (sequence_top, *y - 42.));
+ #[cfg(test)]
+ behavior_anchor_plan_experiment::scope_end(owner, y, &mut self.sequence_bounds);
let slot = scenario::Slot {
parent: owner,
before: None,
@@ -0,0 +1,31 @@
{
"base": "66a1f1690f778c8814bfefff7f46fe7f6bbe520e",
"status": "Static-review candidate; not compiled or executed",
"files": [
{
"path": "crates/oa-desktop/src/behavior.rs",
"bytes": 137409,
"sha256": "5884BA35AD994EB5936CA29C071A5002EFC221DC42EF35E2265D50593BDF60EC"
},
{
"path": "harness/experiments/behavior-anchor-plan-20260912/mod.rs",
"bytes": 10863,
"sha256": "CA7CFE5DD1FBE37D54E5E96F0C73825D0AA0B06733E19C62592BF2AAFD62EC2F"
},
{
"path": "harness/experiments/behavior-anchor-plan-20260912/tests.rs",
"bytes": 14475,
"sha256": "477B6D271CCBC95CFFF415DDE3DAE5CF4B7F1DEE12D4D5FCE6B095A0DF35891C"
},
{
"path": "harness/experiments/behavior-anchor-plan-20260912/README.md",
"bytes": 10076,
"sha256": "6B9AD8B34AFC1E62931865007F7AFE57D28DC54AB9C805F33D3D86D215588514"
},
{
"path": "harness/experiments/behavior-anchor-plan-20260912/wiring.patch",
"bytes": 2131,
"sha256": "4CE4BC45FBC419EBA6A07B048B82EFB8D85525514E3D2E56421948E7733F40FD"
}
]
}
@@ -0,0 +1,79 @@
# Complete anchor plan into actual Scene — pending execution
Prepared 2026-09-12 in isolated branch `codex/behavior-anchor-plan-ytr83r-20260912`, base `66a1f1690f778c8814bfefff7f46fe7f6bbe520e`. Parent owns compilation and publication. **Not compiled, executed, staged or committed.** Only test-only additions to `crates/oa-desktop/src/behavior.rs` and this new directory were authored. The existing floor experiment and its fixtures are unchanged. All new production-file statements are guarded by `cfg(test)`; normal production rendering is unchanged.
## Bounded question
Can a complete ephemeral anchor plan drive the actual Scene at exact requested y coordinates without the old running-cursor floor, preserve unspecified anchors and the entire Document, and maintain covered extents and real lifecycle derivation? This isolates the integration seam from the unresolved choice of a product movement policy.
The old floor candidate imposed existing seed increments on every requested row. This candidate seeds missing anchors from the actual baseline Scene, then replaces explicitly requested coordinates exactly. It does not impose sequence-order constraints or overlap spacing. Source-order crossings are returned as diagnostic data, not silently clamped or converted into semantic Reorder. This is a mechanical projection experiment, not evidence that crossed vertical ordering is acceptable UX.
`Candidate` is an external map keyed by occurrence UUID. `Plan` is a complete resolved input for the currently visible Scene, including operand headers missing from the ordinary rows map. It contains row roles, derived message send/receive y values, frame bounds, sequence extents and canvas height. It is not a model, parser or REST payload.
## Actual code boundary and wiring
`wiring.patch` records the exact production-file delta from the base commit. The five new cfg(test) integration points are:
1. Include this module as a private child of `behavior`, next to the unchanged floor module.
2. Immediately after the old floor hook, consume the complete plan's exact occurrence anchor, before Scene records rows and constructs the occurrence's existing geometry.
3. Before inserting an existing fragment BoxItem, use the plan's frame bounds. Existing fragment paint and label code remain in place.
4. Immediately after recording a sequence's bounds, substitute planned bounds and update the existing final insertion axis. An earlier event placed lower than the last event cannot truncate the scope merely because traversal ends earlier.
5. Before current lifecycle and activation construction, substitute the covered canvas height. Current `Rendering::new`, message alignment, activation generation and drawing remain responsible for their actual geometry.
The plan is scoped per thread, inactive by default, restored by Drop during unwinding, and has a deliberate-panic test requiring the exact sentinel payload. Other tests on other threads cannot consume its plan. The original floor hooks remain operational when their own scope is active; the new plan is otherwise absent.
Footprints are measured from the actual baseline named boxes, message polylines and label bounds, translated by requested row deltas. This avoids cloning the renderer's line or lifecycle algorithms. Empty activation bars are excluded because the real renderer derives those later. Frames conservatively preserve seed extents and can grow downward; growth adds an explicitly experimental 20px presentation margin. A move requiring upward frame growth returns `FixedFrameHeaderWouldMove`, because the candidate cannot move an unspecified painted header while retaining its FrameStart and insertion slot. Mere overlap inside the existing frame is not categorically rejected. Sequence bounds preserve seed extents and measured edge padding while expanding to cover outliers; canvas height uses the original scope-to-canvas margin. Neither these margins nor nonshrinking seed extents are adopted user requirements. This is not a general container-resize solver.
## Independently expected checks
Twelve new test functions use the existing hand-authored fixtures through the actual parser and Document bundle loader. Numeric expectations below are independently stated rather than generated from the new planner:
| Case | Expected actual Scene result |
| --- | --- |
| Empty complete plan, both fixtures | Same rows, named boxes and marker kinds, lines and labels, scopes, slots, lifecycle, open calls and size as the unmodified baseline Scene |
| Second delivery240→200 | First148; second200; every other occurrence anchor unchanged; both second-message endpoints200; repeated exchange references retain different occurrence IDs |
| Nested action477→457 | Box top437, height70; actual fragment metadata and active header332..370 retained, header hit still resolves the fragment, before-slot290 and label unchanged; operand bounds and all other anchors unchanged |
| Nested action→300 | Proposed footprint280..350 would relocate unspecified frame top332 to260; reject with `FixedFrameHeaderWouldMove` before rendering. Nested353 remains admitted despite overlap inside the fixed frame |
| Create243→50 or84 | Reject with `LifecycleAnchorOutsideRenderScope`; actual root lifecycle span starts85 even when insertion-scope planning expands higher. At85 the real birth marker and alive span85..427 remain present |
| Death427→380 | Create243 and call335 stay fixed; real alive span243..380; actual bar335..380; death marker/hit moves to380; unresolved-call cue remains, no Reply is invented |
| Self-call636→610 | Actual send610/receive634, using the current24 offset; reply728 unchanged; MessageSend role distinguished from the lifecycle MessageReceive role |
| Signed zero and candidate restoration | Both0 and-0 return the exact original sparse candidate; no first-edit materialization; restoring the original candidate restores Scene geometry |
| First event→1000, last remains728 | First1000/second240, SourceOrderCrossing diagnostic, source order unchanged; root scope end1026 and height1113 cover the earlier outlier rather than the traversal tail |
| Nested action→1000 | Box top980/bottom1050; enclosing frame bottom1070; actual root scope/canvas cover it; following self-call636 remains fixed and overlap is diagnosed |
| Invalid/unsupported input | Unknown anchor, nonfinite y, compound frame movement and same-scope inverted birth/death fail explicitly |
| Scoped execution | Another thread sees baseline geometry; a deliberate panic restores the baseline scope |
The primary cases compare the entire Project and original SourceBundle and require the real Document to remain clean with no Undo/Redo entry. Canonical parser roundtrip is used, but it covers only the semantic Project: layout stays external. Candidate restoration is a reversible-sidecar check, **not** a production Undo implementation. No command has been added to Document.
## Explicit limitations and falsifiers
- Crossing source-ordered events is deliberately drawable with diagnostics. That proves removal of the mechanical floor, not adoption of unrestricted vertical notation. The crossing output remains an independent product-policy falsifier.
- An expanded frame can overlap the next event. Its diagnostic preserves that evidence instead of shifting the next event implicitly. The experiment does not establish a frame/header constraint policy or all feasible layouts.
- Upward growth that would relocate an unspecified frame header is explicitly unsupported. This does not ban arbitrary overlap gaps; the numeric353 example remains admitted. Full compound/header movement policy remains unresolved.
- Lifecycle receive anchors must be within the actual effective Rendering scope: root85..height-20, or its recorded non-root scope with the renderer's existing empty-scope allowance. Outside coordinates are rejected before exposing a Scene whose row exists but whose marker/lifetime is missing. This bounds the inspected bridge; it does not establish general ancestor/operand ordering or cross-operand lifetime support.
- The same-scope creation-after-deletion case returns `LifetimeInversionNotSupported` before rendering. Current lifecycle intervals cannot truthfully depict that inversion without another representation policy. This is an experimental bridge limitation, not permission to reject semantically valid models or a user-approved global movement rule. Cross-operand lifecycle combinations remain unproven.
- Compound frame/operand movement, box resizing, horizontal layout, independent send/receive movement, route editing, drag transaction stamps, pointer capture, dirty-source recovery, persistence, REST and native UI are not implemented.
- Self-call send and receive roles are explicit, but the current activation engine still owns its existing row-based behavior. Peer #21's typed activation integration must consume the actual receive anchor and retain the existing lifetime clipping. These tests do not silently bless the old activation-start discrepancy.
- Scope/containment walking is deliberately straightforward and not a large-model performance implementation. There is no responsiveness claim.
- Some self-message fixture exchanges are unassigned because the current global relation model forbids self edges. The existing fixture's known incomplete-model warnings remain; tests reject semantic errors.
No storage or parser design should be adopted from this adapter. Coordinate any eventual payload with prospective #7, whose required addressing must preserve diagram/owner/occurrence identity and explicit anchor roles. Coordinate inverse resize with #16 and typed activation/lifetime union with #21 before broad UI work.
Parent reports [peer #21 comment716](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/21#issuecomment-716), posted2026-09-12 23:06UTC: Codex-956atf owns an isolated typed-activation/lifecycle source union. Its intended order is finalized rows/height, lifecycle construction and Create/Delete alignment, then typed Call/Reply attachment, with receiver/scope clipping, logical reply timing distinct from clipped geometry, no resurrection after Delete, and unanswered-call cues preserved. That WIP is not integrated here. Retain the explicit send/receive seam and review the future union against these fixtures; this paragraph records a coordination dependency, not verified acceptance of peer code.
## Reproduction and handoff
At the parent's chosen compiler checkpoint, use the configured Windows Rust/linker environment:
```powershell
cargo test -p oa-desktop behavior_anchor_plan_experiment --locked --offline -- --nocapture
cargo test -p oa-desktop behavior_layout_scene_experiment --locked --offline -- --nocapture
```
The first filter must execute twelve new tests; the second must retain the ten existing floor/lifetime tests. Preserve compile failures, parser failures, numeric mismatches and diagnostics as results. Do not claim success from a zero-test filtered run or from compiling only production targets. An intentional panic should be followed by its restoration test passing; another panic payload is a failure.
## Static review correction history
The frozen attempt1 candidate was preserved before these corrections. Parent's authoritative archive is `.local/behavior-anchor-plan-review-20260912/attempt1` with its five-file hash manifest; parent owns portable archival publication. The pre-review failures are static, unexecuted findings: nested300 silently moved the frame header to260 while row332/slot290 stayed fixed, and Create50 was omitted as MissingGeometry by the actual root lifetime span starting85. The corrected candidate adds named unsupported errors and independent numeric checks rather than recording either original behavior as acceptance. Production hooks and the original floor experiment remain unchanged.
Record exact compiled commit/uncommitted patch, commands and results before publication. Source hashes supplied with the handoff identify prepared bytes, not tested code. Root should publish the complete directory and exact behavior.rs delta so remote peers can reproduce it; workspace-local paths are not remote handoffs.
@@ -0,0 +1,297 @@
//! Experimental complete anchor input for the actual Scene, cfg(test) only.
//! No persistence schema and no replacement line/lifecycle/activation renderer.
use super::*;
use std::cell::RefCell;
mod tests;
type Candidate = BTreeMap<Id, f32>;
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
enum AnchorRole {
MessageSend,
MessageReceive,
Observation,
FrameStart,
OperandStart,
}
#[derive(Clone, Copy, Debug, PartialEq)]
struct Anchor {
y: f32,
role: AnchorRole,
}
#[derive(Clone, Copy, Debug, PartialEq)]
struct MessageAnchors {
send_y: f32,
receive_y: f32,
}
#[derive(Clone, Debug, PartialEq, Eq)]
enum Diagnostic {
SourceOrderCrossing { scope: Id, before: Id, after: Id },
FrameExtendsPastFollowingAnchor { frame: Id, following: Id },
}
#[derive(Clone, Debug, PartialEq, Eq)]
enum PlanError {
UnknownAnchor(Id),
NonFinite(Id),
CompoundMoveNotImplemented(Id),
FixedFrameHeaderWouldMove { frame: Id },
LifecycleAnchorOutsideRenderScope { occurrence: Id, scope: Id },
LifetimeInversionNotSupported { create: Id, delete: Id },
}
#[derive(Clone, Debug)]
struct Plan {
anchors: BTreeMap<Id, Anchor>,
messages: BTreeMap<Id, MessageAnchors>,
frames: BTreeMap<Id, Rectangle>,
scopes: BTreeMap<Id, (f32, f32)>,
height: f32,
diagnostics: Vec<Diagnostic>,
}
fn occurrence(p: &Project, id: Id) -> Option<&OccurrenceBody> {
match p.elements.get(&id)?.shared()? {
SharedBody::Occurrence { body, .. } => Some(body),
_ => None,
}
}
fn role(body: &OccurrenceBody) -> AnchorRole {
match body {
OccurrenceBody::Exchange { message_kind: MessageKind::Create | MessageKind::Delete, .. } => AnchorRole::MessageReceive,
OccurrenceBody::Exchange { .. } => AnchorRole::MessageSend,
OccurrenceBody::Fragment { .. } => AnchorRole::FrameStart,
OccurrenceBody::Branch { .. } => AnchorRole::OperandStart,
_ => AnchorRole::Observation,
}
}
fn inside(p: &Project, id: Id, owner: Id) -> bool {
let mut current = p.elements.get(&id).and_then(|e| e.parent);
for _ in 0..p.elements.len() {
match current {
Some(parent) if parent == owner => return true,
Some(parent) => current = p.elements.get(&parent).and_then(|e| e.parent),
None => return false,
}
}
false
}
fn depth(p: &Project, id: Id) -> usize {
let mut current = p.elements.get(&id).and_then(|e| e.parent);
let mut result = 0;
while let Some(parent) = current {
result += 1;
if result > p.elements.len() { break; }
current = p.elements.get(&parent).and_then(|e| e.parent);
}
result
}
fn union(a: Rectangle, b: Rectangle) -> Rectangle {
let x = a.x.min(b.x);
let y = a.y.min(b.y);
Rectangle::new(Point::new(x, y), Size::new(
(a.x + a.width).max(b.x + b.width) - x,
(a.y + a.height).max(b.y + b.height) - y,
))
}
/// Actual named shapes/message paths supply footprint measurements; activation
/// bars are intentionally excluded because current Scene derives them later.
fn footprints(scene: &Scene, anchors: &BTreeMap<Id, Anchor>, seed: &BTreeMap<Id, Anchor>) -> BTreeMap<Id, Rectangle> {
let mut out = BTreeMap::new();
for item in scene.boxes.iter().filter(|item| !item.title.is_empty()) {
let Some(anchor) = anchors.get(&item.id) else { continue; };
let mut rect = item.rect;
rect.y += anchor.y - seed[&item.id].y;
out.insert(item.id, rect);
}
for line in &scene.lines {
let Some(anchor) = anchors.get(&line.id) else { continue; };
let delta = anchor.y - seed[&line.id].y;
let mut rect = line.label_bounds();
rect.y += delta;
for point in &line.points {
rect = union(rect, Rectangle::new(Point::new(point.x, point.y + delta), Size::ZERO));
}
out.entry(line.id).and_modify(|old| *old = union(*old, rect)).or_insert(rect);
}
out
}
fn covered_bounds(p: &Project, owner: Id, footprints: &BTreeMap<Id, Rectangle>) -> Option<Rectangle> {
footprints.iter().filter(|(id, _)| inside(p, **id, owner))
.map(|(_, rect)| *rect).reduce(union)
}
impl Plan {
fn build(p: &Project, owner: Id, baseline: &Scene, desired: &Candidate) -> Result<Self, PlanError> {
let mut seed: BTreeMap<_, _> = baseline.rows.iter().map(|(id, (_, y))| {
(*id, Anchor { y: *y, role: role(occurrence(p, *id).expect("Scene occurrence")) })
}).collect();
// Operand headers are real Scene boxes, but are not entries in rows.
for item in &baseline.boxes {
if matches!(occurrence(p, item.id), Some(OccurrenceBody::Branch { .. })) {
seed.insert(item.id, Anchor { y: item.rect.y, role: AnchorRole::OperandStart });
}
}
let mut anchors = seed.clone();
for (&id, &y) in desired {
let anchor = anchors.get_mut(&id).ok_or(PlanError::UnknownAnchor(id))?;
if !y.is_finite() { return Err(PlanError::NonFinite(id)); }
if matches!(anchor.role, AnchorRole::FrameStart | AnchorRole::OperandStart) && y != anchor.y {
return Err(PlanError::CompoundMoveNotImplemented(id));
}
anchor.y = y;
}
let mut messages = BTreeMap::new();
for line in &baseline.lines {
if let (Some(anchor), Some(first), Some(last)) = (anchors.get(&line.id), line.points.first(), line.points.last()) {
let delta = anchor.y - seed[&line.id].y;
messages.insert(line.id, MessageAnchors { send_y: first.y + delta, receive_y: last.y + delta });
}
}
// The current lifecycle bridge needs positive birth/death intervals.
// This is an explicit unsupported crossing, not a new semantic rule.
for (&create, message) in &messages {
if let Some(OccurrenceBody::Exchange { message_kind: MessageKind::Create, receiver: Some(lane), .. }) = occurrence(p, create) {
for (&delete, finish) in &messages {
if p.elements[&create].parent == p.elements[&delete].parent
&& matches!(occurrence(p, delete), Some(OccurrenceBody::Exchange { message_kind: MessageKind::Delete, receiver: Some(other), .. }) if other == lane)
&& message.receive_y > finish.receive_y {
return Err(PlanError::LifetimeInversionNotSupported { create, delete });
}
}
}
}
let old_footprints = footprints(baseline, &seed, &seed);
let mut drawn = footprints(baseline, &anchors, &seed);
let mut frames = BTreeMap::new();
let mut containers: Vec<_> = seed.keys().copied()
.filter(|id| matches!(occurrence(p, *id), Some(OccurrenceBody::Fragment { .. }))).collect();
containers.sort_by_key(|id| std::cmp::Reverse(depth(p, *id)));
for id in containers {
let original = old_footprints[&id];
let mut rect = original;
if let Some(covered) = covered_bounds(p, id, &drawn) {
// Keep seed extents where possible; 20px growth padding is an
// explicit experimental presentation preference, not semantics.
// Upward envelope growth would move the painted frame header
// while its fixed FrameStart/row/slot remained at the seed.
// Reject that unsupported compound change, not mere overlap.
if covered.y < rect.y {
return Err(PlanError::FixedFrameHeaderWouldMove { frame: id });
}
if covered.y + covered.height > rect.y + rect.height {
rect.height = covered.y + covered.height + 20. - rect.y;
}
}
frames.insert(id, rect);
drawn.insert(id, rect);
}
let mut scopes = baseline.sequence_bounds.clone();
for (&scope, bounds) in &mut scopes {
if let (Some(old), Some(new)) = (covered_bounds(p, scope, &old_footprints), covered_bounds(p, scope, &drawn)) {
let top_padding = (old.y - bounds.0).max(0.);
let bottom_padding = (bounds.1 - old.y - old.height).max(0.);
if new.y < bounds.0 { bounds.0 = new.y - top_padding; }
bounds.1 = bounds.1.max(new.y + new.height + bottom_padding);
}
}
let tail = baseline.size.height - baseline.sequence_bounds[&owner].1;
let height = baseline.size.height.max(scopes[&owner].1 + tail);
for (&id, message) in &messages {
if matches!(occurrence(p, id), Some(OccurrenceBody::Exchange {
message_kind: MessageKind::Create | MessageKind::Delete, ..
})) {
let scope = p.elements[&id].parent.expect("lifecycle sequence owner");
// Match Rendering::new's effective scope, not the insertion
// scope: it overrides the root span to 85..height-20 and gives
// empty non-root scopes the existing 26px lifetime allowance.
let (start, end) = if scope == owner {
(85., height - 20.)
} else if let Some(&(start, end)) = scopes.get(&scope) {
(start, if start == end { start + 26. } else { end })
} else {
return Err(PlanError::LifecycleAnchorOutsideRenderScope { occurrence: id, scope });
};
if message.receive_y < start || message.receive_y > end {
return Err(PlanError::LifecycleAnchorOutsideRenderScope { occurrence: id, scope });
}
}
}
let mut diagnostics = Vec::new();
for element in p.elements.values().filter(|e| e.id == owner || inside(p, e.id, owner)) {
if let Some(steps) = element.steps() {
for pair in steps.windows(2) {
if let (Some(a), Some(b)) = (anchors.get(&pair[0]), anchors.get(&pair[1])) {
if a.y > b.y { diagnostics.push(Diagnostic::SourceOrderCrossing { scope: element.id, before: pair[0], after: pair[1] }); }
if let Some(frame) = frames.get(&pair[0]) {
if frame.y + frame.height > b.y { diagnostics.push(Diagnostic::FrameExtendsPastFollowingAnchor { frame: pair[0], following: pair[1] }); }
}
}
}
}
}
Ok(Self { anchors, messages, frames, scopes, height, diagnostics })
}
}
thread_local! {
static PLAN: RefCell<Option<Plan>> = const { RefCell::new(None) };
}
struct Scope(Option<Plan>);
impl Scope {
fn install(plan: &Plan) -> Self { Self(PLAN.with(|slot| slot.replace(Some(plan.clone())))) }
}
impl Drop for Scope {
fn drop(&mut self) { PLAN.with(|slot| { slot.replace(self.0.take()); }); }
}
pub(super) fn row_anchor(id: Id, y: &mut f32) {
PLAN.with(|slot| {
if let Some(plan) = slot.borrow().as_ref() {
*y = plan.anchors.get(&id).expect("complete Scene anchor plan").y;
}
});
}
pub(super) fn frame_bounds(id: Id, fallback: Rectangle) -> Rectangle {
PLAN.with(|slot| slot.borrow().as_ref().map_or(fallback, |plan| plan.frames[&id]))
}
pub(super) fn scope_end(owner: Id, y: &mut f32, bounds: &mut BTreeMap<Id, (f32, f32)>) {
PLAN.with(|slot| {
if let Some(plan) = slot.borrow().as_ref() {
bounds.insert(owner, plan.scopes[&owner]);
*y = plan.scopes[&owner].1 + 42.; // Existing insertion-axis offset.
}
});
}
pub(super) fn scene_extent(scene: &mut Scene) {
PLAN.with(|slot| {
if let Some(plan) = slot.borrow().as_ref() { scene.size.height = plan.height; }
});
}
fn render(p: &Project, owner: Id, plan: &Plan) -> Scene {
let _scope = Scope::install(plan);
Scene::sequence(p, owner, owner)
}
fn drag(original: &Candidate, frame: &Scene, target: Id, delta_y: f32) -> Candidate {
assert!(delta_y.is_finite());
if delta_y == 0. { return original.clone(); }
let mut result = original.clone();
result.insert(target, frame.rows[&target].1 + delta_y);
result
}
@@ -0,0 +1,348 @@
use super::*;
use crate::document::Document;
use oa_core::{language, source_project::{ProjectLimits, SourceBundle}, validation};
fn id(p: &Project, alias: &str) -> Id {
p.identities().into_iter().find(|(_, name)| *name == alias).unwrap().0
}
fn fixture(lifetime: bool) -> (Document, Id) {
let (name, input, owner) = if lifetime {
("lifetime.arcadia", include_str!("../behavior-layout-scene-20260912/lifetime.arcadia"), "lifetime_conversation")
} else {
("fixture.arcadia", include_str!("../behavior-layout-scene-20260912/fixture.arcadia"), "conversation")
};
let p = language::parse(input).expect("existing real Arcadia fixture");
let errors: Vec<_> = validation::validate(&p).into_iter()
.filter(|issue| issue.severity == validation::Severity::Error).collect();
assert!(errors.is_empty(), "{errors:?}");
let bundle = SourceBundle { entry: name.into(), files: BTreeMap::from([(name.into(), input.into())]) };
let document = Document::from_bundle(bundle, ProjectLimits::default()).unwrap();
assert_eq!(document.project(), &p);
assert_eq!(language::parse(&language::format(&p)).unwrap(), p);
let owner = id(&p, owner);
(document, owner)
}
fn passive(document: &Document, before: &Project, source: &SourceBundle) {
assert_eq!(document.project(), before);
assert_eq!(document.bundle(), source);
assert!(!document.dirty());
assert!(!document.can_undo() && !document.can_redo());
}
fn row(scene: &Scene, id: Id) -> f32 { scene.rows[&id].1 }
fn line(scene: &Scene, id: Id) -> &Line {
assert_eq!(scene.lines.iter().filter(|line| line.id == id).count(), 1);
scene.lines.iter().find(|line| line.id == id).unwrap()
}
fn named_box(scene: &Scene, id: Id) -> &BoxItem {
scene.boxes.iter().find(|item| item.id == id && !item.title.is_empty()).unwrap()
}
fn same_scene(a: &Scene, b: &Scene) {
assert_eq!(a.rows, b.rows);
assert_eq!(a.sequence_bounds, b.sequence_bounds);
assert_eq!(a.size, b.size);
assert_eq!(a.lanes, b.lanes);
assert_eq!(a.lifecycle, b.lifecycle);
assert_eq!(a.open_calls, b.open_calls);
let boxes = |s: &Scene| s.boxes.iter().map(|b| (b.id,b.rect,b.title.clone(),b.detail.clone(),b.marker)).collect::<Vec<_>>();
let lines = |s: &Scene| s.lines.iter().map(|l| (l.id,l.points.clone(),l.label_at,l.label.clone(),l.dashed)).collect::<Vec<_>>();
let slots = |s: &Scene| s.slots.iter().map(|slot| (slot.slot.parent,slot.slot.before,slot.y,slot.label.clone())).collect::<Vec<_>>();
assert_eq!(boxes(a),boxes(b));
assert_eq!(lines(a),lines(b));
assert_eq!(slots(a),slots(b));
}
fn others_fixed(before: &Scene, after: &Scene, changed: Id) {
assert_eq!(before.rows.len(),after.rows.len());
for (&id, original) in &before.rows {
if id != changed { assert_eq!(&after.rows[&id],original,"unexpected movement of {id}"); }
}
}
fn fixed_frame_metadata(before: &Scene, after: &Scene, frame: Id) {
let original=named_box(before,frame);
let current=named_box(after,frame);
assert_eq!((current.id,current.rect,&current.title,&current.detail,current.marker),
(original.id,original.rect,&original.title,&original.detail,original.marker));
assert_eq!(before.rows[&frame],after.rows[&frame]);
assert_eq!(row(after,frame),332.);
// Scene::hit uses the first38px as the frame's active painted header.
let header=Rectangle::new(Point::new(original.rect.x,original.rect.y),Size::new(original.rect.width,38.));
assert_eq!((header.y,header.y+header.height),(332.,370.));
let probe=Point::new(header.x+8.,header.y+8.);
assert_eq!(before.hit(probe),Some(frame));
assert_eq!(after.hit(probe),Some(frame));
let original_slot=before.slots.iter().find(|slot|slot.slot.before==Some(frame)).unwrap();
let current_slot=after.slots.iter().find(|slot|slot.slot.before==Some(frame)).unwrap();
assert_eq!((current_slot.slot.parent,current_slot.slot.before,current_slot.y,&current_slot.label),
(original_slot.slot.parent,original_slot.slot.before,original_slot.y,&original_slot.label));
assert_eq!(current_slot.y,290.);
}
#[test]
fn complete_seed_plan_preserves_both_actual_scene_and_document_baselines() {
for lifetime in [false,true] {
let (document,owner)=fixture(lifetime);
let p=document.project(); let before=p.clone(); let source=document.bundle().clone();
let baseline=Scene::sequence(p,owner,owner);
let plan=Plan::build(p,owner,&baseline,&Candidate::new()).unwrap();
assert!(plan.diagnostics.is_empty());
for (&id,(_,y)) in &baseline.rows { assert_eq!(plan.anchors[&id].y,*y); }
same_scene(&baseline,&render(p,owner,&plan));
let reparsed=language::parse(&language::format(p)).unwrap();
same_scene(&baseline,&render(&reparsed,owner,&plan));
passive(&document,&before,&source);
}
}
#[test]
fn upward_second_delivery_reaches_200_and_all_other_occurrence_anchors_stay_fixed() {
let (document,owner)=fixture(false);
let p=document.project(); let before=p.clone(); let source=document.bundle().clone();
let baseline=Scene::sequence(p,owner,owner);
let first=id(p,"first"); let second=id(p,"second");
assert_ne!(first,second);
for occurrence_id in [first,second] {
assert!(matches!(occurrence(p,occurrence_id),Some(OccurrenceBody::Exchange { exchange:Some(edge),.. }) if *edge==id(p,"channel")));
}
assert_eq!((row(&baseline,first),row(&baseline,second)),(148.,240.));
let candidate=drag(&Candidate::new(),&baseline,second,-40.);
assert_eq!(candidate,Candidate::from([(second,200.)]));
let plan=Plan::build(p,owner,&baseline,&candidate).unwrap();
let moved=render(p,owner,&plan);
assert_eq!((row(&moved,first),row(&moved,second)),(148.,200.));
others_fixed(&baseline,&moved,second);
assert_eq!(line(&moved,first).points,line(&baseline,first).points);
let left=moved.lanes[&id(p,"left")]; let right=moved.lanes[&id(p,"right")];
assert_eq!(line(&moved,second).points,vec![Point::new(left,200.),Point::new(right,200.)]);
assert_eq!(plan.messages[&second],MessageAnchors { send_y:200.,receive_y:200. });
assert!(plan.diagnostics.is_empty());
same_scene(&moved,&render(p,owner,&plan));
passive(&document,&before,&source);
}
#[test]
fn nested_upward_anchor_reaches_457_without_moving_parent_or_followers() {
let (document,owner)=fixture(false);
let p=document.project(); let before=p.clone(); let source=document.bundle().clone();
let baseline=Scene::sequence(p,owner,owner);
let nested=id(p,"nested"); let fragment=id(p,"fragment");
assert_eq!(row(&baseline,nested),477.);
let candidate=drag(&Candidate::new(),&baseline,nested,-20.);
let plan=Plan::build(p,owner,&baseline,&candidate).unwrap();
let moved=render(p,owner,&plan);
assert_eq!(row(&moved,nested),457.);
assert_eq!(named_box(&moved,nested).rect.y,437.);
assert_eq!(named_box(&moved,nested).rect.height,70.);
assert_eq!(named_box(&moved,fragment).rect,named_box(&baseline,fragment).rect);
assert_eq!((named_box(&moved,fragment).rect.y,named_box(&moved,fragment).rect.height),(332.,240.));
fixed_frame_metadata(&baseline,&moved,fragment);
assert_eq!(moved.sequence_bounds[&id(p,"operand")],baseline.sequence_bounds[&id(p,"operand")]);
others_fixed(&baseline,&moved,nested);
assert!(plan.diagnostics.is_empty());
passive(&document,&before,&source);
}
#[test]
fn nested_move_that_would_relocate_fixed_header_is_rejected_but_mere_overlap_is_not_banned() {
let (document,owner)=fixture(false);
let p=document.project(); let before=p.clone(); let source=document.bundle().clone();
let baseline=Scene::sequence(p,owner,owner);
let nested=id(p,"nested"); let fragment=id(p,"fragment");
let requested=Candidate::from([(nested,300.)]);
// Actual70px action box has row-to-top offset-20: proposed footprint280..350.
// The old envelope union would move frame/header top332 to260 while leaving
// FrameStart332 and before-slot290. Reject before any such Scene is exposed.
let original=named_box(&baseline,nested).rect;
assert_eq!((row(&baseline,nested),original.y,original.height),(477.,457.,70.));
let proposed_top=original.y+(300.-row(&baseline,nested));
assert_eq!((proposed_top,proposed_top+original.height),(280.,350.));
assert_eq!(Plan::build(p,owner,&baseline,&requested).unwrap_err(),
PlanError::FixedFrameHeaderWouldMove { frame:fragment });
fixed_frame_metadata(&baseline,&Scene::sequence(p,owner,owner),fragment);
// Overlap inside the existing frame does not itself move its top. This
// remains admitted mechanical geometry, not a claim of usable overlap UX.
let overlap=Plan::build(p,owner,&baseline,&Candidate::from([(nested,353.)])).unwrap();
let overlapping=render(p,owner,&overlap);
assert_eq!(named_box(&overlapping,nested).rect.y,333.);
fixed_frame_metadata(&baseline,&overlapping,fragment);
passive(&document,&before,&source);
}
#[test]
fn lifecycle_anchor_below_actual_root_render_scope_is_rejected_before_scene_construction() {
let (document,owner)=fixture(true);
let p=document.project(); let before=p.clone(); let source=document.bundle().clone();
let baseline=Scene::sequence(p,owner,owner);
let create=id(p,"create_receiver"); let provider=id(p,"provider");
let requester=id(p,"requester");
let root_life=baseline.lifecycle.alive_spans(requester,owner,0.,baseline.size.height);
assert_eq!(root_life.iter().map(|span|(span.start,span.end)).collect::<Vec<_>>(),vec![(85.,544.)]);
for requested in [50.,84.] {
assert_eq!(Plan::build(p,owner,&baseline,&Candidate::from([(create,requested)])).unwrap_err(),
PlanError::LifecycleAnchorOutsideRenderScope { occurrence:create,scope:owner });
}
// At the renderer's actual85 boundary the marker/lifetime remains present.
// Source-order crossing is still diagnosed separately, not silently banned.
let boundary=Plan::build(p,owner,&baseline,&Candidate::from([(create,85.)])).unwrap();
let moved=render(p,owner,&boundary);
let x=moved.lanes[&provider];
assert_eq!(row(&moved,create),85.);
assert_eq!(moved.lifecycle.marker_at(Point::new(x,85.)),Some(create));
let alive=moved.lifecycle.alive_spans(provider,owner,0.,moved.size.height);
assert_eq!(alive.iter().map(|span|(span.start,span.end)).collect::<Vec<_>>(),vec![(85.,427.)]);
passive(&document,&before,&source);
}
#[test]
fn earlier_death_reaches_380_and_actual_lifetime_and_activation_clip_there() {
let (document,owner)=fixture(true);
let p=document.project(); let before=p.clone(); let source=document.bundle().clone();
let baseline=Scene::sequence(p,owner,owner);
let create=id(p,"create_receiver"); let call=id(p,"service_call"); let delete=id(p,"delete_receiver");
let provider=id(p,"provider");
assert_eq!((row(&baseline,create),row(&baseline,call),row(&baseline,delete)),(243.,335.,427.));
let candidate=drag(&Candidate::new(),&baseline,delete,-47.);
let plan=Plan::build(p,owner,&baseline,&candidate).unwrap();
assert_eq!(plan.anchors[&delete].role,AnchorRole::MessageReceive);
assert_eq!(plan.messages[&delete],MessageAnchors { send_y:380.,receive_y:380. });
let moved=render(p,owner,&plan);
assert_eq!(row(&moved,delete),380.);
others_fixed(&baseline,&moved,delete);
let spans=moved.lifecycle.alive_spans(provider,owner,85.,moved.size.height-20.);
assert_eq!(spans.iter().map(|s|(s.start,s.end)).collect::<Vec<_>>(),vec![(243.,380.)]);
assert!(moved.lifecycle.alive_spans(provider,owner,380.,moved.size.height-20.).is_empty());
let x=moved.lanes[&provider];
assert_eq!(moved.lifecycle.marker_at(Point::new(x,380.)),Some(delete));
assert_eq!(moved.lifecycle.marker_at(Point::new(x,427.)),None);
assert_eq!(moved.hit(Point::new(x,380.)),Some(delete));
let bars:Vec<_>=moved.boxes.iter().filter(|b|b.id==call && b.title.is_empty()).collect();
assert_eq!(bars.len(),1);
assert_eq!(bars[0].rect,Rectangle::new(Point::new(x-4.,335.),Size::new(8.,45.)));
assert_eq!(moved.open_calls,vec![Point::new(x+12.,364.)]);
assert!(plan.diagnostics.is_empty());
passive(&document,&before,&source);
}
#[test]
fn self_call_has_explicit_send610_receive634_and_reply_stays728() {
let (document,owner)=fixture(false);
let p=document.project(); let before=p.clone(); let source=document.bundle().clone();
let baseline=Scene::sequence(p,owner,owner);
let call=id(p,"self_call"); let reply=id(p,"self_reply");
let candidate=drag(&Candidate::new(),&baseline,call,-26.);
let plan=Plan::build(p,owner,&baseline,&candidate).unwrap();
assert_eq!(plan.anchors[&call],Anchor { y:610.,role:AnchorRole::MessageSend });
assert_eq!(plan.messages[&call],MessageAnchors { send_y:610.,receive_y:634. });
let moved=render(p,owner,&plan);
assert_eq!(row(&moved,call),610.);
assert_eq!(row(&moved,reply),728.);
assert_eq!(line(&moved,call).points.iter().map(|p|p.y).collect::<Vec<_>>(),vec![610.,610.,634.,634.]);
assert_eq!(line(&moved,reply).points,line(&baseline,reply).points);
others_fixed(&baseline,&moved,call);
// Peer #21 owns the activation start/column contract. This assertion covers
// actual message anchors, not the old row-based activation start defect.
passive(&document,&before,&source);
}
#[test]
fn signed_zero_keeps_sparse_candidate_and_restoring_original_candidate_restores_actual_scene() {
let (document,owner)=fixture(false);
let p=document.project(); let before=p.clone(); let source=document.bundle().clone();
let baseline=Scene::sequence(p,owner,owner);
let second=id(p,"second");
let original=Candidate::new();
for zero in [0.,-0.] { assert_eq!(drag(&original,&baseline,second,zero),original); }
let changed=drag(&original,&baseline,second,-40.);
let plan=Plan::build(p,owner,&baseline,&changed).unwrap();
let frame=render(p,owner,&plan);
for zero in [0.,-0.] {
let untouched=drag(&changed,&frame,second,zero);
assert_eq!(untouched,changed);
same_scene(&frame,&render(p,owner,&Plan::build(p,owner,&baseline,&untouched).unwrap()));
}
// This restores the exact sidecar candidate; it is not a production Undo
// command or evidence of a layout source/REST persistence implementation.
same_scene(&baseline,&render(p,owner,&Plan::build(p,owner,&baseline,&original).unwrap()));
passive(&document,&before,&source);
}
#[test]
fn crossing_is_rendered_exactly_and_diagnosed_with_extents_covering_the_earlier_far_event() {
let (document,owner)=fixture(false);
let p=document.project(); let before=p.clone(); let source=document.bundle().clone();
let baseline=Scene::sequence(p,owner,owner);
let first=id(p,"first"); let second=id(p,"second");
let plan=Plan::build(p,owner,&baseline,&Candidate::from([(first,1000.)])).unwrap();
assert!(plan.diagnostics.contains(&Diagnostic::SourceOrderCrossing { scope:owner,before:first,after:second }));
let moved=render(p,owner,&plan);
assert_eq!((row(&moved,first),row(&moved,second)),(1000.,240.));
assert_eq!(row(&moved,id(p,"self_reply")),728.);
others_fixed(&baseline,&moved,first);
assert_eq!(moved.sequence_bounds[&owner].1,1026.);
assert_eq!(moved.size.height,1113.);
assert!(line(&moved,first).points.iter().all(|point| point.y<moved.size.height));
assert_eq!(&p.elements[&owner].steps().unwrap()[..2],&[first,second]);
// This is a policy falsifier: mechanically exact coordinates do not prove
// that out-of-order vertical notation is understandable or acceptable.
passive(&document,&before,&source);
}
#[test]
fn nested_outlier_expands_enclosing_geometry_without_using_final_traversal_row_as_extent() {
let (document,owner)=fixture(false);
let p=document.project(); let baseline=Scene::sequence(p,owner,owner);
let nested=id(p,"nested"); let fragment=id(p,"fragment"); let following=id(p,"self_call");
let plan=Plan::build(p,owner,&baseline,&Candidate::from([(nested,1000.)])).unwrap();
assert!(plan.diagnostics.contains(&Diagnostic::FrameExtendsPastFollowingAnchor { frame:fragment,following }));
let moved=render(p,owner,&plan);
assert_eq!(row(&moved,nested),1000.);
assert_eq!(named_box(&moved,nested).rect.y,980.);
let enclosing=named_box(&moved,fragment).rect;
assert_eq!(enclosing.y+enclosing.height,1070.);
assert!(moved.sequence_bounds[&owner].1>=1070.);
assert!(moved.size.height>1070.);
assert_eq!(row(&moved,following),636.);
others_fixed(&baseline,&moved,nested);
}
#[test]
fn unsupported_targets_and_lifetime_inversion_fail_explicitly_instead_of_silent_clamping() {
let (document,owner)=fixture(true);
let p=document.project(); let baseline=Scene::sequence(p,owner,owner);
let create=id(p,"create_receiver"); let delete=id(p,"delete_receiver");
assert_eq!(Plan::build(p,owner,&baseline,&Candidate::from([(delete,200.)])).unwrap_err(),
PlanError::LifetimeInversionNotSupported { create,delete });
assert_eq!(Plan::build(p,owner,&baseline,&Candidate::from([(delete,f32::NAN)])).unwrap_err(),PlanError::NonFinite(delete));
let edge=id(p,"service");
assert_eq!(Plan::build(p,owner,&baseline,&Candidate::from([(edge,200.)])).unwrap_err(),PlanError::UnknownAnchor(edge));
let (other,other_owner)=fixture(false);
let fragment=id(other.project(),"fragment");
let other_scene=Scene::sequence(other.project(),other_owner,other_owner);
assert_eq!(Plan::build(other.project(),other_owner,&other_scene,&Candidate::from([(fragment,300.)])).unwrap_err(),
PlanError::CompoundMoveNotImplemented(fragment));
}
#[test]
fn complete_plan_scope_is_inactive_in_other_threads_and_restored_after_deliberate_panic() {
let (document,owner)=fixture(false);
let p=document.project(); let baseline=Scene::sequence(p,owner,owner);
let second=id(p,"second");
let plan=Plan::build(p,owner,&baseline,&Candidate::from([(second,200.)])).unwrap();
let caught=std::panic::catch_unwind(|| {
let _scope=Scope::install(&plan);
assert_eq!(row(&Scene::sequence(p,owner,owner),second),200.);
std::thread::spawn(|| {
let (document,owner)=fixture(false);
let p=document.project();
assert_eq!(row(&Scene::sequence(p,owner,owner),id(p,"second")),240.);
}).join().unwrap();
panic!("deliberate complete-anchor scope unwind");
});
let payload=caught.expect_err("deliberate panic is required");
assert_eq!(payload.downcast_ref::<&str>().copied(),Some("deliberate complete-anchor scope unwind"));
same_scene(&baseline,&Scene::sequence(p,owner,owner));
}
@@ -0,0 +1,51 @@
diff --git a/crates/oa-desktop/src/behavior.rs b/crates/oa-desktop/src/behavior.rs
index 3f9fd97..f1ef5b7 100644
--- a/crates/oa-desktop/src/behavior.rs
+++ b/crates/oa-desktop/src/behavior.rs
@@ -1121,6 +1121,10 @@ fn in_machine(p: &Project, id: Id, machine: Id) -> bool {
#[path = "../../../harness/experiments/behavior-layout-scene-20260912/mod.rs"]
mod behavior_layout_scene_experiment;
+#[cfg(test)]
+#[path = "../../../harness/experiments/behavior-anchor-plan-20260912/mod.rs"]
+mod behavior_anchor_plan_experiment;
+
struct BoxItem {
id: Id,
rect: Rectangle,
@@ -1332,6 +1336,8 @@ impl Scene {
let mut y = if scenario { 148. } else { 120. };
scene.occurrences(p, owner, scenario, &lane_x, &mut y, 0);
scene.size.height = (y + 45.).max(210.);
+ #[cfg(test)]
+ behavior_anchor_plan_experiment::scene_extent(&mut scene);
if scenario {
scene.lifecycle = scenario_lifecycle::render::Rendering::new(
p,
@@ -1441,6 +1447,8 @@ impl Scene {
}
#[cfg(test)]
behavior_layout_scene_experiment::resolve_row_anchor(*id, y);
+ #[cfg(test)]
+ behavior_anchor_plan_experiment::row_anchor(*id, y);
if ordered {
let slot = scenario::Slot {
parent: owner,
@@ -1465,6 +1473,8 @@ impl Scene {
(*y - top).max(95.),
),
);
+ #[cfg(test)]
+ let rect = behavior_anchor_plan_experiment::frame_bounds(*id, rect);
self.boxes.insert(
0,
BoxItem {
@@ -1649,6 +1659,8 @@ impl Scene {
}
if ordered {
self.sequence_bounds.insert(owner, (sequence_top, *y - 42.));
+ #[cfg(test)]
+ behavior_anchor_plan_experiment::scope_end(owner, y, &mut self.sequence_bounds);
let slot = scenario::Slot {
parent: owner,
before: None,
@@ -0,0 +1,30 @@
{
"status": "Two-fix static candidate; uncompiled, with newly discovered operand-scope gap",
"files": [
{
"path": "crates/oa-desktop/src/behavior.rs",
"bytes": 137409,
"sha256": "5884BA35AD994EB5936CA29C071A5002EFC221DC42EF35E2265D50593BDF60EC"
},
{
"path": "harness/experiments/behavior-anchor-plan-20260912/mod.rs",
"bytes": 12330,
"sha256": "2F139B39D067E8ACB39E9239F06E6AE3B560BE0541F7478B3EADA81D758CEDA9"
},
{
"path": "harness/experiments/behavior-anchor-plan-20260912/tests.rs",
"bytes": 18836,
"sha256": "12CBC8FFCF2CDA54694C265C31F18CA47FB795BE34E28C2F09129027274D8E22"
},
{
"path": "harness/experiments/behavior-anchor-plan-20260912/README.md",
"bytes": 12234,
"sha256": "080C7027CBFF51FC5D0A51E550F13C9F66AD3E3453C105355E7B78AF32CA9BC6"
},
{
"path": "harness/experiments/behavior-anchor-plan-20260912/wiring.patch",
"bytes": 2131,
"sha256": "4CE4BC45FBC419EBA6A07B048B82EFB8D85525514E3D2E56421948E7733F40FD"
}
]
}
@@ -0,0 +1,67 @@
# Actual Scene anchor experiment — pending execution
2026-09-12. Prepared by delegated reviewer `/root/diagram_usage_workflows` in branch `codex/diagram-coverage-fixes-ytr83r-20260912`, inspected base `f23615ffebdc3ca6872f98b6889ec49bb4e8abda` plus root's ongoing correction work. Only this experiment directory was authored. **Root applied the test-only wiring on isolated branch `codex/behavior-layout-scene-ytr83r-20260912`, based on `46b4f3c0d0f04050ad6d705051ee0199138e47a2`. Not compiled or executed.** Root owns the build checkpoint. No production schema choice, native acceptance or fix is claimed.
## Question and candidates
Can a minimal presentation input feed the actual current desktop Scene before it constructs rows, message polylines, nested frames and lifecycle geometry, while preserving the semantic Project and occurrence identities? Does explicit pointer intent preserve latent authored values on zero motion?
The candidate is an occurrence-ID-to-desired-row map. A tiny test-only hook raises the current Scene cursor to a requested row before recording an occurrence. This deliberately retains the existing renderer's next-row floor: it is a **downward spacing adapter**, not a general absolute-coordinate projector. The competing gap policy remains meaningful but is not implemented here: this experiment first tests the proposed real-Scene integration boundary. It cannot select a production storage schema.
Rejected experimental shortcuts: a standalone rectangle model would not test Scene; translating final polylines after rendering would bypass dependent frames/lifecycle; extracting the whole renderer would exceed the uncertainty being tested. This adapter uses the existing code that actually generates all those representations.
## Files and exact root wiring
- `fixture.arcadia`: hand-authored current source with explicit UUIDs, two occurrences sharing one communication mean, a fragment containing an operand/action box, and a self-call/reply. The self messages intentionally have unassigned global exchanges: current global relation validation rejects a self edge. Their explicit lifelines permit rendering; incomplete-exchange warnings are expected, semantic errors are not.
- `mod.rs`: private child tests of `behavior`, a scoped thread-local anchor adapter, pointer-delta candidate operation, and independent numerical checks against actual Scene outputs.
- `wiring.patch`: proposed two-site test-only wiring in `crates/oa-desktop/src/behavior.rs`. It adds the child module and calls `resolve_row_anchor(*id, y)` immediately before the `if ordered` block that records rows/slots in `Scene::occurrences`, **after** any self lifecycle clearance. The relative module path is from `crates/oa-desktop/src`. The line numbers are informational; verify the context against the exact integration version.
On the isolated wired branch, run:
```powershell
cargo test -p oa-desktop behavior_layout_scene_experiment -- --nocapture
```
Use the project's configured Windows compiler/linker environment. No dependency, Cargo target or main-function changes are needed. The hook is compiled only under cfg(test), inactive unless the current thread installs an AnchorScope, and restored by Drop after normal return or unwind. A test checks that another thread does not inherit the anchor map and that an intentional panic restores the baseline. Do not catch or reinterpret that expected panic output as a product crash; its test must still pass.
The isolated branch already contains this wiring; `wiring.patch` records its reviewable delta and must not be applied twice. If a compiler/parser assertion fails, preserve the failure, identify the exact reviewed source version, and correct the fixture or adapter at this boundary. Do not weaken independent geometric assertions solely to make the test green. Never claim a passing test from the existence of these files.
## Independent evaluators
The baseline is the actual `Scene::sequence` with no installed anchors. The hand-derived expected row coordinates are first148, second240, fragment332, nested action477, self-call636 and self-reply728. These follow the current seed metrics (message92, fragment header55, operand90, action95, trailing fragment64) and are observable implementation oracles, not proposed permanent UX rules. The nested box top is457; fragment height240; self-call endpoint y values are636 and660. Line identities and endpoints are asserted independently, not just compared between two calls to the same projector.
Tests cover:
1. Actual `oa_core::language::parse` and canonical format/reparse Project equality; baseline actual Scene equality after semantic source round trip; repeated exchange references retain distinct line UUIDs.
2. Move only second delivery by40: its row becomes280, first stays148, nested action becomes517, fragment translates with unchanged height240, and self-call/reply geometry moves by40 with unchanged x and identity. Whole Project and canonical semantic source remain equal.
3. Move the nested action by30: actual fragment grows from240 to270 while its top remains332; later self-call shifts. Move that self-call by18 and assert actual send/receive y684/708 and reply776; the nested box remains unchanged.
4. Move first by200: second is visibly displaced to440 while its authored desired value stays240. Zero pointer delta returns the exact original candidate. Moving first back restores second240. Explicitly assigning second.desired=440 before moving first back deliberately preserves440 instead, exposing the distinction between pointer no-op and explicit latent-intent change.
5. Reorder the repeated occurrences in actual source and parse it; the override stays attached to the second occurrence UUID. Its row is280 and the first follows at372. Projection does not write back any semantic model change.
6. Scope restoration on panic and isolation from other test threads.
7. Explicit upward-drag counterexample: the requested y200 remains rendered at240 under the current floor.
Model equality compares the entire Project. Scene equality checks rows, scopes, size, lanes, lifecycle, open calls, lines/labels, boxes and insertion slots; it does not invoke GPU painting. Explicit UUIDs are necessary because parsing declarations without IDs allocates new identities, which would make separate source parses unsuitable for occurrence-address comparison.
## Limits and next decision
This is real parser/Scene construction evidence **only after it runs**. Layout maps remain external experimental data; source round trips cover the semantic Project, not persisted layout. No new parser syntax, Document transaction, REST operation, undo stack, dirty-source workflow, route bend, text measurement, native gesture, inspector, resize, or performance result is established.
The current floor retains automatic whitespace and cannot establish all feasible free positions, upward drag, independent frame resize, gap-policy superiority or minimal displacement. Its limitation is useful evidence: if feeding requested anchors into the existing cursor still feels rigid, a real constraint/inverse policy is required, not more seed spacing. The next bounded choice is a declared anchor/constraint policy, then one typed layout record through source/Document/REST; broad renderer extraction is not justified by this probe.
Self-call send/receive assertions intentionally follow the actual current polyline contract. They do **not** assert activation correctness or substitute for peer #21's work. Activation boxes are generated by the real existing Scene/lifecycle path, and source roundtrip equality includes them, but that is not an independent oracle for nested activation start/depth/paint order. The fixture does not cover delayed creation/deletion, parallel operands, nested calls, cross-operand semantic moves, hidden views, copy/delete/reidentify lifecycle, or large models. Coordinate any later anchor contract with #16/#21 owners and retain these gaps in published evidence.
Root should publish this directory and the exact wired code/test result together for remote peer review. Independent machines cannot consume workspace-local links.
## Root source review before execution
The panic-restoration evaluator originally accepted any panic inside its scope, so an earlier failed geometry/thread assertion could have looked like successful deliberate unwinding. Root corrected it to require the exact deliberate panic payload. Moved message polylines now also require equal point counts before zipped endpoint comparisons. These are evaluator corrections; execution remains pending.
Independent bounded review confirmed hook placement, fixture assumptions and the hand-derived coordinates without executing them. Its coverage caveat prompted adding box marker metadata and insertion-slot labels to equality comparisons. Transient selection, camera and interaction state are not part of this geometry comparison. No material source finding remains from that review; compiler/runtime evidence is still required.
## Peer activation integration boundary
A read-only check of peer source `8112dea7a371755c7373f4ecc09a6488a73ac136` found that the pre-row hook remains upstream of typed activation construction and final message anchoring. That anchoring preserves generated y coordinates. Its column-zero self-call changes x from the old lane/lane+75/lane+75/lane path to lane/lane+66/lane+66/lane+6; receive y remains660 in this fixture, and the activation begins there rather than at send y636.
The peer branch and this branch have different lifetime integration states. This branch has production lifetime rendering, message alignment, self-lifecycle clearance and alive_spans clipping. In the peer checkpoint, scenario_lifecycle is cfg(test)-only and typed activation_segment emits an unclipped span. A future union must retain the lifetime behavior and reconcile duplicate activation methods; copying either whole Scene implementation is insufficient. Compare both lifecycle geometry and typed segment identity/rectangle/column/finish, and verify delayed Create/Delete inside and outside operands. Do not remove the existing lifecycle comparison to make the peer version compile. A segment clipped before its semantic reply must not falsely claim a visible reply termination. No peer code has been merged by this experiment.
[Shared integration finding](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/21#issuecomment-698) and [peer activation source](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/src/commit/8112dea7a371755c7373f4ecc09a6488a73ac136/crates/oa-desktop/src/behavior/scenario_activation.rs). This is source compatibility evidence, not runtime acceptance.
@@ -0,0 +1,60 @@
arcadia 7;
project layout_probe "Behavior layout Scene probe" id "10000000-0000-4000-8000-000000000001" {
oa_entity sender "Sender" id "10000000-0000-4000-8000-000000000002" {}
oa_entity receiver "Receiver" id "10000000-0000-4000-8000-000000000003" {}
oa_activity inspect "Inspect" id "10000000-0000-4000-8000-000000000004" {}
allocation inspect_assignment "Receiver performs inspection" id "10000000-0000-4000-8000-000000000005" {
source @receiver; target @inspect;
}
communication_mean channel "Shared channel" id "10000000-0000-4000-8000-000000000006" {
source @sender; target @receiver; oriented false;
}
oa_scenario conversation "Conversation" id "10000000-0000-4000-8000-000000000007" {
viewpoint ParticipantInteraction;
steps [@first, @second, @fragment, @self_call, @self_reply];
}
oa_lifeline left "Sender role" id "10000000-0000-4000-8000-000000000008" { parent @conversation; represented @sender; }
oa_lifeline right "Receiver role" id "10000000-0000-4000-8000-000000000009" { parent @conversation; represented @receiver; }
oa_occurrence first "First delivery" id "10000000-0000-4000-8000-00000000000a" {
parent @conversation;
body { Exchange {
exchange @channel; sender @left; receiver @right;
message_kind Asynchronous;
}; };
}
oa_occurrence second "Second delivery" id "10000000-0000-4000-8000-00000000000b" {
parent @conversation;
body { Exchange {
exchange @channel; sender @left; receiver @right;
message_kind Asynchronous;
}; };
}
oa_occurrence fragment "Optional inspection" id "10000000-0000-4000-8000-00000000000c" {
parent @conversation;
body { Fragment { operator Optional; branches [@operand]; }; };
}
oa_occurrence operand "When requested" id "10000000-0000-4000-8000-00000000000d" {
parent @fragment;
body { Branch { guard "requested"; occurrences [@nested]; }; };
}
oa_occurrence nested "Inspection occurrence" id "10000000-0000-4000-8000-00000000000e" {
parent @operand;
body { Action { action @inspect; lifeline @right; }; };
}
// Self calls intentionally have no global self-edge: such a relation is
// invalid in the current metamodel. Their unassigned exchange is a known
// incomplete-model warning, while explicit lifelines make Scene drawable.
oa_occurrence self_call "Local call" id "10000000-0000-4000-8000-00000000000f" {
parent @conversation;
body { Exchange {
exchange none; sender @right; receiver @right; message_kind Call;
}; };
}
oa_occurrence self_reply "Local reply" id "10000000-0000-4000-8000-000000000010" {
parent @conversation;
body { Exchange {
exchange none; sender @right; receiver @right;
message_kind Reply; reply_to @self_call;
}; };
}
}
@@ -0,0 +1,45 @@
arcadia 7;
// Separate lifetime probe: preserve this authored note and all stable IDs.
project lifetime_probe "Delayed receiver lifetime" id "20000000-0000-4000-8000-000000000001" {
oa_activity prepare "Prepare request" id "20000000-0000-4000-8000-000000000002" {}
oa_activity serve "Serve request" id "20000000-0000-4000-8000-000000000003" {}
interaction service "Service request" id "20000000-0000-4000-8000-000000000004" {
source @prepare; target @serve;
}
oa_scenario lifetime_conversation "Receiver created on demand" id "20000000-0000-4000-8000-000000000005" {
viewpoint OperationalActivity;
steps [@before_birth, @create_receiver, @service_call, @delete_receiver];
}
oa_lifeline requester "Requester" id "20000000-0000-4000-8000-000000000006" {
parent @lifetime_conversation; represented @prepare;
}
oa_lifeline provider "Provider" id "20000000-0000-4000-8000-000000000007" {
parent @lifetime_conversation; represented @serve;
}
oa_occurrence before_birth "Prepare before receiver exists" id "20000000-0000-4000-8000-000000000008" {
parent @lifetime_conversation;
body { Action { action @prepare; lifeline @requester; }; };
}
oa_occurrence create_receiver "Create receiver" id "20000000-0000-4000-8000-000000000009" {
parent @lifetime_conversation;
body { Exchange {
exchange @service; sender @requester; receiver @provider;
message_kind Create;
}; };
}
oa_occurrence service_call "Call receiver" id "20000000-0000-4000-8000-00000000000a" {
parent @lifetime_conversation;
body { Exchange {
exchange @service; sender @requester; receiver @provider;
message_kind Call;
}; };
}
// Death ends the visible activation but deliberately does not invent a Reply.
oa_occurrence delete_receiver "Delete receiver" id "20000000-0000-4000-8000-00000000000b" {
parent @lifetime_conversation;
body { Exchange {
exchange @service; sender @requester; receiver @provider;
message_kind Delete;
}; };
}
}
@@ -0,0 +1,93 @@
# Lifetime extension of the actual Scene experiment — not executed
Prepared 2026-09-12 in `codex/behavior-layout-scene-ytr83r-20260912`, inspected
HEAD `911f63e`. This extension owns only `lifetime.arcadia`, `lifetime.rs`, this
note, and the `mod lifetime;` declaration in the existing experiment module.
The original fixture and its seven baseline tests are unchanged. Root owns the
README compatibility note, compiler resource, source integration and publication.
No production renderer, parser or model code was edited here.
## Question and method
Does the current test-only row-anchor hook propagate a changed Create/Delete
position into the actual Scene's local lifetime, marker hit identity, aligned
message endpoints and activation clipping, while leaving semantic/source state
and occurrence IDs intact?
The separate source fixture declares stable UUIDs, a sender action before receiver
birth, then Create, Call and receiver Delete. All three messages reference one
valid Interaction; explicit sender/receiver lifelines represent its Activity
endpoints. A Reply is deliberately absent: receiver death must not manufacture a
reply or erase the unanswered-call presentation cue. The test requires real
language parsing, no semantic errors, ordinary `Document::from_bundle` admission,
canonical format/reparse Project equality and exact original source retention.
Warnings are allowed and are not promoted into semantic acceptance requirements.
The evaluator calls the existing `Scene::sequence` and scoped `render`/`drag`
helpers. It reads `Rendering::alive_spans` and `marker_at`, real Scene line
polylines and actual activation `BoxItem` records. It does not construct an
alternative activation/lifetime implementation or edit final geometry afterward.
## Independent expectations
Current Scene metrics give sender action148, Create243, Call335 and Delete427:
the action consumes95 and each following message92. The scene height is564 and
its root insertion bounds are106–477. These numbers are regression oracles for
the inspected implementation, not permanent product spacing requirements.
The receiver is alive exactly243–427; the sender remains alive throughout the
visible root span. Create ends at the 140px birth capsule's near edge, 70px before
the receiver lane, while Delete ends at the death cross's center. Marker and
Scene hit queries return the original Create/Delete occurrence IDs. The actual
8px activation starts at Call335 and ends at death427, with no minimum-height tail
after death. The unresolved-call cue stays at receiver-x+12, death-y−16.
Three tests establish these expectations if they pass:
1. Baseline parsed Scene has those independent rows, line endpoints, lifetime
extents, hit identities, activation bounds and unanswered-call cue. Its real
geometry remains equal after source round trip and an empty hook scope.
2. Moving Create down60 changes its row to303 and propagates Call395/Delete487;
the actual receiver lifetime, birth/death markers and activation follow. The
preceding action's box stays fixed, line/row UUIDs stay stable, and the old
birth point is no longer a lifecycle marker.
3. Moving only Delete down48 changes death to475 and extends the same real
activation to475, while Create and Call polylines stay fixed. Moving Create
with an authored Delete request still at427 forces displayed death487; either
signed-zero pointer delta preserves the entire latent map and Scene. Moving
Create back restores baseline geometry and the original authored map.
Every test compares the entire accepted Project and source bundle against the
original snapshot, and requires no dirty state or undo/redo history. No test
weakens equality to just the occurrence list.
## Contract reused and limits
The inspected implementation builds lifecycle geometry after recording occurrence
rows (`behavior.rs:1332–1344`), aligns Create/Delete messages through
`scenario_lifecycle::render::Rendering::align_messages`, and constructs actual
activation boxes through `activation_sequence`/`activation_segment`
(`behavior.rs:1663–1734`). The latter intersects segments with `alive_spans` and
keeps a cue when Delete terminates an unanswered call. Existing
`scenario_lifecycle/render_tests.rs` tests real root birth/death alignment and
branch-local activation clipping. This extension exercises those current
contracts through the layout hook; it does not replace them.
The peer `8112dea` typed activation correction has a different future integration
boundary and, as reported to this task, has no production lifecycle clipping yet.
These tests are not evidence that that unmerged source is compatible. A future
typed activation union needs its own tests for clipping, typed call/segment IDs,
self/nested activation receive geometry, branch behavior, depth and paint order.
Do not preserve a legacy width/classification assertion blindly when deliberately
changing the activation representation; retain independent lifetime endpoints,
identity and no-after-death expectations on the new actual records.
This extension remains uncompiled and unexecuted. It does not establish persisted
layout syntax, a production drag transaction, undoable geometry edits, native
pointer behavior, GPU painting, performance, or general upward/free positioning.
The existing hook still applies a next-row floor. Root should run the existing
`cargo test -p oa-desktop behavior_layout_scene_experiment -- --nocapture` gate
on the exact identified wired source, then publish fixture, evaluator and result
together. Remote peer machines cannot use workspace-local links.
Independent bounded source review confirmed the fixture ownership/endpoint contract and the numerical expectations above. Formatting and whitespace checks passed. Compilation and execution remain pending; these findings do not establish an editing transaction or native behavior.
@@ -0,0 +1,259 @@
//! Real current Scene/lifecycle evaluator, independent of the original fixture.
//! No replacement activation geometry or future peer implementation is used.
use super::*;
use crate::document::Document;
use oa_core::source_project::{ProjectLimits, SourceBundle};
fn lifetime_document() -> (Document, Id) {
let source = include_str!("lifetime.arcadia");
let parsed = language::parse(source).expect("separate lifetime source parses");
let errors: Vec<_> = validation::validate(&parsed)
.into_iter()
.filter(|issue| issue.severity == validation::Severity::Error)
.collect();
assert!(
errors.is_empty(),
"lifetime fixture semantic errors: {errors:?}"
);
let owner = id(&parsed, "lifetime_conversation");
let bundle = SourceBundle {
entry: "lifetime.arcadia".into(),
files: BTreeMap::from([("lifetime.arcadia".into(), source.into())]),
};
let document = Document::from_bundle(bundle.clone(), ProjectLimits::default())
.expect("lifetime fixture is ordinarily admitted");
assert_eq!(document.project(), &parsed);
assert_eq!(document.bundle(), &bundle);
assert_eq!(language::parse(&language::format(&parsed)).unwrap(), parsed);
(document, owner)
}
/// Numeric expectations are hand-derived current-Scene metrics, not proposed
/// permanent spacing rules: Action95, message92, initial occurrence148.
fn assert_lifetime_geometry(
scene: &Scene,
project: &Project,
owner: Id,
birth: f32,
call_y: f32,
death: f32,
) {
let requester = id(project, "requester");
let provider = id(project, "provider");
let create = id(project, "create_receiver");
let call = id(project, "service_call");
let delete = id(project, "delete_receiver");
let left = scene.lanes[&requester];
let right = scene.lanes[&provider];
assert_eq!((left, right), (160., 400.));
assert_eq!(row(scene, id(project, "before_birth")), 148.);
assert_eq!(row(scene, create), birth);
assert_eq!(row(scene, call), call_y);
assert_eq!(row(scene, delete), death);
assert!(
birth > 148.,
"receiver creation is delayed beyond the opening action"
);
assert_eq!(scene.rows[&create].0, owner);
assert_eq!(scene.rows[&delete].0, owner);
// Exercise the actual Rendering bridge, including marker hit identity and
// its clipping contract, rather than rebuilding lifetimes from our rows.
let alive = scene
.lifecycle
.alive_spans(provider, owner, 85., scene.size.height - 20.);
assert_eq!(
alive
.iter()
.map(|span| (span.start, span.end))
.collect::<Vec<_>>(),
vec![(birth, death)]
);
assert!(
scene
.lifecycle
.alive_spans(provider, owner, 85., birth)
.is_empty()
);
assert!(
scene
.lifecycle
.alive_spans(provider, owner, death, scene.size.height - 20.)
.is_empty()
);
let sender_alive = scene
.lifecycle
.alive_spans(requester, owner, 85., scene.size.height - 20.);
assert_eq!(
sender_alive
.iter()
.map(|span| (span.start, span.end))
.collect::<Vec<_>>(),
vec![(85., scene.size.height - 20.)]
);
assert_eq!(
scene.lifecycle.marker_at(Point::new(right, birth)),
Some(create)
);
assert_eq!(
scene.lifecycle.marker_at(Point::new(right, death)),
Some(delete)
);
assert_eq!(scene.hit(Point::new(right, birth)), Some(create));
assert_eq!(scene.hit(Point::new(right, death)), Some(delete));
assert_eq!(
line(scene, create).points,
vec![Point::new(left, birth), Point::new(right - 70., birth)]
);
assert_eq!(
line(scene, call).points,
vec![Point::new(left, call_y), Point::new(right, call_y)]
);
assert_eq!(
line(scene, delete).points,
vec![Point::new(left, death), Point::new(right, death)]
);
assert!(line(scene, create).label_at.y + 22. < birth - 14.);
// Inspect actual activation boxes produced by Scene::activation_sequence.
// A correlated Reply is absent, so death must clip the bar, not close the
// semantic call. Do not accept a new generic minimum-height tail after death.
let bars: Vec<_> = scene
.boxes
.iter()
.filter(|item| item.id == call && item.title.is_empty())
.collect();
assert_eq!(bars.len(), 1);
assert_eq!(
bars[0].rect,
Rectangle::new(
Point::new(right - 4., call_y),
Size::new(8., death - call_y)
)
);
assert_eq!(bars[0].rect.y + bars[0].rect.height, death);
assert!(
bars.iter()
.all(|item| item.rect.y >= birth && item.rect.y + item.rect.height <= death)
);
assert_eq!(scene.open_calls, vec![Point::new(right + 12., death - 16.)]);
assert!(!project.elements.values().any(|element| matches!(
element.shared(),
Some(SharedBody::Occurrence {
body: OccurrenceBody::Exchange {
message_kind: MessageKind::Reply,
..
},
..
})
)));
}
#[test]
fn delayed_create_call_and_delete_have_real_lifetime_markers_and_exact_clipped_activation() {
let (document, owner) = lifetime_document();
let before = document.snapshot();
let source = document.bundle().clone();
let scene = Scene::sequence(document.project(), owner, owner);
assert_lifetime_geometry(&scene, document.project(), owner, 243., 335., 427.);
assert_eq!(scene.size.height, 564.);
assert_eq!(scene.sequence_bounds[&owner], (106., 477.));
same_geometry(&scene, &render(document.project(), owner, &Layout::new()));
let reparsed = language::parse(&language::format(document.project())).unwrap();
same_geometry(&scene, &Scene::sequence(&reparsed, owner, owner));
assert_eq!(document.project(), &before.decoded.project);
assert_eq!(document.bundle(), &source);
assert!(!document.dirty() && !document.can_undo() && !document.can_redo());
}
#[test]
fn moving_create_moves_real_lifetime_and_followers_without_changing_semantics_or_source() {
let (document, owner) = lifetime_document();
let before = document.snapshot();
let source = document.bundle().clone();
let p = document.project();
let create = id(p, "create_receiver");
let provider = id(p, "provider");
let baseline = Scene::sequence(p, owner, owner);
let layout = drag(&Layout::new(), &baseline, create, 60.);
assert_eq!(layout, Layout::from([(create, 303.)]));
let moved = render(p, owner, &layout);
assert_lifetime_geometry(&moved, p, owner, 303., 395., 487.);
assert_eq!(moved.size.height, 624.);
assert_eq!(
moved
.lifecycle
.marker_at(Point::new(moved.lanes[&provider], 243.)),
None
);
assert_eq!(
named_box(&moved, id(p, "before_birth")).rect,
named_box(&baseline, id(p, "before_birth")).rect
);
assert_eq!(
moved.rows.keys().collect::<Vec<_>>(),
baseline.rows.keys().collect::<Vec<_>>()
);
assert_eq!(
moved.lines.iter().map(|line| line.id).collect::<Vec<_>>(),
baseline
.lines
.iter()
.map(|line| line.id)
.collect::<Vec<_>>()
);
let reparsed = language::parse(&language::format(p)).unwrap();
same_geometry(&moved, &render(&reparsed, owner, &layout));
assert_eq!(p, &before.decoded.project);
assert_eq!(document.bundle(), &source);
assert!(!document.dirty() && !document.can_undo() && !document.can_redo());
}
#[test]
fn moving_delete_extends_only_to_actual_death_and_zero_motion_preserves_latent_lifetime_intent() {
let (document, owner) = lifetime_document();
let before = document.snapshot();
let source = document.bundle().clone();
let p = document.project();
let create = id(p, "create_receiver");
let delete = id(p, "delete_receiver");
let provider = id(p, "provider");
let baseline = Scene::sequence(p, owner, owner);
let later_delete = drag(&Layout::new(), &baseline, delete, 48.);
let extended = render(p, owner, &later_delete);
assert_lifetime_geometry(&extended, p, owner, 243., 335., 475.);
assert_eq!(extended.size.height, 612.);
assert_eq!(
extended
.lifecycle
.marker_at(Point::new(extended.lanes[&provider], 427.)),
None
);
assert_eq!(
line(&extended, create).points,
line(&baseline, create).points
);
assert_eq!(
line(&extended, id(p, "service_call")).points,
line(&baseline, id(p, "service_call")).points
);
// Create displacement forces the displayed death to487 while its authored
// request stays427. Both signed zero deltas must preserve that latent value.
let original = Layout::from([(create, 243.), (delete, 427.)]);
let displaced = drag(&original, &baseline, create, 60.);
let frame = render(p, owner, &displaced);
assert_lifetime_geometry(&frame, p, owner, 303., 395., 487.);
assert_eq!(displaced[&delete], 427.);
for delta in [0., -0.] {
let untouched = drag(&displaced, &frame, delete, delta);
assert_eq!(untouched, displaced);
same_geometry(&frame, &render(p, owner, &untouched));
let restored = drag(&untouched, &frame, create, -60.);
assert_eq!(restored, original);
same_geometry(&baseline, &render(p, owner, &restored));
}
assert_eq!(p, &before.decoded.project);
assert_eq!(document.bundle(), &source);
assert!(!document.dirty() && !document.can_undo() && !document.can_redo());
}
@@ -0,0 +1,345 @@
//! Isolated test-only adapter. See README.md and wiring.patch before running.
//! It drives the actual parent Scene; it contains no replacement geometry model.
use super::*;
use oa_core::{language, validation};
use std::cell::RefCell;
mod lifetime;
type Layout = BTreeMap<Id, f32>;
thread_local! {
static ANCHORS: RefCell<Option<Layout>> = const { RefCell::new(None) };
}
struct AnchorScope(Option<Layout>);
impl AnchorScope {
fn install(layout: &Layout) -> Self {
Self(ANCHORS.with(|slot| slot.replace(Some(layout.clone()))))
}
}
impl Drop for AnchorScope {
fn drop(&mut self) {
ANCHORS.with(|slot| {
slot.replace(self.0.take());
});
}
}
/// Called only by the proposed cfg(test) row hook, before Scene records rows.
/// Retains the CURRENT renderer's next-row floor; this is not general free y.
pub(super) fn resolve_row_anchor(id: Id, y: &mut f32) {
ANCHORS.with(|slot| {
if let Some(desired) = slot.borrow().as_ref().and_then(|map| map.get(&id)) {
assert!(desired.is_finite());
*y = (*y).max(*desired);
}
});
}
fn render(project: &Project, owner: Id, layout: &Layout) -> Scene {
let _scope = AnchorScope::install(layout);
Scene::sequence(project, owner, owner)
}
/// Pointer intent differs from explicit SetDesiredY: zero displacement preserves
/// the complete original authored candidate even when desired != displayed.
fn drag(original: &Layout, frame: &Scene, target: Id, delta_y: f32) -> Layout {
assert!(delta_y.is_finite());
if delta_y == 0. {
return original.clone();
}
let mut next = original.clone();
next.insert(target, frame.rows[&target].1 + delta_y);
next
}
fn id(p: &Project, alias: &str) -> Id {
p.identities()
.into_iter()
.find(|(_, name)| *name == alias)
.unwrap()
.0
}
fn fixture() -> (Project, Id) {
let p = language::parse(include_str!("fixture.arcadia")).expect("real Arcadia fixture parses");
let errors: Vec<_> = validation::validate(&p)
.into_iter()
.filter(|issue| issue.severity == validation::Severity::Error)
.collect();
assert!(errors.is_empty(), "fixture semantic errors: {errors:?}");
let owner = id(&p, "conversation");
(p, owner)
}
fn row(scene: &Scene, id: Id) -> f32 {
scene.rows[&id].1
}
fn line(scene: &Scene, id: Id) -> &Line {
assert_eq!(scene.lines.iter().filter(|line| line.id == id).count(), 1);
scene.lines.iter().find(|line| line.id == id).unwrap()
}
fn named_box(scene: &Scene, id: Id) -> &BoxItem {
scene
.boxes
.iter()
.find(|item| item.id == id && !item.title.is_empty())
.unwrap()
}
fn same_geometry(a: &Scene, b: &Scene) {
assert_eq!(a.rows, b.rows);
assert_eq!(a.sequence_bounds, b.sequence_bounds);
assert_eq!(a.size, b.size);
assert_eq!(a.lanes, b.lanes);
assert_eq!(a.lifecycle, b.lifecycle);
assert_eq!(a.open_calls, b.open_calls);
let lines = |s: &Scene| {
s.lines
.iter()
.map(|l| {
(
l.id,
l.points.clone(),
l.label_at,
l.label.clone(),
l.dashed,
)
})
.collect::<Vec<_>>()
};
let boxes = |s: &Scene| {
s.boxes
.iter()
.map(|b| (b.id, b.rect, b.title.clone(), b.detail.clone(), b.marker))
.collect::<Vec<_>>()
};
assert_eq!(lines(a), lines(b));
assert_eq!(boxes(a), boxes(b));
let slots = |s: &Scene| {
s.slots
.iter()
.map(|s| (s.slot.parent, s.slot.before, s.y, s.label.clone()))
.collect::<Vec<_>>()
};
assert_eq!(slots(a), slots(b));
}
#[test]
fn real_parser_roundtrip_and_baseline_scene_have_independent_expected_anchors() {
let (p, owner) = fixture();
let before = p.clone();
let source = language::format(&p);
let reparsed = language::parse(&source).unwrap();
assert_eq!(reparsed, p);
let baseline = Scene::sequence(&p, owner, owner);
same_geometry(&baseline, &render(&p, owner, &Layout::new()));
same_geometry(&baseline, &Scene::sequence(&reparsed, owner, owner));
let first = id(&p, "first");
let second = id(&p, "second");
assert_ne!(first, second);
for occurrence in [first, second] {
assert!(matches!(p.elements[&occurrence].shared(),
Some(SharedBody::Occurrence { body: OccurrenceBody::Exchange { exchange: Some(edge), .. }, .. })
if *edge == id(&p, "channel")));
}
// Hand-derived current metrics: start148, each message92, fragment55,
// operand90, action95, fragment trailing64. These are regression oracles,
// NOT a claim that those fixed spacings should remain product constraints.
for (alias, expected) in [
("first", 148.),
("second", 240.),
("fragment", 332.),
("nested", 477.),
("self_call", 636.),
("self_reply", 728.),
] {
assert_eq!(row(&baseline, id(&p, alias)), expected, "{alias}");
}
assert_eq!(baseline.rows[&id(&p, "nested")].0, id(&p, "operand"));
assert_eq!(named_box(&baseline, id(&p, "nested")).rect.y, 457.);
let frame = named_box(&baseline, id(&p, "fragment")).rect;
assert_eq!((frame.y, frame.height), (332., 240.));
let left = baseline.lanes[&id(&p, "left")];
let right = baseline.lanes[&id(&p, "right")];
assert_eq!(
line(&baseline, first).points,
vec![Point::new(left, 148.), Point::new(right, 148.)]
);
assert_eq!(
line(&baseline, second).points,
vec![Point::new(left, 240.), Point::new(right, 240.)]
);
let local = line(&baseline, id(&p, "self_call"));
assert_eq!(
local.points,
vec![
Point::new(right, 636.),
Point::new(right + 75., 636.),
Point::new(right + 75., 660.),
Point::new(right, 660.)
]
);
assert_eq!(p, before);
assert_eq!(language::format(&p), source);
}
#[test]
fn moved_repeat_drives_actual_scene_followers_frames_and_self_message_without_semantic_edits() {
let (p, owner) = fixture();
let before = p.clone();
let source = language::format(&p);
let baseline = Scene::sequence(&p, owner, owner);
let second = id(&p, "second");
let candidate = drag(&Layout::new(), &baseline, second, 40.);
assert_eq!(candidate, Layout::from([(second, 280.)]));
let moved = render(&p, owner, &candidate);
assert_eq!(row(&moved, id(&p, "first")), 148.);
assert_eq!(row(&moved, second), 280.);
assert_eq!(row(&moved, id(&p, "nested")), 517.);
assert_eq!(row(&moved, id(&p, "self_call")), 676.);
assert_eq!(row(&moved, id(&p, "self_reply")), 768.);
assert_eq!(
line(&moved, id(&p, "first")).points,
line(&baseline, id(&p, "first")).points
);
for alias in ["second", "self_call", "self_reply"] {
assert_eq!(
line(&moved, id(&p, alias)).points.len(),
line(&baseline, id(&p, alias)).points.len()
);
for (old, new) in line(&baseline, id(&p, alias))
.points
.iter()
.zip(&line(&moved, id(&p, alias)).points)
{
assert_eq!(new.x, old.x);
assert_eq!(new.y - old.y, 40.);
}
}
let frame = named_box(&moved, id(&p, "fragment")).rect;
assert_eq!((frame.y, frame.height), (372., 240.));
assert_eq!(named_box(&moved, id(&p, "nested")).rect.y, 497.);
same_geometry(&moved, &render(&p, owner, &candidate));
same_geometry(
&moved,
&render(&language::parse(&source).unwrap(), owner, &candidate),
);
assert_eq!(p, before); // Entire Project, not only the steps vector.
assert_eq!(language::format(&p), source);
}
#[test]
fn nested_anchor_grows_actual_fragment_and_self_call_keeps_its_receive_offset() {
let (p, owner) = fixture();
let before = p.clone();
let baseline = Scene::sequence(&p, owner, owner);
let nested = id(&p, "nested");
let candidate = drag(&Layout::new(), &baseline, nested, 30.);
let moved = render(&p, owner, &candidate);
let frame = named_box(&moved, id(&p, "fragment")).rect;
assert_eq!((frame.y, frame.height), (332., 270.));
assert_eq!(named_box(&moved, nested).rect.y, 487.);
assert_eq!(row(&moved, id(&p, "self_call")), 666.);
let call = id(&p, "self_call");
let next = drag(&candidate, &moved, call, 18.);
let local = render(&p, owner, &next);
assert_eq!(row(&local, call), 684.);
assert_eq!(line(&local, call).points.first().unwrap().y, 684.);
assert_eq!(line(&local, call).points.last().unwrap().y, 708.);
assert_eq!(row(&local, id(&p, "self_reply")), 776.);
assert_eq!(
named_box(&local, nested).rect,
named_box(&moved, nested).rect
);
assert_eq!(p, before);
}
#[test]
fn zero_pointer_delta_preserves_latent_authored_intent_but_explicit_assignment_can_change_it() {
let (p, owner) = fixture();
let baseline = Scene::sequence(&p, owner, owner);
let first = id(&p, "first");
let second = id(&p, "second");
let original = Layout::from([(first, 148.), (second, 240.)]);
let displaced = drag(&original, &baseline, first, 200.);
let frame = render(&p, owner, &displaced);
assert_eq!(row(&frame, second), 440.);
assert_eq!(displaced[&second], 240.);
let untouched = drag(&displaced, &frame, second, 0.);
assert_eq!(untouched, displaced);
let back = drag(&untouched, &frame, first, -200.);
assert_eq!(back, original);
assert_eq!(row(&render(&p, owner, &back), second), 240.);
let mut explicit = displaced.clone();
explicit.insert(second, 440.); // Explicit SetDesiredY, not a pointer gesture.
let explicit_back = drag(&explicit, &frame, first, -200.);
assert_eq!(row(&render(&p, owner, &explicit_back), second), 440.);
}
#[test]
fn source_reorder_keeps_override_bound_to_occurrence_identity_and_does_not_write_back_projection() {
let (p, owner) = fixture();
let input = include_str!("fixture.arcadia");
let reordered_source =
input.replace("[@first, @second, @fragment", "[@second, @first, @fragment");
assert_ne!(input, reordered_source);
let reordered = language::parse(&reordered_source).unwrap();
let before = reordered.clone();
let second = id(&p, "second");
let first = id(&p, "first");
assert_eq!(id(&reordered, "second"), second);
let scene = render(&reordered, owner, &Layout::from([(second, 280.)]));
assert_eq!(row(&scene, second), 280.);
assert_eq!(row(&scene, first), 372.);
assert_eq!(
&reordered.elements[&owner].steps().unwrap()[..2],
&[second, first]
);
assert_eq!(reordered, before);
assert_eq!(
language::parse(&language::format(&reordered)).unwrap(),
before
);
}
#[test]
fn current_floor_is_an_explicit_counterexample_to_general_free_positioning() {
let (p, owner) = fixture();
let baseline = Scene::sequence(&p, owner, owner);
let second = id(&p, "second");
let requested = drag(&Layout::new(), &baseline, second, -40.);
assert_eq!(requested[&second], 200.);
assert_eq!(row(&render(&p, owner, &requested), second), 240.);
// This expected mismatch records a limitation; it is not acceptance of
// silently clamped product gestures or proof that y200 is semantically bad.
}
#[test]
fn scoped_hook_is_inactive_by_default_thread_local_and_restored_after_panic() {
let (p, owner) = fixture();
let first = id(&p, "first");
let baseline = Scene::sequence(&p, owner, owner);
let caught = std::panic::catch_unwind(|| {
let _scope = AnchorScope::install(&Layout::from([(first, 900.)]));
assert_eq!(row(&Scene::sequence(&p, owner, owner), first), 900.);
// Another test thread has no access to this thread's temporary anchors.
std::thread::spawn(|| {
let (p, owner) = fixture();
assert_eq!(
row(&Scene::sequence(&p, owner, owner), id(&p, "first")),
148.
);
})
.join()
.unwrap();
panic!("exercise scoped restoration");
});
let payload = caught.expect_err("the deliberate scope-restoration panic must occur");
assert_eq!(
payload.downcast_ref::<&str>().copied(),
Some("exercise scoped restoration"),
"an earlier failed assertion must not masquerade as the expected panic"
);
same_geometry(&baseline, &Scene::sequence(&p, owner, owner));
}
@@ -0,0 +1,14 @@
diff --git a/crates/oa-desktop/src/behavior.rs b/crates/oa-desktop/src/behavior.rs
--- a/crates/oa-desktop/src/behavior.rs
+++ b/crates/oa-desktop/src/behavior.rs
@@ -1120,1 +1120,5 @@
+#[cfg(test)]
+#[path = "../../../harness/experiments/behavior-layout-scene-20260912/mod.rs"]
+mod behavior_layout_scene_experiment;
+
struct BoxItem {
@@ -1446,2 +1450,4 @@
+ #[cfg(test)]
+ behavior_layout_scene_experiment::resolve_row_anchor(*id, y);
if ordered {
let slot = scenario::Slot {
@@ -0,0 +1 @@
* -text -whitespace
@@ -0,0 +1,13 @@
# Navigation/rename a49: strict, build and targeted Windows gates
Tested source: [a49b0ec7ac4538a372139175386a881645c1a59e](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/src/commit/a49b0ec7ac4538a372139175386a881645c1a59e).
The actual receipts and logs confirm successful strict Clippy (`--all-targets -- -D warnings`), desktop binary build, 31 usage regressions, and the separately selected ignored rename timing test (1 passed, 0 failed, 0 ignored). The complete 577-input before/after manifests retained identical path membership, sizes and hashes. Archive verification also checked every one of those 577 files against the still-frozen source checkout. Raw gate/capture scripts, logs and receipts are preserved; verification.json records these checks and report.json inventories the evidence.
The full 951-pass suite belongs to [10bd711 and its existing report](../navigation-rename-union-gates-20260913/README.md), not this a49 gate. The latter fixes test-only strict-lint findings; these targeted results do not relabel the earlier full suite or duplicate it.
Timing used the actual release1 bundle (30 reachable files, 78,414 source bytes), one warmup and five measured trials. Median synchronous `app_sync` was 1,161.9446ms (950.0872–1,594.9852ms); median Confirm update was 43.0291ms, worker Document preparation 377.0975ms and guarded commit 0.0067ms. The parent reports concurrent core compilation during this run; that contention is contextual information, not independently established by the isolated timing log. This is not an uncontended benchmark or evidence that the synchronous work is responsive. The fixture explicitly does not poll returned tasks or render; the short Confirm measurement is not end-to-end rename latency. Preserve the approximately 1.16-second synchronous phase as a performance limitation for subsequent native evaluation.
native-binary.json binds the current root debug executable for native handoff: 115,379,712 bytes, SHA256 `D169A42692D2822A6E9DCD1E6181766F4A178E15AE2610763200DA9BBB814DDF`. Its last-write timestamp falls inside the successful a49 build window; repeated archive-time hash reads were equal. This is a binding of the frozen build output to its checked build context, not native execution, release packaging or a cryptographic source attestation embedded in the binary. Recheck this hash immediately before native launch.
For reproduction, use an isolated checkout of a49 and the recorded commands/toolchain environment. Raw scripts retain the original local paths and refuse replacing their logs; substitute fresh local gate paths. Windows only. Native modal/focus/scroll/history workflows and Linux acceptance are not supplied by these logs. No compiler, test or native rerun occurred during this archive operation.
@@ -0,0 +1,12 @@
{
"command": "cargo build -p oa-desktop --bin arcadia-studio --locked --offline",
"workspace": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-union-ytr83r-20260912",
"startUtc": "2026-09-13T02:19:56.1612595Z",
"endUtc": "2026-09-13T02:28:15.7048019Z",
"base": "a49b0ec7ac4538a372139175386a881645c1a59e",
"cargoExitCode": 0,
"listedTests": null,
"listedUnionTests": null,
"listedScrollTests": null,
"selectionValid": true
}
@@ -0,0 +1,3 @@
Compiling oa-core v0.2.0 (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\navigation-rename-union-ytr83r-20260912\crates\oa-core)
Compiling oa-desktop v0.2.0 (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\navigation-rename-union-ytr83r-20260912\crates\oa-desktop)
Finished `dev` profile [unoptimized] target(s) in 8m 17s
@@ -0,0 +1,31 @@
param([Parameter(Mandatory=$true)][string]$Stage)
$ErrorActionPreference = 'Stop'
if ($Stage -notin @('before', 'after')) { throw 'Stage must be before or after' }
$taskWorkspace = 'C:\Users\User\Documents\Git\ARCADIA-Studio\.local\navigation-rename-union-ytr83r-20260912'
$taskOutput = Join-Path $PSScriptRoot "inputs-complete-$Stage.json"
if (Test-Path -LiteralPath $taskOutput) { throw "Refusing to replace $taskOutput" }
Push-Location -LiteralPath $taskWorkspace
try {
$taskPaths = @('Cargo.toml', 'Cargo.lock') + @(rg --files crates docs examples build harness/fixtures harness/experiments/textual-authoring-20260911)
if ($LASTEXITCODE -ne 0) { throw 'Input enumeration failed' }
$taskEntries = @($taskPaths | Sort-Object -Unique | ForEach-Object {
$taskItem = Get-Item -LiteralPath $_
[ordered]@{ path = $_.Replace('\', '/'); bytes = $taskItem.Length; sha256 = (Get-FileHash -Algorithm SHA256 -LiteralPath $_).Hash.ToLowerInvariant() }
})
$taskRecord = [ordered]@{
capturedUtc = [DateTime]::UtcNow.ToString('o')
workspace = $taskWorkspace
base = (git rev-parse HEAD)
branch = (git branch --show-current)
count = $taskEntries.Count
files = $taskEntries
}
$taskRecord | ConvertTo-Json -Depth 5 | Set-Content -LiteralPath $taskOutput -Encoding utf8
if ($Stage -eq 'after') {
$taskBefore = Get-Content -Raw -LiteralPath (Join-Path $PSScriptRoot 'inputs-complete-before.json') | ConvertFrom-Json
$taskDifferences = @(Compare-Object ($taskBefore.files | ConvertTo-Json -Depth 5 -Compress) ($taskEntries | ConvertTo-Json -Depth 5 -Compress))
if ($taskDifferences.Count) { throw 'Verification inputs changed during gates' }
}
Write-Output "Captured $($taskEntries.Count) inputs: $Stage"
} finally { Pop-Location }
@@ -0,0 +1,12 @@
{
"command": "cargo clippy -p oa-desktop --all-targets --locked --offline -- -D warnings",
"workspace": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-union-ytr83r-20260912",
"startUtc": "2026-09-13T02:15:13.6271003Z",
"endUtc": "2026-09-13T02:19:30.2428634Z",
"base": "a49b0ec7ac4538a372139175386a881645c1a59e",
"cargoExitCode": 0,
"listedTests": null,
"listedUnionTests": null,
"listedScrollTests": null,
"selectionValid": true
}
@@ -0,0 +1,2 @@
Checking oa-desktop v0.2.0 (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\navigation-rename-union-ytr83r-20260912\crates\oa-desktop)
Finished `dev` profile [unoptimized] target(s) in 4m 15s
@@ -0,0 +1,10 @@
{
"capturedUtc": "2026-09-13T03:05:03.4358830Z",
"source": "a49b0ec7ac4538a372139175386a881645c1a59e",
"executable": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\target\\debug\\arcadia-studio.exe",
"bytes": 115379712,
"sha256": "D169A42692D2822A6E9DCD1E6181766F4A178E15AE2610763200DA9BBB814DDF",
"lastWriteTimeUtc": "2026-09-13T02:28:11.5376343Z",
"repeatedReadStable": true,
"binding": "Current frozen build output; source gate receipts and 577 checked inputs bind the build context. Not native execution evidence."
}
@@ -0,0 +1,88 @@
{
"recordedUtc": "2026-09-13T03:09:34.3873561Z",
"count": 16,
"totalBytes": 246618,
"excludes": "report.json itself",
"files": [
{
"path": ".gitattributes",
"bytes": 20,
"sha256": "E97602AB9CAC70102245345C5AB0FC9830DF8B17F1072B188265A662A3A547AE"
},
{
"path": "build-receipt.json",
"bytes": 484,
"sha256": "A9EA01A46FB39A6291B99CE7A7FA4938C69F3B0D90C7383B90021E1043330B53"
},
{
"path": "build.log",
"bytes": 340,
"sha256": "A34C5BBEEEC025043F3115A838FEA96AE27340C77DF27D3F8408284BB22895DF"
},
{
"path": "capture.ps1",
"bytes": 1842,
"sha256": "110FB10EF3A5D73F291AC58952630DA5E9B579A70652C4C82A664C96A36AAC09"
},
{
"path": "clippy-receipt.json",
"bytes": 493,
"sha256": "1BE5FEBA1FB25F3A1E8EE45E2A9FBB2C782BCEE94B438D6B3937AEFAF3746679"
},
{
"path": "clippy.log",
"bytes": 204,
"sha256": "53AAF4A1B48AA7AE1CE9A650599F3208F3F20B7945DE131C79D16C7F1D5A828D"
},
{
"path": "inputs-complete-after.json",
"bytes": 111090,
"sha256": "1A7EEE15F4AC22DE0B4EBC69828D5F9FE752B569BD702635D878CE719FF0B0D6"
},
{
"path": "inputs-complete-before.json",
"bytes": 111090,
"sha256": "41729A2F3B4501E5C401658607FD3A2BF02A7049232F9A85636CAE47A0650766"
},
{
"path": "native-binary.json",
"bytes": 550,
"sha256": "0A6E3D33FC54AE52737DBE88D3A363C47CCE98DB2B221DCADD0AC7AD06670651"
},
{
"path": "README.md",
"bytes": 2798,
"sha256": "FDE7B888A1EB3273A442FF3FED9C17554334CFFBD8F82CBA2B8C1BD208B91733"
},
{
"path": "run.ps1",
"bytes": 4435,
"sha256": "15AF681533CC55A84F92D3C29B90DC065A6475688CBCBEAE46B930C7A1AC4C7B"
},
{
"path": "timing-receipt.json",
"bytes": 582,
"sha256": "5F7E936D4D48ED5305C2F9DDA829674E7A68F2B701036C9356CE878D97FE5FFB"
},
{
"path": "timing.log",
"bytes": 7595,
"sha256": "DC3A5B646846EA08A97544BA21A6B3D266B7E21EF4730DBDB7B97622F1583B6A"
},
{
"path": "usage-receipt.json",
"bytes": 567,
"sha256": "B4F0BD7B530E925A556F36FF0117975484BE9062C3369601CDF968B1BCA7CF75"
},
{
"path": "usage.log",
"bytes": 3999,
"sha256": "FCE0A68F2ADC609F4273510178838B74C8E496A25560037AF135CC794AA3F864"
},
{
"path": "verification.json",
"bytes": 529,
"sha256": "8DED85CDC900A48E0E739ED1E1243C3249FCB8BFD2018E9B454A39EC0794F07B"
}
]
}
@@ -0,0 +1,54 @@
param([Parameter(Mandatory=$true)][ValidateSet('check','list','focused','usage','tests','clippy','build','timing')][string]$Stage)
$ErrorActionPreference = 'Stop'
$taskWorkspace = 'C:\Users\User\Documents\Git\ARCADIA-Studio\.local\navigation-rename-union-ytr83r-20260912'
Push-Location -LiteralPath $taskWorkspace
try {
. 'C:\Users\User\Documents\Git\ARCADIA-Studio\.local\toolchain\env.ps1'
$env:CARGO_TARGET_DIR = 'C:\Users\User\Documents\Git\ARCADIA-Studio\target'
$taskArgs = switch ($Stage) {
'check' { @('check','-p','oa-desktop','--bin','arcadia-studio','--tests','--locked','--offline') }
'list' { @('test','-p','oa-desktop','--bin','arcadia-studio','--locked','--offline','--','--list') }
'focused' { @('test','-p','oa-desktop','--bin','arcadia-studio','--locked','--offline','--','app::source_rename::tests::navigation_union_tests::','app::source_rename::tests::preview_scroll_tests::','--test-threads=1') }
'usage' { @('test','-p','oa-desktop','--bin','arcadia-studio','--locked','--offline','--','app::diagram_usages::tests::','behavior::scenario::usage::tests::','--test-threads=1') }
'tests' { @('test','-p','oa-desktop','--all-targets','--locked','--offline') }
'clippy' { @('clippy','-p','oa-desktop','--all-targets','--locked','--offline','--','-D','warnings') }
'build' { @('build','-p','oa-desktop','--bin','arcadia-studio','--locked','--offline') }
'timing' { @('test','-p','oa-desktop','--bin','arcadia-studio','--locked','--offline','--','accepted_release1_prepare_commit_sync_and_confirm_timing','--ignored','--nocapture','--test-threads=1') }
}
$taskLog = Join-Path $PSScriptRoot ($Stage+'.log')
$taskReceipt = Join-Path $PSScriptRoot ($Stage+'-receipt.json')
if ((Test-Path -LiteralPath $taskLog) -or (Test-Path -LiteralPath $taskReceipt)) { throw 'Refusing to replace existing gate evidence' }
$taskStart = [DateTime]::UtcNow.ToString('o')
$taskBase = git rev-parse HEAD
if ($LASTEXITCODE -ne 0) { throw 'Cannot identify source commit' }
$taskInputs = Get-Content -Raw -LiteralPath (Join-Path $PSScriptRoot 'inputs-complete-before.json') | ConvertFrom-Json
if ($taskInputs.base -ne $taskBase -or $taskInputs.workspace -ne $taskWorkspace) { throw 'Captured source does not match the pinned gate checkout' }
if ($Stage -eq 'tests') {
$taskListing = Get-Content -Raw -LiteralPath (Join-Path $PSScriptRoot 'list-receipt.json') | ConvertFrom-Json
if (-not $taskListing.selectionValid -or $taskListing.cargoExitCode -ne 0 -or $taskListing.base -ne $taskBase) { throw 'Full gate requires valid listing of this source commit' }
}
& cargo @taskArgs 2>&1 | Tee-Object -FilePath $taskLog
$taskExit = $LASTEXITCODE
$taskOutput = Get-Content -Raw -LiteralPath $taskLog
$taskSelectionValid = $true
$taskListed = $null
$taskUnionCount = $null
$taskScrollCount = $null
if ($Stage -eq 'list') {
$taskListed = [regex]::Matches($taskOutput, '(?m)^[^\r\n]+: test\r?$').Count
$taskUnionCount = [regex]::Matches($taskOutput, '(?m)^app::source_rename::tests::navigation_union_tests::[^\r\n]+: test\r?$').Count
$taskScrollCount = [regex]::Matches($taskOutput, '(?m)^app::source_rename::tests::preview_scroll_tests::[^\r\n]+: test\r?$').Count
$taskSelectionValid = $taskListed -ge 905 -and $taskUnionCount -eq 6 -and $taskScrollCount -eq 4
}
if ($Stage -eq 'focused') { $taskSelectionValid = $taskOutput -match 'test result: ok\. 10 passed; 0 failed; 0 ignored;' }
if ($Stage -eq 'usage') { $taskSelectionValid = $taskOutput -match 'test result: ok\. 31 passed; 0 failed; 0 ignored;' }
if ($Stage -eq 'timing') { $taskSelectionValid = $taskOutput -match 'test result: ok\. 1 passed; 0 failed; 0 ignored;' }
if ($Stage -eq 'tests') {
$taskExpectedPassed = $taskListing.listedTests - 3
$taskSelectionValid = $taskOutput -match ('test result: ok\. '+$taskExpectedPassed+' passed; 0 failed; 3 ignored;')
}
[ordered]@{command=('cargo '+($taskArgs -join ' '));workspace=$taskWorkspace;startUtc=$taskStart;endUtc=[DateTime]::UtcNow.ToString('o');base=$taskBase;cargoExitCode=$taskExit;listedTests=$taskListed;listedUnionTests=$taskUnionCount;listedScrollTests=$taskScrollCount;selectionValid=$taskSelectionValid} | ConvertTo-Json | Set-Content -LiteralPath $taskReceipt -Encoding utf8
if ($taskExit -ne 0) { exit $taskExit }
if (-not $taskSelectionValid) { throw 'Selected test count or passing result differs from the explicit expectation' }
exit 0
} finally { Pop-Location }
@@ -0,0 +1,12 @@
{
"command": "cargo test -p oa-desktop --bin arcadia-studio --locked --offline -- accepted_release1_prepare_commit_sync_and_confirm_timing --ignored --nocapture --test-threads=1",
"workspace": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-union-ytr83r-20260912",
"startUtc": "2026-09-13T02:43:13.6188732Z",
"endUtc": "2026-09-13T02:43:56.4886713Z",
"base": "a49b0ec7ac4538a372139175386a881645c1a59e",
"cargoExitCode": 0,
"listedTests": null,
"listedUnionTests": null,
"listedScrollTests": null,
"selectionValid": true
}
@@ -0,0 +1,64 @@
Finished `test` profile [unoptimized] target(s) in 2.53s
Running unittests src\main.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\arcadia_studio-27db9628b266bf39.exe)
running 1 test
test app::source_rename::timing_tests::accepted_release1_prepare_commit_sync_and_confirm_timing ... {"active_file":"traceability.arcadia","active_file_bytes":29506,"debug_assertions":true,"entry":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-union-ytr83r-20260912\\crates\\oa-desktop\\../../examples/release1/project.arcadia","identities":258,"measured_trials":5,"new":"oa_restore_pressure","old":"oa_restore_work","reachable_files":30,"record":"fixture","scope":"real worker helpers, guarded Document commit, App sync and Confirm update; no task polling or rendering","source_bytes":78414,"warmups":1}
{"record":"order","separate_phases_first":true,"trial":0,"warmup":true}
{"elapsed_ms":0.0693,"elapsed_ns":"69300","phase":"document_request_mint","record":"timing","trial":0,"warmup":true}
{"elapsed_ms":414.049,"elapsed_ns":"414049000","phase":"worker_document_prepare","record":"timing","trial":0,"warmup":true}
{"elapsed_ms":9.898900000000001,"elapsed_ns":"9898900","phase":"worker_preview_and_origin","record":"timing","trial":0,"warmup":true}
{"elapsed_ms":0.0247,"elapsed_ns":"24700","phase":"document_guarded_commit","record":"timing","trial":0,"warmup":true}
{"elapsed_ms":1167.6792,"elapsed_ns":"1167679200","phase":"app_sync","record":"timing","trial":0,"warmup":true}
{"elapsed_ms":59.4713,"elapsed_ns":"59471300","phase":"app_confirm_update","record":"timing","trial":0,"warmup":true}
{"elapsed_ms":0.0011,"elapsed_ns":"1100","phase":"confirm_returned_task_drop_without_polling","record":"timing","trial":0,"warmup":true}
{"record":"order","separate_phases_first":false,"trial":1,"warmup":false}
{"elapsed_ms":37.7156,"elapsed_ns":"37715600","phase":"app_confirm_update","record":"timing","trial":1,"warmup":false}
{"elapsed_ms":0.0005,"elapsed_ns":"500","phase":"confirm_returned_task_drop_without_polling","record":"timing","trial":1,"warmup":false}
{"elapsed_ms":0.1638,"elapsed_ns":"163800","phase":"document_request_mint","record":"timing","trial":1,"warmup":false}
{"elapsed_ms":724.7127,"elapsed_ns":"724712700","phase":"worker_document_prepare","record":"timing","trial":1,"warmup":false}
{"elapsed_ms":100.3696,"elapsed_ns":"100369600","phase":"worker_preview_and_origin","record":"timing","trial":1,"warmup":false}
{"elapsed_ms":0.0056,"elapsed_ns":"5600","phase":"document_guarded_commit","record":"timing","trial":1,"warmup":false}
{"elapsed_ms":1594.9852,"elapsed_ns":"1594985200","phase":"app_sync","record":"timing","trial":1,"warmup":false}
{"record":"order","separate_phases_first":true,"trial":2,"warmup":false}
{"elapsed_ms":0.037200000000000004,"elapsed_ns":"37200","phase":"document_request_mint","record":"timing","trial":2,"warmup":false}
{"elapsed_ms":443.21389999999997,"elapsed_ns":"443213900","phase":"worker_document_prepare","record":"timing","trial":2,"warmup":false}
{"elapsed_ms":43.2209,"elapsed_ns":"43220900","phase":"worker_preview_and_origin","record":"timing","trial":2,"warmup":false}
{"elapsed_ms":0.0067,"elapsed_ns":"6700","phase":"document_guarded_commit","record":"timing","trial":2,"warmup":false}
{"elapsed_ms":950.0872,"elapsed_ns":"950087200","phase":"app_sync","record":"timing","trial":2,"warmup":false}
{"elapsed_ms":43.0291,"elapsed_ns":"43029100","phase":"app_confirm_update","record":"timing","trial":2,"warmup":false}
{"elapsed_ms":0.0014,"elapsed_ns":"1400","phase":"confirm_returned_task_drop_without_polling","record":"timing","trial":2,"warmup":false}
{"record":"order","separate_phases_first":false,"trial":3,"warmup":false}
{"elapsed_ms":31.2433,"elapsed_ns":"31243300","phase":"app_confirm_update","record":"timing","trial":3,"warmup":false}
{"elapsed_ms":0.0015,"elapsed_ns":"1500","phase":"confirm_returned_task_drop_without_polling","record":"timing","trial":3,"warmup":false}
{"elapsed_ms":0.0467,"elapsed_ns":"46700","phase":"document_request_mint","record":"timing","trial":3,"warmup":false}
{"elapsed_ms":338.62829999999997,"elapsed_ns":"338628300","phase":"worker_document_prepare","record":"timing","trial":3,"warmup":false}
{"elapsed_ms":46.8306,"elapsed_ns":"46830600","phase":"worker_preview_and_origin","record":"timing","trial":3,"warmup":false}
{"elapsed_ms":0.0115,"elapsed_ns":"11500","phase":"document_guarded_commit","record":"timing","trial":3,"warmup":false}
{"elapsed_ms":1161.9446,"elapsed_ns":"1161944600","phase":"app_sync","record":"timing","trial":3,"warmup":false}
{"record":"order","separate_phases_first":true,"trial":4,"warmup":false}
{"elapsed_ms":0.0384,"elapsed_ns":"38400","phase":"document_request_mint","record":"timing","trial":4,"warmup":false}
{"elapsed_ms":334.1703,"elapsed_ns":"334170300","phase":"worker_document_prepare","record":"timing","trial":4,"warmup":false}
{"elapsed_ms":18.0882,"elapsed_ns":"18088200","phase":"worker_preview_and_origin","record":"timing","trial":4,"warmup":false}
{"elapsed_ms":0.008,"elapsed_ns":"8000","phase":"document_guarded_commit","record":"timing","trial":4,"warmup":false}
{"elapsed_ms":1049.6787000000002,"elapsed_ns":"1049678700","phase":"app_sync","record":"timing","trial":4,"warmup":false}
{"elapsed_ms":89.68220000000001,"elapsed_ns":"89682200","phase":"app_confirm_update","record":"timing","trial":4,"warmup":false}
{"elapsed_ms":0.0011,"elapsed_ns":"1100","phase":"confirm_returned_task_drop_without_polling","record":"timing","trial":4,"warmup":false}
{"record":"order","separate_phases_first":false,"trial":5,"warmup":false}
{"elapsed_ms":53.003099999999996,"elapsed_ns":"53003100","phase":"app_confirm_update","record":"timing","trial":5,"warmup":false}
{"elapsed_ms":0.0022,"elapsed_ns":"2200","phase":"confirm_returned_task_drop_without_polling","record":"timing","trial":5,"warmup":false}
{"elapsed_ms":0.0602,"elapsed_ns":"60200","phase":"document_request_mint","record":"timing","trial":5,"warmup":false}
{"elapsed_ms":377.09749999999997,"elapsed_ns":"377097500","phase":"worker_document_prepare","record":"timing","trial":5,"warmup":false}
{"elapsed_ms":53.723600000000005,"elapsed_ns":"53723600","phase":"worker_preview_and_origin","record":"timing","trial":5,"warmup":false}
{"elapsed_ms":0.0058000000000000005,"elapsed_ns":"5800","phase":"document_guarded_commit","record":"timing","trial":5,"warmup":false}
{"elapsed_ms":1230.0683000000001,"elapsed_ns":"1230068300","phase":"app_sync","record":"timing","trial":5,"warmup":false}
{"max_ms":89.68220000000001,"median_ms":43.0291,"min_ms":31.2433,"phase":"app_confirm_update","record":"summary","samples":5}
{"max_ms":1594.9852,"median_ms":1161.9446,"min_ms":950.0872,"phase":"app_sync","record":"summary","samples":5}
{"max_ms":0.0022,"median_ms":0.0014,"min_ms":0.0005,"phase":"confirm_returned_task_drop_without_polling","record":"summary","samples":5}
{"max_ms":0.0115,"median_ms":0.0067,"min_ms":0.0056,"phase":"document_guarded_commit","record":"summary","samples":5}
{"max_ms":0.1638,"median_ms":0.0467,"min_ms":0.037200000000000004,"phase":"document_request_mint","record":"summary","samples":5}
{"max_ms":724.7127,"median_ms":377.09749999999997,"min_ms":334.1703,"phase":"worker_document_prepare","record":"summary","samples":5}
{"max_ms":100.3696,"median_ms":46.8306,"min_ms":18.0882,"phase":"worker_preview_and_origin","record":"summary","samples":5}
ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 953 filtered out; finished in 38.57s
@@ -0,0 +1,12 @@
{
"command": "cargo test -p oa-desktop --bin arcadia-studio --locked --offline -- app::diagram_usages::tests:: behavior::scenario::usage::tests:: --test-threads=1",
"workspace": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-union-ytr83r-20260912",
"startUtc": "2026-09-13T02:32:53.6828878Z",
"endUtc": "2026-09-13T02:41:45.7798654Z",
"base": "a49b0ec7ac4538a372139175386a881645c1a59e",
"cargoExitCode": 0,
"listedTests": null,
"listedUnionTests": null,
"listedScrollTests": null,
"selectionValid": true
}
@@ -0,0 +1,39 @@
Compiling oa-desktop v0.2.0 (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\navigation-rename-union-ytr83r-20260912\crates\oa-desktop)
Finished `test` profile [unoptimized] target(s) in 8m 49s
Running unittests src\main.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\arcadia_studio-27db9628b266bf39.exe)
running 31 tests
test app::diagram_usages::tests::accepted_new_chooser_retires_old_measurement_without_blocking_future_viewports ... ok
test app::diagram_usages::tests::allocation_navigation_keeps_relation_selection_and_exact_visual_work_lifetime ... ok
test app::diagram_usages::tests::asynchronous_lookup_is_loading_inert_and_retains_filter_until_completion ... ok
test app::diagram_usages::tests::caret_uses_exact_verified_alias_identity_and_preserves_source_cursor ... ok
test app::diagram_usages::tests::closed_lookup_keeps_slot_and_replacement_waits_for_exact_old_completion ... ok
test app::diagram_usages::tests::completion_after_cancel_releases_slot_without_reopening_or_moving ... ok
test app::diagram_usages::tests::completion_releases_worker_behind_busy_modal_without_navigation ... ok
test app::diagram_usages::tests::dirty_or_comment_caret_has_no_selected_object_fallback ... ok
test app::diagram_usages::tests::forged_completion_cannot_release_another_slot_or_admit_wrong_context ... ok
test app::diagram_usages::tests::old_panel_tokens_and_forged_targets_cannot_redirect_selection ... ok
test app::diagram_usages::tests::oversized_node_focus_stays_on_label_and_single_surface_query_excludes_other_views ... ok
test app::diagram_usages::tests::pending_source_behavior_and_modal_inputs_block_open_and_choose_without_loss ... ok
test app::diagram_usages::tests::port_navigation_selects_port_and_exact_visible_owner_without_editing_geometry ... ok
test app::diagram_usages::tests::query_presentation_snapshot_keeps_expansion_without_retaining_live_state ... ok
test app::diagram_usages::tests::repeated_preview_arrows_select_the_relation_and_highlight_the_exact_caller_link ... ok
test app::diagram_usages::tests::repeated_process_calls_reveal_the_chosen_caller_and_distinct_tile_camera ... ok
test app::diagram_usages::tests::repeated_scenario_messages_select_the_exact_occurrence_and_move_camera ... ok
test app::diagram_usages::tests::reset_keeps_old_worker_slot_and_only_new_document_results_are_admitted ... ok
test app::diagram_usages::tests::revision_retarget_and_document_change_make_old_destinations_inert ... ok
test app::diagram_usages::tests::saved_node_and_edge_navigation_preserve_whole_sources_and_actual_history ... ok
test app::diagram_usages::tests::stale_caret_completion_never_opens_diagrams_for_current_selection ... ok
test app::diagram_usages::tests::stale_open_context_cannot_replace_a_panel ... ok
test app::diagram_usages::tests::stale_revision_completion_refreshes_asynchronously_without_activating ... ok
test app::diagram_usages::tests::state_row_navigation_has_exact_visual_row_without_retargeting_the_selected_relation ... ok
test app::diagram_usages::tests::tree_origin_captures_subject_and_never_falls_back_to_current_selection_or_name ... ok
test app::diagram_usages::tests::whole_surface_camera_fits_huge_extent_while_target_camera_remains_readable ... ok
test app::diagram_usages::tests::worker_failure_finishes_loading_and_can_be_retried_without_losing_sources ... ok
test behavior::scenario::usage::tests::scenario_operation_label_membership_excludes_ellipsis_only_and_normalizes_whitespace ... ok
test behavior::scenario::usage::tests::scenario_usage_counts_nested_occurrences_and_lifelines_but_keeps_reuse_opaque ... ok
test behavior::scenario::usage::tests::scenario_usage_keeps_repeated_messages_and_reveal_is_read_only_and_revalidated ... ok
test behavior::scenario::usage::tests::scenario_usage_only_reports_the_resolved_operation_fields_actually_in_the_label ... ok
test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 923 filtered out; finished in 1.61s
@@ -0,0 +1,15 @@
{
"verifiedUtc": "2026-09-13T03:05:04.1963921Z",
"source": "a49b0ec7ac4538a372139175386a881645c1a59e",
"enumeratedInputs": 577,
"beforeAfterMembershipBytesHashesEqual": true,
"currentSourceFilesChecked": 577,
"successfulStages": [
"strict-clippy",
"desktop-build",
"usage31",
"timing1"
],
"prior951Source": "10bd71197285a4ba894e6ed9398d2c5402ab463d",
"timingContention": "Parent reports concurrent core compilation; not independently established by these isolated timing logs."
}
@@ -0,0 +1,3 @@
*.log -text -whitespace
*.json -text whitespace=cr-at-eol
run.ps1 -text whitespace=cr-at-eol
@@ -0,0 +1,21 @@
# Rejected cross-checkout build-cache attempt
The Windows navigation/rename gate on source 208268c8aa7f6bc3c2bab6a3c0657358f3f7dc23 rejected its first test listing. It must not be counted as successful compilation or testing of that source, despite Cargo returning exit zero. This report is stored on the experiment evidence branch; it does not change the frozen union source.
## Observation and admission failure
The explicit checkout in the runner and Cargo metadata both resolved to the navigation/rename union. All 577 input records matched the fresh attempt's capture by path, byte length and SHA-256. Nevertheless Cargo check finished in 5.44 seconds and the test profile in 3.35 seconds using the shared target/debug executable from the preceding source4b experiment. The listing contained 918 tests and its prior experiment names, with zero navigation_union_tests and zero preview_scroll_tests. The new source requires six and four respectively. The runner recorded selectionValid=false and exited with an error before any full-suite acceptance.
The prior source4b experiment's 23 tests remain separately evidenced in ../behavior-anchor-plan-gates-20260913/README.md. This cache rejection does not invalidate those executions, earlier explicitly compiled navigation/core results, or any published release asset. No fresh union success is claimed here.
## Correction and verification policy
The rejected raw logs, receipts, runner and input capture are preserved unchanged here, with byte/SHA-256/Git-blob bindings in artifacts.json. The initial check receipt's selectionValid=true applies only to its then-unchecked command; this report explicitly rejects that result for source attribution.
The shared target directory had been reused across worktrees whose local package names and target paths coincide. Correct Cargo workspace selection alone did not prevent stale reuse in this observed case. The exact internal Cargo invalidation cause has not been isolated. A timestamp/source-identity cache collision is a hypothesis, not a proven general Cargo defect.
With all prior compiler jobs terminal, the parent ran cargo clean --target-dir <root>/target -p oa-desktop -p oa-core --profile dev. Its dry-run paths were resolved and checked to remain under the intended root/target/debug directory before cleanup. Third-party dependency artifacts, source trees and published packages were retained. The raw dry-run and cleanup logs are included. A new evidence directory was created; old receipts were not overwritten. A fresh 577-input capture matched the old capture exactly, and the new check began by explicitly compiling oa-core from the union checkout. Its eventual result belongs to a subsequent report.
For subsequent verification with this shared target, invalidate affected local workspace package artifacts whenever changing checkouts, retain identified inputs, require expected test membership, and freeze the compiler checkout throughout the gate. A separate target directory is another valid isolation strategy. A short Fresh result, exit zero, or input hashes by themselves do not establish that the intended code was executed.
Environment: Windows PowerShell, stable-x86_64-pc-windows-gnullvm Rust/Cargo1.98.1, local LLVM MinGW20260908 UCRT, jobs1/incremental0, locked/offline dependencies. Linux remains user-deferred. Live integration ownership and later results: Gitea issue27, comments771 and774.
@@ -0,0 +1,50 @@
[
{
"path": "check.log",
"bytes": 61,
"sha256": "e0daddbae25a9c22cec94593a88bcbc829076621edb8bcb6c627fded9b209a91",
"gitBlob": "26eecc807ab92cb895fdaca5e16796a64b6c1d7b"
},
{
"path": "check-receipt.json",
"bytes": 492,
"sha256": "c450b798a00d5ba4e6555bd4424f07b4d7f72a6d7ceb8b50c3800fbb6eda8e17",
"gitBlob": "87d26d367a466796b1d668c85ffc4d61df37cdd1"
},
{
"path": "list.log",
"bytes": 100384,
"sha256": "b7f3c4e4af92d19e9d3babf307fa3c3cc2bffb533e33a974519e8a660b196b36",
"gitBlob": "4a7c98938060195669a542dfeb6131b3c59a39b9"
},
{
"path": "list-receipt.json",
"bytes": 487,
"sha256": "e45eecae376e5725de2db05d174fe9eb71c4d7a6c8390319c920b58e9ac8c703",
"gitBlob": "d3588ff856257ea5d17fe973a8fa492fe08c7e9a"
},
{
"path": "inputs-before.json",
"bytes": 111090,
"sha256": "aa355882c94128f9b7b99422c2e5218a90131e95edebae8e7ec6dacfbb40494f",
"gitBlob": "31bb14cdc1a05d3a2522eecf5d9c0eb2e0a5de5d"
},
{
"path": "run.ps1",
"bytes": 4122,
"sha256": "eee2b3ceff3123e20d24b98505cc19efa4365a4c3d3b50f7aaae7d8f68bf510e",
"gitBlob": "ad5ca0de9646695db52887e2da309f8aaa9370f4"
},
{
"path": "clean-dry-run.log",
"bytes": 76539,
"sha256": "02f7b3fe14c7f0ca52f22f35ea0bcc4a15c10e9a31a2163845cc998a11241ad0",
"gitBlob": "a6726fbad4916a538ca83f3bfa79e87244c15f40"
},
{
"path": "clean.log",
"bytes": 42084,
"sha256": "f594988c26ae03fdac04894502d85b5d8354d32f3f6d50ada31f0276178b7694",
"gitBlob": "d5b05ec801def2b28f0a0cdd334fe49ff4fc39ed"
}
]
@@ -0,0 +1,12 @@
{
"command": "cargo check -p oa-desktop --bin arcadia-studio --tests --locked --offline",
"workspace": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-union-ytr83r-20260912",
"startUtc": "2026-09-13T01:16:32.8653043Z",
"endUtc": "2026-09-13T01:16:40.6293701Z",
"base": "208268c8aa7f6bc3c2bab6a3c0657358f3f7dc23",
"cargoExitCode": 0,
"listedTests": null,
"listedUnionTests": null,
"listedScrollTests": null,
"selectionValid": true
}
@@ -0,0 +1 @@
Finished `dev` profile [unoptimized] target(s) in 5.44s
@@ -0,0 +1,647 @@
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-27db9628b266bf39\dep-test-bin-arcadia-studio
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-27db9628b266bf39\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-27db9628b266bf39\test-bin-arcadia-studio
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-27db9628b266bf39\test-bin-arcadia-studio.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-27db9628b266bf39
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-307d320bbc13ccd5\run-build-script-build-script-build
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-307d320bbc13ccd5\run-build-script-build-script-build.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-307d320bbc13ccd5
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-455869a7f4afec7a\bin-arcadia-studio
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-455869a7f4afec7a\bin-arcadia-studio.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-455869a7f4afec7a\dep-bin-arcadia-studio
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-455869a7f4afec7a\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-455869a7f4afec7a
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-4a5ab235f7d23cab\dep-test-bin-arcadia-studio
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-4a5ab235f7d23cab\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-4a5ab235f7d23cab\test-bin-arcadia-studio
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-4a5ab235f7d23cab\test-bin-arcadia-studio.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-4a5ab235f7d23cab
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-53fa57373c14ef4a\bin-arcadia-studio
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-53fa57373c14ef4a\bin-arcadia-studio.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-53fa57373c14ef4a\dep-bin-arcadia-studio
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-53fa57373c14ef4a\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-53fa57373c14ef4a
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-54fb14b80523810e\bin-arcadia-studio
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-54fb14b80523810e\bin-arcadia-studio.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-54fb14b80523810e\dep-bin-arcadia-studio
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-54fb14b80523810e\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-54fb14b80523810e
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-5523f66d74e532a1\dep-test-bin-arcadia-studio
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-5523f66d74e532a1\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-5523f66d74e532a1\test-bin-arcadia-studio
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-5523f66d74e532a1\test-bin-arcadia-studio.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-5523f66d74e532a1
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-55311f0d2f4f27d3\bin-arcadia-studio
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-55311f0d2f4f27d3\bin-arcadia-studio.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-55311f0d2f4f27d3\dep-bin-arcadia-studio
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-55311f0d2f4f27d3\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-55311f0d2f4f27d3
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-57e3d18868d2f5c7\dep-test-bin-arcadia-studio
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-57e3d18868d2f5c7\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-57e3d18868d2f5c7\test-bin-arcadia-studio
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-57e3d18868d2f5c7\test-bin-arcadia-studio.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-57e3d18868d2f5c7
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-686406150bd01e7a\build-script-build-script-build
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-686406150bd01e7a\build-script-build-script-build.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-686406150bd01e7a\dep-build-script-build-script-build
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-686406150bd01e7a\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-686406150bd01e7a
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-7239a3c4adb4fff4\build-script-build-script-build
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-7239a3c4adb4fff4\build-script-build-script-build.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-7239a3c4adb4fff4\dep-build-script-build-script-build
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-7239a3c4adb4fff4\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-7239a3c4adb4fff4
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-93232a492cc801eb\bin-arcadia-studio
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-93232a492cc801eb\bin-arcadia-studio.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-93232a492cc801eb\dep-bin-arcadia-studio
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-93232a492cc801eb\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-93232a492cc801eb
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-bafd58c5d952bb55\run-build-script-build-script-build
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-bafd58c5d952bb55\run-build-script-build-script-build.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-bafd58c5d952bb55
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-df8567b2206722a9\bin-arcadia-studio
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-df8567b2206722a9\bin-arcadia-studio.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-df8567b2206722a9\dep-bin-arcadia-studio
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-df8567b2206722a9\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-df8567b2206722a9
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-df984b90c0583184\dep-test-bin-arcadia-studio
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-df984b90c0583184\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-df984b90c0583184\test-bin-arcadia-studio
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-df984b90c0583184\test-bin-arcadia-studio.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-df984b90c0583184
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-307d320bbc13ccd5\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-307d320bbc13ccd5\out\normal-user-manifest.o
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-307d320bbc13ccd5\out
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-307d320bbc13ccd5\output
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-307d320bbc13ccd5\root-output
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-307d320bbc13ccd5\stderr
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-307d320bbc13ccd5
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-686406150bd01e7a\build-script-build.exe
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-686406150bd01e7a\build_script_build-686406150bd01e7a.d
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-686406150bd01e7a\build_script_build-686406150bd01e7a.exe
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-686406150bd01e7a
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-7239a3c4adb4fff4\build-script-build.exe
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-7239a3c4adb4fff4\build_script_build-7239a3c4adb4fff4.d
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-7239a3c4adb4fff4\build_script_build-7239a3c4adb4fff4.exe
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-7239a3c4adb4fff4
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-bafd58c5d952bb55\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-bafd58c5d952bb55\out\normal-user-manifest.o
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-bafd58c5d952bb55\out
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-bafd58c5d952bb55\output
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-bafd58c5d952bb55\root-output
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-bafd58c5d952bb55\stderr
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-bafd58c5d952bb55
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-01b62bfdfd2168ff\dep-test-integration-test-r6_data
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-01b62bfdfd2168ff\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-01b62bfdfd2168ff\test-integration-test-r6_data
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-01b62bfdfd2168ff\test-integration-test-r6_data.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-01b62bfdfd2168ff
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-02f1809896251307\dep-test-integration-test-r3_constructor_ack
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-02f1809896251307\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-02f1809896251307\test-integration-test-r3_constructor_ack
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-02f1809896251307\test-integration-test-r3_constructor_ack.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-02f1809896251307
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-03fe14ea5f87b5c2\dep-test-integration-test-r3_source
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-03fe14ea5f87b5c2\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-03fe14ea5f87b5c2\test-integration-test-r3_source
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-03fe14ea5f87b5c2\test-integration-test-r3_source.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-03fe14ea5f87b5c2
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-04d3a8d8f295cb64
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-06551d22ccae1e39\dep-test-integration-test-coverage_diagnostics
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-06551d22ccae1e39\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-06551d22ccae1e39\test-integration-test-coverage_diagnostics
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-06551d22ccae1e39\test-integration-test-coverage_diagnostics.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-06551d22ccae1e39
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-06db75dbbb61a8d0\dep-test-integration-test-release_language_limits
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-06db75dbbb61a8d0\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-06db75dbbb61a8d0\test-integration-test-release_language_limits
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-06db75dbbb61a8d0\test-integration-test-release_language_limits.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-06db75dbbb61a8d0
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-076dbf88cea6ece4\dep-test-integration-test-language
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-076dbf88cea6ece4\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-076dbf88cea6ece4\test-integration-test-language
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-076dbf88cea6ece4\test-integration-test-language.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-076dbf88cea6ece4
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-0b4218b511bb18b0\dep-test-integration-test-source6_view_contract
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-0b4218b511bb18b0\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-0b4218b511bb18b0\test-integration-test-source6_view_contract
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-0b4218b511bb18b0\test-integration-test-source6_view_contract.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-0b4218b511bb18b0
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-0c35faca26438c6f\dep-test-integration-test-semantic_attachments_gui_oracle
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-0c35faca26438c6f\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-0c35faca26438c6f\test-integration-test-semantic_attachments_gui_oracle
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-0c35faca26438c6f\test-integration-test-semantic_attachments_gui_oracle.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-0c35faca26438c6f
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-0c7162d4ad246de6\dep-test-integration-test-release_topology
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-0c7162d4ad246de6\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-0c7162d4ad246de6\test-integration-test-release_topology
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-0c7162d4ad246de6\test-integration-test-release_topology.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-0c7162d4ad246de6
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-124514c0272b4a87
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-1c3cd13b3c0b8f0f
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-1d0325738ccf3169\dep-test-integration-test-port_migration
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-1d0325738ccf3169\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-1d0325738ccf3169\test-integration-test-port_migration
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-1d0325738ccf3169\test-integration-test-port_migration.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-1d0325738ccf3169
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-1f289ad156e27f06
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-1f3303b43877d006
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-1fac039e071a74d1\build-script-build-script-build
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-1fac039e071a74d1\build-script-build-script-build.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-1fac039e071a74d1\dep-build-script-build-script-build
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-1fac039e071a74d1\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-1fac039e071a74d1
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-21343651796281ff\dep-test-integration-test-r6_migration
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-21343651796281ff\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-21343651796281ff\test-integration-test-r6_migration
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-21343651796281ff\test-integration-test-r6_migration.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-21343651796281ff
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-220f10c654f5ecd6
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-2210dd414fc7dd6f\dep-test-example-generate_demo
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-2210dd414fc7dd6f\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-2210dd414fc7dd6f\test-example-generate_demo
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-2210dd414fc7dd6f\test-example-generate_demo.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-2210dd414fc7dd6f
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-2339e93bd5ecd8d2\dep-test-integration-test-r3_semantic
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-2339e93bd5ecd8d2\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-2339e93bd5ecd8d2\test-integration-test-r3_semantic
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-2339e93bd5ecd8d2\test-integration-test-r3_semantic.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-2339e93bd5ecd8d2
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-26552f0ffcc94257
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-2b531c7f68bcc3b3
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-2bea7cf2a3c87c55
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-30f3bd840b94c010\dep-test-integration-test-communication_boundary_scenarios
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-30f3bd840b94c010\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-30f3bd840b94c010\test-integration-test-communication_boundary_scenarios
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-30f3bd840b94c010\test-integration-test-communication_boundary_scenarios.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-30f3bd840b94c010
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-314dfecb7371bbd4\dep-test-integration-test-prepared_commands
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-314dfecb7371bbd4\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-314dfecb7371bbd4\test-integration-test-prepared_commands
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-314dfecb7371bbd4\test-integration-test-prepared_commands.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-314dfecb7371bbd4
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-325142a9aa0da247\dep-example-routing_workshop
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-325142a9aa0da247\example-routing_workshop
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-325142a9aa0da247\example-routing_workshop.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-325142a9aa0da247\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-325142a9aa0da247
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-32babe211f59be33
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-332cafef37432bf6\dep-test-integration-test-prepared_commands
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-332cafef37432bf6\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-332cafef37432bf6\test-integration-test-prepared_commands
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-332cafef37432bf6\test-integration-test-prepared_commands.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-332cafef37432bf6
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-343e5febcc1ef502\dep-lib-oa_core
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-343e5febcc1ef502\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-343e5febcc1ef502\lib-oa_core
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-343e5febcc1ef502\lib-oa_core.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-343e5febcc1ef502
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-346bba1bd3e5ecbd\dep-test-integration-test-r6_source
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-346bba1bd3e5ecbd\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-346bba1bd3e5ecbd\test-integration-test-r6_source
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-346bba1bd3e5ecbd\test-integration-test-r6_source.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-346bba1bd3e5ecbd
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-34a654b7c95ab57b\dep-test-example-release_dense_views
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-34a654b7c95ab57b\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-34a654b7c95ab57b\test-example-release_dense_views
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-34a654b7c95ab57b\test-example-release_dense_views.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-34a654b7c95ab57b
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3835d3237ee22542\dep-lib-oa_core
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3835d3237ee22542\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3835d3237ee22542\lib-oa_core
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3835d3237ee22542\lib-oa_core.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3835d3237ee22542
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-38898034cc715c78\dep-test-lib-oa_core
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-38898034cc715c78\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-38898034cc715c78\test-lib-oa_core
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-38898034cc715c78\test-lib-oa_core.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-38898034cc715c78
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3a854e8fe8fc282e\dep-test-integration-test-source_identity_updates
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3a854e8fe8fc282e\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3a854e8fe8fc282e\test-integration-test-source_identity_updates
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3a854e8fe8fc282e\test-integration-test-source_identity_updates.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3a854e8fe8fc282e
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3b2eae48ba195f8a\dep-test-integration-test-communication_means
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3b2eae48ba195f8a\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3b2eae48ba195f8a\test-integration-test-communication_means
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3b2eae48ba195f8a\test-integration-test-communication_means.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3b2eae48ba195f8a
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3b96491d99f5103d\dep-test-lib-oa_core
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3b96491d99f5103d\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3b96491d99f5103d\test-lib-oa_core
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3b96491d99f5103d\test-lib-oa_core.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3b96491d99f5103d
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3c0b95acb1568895\dep-test-integration-test-routing_geometry
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3c0b95acb1568895\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3c0b95acb1568895\test-integration-test-routing_geometry
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3c0b95acb1568895\test-integration-test-routing_geometry.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3c0b95acb1568895
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3d38ddae4498204d
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3e8d1c6e884aa97a\dep-test-integration-test-release_capabilities
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3e8d1c6e884aa97a\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3e8d1c6e884aa97a\test-integration-test-release_capabilities
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3e8d1c6e884aa97a\test-integration-test-release_capabilities.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3e8d1c6e884aa97a
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3ef39787c925aa03\dep-test-integration-test-source7_contract
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3ef39787c925aa03\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3ef39787c925aa03\test-integration-test-source7_contract
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3ef39787c925aa03\test-integration-test-source7_contract.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3ef39787c925aa03
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-42cd5d87f8c17fc4\dep-test-integration-test-coverage_diagnostics
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-42cd5d87f8c17fc4\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-42cd5d87f8c17fc4\test-integration-test-coverage_diagnostics
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-42cd5d87f8c17fc4\test-integration-test-coverage_diagnostics.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-42cd5d87f8c17fc4
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-43922ec123d5ebd1
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-442843dd53963d57
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-471e868d04b07989\dep-test-integration-test-workflows
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-471e868d04b07989\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-471e868d04b07989\test-integration-test-workflows
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-471e868d04b07989\test-integration-test-workflows.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-471e868d04b07989
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-476c123ad9760365
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-48191cff9bf3cabf\dep-test-integration-test-routing_geometry
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-48191cff9bf3cabf\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-48191cff9bf3cabf\test-integration-test-routing_geometry
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-48191cff9bf3cabf\test-integration-test-routing_geometry.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-48191cff9bf3cabf
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-49b87014548ec3f1\dep-test-integration-test-r6_source
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-49b87014548ec3f1\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-49b87014548ec3f1\test-integration-test-r6_source
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-49b87014548ec3f1\test-integration-test-r6_source.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-49b87014548ec3f1
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4a8b11168393a651\dep-test-integration-test-state_diagrams
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4a8b11168393a651\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4a8b11168393a651\test-integration-test-state_diagrams
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4a8b11168393a651\test-integration-test-state_diagrams.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4a8b11168393a651
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4d3f9e71fe04d970\dep-test-integration-test-release_ports
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4d3f9e71fe04d970\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4d3f9e71fe04d970\test-integration-test-release_ports
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4d3f9e71fe04d970\test-integration-test-release_ports.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4d3f9e71fe04d970
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4dde9b672a1838ee\dep-test-integration-test-r3_migration
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4dde9b672a1838ee\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4dde9b672a1838ee\test-integration-test-r3_migration
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4dde9b672a1838ee\test-integration-test-r3_migration.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4dde9b672a1838ee
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4e5ebc400f40bb54\dep-test-integration-test-route_source
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4e5ebc400f40bb54\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4e5ebc400f40bb54\test-integration-test-route_source
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4e5ebc400f40bb54\test-integration-test-route_source.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4e5ebc400f40bb54
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4f4f55e3afdbbcb7\dep-test-integration-test-release_topology
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4f4f55e3afdbbcb7\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4f4f55e3afdbbcb7\test-integration-test-release_topology
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4f4f55e3afdbbcb7\test-integration-test-release_topology.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4f4f55e3afdbbcb7
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-526e941e69518e0a\dep-test-integration-test-source_nested_updates
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-526e941e69518e0a\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-526e941e69518e0a\test-integration-test-source_nested_updates
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-526e941e69518e0a\test-integration-test-source_nested_updates.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-526e941e69518e0a
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-53253a46cddaf2b2\dep-test-integration-test-semantic_artifact_absence_oracle
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-53253a46cddaf2b2\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-53253a46cddaf2b2\test-integration-test-semantic_artifact_absence_oracle
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-53253a46cddaf2b2\test-integration-test-semantic_artifact_absence_oracle.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-53253a46cddaf2b2
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-568d5cac52c5514a\dep-test-integration-test-process_diagnostics
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-568d5cac52c5514a\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-568d5cac52c5514a\test-integration-test-process_diagnostics
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-568d5cac52c5514a\test-integration-test-process_diagnostics.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-568d5cac52c5514a
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-58baa10d3fbb43e0\dep-test-integration-test-r3_semantic
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-58baa10d3fbb43e0\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-58baa10d3fbb43e0\test-integration-test-r3_semantic
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-58baa10d3fbb43e0\test-integration-test-r3_semantic.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-58baa10d3fbb43e0
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-5a4d069a53abb747\dep-test-integration-test-semantic_attachments_gui_oracle
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-5a4d069a53abb747\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-5a4d069a53abb747\test-integration-test-semantic_attachments_gui_oracle
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-5a4d069a53abb747\test-integration-test-semantic_attachments_gui_oracle.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-5a4d069a53abb747
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-5c1c39aba3780201\dep-test-integration-test-state_diagrams
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-5c1c39aba3780201\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-5c1c39aba3780201\test-integration-test-state_diagrams
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-5c1c39aba3780201\test-integration-test-state_diagrams.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-5c1c39aba3780201
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-5c8a25e25633efa8
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-617812140094d640\dep-test-integration-test-release_scenarios
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-617812140094d640\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-617812140094d640\test-integration-test-release_scenarios
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-617812140094d640\test-integration-test-release_scenarios.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-617812140094d640
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-624f8dd2ed7bc8df
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-62a6974324eef197\dep-test-integration-test-release_ports
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-62a6974324eef197\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-62a6974324eef197\test-integration-test-release_ports
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-62a6974324eef197\test-integration-test-release_ports.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-62a6974324eef197
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-63796f4c94eff924
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-64114f33cdb81ced\dep-test-integration-test-r3_migration
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-64114f33cdb81ced\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-64114f33cdb81ced\test-integration-test-r3_migration
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-64114f33cdb81ced\test-integration-test-r3_migration.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-64114f33cdb81ced
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6522938ebe698221
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6689a035331bb7d9
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-69b4578e5972e028\dep-test-integration-test-review_regressions
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-69b4578e5972e028\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-69b4578e5972e028\test-integration-test-review_regressions
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-69b4578e5972e028\test-integration-test-review_regressions.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-69b4578e5972e028
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-69c58adc42a37f11\dep-test-integration-test-port_source
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-69c58adc42a37f11\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-69c58adc42a37f11\test-integration-test-port_source
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-69c58adc42a37f11\test-integration-test-port_source.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-69c58adc42a37f11
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6a1d60e4990a7695
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6b0cbab0e77d8963\dep-test-integration-test-r3_constructor_ack
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6b0cbab0e77d8963\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6b0cbab0e77d8963\test-integration-test-r3_constructor_ack
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6b0cbab0e77d8963\test-integration-test-r3_constructor_ack.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6b0cbab0e77d8963
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6ca626ec2f446272\dep-test-integration-test-port_source
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6ca626ec2f446272\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6ca626ec2f446272\test-integration-test-port_source
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6ca626ec2f446272\test-integration-test-port_source.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6ca626ec2f446272
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6d7d247723001b33\dep-lib-oa_core
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6d7d247723001b33\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6d7d247723001b33\lib-oa_core
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6d7d247723001b33\lib-oa_core.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6d7d247723001b33
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6e04e34b773092aa\dep-example-generate_release1
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6e04e34b773092aa\example-generate_release1
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6e04e34b773092aa\example-generate_release1.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6e04e34b773092aa\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6e04e34b773092aa
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6e7d2e8b18d260e0\dep-test-integration-test-semantic_artifact_absence_oracle
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6e7d2e8b18d260e0\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6e7d2e8b18d260e0\test-integration-test-semantic_artifact_absence_oracle
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6e7d2e8b18d260e0\test-integration-test-semantic_artifact_absence_oracle.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6e7d2e8b18d260e0
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-70419412597c9efc\build-script-build-script-build
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-70419412597c9efc\build-script-build-script-build.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-70419412597c9efc\dep-build-script-build-script-build
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-70419412597c9efc\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-70419412597c9efc
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-70aec2be9e005f38\run-build-script-build-script-build
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-70aec2be9e005f38\run-build-script-build-script-build.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-70aec2be9e005f38
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-70be4b4fbe4677bc
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-70e9f1581bff3575\dep-test-integration-test-port_migration
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-70e9f1581bff3575\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-70e9f1581bff3575\test-integration-test-port_migration
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-70e9f1581bff3575\test-integration-test-port_migration.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-70e9f1581bff3575
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-71693693d5e8cc32
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7357f7f481bb6d8d\dep-test-integration-test-routing_labels
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7357f7f481bb6d8d\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7357f7f481bb6d8d\test-integration-test-routing_labels
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7357f7f481bb6d8d\test-integration-test-routing_labels.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7357f7f481bb6d8d
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-74170ca09ac46066\dep-test-integration-test-release_scenarios
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-74170ca09ac46066\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-74170ca09ac46066\test-integration-test-release_scenarios
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-74170ca09ac46066\test-integration-test-release_scenarios.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-74170ca09ac46066
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-742532f6a87b13a8
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-767f1d40a9203c1c
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-77691e437c153359\dep-test-integration-test-r6_migration
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-77691e437c153359\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-77691e437c153359\test-integration-test-r6_migration
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-77691e437c153359\test-integration-test-r6_migration.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-77691e437c153359
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-77852d41b72fb5a1\dep-test-integration-test-source7_contract
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-77852d41b72fb5a1\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-77852d41b72fb5a1\test-integration-test-source7_contract
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-77852d41b72fb5a1\test-integration-test-source7_contract.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-77852d41b72fb5a1
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7788f478ad94d995\dep-test-integration-test-release_routing
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7788f478ad94d995\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7788f478ad94d995\test-integration-test-release_routing
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7788f478ad94d995\test-integration-test-release_routing.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7788f478ad94d995
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-77aa9cfe3196ef69\dep-test-example-generate_release1
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-77aa9cfe3196ef69\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-77aa9cfe3196ef69\test-example-generate_release1
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-77aa9cfe3196ef69\test-example-generate_release1.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-77aa9cfe3196ef69
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-77db95e44288346e
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7b7cc16581e72c1e\dep-test-integration-test-r6_data
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7b7cc16581e72c1e\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7b7cc16581e72c1e\test-integration-test-r6_data
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7b7cc16581e72c1e\test-integration-test-r6_data.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7b7cc16581e72c1e
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7b856fb9c92dc38b
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7ba5c30f572a7957\dep-test-integration-test-release_states
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7ba5c30f572a7957\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7ba5c30f572a7957\test-integration-test-release_states
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7ba5c30f572a7957\test-integration-test-release_states.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7ba5c30f572a7957
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-83f613657b302df8\dep-test-integration-test-source_project
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-83f613657b302df8\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-83f613657b302df8\test-integration-test-source_project
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-83f613657b302df8\test-integration-test-source_project.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-83f613657b302df8
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-85784ce621e4d836
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-85a8b372ce9c5c60\dep-test-integration-test-r3_source
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-85a8b372ce9c5c60\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-85a8b372ce9c5c60\test-integration-test-r3_source
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-85a8b372ce9c5c60\test-integration-test-r3_source.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-85a8b372ce9c5c60
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-85c0d5e4846b2dc9
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-8635e7175e485e0b\dep-test-integration-test-release_diagrams
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-8635e7175e485e0b\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-8635e7175e485e0b\test-integration-test-release_diagrams
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-8635e7175e485e0b\test-integration-test-release_diagrams.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-8635e7175e485e0b
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-86a2622fbe014324\dep-lib-oa_core
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-86a2622fbe014324\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-86a2622fbe014324\lib-oa_core
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-86a2622fbe014324\lib-oa_core.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-86a2622fbe014324
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-89bfaa77af64cf33
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-8a864e51c6f5081e\dep-test-integration-test-workflows
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-8a864e51c6f5081e\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-8a864e51c6f5081e\test-integration-test-workflows
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-8a864e51c6f5081e\test-integration-test-workflows.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-8a864e51c6f5081e
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-8a9247a7cfc0ed89
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-8b1eab709086d619
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-8c4f541b379315a9
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-8cf9e66328eb0b64
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-8fc9452cc4a41fc0
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-98f2569a5a0671fb
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-9a52d70efd00a94b\dep-test-integration-test-communication_means
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-9a52d70efd00a94b\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-9a52d70efd00a94b\test-integration-test-communication_means
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-9a52d70efd00a94b\test-integration-test-communication_means.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-9a52d70efd00a94b
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-9bfd3420f603432c
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-9d4bca6af3b2c6dc\dep-test-integration-test-review_regressions
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-9d4bca6af3b2c6dc\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-9d4bca6af3b2c6dc\test-integration-test-review_regressions
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-9d4bca6af3b2c6dc\test-integration-test-review_regressions.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-9d4bca6af3b2c6dc
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-9d8969e97e8b197c\run-build-script-build-script-build
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-9d8969e97e8b197c\run-build-script-build-script-build.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-9d8969e97e8b197c
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-9e09977bdc4e7c5d\dep-test-integration-test-source6_view_contract
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-9e09977bdc4e7c5d\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-9e09977bdc4e7c5d\test-integration-test-source6_view_contract
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-9e09977bdc4e7c5d\test-integration-test-source6_view_contract.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-9e09977bdc4e7c5d
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-a30f839379f5248c\dep-test-example-routing_workshop
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-a30f839379f5248c\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-a30f839379f5248c\test-example-routing_workshop
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-a30f839379f5248c\test-example-routing_workshop.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-a30f839379f5248c
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-a36122ff093b89ea\dep-test-integration-test-process_diagnostics
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-a36122ff093b89ea\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-a36122ff093b89ea\test-integration-test-process_diagnostics
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-a36122ff093b89ea\test-integration-test-process_diagnostics.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-a36122ff093b89ea
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-a3a2144b186de9d1\dep-test-integration-test-release_states
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-a3a2144b186de9d1\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-a3a2144b186de9d1\test-integration-test-release_states
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-a3a2144b186de9d1\test-integration-test-release_states.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-a3a2144b186de9d1
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-aa795cf931a4b1dc
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-ab7da3910403c7ba\dep-test-integration-test-release1_teaching
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-ab7da3910403c7ba\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-ab7da3910403c7ba\test-integration-test-release1_teaching
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-ab7da3910403c7ba\test-integration-test-release1_teaching.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-ab7da3910403c7ba
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-ad539e3c63f9b29d\dep-test-integration-test-language
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-ad539e3c63f9b29d\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-ad539e3c63f9b29d\test-integration-test-language
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-ad539e3c63f9b29d\test-integration-test-language.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-ad539e3c63f9b29d
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b18ed94938f00bce\dep-test-integration-test-release_capabilities
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b18ed94938f00bce\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b18ed94938f00bce\test-integration-test-release_capabilities
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b18ed94938f00bce\test-integration-test-release_capabilities.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b18ed94938f00bce
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b2fb116b9e7c7b42\dep-example-release_dense_views
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b2fb116b9e7c7b42\example-release_dense_views
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b2fb116b9e7c7b42\example-release_dense_views.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b2fb116b9e7c7b42\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b2fb116b9e7c7b42
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b4c124310ef40056\dep-test-integration-test-release_routing
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b4c124310ef40056\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b4c124310ef40056\test-integration-test-release_routing
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b4c124310ef40056\test-integration-test-release_routing.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b4c124310ef40056
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b5637a94984a106a\dep-test-integration-test-port_anchors
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b5637a94984a106a\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b5637a94984a106a\test-integration-test-port_anchors
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b5637a94984a106a\test-integration-test-port_anchors.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b5637a94984a106a
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b6eafcfd753f5768
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-be0d0a971af03c38\dep-test-integration-test-source_project
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-be0d0a971af03c38\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-be0d0a971af03c38\test-integration-test-source_project
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-be0d0a971af03c38\test-integration-test-source_project.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-be0d0a971af03c38
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-c0feed63bf630ad0\dep-test-integration-test-release1_teaching
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-c0feed63bf630ad0\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-c0feed63bf630ad0\test-integration-test-release1_teaching
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-c0feed63bf630ad0\test-integration-test-release1_teaching.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-c0feed63bf630ad0
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-c10c641f7dca6ab6\dep-test-integration-test-routing_labels
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-c10c641f7dca6ab6\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-c10c641f7dca6ab6\test-integration-test-routing_labels
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-c10c641f7dca6ab6\test-integration-test-routing_labels.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-c10c641f7dca6ab6
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-c6b8eeeda7f150f6
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d040d9b5ae030968\dep-test-integration-test-source_files
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d040d9b5ae030968\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d040d9b5ae030968\test-integration-test-source_files
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d040d9b5ae030968\test-integration-test-source_files.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d040d9b5ae030968
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d0dc667d4a93c68b\dep-test-integration-test-source_files
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d0dc667d4a93c68b\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d0dc667d4a93c68b\test-integration-test-source_files
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d0dc667d4a93c68b\test-integration-test-source_files.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d0dc667d4a93c68b
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d23322579d6e5023\dep-test-integration-test-communication_boundary_scenarios
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d23322579d6e5023\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d23322579d6e5023\test-integration-test-communication_boundary_scenarios
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d23322579d6e5023\test-integration-test-communication_boundary_scenarios.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d23322579d6e5023
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d5b2359a4775112a\dep-test-integration-test-release_language_limits
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d5b2359a4775112a\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d5b2359a4775112a\test-integration-test-release_language_limits
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d5b2359a4775112a\test-integration-test-release_language_limits.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d5b2359a4775112a
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d5b4c5b593045809\dep-example-generate_demo
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d5b4c5b593045809\example-generate_demo
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d5b4c5b593045809\example-generate_demo.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d5b4c5b593045809\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d5b4c5b593045809
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-da57b22f57da7d11\dep-lib-oa_core
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-da57b22f57da7d11\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-da57b22f57da7d11\lib-oa_core
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-da57b22f57da7d11\lib-oa_core.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-da57b22f57da7d11
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-dd16c6a410b4a9b6
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-dd46fff1d50247e9
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-e00f4c4991c4d4f6\dep-test-integration-test-port_anchors
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-e00f4c4991c4d4f6\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-e00f4c4991c4d4f6\test-integration-test-port_anchors
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-e00f4c4991c4d4f6\test-integration-test-port_anchors.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-e00f4c4991c4d4f6
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-e26f2bb4e81d559f
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-efab9487e893d21b\dep-lib-oa_core
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-efab9487e893d21b\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-efab9487e893d21b\lib-oa_core
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-efab9487e893d21b\lib-oa_core.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-efab9487e893d21b
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-f14ae93dda1758fb\dep-test-integration-test-release_diagrams
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-f14ae93dda1758fb\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-f14ae93dda1758fb\test-integration-test-release_diagrams
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-f14ae93dda1758fb\test-integration-test-release_diagrams.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-f14ae93dda1758fb
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-f240b35e97593762
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-f5e2120865033fab\dep-test-integration-test-route_source
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-f5e2120865033fab\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-f5e2120865033fab\test-integration-test-route_source
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-f5e2120865033fab\test-integration-test-route_source.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-f5e2120865033fab
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-f664578727905f6d
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-f90af691370399ca\dep-test-integration-test-source_identity_updates
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-f90af691370399ca\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-f90af691370399ca\test-integration-test-source_identity_updates
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-f90af691370399ca\test-integration-test-source_identity_updates.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-f90af691370399ca
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-fea139da52a4f936\dep-test-integration-test-source_nested_updates
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-fea139da52a4f936\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-fea139da52a4f936\test-integration-test-source_nested_updates
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-fea139da52a4f936\test-integration-test-source_nested_updates.json
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-fea139da52a4f936
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-1fac039e071a74d1\build-script-build.exe
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-1fac039e071a74d1\build_script_build-1fac039e071a74d1.d
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-1fac039e071a74d1\build_script_build-1fac039e071a74d1.exe
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-1fac039e071a74d1
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-70419412597c9efc\build-script-build.exe
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-70419412597c9efc\build_script_build-70419412597c9efc.d
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-70419412597c9efc\build_script_build-70419412597c9efc.exe
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-70419412597c9efc
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-70aec2be9e005f38\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-70aec2be9e005f38\out\normal-user-manifest.o
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-70aec2be9e005f38\out
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-70aec2be9e005f38\output
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-70aec2be9e005f38\root-output
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-70aec2be9e005f38\stderr
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-70aec2be9e005f38
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-9d8969e97e8b197c\invoked.timestamp
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-9d8969e97e8b197c\out\normal-user-manifest.o
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-9d8969e97e8b197c\out
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-9d8969e97e8b197c\output
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-9d8969e97e8b197c\root-output
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-9d8969e97e8b197c\stderr
C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-9d8969e97e8b197c
Summary 693 files, 1.7GiB total
warning: no files deleted due to --dry-run
@@ -0,0 +1,381 @@
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\arcadia-studio.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\arcadia-studio.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-27db9628b266bf39
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-307d320bbc13ccd5
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-455869a7f4afec7a
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-4a5ab235f7d23cab
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-53fa57373c14ef4a
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-54fb14b80523810e
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-5523f66d74e532a1
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-55311f0d2f4f27d3
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-57e3d18868d2f5c7
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-686406150bd01e7a
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-7239a3c4adb4fff4
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-93232a492cc801eb
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-bafd58c5d952bb55
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-df8567b2206722a9
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-desktop-df984b90c0583184
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\arcadia_studio-27db9628b266bf39.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\arcadia_studio-93232a492cc801eb.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\arcadia_studio-df8567b2206722a9.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\arcadia_studio-df984b90c0583184.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\arcadia_studio-27db9628b266bf39.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\arcadia_studio-455869a7f4afec7a.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\arcadia_studio-4a5ab235f7d23cab.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\arcadia_studio-53fa57373c14ef4a.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\arcadia_studio-54fb14b80523810e.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\arcadia_studio-5523f66d74e532a1.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\arcadia_studio-55311f0d2f4f27d3.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\arcadia_studio-57e3d18868d2f5c7.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\arcadia_studio-93232a492cc801eb.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\arcadia_studio-df8567b2206722a9.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\arcadia_studio-df984b90c0583184.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libarcadia_studio-455869a7f4afec7a.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libarcadia_studio-4a5ab235f7d23cab.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libarcadia_studio-53fa57373c14ef4a.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libarcadia_studio-54fb14b80523810e.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libarcadia_studio-5523f66d74e532a1.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libarcadia_studio-55311f0d2f4f27d3.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libarcadia_studio-57e3d18868d2f5c7.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-307d320bbc13ccd5
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-686406150bd01e7a
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-7239a3c4adb4fff4
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-desktop-bafd58c5d952bb55
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-01b62bfdfd2168ff
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-02f1809896251307
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-03fe14ea5f87b5c2
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-04d3a8d8f295cb64
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-06551d22ccae1e39
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-06db75dbbb61a8d0
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-076dbf88cea6ece4
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-0b4218b511bb18b0
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-0c35faca26438c6f
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-0c7162d4ad246de6
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-124514c0272b4a87
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-1c3cd13b3c0b8f0f
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-1d0325738ccf3169
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-1f289ad156e27f06
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-1f3303b43877d006
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-1fac039e071a74d1
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-21343651796281ff
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-220f10c654f5ecd6
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-2210dd414fc7dd6f
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-2339e93bd5ecd8d2
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-26552f0ffcc94257
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-2b531c7f68bcc3b3
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-2bea7cf2a3c87c55
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-30f3bd840b94c010
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-314dfecb7371bbd4
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-325142a9aa0da247
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-32babe211f59be33
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-332cafef37432bf6
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-343e5febcc1ef502
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-346bba1bd3e5ecbd
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-34a654b7c95ab57b
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3835d3237ee22542
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-38898034cc715c78
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3a854e8fe8fc282e
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3b2eae48ba195f8a
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3b96491d99f5103d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3c0b95acb1568895
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3d38ddae4498204d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3e8d1c6e884aa97a
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-3ef39787c925aa03
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-42cd5d87f8c17fc4
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-43922ec123d5ebd1
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-442843dd53963d57
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-471e868d04b07989
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-476c123ad9760365
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-48191cff9bf3cabf
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-49b87014548ec3f1
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4a8b11168393a651
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4d3f9e71fe04d970
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4dde9b672a1838ee
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4e5ebc400f40bb54
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-4f4f55e3afdbbcb7
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-526e941e69518e0a
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-53253a46cddaf2b2
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-568d5cac52c5514a
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-58baa10d3fbb43e0
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-5a4d069a53abb747
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-5c1c39aba3780201
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-5c8a25e25633efa8
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-617812140094d640
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-624f8dd2ed7bc8df
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-62a6974324eef197
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-63796f4c94eff924
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-64114f33cdb81ced
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6522938ebe698221
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6689a035331bb7d9
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-69b4578e5972e028
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-69c58adc42a37f11
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6a1d60e4990a7695
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6b0cbab0e77d8963
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6ca626ec2f446272
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6d7d247723001b33
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6e04e34b773092aa
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-6e7d2e8b18d260e0
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-70419412597c9efc
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-70aec2be9e005f38
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-70be4b4fbe4677bc
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-70e9f1581bff3575
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-71693693d5e8cc32
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7357f7f481bb6d8d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-74170ca09ac46066
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-742532f6a87b13a8
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-767f1d40a9203c1c
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-77691e437c153359
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-77852d41b72fb5a1
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7788f478ad94d995
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-77aa9cfe3196ef69
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-77db95e44288346e
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7b7cc16581e72c1e
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7b856fb9c92dc38b
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-7ba5c30f572a7957
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-83f613657b302df8
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-85784ce621e4d836
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-85a8b372ce9c5c60
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-85c0d5e4846b2dc9
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-8635e7175e485e0b
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-86a2622fbe014324
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-89bfaa77af64cf33
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-8a864e51c6f5081e
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-8a9247a7cfc0ed89
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-8b1eab709086d619
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-8c4f541b379315a9
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-8cf9e66328eb0b64
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-8fc9452cc4a41fc0
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-98f2569a5a0671fb
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-9a52d70efd00a94b
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-9bfd3420f603432c
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-9d4bca6af3b2c6dc
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-9d8969e97e8b197c
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-9e09977bdc4e7c5d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-a30f839379f5248c
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-a36122ff093b89ea
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-a3a2144b186de9d1
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-aa795cf931a4b1dc
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-ab7da3910403c7ba
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-ad539e3c63f9b29d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b18ed94938f00bce
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b2fb116b9e7c7b42
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b4c124310ef40056
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b5637a94984a106a
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-b6eafcfd753f5768
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-be0d0a971af03c38
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-c0feed63bf630ad0
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-c10c641f7dca6ab6
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-c6b8eeeda7f150f6
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d040d9b5ae030968
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d0dc667d4a93c68b
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d23322579d6e5023
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d5b2359a4775112a
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-d5b4c5b593045809
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-da57b22f57da7d11
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-dd16c6a410b4a9b6
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-dd46fff1d50247e9
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-e00f4c4991c4d4f6
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-e26f2bb4e81d559f
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-efab9487e893d21b
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-f14ae93dda1758fb
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-f240b35e97593762
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-f5e2120865033fab
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-f664578727905f6d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-f90af691370399ca
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\.fingerprint\oa-core-fea139da52a4f936
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\liboa_core-343e5febcc1ef502.rlib
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\liboa_core-3835d3237ee22542.rlib
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\liboa_core-86a2622fbe014324.rlib
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\liboa_core-343e5febcc1ef502.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\liboa_core-3835d3237ee22542.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\liboa_core-3b96491d99f5103d.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\liboa_core-6d7d247723001b33.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\liboa_core-86a2622fbe014324.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\liboa_core-da57b22f57da7d11.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\liboa_core-efab9487e893d21b.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\oa_core-343e5febcc1ef502.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\oa_core-3835d3237ee22542.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\oa_core-38898034cc715c78.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\oa_core-3b96491d99f5103d.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\oa_core-6d7d247723001b33.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\oa_core-86a2622fbe014324.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\oa_core-da57b22f57da7d11.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\oa_core-efab9487e893d21b.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\oa_core-38898034cc715c78.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\examples\generate_demo-2210dd414fc7dd6f.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\examples\generate_demo-2210dd414fc7dd6f.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\examples\generate_demo-d5b4c5b593045809.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\examples\libgenerate_demo-d5b4c5b593045809.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\examples\generate_release1-77aa9cfe3196ef69.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\examples\generate_release1-6e04e34b773092aa.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\examples\generate_release1-77aa9cfe3196ef69.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\examples\libgenerate_release1-6e04e34b773092aa.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\examples\release_dense_views-34a654b7c95ab57b.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\examples\release_dense_views-34a654b7c95ab57b.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\examples\release_dense_views-b2fb116b9e7c7b42.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\examples\librelease_dense_views-b2fb116b9e7c7b42.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\examples\routing_workshop-a30f839379f5248c.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\examples\routing_workshop-325142a9aa0da247.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\examples\routing_workshop-a30f839379f5248c.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\examples\librouting_workshop-325142a9aa0da247.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\communication_boundary_scenarios-d23322579d6e5023.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\communication_boundary_scenarios-30f3bd840b94c010.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\communication_boundary_scenarios-d23322579d6e5023.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libcommunication_boundary_scenarios-30f3bd840b94c010.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\communication_means-9a52d70efd00a94b.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\communication_means-3b2eae48ba195f8a.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\communication_means-9a52d70efd00a94b.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libcommunication_means-3b2eae48ba195f8a.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\coverage_diagnostics-42cd5d87f8c17fc4.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\coverage_diagnostics-06551d22ccae1e39.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\coverage_diagnostics-42cd5d87f8c17fc4.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libcoverage_diagnostics-06551d22ccae1e39.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\language-076dbf88cea6ece4.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\language-076dbf88cea6ece4.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\language-ad539e3c63f9b29d.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\liblanguage-ad539e3c63f9b29d.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\port_anchors-e00f4c4991c4d4f6.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\port_anchors-b5637a94984a106a.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\port_anchors-e00f4c4991c4d4f6.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libport_anchors-b5637a94984a106a.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\port_migration-1d0325738ccf3169.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\port_migration-1d0325738ccf3169.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\port_migration-70e9f1581bff3575.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libport_migration-70e9f1581bff3575.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\port_source-69c58adc42a37f11.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\port_source-69c58adc42a37f11.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\port_source-6ca626ec2f446272.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libport_source-6ca626ec2f446272.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\prepared_commands-314dfecb7371bbd4.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\prepared_commands-314dfecb7371bbd4.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\prepared_commands-332cafef37432bf6.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libprepared_commands-332cafef37432bf6.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\process_diagnostics-568d5cac52c5514a.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\process_diagnostics-568d5cac52c5514a.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\process_diagnostics-a36122ff093b89ea.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libprocess_diagnostics-a36122ff093b89ea.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\r3_constructor_ack-6b0cbab0e77d8963.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\r3_constructor_ack-02f1809896251307.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\r3_constructor_ack-6b0cbab0e77d8963.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libr3_constructor_ack-02f1809896251307.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\r3_migration-4dde9b672a1838ee.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\r3_migration-4dde9b672a1838ee.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\r3_migration-64114f33cdb81ced.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libr3_migration-64114f33cdb81ced.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\r3_semantic-58baa10d3fbb43e0.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\r3_semantic-2339e93bd5ecd8d2.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\r3_semantic-58baa10d3fbb43e0.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libr3_semantic-2339e93bd5ecd8d2.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\r3_source-03fe14ea5f87b5c2.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\r3_source-03fe14ea5f87b5c2.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\r3_source-85a8b372ce9c5c60.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libr3_source-85a8b372ce9c5c60.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\r6_data-01b62bfdfd2168ff.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\r6_data-01b62bfdfd2168ff.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\r6_data-7b7cc16581e72c1e.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libr6_data-7b7cc16581e72c1e.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\r6_migration-21343651796281ff.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\r6_migration-21343651796281ff.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\r6_migration-77691e437c153359.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libr6_migration-77691e437c153359.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\r6_source-49b87014548ec3f1.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\r6_source-346bba1bd3e5ecbd.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\r6_source-49b87014548ec3f1.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libr6_source-346bba1bd3e5ecbd.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release1_teaching-c0feed63bf630ad0.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release1_teaching-ab7da3910403c7ba.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release1_teaching-c0feed63bf630ad0.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\librelease1_teaching-ab7da3910403c7ba.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release_capabilities-3e8d1c6e884aa97a.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release_capabilities-3e8d1c6e884aa97a.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release_capabilities-b18ed94938f00bce.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\librelease_capabilities-b18ed94938f00bce.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release_diagrams-8635e7175e485e0b.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release_diagrams-8635e7175e485e0b.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release_diagrams-f14ae93dda1758fb.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\librelease_diagrams-f14ae93dda1758fb.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release_language_limits-d5b2359a4775112a.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release_language_limits-06db75dbbb61a8d0.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release_language_limits-d5b2359a4775112a.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\librelease_language_limits-06db75dbbb61a8d0.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release_ports-62a6974324eef197.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release_ports-4d3f9e71fe04d970.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release_ports-62a6974324eef197.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\librelease_ports-4d3f9e71fe04d970.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release_routing-b4c124310ef40056.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release_routing-7788f478ad94d995.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release_routing-b4c124310ef40056.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\librelease_routing-7788f478ad94d995.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release_scenarios-617812140094d640.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release_scenarios-617812140094d640.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release_scenarios-74170ca09ac46066.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\librelease_scenarios-74170ca09ac46066.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release_states-a3a2144b186de9d1.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release_states-7ba5c30f572a7957.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release_states-a3a2144b186de9d1.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\librelease_states-7ba5c30f572a7957.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release_topology-0c7162d4ad246de6.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release_topology-0c7162d4ad246de6.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\release_topology-4f4f55e3afdbbcb7.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\librelease_topology-4f4f55e3afdbbcb7.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\review_regressions-69b4578e5972e028.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\review_regressions-69b4578e5972e028.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\review_regressions-9d4bca6af3b2c6dc.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libreview_regressions-9d4bca6af3b2c6dc.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\route_source-4e5ebc400f40bb54.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\route_source-4e5ebc400f40bb54.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\route_source-f5e2120865033fab.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libroute_source-f5e2120865033fab.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\routing_geometry-3c0b95acb1568895.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\routing_geometry-3c0b95acb1568895.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\routing_geometry-48191cff9bf3cabf.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\librouting_geometry-48191cff9bf3cabf.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\routing_labels-c10c641f7dca6ab6.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\routing_labels-7357f7f481bb6d8d.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\routing_labels-c10c641f7dca6ab6.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\librouting_labels-7357f7f481bb6d8d.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\semantic_artifact_absence_oracle-53253a46cddaf2b2.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\semantic_artifact_absence_oracle-53253a46cddaf2b2.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\semantic_artifact_absence_oracle-6e7d2e8b18d260e0.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libsemantic_artifact_absence_oracle-6e7d2e8b18d260e0.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\semantic_attachments_gui_oracle-0c35faca26438c6f.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\semantic_attachments_gui_oracle-0c35faca26438c6f.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\semantic_attachments_gui_oracle-5a4d069a53abb747.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libsemantic_attachments_gui_oracle-5a4d069a53abb747.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\source6_view_contract-9e09977bdc4e7c5d.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\source6_view_contract-0b4218b511bb18b0.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\source6_view_contract-9e09977bdc4e7c5d.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libsource6_view_contract-0b4218b511bb18b0.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\source7_contract-77852d41b72fb5a1.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\source7_contract-3ef39787c925aa03.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\source7_contract-77852d41b72fb5a1.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libsource7_contract-3ef39787c925aa03.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\source_files-d040d9b5ae030968.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\source_files-d040d9b5ae030968.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\source_files-d0dc667d4a93c68b.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libsource_files-d0dc667d4a93c68b.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\source_identity_updates-f90af691370399ca.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\source_identity_updates-3a854e8fe8fc282e.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\source_identity_updates-f90af691370399ca.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libsource_identity_updates-3a854e8fe8fc282e.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\source_nested_updates-fea139da52a4f936.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\source_nested_updates-526e941e69518e0a.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\source_nested_updates-fea139da52a4f936.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libsource_nested_updates-526e941e69518e0a.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\source_project-83f613657b302df8.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\source_project-83f613657b302df8.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\source_project-be0d0a971af03c38.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libsource_project-be0d0a971af03c38.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\state_diagrams-5c1c39aba3780201.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\state_diagrams-4a8b11168393a651.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\state_diagrams-5c1c39aba3780201.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libstate_diagrams-4a8b11168393a651.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\workflows-8a864e51c6f5081e.exe
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\workflows-471e868d04b07989.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\workflows-8a864e51c6f5081e.d
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\libworkflows-471e868d04b07989.rmeta
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-1fac039e071a74d1
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-70419412597c9efc
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-70aec2be9e005f38
Removing C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\build\oa-core-9d8969e97e8b197c
Removed 691 files, 1.6GiB total
@@ -0,0 +1,12 @@
{
"command": "cargo test -p oa-desktop --bin arcadia-studio --locked --offline -- --list",
"workspace": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-union-ytr83r-20260912",
"startUtc": "2026-09-13T01:17:29.1477582Z",
"endUtc": "2026-09-13T01:17:55.2650632Z",
"base": "208268c8aa7f6bc3c2bab6a3c0657358f3f7dc23",
"cargoExitCode": 0,
"listedTests": 918,
"listedUnionTests": 0,
"listedScrollTests": 0,
"selectionValid": false
}
@@ -0,0 +1,922 @@
Finished `test` profile [unoptimized] target(s) in 3.35s
Running unittests src\main.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\target\debug\deps\arcadia_studio-27db9628b266bf39.exe)
app::architecture_authoring::tests::architecture_allocated_work_is_root_owned_and_one_exact_history_change: test
app::architecture_authoring::tests::architecture_blank_names_and_escape_never_accept_placeholder_or_rename: test
app::architecture_authoring::tests::architecture_captured_escape_does_not_cancel_other_controls_or_placement: test
app::architecture_authoring::tests::architecture_f2_routes_selected_node_to_inline_rename_and_exact_undo: test
app::architecture_authoring::tests::architecture_first_focused_input_escape_cancels_create_and_rename: test
app::architecture_authoring::tests::architecture_invalid_click_cannot_poison_inline_or_checkpoint_geometry: test
app::architecture_authoring::tests::architecture_stale_submit_keeps_create_and_rename_visible_and_exact: test
app::architecture_authoring_tests::architecture_cancelled_gesture_cannot_commit_a_later_named_draft: test
app::architecture_authoring_tests::architecture_canvas_left_click_uses_world_coordinate_once_at_zoom_and_pan: test
app::architecture_authoring_tests::architecture_checkpoint_retains_exact_name_point_and_fresh_binding_without_commands: test
app::architecture_authoring_tests::architecture_context_choices_are_small_and_system_is_singleton: test
app::architecture_authoring_tests::architecture_contextual_allocation_creates_work_relation_and_node_in_one_undo: test
app::architecture_authoring_tests::architecture_creation_names_before_commit_preserves_camera_and_undoes_once: test
app::architecture_authoring_tests::architecture_existing_inventory_is_contextual_and_placement_never_implies_allocation: test
app::architecture_authoring_tests::architecture_f2_rename_preserves_identity_placement_and_atomic_history: test
app::architecture_authoring_tests::architecture_name_survives_rejected_click_resize_navigation_and_escape_is_explicit: test
app::architecture_authoring_tests::architecture_rejected_submission_keeps_inline_name_visible_and_invalid_click_is_ignored: test
app::architecture_authoring_tests::basic_transition_explicit_overview_focus_wins_over_an_already_populated_architecture: test
app::behavior_lifecycle_tests::incomplete_behavior_form_is_dirty_close_save_retains_it_and_cancel_allows_switching: test
app::behavior_lifecycle_tests::passive_behavior_canvas_events_do_not_apply_property_drafts: test
app::behavior_lifecycle_tests::pending_behavior_blocks_navigation_property_edits_and_model_history: test
app::behavior_lifecycle_tests::pending_behavior_blocks_source_creation_and_source_history_replay: test
app::behavior_lifecycle_tests::save_prepares_behavior_before_opening_destination_and_cancel_keeps_one_undo: test
app::behavior_lifecycle_tests::source_writeback_failure_keeps_typed_behavior_form_for_repair_and_one_undo: test
app::checkpoints::tests::checkpoint_completion_releases_the_writer_while_a_context_menu_is_open: test
app::checkpoints::tests::checkpoint_inline_create_and_rename_restore_focus_without_changing_drafts_or_history: test
app::checkpoints::tests::checkpoint_noninline_contexts_keep_other_focus_and_still_lint: test
app::checkpoints::tests::discard_and_close_waits_for_the_late_checkpoint_then_retires_it: test
app::checkpoints::tests::home_resume_keeps_state_view_while_explicit_architecture_remains_reachable: test
app::checkpoints::tests::home_resume_retains_invalid_source_and_property_drafts: test
app::checkpoints::tests::home_resume_returns_to_each_actual_workspace_without_model_edits: test
app::checkpoints::tests::malformed_checkpoint_does_not_replace_the_current_model: test
app::checkpoints::tests::recent_and_recovery_navigation_respect_unsaved_decision: test
app::checkpoints::tests::restored_copy_keeps_raw_property_and_requires_save_without_local_or_hosted_binding: test
app::checkpoints::tests::saving_an_older_snapshot_keeps_recovery_for_newer_unsaved_work: test
app::checkpoints::tests::stale_write_completion_cannot_recover_a_discarded_document: test
app::checkpoints::tests::walkthrough_request_keeps_unfinished_source_behind_the_normal_pending_guard: test
app::data_paging_lifecycle_tests::paging_preserves_same_context_and_resets_on_layer_or_document_replacement: test
app::diagram_reveal::tests::actual_window_resize_before_first_measurement_retains_focus_for_the_new_context: test
app::diagram_reveal::tests::all_reveal_surfaces_recenter_once_after_the_real_viewport_and_preserve_authored_state: test
app::diagram_reveal::tests::malformed_or_wrong_stamp_measurements_cannot_poison_a_pending_reveal: test
app::diagram_reveal::tests::user_camera_edit_and_navigation_cancel_deferred_focus_without_late_snapping: test
app::diagram_selection_tests::changing_visible_view_follows_its_clean_inspector_without_a_model_edit: test
app::diagram_selection_tests::diagram_switch_preserves_an_independent_semantic_inspection: test
app::diagram_selection_tests::diagram_uuid_edit_follows_the_same_view_or_a_different_picker_target: test
app::diagram_selection_tests::invalid_view_draft_blocks_the_switch_and_retains_raw_input: test
app::diagram_selection_tests::stale_diagram_choice_never_applies_an_unrelated_valid_draft: test
app::diagram_selection_tests::valid_pending_view_edit_applies_to_old_view_then_inspects_the_new_view: test
app::diagram_usages::tests::accepted_new_chooser_retires_old_measurement_without_blocking_future_viewports: test
app::diagram_usages::tests::allocation_navigation_keeps_relation_selection_and_exact_visual_work_lifetime: test
app::diagram_usages::tests::asynchronous_lookup_is_loading_inert_and_retains_filter_until_completion: test
app::diagram_usages::tests::caret_uses_exact_verified_alias_identity_and_preserves_source_cursor: test
app::diagram_usages::tests::closed_lookup_keeps_slot_and_replacement_waits_for_exact_old_completion: test
app::diagram_usages::tests::completion_after_cancel_releases_slot_without_reopening_or_moving: test
app::diagram_usages::tests::completion_releases_worker_behind_busy_modal_without_navigation: test
app::diagram_usages::tests::dirty_or_comment_caret_has_no_selected_object_fallback: test
app::diagram_usages::tests::forged_completion_cannot_release_another_slot_or_admit_wrong_context: test
app::diagram_usages::tests::old_panel_tokens_and_forged_targets_cannot_redirect_selection: test
app::diagram_usages::tests::oversized_node_focus_stays_on_label_and_single_surface_query_excludes_other_views: test
app::diagram_usages::tests::pending_source_behavior_and_modal_inputs_block_open_and_choose_without_loss: test
app::diagram_usages::tests::port_navigation_selects_port_and_exact_visible_owner_without_editing_geometry: test
app::diagram_usages::tests::query_presentation_snapshot_keeps_expansion_without_retaining_live_state: test
app::diagram_usages::tests::repeated_preview_arrows_select_the_relation_and_highlight_the_exact_caller_link: test
app::diagram_usages::tests::repeated_process_calls_reveal_the_chosen_caller_and_distinct_tile_camera: test
app::diagram_usages::tests::repeated_scenario_messages_select_the_exact_occurrence_and_move_camera: test
app::diagram_usages::tests::reset_keeps_old_worker_slot_and_only_new_document_results_are_admitted: test
app::diagram_usages::tests::revision_retarget_and_document_change_make_old_destinations_inert: test
app::diagram_usages::tests::saved_node_and_edge_navigation_preserve_whole_sources_and_actual_history: test
app::diagram_usages::tests::stale_caret_completion_never_opens_diagrams_for_current_selection: test
app::diagram_usages::tests::stale_open_context_cannot_replace_a_panel: test
app::diagram_usages::tests::stale_revision_completion_refreshes_asynchronously_without_activating: test
app::diagram_usages::tests::state_row_navigation_has_exact_visual_row_without_retargeting_the_selected_relation: test
app::diagram_usages::tests::tree_origin_captures_subject_and_never_falls_back_to_current_selection_or_name: test
app::diagram_usages::tests::whole_surface_camera_fits_huge_extent_while_target_camera_remains_readable: test
app::diagram_usages::tests::worker_failure_finishes_loading_and_can_be_retried_without_losing_sources: test
app::direct_scenario_tests::direct_scenario_camera_details_and_real_resize_invalidate_only_pointer_context: test
app::direct_scenario_tests::direct_scenario_creation_and_reorder_preserve_selection_and_each_undo_once: test
app::direct_scenario_tests::direct_scenario_rejects_every_stale_context_and_preserves_property_drafts: test
app::direct_scenario_tests::direct_scenario_source_failure_and_navigation_keep_form_until_success: test
app::hosted::tests::hosted_actual_app_tasks_publish_edit_conflict_correct_credentials_reload_and_open: test
app::hosted::tests::hosted_catalog_invalidation_follows_service_writes_and_observed_revision_changes: test
app::hosted::tests::hosted_catalog_search_credentials_and_failed_refresh_never_mix_result_scopes: test
app::hosted::tests::hosted_changed_bound_head_does_not_invalidate_another_services_empty_filter: test
app::hosted::tests::hosted_conflict_fetches_review_without_adoption_and_reload_is_undoable: test
app::hosted::tests::hosted_detached_drafts_and_recovery_remain_available_after_rejected_publish: test
app::hosted::tests::hosted_failed_cross_service_publication_checks_and_reloads_its_own_resource: test
app::hosted::tests::hosted_failed_or_cancelled_local_open_keeps_the_existing_document_and_destination: test
app::hosted::tests::hosted_invalid_and_detached_source_drafts_never_start_network_writes: test
app::hosted::tests::hosted_invalid_local_open_repair_saves_locally_and_never_replaces_old_resource: test
app::hosted::tests::hosted_modal_blocks_underlying_edits_and_credentials_are_redacted: test
app::hosted::tests::hosted_new_revision_invalidates_filtered_catalog_even_without_a_displayed_row: test
app::hosted::tests::hosted_only_successful_source_save_as_changes_the_active_destination: test
app::hosted::tests::hosted_open_waits_for_unsaved_guard_and_failed_open_preserves_current_document: test
app::hosted::tests::hosted_publish_acknowledges_only_the_sent_snapshot_and_retains_undo: test
app::hosted::tests::hosted_stale_completions_do_not_clear_current_busy_or_adopt_another_document: test
app::hosted::tests::hosted_unknown_save_is_acknowledged_by_exact_readback_without_retry: test
app::lint_tests::committed_check_cache_follows_edit_and_undo_while_drafts_stay_separate: test
app::lint_tests::lint_coalesces_work_and_rejects_obsolete_results: test
app::lint_tests::prior_document_lint_cannot_enter_reopened_model_or_block_next_checks: test
app::port_view_tests::catalog_creation_follows_the_new_port_and_keeps_group_browsing_explicit: test
app::port_view_tests::filtered_active_view_cannot_hide_a_created_port_when_eligible_owner_view_is_folded: test
app::process_canvas::direct_process_dirty_source_blocks_canvas_creation_without_losing_text: test
app::process_canvas::tests::direct_process_app_open_source_and_back_preserve_local_reference_identity: test
app::process_canvas::tests::direct_process_app_same_owner_selection_preserves_tool_but_owner_change_resets_it: test
app::process_canvas::tests::direct_process_app_save_details_resize_and_passive_geometry_keep_drafts_and_camera: test
app::process_canvas::tests::direct_process_app_source_failure_retains_form_then_commits_once_and_selects_occurrence: test
app::process_canvas::tests::direct_process_app_stale_context_dirty_source_and_properties_never_mutate: test
app::process_canvas::tests::direct_process_append_empty_first_second_exchange_has_exact_source_history: test
app::process_canvas::tests::process_focus_retains_rejected_draft_and_guards_selection_until_panels_restore: test
app::reference_authoring::tests::chooser_rejects_old_results_after_context_recovery_reload_or_modal_and_keeps_history_text_out: test
app::reference_authoring::tests::inspector_reference_browse_is_read_only_then_one_scoped_value_applies_with_exact_undo_redo: test
app::reference_authoring::tests::inspector_reference_retains_invalid_missing_and_incompatible_current_until_explicit_clear: test
app::reference_authoring::tests::mounted::mounted_delayed_return_cannot_focus_under_review_and_fresh_modal_tab_owns_its_form: test
app::reference_authoring::tests::mounted::mounted_form_tab_enters_in_both_directions_and_cycles_boundaries_without_losing_focus: test
app::reference_authoring::tests::mounted::mounted_fresh_tab_reveals_offscreen_reference_and_return_reveals_it_again: test
app::reference_authoring::tests::mounted::mounted_reference_choice_stages_literal_identity_and_delayed_focus_cannot_hit_replacement_field: test
app::reference_authoring::tests::mounted::mounted_reference_trigger_tabs_to_root_popup_search_escape_and_exact_adjacent_fields: test
app::reference_authoring::tests::mounted::mounted_reverse_review_required_rationale_remains_editable_beside_candidate_reference_form: test
app::reference_authoring::tests::mounted::mounted_review_pointer_open_and_outside_dismissal_keep_background_input_inactive: test
app::reference_authoring::tests::mounted::mounted_scrolled_reference_anchor_uses_window_geometry_for_pointer_and_keyboard: test
app::reference_authoring::tests::reference_array_row_reorder_and_constructor_switch_invalidate_exact_old_field: test
app::reference_authoring::tests::review_reference_cannot_reopen_or_write_a_banked_row_after_another_row_takes_focus: test
app::reference_authoring::tests::review_reference_facets_groups_and_attachment_hosts_browse_without_replanning_and_reject_old_facet: test
app::repair_save_state_tests::recovering_applied_repair_rebinds_rolled_back_disk_bytes_without_changing_model: test
app::repair_save_state_tests::recovery_missing_entry_or_failed_reload_preserves_current_destination_save_authority: test
app::repair_save_state_tests::repair_history_compares_to_new_disk_baseline_and_then_successful_save: test
app::repair_save_state_tests::repair_to_previous_saved_bytes_requires_save_at_new_destination_and_guards_close: test
app::repair_save_state_tests::valid_equal_content_at_distinct_destinations_stays_clean: test
app::review_navigation_tests::rejected_semantic_source_writeback_retains_review_camera_and_original_navigation: test
app::review_navigation_tests::review_already_showing_the_target_keeps_its_camera_and_query: test
app::review_navigation_tests::semantic_name_take_selects_the_counterpart_view_in_both_directions_with_one_exact_history_entry: test
app::review_navigation_tests::semantic_review_without_a_destination_view_clears_the_old_layer_canvas_without_creating_a_view: test
app::save_as_tests::save_as_late_receipt_preserves_newer_raw_source_draft_and_destination: test
app::save_as_tests::save_as_preflight_rejects_historical_collision_before_starting_io: test
app::save_as_tests::save_as_receipt_then_one_undo_restores_meaning_and_saving_preserves_redo: test
app::source_project_tests::closed_detached_file_keeps_first_save_conflict_then_can_be_reloaded_fresh: test
app::source_project_tests::inactive_invalid_draft_blocks_graphical_changes_and_diagnostic_switches_files: test
app::source_project_tests::json_export_and_rejected_save_as_preserve_source_location_history_and_bytes: test
app::source_project_tests::missing_include_open_keeps_old_model_and_can_be_repaired_and_saved: test
app::source_project_tests::recovery_after_first_save_failure_retains_target_then_retries_without_reentering_path: test
app::source_project_tests::recovery_of_previous_save_as_target_does_not_redirect_current_project: test
app::source_project_tests::recovery_open_finds_first_save_journal_without_an_entry_file: test
app::source_project_tests::recovery_target_survives_edit_lint_apply_and_rejected_recovery_until_success: test
app::source_project_tests::source3_native_open_preserves_report_comments_nesting_and_save_reopen: test
app::source_project_tests::two_file_apply_graphical_edit_exact_undo_save_as_and_reopen: test
app::source_symbols::tests::back_after_origin_edit_uses_its_current_cursor_instead_of_the_old_range: test
app::source_symbols::tests::back_keeps_the_latest_64_actual_locations_without_reusing_dropped_history: test
app::source_symbols::tests::back_restores_exact_reversed_utf8_selection_and_crlf_source: test
app::source_symbols::tests::captured_find_and_modal_escape_use_one_actual_subscription_and_preserve_pending_work: test
app::source_symbols::tests::captured_subscription_does_not_duplicate_existing_behavior_or_architecture_routes: test
app::source_symbols::tests::close_during_busy_hides_panel_and_completion_does_not_reopen_it: test
app::source_symbols::tests::closed_results_stay_closed_on_exact_back_and_reopen_only_for_a_return_notice: test
app::source_symbols::tests::combined_modal_completion_releases_worker_without_navigation_or_model_changes: test
app::source_symbols::tests::combined_reference_chooser_blocks_navigation_and_completion_precedes_reconciliation: test
app::source_symbols::tests::completion_rejects_file_edit_session_cursor_interaction_and_raw_input_changes: test
app::source_symbols::tests::detached_duplicate_requires_an_explicit_choice_even_when_included_source_is_validated: test
app::source_symbols::tests::escape_dismisses_modal_before_underlying_source_results: test
app::source_symbols::tests::escape_dismisses_results_and_cancels_busy_navigation_without_changing_sources: test
app::source_symbols::tests::find_close_releases_removed_input_and_guarded_focus_respects_later_input: test
app::source_symbols::tests::find_only_captured_escape_closes_once_and_preserves_raw_query_and_selection: test
app::source_symbols::tests::invalid_unapplied_drafts_navigate_without_apply_or_losing_either_history: test
app::source_symbols::tests::matching_reveal_ticket_is_required_and_raw_input_invalidates_pending_reveal: test
app::source_symbols::tests::old_find_close_cannot_cancel_a_new_file_session_or_reopened_find_intent: test
app::source_symbols::tests::old_symbol_widget_envelopes_after_file_switch_preserve_same_session_intent: test
app::source_symbols::tests::old_symbol_widget_envelopes_after_reset_preserve_new_same_path_intent: test
app::source_symbols::tests::reset_retains_worker_slot_until_old_completion_then_admits_new_session_query: test
app::source_symbols::tests::saturated_raw_clock_never_authorizes_completion_or_reveal: test
app::source_symbols::tests::source_symbols_100_modules_1000_definitions_10000_uses: test
app::source_symbols::tests::unknown_job_cannot_release_current_worker_and_old_duplicate_cannot_replace_new_results: test
app::source_symbols::tests::valid_definition_and_reference_choice_keep_whole_model_and_source_unchanged: test
app::state_diagram_tests::all_context_dimensions_reject_stale_selection_camera_and_model_messages: test
app::state_diagram_tests::create_view_places_only_its_machine_and_restores_exact_source_in_one_undo: test
app::state_diagram_tests::direct_create_connect_select_and_move_keep_semantic_identity_and_atomic_history: test
app::state_diagram_tests::fallback_owner_first_selection_keeps_the_captured_context_for_its_first_move: test
app::state_diagram_tests::pending_drafts_block_every_direct_mutation_and_passive_camera_preserves_inputs: test
app::state_diagram_tests::real_view_tool_and_history_changes_invalidate_old_release_events: test
app::state_diagram_tests::rejected_creation_keeps_source_and_selection_then_valid_owner_can_retry: test
app::state_diagram_tests::same_size_viewport_after_revision_or_tool_epoch_does_not_refit_the_camera: test
app::state_diagram_tests::shared_semantic_states_keep_architecture_and_behavior_placements_independent: test
app::state_diagram_tests::state_diagram_routes_constructor_and_source_open_to_the_existing_workspace_without_edits: test
app::state_diagram_tests::state_diagram_routes_picker_and_reveal_but_explicit_architecture_does_not_bounce: test
app::state_diagram_tests::state_diagram_routes_preserve_selected_raw_properties_and_pending_behavior_guards: test
app::state_diagram_tests::state_navigation_catalog_selection_across_layers_resets_camera_and_tool: test
app::state_diagram_tests::state_navigation_catalog_selection_of_another_machine_resets_camera_and_tool: test
app::state_diagram_tests::state_navigation_layer_change_resets_the_new_machine_at_the_same_viewport_size: test
app::state_diagram_tests::state_navigation_return_to_the_same_view_preserves_camera_tool_and_fit_mode: test
app::state_diagram_tests::state_navigation_root_event_and_same_layer_keep_the_current_camera_and_tool: test
app::transition_context_tests::explicit_behavior_internal_and_process_roots_keep_their_workspace_without_creating_a_view: test
app::transition_context_tests::explicit_destination_is_honored_and_ordinary_work_transition_still_places_in_architecture: test
app::transition_context_tests::machine_and_typed_action_transitions_resolve_the_owner_and_reusing_that_context_retains_camera: test
app::transition_context_tests::rejected_source_writeback_keeps_review_and_navigation_and_invalid_draft_still_blocks_start: test
app::transition_context_tests::scenario_transition_focuses_requested_counterpart_and_preserves_unrelated_views_in_both_directions: test
app::view_copy_tests::copying_architecture_keeps_architecture_even_with_a_retained_state_view: test
app::view_copy_tests::copying_the_current_state_view_uses_its_own_identity_and_is_one_source_undo: test
app::view_copy_tests::duplicate_rejection_preserves_an_incomplete_source_buffer: test
app::view_copy_tests::duplicate_rejection_preserves_invalid_property_and_pending_behavior_drafts: test
app::view_copy_tests::stale_copy_does_not_apply_an_unrelated_valid_property_draft: test
behavior::behavior_anchor_plan_experiment::tests::complete_plan_scope_is_inactive_in_other_threads_and_restored_after_deliberate_panic: test
behavior::behavior_anchor_plan_experiment::tests::complete_seed_plan_preserves_both_actual_scene_and_document_baselines: test
behavior::behavior_anchor_plan_experiment::tests::crossing_is_rendered_exactly_and_diagnosed_with_extents_covering_the_earlier_far_event: test
behavior::behavior_anchor_plan_experiment::tests::earlier_death_reaches_380_and_actual_lifetime_and_activation_clip_there: test
behavior::behavior_anchor_plan_experiment::tests::lifecycle_anchor_below_actual_root_render_scope_is_rejected_before_scene_construction: test
behavior::behavior_anchor_plan_experiment::tests::nested353_scope_escape_is_named_and_rejected_before_missing_lifecycle_geometry_is_exposed: test
behavior::behavior_anchor_plan_experiment::tests::nested_move_that_would_relocate_fixed_header_is_rejected_but_mere_overlap_is_not_banned: test
behavior::behavior_anchor_plan_experiment::tests::nested_outlier_expands_enclosing_geometry_without_using_final_traversal_row_as_extent: test
behavior::behavior_anchor_plan_experiment::tests::nested_upward_anchor_reaches_457_without_moving_parent_or_followers: test
behavior::behavior_anchor_plan_experiment::tests::self_call_has_explicit_send610_receive634_and_reply_stays728: test
behavior::behavior_anchor_plan_experiment::tests::signed_zero_keeps_sparse_candidate_and_restoring_original_candidate_restores_actual_scene: test
behavior::behavior_anchor_plan_experiment::tests::unsupported_targets_and_lifetime_inversion_fail_explicitly_instead_of_silent_clamping: test
behavior::behavior_anchor_plan_experiment::tests::upward_second_delivery_reaches_200_and_all_other_occurrence_anchors_stay_fixed: test
behavior::behavior_layout_scene_experiment::current_floor_is_an_explicit_counterexample_to_general_free_positioning: test
behavior::behavior_layout_scene_experiment::lifetime::delayed_create_call_and_delete_have_real_lifetime_markers_and_exact_clipped_activation: test
behavior::behavior_layout_scene_experiment::lifetime::moving_create_moves_real_lifetime_and_followers_without_changing_semantics_or_source: test
behavior::behavior_layout_scene_experiment::lifetime::moving_delete_extends_only_to_actual_death_and_zero_motion_preserves_latent_lifetime_intent: test
behavior::behavior_layout_scene_experiment::moved_repeat_drives_actual_scene_followers_frames_and_self_message_without_semantic_edits: test
behavior::behavior_layout_scene_experiment::nested_anchor_grows_actual_fragment_and_self_call_keeps_its_receive_offset: test
behavior::behavior_layout_scene_experiment::real_parser_roundtrip_and_baseline_scene_have_independent_expected_anchors: test
behavior::behavior_layout_scene_experiment::scoped_hook_is_inactive_by_default_thread_local_and_restored_after_panic: test
behavior::behavior_layout_scene_experiment::source_reorder_keeps_override_bound_to_occurrence_identity_and_does_not_write_back_projection: test
behavior::behavior_layout_scene_experiment::zero_pointer_delta_preserves_latent_authored_intent_but_explicit_assignment_can_change_it: test
behavior::canvas_workspace::tests::relative_camera_zoom_keeps_the_cursor_world_point_and_rejects_nonfinite_inputs: test
behavior::canvas_workspace::tests::viewport_ordered_batch_uses_each_event_position_and_cancels_before_camera_motion: test
behavior::contextual_source_tests::contextual_source_app_checkpoint_restores_inner_raw_draft_without_model_adoption: test
behavior::contextual_source_tests::contextual_source_app_empty_actions_and_child_open_refuse_other_raw_editors: test
behavior::contextual_source_tests::contextual_source_app_modal_escape_then_child_back_then_parent_cancel_preserve_accepted_source: test
behavior::contextual_source_tests::contextual_source_back_remains_available_after_owner_deletion_and_with_dirty_editors: test
behavior::contextual_source_tests::contextual_source_back_retains_parent_and_rejects_late_child_event: test
behavior::contextual_source_tests::contextual_source_default_consumer_name_has_stable_alias_and_correlated_selection: test
behavior::contextual_source_tests::contextual_source_deleted_owner_view_retains_draft_instead_of_panicking_or_using_fallback: test
behavior::contextual_source_tests::contextual_source_empty_history_reports_no_change_and_success_requires_a_real_history_step: test
behavior::contextual_source_tests::contextual_source_empty_palette_lifeline_cannot_open_a_previous_owner_or_layer: test
behavior::contextual_source_tests::contextual_source_existing_choice_prunes_staged_dependency: test
behavior::contextual_source_tests::contextual_source_failed_source_budget_preserves_both_drafts_and_accepted_bytes: test
behavior::contextual_source_tests::contextual_source_incomplete_recovered_kind_reports_error_without_panicking: test
behavior::contextual_source_tests::contextual_source_inserts_work_on_the_exact_guarded_link_and_refuses_exchange_identity_conflict: test
behavior::contextual_source_tests::contextual_source_lifelines_stage_exact_separate_records_and_one_history_entry: test
behavior::contextual_source_tests::contextual_source_machine_before_any_owner_creates_optional_view_atomically: test
behavior::contextual_source_tests::contextual_source_mounted_small_editor_keeps_back_and_use_outside_field_scroll: test
behavior::contextual_source_tests::contextual_source_nested_semantic_parent_is_explicit_and_revalidated: test
behavior::contextual_source_tests::contextual_source_new_callee_lifeline_preserves_caller_bindings_as_an_explicit_warning: test
behavior::contextual_source_tests::contextual_source_original_document_remains_bound_after_back_or_choosing_existing: test
behavior::contextual_source_tests::contextual_source_owner_first_can_return_to_an_unnamed_machine_without_losing_source: test
behavior::contextual_source_tests::contextual_source_recovery_keeps_inner_raw_fields_and_refuses_deleted_or_changed_owner: test
behavior::contextual_source_tests::contextual_source_second_system_and_role_machine_owner_refuse_without_fallback: test
behavior::contextual_source_tests::contextual_source_work_uses_reserved_contribution_and_link_ids_and_one_undo: test
behavior::creation::app_tests::app_choosing_another_behavior_or_layer_cannot_commit_a_creation_draft: test
behavior::creation::app_tests::app_creation_opens_the_actual_new_owner_instead_of_first_or_previously_active_behavior: test
behavior::creation::app_tests::app_first_captured_escape_dismisses_file_or_pending_overlay_before_creation: test
behavior::creation::app_tests::app_lesson_request_cancel_retains_creation_then_escape_discards_only_the_draft: test
behavior::creation::app_tests::app_machine_behavior_submit_opens_its_opted_in_view_as_one_undoable_transaction: test
behavior::creation::app_tests::app_new_never_auto_applies_valid_or_invalid_property_and_source_drafts: test
behavior::creation::app_tests::app_recovered_rootless_sa_creation_retains_layer_ids_and_other_raw_drafts: test
behavior::creation::app_tests::app_stale_layer_open_never_starts_or_replaces_a_draft: test
behavior::creation::tests::all_four_viewpoints_are_explicit_and_survive_source_history_reopen: test
behavior::creation::tests::cancel_and_illegal_family_layer_switches_never_create_model_objects: test
behavior::creation::tests::corrupted_recovery_and_reserved_identity_collision_refuse_without_repairing_raw_values: test
behavior::creation::tests::creation_selection_rejects_changed_scenario_body_and_post_creation_operations: test
behavior::creation::tests::machine_requires_valid_owner_and_first_view_adds_no_region_or_state: test
behavior::creation::tests::mounted_creation_keeps_actions_visible_and_renders_only_six_owner_candidates: test
behavior::creation::tests::oa_process_and_sa_chain_keep_exact_names_root_ownership_and_one_history_entry: test
behavior::creation::tests::optional_context_collapses_without_losing_authored_reference_or_raw_search: test
behavior::creation::tests::owner_search_is_name_ordered_filtered_and_page_sized_not_a_catalog: test
behavior::creation::tests::post_commit_selection_is_correlated_with_exact_created_behavior_and_view: test
behavior::creation::tests::recovery_preserves_exact_raw_inputs_reserved_ids_and_revalidates_stale_owner: test
behavior::creation::tests::rejected_source_transaction_keeps_draft_and_every_accepted_source_byte: test
behavior::creation::tests::repeated_owner_names_remain_distinguishable_by_searchable_parent_context_and_alias: test
behavior::direct_canvas_tests::direct_alt_execution_stops_each_operand_at_its_reply_and_marks_open_operand: test
behavior::direct_canvas_tests::direct_bounds_change_during_held_drag_never_commits_old_slot: test
behavior::direct_canvas_tests::direct_clicked_occurrence_capture_cancels_on_view_and_context_changes: test
behavior::direct_canvas_tests::direct_context_escape_unfocus_and_pending_form_cancel_gestures: test
behavior::direct_canvas_tests::direct_drag_and_click_click_use_ordered_sources_and_publish_once: test
behavior::direct_canvas_tests::direct_execution_span_ends_at_its_correlated_reply_and_marks_an_open_call: test
behavior::direct_canvas_tests::direct_panned_canvas_maps_ordered_pointer_events_to_the_visible_slot: test
behavior::direct_canvas_tests::direct_scroll_resize_and_bounds_changes_cancel_captured_slots: test
behavior::direct_canvas_tests::direct_selected_handle_reorders_and_hits_keep_semantic_identity: test
behavior::direct_canvas_tests::reused_exchange_messages_display_their_distinct_occurrence_names: test
behavior::scenario::data_contract_tests::large_payload_has_one_editor_with_reachable_field_and_authored_pages: test
behavior::scenario::data_contract_tests::recursive_browsing_up_and_root_keep_values_and_report_the_depth_limit: test
behavior::scenario::data_contract_tests::recursive_value_focus_exposes_authored_leaf_and_phase_changes_retain_surviving_keys: test
behavior::scenario::data_contract_tests::reply_call_picker_previews_the_same_value_reset_as_selecting_another_exchange: test
behavior::scenario::data_contract_tests::scenario_form_commits_two_reused_record_values_and_correlated_reply_atomically: test
behavior::scenario::direct_tests::direct_busy_save_keeps_details_current_and_camera_for_the_next_pointer_gesture: test
behavior::scenario::direct_tests::direct_clicked_occurrence_rejects_stale_slots_and_retains_recoverable_drafts: test
behavior::scenario::direct_tests::direct_clicked_occurrences_use_root_and_operand_slots_with_exact_source_history: test
behavior::scenario::direct_tests::direct_exchange_compatibility_browsing_preserves_final_slot_validation: test
behavior::scenario::direct_tests::direct_exchange_picker_is_bounded_and_browsing_keeps_pending_values: test
behavior::scenario::direct_tests::direct_five_hundred_exchange_choice_render_probe: test
behavior::scenario::direct_tests::direct_form_keeps_the_same_canvas_in_the_widget_tree: test
behavior::scenario::direct_tests::direct_middle_pair_insertion_is_one_exact_source_and_model_undo: test
behavior::scenario::direct_tests::direct_operand_pair_keeps_parent_sequence_and_cannot_reorder_across_operands: test
behavior::scenario::direct_tests::direct_reply_choices_cache_keeps_typing_fast_and_revalidates_changed_contexts: test
behavior::scenario::direct_tests::direct_reply_choices_validate_the_actual_slot_and_reorder_rejects_reverse_order: test
behavior::scenario::direct_tests::direct_scenario_reference_navigation_blocks_pending_drafts_and_stale_contexts: test
behavior::scenario::direct_tests::direct_scenario_reference_navigation_retains_each_exact_caller_without_history: test
behavior::scenario::direct_tests::direct_scenario_reference_return_survives_rename_and_rejects_deleted_or_changed_use: test
behavior::scenario::operation_tests::operation_gui_async_picker_uses_request_root_and_nested_directions_without_erasing_rejected_values: test
behavior::scenario::operation_tests::operation_gui_selects_two_parameterless_allocations_without_inventing_refinement_and_reply_derives_call: test
behavior::scenario::operation_tests::operation_gui_unresolved_and_disabled_selection_recovery_preserves_rejected_raw_values: test
behavior::scenario::tests::fragment_operands_accept_paired_messages_through_normal_destination_picker: test
behavior::scenario::tests::graphical_call_reply_is_atomic_correlated_and_source_equivalent: test
behavior::scenario::tests::invalid_lifecycle_edit_keeps_draft_and_timer_has_no_global_exchange: test
behavior::scenario::tests::lifeline_picker_uses_core_viewpoint_contract: test
behavior::scenario::tests::reverse_communication_canvas_choices_and_correlated_reply_share_core_direction: test
behavior::scenario::tests::scenario_reuse_requires_explicit_compatible_bindings: test
behavior::scenario::tests::tagged_scenario_commit_is_not_redirected_by_other_editor_events: test
behavior::scenario::usage::tests::scenario_operation_label_membership_excludes_ellipsis_only_and_normalizes_whitespace: test
behavior::scenario::usage::tests::scenario_usage_counts_nested_occurrences_and_lifelines_but_keeps_reuse_opaque: test
behavior::scenario::usage::tests::scenario_usage_keeps_repeated_messages_and_reveal_is_read_only_and_revalidated: test
behavior::scenario::usage::tests::scenario_usage_only_reports_the_resolved_operation_fields_actually_in_the_label: test
behavior::scenario::workspace::tests::new_scenario_form_resets_only_its_scroll_and_recovery_gets_a_fresh_session: test
behavior::scenario::workspace::tests::production_empty_scenario_lifeline_tool_keeps_staged_source_inside_stable_canvas: test
behavior::scenario::workspace::tests::production_scenario_camera_external_controls_bounds_and_retained_deltas_cancel_old_drags: test
behavior::scenario::workspace::tests::production_scenario_canvas_keeps_bounds_draft_identity_and_camera_through_editing: test
behavior::scenario::workspace::tests::production_scenario_canvas_pan_invalidates_a_pressed_creation_and_caller_restores_once: test
behavior::scenario::workspace::tests::production_scenario_keyboard_enters_activates_draws_focus_and_returns_to_inspector: test
behavior::scenario::workspace::tests::production_scenario_keyboard_reveals_and_activates_initially_offscreen_last_tool: test
behavior::scenario::workspace::tests::production_scenario_retained_toolbar_intents_reject_chooser_dirty_and_picker_lifetimes: test
behavior::scenario::workspace::tests::production_scenario_whole_glyph_drag_moves_one_occurrence_and_rejects_other_operand: test
behavior::scenario::workspace::tests::scenario_form_focus_chained_apply_rechecks_live_review_owner: test
behavior::scenario::workspace::tests::scenario_form_focus_missing_exact_target_leaves_other_inputs_untouched: test
behavior::scenario::workspace::tests::scenario_form_focus_returns_from_back_use_and_escape_after_initial_focus_is_consumed: test
behavior::scenario::workspace::tests::scenario_form_focus_saved_action_is_inert_on_replacement_child_review_and_changed_context: test
behavior::scenario::workspace::tests::scenario_form_focus_targets_the_name_and_rejects_stale_sessions_or_modals: test
behavior::scenario::workspace::tests::scenario_workspace_choosing_tools_preserves_valid_and_invalid_pending_editors: test
behavior::scenario::workspace::tests::scenario_workspace_fit_uses_measured_inner_viewport_and_rejects_nonfinite_inputs: test
behavior::scenario::workspace::tests::scenario_workspace_open_and_back_restore_owner_and_mounted_camera_after_preselection: test
behavior::scenario::workspace::tests::scenario_workspace_same_size_owner_and_document_changes_remeasure_fit_viewport: test
behavior::scenario::workspace::tests::scenario_workspace_scaled_and_panned_scene_keeps_clicked_slots_and_message_endpoints: test
behavior::scenario::workspace::tests::scenario_workspace_scaled_nested_occurrences_and_reorder_keep_exact_sequence_identity: test
behavior::scenario::workspace::tests::scenario_workspace_viewport_events_are_passive_guarded_and_do_not_apply_raw_forms: test
behavior::scenario_lifecycle::render::tests::birth_label_clip_keeps_padded_world_bounds_at_each_scene_scale: test
behavior::scenario_lifecycle::render::tests::birth_label_clip_preserves_parent_viewport_bounds: test
behavior::scenario_lifecycle::render::tests::box_text_clip_intersects_parent_viewport_and_rejects_empty_interiors: test
behavior::scenario_lifecycle::render::tests::panned_header_and_create_clips_use_screen_translation_and_actual_viewport: test
behavior::scenario_lifecycle::render::tests::real_scene_birth_death_markers_align_endpoints_and_win_selection_without_mutating_source: test
behavior::scenario_lifecycle::render::tests::real_scene_branch_delete_clips_only_its_activation_and_keeps_unanswered_call_visible: test
behavior::scenario_lifecycle::render::tests::real_scene_conditional_repeated_and_parallel_scopes_do_not_claim_definite_continuation: test
behavior::scenario_lifecycle::render::tests::real_scene_empty_and_create_only_use_visible_root_extents_not_insertion_bounds: test
behavior::scenario_lifecycle::render::tests::real_scene_lifecycle_edit_undo_redo_restores_exact_source_and_changed_geometry: test
behavior::scenario_lifecycle::render::tests::real_scene_long_header_title_and_detail_keep_names_and_have_bounded_clips: test
behavior::scenario_lifecycle::render::tests::real_scene_minimum_zoom_marker_halos_do_not_steal_adjacent_capsule_or_header_hits: test
behavior::scenario_lifecycle::render::tests::real_scene_minimum_zoom_near_ordinary_message_wins_over_lifecycle_halos: test
behavior::scenario_lifecycle::render::tests::real_scene_panned_zoomed_program_keeps_header_birth_and_death_hit_identity: test
behavior::scenario_lifecycle::render::tests::real_scene_self_delete_caption_clears_the_preceding_action_box: test
behavior::scenario_lifecycle::render::tests::real_scene_self_lifecycle_elbows_end_on_recorded_marker_rows: test
behavior::scenario_lifecycle::render::tests::real_scene_unassigned_lanes_and_explicit_incomplete_receiver_keep_real_marker_identity: test
behavior::scenario_lifecycle::render::tests::real_scene_wide_latin_header_exceeds_old_character_budget: test
behavior::scenario_lifecycle::tests::alternative_death_does_not_kill_its_displayed_sibling: test
behavior::scenario_lifecycle::tests::conditional_birth_does_not_infer_absence_in_siblings_or_ancestors: test
behavior::scenario_lifecycle::tests::explicit_receiver_is_authoritative_even_with_missing_exchange: test
behavior::scenario_lifecycle::tests::lifecycle_free_fragments_do_not_poison_other_lanes: test
behavior::scenario_lifecycle::tests::loop_lifetime_is_local_and_warning_bearing_loops_remain_drawable: test
behavior::scenario_lifecycle::tests::missing_geometry_is_reported_without_nonfinite_or_guessed_markers: test
behavior::scenario_lifecycle::tests::optional_cleanup_inside_loop_does_not_claim_balanced_or_definite_exit: test
behavior::scenario_lifecycle::tests::projection_retains_exact_authored_source_and_does_not_enter_history: test
behavior::scenario_lifecycle::tests::root_lifetime_has_exact_birth_death_boundaries_without_source_mutation: test
behavior::scenario_lifecycle::tests::scenario_use_is_opaque_and_never_imports_callee_lifecycle_events: test
behavior::scenario_scroll::tests::direct_scenario_caller_restores_mounted_scroll_once_with_clamping_and_app_receipt: test
behavior::scenario_scroll::tests::direct_scenario_restore_cannot_scroll_another_document_owner_or_process_view: test
behavior::scenario_scroll::tests::direct_scroll_mounted_identity_resets_navigation_but_preserves_edits_before_first_report: test
behavior::scenario_scroll::tests::direct_scroll_observer_reports_actual_initial_clamped_and_remounted_offsets_once: test
behavior::scenario_scroll::tests::independent_process_owner_change_resets_actual_scroll_offsets: test
behavior::source_draft::layout_tests::contextual_source_layout_initial_essentials_fit_short_composed_host_with_real_paragraphs: test
behavior::source_draft::layout_tests::contextual_source_layout_long_parent_wraps_after_visible_name_without_losing_raw_data: test
behavior::source_draft::layout_tests::contextual_source_layout_visible_kind_click_keeps_choice_explicit_and_name_input_works: test
behavior::state_canvas::tests::context_menu_keeps_window_anchor_and_explicit_placement_identity: test
behavior::state_canvas::tests::context_tool_and_pending_form_changes_cancel_mutating_gestures: test
behavior::state_canvas::tests::creation_uses_the_explicit_deepest_owner_and_never_a_fallback_ancestor: test
behavior::state_canvas::tests::diagram_usage_external_labels_obey_routing_cutoff_while_internal_rows_retain_full_summary: test
behavior::state_canvas::tests::diagram_usage_state_rows_and_label_references_follow_actual_projection: test
behavior::state_canvas::tests::diagram_usage_transition_labels_do_not_match_prose_or_fields_beyond_cutoff: test
behavior::state_canvas::tests::drag_uses_ordered_release_at_each_zoom_and_moves_descendants_in_one_undo: test
behavior::state_canvas::tests::escape_and_view_switch_discard_the_armed_transition_source: test
behavior::state_canvas::tests::internal_rows_and_pseudostate_hits_use_shared_persisted_geometry: test
behavior::state_canvas::tests::ordered_stationary_click_does_not_move_on_later_motion_in_the_same_batch: test
behavior::state_canvas::tests::pan_is_button_scoped_read_only_and_hover_does_not_reproject_the_scene: test
behavior::state_canvas::tests::pseudostate_names_avoid_rightward_and_downward_routes_and_share_hit_bounds: test
behavior::state_canvas::tests::relayout_does_not_turn_a_transition_click_into_a_drag_or_pan: test
behavior::state_canvas::tests::selected_endpoint_reconnect_preserves_identity_and_requires_handle_motion: test
behavior::state_canvas::tests::selection_relayout_does_not_move_nodes_or_change_drag_distance: test
behavior::state_canvas::tests::stacked_symbol_names_avoid_each_other_and_are_independent_of_input_order: test
behavior::state_canvas::tests::transition_supports_click_click_and_drag_without_coalesced_accidental_edges: test
behavior::state_canvas::tests::typed_state_actions_are_named_selectable_rows_before_internal_transitions_and_regions: test
behavior::state_canvas::tests::viewport_uses_full_canvas_coordinates_and_republishes_for_a_new_context: test
behavior::state_edit::tests::an_empty_machine_has_an_explicit_visible_owner_for_first_region_creation: test
behavior::state_edit::tests::connect_preserves_self_loops_and_rejects_hidden_or_incompatible_vertices: test
behavior::state_edit::tests::creation_places_missing_ancestry_and_unfolds_existing_owners_atomically: test
behavior::state_edit::tests::every_context_component_and_invalid_ownership_are_checked_before_planning: test
behavior::state_edit::tests::placing_existing_content_and_moving_a_folded_group_preserve_other_views_and_semantics: test
behavior::state_edit::tests::reconnect_preserves_the_complete_record_and_replaces_cardinality_in_place: test
behavior::state_edit::tests::view_initializes_only_its_machine_in_one_source_and_model_history_entry: test
behavior::states::tests::internal_choice_targets_self_and_edit_preserves_identity_and_description: test
behavior::states::tests::invalid_pseudo_trigger_keeps_draft_and_does_not_create_orphan_event: test
behavior::states::tests::selected_composite_owns_new_region_and_history_uses_selected_region: test
behavior::states::tests::timeout_and_work_trigger_commit_together_roundtrip_and_undo: test
behavior::tests::failed_document_commit_retains_typed_transition_and_time_event_for_repair: test
behavior::tests::legacy_process_and_chain_keep_their_ordered_exchange_scene: test
behavior::tests::one_behavior_form_survives_start_edit_and_unrelated_cancel_until_commit: test
behavior::tests::recovery_preserves_distinct_qualified_value_paths_and_rejects_invalid_payload_atomically: test
behavior::tests::recovery_retains_each_incomplete_behavior_form_without_executing_it: test
behavior::tests::selecting_state_transition_keeps_its_behavior_context: test
behavior::topology::contextual::tests::qualified_link_gui_deleted_transient_selection_does_not_seed_or_hide_retained_authored_endpoint: test
behavior::topology::contextual::tests::qualified_link_gui_nested_preview_folds_only_the_exact_reference_instance: test
behavior::topology::contextual::tests::qualified_link_gui_rejected_endpoint_keeps_exact_raw_intent_after_recovery: test
behavior::topology::contextual::tests::qualified_link_gui_repeated_sources_remain_distinct_and_apply_has_exact_source_history: test
behavior::topology::contextual::tests::qualified_link_gui_scope_paging_and_search_reach_tail_beyond_512_without_losing_endpoints: test
behavior::topology::contextual_routing::tests::contextual_route_native_x_to_first_b_keeps_visible_arrow_above_background_and_clear_of_other_references: test
behavior::topology::contextual_routing::tests::contextual_route_nested_visible_hidden_and_parallel_paths_keep_exact_addresses_and_legacy_routes: test
behavior::topology::contextual_routing::tests::contextual_route_shared_anchor_preserves_selected_direct_reconnect_at_fit_and_full_scale: test
behavior::topology::direct_tests::direct_process_append_preserves_existing_order_and_rejects_incompatible_exchange: test
behavior::topology::direct_tests::direct_process_controls_allow_incomplete_work_and_preserve_branch_semantics: test
behavior::topology::direct_tests::direct_process_empty_first_and_second_exchange_keep_the_same_interactive_renderer: test
behavior::topology::direct_tests::direct_process_imported_order_is_projected_without_mutation_and_first_canvas_edit_is_atomic: test
behavior::topology::direct_tests::direct_process_incompatible_imported_order_rejects_conversion_without_losing_draft: test
behavior::topology::direct_tests::direct_process_nested_source_reopen_and_api_command_use_one_transaction: test
behavior::topology::direct_tests::direct_process_oa_sa_repeated_occurrences_share_sources_and_split_one_guarded_link: test
behavior::topology::direct_tests::direct_process_palette_preserves_fit_and_manual_camera: test
behavior::topology::direct_tests::direct_process_production_click_click_drag_insert_and_camera_coordinates: test
behavior::topology::direct_tests::direct_process_production_endpoint_and_peer_reorder_handles_publish_exact_identity: test
behavior::topology::direct_tests::direct_process_production_stale_focus_scroll_bounds_and_pending_cancel: test
behavior::topology::direct_tests::direct_process_readable_default_fit_expansion_and_bounded_choices: test
behavior::topology::direct_tests::direct_process_real_picker_stays_bounded_and_search_keeps_selection: test
behavior::topology::direct_tests::direct_process_reconnect_delete_and_reorder_preserve_other_paths_and_sources: test
behavior::topology::direct_tests::direct_process_reuse_preview_is_local_expandable_and_recursive_sources_are_rejected: test
behavior::topology::direct_tests::direct_process_scaled_control_and_link_gestures_use_visible_positions: test
behavior::topology::direct_tests::direct_process_specific_parallel_link_and_incompatible_adjacency: test
behavior::topology::direct_tests::direct_process_three_ordered_exchanges_preserve_outer_paths_on_insertion: test
behavior::topology::tests::cycle_projection_terminates_and_retains_actual_links: test
behavior::topology::tests::empty_process_can_start_through_normal_authoring_events: test
behavior::topology::tests::fitting_a_branch_keeps_all_nodes_visible_and_selection_uses_scaled_coordinates: test
behavior::topology::tests::guarded_branch_is_one_transaction_with_distinct_source_identities: test
behavior::topology::tests::insertion_picker_only_offers_work_matching_adjacent_exchanges: test
behavior::topology::tests::legacy_branch_insertion_replaces_only_the_selected_implied_link: test
behavior::topology::tests::legacy_edit_preserves_order_and_new_work_in_one_undo: test
behavior::topology::tests::long_engineering_identifiers_stay_inside_label_width: test
behavior::topology::tests::process_camera_selection_ignores_independent_details_scroll: test
behavior::topology::tests::process_fit_disclosures_and_focus_preserve_rejected_raw_draft_and_accepted_source: test
behavior::topology::tests::process_fit_uses_measured_height_and_reports_minimum_without_changing_manual_zoom: test
behavior::topology::tests::reusable_preview_preserves_identity_and_filters_recursive_sources: test
behavior::topology::tests::stale_or_invalid_submit_preserves_inputs_and_creates_nothing: test
behavior::topology::tests::unlinked_contributions_do_not_gain_fictional_edges: test
behavior::topology::usages::tests::expanded_nested_tiles_do_not_invent_links_the_preview_painter_does_not_emit: test
behavior::topology::usages::tests::preview_arrow_focus_is_in_the_painted_gap_and_hidden_endpoints_never_fallback: test
behavior::topology::usages::tests::process_contextual_purpose_and_painted_preview_links_keep_distinct_identities: test
behavior::topology::usages::tests::process_usage_reveal_validates_before_state_changes_and_centers_the_exact_tile: test
behavior::topology::usages::tests::process_usages_exclude_endpoint_coincidence_and_keep_actual_occurrences_and_links: test
behavior::topology::usages::tests::process_usages_keep_caller_paths_and_exclude_unshown_fifth_preview: test
behavior::topology::usages::tests::visible_preview_segment_excludes_all_opaque_tiles_for_reverse_and_cross_row_arrows: test
behavior::topology::view::layout_tests::production_canvas_keyboard_and_delayed_tasks_respect_real_chooser_and_review_owners: test
behavior::topology::view::layout_tests::production_process_caller_return_rejects_its_previous_camera_lifetime: test
behavior::topology::view::layout_tests::production_process_camera_external_controls_bounds_and_retained_deltas_cancel_old_drags: test
behavior::topology::view::layout_tests::production_process_canvas_focus_wheel_fit_and_stale_camera_are_presentation_only: test
behavior::topology::view::layout_tests::production_process_canvas_scaled_path_creation_preserves_source_and_editor_bounds: test
behavior::topology::view::layout_tests::production_process_form_replacement_resets_scroll_without_a_closed_render: test
behavior::topology::view::layout_tests::production_process_keyboard_enters_activates_draws_focus_and_returns_to_inspector: test
behavior::topology::view::layout_tests::production_process_keyboard_reveals_and_activates_initially_offscreen_last_tool: test
behavior::topology::view::layout_tests::production_process_retained_toolbar_intents_reject_chooser_dirty_and_picker_lifetimes: test
connection_edit::tests::cancel_navigation_revision_and_dirty_drafts_cannot_commit_a_stale_connection: test
connection_edit::tests::visible_endpoint_drawing_commits_ports_and_exchange_once_with_exact_history: test
connection_tool::tests::boundary_candidates_match_core_orientation_and_reject_same_owner_or_mixed_kind: test
connection_tool::tests::boundary_feasibility_keeps_interface_warnings_and_final_carried_item_checks: test
connection_tool::tests::boundary_feasibility_rejects_dangling_identity_in_a_malformed_element_map: test
connection_tool::tests::direct_connections_share_exact_source_history_and_model_parity: test
connection_tool::tests::explicit_function_ports_keep_owners_contracts_and_do_not_invent_carried_items: test
connection_tool::tests::final_command_validation_rejects_invalid_models_without_mutation: test
connection_tool::tests::function_cards_use_unique_reuse_and_atomic_generation_when_ambiguous: test
connection_tool::tests::mismatched_port_owners_layers_and_contract_kinds_are_not_candidates: test
connection_tool::tests::operational_communication_uses_participants_without_creating_ports: test
connection_tool::tests::operational_interaction_targets_only_distinct_oa_activities: test
context_menu::tests::a_new_context_token_cannot_reuse_the_previous_mouse_press_or_scroll: test
context_menu::tests::actions_area_does_not_swallow_first_independent_click_after_overlay_consumed_its_release: test
context_menu::tests::anchors_outside_the_window_and_nonfinite_input_stay_bounded: test
context_menu::tests::clicking_disabled_or_dragging_off_an_action_never_executes_it: test
context_menu::tests::coalesced_dismissal_release_does_not_swallow_the_next_independent_click: test
context_menu::tests::empty_and_disabled_only_menus_still_capture_keys_and_escape_closes: test
context_menu::tests::keyboard_skips_headers_separators_and_disabled_actions_and_invokes_once: test
context_menu::tests::outside_dismissal_consumes_press_and_release_across_controlled_close: test
context_menu::tests::reconstructed_overlay_uses_retained_layout_for_rows_and_hit_testing: test
context_menu::tests::retained_overlay_layout_keeps_measured_width_and_scrollbar_after_reconstruction: test
context_menu::tests::tall_menu_clamps_to_viewport_and_keyboard_wheel_and_scrollbar_reach_the_end: test
data_values::tests::phase_choices_keep_reused_record_addresses_distinct: test
data_values::tests::recursive_picker_starts_with_distinct_leaf_names_and_sorts_them: test
data_values::tests::recursive_records_can_be_drilled_into_and_valid_imported_paths_resolve: test
data_values::tests::reference_parameter_stops_descent_and_unspecified_direction_remains_visible: test
data_values::tests::roots_and_one_hop_children_do_not_expand_unrelated_payload_branches: test
data_view::tests::allocation_rows_edit_relationship_identity_and_remove_only_that_allocation: test
data_view::tests::association_creation_is_a_separate_relation_with_editable_end_contracts: test
data_view::tests::browsing_pages_preserves_invalid_numeric_draft_and_inherited_allocation_identity: test
data_view::tests::contextual_data_actions_use_typed_defaults_and_one_undo: test
data_view::tests::large_inherited_dictionary_has_bounded_widgets_and_every_original_field_is_reachable: test
diagram::lifecycle_tests::menu_reset_and_draw_use_fresh_open_context: test
diagram::lifecycle_tests::middle_and_arrow_panning_preserve_source_and_history: test
diagram::lifecycle_tests::motion_after_release_must_not_move_clicked_port: test
diagram::lifecycle_tests::motion_after_source_click_release_must_not_create_connection: test
diagram::pointer_tests::coalesced_fe_ports_commit_once_through_app_and_source_history: test
diagram::pointer_tests::coalesced_port_drag_commits_once_through_app_and_source_history: test
diagram::pointer_tests::drag_from_already_selected_stationary_port_keeps_source_between_batches: test
diagram::pointer_tests::menu_captured_motion_must_not_turn_following_click_into_old_port_drag: test
diagram::pointer_tests::modal_and_stale_epoch_block_queued_connection_and_port_commits: test
diagram::port_hit_tests::coincident_ports_keep_selection_then_use_stable_identity: test
diagram::port_hit_tests::nearest_port_center_wins_on_all_borders_and_zoom_levels: test
diagram::port_hit_tests::nested_owner_palette_selection_drag_and_context_menu_pick_the_same_port: test
diagram::port_labels::tests::leaving_and_reentering_keeps_suppression_until_each_held_button_releases: test
diagram::port_labels::tests::menu_epoch_clears_suppression_when_the_overlay_consumes_release: test
diagram::port_labels::tests::outside_presses_do_not_suppress_and_cancel_or_focus_loss_clear_held_buttons: test
diagram::port_labels::tests::passive_layer_leaves_port_drag_selection_and_commit_with_the_interactive_canvas: test
diagram::tests::association_end_contracts_share_svg_geometry_and_select_without_moving_name_label: test
diagram::tests::bend_gestures_use_screen_hit_radius_and_commit_one_undo_at_three_zooms: test
diagram::tests::coincident_line_hit_retains_the_selected_connection: test
diagram::tests::connection_gestures_pick_real_ports_and_commit_coalesced_drag_at_every_zoom: test
diagram::tests::detached_label_selects_connection_and_occluding_card_owns_its_hit: test
diagram::tests::dragging_a_child_previews_the_same_enclosure_and_ports_as_commit: test
diagram::tests::fast_drags_commit_the_release_cursor_without_a_final_motion_event: test
diagram::tests::implicit_port_click_selects_semantics_and_drag_preview_svg_share_anchors: test
diagram::tests::route_cache_ignores_pan_zoom_and_cancelled_drag_cannot_commit: test
diagram::tests::routed_svg_has_same_polyline_label_and_bounds_as_canvas_scene: test
diagram::tests::svg_distinguishes_inferred_work_allocation_from_direct_allocation: test
diagram::tests::svg_preserves_visible_exchange_labels_and_capability_stereotypes: test
diagram::tests::typed_function_glyphs_and_unoriented_standard_connections_have_distinct_svg: test
diagram::view_options_tests::communication_svg_uses_saved_visibility_labels_and_direction: test
diagram_usage::coverage_tests::absent_endpoint_placements_and_hidden_performer_do_not_create_grouping_targets: test
diagram_usage::coverage_tests::allocation_grouping_has_exact_relation_placements_and_readable_work_geometry: test
diagram_usage::coverage_tests::allocation_grouping_walks_two_visible_summary_levels_without_inventing_allocations: test
diagram_usage::coverage_tests::collapsed_leaf_and_edge_filter_still_leave_the_actual_nesting_visible: test
diagram_usage::coverage_tests::folded_summary_or_performer_does_not_substitute_a_visible_ancestor_for_the_leaf: test
diagram_usage::coverage_tests::other_projections_do_not_report_allocation_nesting_when_only_an_arrow_or_nothing_is_drawn: test
diagram_usage::coverage_tests::repeated_saved_views_keep_allocation_placement_identity_and_geometry_independent: test
diagram_usage::coverage_tests::role_derived_nesting_without_a_direct_allocation_does_not_invent_one: test
diagram_usage::tests::folded_child_is_not_a_visible_node_and_placement_identity_stays_exact: test
diagram_usage::tests::oversized_container_reveal_targets_its_labelled_header: test
diagram_usage::tests::ports_are_found_at_the_visible_owner_and_unplaced_elements_do_not_match_names: test
diagram_usage::tests::reveal_camera_centers_target_without_whole_view_shrink: test
diagram_usage::tests::saved_membership_respects_filters_and_does_not_change_project: test
diagram_usage::tests::state_machine_owner_finds_its_view_without_a_machine_placement: test
diagram_usage::tests::whole_diagram_camera_fits_large_bounds_instead_of_individual_object_scale: test
document::save_as_tests::save_as_preserves_explicit_source_entry_changes_in_history: test
document::save_as_tests::save_as_rebases_uniform_history_without_an_undo_step_or_lost_redo: test
document::save_as_tests::save_as_rejects_included_filename_collisions_in_past_and_future_without_mutation: test
document::save_as_tests::save_as_rejects_stale_or_content_changing_receipt_atomically: test
document::tests::accepted_history_keeps_the_latest_hundred_complete_snapshots: test
document::tests::altered_compiled_model_or_index_is_rejected_without_mutation: test
document::tests::asynchronous_save_marks_its_snapshot_without_cleaning_later_edits: test
document::tests::byte_budget_trims_oldest_history_without_discarding_a_large_current: test
document::tests::cached_view_index_tracks_accepted_creation_undo_and_redo: test
document::tests::comment_and_semantic_history_restore_exact_bytes_and_branch_together: test
document::tests::creation_selects_the_single_uuid_persisted_in_source: test
document::tests::invalid_project_is_rejected_before_format_can_normalize_it: test
document::tests::nested_cross_file_reparent_and_source_edit_share_exact_history: test
document::tests::no_op_command_or_source_apply_preserves_history_revision_and_redo: test
document::tests::omitted_id_stabilization_remains_dirty_until_exact_source_is_saved: test
document::tests::recreated_equal_record_does_not_inherit_deleted_source_ownership: test
document::tests::rejected_compile_command_and_writeback_preserve_state_and_redo: test
explorer::tests::collapse_and_search_retain_context_without_changing_collapse_state: test
explorer::tests::deep_containment_and_search_keep_the_full_path_without_recursion: test
explorer::tests::equal_names_have_stable_alias_and_identity_tie_breakers: test
explorer::tests::perspective_isolation_and_allocations_do_not_change_containment: test
explorer::tests::prefix_names_cannot_separate_a_parent_from_its_children: test
forms::data_fields::tests::defaults_distinguish_absent_empty_and_typed_literals_with_escaped_unicode: test
forms::data_fields::tests::field_browser_pages_every_direct_field_without_flattening_other_records: test
forms::data_fields::tests::independent_review_combined_take_type_informs_actual_default_form_in_both_directions: test
forms::data_fields::tests::numeric_bound_drafts_keep_partial_and_full_precision_values_out_of_accepted_state: test
forms::data_fields::tests::selecting_qualified_path_preserves_expression_typed_before_the_next_render: test
forms::data_fields::tests::semantic_reference_choices_follow_selected_mechanism_and_revert_on_keep: test
forms::data_fields::tests::supertype_picker_excludes_descendants_and_keeps_original_inherited_field_identity: test
forms::history_fields::tests::history_absent_baseline_and_empty_history_use_explicit_facts_and_exact_document_history: test
forms::history_fields::tests::history_clear_discards_inactive_invalid_constructors_before_reusing_the_same_row: test
forms::history_fields::tests::history_compound_value_and_constructor_variants_are_editable_without_live_context: test
forms::history_fields::tests::history_deleted_keys_and_observation_uuids_remain_exact_and_duplicate_history_rejects: test
forms::history_fields::tests::history_every_descriptor_fact_choice_matches_actual_closed_types_and_source_contract: test
forms::history_fields::tests::history_exact_strings_do_not_confuse_uuid_shaped_prose_or_literal_keys_with_references: test
forms::history_fields::tests::history_invalid_numbers_survive_constructor_switch_reorder_removal_and_recovery: test
forms::history_fields::tests::history_missing_semantic_field_can_be_added_and_removed_without_touching_prose_or_live_objects: test
forms::history_fields::tests::history_nested_optional_number_events_switch_absent_present_and_recover_invalid_raw: test
forms::history_fields::tests::history_nested_uuid_and_list_events_preserve_present_values_and_tagged_item_branches: test
forms::history_fields::tests::history_optional_uuid_and_text_seed_absence_without_inventing_observations: test
forms::history_fields::tests::history_primitive_type_choices_remain_visible_inside_the_tagged_union: test
forms::history_fields::tests::history_retained_text_constructors_follow_exact_mode_without_changing_the_observation: test
forms::port_fields::tests::all_demo_records_roundtrip_through_graphical_and_escaped_string_drafts: test
forms::port_fields::tests::boundary_choices_honor_draft_direction_same_kind_and_direct_interface_items: test
forms::port_fields::tests::contract_choices_follow_owner_and_never_offer_legacy_or_oa_typed_ports: test
forms::port_fields::tests::failed_shape_keeps_incomplete_text_and_saved_contract_payloads: test
forms::port_fields::tests::functional_endpoints_require_owner_direction_and_items_but_retain_bad_current_choice: test
forms::port_fields::tests::interface_roles_offer_participants_and_component_ports_independent_of_orientation: test
forms::port_fields::tests::port_allocation_choices_use_actual_owner_direction_and_ignore_edited_relation: test
forms::port_fields::tests::standard_switch_retains_incompatible_orientation_until_explicit_repair: test
forms::port_fields::tests::switching_function_direction_preserves_invalid_items_and_each_authored_payload: test
forms::reference_chooser::tests::captured_choice_cannot_cross_document_revision_draft_record_or_array_path: test
forms::reference_chooser::tests::catalog_search_disambiguates_repeated_names_containment_alias_and_exact_placement_identity: test
forms::reference_chooser::tests::dismissal_swallows_matching_release_across_closed_rebuild_but_next_click_reaches_parent: test
forms::reference_chooser::tests::empty_search_escape_tab_and_optional_clear_do_not_silently_choose_nil: test
forms::reference_chooser::tests::historical_paths_never_open_and_only_explicit_choice_or_clear_is_a_write: test
forms::reference_chooser::tests::mounted_clipboard_paste_and_ime_commit_preserve_whole_strings_without_selecting: test
forms::reference_chooser::tests::mounted_filtered_row_click_uses_the_displayed_identity_and_scoped_write_intent: test
forms::reference_chooser::tests::mounted_input_preserves_rapid_same_batch_typing_and_cursor_across_controlled_rebuilds: test
forms::reference_chooser::tests::mounted_keyboard_pages_and_selects_only_the_highlighted_visible_candidate_once: test
forms::reference_chooser::tests::mounted_overlay_clamps_at_three_field_positions_and_keeps_results_and_query_bounded: test
forms::reference_chooser::tests::mounted_query_change_rejects_old_release_and_old_result_events_without_locking_popup: test
forms::reference_chooser::tests::mounted_query_then_escape_in_one_batch_closes_and_relative_keys_keep_input_order: test
forms::reference_chooser::tests::out_of_order_query_serials_cannot_restore_obsolete_results: test
forms::tests::data_and_port_choices_are_typed_but_retain_invalid_current_values: test
forms::tests::editing_allocation_offers_other_performers_without_counting_itself_twice: test
forms::tests::moving_placement_and_changing_identity_is_one_lossless_undoable_edit: test
forms::tests::parent_choices_reject_cycles_without_removing_clear_or_current_choice: test
forms::tests::reply_and_reuse_forms_offer_semantically_compatible_references: test
forms::tests::scenario_choices_respect_owner_and_exchange_layer: test
forms::tests::semantic_port_group_choices_use_combined_owner_and_retain_invalid_transferred_items: test
forms::tests::shared_perspective_change_keeps_payload_and_rejects_incompatible_dependencies: test
forms::tests::state_observation_picker_keeps_work_lifelines_allocated_to_machine_owner: test
forms::tests::state_placement_form_uses_draft_destination_membership_without_changing_other_views: test
forms::tests::state_projection_form_keeps_string_variants_and_requires_a_typed_context: test
forms::view_fields::tests::category_family_change_retains_members_until_explicit_correction: test
forms::view_fields::tests::selective_view_property_apply_recovery_and_undo_preserve_semantics_and_empty_choices: test
guide::tests::filtering_and_related_navigation_keep_selection_visible: test
guide::tests::guide_topic_navigation_resets_only_article_and_same_topic_search_keeps_scroll: test
guide::tests::search_finds_concepts_in_walkthroughs_and_api_reference: test
home::tests::corrupt_future_and_oversized_history_are_preserved_with_usable_session_history: test
home::tests::failed_metadata_replace_keeps_previous_history_and_reports_memory_only_entry: test
home::tests::first_and_replaced_metadata_are_parseable_and_contain_no_model_bytes: test
home::tests::forgotten_and_missing_files_never_change_the_model_or_other_entries: test
home::tests::loading_missing_history_does_not_create_files_or_directories: test
home::tests::malformed_entries_and_unknown_fields_never_become_open_requests: test
home::tests::successful_local_history_is_bounded_ordered_deduplicated_and_durable: test
home::tests::unavailable_location_can_reappear_on_refresh_without_losing_identity: test
home::tests::walkthrough_uses_packaged_bundle_before_development_and_reports_missing_assets: test
hosted::client::tests::hosted_endpoint_validation_redacts_secrets_and_preserves_proxy_paths: test
hosted::client::tests::hosted_lost_publication_response_is_uncertain_without_retry: test
hosted::client::tests::hosted_open_rejects_incoherent_envelopes_missing_etags_and_unstable_ids: test
hosted::client::tests::hosted_oversized_local_bundle_is_rejected_before_network_admission: test
hosted::client::tests::hosted_production_auth_proxy_prefix_and_located_rejection: test
hosted::client::tests::hosted_production_roundtrip_preserves_comments_noops_and_conflicts: test
hosted::client::tests::hosted_publication_race_keeps_receipt_identity_for_review: test
hosted::client::tests::hosted_publication_retains_known_resource_after_failed_followup: test
hosted::client::tests::hosted_put_preserves_an_opaque_etag_and_compiles_the_accepted_bundle: test
hosted::client::tests::hosted_redirect_is_not_followed_or_retried_and_problem_tokens_are_redacted: test
hosted::client::tests::hosted_response_limits_cover_declared_and_chunked_bodies: test
hosted::client::tests::hosted_structured_mutation_failures_distinguish_precommit_rejections: test
hosted::client::tests::hosted_timeout_and_disconnect_leave_mutation_outcomes_explicit: test
model_menu::tests::add_bend_here_uses_context_point_and_one_source_aware_history_change: test
model_menu::tests::late_menu_actions_do_not_dismiss_new_menu_or_cross_view_context: test
model_menu::tests::menu_preserves_pending_properties_and_rejects_delayed_mutations: test
model_menu::tests::pending_source_allows_file_navigation_but_disables_model_actions: test
model_menu::tests::right_click_targets_actor_without_changing_selection_until_action: test
model_menu::tests::show_from_explorer_places_unfolds_and_keeps_semantic_selection: test
model_menu::tests::state_menu_folds_and_hides_only_its_captured_placement_and_rejects_stale_views: test
model_menu::tests::state_menu_keeps_typed_creation_reachable_and_preserves_pending_properties: test
navigation::tests::semantic_browser_finds_behavior_users_without_confusing_containment: test
port_edit::tests::all_border_drags_commit_exact_preview_and_restore_automatic_anchors_in_history: test
port_edit::tests::graphical_port_reparent_clears_old_anchors_in_the_same_history_operation: test
port_preview::tests::functional_creation_identifies_new_and_reused_endpoints_and_owners: test
port_preview::tests::legacy_split_discloses_endpoint_routing_item_origins_and_retained_evidence: test
port_preview::tests::reused_boundary_shows_item_union_and_existing_allocating_facts: test
port_preview::tests::synchronization_preview_exposes_contract_shrinkage_and_current_declaration_origin: test
port_workflow::recovery_tests::port_recovery_retains_authored_contract_and_identity_but_rebuilds_preview: test
port_workflow::tests::creating_typed_port_and_rejecting_stale_preview_preserve_drafts_and_identity: test
port_workflow::tests::graphical_function_exchange_and_component_generation_commit_and_undo_whole_contracts: test
port_workflow::tests::legacy_resolution_preserves_original_record_and_applies_as_one_undo: test
port_workflow::tests::port_creation_keeps_owner_diagram_and_unfolds_in_the_same_undo: test
port_workflow::tests::synchronization_uses_active_contract_instead_of_preserved_direction: test
recovery::source5::tests::source5_fingerprint_preserves_historical_field_order_and_diagram_shape: test
recovery::source5_tests::source4_checkpoint_remains_explicitly_unsupported_without_touching_disk: test
recovery::source5_tests::source5_checkpoint_does_not_refresh_unrelated_clean_buffer_baseline: test
recovery::source5_tests::source5_checkpoint_missing_identity_is_not_a_lossless_upgrade: test
recovery::source5_tests::source5_checkpoint_old_diagram_property_shape_remains_editable: test
recovery::source5_tests::source5_checkpoint_port_draft_replans_and_rejects_stale_base: test
recovery::source5_tests::source5_checkpoint_preserves_dirty_invalid_text_and_baseline_exactly: test
recovery::source5_tests::source5_checkpoint_preserves_distinct_unapplied_open_workspace: test
recovery::source5_tests::source5_checkpoint_property_preserves_invalid_raw_input: test
recovery::source5_tests::source5_checkpoint_upgrade_never_rewrites_checkpoint_or_origin: test
recovery::source5_tests::source5_checkpoint_upgrades_only_header_and_clean_editor_baseline: test
recovery::source5_tests::source5_checkpoint_workflow_rebinds_only_the_proven_old_revision: test
recovery::source7_tests::source7_current_combined_contextual_and_operation_drafts_survive_without_execution: test
recovery::source7_tests::source7_explicit_new_fields_cannot_enter_frozen_old_model_profiles: test
recovery::source7_tests::source7_legacy_inactive_constructor_path_is_structural_but_raw_prose_is_not: test
recovery::source7_tests::source7_legacy_profile_workflow_and_semantic_drafts_replan_with_exact_base: test
recovery::source7_tests::source7_legacy_profiles_preserve_dirty_source_property_and_behavior_raw_fields: test
recovery::source7_tests::source7_legacy_structural_intent_rejects_even_null_but_never_scans_raw_strings: test
recovery::source7_tests::source7_legacy_view_selector_refuses_new_relation_kind_without_rewriting_checkpoint: test
recovery::source7_tests::source7_recovers_nonempty_frozen_5_and_6_profiles_with_exact_historical_binding: test
recovery::tests::altered_accepted_identity_and_unrecognized_raw_property_fields_reject: test
recovery::tests::exact_source_and_unfinished_invalid_buffers_restore_without_model_overwrite: test
recovery::tests::excess_retained_buffers_cannot_replace_the_last_recoverable_checkpoint: test
recovery::tests::invalid_open_retains_distinct_accepted_model_and_repair_workspace: test
recovery::tests::missing_includes_remain_reachable_repair_targets_without_fabricated_buffers: test
recovery::tests::multiple_sessions_replace_only_their_own_checkpoint_and_corruption_is_retained: test
recovery::tests::raw_invalid_property_number_survives_and_stays_rejected_until_repaired: test
semantic_review::artifacts_recovery_falsifier_tests::forged_artifact_draft_cannot_target_an_unreserved_or_non_artifact_identity: test
semantic_review::artifacts_recovery_falsifier_tests::forged_artifact_raw_variants_duplicate_addresses_and_unknown_fields_are_refused: test
semantic_review::artifacts_recovery_falsifier_tests::forged_artifact_reservations_cannot_duplicate_or_claim_an_existing_identity_or_another_owner: test
semantic_review::artifacts_recovery_falsifier_tests::legitimate_invalid_artifact_checkpoint_round_trips_and_prepares_only_after_explicit_repair: test
semantic_review::artifacts_tests::artifact_candidate_is_a_complete_record_not_a_tombstone_or_unattached_creation_shortcut: test
semantic_review::artifacts_tests::artifact_creation_and_identified_source_deletion_follow_core_metadata_and_history_boundary_both_directions: test
semantic_review::artifacts_tests::artifact_gui_reserves_recovers_and_creates_only_after_all_seven_metadata_reviews_both_directions: test
semantic_review::artifacts_tests::artifact_metadata_apply_and_exact_history_reset_are_one_source_preserving_undo_redo: test
semantic_review::artifacts_tests::artifact_move_metadata_none_empty_and_invalid_raw_recovery_are_independent_both_directions: test
semantic_review::artifacts_tests::artifact_moved_source_absence_deletes_but_destination_only_take_retains_both_directions: test
semantic_review::attachments::tests::absent_attachment_payloads_migrate_v1_and_v2_and_source5_upgrade_requires_exact_legacy_base: test
semantic_review::attachments::tests::addressed_attachment_candidates_equal_direct_core_oracle_both_directions: test
semantic_review::attachments::tests::attachment_apply_is_one_exact_source_and_history_undo_redo: test
semantic_review::attachments::tests::attachment_candidate_and_direct_record_keep_conflict_on_actual_slot_without_losing_drafts: test
semantic_review::attachments::tests::attachment_pair_drafts_survive_family_switch_and_restore_without_mutating_model: test
semantic_review::attachments::tests::functional_incident_source_requires_explicit_matching_port_review_in_one_atomic_candidate: test
semantic_review::attachments::tests::parent_and_each_endpoint_candidate_preserve_other_fields_and_match_core_both_directions: test
semantic_review::attachments::tests::raw_rejected_attachment_reference_survives_recovery_and_wrong_scope_is_rejected: test
semantic_review::attachments::tests::source_only_absence_and_explicit_absent_endpoint_are_different: test
semantic_review::attachments::tests::two_incident_endpoint_candidates_form_one_complete_record_and_recover_invalid_excluded_draft: test
semantic_review::batch_tests::batch_apply_is_one_exact_source_and_history_undo_redo_roundtrip: test
semantic_review::batch_tests::batch_candidate_conflict_keeps_both_raw_values_and_keep_is_a_real_constraint: test
semantic_review::batch_tests::batch_complete_constructor_cannot_erase_another_rows_new_literal: test
semantic_review::batch_tests::batch_constructor_retirement_conflicts_with_another_rows_kept_bound_in_both_orders: test
semantic_review::batch_tests::batch_delayed_text_targets_its_original_row_and_facet_without_switching_focus: test
semantic_review::batch_tests::batch_excluded_invalid_row_survives_focus_reopen_and_v2_recovery: test
semantic_review::batch_tests::batch_first_equal_constructor_acknowledgement_allows_an_independent_bound: test
semantic_review::batch_tests::batch_joint_bounds_use_one_candidate_and_match_an_independent_atomic_core_oracle: test
semantic_review::batch_tests::batch_reverse_distinct_targets_work_and_reverse_convergence_is_explicit: test
semantic_review::batch_tests::batch_v2_rejects_duplicate_included_sources_bad_addresses_and_stale_model: test
semantic_review::batch_tests::category_family_and_members_are_independent_core_checked_facets_both_directions: test
semantic_review::batch_tests::recovered_trace_picker_names_existing_trace_instead_of_deleted_reference: test
semantic_review::batch_tests::rejected_direction_switch_at_row_limit_preserves_every_recoverable_draft: test
semantic_review::compose::diagnostic_tests::distinct_review_conflict_keeps_trace_aliases_even_when_names_are_equal: test
semantic_review::compose::diagnostic_tests::reserved_creation_conflict_uses_its_rows_seed_instead_of_a_deleted_reference: test
semantic_review::compose::diagnostic_tests::same_review_presence_and_owner_conflict_names_both_facets_and_owners_and_retains_drafts: test
semantic_review::compose::diagnostic_tests::typed_owner_display_does_not_reinterpret_uuid_shaped_artifact_text: test
semantic_review::constructor_tests::closed_data_and_event_take_composition_matches_core_across_every_kind_pair_and_direction: test
semantic_review::constructor_tests::data_group_candidates_cover_every_definition_and_companion_default_both_directions: test
semantic_review::constructor_tests::data_group_retains_invalid_sibling_drafts_companion_default_and_variant_editor_buffers: test
semantic_review::constructor_tests::exchange_constructor_takes_qualified_annotation_addresses_without_remapping_expression_text: test
semantic_review::constructor_tests::existing_fragment_and_branch_group_candidates_edit_complete_owned_order_without_deletion: test
semantic_review::constructor_tests::group_take_reference_payload_and_scalar_candidate_match_core_and_one_document_batch: test
semantic_review::constructor_tests::historical_event_keep_retires_only_obsolete_branch_and_unchanged_kind_acknowledges_no_payload: test
semantic_review::constructor_tests::historical_same_kind_take_preserves_target_only_literals_when_composed_with_candidate: test
semantic_review::constructor_tests::occurrence_and_event_candidate_variants_cover_closed_families_without_touching_headers: test
semantic_review::constructor_tests::outer_and_nested_constructor_candidates_require_explicit_resolution_and_retain_both_drafts: test
semantic_review::constructor_tests::port_group_companions_typed_owner_context_and_direction_restrictions_are_explicit: test
semantic_review::constructor_tests::reverse_existing_typed_port_reviews_keep_or_candidate_legacy_without_permitting_typed_oa_write: test
semantic_review::constructor_tests::scenario_use_group_takes_typed_binding_references_and_preserves_source_text_both_directions: test
semantic_review::keyed_rows_tests::annotation_address_browser_descends_qualified_fields_without_changing_rows: test
semantic_review::keyed_rows_tests::annotation_observations_keep_uuid_shaped_expression_text_in_both_sides_and_history: test
semantic_review::keyed_rows_tests::batch_keyed_rows_compare_exact_target_slots_and_retain_independent_values: test
semantic_review::keyed_rows_tests::binding_choices_separate_reused_keys_from_local_lifelines: test
semantic_review::keyed_rows_tests::binding_local_picker_follows_a_candidate_parent_before_the_review_is_valid: test
semantic_review::keyed_rows_tests::binding_take_requires_local_correspondence_and_candidate_rejects_wrong_scenario: test
semantic_review::keyed_rows_tests::independent_rows_keep_take_candidate_match_core_and_preserve_siblings_both_directions: test
semantic_review::keyed_rows_tests::keyed_recovery_retains_raw_rows_and_staged_pairs_both_directions_without_applying: test
semantic_review::keyed_rows_tests::keyed_row_drafts_retain_expression_local_and_presence_across_decisions_and_staging: test
semantic_review::keyed_rows_tests::keyed_rows_distinguish_unpaired_source_from_explicit_absence_and_require_exact_reset: test
semantic_review::keyed_rows_tests::multiple_new_rows_compose_in_empty_collections_using_destination_key_order: test
semantic_review::keyed_rows_tests::row_review_apply_preserves_exact_source_and_semantic_history_through_undo_redo: test
semantic_review::keyed_tests::deleted_member_source_observation_removes_only_mapped_membership_both_directions: test
semantic_review::keyed_tests::exact_literal_new_rows_and_removals_commit_both_directions_without_default_loss: test
semantic_review::keyed_tests::exact_reset_only_is_one_history_source_transaction_and_undo_redo_both_directions: test
semantic_review::keyed_tests::function_port_members_use_existing_typed_choices_and_preserve_oa_legacy: test
semantic_review::keyed_tests::historical_one_sided_pair_migration_requires_exact_reset_and_explicit_overlap_resolution: test
semantic_review::keyed_tests::invalid_literal_removal_and_unselected_scalar_buffers_are_retained_and_repairable: test
semantic_review::keyed_tests::member_identity_labels_and_new_tabs_preserve_exact_names_and_deleted_keys: test
semantic_review::keyed_tests::reset_precedes_equal_constructor_candidate_and_preserves_independent_literal_draft: test
semantic_review::keyed_tests::staging_removal_and_obsolete_reset_recovery_keep_other_decisions_and_raw_presence: test
semantic_review::keyed_tests::stale_or_source_failed_reset_and_membership_apply_retain_exact_choices: test
semantic_review::keyed_tests::unordered_members_keep_take_candidate_preserve_other_rows_both_directions: test
semantic_review::keyed_tests::unsupported_independent_families_and_missing_identities_do_not_gain_edit_authority: test
semantic_review::message_kind_tests::message_group_candidate_closed_kinds_are_core_validated_in_both_directions: test
semantic_review::message_kind_tests::message_group_candidate_timer_switches_preserve_both_drafts_and_overlap_is_explicit: test
semantic_review::message_kind_tests::message_group_initial_equal_take_acknowledges_only_kind_and_checks_authored_timer_agreement: test
semantic_review::message_kind_tests::message_group_keep_historical_switch_retires_timer_and_completed_no_switch_rejects: test
semantic_review::message_kind_tests::message_group_rejects_protected_edits_stale_plan_and_source_failure_without_losing_timer: test
semantic_review::message_kind_tests::message_group_reply_and_reference_take_require_explicit_call_mapping_both_directions: test
semantic_review::message_kind_tests::message_group_take_full_timer_and_scalar_candidate_are_one_source_history_change_both_directions: test
semantic_review::message_kind_tests::message_group_timer_does_not_erase_exchange_without_its_own_selected_decision: test
semantic_review::ordered_tests::ambiguous_order_preserves_local_member_and_requires_explicit_candidate_positions: test
semantic_review::ordered_tests::historical_pair_restore_uses_exact_member_keys_and_never_zips_order_observations: test
semantic_review::ordered_tests::order_take_preserves_destination_only_positions_and_order_alone_cannot_add_members: test
semantic_review::ordered_tests::ordered_membership_choices_stage_exact_pairs_in_all_owner_shapes: test
semantic_review::ordered_tests::ordered_presence_keep_take_candidate_remove_only_selected_entry_and_order_take_reorders_only: test
semantic_review::ordered_tests::ordered_review_apply_is_exact_source_history_transaction_with_reopen_and_undo_redo: test
semantic_review::ordered_tests::ordered_take_uses_unique_anchors_and_matches_core_with_unrelated_candidate_both_directions: test
semantic_review::ordered_tests::raw_order_survives_membership_changes_decisions_and_recovery_until_explicit_reconcile: test
semantic_review::ordered_tests::several_incoming_members_follow_source_order_despite_independent_identity_sorting: test
semantic_review::recovery::tests::raw_scalar_and_closed_constructor_drafts_recover_against_exact_model_only: test
semantic_review::recovery::tests::version_one_without_orders_restores_raw_intent_and_replans_without_execution: test
semantic_review::source7_tests::contextual_incident_leaf_keep_allows_path_change_but_conflicts_with_changed_leaf_both_directions: test
semantic_review::source7_tests::reverse_operation_omission_gui_requires_raw_rationale_and_matches_one_core_batch_after_recovery: test
semantic_review::source7_tests::semantic_operation_virtual_none_candidate_uses_exact_allocation_and_preserves_accepted_bytes: test
semantic_review::tests::candidate_mixed_with_reference_take_uses_typed_correspondence_not_text_guessing: test
semantic_review::tests::deselected_invalid_candidate_is_retained_but_does_not_poison_another_selected_scalar: test
semantic_review::tests::explicit_trace_selection_updates_only_that_history: test
semantic_review::tests::first_equal_constructor_acknowledges_only_kind_and_allows_independent_leaves: test
semantic_review::tests::independent_review_clear_bound_ignores_retained_invalid_other_facet: test
semantic_review::tests::independent_review_keyed_fact_titles_keep_live_deleted_and_qualified_identity: test
semantic_review::tests::inherited_annotation_impact_requires_exact_acceptance_and_edits_clear_approval: test
semantic_review::tests::invalid_numeric_draft_and_protected_edits_retain_workflow_and_source: test
semantic_review::tests::read_only_structured_facts_and_partial_rollup_are_honest: test
semantic_review::tests::relation_candidates_preserve_endpoints_and_combine_selected_roles_and_bounds: test
semantic_review::tests::scalar_keep_take_candidate_commit_exact_source_and_history_in_both_directions: test
semantic_review::tests::scoped_literal_list_edits_preserve_unfinished_values_and_other_facet_buffers: test
semantic_review::tests::stale_plan_and_source_writeback_failure_do_not_lose_decisions_or_history: test
semantic_review::tests::state_kind_scalar_uses_typed_candidate_and_core_validation: test
semantic_review::view::reserved_artifact_tests::reserved_artifact_facet_and_reference_labels_survive_recovery_without_calling_it_deleted: test
source_navigation::interaction::tests::captured_find_click_invalidates_without_app_message_and_preserves_focus: test
source_navigation::interaction::tests::focus_rechecks_clock_between_inspection_and_application_and_missing_target_is_inert: test
source_navigation::interaction::tests::raw_navigation_inputs_advance_but_passive_geometry_does_not_and_exhaustion_refuses: test
source_navigation::query::tests::comments_strings_and_comment_gap_are_not_navigation_hits: test
source_navigation::query::tests::detached_alias_and_identity_collisions_never_auto_select: test
source_navigation::query::tests::dirty_but_parseable_text_has_current_names_and_no_validated_fallback: test
source_navigation::query::tests::exact_multifile_unicode_crlf_definition_and_repeated_lexical_references: test
source_navigation::query::tests::exact_snapshot_readback_rejects_same_key_byte_membership_and_evidence_changes: test
source_navigation::query::tests::include_cycle_depth_and_aggregate_edges_are_explicit_partial_outcomes: test
source_navigation::query::tests::invalid_include_syntax_never_borrows_the_old_reachable_file_set: test
source_navigation::query::tests::keyword_alias_and_loaded_path_case_collisions_use_reviewed_index_rules: test
source_navigation::query::tests::large_display_name_cannot_escape_the_owned_row_string_budget: test
source_navigation::query::tests::missing_and_noncanonical_authored_ids_remain_draft_spans_without_generated_anchors: test
source_navigation::query::tests::missing_include_partial_scope_does_not_resurrect_witness_text: test
source_navigation::query::tests::omitted_rows_are_counted_before_result_allocation_and_never_confer_uniqueness: test
source_navigation::query::tests::owned_request_checks_raw_limits_immediately_and_extracts_only_on_worker: test
source_navigation::query::tests::owned_request_moves_exact_text_into_worker_snapshot_and_matches_sync_results: test
source_navigation::query::tests::owned_validation_proof_preserves_full_witness_count_and_partial_scope: test
source_navigation::query::tests::raw_aggregate_limits_refuse_before_outline_or_copied_snapshot: test
source_navigation::query::tests::sole_detached_candidate_and_unapplied_equal_bytes_require_choice: test
source_navigation::query::tests::token_declaration_and_live_reference_limits_are_aggregate_not_per_file: test
source_navigation::query::tests::validation_witness_must_match_entry_and_complete_included_file_set: test
source_navigation::symbols::tests::admitted_unicode_path_budget_keeps_original_policy_after_single_fold: test
source_navigation::symbols::tests::comment_separated_reference_keeps_crlf_unicode_and_disjoint_hit_spans: test
source_navigation::symbols::tests::declaration_order_and_duplicate_roles_refuse_instead_of_corrupting_hit_search: test
source_navigation::symbols::tests::detached_uuid_clone_disables_anchor_even_for_included_query: test
source_navigation::symbols::tests::duplicate_aliases_are_candidates_without_false_reference_attribution: test
source_navigation::symbols::tests::every_budget_admits_boundary_and_returns_no_index_one_below: test
source_navigation::symbols::tests::header_metadata_must_match_current_token_boundaries_and_authored_id: test
source_navigation::symbols::tests::incomplete_draft_is_lexical_and_error_token_does_not_leak_references: test
source_navigation::symbols::tests::legal_keyword_classified_alias_is_not_discarded: test
source_navigation::symbols::tests::missing_ids_produce_only_current_snapshot_locations_without_stabilization: test
source_navigation::symbols::tests::nested_declaration_extents_do_not_turn_body_text_into_definition_hits: test
source_navigation::symbols::tests::noncanonical_header_identity_cannot_enter_through_query_metadata: test
source_navigation::symbols::tests::path_identity_rejects_normalization_and_case_collisions: test
source_navigation::symbols::tests::query_header_admission_preserves_uppercase_and_json_escape_bytes: test
source_navigation::symbols::tests::repeated_live_uses_are_distinct_and_strings_comments_history_are_excluded: test
source_navigation::symbols::tests::reused_alias_cannot_steal_old_identity_and_old_locations_are_stale: test
source_navigation::symbols::tests::scope_provenance_and_detached_alias_collision_are_explicit: test
source_navigation::symbols::tests::stopped_outline_is_not_a_successful_empty_query: test
source_navigation::symbols::tests::truncated_or_gapped_tokens_refuse_even_when_project_scope_is_partial: test
source_navigation::symbols::tests::unicode_path_collisions_match_core_lowercase_policy: test
source_navigation::tests::search_uses_utf8_columns_wraps_and_refreshes_after_edits: test
source_tree::tests::active_scroll_offset_uses_the_visible_order_and_retains_ancestor_context: test
source_tree::tests::collapsed_folders_retain_active_dirty_and_diagnostic_markers: test
source_tree::tests::deep_paths_build_expand_and_drop_on_a_small_stack: test
source_tree::tests::detached_buffers_keep_paths_and_only_clean_buffers_are_closable: test
source_tree::tests::exact_unicode_spaces_and_file_folder_name_collisions_are_not_normalized: test
source_tree::tests::folders_are_compact_and_sorted_before_files_without_losing_duplicate_basenames: test
source_workspace::tests::draft_history_budget_covers_inactive_files_without_discarding_drafts: test
source_workspace::tests::fresh_session_cannot_reuse_a_retained_buffer_generation: test
source_workspace::tests::navigation_revision_wrap_cannot_reuse_an_old_workspace_key: test
source_workspace::tests::navigation_scope_changes_invalidate_without_changing_unchanged_positions: test
source_workspace::tests::navigation_versions_distinguish_reopened_recovered_and_changed_drafts: test
source_workspace::tests::switching_retains_invalid_drafts_and_independent_history: test
tests::actor_port_creation_updates_containment_and_locate_reveals_its_owner: test
tests::adding_bend_between_close_ports_stays_outside_owner_clearance: test
tests::behavior_and_data_authoring_do_not_place_nodes_in_unrelated_architecture_views: test
tests::bidirectional_transition_ui_commits_once_and_preserves_other_diagrams: test
tests::child_work_does_not_invent_unallocated_or_mixed_performers: test
tests::child_work_preserves_allocated_context_and_atomic_history: test
tests::child_work_transfers_leaf_roles_without_fabricating_responsibilities: test
tests::counterpart_creation_focuses_visible_target_and_reuse_keeps_views: test
tests::creation_from_capabilities_routes_work_to_architecture_and_folded_allocation_inserts_below_existing_work: test
tests::dragging_keeps_semantic_selection_and_same_node_remains_editable: test
tests::escaped_string_mode_preserves_exact_control_characters: test
tests::every_demo_record_has_a_lossless_graphical_draft: test
tests::explicit_relationship_builder_never_mutates_on_preview: test
tests::explorer_and_creation_selection_follow_their_own_placement: test
tests::fit_adapts_to_canvas_returning_after_help_but_preserves_manual_navigation: test
tests::fit_uses_measured_canvas_bounds_and_preserves_them_on_open: test
tests::focused_explorer_follows_reparenting_without_changing_identity: test
tests::graphical_rename_keeps_aliases_and_references_and_undo: test
tests::identity_property_change_is_atomic_and_rewrites_all_live_references: test
tests::invalid_numeric_draft_survives_navigation_save_and_help: test
tests::invalid_save_and_continue_returns_to_repairable_draft: test
tests::malformed_source_preserves_model_and_is_recoverable: test
tests::manual_trace_requires_target_and_selection_normalizes_creation_kind: test
tests::mission_capability_authoring_is_contextual_atomic_and_text_equivalent: test
tests::modal_owns_background_commands_and_shortcuts: test
tests::nested_allocation_insertion_reflows_sibling_subtrees_and_preserves_fold_state: test
tests::opening_and_creating_models_preserve_the_actual_window_size_for_fit: test
tests::opening_legacy_source_surfaces_report_without_modifying_original_bytes: test
tests::pending_source_prevents_property_draft_collision_and_preserves_both_if_present: test
tests::placement_identity_edit_then_drag_and_diagram_identity_then_arrange: test
tests::placement_relocation_follows_cross_layer_traceability_view: test
tests::property_enum_and_optional_reference_roundtrip: test
tests::reopening_canvas_for_a_modal_preserves_viewport_after_route_edits: test
tests::revealing_an_implicit_function_port_unfolds_its_visible_architecture_owner: test
tests::routing_actions_are_atomic_guarded_and_fit_the_authored_detour: test
tests::selecting_current_constructors_preserves_payloads: test
tests::source_find_navigates_an_invalid_draft_without_applying_or_losing_it: test
tests::source_navigation_waits_for_editor_layout_and_cancels_on_edit: test
tests::system_only_models_open_the_populated_perspective: test
tests::transition_resolutions_belong_to_the_effective_target_and_kind: test
view_copy::tests::duplicate_retains_ports_routes_options_and_artifact_claims_with_exact_undo_redo: test
view_copy::tests::duplicate_state_view_preserves_machine_nesting_and_collapse_with_unique_aliases: test
view_copy::tests::missing_view_does_not_propose_an_empty_replacement: test
views::source_tests::source_editor_windows_menu_payload_is_inert_but_space_and_altgr_still_edit: test
views::source_tests::source_header_keeps_editor_bounds_stable_through_lint_and_find_rebuilds: test
views::source_tests::source_header_remains_scrollable_and_preserves_offset_across_diagnostic_refresh: test
views::tests::short_never_splits_retained_extended_graphemes: test
views::tests::short_preserves_ascii_cjk_and_whitespace_policy: test
views::tests::short_preserves_empty_and_small_limit_policy: test
views::tests::short_preserves_native_lifeline_clusters_at_cutoff: test
views::traceability::tests::traceability_browsing_retains_invalid_property_draft_and_existing_select_guard: test
views::traceability::tests::traceability_filter_reaches_artifacts_after_68_traces_and_searches_all_metadata: test
workflow::communication::tests::communication_requires_two_explicit_ports_and_recovers_the_partial_choice: test
workflow::port_authoring_tests::boundary_picker_matches_exact_commands_across_contracts_and_ownership: test
workflow::port_authoring_tests::boundary_picker_recomputes_for_unoriented_reverse_endpoints_without_relaxing_contracts: test
workflow::port_authoring_tests::duplicate_port_names_show_owner_contract_and_unique_alias: test
workflow::port_authoring_tests::fresh_functions_are_actual_picker_targets_and_plan_enables_apply: test
workflow::port_authoring_tests::generic_component_port_connection_keeps_its_endpoint_and_direction: test
workflow::port_authoring_tests::ordinary_standard_connections_default_unoriented_and_new_roles_exclude_legacy: test
workflow::recovery::tests::incomplete_relationship_and_trace_recover_raw_fields_and_reject_changed_model: test
workflow::recovery::tests::transition_recovery_replans_typed_request_without_persisted_commands: test
workflow::transition_tests::basic_transition_boundary_choice_is_required_without_an_inferred_system: test
workflow::transition_tests::basic_transition_creates_overview_when_existing_views_cannot_show_result: test
workflow::transition_tests::basic_transition_explicit_destination_appends_below_existing_bounds_and_is_one_source_edit: test
workflow::transition_tests::basic_transition_invalid_explicit_destination_retains_choice_and_refuses: test
workflow::transition_tests::basic_transition_reconcile_keeps_existing_selected_view_placement_and_route_exact: test
workflow::transition_tests::basic_transition_skips_lowest_uuid_state_view_and_preserves_oa: test
918 tests, 0 benchmarks
@@ -0,0 +1,52 @@
param([Parameter(Mandatory=$true)][ValidateSet('check','list','focused','tests','clippy','build','timing')][string]$Stage)
$ErrorActionPreference = 'Stop'
$taskWorkspace = 'C:\Users\User\Documents\Git\ARCADIA-Studio\.local\navigation-rename-union-ytr83r-20260912'
Push-Location -LiteralPath $taskWorkspace
try {
. 'C:\Users\User\Documents\Git\ARCADIA-Studio\.local\toolchain\env.ps1'
$env:CARGO_TARGET_DIR = 'C:\Users\User\Documents\Git\ARCADIA-Studio\target'
$taskArgs = switch ($Stage) {
'check' { @('check','-p','oa-desktop','--bin','arcadia-studio','--tests','--locked','--offline') }
'list' { @('test','-p','oa-desktop','--bin','arcadia-studio','--locked','--offline','--','--list') }
'focused' { @('test','-p','oa-desktop','--bin','arcadia-studio','--locked','--offline','--','app::source_rename::tests::navigation_union_tests::','app::source_rename::tests::preview_scroll_tests::','--test-threads=1') }
'tests' { @('test','-p','oa-desktop','--all-targets','--locked','--offline') }
'clippy' { @('clippy','-p','oa-desktop','--all-targets','--locked','--offline','--','-D','warnings') }
'build' { @('build','-p','oa-desktop','--bin','arcadia-studio','--locked','--offline') }
'timing' { @('test','-p','oa-desktop','--bin','arcadia-studio','--locked','--offline','--','accepted_release1_prepare_commit_sync_and_confirm_timing','--ignored','--nocapture','--test-threads=1') }
}
$taskLog = Join-Path $PSScriptRoot ($Stage+'.log')
$taskReceipt = Join-Path $PSScriptRoot ($Stage+'-receipt.json')
if ((Test-Path -LiteralPath $taskLog) -or (Test-Path -LiteralPath $taskReceipt)) { throw 'Refusing to replace existing gate evidence' }
$taskStart = [DateTime]::UtcNow.ToString('o')
$taskBase = git rev-parse HEAD
if ($LASTEXITCODE -ne 0) { throw 'Cannot identify source commit' }
$taskInputs = Get-Content -Raw -LiteralPath (Join-Path $PSScriptRoot 'inputs-complete-before.json') | ConvertFrom-Json
if ($taskInputs.base -ne $taskBase -or $taskInputs.workspace -ne $taskWorkspace) { throw 'Captured source does not match the pinned gate checkout' }
if ($Stage -eq 'tests') {
$taskListing = Get-Content -Raw -LiteralPath (Join-Path $PSScriptRoot 'list-receipt.json') | ConvertFrom-Json
if (-not $taskListing.selectionValid -or $taskListing.cargoExitCode -ne 0 -or $taskListing.base -ne $taskBase) { throw 'Full gate requires valid listing of this source commit' }
}
& cargo @taskArgs 2>&1 | Tee-Object -FilePath $taskLog
$taskExit = $LASTEXITCODE
$taskOutput = Get-Content -Raw -LiteralPath $taskLog
$taskSelectionValid = $true
$taskListed = $null
$taskUnionCount = $null
$taskScrollCount = $null
if ($Stage -eq 'list') {
$taskListed = [regex]::Matches($taskOutput, '(?m)^[^\r\n]+: test\r?$').Count
$taskUnionCount = [regex]::Matches($taskOutput, '(?m)^app::source_rename::tests::navigation_union_tests::[^\r\n]+: test\r?$').Count
$taskScrollCount = [regex]::Matches($taskOutput, '(?m)^app::source_rename::tests::preview_scroll_tests::[^\r\n]+: test\r?$').Count
$taskSelectionValid = $taskListed -ge 905 -and $taskUnionCount -eq 6 -and $taskScrollCount -eq 4
}
if ($Stage -eq 'focused') { $taskSelectionValid = $taskOutput -match 'test result: ok\. 10 passed; 0 failed; 0 ignored;' }
if ($Stage -eq 'timing') { $taskSelectionValid = $taskOutput -match 'test result: ok\. 1 passed; 0 failed; 0 ignored;' }
if ($Stage -eq 'tests') {
$taskExpectedPassed = $taskListing.listedTests - 3
$taskSelectionValid = $taskOutput -match ('test result: ok\. '+$taskExpectedPassed+' passed; 0 failed; 3 ignored;')
}
[ordered]@{command=('cargo '+($taskArgs -join ' '));workspace=$taskWorkspace;startUtc=$taskStart;endUtc=[DateTime]::UtcNow.ToString('o');base=$taskBase;cargoExitCode=$taskExit;listedTests=$taskListed;listedUnionTests=$taskUnionCount;listedScrollTests=$taskScrollCount;selectionValid=$taskSelectionValid} | ConvertTo-Json | Set-Content -LiteralPath $taskReceipt -Encoding utf8
if ($taskExit -ne 0) { exit $taskExit }
if (-not $taskSelectionValid) { throw 'Selected test count or passing result differs from the explicit expectation' }
exit 0
} finally { Pop-Location }
@@ -0,0 +1 @@
* -text -whitespace
@@ -0,0 +1,30 @@
# Native navigation/rename union, a49b0ec
This preserves one closed Windows native run of `a49b0ec7ac4538a372139175386a881645c1a59e`, plus its independent review. It supports a bounded pass for the observed rename, editing recovery, two saved-diagram destinations and persistence sequence. It does not establish full feature or release acceptance.
PID 1352 ran from 2026-09-13T03:07:50.6077079Z until the observed normal exit 0 at 03:29:37.8035143Z. The private copied executable was 115,379,712 bytes, SHA-256 `d169a42692d2822a6e9dcd1e6181766f4a178e15ae2610763200da9bbb814ddf`. Launch used a private profile and unrelated working directory. Both log files are empty. The executable and DLL remain private and are not uploaded here; their exact hashes and sizes are preserved in `input-manifest.json`. Historical preparation status is superseded by `launch.json` and `normal-close.json`, not rewritten.
## Observed sequence and limits
`action-observations.json` records the parent's actual inputs and 44 checkpoint observations. The original JPEGs are in `captures.zip`; matching JSON metadata is both in the ZIP and directly in `captures/`. All captures are 1442×932. Checkpoints are not a continuous recording.
- The six-file schema 3 seed was imported and explicitly saved as the schema 7 baseline before Rename. Rename comparisons use `baseline/`, so migration changes are not attributed to Rename.
- Actual Preview scrolling, full Details, return to Preview and renewed manual scrolling are visible in captures 13–17. Return showed the first preview page at its top; this does not demonstrate retention of the prior scroll offset or a between-frame stale-reset race.
- The recorded modal probes were **F12 while Rename was open** (18) and **F2 while the ready Show in diagrams chooser was open** (21). No Show in diagrams attempt was injected while Rename covered its button. This is not native coverage of both Rename/diagram-chooser admission orders; deterministic App tests cover other orders and queued completions.
- Confirm selected the renamed token in the original editor (25). Immediate typing replaced it with `assess_report_probe` without prior manual refocus (26). Text Undo restored `assess_report_union` (27). The first navigation attempt then produced the truthful no-target Definitions panel (28); explicit caret refocus (29) preceded the two-destination chooser (30). The capture 28 filename is historical and does not mean a successful chooser.
- Settled functional-containment and system-boundary views (33, 37) visibly selected Assess report with alias `assess_report_union` and unchanged UUID `00000000-0000-4000-8000-000000000403`.
- Recorded one model Undo plus Save restored all six baseline files; one model Redo plus Save restored the expected renamed files. Reopen retained the alias (44), and passive Save changed no expected bytes (45).
Capture 03 is absent: two dialog capture timeouts and unsuccessful accessibility actions were followed by Alt+n and visible keyboard recovery. No replacement image was fabricated. Most accessibility records are null. No native loading-chooser timing, worker race, fast Details toggle, small-window/large-project evaluation, broad accessibility or camera/layout acceptance follows.
## Source oracle and archival verification
The accepted snapshot, final `fixture/`, and independently generated compatible CLI result each equal the migrated baseline with exactly six whole-word `assess_report` → `assess_report_union` substitutions: four in `sa/reporting.arcadia`, two in `views.arcadia`. Every other byte, including the four other files, matches. Cancel and confirmed-unsaved records preserve baseline disk bytes; Undo/Redo/reopen checks record their corresponding exact six-file states.
The CLI oracle preserves six successful invocations, stable before/after executable hash, zero errors and eleven unchanged warning identities/messages. This is source parity through a compatible independent CLI rename command, **not** a direct serialization comparison of the desktop's full runtime Project. Its raw commands, stdout/stderr, inputs and receipts are in `oracle-model-equivalence-20260913/`.
The archivist checked all 15 immutable native inputs, identical before/after build manifests and all 577 current frozen build inputs, every original JPEG hash/size/MIME, all 44 action mappings, every one of 88 uncompressed ZIP entries, six source comparisons and the CLI receipts/diagnostic sets. All 120 copied raw files and the exact independent-review bytes matched their originals. The corrected action-log height is bound to the final original bytes. `verification.json` and `capture-manifest.json` record these checks; `report.json` inventories archive files by SHA-256 and size, excluding itself. The archivist also inspected the original negative capture 28; the independent reviewer inspected the representative originals listed in `independent-review.md`.
`archive.ps1` records the executable archival checks. It takes `-Original <closed native evidence directory> -Review <original review.md>` and refuses to overwrite copied evidence. It is intended for a fresh sibling archival destination with the original private package and frozen source checkout still available. Original absolute paths remain provenance, not portable executable locations. Archival work injected no native input and reran no compiler or tests.
The matching a49 strict/build/31-usage/one-timing evidence is already preserved in [the separate gate archive](../navigation-rename-a49-gates-20260913/README.md); the older full 951-test result belongs to its earlier source, not this native run. This archive makes no combined-659, native WGPU, whole-project, issue-closure or release claim.
@@ -0,0 +1,42 @@
{
"utc": "2026-09-13T03:24:44.302Z",
"entry": "project.arcadia",
"files": [
{
"path": "oa.arcadia",
"edits": 0,
"acceptedExact": true,
"diskBaseline": true
},
{
"path": "project.arcadia",
"edits": 0,
"acceptedExact": true,
"diskBaseline": true
},
{
"path": "views.arcadia",
"edits": 2,
"acceptedExact": true,
"diskBaseline": true
},
{
"path": "sa/assurance.arcadia",
"edits": 0,
"acceptedExact": true,
"diskBaseline": true
},
{
"path": "sa/participants.arcadia",
"edits": 0,
"acceptedExact": true,
"diskBaseline": true
},
{
"path": "sa/reporting.arcadia",
"edits": 4,
"acceptedExact": true,
"diskBaseline": true
}
]
}
@@ -0,0 +1,197 @@
{
"recordedUtc": "2026-09-13T03:35:14.485Z",
"source": "a49b0ec7ac4538a372139175386a881645c1a59e",
"method": "Root-curated record of actual sky tool inputs and inspected original captures; checkpoint captures are not a continuous recording.",
"windowPixels": {
"width": 1442,
"height": 932,
"source": "All44 original capture metadata records agree"
},
"observations": [
{
"capture": "captures/01-home.json",
"observation": "Activated returned Studio window; observed fresh isolated Home."
},
{
"capture": "captures/02-open-dialog.json",
"observation": "Clicked Home Open model at411,278; parent capture showed modal file picker."
},
{
"capture": "captures/04-dialog-parent-recovery.json",
"observation": "Dialog capture timed out twice. Accessibility click48 failed coordinate geometry; set_value48 failed CacheRequest. Alt+n sent through returned dialog; fresh parent capture visibly showed caret in File name."
},
{
"capture": "captures/05-fixture-path-entered.json",
"observation": "Typed exact private fixture/project.arcadia path into visibly focused File name; parent capture verified full path."
},
{
"capture": "captures/06-fixture-open-request.json",
"observation": "Return in returned Open dialog loaded six-file project; observed schema3→7 migration notice and dirty state."
},
{
"capture": "captures/07-save-migrated-baseline.json",
"observation": "Clicked Save all; all changes saved. Copied six physical files to immutable baseline before rename."
},
{
"capture": "captures/08-text-open.json",
"observation": "Clicked Textual model."
},
{
"capture": "captures/09-views-source.json",
"observation": "Clicked views.arcadia in source tree; actual source selected."
},
{
"capture": "captures/10-second-reference-context.json",
"observation": "Clicked editor then Ctrl+End; lower declarations visible."
},
{
"capture": "captures/11-rename-open.json",
"observation": "Clicked second assess_report reference in views line61 then F2; Rename identified sa_function Assess report."
},
{
"capture": "captures/12-rename-target-entered.json",
"observation": "Ctrl+A selected alias input; typed assess_report_union."
},
{
"capture": "captures/13-rename-preview.json",
"observation": "Clicked Preview; approved2files6changedlines, file1/2 sa/reporting, hunk1/3,rows1–7/7; body visibly overflowed."
},
{
"capture": "captures/14-preview-manual-scroll.json",
"observation": "Scrolled body430 at937,620; later context/changed rows visible and footer/input remained reachable."
},
{
"capture": "captures/15-preview-full-details.json",
"observation": "Clicked Full details; origin views.arcadia and displayed sa/reporting.arcadia retained."
},
{
"capture": "captures/16-return-preview.json",
"observation": "Clicked Preview pane; same approved file/hunk/rows, mounted body returned to top (permitted)."
},
{
"capture": "captures/17-preview-scroll-after-details.json",
"observation": "Scrolled430 again; later rows visible."
},
{
"capture": "captures/18-rename-rejects-definition.json",
"observation": "Pressed F12 while Rename open; same modal/approval/scroll remained. This was Definition, not Show in diagrams."
},
{
"capture": "captures/19-rename-cancel.json",
"observation": "Pressed Escape once; Text restored, all changes saved, all6disk files byte-identical to baseline."
},
{
"capture": "captures/20-usage-chooser.json",
"observation": "Clicked Show in diagrams from same reference; ready2-destination chooser observed. Loading not observed."
},
{
"capture": "captures/21-usage-rejects-rename.json",
"observation": "Pressed F2 while ready chooser open; chooser unchanged, no Rename modal."
},
{
"capture": "captures/22-usage-cancel.json",
"observation": "Escape once dismissed chooser."
},
{
"capture": "captures/23-fresh-rename-after-chooser.json",
"observation": "F2 opened fresh Rename for correct alias."
},
{
"capture": "captures/24-confirmation-preview.json",
"observation": "Appended _union in alias input and Preview;2files6changedlines."
},
{
"capture": "captures/25-rename-confirmed-focus.json",
"observation": "Clicked Rename alias; correct second reference selected in focused editor, unsaved accepted model."
},
{
"capture": "captures/26-immediate-text-probe.json",
"observation": "Without refocusing/clicking, typed assess_report_probe; exactly selected reference changed; expected unknown-reference draft diagnostic."
},
{
"capture": "captures/27-text-undo-preserves-rename.json",
"observation": "Ctrl+Z restored accepted assess_report_union and cleared draft error; all6disk files still baseline. Caret/viewport did not retain selected alias for immediate lookup."
},
{
"capture": "captures/28-renamed-usage-chooser.json",
"observation": "First Show in diagrams after Undo text opened no-target Definitions panel instead of chooser; this negative result is preserved."
},
{
"capture": "captures/29-restored-reference-refocused.json",
"observation": "Closed no-target panel, clicked inside restored alias at633,864."
},
{
"capture": "captures/30-renamed-two-destinations.json",
"observation": "Clicked Show in diagrams; correct renamed alias and2saved destinations displayed."
},
{
"capture": "captures/31-functional-destination.json",
"observation": "Chose functional-containment group; exact one node representation displayed."
},
{
"capture": "captures/32-functional-reveal.json",
"observation": "Chose Assess report node; readable125% functional-containment target and ID403/name/renamedalias in properties."
},
{
"capture": "captures/33-functional-settled.json",
"observation": "Fresh capture after independent work; target remained visible/readable."
},
{
"capture": "captures/34-text-return-first-view.json",
"observation": "Returned Text; source position retained."
},
{
"capture": "captures/35-system-boundary-choice.json",
"observation": "Reopened chooser and selected system-boundary group."
},
{
"capture": "captures/36-system-boundary-reveal.json",
"observation": "Chose Assess report node; readable125% system-boundary target and ID403/name/renamedalias in properties."
},
{
"capture": "captures/37-system-boundary-settled.json",
"observation": "Fresh settled capture; full accepted SourceBundle from isolated recovery independently equals6exact substitutions and disk still baseline."
},
{
"capture": "captures/38-one-model-undo.json",
"observation": "Returned Text and clicked Undo model once; all changes saved, Undo disabled and Redo available."
},
{
"capture": "captures/39-save-after-undo.json",
"observation": "Clicked Save all; all6physicalfiles exactly baseline."
},
{
"capture": "captures/40-one-model-redo.json",
"observation": "Clicked Redo model once; accepted rename dirty again."
},
{
"capture": "captures/41-save-redone-rename.json",
"observation": "Save all; all6files exactly expected, onlyreporting4/views2 substitutions."
},
{
"capture": "captures/42-home-for-reopen.json",
"observation": "Home shows isolated fixture recent path."
},
{
"capture": "captures/43-native-reopen.json",
"observation": "Clicked Recent Open, not Continue editing; status confirms source opened,6files, no migration dirty state."
},
{
"capture": "captures/44-persisted-alias-after-reopen.json",
"observation": "Text→views→Ctrl+End shows persisted renamed reference; modelUndo/Redo disabled after fresh open."
},
{
"capture": "captures/45-passive-save-after-reopen.json",
"observation": "Save all; everyphysicalsourcebyte still equals expected."
}
],
"limitations": [
"No native between-frame fast toggle or held queued operation injection; deterministic widget/App tests cover those races.",
"No native loading chooser state or underlying Show in diagrams click during Rename; underlying control was covered.",
"No small-window or large-project native run in this session.",
"No direct full-Project runtime serialization comparison; complete SourceBundle/disk comparison and independent compatible CLI command parity are recorded.",
"Native screenshot capture for the file dialog failed; parent-window capture plus keyboard succeeded.",
"Ctrl+Z restored text but required explicit alias refocus before diagram lookup; negative no-target panel retained."
],
"close": "close-request.json and normal-close.json bind normal title-bar close with exit0, emptylogs and unchanged immutable launch inputs."
}
@@ -0,0 +1,92 @@
param([Parameter(Mandatory)][string]$Original, [Parameter(Mandatory)][string]$Review)
$ErrorActionPreference = 'Stop'
$destination = $PSScriptRoot
$Original = (Resolve-Path -LiteralPath $Original).Path
function Json($path) { Get-Content -LiteralPath $path -Raw | ConvertFrom-Json }
function Hash($path) { (Get-FileHash -LiteralPath $path -Algorithm SHA256).Hash.ToLowerInvariant() }
function AssertFile($root, $record) {
$path = Join-Path $root $record.path
if ((Get-Item -LiteralPath $path).Length -ne $record.bytes -or (Hash $path) -ne $record.sha256) { throw "File mismatch: $path" }
}
$inputRecord = Json "$Original/input-manifest.json"
foreach ($file in $inputRecord.immutable_files) { AssertFile $Original $file }
if ($inputRecord.immutable_files.Count -ne 15) { throw 'Expected 15 immutable inputs' }
$launch = Json "$Original/launch.json"
$close = Json "$Original/normal-close.json"
if ($launch.manifest_sha256 -ne (Hash "$Original/input-manifest.json") -or $launch.script_sha256 -ne (Hash "$Original/launch.ps1") -or $launch.binary_sha256 -ne $inputRecord.binary_copy_sha256 -or $launch.pid -ne $close.pid -or $launch.started_utc -ne $close.started_utc) { throw 'Launch binding mismatch' }
$before = Json "$Original/evidence/inputs-complete-before.json"
$after = Json "$Original/evidence/inputs-complete-after.json"
if ($before.count -ne 577 -or $after.count -ne 577 -or ($before.files | ConvertTo-Json -Depth 8 -Compress) -cne ($after.files | ConvertTo-Json -Depth 8 -Compress)) { throw 'Build input manifest mismatch' }
foreach ($file in $after.files) { AssertFile $after.workspace $file }
if ($close.pid -ne 1352 -or $close.exit_code -ne 0 -or -not $close.immutable_inputs_unchanged) { throw 'Unexpected closure' }
foreach ($file in Get-ChildItem -LiteralPath "$Original/logs" -File) { if ($file.Length -ne 0) { throw 'Expected empty logs' } }
$captures = @(Get-ChildItem -LiteralPath "$Original/captures" -Filter '*.json' -File)
if ($captures.Count -ne 44) { throw 'Expected 44 capture records' }
foreach ($capture in $captures) {
foreach ($screen in (Json $capture.FullName).screenshots) {
AssertFile $Original $screen
$bytes = [IO.File]::ReadAllBytes((Join-Path $Original $screen.path))
if ($screen.mime -ne 'image/jpeg' -or $bytes[0] -ne 255 -or $bytes[1] -ne 216 -or $bytes[2] -ne 255) { throw 'Unexpected capture format' }
}
}
$actions = Json "$Original/action-observations.json"
$actionNames = @($actions.observations.capture | Sort-Object)
$captureNames = @($captures | ForEach-Object { 'captures/' + $_.Name } | Sort-Object)
if (($actionNames -join "`n") -cne ($captureNames -join "`n")) { throw 'Action/capture membership differs' }
foreach ($kind in @('seed','baseline')) {
foreach ($file in (Json "$Original/$kind-manifest.json").files) { AssertFile "$Original/$kind" $file }
}
$snapshot = Json "$Original/snapshots/renamed-before-model-undo.json"
$sourceChecks = @()
foreach ($file in (Json "$Original/baseline-manifest.json").files) {
$baseline = [IO.File]::ReadAllText((Join-Path "$Original/baseline" $file.path))
$expected = [regex]::Replace($baseline, '\bassess_report\b', 'assess_report_union')
$edits = [regex]::Matches($baseline, '\bassess_report\b').Count
if ($snapshot.accepted.files.($file.path) -cne $expected) { throw "Snapshot mismatch: $($file.path)" }
foreach ($dir in @('fixture','oracle-model-equivalence-20260913/accepted','oracle-model-equivalence-20260913/command-renamed')) {
$actualBytes = [IO.File]::ReadAllBytes((Join-Path "$Original/$dir" $file.path))
$expectedBytes = [Text.UTF8Encoding]::new($false).GetBytes($expected)
if ([Convert]::ToBase64String($actualBytes) -cne [Convert]::ToBase64String($expectedBytes)) { throw "Source mismatch: $dir/$($file.path)" }
}
if ((Hash (Join-Path "$Original/baseline" $file.path)) -ne (Hash (Join-Path "$Original/oracle-model-equivalence-20260913/baseline" $file.path))) { throw 'CLI baseline mismatch' }
$sourceChecks += [ordered]@{path=$file.path; substitutions=$edits; snapshotAndFinalAndCliExact=$true}
}
if (($sourceChecks.substitutions | Measure-Object -Sum).Sum -ne 6) { throw 'Expected six substitutions' }
$cli = Json "$Original/oracle-model-equivalence-20260913/receipt.json"
if ($cli.commands.Count -ne 6 -or @($cli.commands | Where-Object exit_code -ne 0).Count -or $cli.cli_sha256_before -ne $cli.cli_sha256_after) { throw 'CLI receipt mismatch' }
$checks = @('check-baseline','check-accepted','check-command-copy') | ForEach-Object { Json "$Original/oracle-model-equivalence-20260913/$_.stdout.txt" }
foreach ($check in $checks) { if (@($check.diagnostics | Where-Object severity -eq 'error').Count -or @($check.diagnostics | Where-Object severity -eq 'warning').Count -ne 11) { throw 'Unexpected CLI diagnostics' } }
$diagnosticSets = @($checks | ForEach-Object { ,@($_.diagnostics | ForEach-Object { @($_.severity,$_.code,$_.object_id,$_.field,$_.message) -join '|' } | Sort-Object) })
foreach ($set in $diagnosticSets) { if (($set -join "`n") -cne ($diagnosticSets[0] -join "`n")) { throw 'Diagnostic identities/messages changed' } }
$copied = @()
$originalFiles = @(Get-ChildItem -LiteralPath $Original -File)
foreach ($dir in @('seed','baseline','fixture','snapshots','evidence','logs','oracle-model-equivalence-20260913')) { $originalFiles += @(Get-ChildItem -LiteralPath "$Original/$dir" -Recurse -File) }
$originalFiles += $captures
foreach ($file in $originalFiles) {
$relative = [IO.Path]::GetRelativePath($Original,$file.FullName).Replace('\','/')
$target = Join-Path $destination $relative
[IO.Directory]::CreateDirectory([IO.Path]::GetDirectoryName($target)) | Out-Null
if (Test-Path -LiteralPath $target) { throw "Do not overwrite archive: $target" }
Copy-Item -LiteralPath $file.FullName -Destination $target
if ((Hash $file.FullName) -ne (Hash $target)) { throw 'Copy mismatch' }
$copied += [ordered]@{path=$relative; bytes=$file.Length; sha256=(Hash $target)}
}
Copy-Item -LiteralPath $Review -Destination "$destination/independent-review.md"
if ((Hash $Review) -ne (Hash "$destination/independent-review.md")) { throw 'Review copy mismatch' }
Add-Type -AssemblyName System.IO.Compression.FileSystem
[IO.Compression.ZipFile]::CreateFromDirectory("$Original/captures", "$destination/captures.zip", [IO.Compression.CompressionLevel]::Optimal, $false)
$zip = [IO.Compression.ZipFile]::OpenRead("$destination/captures.zip")
$captureManifest = @()
try {
if ($zip.Entries.Count -ne 88) { throw 'Expected 88 capture ZIP entries' }
foreach ($entry in $zip.Entries) {
$stream = $entry.Open()
try { $sha = [Security.Cryptography.SHA256]::Create(); try { $digest = [Convert]::ToHexString($sha.ComputeHash($stream)).ToLowerInvariant() } finally { $sha.Dispose() } } finally { $stream.Dispose() }
$originalFile = Get-Item -LiteralPath (Join-Path "$Original/captures" $entry.FullName)
if ($entry.Length -ne $originalFile.Length -or $digest -ne (Hash $originalFile.FullName)) { throw 'ZIP mismatch' }
$captureManifest += [ordered]@{path=$entry.FullName; bytes=$entry.Length; sha256=$digest}
}
} finally { $zip.Dispose() }
$captureManifest | ConvertTo-Json -Depth 8 | Set-Content -LiteralPath "$destination/capture-manifest.json" -Encoding utf8
[ordered]@{verifiedUtc=[DateTime]::UtcNow.ToString('o'); source=$inputRecord.source_commit; immutableInputsChecked=15; currentBuildInputsChecked=577; beforeAfterBuildInputsEqual=$true; capturesChecked=44; zipEntriesChecked=88; actionMappingsChecked=44; binaryBytes=115379712; binarySha256=$inputRecord.binary_copy_sha256; closeExitCode=$close.exit_code; sourceChecks=$sourceChecks; cliCommandsPassed=6; cliWarningsPerCheck=11; cliDiagnosticIdentitiesAndMessagesEqual=$true; reviewSha256=(Hash $Review); copiedFiles=$copied; limits='Checks preserved source bytes, receipts and artifacts; no compiler, native inputs, or direct runtime Project export executed by archivist.'} | ConvertTo-Json -Depth 12 | Set-Content -LiteralPath "$destination/verification.json" -Encoding utf8
Write-Output "Verified 15 immutable inputs, 44 JPEGs, 88 ZIP entries, 44 action mappings, six source files, six CLI receipts; copied $($copied.Count) raw files."
@@ -0,0 +1,42 @@
{
"utc": "2026-09-13T03:15:04.080Z",
"stage": "After explicit native schema3-to7 save; before rename",
"files": [
{
"path": "oa.arcadia",
"bytes": 2364,
"sha256": "c04efaa1ae5a2053e63aac70f79ea7bb845ef1db1ff8e68f23abfe24f1bc180f",
"aliasTokenCount": 0
},
{
"path": "project.arcadia",
"bytes": 606,
"sha256": "260505b7f54a0d256bce2af8499bb46cc78ffe564628bd5f976ce358d1796f3a",
"aliasTokenCount": 0
},
{
"path": "views.arcadia",
"bytes": 3508,
"sha256": "e29ad3f406a6a50d2f0ae2ca2a53ee3b0c18222cd4098704a46d4f48b64ea17f",
"aliasTokenCount": 2
},
{
"path": "sa/assurance.arcadia",
"bytes": 682,
"sha256": "ab76044836e4dcd42a82d316846ec87da2108939aa2037640c5bca1d2ecdee0f",
"aliasTokenCount": 0
},
{
"path": "sa/participants.arcadia",
"bytes": 1231,
"sha256": "1abad579812e77877b45a3d8e3c3e9da734be2d04a0254cc730a5257ebd2dc88",
"aliasTokenCount": 0
},
{
"path": "sa/reporting.arcadia",
"bytes": 3061,
"sha256": "893050516ce47f07039f04879474c7a019b8b2f7b6002a8d950b005334e34692",
"aliasTokenCount": 3
}
]
}
@@ -0,0 +1,51 @@
// Operational Analysis describes the need without choosing a technical solution.
oa_actor vessel "Vessel in distress" id "00000000-0000-4000-8000-000000000101" {
description "The vessel's crew needs to communicate its position and obtain assistance.";
}
oa_entity rescue_team "Rescue coordination" id "00000000-0000-4000-8000-000000000102" {
description "The coordination team assesses the report and decides on a response.";
}
// This is work decomposition. It does not assign either activity to a participant.
oa_activity respond "Respond to distress" id "00000000-0000-4000-8000-000000000103" {
// Keep the crew's reporting responsibility visible when decomposing the need.
oa_activity report_distress "Report distress" id "00000000-0000-4000-8000-000000000104" {
description "Provide the vessel's situation and last known position.";
}
oa_activity assess_incident "Assess incident" id "00000000-0000-4000-8000-000000000105" {
description "Decide which assistance is needed using the received report.";
}
}
oa_capability protect_life "Protect life at sea" id "00000000-0000-4000-8000-000000000106" {}
oa_exchange_item oa_report_data "Distress report" id "00000000-0000-4000-8000-000000000107" {
kind Information;
oa_data_field reported_latitude "Reported latitude" id "00000000-0000-4000-8000-000000000108" {
type_ref Real;
unit "degrees north";
default none;
description "";
direction Unspecified;
maximum 1;
minimum 1;
storage Value;
}
description "";
mechanism Unspecified;
parent none;
supertype none;
}
// Allocation remains explicit even though the saved architecture view nests work.
allocation crew_reports "Crew reports distress" id "00000000-0000-4000-8000-000000000201" {
source @vessel; target @report_distress;
}
allocation team_assesses "Team assesses incident" id "00000000-0000-4000-8000-000000000202" {
source @rescue_team; target @assess_incident;
}
interaction distress_signal "Distress signal" id "00000000-0000-4000-8000-000000000203" {
source @report_distress; target @assess_incident; items [@oa_report_data];
}
capability_involvement operational_contribution "Assessment supports rescue" id "00000000-0000-4000-8000-000000000204" {
source @assess_incident; target @protect_life;
}
@@ -0,0 +1,11 @@
arcadia 7;
project distress_response "Distress response — nested source project" id "00000000-0000-4000-8000-000000000001" {
description "A small OA/SA model for learning source ownership, typed ports and reviewed graphical edits. Open this file. Start with the saved allocation views, then browse Handle distress reports and use Source for selection.";
// Includes organize documents; aliases are shared by the whole project.
include "oa.arcadia";
include "sa/participants.arcadia";
include "sa/reporting.arcadia";
include "sa/assurance.arcadia";
include "views.arcadia";
}
@@ -0,0 +1,11 @@
// A separate functional aggregate provides a cross-file reparenting example.
// Move Assess report here through Properties, then inspect both source files.
sa_function assure_response "Assure response quality" id "00000000-0000-4000-8000-000000000411" {
description "Review the service response independently of report transport.";
sa_function review_response "Review response" id "00000000-0000-4000-8000-000000000412" {
description "Check that a coordinator can review the received information.";
}
}
allocation system_reviews "System supports response review" id "00000000-0000-4000-8000-000000000504" {
source @rescue_system; target @review_response;
}
@@ -0,0 +1,22 @@
// System Analysis identifies one system of interest and its external participant.
sa_system rescue_system "Rescue coordination system" id "00000000-0000-4000-8000-000000000301" {
description "The selected system receives reports and supports the coordinator.";
// A component port belongs to its participant, not to an allocated function.
sa_port reporting_input "Reporting input" id "00000000-0000-4000-8000-000000000303" {
contract { Component { kind Flow; orientation In; }; };
}
}
sa_actor vessel_service "Vessel communication service" id "00000000-0000-4000-8000-000000000302" {
description "An external service sends distress information across the system boundary.";
sa_port reporting_output "Reporting output" id "00000000-0000-4000-8000-000000000304" {
contract { Component { kind Flow; orientation Out; }; };
}
}
// The boundary exchange connects actual participant ports. Function realization
// is declared separately in reporting.arcadia using port/exchange allocations.
boundary_exchange radio_reporting "Radio reporting" id "00000000-0000-4000-8000-000000000501" {
source @reporting_output; target @reporting_input;
oriented true;
items [@sa_report_data];
}
@@ -0,0 +1,62 @@
// Functional containment is independent of the participant allocations below.
sa_function handle_reports "Handle distress reports" id "00000000-0000-4000-8000-000000000401" {
description "A functional decomposition of reporting and assessment.";
sa_function transmit_report "Transmit report" id "00000000-0000-4000-8000-000000000402" {
description "Encode and send the vessel's distress report.";
sa_port report_out "Report output" id "00000000-0000-4000-8000-000000000404" {
contract { FunctionOutput { outgoing_items [@sa_report_data]; }; };
}
}
// Assessment rationale travels with this declaration when it is reparented.
sa_function assess_report "Assess report" id "00000000-0000-4000-8000-000000000403" {
description "Validate the received report and present it to the coordinator.";
sa_port report_in "Report input" id "00000000-0000-4000-8000-000000000405" {
contract { FunctionInput { incoming_items [@sa_report_data]; }; };
}
} // Assessment remains performed by rescue_system after a hierarchy edit.
}
// This group comment stays in this file; it is not attached to the function above.
sa_exchange_item sa_report_data "Digital distress report" id "00000000-0000-4000-8000-000000000406" {
kind Information;
sa_data_field encoded_latitude "Encoded latitude" id "00000000-0000-4000-8000-000000000407" {
type_ref Real;
unit "degrees north";
default none;
description "";
direction Unspecified;
maximum 1;
minimum 1;
storage Value;
}
description "";
mechanism Unspecified;
parent none;
supertype none;
}
sa_capability coordinate_response "Coordinate distress response" id "00000000-0000-4000-8000-000000000408" {}
allocation vessel_transmits "Vessel service transmits" id "00000000-0000-4000-8000-000000000502" {
source @vessel_service; target @transmit_report;
}
allocation system_assesses "System assesses report" id "00000000-0000-4000-8000-000000000503" {
source @rescue_system; target @assess_report;
}
functional_exchange validated_report "Validated report" id "00000000-0000-4000-8000-000000000505" {
source @transmit_report; source_port @report_out;
target @assess_report; target_port @report_in;
items [@sa_report_data];
}
port_allocation output_realization "Reporting output realizes function output" id "00000000-0000-4000-8000-000000000506" {
source @reporting_output; target @report_out;
}
port_allocation input_realization "Reporting input realizes function input" id "00000000-0000-4000-8000-000000000507" {
source @reporting_input; target @report_in;
}
exchange_allocation report_transport "Radio reporting carries the function exchange" id "00000000-0000-4000-8000-000000000508" {
source @radio_reporting; target @validated_report;
}
capability_involvement system_contribution "Assessment supports coordination" id "00000000-0000-4000-8000-000000000509" {
source @assess_report; target @coordinate_response;
}
@@ -0,0 +1,71 @@
// Views are projections. Their visual allocation containers do not set parent.
diagram oa_architecture "OA — participants and activities" id "00000000-0000-4000-8000-000000000601" {
description "The crew reports; the coordination team assesses. Containment of work is shown separately in the Model explorer.";
layer Oa; projection Allocation;
}
node oa_vessel_view id "00000000-0000-4000-8000-000000000701" {
diagram @oa_architecture; element @vessel;
position { x 60; y 60; }; size { width 272; height 210; };
}
node oa_team_view id "00000000-0000-4000-8000-000000000702" {
diagram @oa_architecture; element @rescue_team;
position { x 540; y 60; }; size { width 300; height 210; };
}
node oa_report_view id "00000000-0000-4000-8000-000000000703" {
diagram @oa_architecture; element @report_distress;
position { x 84; y 128; }; size { width 224; height 104; };
}
node oa_assessment_view id "00000000-0000-4000-8000-000000000704" {
diagram @oa_architecture; element @assess_incident;
position { x 564; y 128; }; size { width 252; height 104; };
}
diagram sa_architecture "SA — system boundary and functions" id "00000000-0000-4000-8000-000000000602" {
description "Flow component ports define the boundary; separate function ports carry the functional exchange.";
layer Sa; projection Allocation;
}
node sa_vessel_view id "00000000-0000-4000-8000-000000000711" {
diagram @sa_architecture; element @vessel_service;
position { x 60; y 60; }; size { width 272; height 220; };
}
node sa_system_view id "00000000-0000-4000-8000-000000000712" {
diagram @sa_architecture; element @rescue_system;
position { x 540; y 60; }; size { width 300; height 340; };
}
node sa_transmission_view id "00000000-0000-4000-8000-000000000713" {
diagram @sa_architecture; element @transmit_report;
position { x 84; y 128; }; size { width 224; height 104; };
}
node sa_assessment_view id "00000000-0000-4000-8000-000000000714" {
diagram @sa_architecture; element @assess_report;
position { x 564; y 128; }; size { width 252; height 104; };
}
node sa_review_view id "00000000-0000-4000-8000-000000000715" {
diagram @sa_architecture; element @review_response;
position { x 564; y 272; }; size { width 252; height 104; };
}
diagram sa_decomposition "SA — functional containment" id "00000000-0000-4000-8000-000000000603" {
description "These containers represent real function parents. Compare them with the explicit allocations in the architecture view.";
layer Sa; projection FunctionalDataflow;
}
node handling_view id "00000000-0000-4000-8000-000000000721" {
diagram @sa_decomposition; element @handle_reports;
position { x 40; y 60; }; size { width 500; height 230; };
}
node transmission_view id "00000000-0000-4000-8000-000000000722" {
diagram @sa_decomposition; element @transmit_report;
position { x 64; y 136; }; size { width 204; height 104; };
}
node assessment_view id "00000000-0000-4000-8000-000000000723" {
diagram @sa_decomposition; element @assess_report;
position { x 310; y 136; }; size { width 204; height 104; };
}
node assurance_view id "00000000-0000-4000-8000-000000000724" {
diagram @sa_decomposition; element @assure_response;
position { x 590; y 60; }; size { width 300; height 230; };
}
node review_view id "00000000-0000-4000-8000-000000000725" {
diagram @sa_decomposition; element @review_response;
position { x 614; y 136; }; size { width 252; height 104; };
}
@@ -0,0 +1,29 @@
{
"utc": "2026-09-13T03:18:33.311Z",
"files": [
{
"path": "oa.arcadia",
"unchanged": true
},
{
"path": "project.arcadia",
"unchanged": true
},
{
"path": "views.arcadia",
"unchanged": true
},
{
"path": "sa/assurance.arcadia",
"unchanged": true
},
{
"path": "sa/participants.arcadia",
"unchanged": true
},
{
"path": "sa/reporting.arcadia",
"unchanged": true
}
]
}
@@ -0,0 +1,442 @@
[
{
"path": "01-home-0.jpg",
"bytes": 99196,
"sha256": "1a479b9e775c3a13d952ef08b63921610364237e27b7b9379b1da1db112bebf6"
},
{
"path": "01-home.json",
"bytes": 585,
"sha256": "c5685b2d58494372b67966f2ea1b1d96d2ab84a2ea1c26561cc6394db482d3f2"
},
{
"path": "02-open-dialog-0.jpg",
"bytes": 80492,
"sha256": "00d5da5ca209696e0865bb604f2a98fd41d2e6279051faee3ce57b90ce2894d2"
},
{
"path": "02-open-dialog.json",
"bytes": 1104,
"sha256": "2eab78f9ace88c3a9102926e44f42b87fb7668aeb107887adb720a4d06f1eba7"
},
{
"path": "04-dialog-parent-recovery-0.jpg",
"bytes": 80538,
"sha256": "d2fb3ce869696f40a3de468bdfa1ce5be3072d57dc3b6db1e515e7e91c0cf509"
},
{
"path": "04-dialog-parent-recovery.json",
"bytes": 919,
"sha256": "c72a5ff92cef4511af09210eaa6c842cc145ae4fd1f7404cc2e2f8e8dd430303"
},
{
"path": "05-fixture-path-entered-0.jpg",
"bytes": 86650,
"sha256": "41fce5769a40ea8b3f4823094a91735d6f743719f10216b5a1cb46441be82a7d"
},
{
"path": "05-fixture-path-entered.json",
"bytes": 601,
"sha256": "524c0f4527f8ad129df207c5cee4491c8062aef41a144cde97632003ff1819e1"
},
{
"path": "06-fixture-open-request-0.jpg",
"bytes": 145763,
"sha256": "45d7247b2fc0c13712ebfec65688a26eaae2c232ab3d2107ee56f516a475f427"
},
{
"path": "06-fixture-open-request.json",
"bytes": 602,
"sha256": "59a16d742b7fa572c246c3529531e92bd74150c0a85069f380f4d1ff9b87cacc"
},
{
"path": "07-save-migrated-baseline-0.jpg",
"bytes": 141308,
"sha256": "0743f56edb1330d641c0a40b4999d3cf406d1bc3b04c9922678b527176168e96"
},
{
"path": "07-save-migrated-baseline.json",
"bytes": 631,
"sha256": "df09de4429087d6cae75dc7a679ed79212522669e9bf3010519e0f35dc7e812d"
},
{
"path": "08-text-open-0.jpg",
"bytes": 128669,
"sha256": "95dc77792fd2a1f02f51226cc041fa794407af419fb5a72249852b0f3f5519b9"
},
{
"path": "08-text-open.json",
"bytes": 618,
"sha256": "53488509c0eb4c761432fe89f065e387783386963c3e021b92f9bda6c63c00cb"
},
{
"path": "09-views-source-0.jpg",
"bytes": 151679,
"sha256": "602640e475993ec194f134eb2cc5bd3c476e2c9bcb4c9555926f54fbbd82324e"
},
{
"path": "09-views-source.json",
"bytes": 621,
"sha256": "78ce04c1c07a22d7adcd1dd31d56346ae8a4f0aa79d7046d165f818f8baa8b33"
},
{
"path": "10-second-reference-context-0.jpg",
"bytes": 142282,
"sha256": "6ae50cf23f0c8ef0fc37ed87014b1fabb4a29ddd5637ba7790e6dfef506328fb"
},
{
"path": "10-second-reference-context.json",
"bytes": 633,
"sha256": "df481dc37521ea420cfbc17eccbb369b38e9bff130ac3412275aeef508736092"
},
{
"path": "11-rename-open-0.jpg",
"bytes": 100781,
"sha256": "b14d7e702afb05e189cee2777854b00d0dd72d6431d40d823417134930640e8b"
},
{
"path": "11-rename-open.json",
"bytes": 620,
"sha256": "b87d33fbc7237c310682253cc498fc94cc5973cf169a50a270a1f9b5f7118b39"
},
{
"path": "12-rename-target-entered-0.jpg",
"bytes": 101424,
"sha256": "0668d2417a767fcb483b785a9e6f0b76c1a8ae95d89b81366b9b24a90e2c5361"
},
{
"path": "12-rename-target-entered.json",
"bytes": 630,
"sha256": "bb09a3cb881ba29a18653f69e903fc6d354e27aaabdd35b70ecfdc6a6fefe0df"
},
{
"path": "13-rename-preview-0.jpg",
"bytes": 105584,
"sha256": "e42a359c2abc526fbbf1277f83bc5c9c4f636a9920f4e5c768683b435b4353ac"
},
{
"path": "13-rename-preview.json",
"bytes": 623,
"sha256": "193c6437154a65fb81eaa18e6c216896954cea299e1fea48c9d55b82989f95df"
},
{
"path": "14-preview-manual-scroll-0.jpg",
"bytes": 116397,
"sha256": "017d635ab9e095593f5b62882f54b1e7dee8ea9becd6979533e6738ddf60e821"
},
{
"path": "14-preview-manual-scroll.json",
"bytes": 630,
"sha256": "f7644307d349c77d429a98ec83c7b58cdaa9a4728ab8ca7074758ac6ad09463f"
},
{
"path": "15-preview-full-details-0.jpg",
"bytes": 106787,
"sha256": "d746473e932be994a3849b69453c201b20bc24bcdf25df9e4effab223dd3047e"
},
{
"path": "15-preview-full-details.json",
"bytes": 629,
"sha256": "63105c64c82ac5def6b666a3086222fb7e8d8bf3c540599b50704636f9394266"
},
{
"path": "16-return-preview-0.jpg",
"bytes": 105728,
"sha256": "b7c3b28cd858c95b33e6a31e6a161f98b72a0d9858096fa5a7337ee8461d19e6"
},
{
"path": "16-return-preview.json",
"bytes": 623,
"sha256": "573c2d564a40ecb3edd6dfb72483a6b0dac90027b15051c35742dd87fd858ebf"
},
{
"path": "17-preview-scroll-after-details-0.jpg",
"bytes": 116570,
"sha256": "87d68f31c8434f2c9c5b1c48365e0b5cb83081782447f2972a4a9631fb10f659"
},
{
"path": "17-preview-scroll-after-details.json",
"bytes": 637,
"sha256": "9820a5dc935d5aa5508abb715081b679f4b7ca37b4342141beb148ad5f509a99"
},
{
"path": "18-rename-rejects-definition-0.jpg",
"bytes": 116604,
"sha256": "23a790c38ed82fef12a6752b110fa0a900cb5ca5bfb4fa4aad5bdd1acac796b8"
},
{
"path": "18-rename-rejects-definition.json",
"bytes": 634,
"sha256": "9dd953b386b3c6dacc86a4d61688979b13ac537429364cbf2dae727f96b6aa10"
},
{
"path": "19-rename-cancel-0.jpg",
"bytes": 142661,
"sha256": "bfd4cf5f2c48e160b575cf8cf54c42924f1610ef337bfc051e766dab14231a61"
},
{
"path": "19-rename-cancel.json",
"bytes": 622,
"sha256": "8cdfc8061db49bde7d9e12a90f5d7e7890ad9c6c6a527a242dfe82677b4b189d"
},
{
"path": "20-usage-chooser-0.jpg",
"bytes": 125278,
"sha256": "c15e749d8f84e69a8350cb5dcd721ef9c5dc64364fe442fdc07a6f62f686a4f9"
},
{
"path": "20-usage-chooser.json",
"bytes": 622,
"sha256": "e4c2acd90d23a9f36cfe9e28225259076da4eccb3117ee1a768c6395cb92ca18"
},
{
"path": "21-usage-rejects-rename-0.jpg",
"bytes": 125204,
"sha256": "4884c4bdac958db5cc3616947c39a9248c5030e52925c5b98a48ed44b1ca02f1"
},
{
"path": "21-usage-rejects-rename.json",
"bytes": 629,
"sha256": "71b21ad826449a1b0584fdf194e9a165c33d006efab29eb41b615656abf51542"
},
{
"path": "22-usage-cancel-0.jpg",
"bytes": 142498,
"sha256": "c24c8fa5060c987bc26c7917ff55fbe10b6548953e0e80bf13350144dcfef712"
},
{
"path": "22-usage-cancel.json",
"bytes": 621,
"sha256": "1966a1114c58350918ff72323ca0d689bf83d51549c1ada56b1cacf01352d712"
},
{
"path": "23-fresh-rename-after-chooser-0.jpg",
"bytes": 100632,
"sha256": "de8178675770fe235baf7134e081575c7be307d7bed5f4386b1832e6650f1c25"
},
{
"path": "23-fresh-rename-after-chooser.json",
"bytes": 635,
"sha256": "c292f3e42545e35fe77917ea49a25be56200b8da796176b57ee920b1bab0190f"
},
{
"path": "24-confirmation-preview-0.jpg",
"bytes": 105569,
"sha256": "986a3ba1dbabc9a3affeba6a756d98952f626101d209e4ffebf9acb97fc9cbc8"
},
{
"path": "24-confirmation-preview.json",
"bytes": 629,
"sha256": "14101d50e74e6c747d5016390b4e4112d8348c7c2326cc76e99fd0334189924e"
},
{
"path": "25-rename-confirmed-focus-0.jpg",
"bytes": 146913,
"sha256": "d4fe6a6809c9febca57cb5572269cb8bfd460f56fe6a09771934b38b403072ca"
},
{
"path": "25-rename-confirmed-focus.json",
"bytes": 633,
"sha256": "9f4b2e19d06b18b299912f7cb93ed2789ac873f3ef5649d0f8381ef90b72455f"
},
{
"path": "26-immediate-text-probe-0.jpg",
"bytes": 131684,
"sha256": "0ece0cbf64909b5a8452629da9982df0e97c20d608f975b3344d3e27e0839633"
},
{
"path": "26-immediate-text-probe.json",
"bytes": 631,
"sha256": "35c6b93edd2e4a2a73f618d7c3fee430302ef8e4462fc776f509958deb1eb7eb"
},
{
"path": "27-text-undo-preserves-rename-0.jpg",
"bytes": 156199,
"sha256": "77a16017a3a594371f56148f0faeeb7a311304bba0816e10c67c387d95970741"
},
{
"path": "27-text-undo-preserves-rename.json",
"bytes": 637,
"sha256": "1424d95ae66abb2ef11f96d01e6603223651fafaca0eae6ec331eafd22aab470"
},
{
"path": "28-renamed-usage-chooser-0.jpg",
"bytes": 160495,
"sha256": "ea0a70104ba2f117ecdd05c6438d0d29bc987bc4702f5ebf22da45532ff77d80"
},
{
"path": "28-renamed-usage-chooser.json",
"bytes": 632,
"sha256": "e668b686986567f5a4d214d0d12963612e2030a6c6656e60f259fceb8100a542"
},
{
"path": "29-restored-reference-refocused-0.jpg",
"bytes": 156093,
"sha256": "524f27670080dd0a9acd93fd41294c4f50a2505dd6e9a05f22b4b1c39c54b252"
},
{
"path": "29-restored-reference-refocused.json",
"bytes": 639,
"sha256": "0cac28295f0a6171bb7905a96dddc204a672d77d0745180300ab543131a99a57"
},
{
"path": "30-renamed-two-destinations-0.jpg",
"bytes": 136562,
"sha256": "40ca46f5f0550e0c3d9868a66afea1d8d03c96f855272830ead39549d9c898e3"
},
{
"path": "30-renamed-two-destinations.json",
"bytes": 635,
"sha256": "8490c9c93b0f7639ce82d90e4acbcc81a6a42f1cfdb8f34df7058e85f598ff19"
},
{
"path": "31-functional-destination-0.jpg",
"bytes": 135952,
"sha256": "46c7177ea807713a8d3e587e974e13a22c9f7e3a48eeefa5225202baa9a538c2"
},
{
"path": "31-functional-destination.json",
"bytes": 633,
"sha256": "e73a9050a82024496f6a99789956bca7b67d73492bbf20740d6851b106fc2499"
},
{
"path": "32-functional-reveal-0.jpg",
"bytes": 129207,
"sha256": "26c2d29cb87049a9ee28a7a495b021c5649bcdd95a511bf8a4ff47dd984bb67f"
},
{
"path": "32-functional-reveal.json",
"bytes": 628,
"sha256": "37b52eae4621f9856c11efc029d31f11602540c2847a31484a91a9047ac9e82f"
},
{
"path": "33-functional-settled-0.jpg",
"bytes": 129207,
"sha256": "26c2d29cb87049a9ee28a7a495b021c5649bcdd95a511bf8a4ff47dd984bb67f"
},
{
"path": "33-functional-settled.json",
"bytes": 629,
"sha256": "546c320d0f17bf282131cd32bc6c2d3a0a3f083e10687bd3754c5bd8106cc8ff"
},
{
"path": "34-text-return-first-view-0.jpg",
"bytes": 151710,
"sha256": "7b03694bb91e08148c62a0a6eb3a16b8066c432824e47095ebe7e0976c6268fa"
},
{
"path": "34-text-return-first-view.json",
"bytes": 633,
"sha256": "0a5e5390aebd6e6a586f7ee5a583530dcd7bf2343803ab8af6ebef7f3660f925"
},
{
"path": "35-system-boundary-choice-0.jpg",
"bytes": 134985,
"sha256": "0566f0c0d4313a13a0fb66e762dd3df49eb6cbcdbcb538f7bf96ba4e82c5cd73"
},
{
"path": "35-system-boundary-choice.json",
"bytes": 633,
"sha256": "1d51dea85fe2deda8eb24e45dae22859a36b924f7fc8c18a71bfc139f0491cac"
},
{
"path": "36-system-boundary-reveal-0.jpg",
"bytes": 128266,
"sha256": "1b98d78d7f0910dfc99642fbcaefd5e5f85670a1d421f48f39d38e2c5b8ed599"
},
{
"path": "36-system-boundary-reveal.json",
"bytes": 633,
"sha256": "b369a467366d0bd0309f9ea5650e90848b45ca26f504fa02a78de09734f352e5"
},
{
"path": "37-system-boundary-settled-0.jpg",
"bytes": 128266,
"sha256": "1b98d78d7f0910dfc99642fbcaefd5e5f85670a1d421f48f39d38e2c5b8ed599"
},
{
"path": "37-system-boundary-settled.json",
"bytes": 634,
"sha256": "0d0ef249361e9a09b873b43d6a58f8f212c34f322108d7dc400d4a622489c57b"
},
{
"path": "38-one-model-undo-0.jpg",
"bytes": 149682,
"sha256": "cfce8d3c24fe7c4c205d6bd8989208f603c751c25657a7d805b0d06fbefcb4ff"
},
{
"path": "38-one-model-undo.json",
"bytes": 623,
"sha256": "93e9ea03cc2226ee9260316a3b61814f66989e807ed2ad669d388e6b5ef29d02"
},
{
"path": "39-save-after-undo-0.jpg",
"bytes": 149552,
"sha256": "a66048a3c4b846bc3c67e7d11d917d9ee4cff5af392b3a441c9cb1d50f279115"
},
{
"path": "39-save-after-undo.json",
"bytes": 624,
"sha256": "806a639d7da63a46ef220d7fa36bdf3bb84840f3b508c7df370d4a41c16a5bb7"
},
{
"path": "40-one-model-redo-0.jpg",
"bytes": 149830,
"sha256": "3387692609346e00ec065d61b0581b0ddb6b234876e6625e7644ebd816753986"
},
{
"path": "40-one-model-redo.json",
"bytes": 625,
"sha256": "26ee519fbeeb8f82248b69e6d760979e1d3f1dd6a3d356b285510072402a2f9c"
},
{
"path": "41-save-redone-rename-0.jpg",
"bytes": 149357,
"sha256": "e2fcfdbe8df61c834de47c18a97059a968d5a74e8012de5548082ded6b7a4aa2"
},
{
"path": "41-save-redone-rename.json",
"bytes": 627,
"sha256": "49cfc478cadee8efc8c5e6e7dc2ac9cb1b9d71c0c1db4a375131096f8618647d"
},
{
"path": "42-home-for-reopen-0.jpg",
"bytes": 115406,
"sha256": "c748bd9f3df0a7a7fe2308fa0994c7f6d81838b42fd8feb63a75f14e0397b42f"
},
{
"path": "42-home-for-reopen.json",
"bytes": 624,
"sha256": "865641340c7896f85003b9b7c15935416a5e0d4ed261deaab2f06a8667866758"
},
{
"path": "43-native-reopen-0.jpg",
"bytes": 119109,
"sha256": "70fcaf1b154fe2acfa1a5d87238ca825ceb4f6fb8ad8d67af0cf7e8ab5b9b3d8"
},
{
"path": "43-native-reopen.json",
"bytes": 622,
"sha256": "4f6e52a477a119e2c49454612329bfef189b123f01b32275151011e891f75635"
},
{
"path": "44-persisted-alias-after-reopen-0.jpg",
"bytes": 145318,
"sha256": "b252546bd2bc3d5157937b5c67c58ec85598ac72ba81fbb1b5b6284e8a7c7a19"
},
{
"path": "44-persisted-alias-after-reopen.json",
"bytes": 637,
"sha256": "b58314274bd57234b84a48007d6de5558ff608218f330ef483c4485f4bcf45bf"
},
{
"path": "45-passive-save-after-reopen-0.jpg",
"bytes": 141062,
"sha256": "e57ebfc5bf675c44368e0dd87af24331dc1aa2841e399a6b87a95fbebd26b5b6"
},
{
"path": "45-passive-save-after-reopen.json",
"bytes": 634,
"sha256": "7289ef602a59721d31d5e0f49f5ee7ec559c3076f405c339bb0cc710315dd4b1"
}
]
@@ -0,0 +1,20 @@
{
"utc": "2026-09-13T03:09:50.277Z",
"window": {
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-native-a49b0ec-20260913\\package\\arcadia-studio.exe",
"id": 132973208,
"title": "Untitled mission — Arcadia Studio"
},
"accessibility": null,
"screenshots": [
{
"path": "captures/01-home-0.jpg",
"mime": "image/jpeg",
"bytes": 99196,
"sha256": "1a479b9e775c3a13d952ef08b63921610364237e27b7b9379b1da1db112bebf6",
"id": "screenshot-0",
"width": 1442,
"height": 932
}
]
}
@@ -0,0 +1,23 @@
{
"utc": "2026-09-13T03:10:06.917Z",
"window": {
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-native-a49b0ec-20260913\\package\\arcadia-studio.exe",
"id": 132973208,
"title": "Untitled mission — Arcadia Studio"
},
"accessibility": {
"focused_element": "0 window Untitled mission — Arcadia Studio Secondary Actions: Raise",
"tree": "Window: \"Untitled mission — Arcadia Studio\", App: arcadia-studio.exe.\n\t0 window Untitled mission — Arcadia Studio Secondary Actions: Raise\n\t\t1 title bar\n\t\t\t2 menu bar System ID: MenuBar\n\t\t\t\t3 menu item System\n\t\t\t4 button Minimize\n\t\t\t5 button Maximize\n\t\t\t6 button Close\n\nThe focused UI element is 0 window Untitled mission — Arcadia Studio Secondary Actions: Raise."
},
"screenshots": [
{
"path": "captures/02-open-dialog-0.jpg",
"mime": "image/jpeg",
"bytes": 80492,
"sha256": "00d5da5ca209696e0865bb604f2a98fd41d2e6279051faee3ce57b90ce2894d2",
"id": "screenshot-0",
"width": 1442,
"height": 932
}
]
}
@@ -0,0 +1,22 @@
{
"utc": "2026-09-13T03:13:43.258Z",
"window": {
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-native-a49b0ec-20260913\\package\\arcadia-studio.exe",
"id": 132973208,
"title": "Untitled mission — Arcadia Studio"
},
"accessibility": {
"tree": "Window: \"Untitled mission — Arcadia Studio\", App: arcadia-studio.exe.\n\t0 window Untitled mission — Arcadia Studio Secondary Actions: Raise\n\t\t1 title bar\n\t\t\t2 menu bar System ID: MenuBar\n\t\t\t\t3 menu item System\n\t\t\t4 button Minimize\n\t\t\t5 button Maximize\n\t\t\t6 button Close"
},
"screenshots": [
{
"path": "captures/04-dialog-parent-recovery-0.jpg",
"mime": "image/jpeg",
"bytes": 80538,
"sha256": "d2fb3ce869696f40a3de468bdfa1ce5be3072d57dc3b6db1e515e7e91c0cf509",
"id": "screenshot-0",
"width": 1442,
"height": 932
}
]
}
@@ -0,0 +1,20 @@
{
"utc": "2026-09-13T03:14:03.373Z",
"window": {
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-native-a49b0ec-20260913\\package\\arcadia-studio.exe",
"id": 132973208,
"title": "Untitled mission — Arcadia Studio"
},
"accessibility": null,
"screenshots": [
{
"path": "captures/05-fixture-path-entered-0.jpg",
"mime": "image/jpeg",
"bytes": 86650,
"sha256": "41fce5769a40ea8b3f4823094a91735d6f743719f10216b5a1cb46441be82a7d",
"id": "screenshot-0",
"width": 1442,
"height": 932
}
]
}
@@ -0,0 +1,20 @@
{
"utc": "2026-09-13T03:14:14.843Z",
"window": {
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-native-a49b0ec-20260913\\package\\arcadia-studio.exe",
"id": 132973208,
"title": "Untitled mission — Arcadia Studio"
},
"accessibility": null,
"screenshots": [
{
"path": "captures/06-fixture-open-request-0.jpg",
"mime": "image/jpeg",
"bytes": 145763,
"sha256": "45d7247b2fc0c13712ebfec65688a26eaae2c232ab3d2107ee56f516a475f427",
"id": "screenshot-0",
"width": 1442,
"height": 932
}
]
}
@@ -0,0 +1,20 @@
{
"utc": "2026-09-13T03:14:37.229Z",
"window": {
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-native-a49b0ec-20260913\\package\\arcadia-studio.exe",
"id": 132973208,
"title": "Distress response — nested source project — Arcadia Studio"
},
"accessibility": null,
"screenshots": [
{
"path": "captures/07-save-migrated-baseline-0.jpg",
"mime": "image/jpeg",
"bytes": 141308,
"sha256": "0743f56edb1330d641c0a40b4999d3cf406d1bc3b04c9922678b527176168e96",
"id": "screenshot-0",
"width": 1442,
"height": 932
}
]
}
@@ -0,0 +1,20 @@
{
"utc": "2026-09-13T03:15:38.450Z",
"window": {
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-native-a49b0ec-20260913\\package\\arcadia-studio.exe",
"id": 132973208,
"title": "Distress response — nested source project — Arcadia Studio"
},
"accessibility": null,
"screenshots": [
{
"path": "captures/08-text-open-0.jpg",
"mime": "image/jpeg",
"bytes": 128669,
"sha256": "95dc77792fd2a1f02f51226cc041fa794407af419fb5a72249852b0f3f5519b9",
"id": "screenshot-0",
"width": 1442,
"height": 932
}
]
}
@@ -0,0 +1,20 @@
{
"utc": "2026-09-13T03:15:51.398Z",
"window": {
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-native-a49b0ec-20260913\\package\\arcadia-studio.exe",
"id": 132973208,
"title": "Distress response — nested source project — Arcadia Studio"
},
"accessibility": null,
"screenshots": [
{
"path": "captures/09-views-source-0.jpg",
"mime": "image/jpeg",
"bytes": 151679,
"sha256": "602640e475993ec194f134eb2cc5bd3c476e2c9bcb4c9555926f54fbbd82324e",
"id": "screenshot-0",
"width": 1442,
"height": 932
}
]
}
@@ -0,0 +1,20 @@
{
"utc": "2026-09-13T03:16:16.156Z",
"window": {
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-native-a49b0ec-20260913\\package\\arcadia-studio.exe",
"id": 132973208,
"title": "Distress response — nested source project — Arcadia Studio"
},
"accessibility": null,
"screenshots": [
{
"path": "captures/10-second-reference-context-0.jpg",
"mime": "image/jpeg",
"bytes": 142282,
"sha256": "6ae50cf23f0c8ef0fc37ed87014b1fabb4a29ddd5637ba7790e6dfef506328fb",
"id": "screenshot-0",
"width": 1442,
"height": 932
}
]
}
@@ -0,0 +1,20 @@
{
"utc": "2026-09-13T03:16:42.641Z",
"window": {
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-native-a49b0ec-20260913\\package\\arcadia-studio.exe",
"id": 132973208,
"title": "Distress response — nested source project — Arcadia Studio"
},
"accessibility": null,
"screenshots": [
{
"path": "captures/11-rename-open-0.jpg",
"mime": "image/jpeg",
"bytes": 100781,
"sha256": "b14d7e702afb05e189cee2777854b00d0dd72d6431d40d823417134930640e8b",
"id": "screenshot-0",
"width": 1442,
"height": 932
}
]
}
@@ -0,0 +1,20 @@
{
"utc": "2026-09-13T03:17:03.831Z",
"window": {
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-native-a49b0ec-20260913\\package\\arcadia-studio.exe",
"id": 132973208,
"title": "Distress response — nested source project — Arcadia Studio"
},
"accessibility": null,
"screenshots": [
{
"path": "captures/12-rename-target-entered-0.jpg",
"mime": "image/jpeg",
"bytes": 101424,
"sha256": "0668d2417a767fcb483b785a9e6f0b76c1a8ae95d89b81366b9b24a90e2c5361",
"id": "screenshot-0",
"width": 1442,
"height": 932
}
]
}
@@ -0,0 +1,20 @@
{
"utc": "2026-09-13T03:17:16.098Z",
"window": {
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-native-a49b0ec-20260913\\package\\arcadia-studio.exe",
"id": 132973208,
"title": "Distress response — nested source project — Arcadia Studio"
},
"accessibility": null,
"screenshots": [
{
"path": "captures/13-rename-preview-0.jpg",
"mime": "image/jpeg",
"bytes": 105584,
"sha256": "e42a359c2abc526fbbf1277f83bc5c9c4f636a9920f4e5c768683b435b4353ac",
"id": "screenshot-0",
"width": 1442,
"height": 932
}
]
}
@@ -0,0 +1,20 @@
{
"utc": "2026-09-13T03:17:26.622Z",
"window": {
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-native-a49b0ec-20260913\\package\\arcadia-studio.exe",
"id": 132973208,
"title": "Distress response — nested source project — Arcadia Studio"
},
"accessibility": null,
"screenshots": [
{
"path": "captures/14-preview-manual-scroll-0.jpg",
"mime": "image/jpeg",
"bytes": 116397,
"sha256": "017d635ab9e095593f5b62882f54b1e7dee8ea9becd6979533e6738ddf60e821",
"id": "screenshot-0",
"width": 1442,
"height": 932
}
]
}
@@ -0,0 +1,20 @@
{
"utc": "2026-09-13T03:17:36.960Z",
"window": {
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-native-a49b0ec-20260913\\package\\arcadia-studio.exe",
"id": 132973208,
"title": "Distress response — nested source project — Arcadia Studio"
},
"accessibility": null,
"screenshots": [
{
"path": "captures/15-preview-full-details-0.jpg",
"mime": "image/jpeg",
"bytes": 106787,
"sha256": "d746473e932be994a3849b69453c201b20bc24bcdf25df9e4effab223dd3047e",
"id": "screenshot-0",
"width": 1442,
"height": 932
}
]
}
@@ -0,0 +1,20 @@
{
"utc": "2026-09-13T03:17:51.348Z",
"window": {
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-native-a49b0ec-20260913\\package\\arcadia-studio.exe",
"id": 132973208,
"title": "Distress response — nested source project — Arcadia Studio"
},
"accessibility": null,
"screenshots": [
{
"path": "captures/16-return-preview-0.jpg",
"mime": "image/jpeg",
"bytes": 105728,
"sha256": "b7c3b28cd858c95b33e6a31e6a161f98b72a0d9858096fa5a7337ee8461d19e6",
"id": "screenshot-0",
"width": 1442,
"height": 932
}
]
}
@@ -0,0 +1,20 @@
{
"utc": "2026-09-13T03:18:04.505Z",
"window": {
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-native-a49b0ec-20260913\\package\\arcadia-studio.exe",
"id": 132973208,
"title": "Distress response — nested source project — Arcadia Studio"
},
"accessibility": null,
"screenshots": [
{
"path": "captures/17-preview-scroll-after-details-0.jpg",
"mime": "image/jpeg",
"bytes": 116570,
"sha256": "87d68f31c8434f2c9c5b1c48365e0b5cb83081782447f2972a4a9631fb10f659",
"id": "screenshot-0",
"width": 1442,
"height": 932
}
]
}
@@ -0,0 +1,20 @@
{
"utc": "2026-09-13T03:18:15.212Z",
"window": {
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-native-a49b0ec-20260913\\package\\arcadia-studio.exe",
"id": 132973208,
"title": "Distress response — nested source project — Arcadia Studio"
},
"accessibility": null,
"screenshots": [
{
"path": "captures/18-rename-rejects-definition-0.jpg",
"mime": "image/jpeg",
"bytes": 116604,
"sha256": "23a790c38ed82fef12a6752b110fa0a900cb5ca5bfb4fa4aad5bdd1acac796b8",
"id": "screenshot-0",
"width": 1442,
"height": 932
}
]
}
@@ -0,0 +1,20 @@
{
"utc": "2026-09-13T03:18:33.147Z",
"window": {
"app": "process:C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\navigation-rename-native-a49b0ec-20260913\\package\\arcadia-studio.exe",
"id": 132973208,
"title": "Distress response — nested source project — Arcadia Studio"
},
"accessibility": null,
"screenshots": [
{
"path": "captures/19-rename-cancel-0.jpg",
"mime": "image/jpeg",
"bytes": 142661,
"sha256": "bfd4cf5f2c48e160b575cf8cf54c42924f1610ef337bfc051e766dab14231a61",
"id": "screenshot-0",
"width": 1442,
"height": 932
}
]
}

Some files were not shown because too many files have changed in this diff Show More