Make the Text workspace compact and preserve editing context
Replace the oversized header and reference rail with stable editor slots and a retained supporting drawer. Bind diagnostic, result and menu actions to their original publication and visit; preserve effective selections on navigation and dismiss Actions, Find and the drawer one surface per Escape. Retain exact Windows source captures, eight final gates (871 desktop passes), independent reviews, native selection/rename/recovery trials and the original failures. All 526 tested inputs and staged evidence were byte-checked before commit. Combined preview integration and packaging remain with issue 27; Linux remains paused.
This commit is contained in:
@@ -75,3 +75,17 @@ harness/experiments/source-alias-rename-native-20260912/** -text whitespace=cr-a
|
|||||||
harness/experiments/source-alias-rename-completed-20260912/** -text whitespace=cr-at-eol
|
harness/experiments/source-alias-rename-completed-20260912/** -text whitespace=cr-at-eol
|
||||||
harness/experiments/source-alias-rename-refresh-20260912/** -text whitespace=cr-at-eol
|
harness/experiments/source-alias-rename-refresh-20260912/** -text whitespace=cr-at-eol
|
||||||
harness/experiments/source-alias-rename-native-closure-20260912/** -text whitespace=cr-at-eol
|
harness/experiments/source-alias-rename-native-closure-20260912/** -text whitespace=cr-at-eol
|
||||||
|
# Preserve Text-workspace input, native and review evidence at its recorded bytes.
|
||||||
|
harness/experiments/text-workspace-initial-20260913/** -text whitespace=cr-at-eol
|
||||||
|
harness/experiments/text-workspace-initial-review-20260913/** -text whitespace=cr-at-eol
|
||||||
|
harness/experiments/text-find-selection-20260913/** -text whitespace=cr-at-eol
|
||||||
|
harness/experiments/text-workspace-native2-20260913/** -text whitespace=cr-at-eol
|
||||||
|
harness/experiments/text-workspace-followup-review-20260913/** -text whitespace=cr-at-eol
|
||||||
|
harness/experiments/text-workspace-native3-20260913/** -text whitespace=cr-at-eol
|
||||||
|
# These checksum-bound baseline/expected fixtures deliberately end with blank lines.
|
||||||
|
harness/experiments/text-workspace-native2-20260913/fixtures/**/*.arcadia whitespace=-blank-at-eof,cr-at-eol
|
||||||
|
# Captured process streams retain intentional blank lines and diagnostic spacing.
|
||||||
|
harness/experiments/text-find-selection-20260913/**/*.log -whitespace
|
||||||
|
harness/experiments/text-workspace-initial-20260913/**/*.log -whitespace
|
||||||
|
harness/experiments/text-workspace-native2-20260913/**/*.log -whitespace
|
||||||
|
harness/experiments/text-workspace-native3-20260913/**/*.log -whitespace
|
||||||
|
|||||||
+168
-56
@@ -9,6 +9,7 @@ mod hosted;
|
|||||||
mod review_navigation_tests;
|
mod review_navigation_tests;
|
||||||
pub(crate) mod source_rename;
|
pub(crate) mod source_rename;
|
||||||
mod source_symbols;
|
mod source_symbols;
|
||||||
|
pub(crate) mod text_workspace;
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod transition_context_tests;
|
mod transition_context_tests;
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
@@ -415,8 +416,7 @@ pub enum Message {
|
|||||||
IncludesLoaded(u64, Result<DiskProject, String>),
|
IncludesLoaded(u64, Result<DiskProject, String>),
|
||||||
Lint(u64),
|
Lint(u64),
|
||||||
Linted(u64, Result<Vec<SourceDiagnostic>, String>),
|
Linted(u64, Result<Vec<SourceDiagnostic>, String>),
|
||||||
SourceDiagnostic(usize),
|
TextWorkspace(text_workspace::Event),
|
||||||
SourceRelated(SourceLocation),
|
|
||||||
SourceViewport(Option<Id>),
|
SourceViewport(Option<Id>),
|
||||||
SourceSymbols(
|
SourceSymbols(
|
||||||
crate::source_navigation::SymbolContext,
|
crate::source_navigation::SymbolContext,
|
||||||
@@ -503,6 +503,7 @@ pub struct App {
|
|||||||
pub source_navigation: crate::source_navigation::State,
|
pub source_navigation: crate::source_navigation::State,
|
||||||
source_find_instance: Id,
|
source_find_instance: Id,
|
||||||
pub source_symbols: crate::source_navigation::SymbolState,
|
pub source_symbols: crate::source_navigation::SymbolState,
|
||||||
|
pub text_workspace: text_workspace::State,
|
||||||
pub source_rename: source_rename::State,
|
pub source_rename: source_rename::State,
|
||||||
pub model_issues: Vec<validation::Issue>,
|
pub model_issues: Vec<validation::Issue>,
|
||||||
pub migration: Option<persistence::MigrationReport>,
|
pub migration: Option<persistence::MigrationReport>,
|
||||||
@@ -611,6 +612,7 @@ impl App {
|
|||||||
source_navigation: crate::source_navigation::State::default(),
|
source_navigation: crate::source_navigation::State::default(),
|
||||||
source_find_instance: Id::new_v4(),
|
source_find_instance: Id::new_v4(),
|
||||||
source_symbols: crate::source_navigation::SymbolState::default(),
|
source_symbols: crate::source_navigation::SymbolState::default(),
|
||||||
|
text_workspace: text_workspace::State::default(),
|
||||||
source_rename: source_rename::State::default(),
|
source_rename: source_rename::State::default(),
|
||||||
model_issues,
|
model_issues,
|
||||||
migration: None,
|
migration: None,
|
||||||
@@ -660,10 +662,35 @@ impl App {
|
|||||||
fn sync_source(&mut self) {
|
fn sync_source(&mut self) {
|
||||||
self.sync_source_with_alias_editor(None);
|
self.sync_source_with_alias_editor(None);
|
||||||
}
|
}
|
||||||
|
fn publish_source_diagnostics(&mut self, diagnostics: Vec<SourceDiagnostic>) {
|
||||||
|
self.source_diagnostics = diagnostics;
|
||||||
|
self.text_workspace.publish_diagnostics(self.source_key());
|
||||||
|
}
|
||||||
|
/// A different source destination owns a new navigation/presentation session.
|
||||||
|
/// Only diagnostics proven current before this identity-only change may be
|
||||||
|
/// republished for it; stale source locations must not become fresh again.
|
||||||
|
fn reset_source_navigation_session(&mut self) {
|
||||||
|
let diagnostics_current = self
|
||||||
|
.text_workspace
|
||||||
|
.diagnostic_publication()
|
||||||
|
.is_some_and(|publication| publication.source() == self.source_key());
|
||||||
|
self.source_workspace.reset_navigation_session();
|
||||||
|
self.clear_source_presentation();
|
||||||
|
if diagnostics_current {
|
||||||
|
self.publish_source_diagnostics(self.source_diagnostics.clone());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn clear_source_presentation(&mut self) {
|
||||||
|
let in_flight = self.source_symbols.in_flight;
|
||||||
|
self.source_symbols = crate::source_navigation::SymbolState::default();
|
||||||
|
self.source_symbols.in_flight = in_flight;
|
||||||
|
self.source_jump = None;
|
||||||
|
self.text_workspace.reset();
|
||||||
|
}
|
||||||
fn sync_source_with_alias_editor(&mut self, hint: Option<source_rename::EditorRefresh<'_>>) {
|
fn sync_source_with_alias_editor(&mut self, hint: Option<source_rename::EditorRefresh<'_>>) {
|
||||||
self.source_workspace.accept(self.document.bundle());
|
self.source_workspace.accept(self.document.bundle());
|
||||||
self.show_source_file_with_alias_editor(false, hint);
|
self.show_source_file_with_alias_editor(false, hint);
|
||||||
self.source_diagnostics = self.document.compiled().diagnostics.clone();
|
self.publish_source_diagnostics(self.document.compiled().diagnostics.clone());
|
||||||
self.source_version += 1;
|
self.source_version += 1;
|
||||||
self.lint_requested = None;
|
self.lint_requested = None;
|
||||||
}
|
}
|
||||||
@@ -804,7 +831,7 @@ impl App {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(issues) => {
|
Err(issues) => {
|
||||||
self.source_diagnostics = issues;
|
self.publish_source_diagnostics(issues);
|
||||||
self.status = "Source contains errors. Your draft is preserved.".into();
|
self.status = "Source contains errors. Your draft is preserved.".into();
|
||||||
self.page = Page::Text;
|
self.page = Page::Text;
|
||||||
false
|
false
|
||||||
@@ -959,6 +986,7 @@ impl App {
|
|||||||
let lint_running = self.lint_running;
|
let lint_running = self.lint_running;
|
||||||
let navigation_in_flight = self.source_symbols.in_flight;
|
let navigation_in_flight = self.source_symbols.in_flight;
|
||||||
let rename_in_flight = self.source_rename.in_flight;
|
let rename_in_flight = self.source_rename.in_flight;
|
||||||
|
let menu_sequence = self.menu_sequence;
|
||||||
let guide = std::mem::take(&mut self.guide);
|
let guide = std::mem::take(&mut self.guide);
|
||||||
let mut hosted = std::mem::take(&mut self.hosted);
|
let mut hosted = std::mem::take(&mut self.hosted);
|
||||||
hosted.leave_document();
|
hosted.leave_document();
|
||||||
@@ -972,6 +1000,7 @@ impl App {
|
|||||||
self.lint_running = lint_running;
|
self.lint_running = lint_running;
|
||||||
self.source_symbols.in_flight = navigation_in_flight;
|
self.source_symbols.in_flight = navigation_in_flight;
|
||||||
self.source_rename.in_flight = rename_in_flight;
|
self.source_rename.in_flight = rename_in_flight;
|
||||||
|
self.menu_sequence = menu_sequence;
|
||||||
self.guide = guide;
|
self.guide = guide;
|
||||||
self.path = path;
|
self.path = path;
|
||||||
self.status = "Project ready".into();
|
self.status = "Project ready".into();
|
||||||
@@ -1069,7 +1098,7 @@ impl App {
|
|||||||
pub fn view(&self) -> Element<'_, Message> {
|
pub fn view(&self) -> Element<'_, Message> {
|
||||||
let base = crate::context_menu::Popup::new(
|
let base = crate::context_menu::Popup::new(
|
||||||
crate::views::view(self),
|
crate::views::view(self),
|
||||||
crate::model_menu::popup(self),
|
crate::model_menu::popup(self).or_else(|| self.text_workspace_menu()),
|
||||||
)
|
)
|
||||||
.into();
|
.into();
|
||||||
crate::source_navigation::interaction::observe(
|
crate::source_navigation::interaction::observe(
|
||||||
@@ -1086,13 +1115,14 @@ impl App {
|
|||||||
// Use one captured-Escape bridge: a focused Find input consumes
|
// Use one captured-Escape bridge: a focused Find input consumes
|
||||||
// Escape, while modal priority remains in the ordinary handler.
|
// Escape, while modal priority remains in the ordinary handler.
|
||||||
behavior::creation::subscription(
|
behavior::creation::subscription(
|
||||||
self.behavior.creation.has_pending()
|
self.text_workspace.menu().is_none()
|
||||||
|| self.behavior.source_active()
|
&& (self.behavior.creation.has_pending()
|
||||||
|| (self.page == Page::Text
|
|| self.behavior.source_active()
|
||||||
&& (self.source_symbols.open
|
|| (self.page == Page::Text
|
||||||
|| self.source_navigation.open
|
&& (self.text_workspace.drawer().is_some()
|
||||||
|| self.source_rename.open())
|
|| self.source_navigation.open
|
||||||
&& self.architecture.is_none()),
|
|| self.source_rename.open())
|
||||||
|
&& self.architecture.is_none())),
|
||||||
)
|
)
|
||||||
.map(|()| Message::Escape),
|
.map(|()| Message::Escape),
|
||||||
iced::event::listen_with(|event, status, _| {
|
iced::event::listen_with(|event, status, _| {
|
||||||
@@ -1139,6 +1169,11 @@ impl App {
|
|||||||
])
|
])
|
||||||
}
|
}
|
||||||
pub fn update(&mut self, message: Message) -> Task<Message> {
|
pub fn update(&mut self, message: Message) -> Task<Message> {
|
||||||
|
// Captured Text commands validate their origin before they can
|
||||||
|
// invalidate that same origin or pass into existing command handlers.
|
||||||
|
if let Message::TextWorkspace(event) = message {
|
||||||
|
return self.text_workspace_event(event);
|
||||||
|
}
|
||||||
if let Message::SourceRename(event) = &message
|
if let Message::SourceRename(event) = &message
|
||||||
&& !self.source_rename_envelope(event)
|
&& !self.source_rename_envelope(event)
|
||||||
{
|
{
|
||||||
@@ -1167,6 +1202,24 @@ impl App {
|
|||||||
{
|
{
|
||||||
return Task::none();
|
return Task::none();
|
||||||
}
|
}
|
||||||
|
// Retaining result data does not retain authority for an old row click.
|
||||||
|
if let Message::SourceSymbols(
|
||||||
|
_,
|
||||||
|
crate::source_navigation::SymbolEvent::Choose { stamp, visit, .. },
|
||||||
|
) = &message
|
||||||
|
&& (self.text_workspace.drawer() != Some(text_workspace::DrawerTab::References)
|
||||||
|
|| !self.source_navigation_available()
|
||||||
|
|| stamp.snapshot != self.source_key()
|
||||||
|
|| *visit != self.text_workspace.drawer_visit()
|
||||||
|
|| self
|
||||||
|
.source_symbols
|
||||||
|
.results
|
||||||
|
.as_ref()
|
||||||
|
.is_none_or(|results| results.stamp != *stamp))
|
||||||
|
{
|
||||||
|
return Task::none();
|
||||||
|
}
|
||||||
|
|
||||||
// Internal results and geometry do not constitute a new user intent.
|
// Internal results and geometry do not constitute a new user intent.
|
||||||
// Process query completion even behind a modal to release its worker slot;
|
// Process query completion even behind a modal to release its worker slot;
|
||||||
// its handler independently refuses navigation outside the live editor.
|
// its handler independently refuses navigation outside the live editor.
|
||||||
@@ -1176,6 +1229,38 @@ impl App {
|
|||||||
if let Message::SourceRenameReady(completion) = message {
|
if let Message::SourceRenameReady(completion) = message {
|
||||||
return self.source_rename_ready(completion);
|
return self.source_rename_ready(completion);
|
||||||
}
|
}
|
||||||
|
if self.text_workspace.menu().is_some() {
|
||||||
|
if matches!(
|
||||||
|
message,
|
||||||
|
Message::Escape | Message::Request(Pending::Close(_))
|
||||||
|
) {
|
||||||
|
self.text_workspace.dismiss_menu();
|
||||||
|
self.source_interaction();
|
||||||
|
return Task::none();
|
||||||
|
}
|
||||||
|
// Global subscriptions can receive captured keyboard input.
|
||||||
|
// A Text menu owns those commands while passive work can finish.
|
||||||
|
if !matches!(
|
||||||
|
message,
|
||||||
|
Message::CheckpointWritten(..)
|
||||||
|
| Message::CheckpointLoaded(..)
|
||||||
|
| Message::CheckpointTick
|
||||||
|
| Message::WindowResized(_)
|
||||||
|
| Message::CanvasResized(_)
|
||||||
|
| Message::SourceViewport(_)
|
||||||
|
| Message::Lint(_)
|
||||||
|
| Message::Linted(..)
|
||||||
|
| Message::Saved(_)
|
||||||
|
| Message::Hosted(crate::hosted::Event::Completed(..))
|
||||||
|
| Message::Loaded(_)
|
||||||
|
| Message::IncludesLoaded(..)
|
||||||
|
| Message::SavePath(_)
|
||||||
|
| Message::SourceRecovered(_)
|
||||||
|
| Message::Exported(_)
|
||||||
|
) {
|
||||||
|
return Task::none();
|
||||||
|
}
|
||||||
|
}
|
||||||
if !matches!(
|
if !matches!(
|
||||||
&message,
|
&message,
|
||||||
Message::CheckpointTick
|
Message::CheckpointTick
|
||||||
@@ -1852,11 +1937,11 @@ impl App {
|
|||||||
// Validate the originating canvas before advancing its input
|
// Validate the originating canvas before advancing its input
|
||||||
// epoch. Actions are then generated with the refreshed context,
|
// epoch. Actions are then generated with the refreshed context,
|
||||||
// while pointer history hidden behind the menu becomes stale.
|
// while pointer history hidden behind the menu becomes stale.
|
||||||
let Some(opened) = crate::model_menu::Opened::new(
|
let Some(token) = self.menu_sequence.checked_add(1) else {
|
||||||
self,
|
self.status = "Reopen the application to start a new menu session.".into();
|
||||||
request,
|
return Task::none();
|
||||||
self.menu_sequence.wrapping_add(1),
|
};
|
||||||
) else {
|
let Some(opened) = crate::model_menu::Opened::new(self, request, token) else {
|
||||||
return Task::none();
|
return Task::none();
|
||||||
};
|
};
|
||||||
self.connection = None;
|
self.connection = None;
|
||||||
@@ -1910,7 +1995,8 @@ impl App {
|
|||||||
}
|
}
|
||||||
Message::Escape => {
|
Message::Escape => {
|
||||||
let restore_source_focus = self.source_navigation_available()
|
let restore_source_focus = self.source_navigation_available()
|
||||||
&& (self.source_navigation.open || self.source_symbols.open);
|
&& (self.source_navigation.open || self.text_workspace.drawer().is_some());
|
||||||
|
let dismiss_find_only = restore_source_focus && self.source_navigation.open;
|
||||||
if self.behavior.source_back() {
|
if self.behavior.source_back() {
|
||||||
self.status =
|
self.status =
|
||||||
"Returned to the unchanged parent form; no source was created.".into();
|
"Returned to the unchanged parent form; no source was created.".into();
|
||||||
@@ -1927,9 +2013,11 @@ impl App {
|
|||||||
self.status = "Drawing cancelled · Select / move is active".into();
|
self.status = "Drawing cancelled · Select / move is active".into();
|
||||||
}
|
}
|
||||||
self.source_navigation.open = false;
|
self.source_navigation.open = false;
|
||||||
self.source_symbols.open = false;
|
// Popup/modal priority was handled above. In the available Text
|
||||||
self.source_symbols.results = None;
|
// workspace, one Escape dismisses Find before the drawer beneath it.
|
||||||
self.source_symbols.notice = None;
|
if !dismiss_find_only {
|
||||||
|
self.text_workspace.show_drawer(None);
|
||||||
|
}
|
||||||
if restore_source_focus {
|
if restore_source_focus {
|
||||||
self.restore_source_editor_focus();
|
self.restore_source_editor_focus();
|
||||||
}
|
}
|
||||||
@@ -2907,7 +2995,7 @@ impl App {
|
|||||||
.edit(after.clone(), self.source_editor.cursor());
|
.edit(after.clone(), self.source_editor.cursor());
|
||||||
self.source_snapshot = Arc::from(after);
|
self.source_snapshot = Arc::from(after);
|
||||||
self.source_version += 1;
|
self.source_version += 1;
|
||||||
self.source_diagnostics.clear();
|
self.publish_source_diagnostics(Vec::new());
|
||||||
let version = self.source_version;
|
let version = self.source_version;
|
||||||
return Task::perform(
|
return Task::perform(
|
||||||
async move {
|
async move {
|
||||||
@@ -2919,10 +3007,12 @@ impl App {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Message::SourceFile(path) => {
|
Message::SourceFile(path) => {
|
||||||
if self
|
if path != self.source_workspace.active
|
||||||
.source_workspace
|
&& self.source_workspace.files.contains_key(&path)
|
||||||
.switch(&path, self.source_editor.cursor())
|
|
||||||
{
|
{
|
||||||
|
let departure =
|
||||||
|
crate::source_navigation::selection::capture(&mut self.source_editor);
|
||||||
|
self.source_workspace.switch(&path, departure);
|
||||||
self.show_source_file(true);
|
self.show_source_file(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2970,8 +3060,13 @@ impl App {
|
|||||||
}
|
}
|
||||||
self.invalidate_source_rename("Disk recovery changed this source context. Your replacement is retained; close and invoke Rename again.");
|
self.invalidate_source_rename("Disk recovery changed this source context. Your replacement is retained; close and invoke Rename again.");
|
||||||
self.pending_recovery = None;
|
self.pending_recovery = None;
|
||||||
self.source_diagnostics
|
let diagnostics = self
|
||||||
.retain(|issue| issue.diagnostic.code != "pending_save");
|
.source_diagnostics
|
||||||
|
.iter()
|
||||||
|
.filter(|issue| issue.diagnostic.code != "pending_save")
|
||||||
|
.cloned()
|
||||||
|
.collect();
|
||||||
|
self.publish_source_diagnostics(diagnostics);
|
||||||
match receipt.disk {
|
match receipt.disk {
|
||||||
Ok(disk) if !self.source_workspace.applied => {
|
Ok(disk) if !self.source_workspace.applied => {
|
||||||
self.open_source_project(disk)
|
self.open_source_project(disk)
|
||||||
@@ -2983,7 +3078,7 @@ impl App {
|
|||||||
|| self.path.as_ref() == Some(&receipt.target)
|
|| self.path.as_ref() == Some(&receipt.target)
|
||||||
{
|
{
|
||||||
if self.path.as_ref() != Some(&receipt.target) {
|
if self.path.as_ref() != Some(&receipt.target) {
|
||||||
self.source_workspace.reset_navigation_session();
|
self.reset_source_navigation_session();
|
||||||
}
|
}
|
||||||
self.path = Some(receipt.target);
|
self.path = Some(receipt.target);
|
||||||
self.document.bind_repair_baseline(disk.reachable_bundle());
|
self.document.bind_repair_baseline(disk.reachable_bundle());
|
||||||
@@ -3017,7 +3112,7 @@ impl App {
|
|||||||
self.source_workspace
|
self.source_workspace
|
||||||
.discovered(&disk.bundle, disk.reachable.clone());
|
.discovered(&disk.bundle, disk.reachable.clone());
|
||||||
self.source_version += 1;
|
self.source_version += 1;
|
||||||
self.source_diagnostics = disk.diagnostics.clone();
|
self.publish_source_diagnostics(disk.diagnostics.clone());
|
||||||
self.disk_project = Some(disk);
|
self.disk_project = Some(disk);
|
||||||
self.status = "Included files loaded; existing drafts retained.".into();
|
self.status = "Included files loaded; existing drafts retained.".into();
|
||||||
return self.request_lint();
|
return self.request_lint();
|
||||||
@@ -3038,21 +3133,13 @@ impl App {
|
|||||||
self.lint_running = None;
|
self.lint_running = None;
|
||||||
if version == self.source_version {
|
if version == self.source_version {
|
||||||
match result {
|
match result {
|
||||||
Ok(diagnostics) => self.source_diagnostics = diagnostics,
|
Ok(diagnostics) => self.publish_source_diagnostics(diagnostics),
|
||||||
Err(error) => self.status = format!("Source checks failed: {error}"),
|
Err(error) => self.status = format!("Source checks failed: {error}"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return self.start_pending_lint();
|
return self.start_pending_lint();
|
||||||
}
|
}
|
||||||
Message::SourceDiagnostic(index) => {
|
Message::TextWorkspace(_) => return Task::none(), // checked before generic input
|
||||||
if let Some(issue) = self.source_diagnostics.get(index) {
|
|
||||||
self.jump_to_source(SourceLocation {
|
|
||||||
path: issue.path.clone(),
|
|
||||||
span: issue.diagnostic.span,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Message::SourceRelated(location) => self.jump_to_source(location),
|
|
||||||
Message::SourceViewport(ticket) => return self.source_viewport(ticket),
|
Message::SourceViewport(ticket) => return self.source_viewport(ticket),
|
||||||
Message::SourceFindClose(..) => return Task::none(), // update checks and unwraps it
|
Message::SourceFindClose(..) => return Task::none(), // update checks and unwraps it
|
||||||
Message::SourceSymbols(_, event) => return self.source_symbol_event(event),
|
Message::SourceSymbols(_, event) => return self.source_symbol_event(event),
|
||||||
@@ -3076,7 +3163,7 @@ impl App {
|
|||||||
if self.source_workspace.undo(redo) {
|
if self.source_workspace.undo(redo) {
|
||||||
self.show_source_file(true);
|
self.show_source_file(true);
|
||||||
self.source_version += 1;
|
self.source_version += 1;
|
||||||
self.source_diagnostics.clear();
|
self.publish_source_diagnostics(Vec::new());
|
||||||
return self.request_lint();
|
return self.request_lint();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3224,7 +3311,7 @@ impl App {
|
|||||||
self.sync_source();
|
self.sync_source();
|
||||||
}
|
}
|
||||||
if self.path.as_ref() != Some(&receipt.path) {
|
if self.path.as_ref() != Some(&receipt.path) {
|
||||||
self.source_workspace.reset_navigation_session();
|
self.reset_source_navigation_session();
|
||||||
}
|
}
|
||||||
self.disk_project = Some(disk);
|
self.disk_project = Some(disk);
|
||||||
self.path = Some(receipt.path);
|
self.path = Some(receipt.path);
|
||||||
@@ -3766,7 +3853,7 @@ impl App {
|
|||||||
self.source_workspace
|
self.source_workspace
|
||||||
.discovered(&disk.bundle, disk.reachable.clone());
|
.discovered(&disk.bundle, disk.reachable.clone());
|
||||||
self.show_source_file(false);
|
self.show_source_file(false);
|
||||||
self.source_diagnostics = self.document.compiled().diagnostics.clone();
|
self.publish_source_diagnostics(self.document.compiled().diagnostics.clone());
|
||||||
self.migration = self.document.compiled().decoded.migration.clone();
|
self.migration = self.document.compiled().decoded.migration.clone();
|
||||||
if self.migration.is_some() {
|
if self.migration.is_some() {
|
||||||
self.status = "Imported earlier source schema. Review Model checks; Save all explicitly writes the upgraded source while retaining comments and includes.".into();
|
self.status = "Imported earlier source schema. Review Model checks; Save all explicitly writes the upgraded source while retaining comments and includes.".into();
|
||||||
@@ -3786,9 +3873,10 @@ impl App {
|
|||||||
self.path = Some(path);
|
self.path = Some(path);
|
||||||
self.document.bind_repair_baseline(disk.reachable_bundle());
|
self.document.bind_repair_baseline(disk.reachable_bundle());
|
||||||
self.source_workspace = Workspace::new(&disk.bundle, false);
|
self.source_workspace = Workspace::new(&disk.bundle, false);
|
||||||
|
self.clear_source_presentation();
|
||||||
self.source_workspace.set_reachable(disk.reachable.clone());
|
self.source_workspace.set_reachable(disk.reachable.clone());
|
||||||
self.show_source_file(false);
|
self.show_source_file(false);
|
||||||
self.source_diagnostics = error.diagnostics().to_vec();
|
self.publish_source_diagnostics(error.diagnostics().to_vec());
|
||||||
self.source_version += 1;
|
self.source_version += 1;
|
||||||
self.lint_requested = None;
|
self.lint_requested = None;
|
||||||
self.page = Page::Text;
|
self.page = Page::Text;
|
||||||
@@ -3818,17 +3906,14 @@ impl App {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn jump_to_source(&mut self, location: SourceLocation) {
|
fn jump_to_source(&mut self, location: SourceLocation) {
|
||||||
self.source_workspace
|
let Some(target) = self.source_workspace.files.get(&location.path) else {
|
||||||
.switch(&location.path, self.source_editor.cursor());
|
|
||||||
if self.source_workspace.active != location.path {
|
|
||||||
self.status = format!(
|
self.status = format!(
|
||||||
"{} has not been loaded. Use Load includes or create the missing file.",
|
"{} has not been loaded. Use Load includes or create the missing file.",
|
||||||
location.path
|
location.path
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
};
|
||||||
self.show_source_file(false);
|
let source = &target.text;
|
||||||
let source = self.source_workspace.text();
|
|
||||||
let mut offset = location.span.start.min(source.len());
|
let mut offset = location.span.start.min(source.len());
|
||||||
while !source.is_char_boundary(offset) {
|
while !source.is_char_boundary(offset) {
|
||||||
offset -= 1;
|
offset -= 1;
|
||||||
@@ -3838,6 +3923,9 @@ impl App {
|
|||||||
let column = prefix
|
let column = prefix
|
||||||
.rfind('\n')
|
.rfind('\n')
|
||||||
.map_or(offset, |start| offset - start - 1);
|
.map_or(offset, |start| offset - start - 1);
|
||||||
|
let departure = crate::source_navigation::selection::capture(&mut self.source_editor);
|
||||||
|
self.source_workspace.switch(&location.path, departure);
|
||||||
|
self.show_source_file(false);
|
||||||
self.queue_source_reveal(
|
self.queue_source_reveal(
|
||||||
text_editor::Cursor {
|
text_editor::Cursor {
|
||||||
position: text_editor::Position { line, column },
|
position: text_editor::Position { line, column },
|
||||||
@@ -3864,6 +3952,7 @@ impl App {
|
|||||||
.is_ok_and(|includes| includes.iter().any(|include| include.target == path))
|
.is_ok_and(|includes| includes.iter().any(|include| include.target == path))
|
||||||
});
|
});
|
||||||
let mut changed = bundle.clone();
|
let mut changed = bundle.clone();
|
||||||
|
let mut changed_entry = None;
|
||||||
if !already_included {
|
if !already_included {
|
||||||
if self.source_dirty() {
|
if self.source_dirty() {
|
||||||
return Err(
|
return Err(
|
||||||
@@ -3883,16 +3972,30 @@ impl App {
|
|||||||
serde_json::to_string(&path).map_err(|e| e.to_string())?
|
serde_json::to_string(&path).map_err(|e| e.to_string())?
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
self.source_workspace
|
changed_entry = Some(entry.clone());
|
||||||
.switch(&bundle.entry, self.source_editor.cursor());
|
}
|
||||||
self.source_workspace
|
// All fallible preparation is complete. The intermediate entry buffer
|
||||||
.edit(entry.clone(), self.source_editor.cursor());
|
// is not displayed, so it must not receive the outgoing editor's cursor.
|
||||||
|
let original_path = self.source_workspace.active.clone();
|
||||||
|
let departure = crate::source_navigation::selection::capture(&mut self.source_editor);
|
||||||
|
if let Some(entry) = changed_entry {
|
||||||
|
self.source_workspace.switch(&bundle.entry, departure);
|
||||||
|
let cursor = if self.source_workspace.active == original_path {
|
||||||
|
departure
|
||||||
|
} else {
|
||||||
|
self.source_workspace.files[&self.source_workspace.active].cursor
|
||||||
|
};
|
||||||
|
self.source_workspace.edit(entry, cursor);
|
||||||
}
|
}
|
||||||
changed.files.insert(path.clone(), String::new());
|
changed.files.insert(path.clone(), String::new());
|
||||||
self.source_workspace
|
self.source_workspace
|
||||||
.discovered(&changed, changed.files.keys().cloned().collect());
|
.discovered(&changed, changed.files.keys().cloned().collect());
|
||||||
self.source_workspace
|
let cursor = if self.source_workspace.active == original_path {
|
||||||
.switch(&path, self.source_editor.cursor());
|
departure
|
||||||
|
} else {
|
||||||
|
self.source_workspace.files[&self.source_workspace.active].cursor
|
||||||
|
};
|
||||||
|
self.source_workspace.switch(&path, cursor);
|
||||||
self.source_workspace.new_path.clear();
|
self.source_workspace.new_path.clear();
|
||||||
self.show_source_file(true);
|
self.show_source_file(true);
|
||||||
self.source_version += 1;
|
self.source_version += 1;
|
||||||
@@ -4838,7 +4941,16 @@ mod source_project_tests {
|
|||||||
assert_eq!(app.project(), &project);
|
assert_eq!(app.project(), &project);
|
||||||
assert!(!app.apply_source());
|
assert!(!app.apply_source());
|
||||||
assert_eq!(app.source_diagnostics[0].path, fragment);
|
assert_eq!(app.source_diagnostics[0].path, fragment);
|
||||||
send(&mut app, Message::SourceDiagnostic(0));
|
send(&mut app, Message::Page(Page::Text));
|
||||||
|
let _ = app.show_text_drawer(Some(text_workspace::DrawerTab::Problems));
|
||||||
|
let issue = &app.source_diagnostics[0];
|
||||||
|
let message = app
|
||||||
|
.text_diagnostic_message(SourceLocation {
|
||||||
|
path: issue.path.clone(),
|
||||||
|
span: issue.diagnostic.span,
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
send(&mut app, message);
|
||||||
assert_eq!(app.source_workspace.active, fragment);
|
assert_eq!(app.source_workspace.active, fragment);
|
||||||
assert_eq!(app.source_editor.text(), "? invalid source");
|
assert_eq!(app.source_editor.text(), "? invalid source");
|
||||||
send(&mut app, Message::RevertSource);
|
send(&mut app, Message::RevertSource);
|
||||||
|
|||||||
@@ -219,7 +219,7 @@ impl App {
|
|||||||
|| session.connection.base() != request.connection.base()
|
|| session.connection.base() != request.connection.base()
|
||||||
})
|
})
|
||||||
{
|
{
|
||||||
self.source_workspace.reset_navigation_session();
|
self.reset_source_navigation_session();
|
||||||
}
|
}
|
||||||
self.hosted.session = Some(Session {
|
self.hosted.session = Some(Session {
|
||||||
connection: request.connection.clone(),
|
connection: request.connection.clone(),
|
||||||
@@ -359,7 +359,7 @@ impl App {
|
|||||||
|| session.connection.base() != connection.base()
|
|| session.connection.base() != connection.base()
|
||||||
})
|
})
|
||||||
{
|
{
|
||||||
self.source_workspace.reset_navigation_session();
|
self.reset_source_navigation_session();
|
||||||
}
|
}
|
||||||
self.hosted.session = Some(Session {
|
self.hosted.session = Some(Session {
|
||||||
connection,
|
connection,
|
||||||
|
|||||||
@@ -200,7 +200,7 @@ impl App {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn rename_admission(&self) -> Result<(), String> {
|
pub(super) fn rename_admission(&self) -> Result<(), String> {
|
||||||
if self.page != Page::Text
|
if self.page != Page::Text
|
||||||
|| self.busy
|
|| self.busy
|
||||||
|| self.pending.is_some()
|
|| self.pending.is_some()
|
||||||
|
|||||||
@@ -284,7 +284,7 @@ fn alias_editor_sync_fallback_restores_accepted_display_and_preserves_model_hist
|
|||||||
assert_ne!(app.source_navigation.label(), "0 matches");
|
assert_ne!(app.source_navigation.label(), "0 matches");
|
||||||
let mut invalid = original_source.clone();
|
let mut invalid = original_source.clone();
|
||||||
invalid.files.insert(path.clone(), "?".into());
|
invalid.files.insert(path.clone(), "?".into());
|
||||||
app.source_diagnostics = source_workspace::lint(&invalid);
|
app.publish_source_diagnostics(source_workspace::lint(&invalid));
|
||||||
assert!(!app.source_diagnostics.is_empty());
|
assert!(!app.source_diagnostics.is_empty());
|
||||||
let version = app.source_version;
|
let version = app.source_version;
|
||||||
app.lint_requested = Some(version);
|
app.lint_requested = Some(version);
|
||||||
@@ -824,7 +824,8 @@ fn actual_captured_escape_closes_only_its_priority_owner_and_retains_worker() {
|
|||||||
send(&mut app, Message::SourceRenameReady(ready.clone()));
|
send(&mut app, Message::SourceRenameReady(ready.clone()));
|
||||||
}
|
}
|
||||||
app.source_navigation.open = true;
|
app.source_navigation.open = true;
|
||||||
app.source_symbols.open = true;
|
app.text_workspace
|
||||||
|
.show_drawer(Some(crate::app::text_workspace::DrawerTab::References));
|
||||||
match other_modal {
|
match other_modal {
|
||||||
1 => app.hosted.visible = true,
|
1 => app.hosted.visible = true,
|
||||||
2 => {
|
2 => {
|
||||||
@@ -849,7 +850,7 @@ fn actual_captured_escape_closes_only_its_priority_owner_and_retains_worker() {
|
|||||||
}
|
}
|
||||||
assert!(!app.source_rename.open());
|
assert!(!app.source_rename.open());
|
||||||
assert!(
|
assert!(
|
||||||
app.source_symbols.open && app.source_navigation.open,
|
app.text_workspace.drawer().is_some() && app.source_navigation.open,
|
||||||
"rename Escape does not fall through"
|
"rename Escape does not fall through"
|
||||||
);
|
);
|
||||||
if pending {
|
if pending {
|
||||||
@@ -858,7 +859,7 @@ fn actual_captured_escape_closes_only_its_priority_owner_and_retains_worker() {
|
|||||||
assert!(!app.source_rename.open());
|
assert!(!app.source_rename.open());
|
||||||
}
|
}
|
||||||
assert_eq!(evidence(&app), before);
|
assert_eq!(evidence(&app), before);
|
||||||
app.source_symbols.open = false;
|
app.text_workspace.show_drawer(None);
|
||||||
app.source_navigation.open = false;
|
app.source_navigation.open = false;
|
||||||
assert!(captured_escape(&app).is_empty());
|
assert!(captured_escape(&app).is_empty());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -98,6 +98,7 @@ impl App {
|
|||||||
&& self.workflow.is_none()
|
&& self.workflow.is_none()
|
||||||
&& !self.hosted.visible
|
&& !self.hosted.visible
|
||||||
&& self.model_menu.is_none()
|
&& self.model_menu.is_none()
|
||||||
|
&& self.text_workspace.menu().is_none()
|
||||||
&& self.architecture.is_none()
|
&& self.architecture.is_none()
|
||||||
&& !self.behavior.has_pending()
|
&& !self.behavior.has_pending()
|
||||||
}
|
}
|
||||||
@@ -113,6 +114,12 @@ impl App {
|
|||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// The reviewed diagram-query union is not integrated into this source yet.
|
||||||
|
/// Its eventual adapter must return the peer's captured chooser message.
|
||||||
|
pub(super) fn text_diagram_usages_message(&self) -> Option<Message> {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
|
||||||
pub fn source_reveal_ticket(&self) -> Option<Id> {
|
pub fn source_reveal_ticket(&self) -> Option<Id> {
|
||||||
self.source_symbols
|
self.source_symbols
|
||||||
.reveal
|
.reveal
|
||||||
@@ -194,20 +201,30 @@ impl App {
|
|||||||
}
|
}
|
||||||
match event {
|
match event {
|
||||||
nav::SymbolEvent::Close => {
|
nav::SymbolEvent::Close => {
|
||||||
self.source_symbols.open = false;
|
return self.show_text_drawer(None);
|
||||||
self.source_symbols.results = None;
|
|
||||||
self.source_symbols.notice = None;
|
|
||||||
}
|
}
|
||||||
nav::SymbolEvent::Back => {
|
nav::SymbolEvent::Back => {
|
||||||
self.source_symbol_back();
|
self.source_symbol_back();
|
||||||
// A successful Back needs no empty results panel. Retain an
|
// A successful Back needs no empty results panel. Retain an
|
||||||
// already open panel, or reveal an actionable return notice.
|
// already open panel, or reveal an actionable return notice.
|
||||||
self.source_symbols.open |= self.source_symbols.notice.is_some();
|
if self.source_symbols.notice.is_some() {
|
||||||
|
self.text_workspace
|
||||||
|
.show_drawer(Some(text_workspace::DrawerTab::References));
|
||||||
|
let refs = self.text_workspace.references();
|
||||||
|
return iced::widget::operation::scroll_to(
|
||||||
|
self.text_workspace.reference_scroll_id(),
|
||||||
|
iced::widget::scrollable::AbsoluteOffset {
|
||||||
|
x: 0.,
|
||||||
|
y: refs.scroll_y(),
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
nav::SymbolEvent::Choose {
|
nav::SymbolEvent::Choose {
|
||||||
stamp,
|
stamp,
|
||||||
reference,
|
reference,
|
||||||
index,
|
index,
|
||||||
|
..
|
||||||
} => {
|
} => {
|
||||||
let Some(results) = self.source_symbols.results.clone() else {
|
let Some(results) = self.source_symbols.results.clone() else {
|
||||||
return Task::none();
|
return Task::none();
|
||||||
@@ -245,7 +262,8 @@ impl App {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn start_source_query(&mut self, action: query::Action) -> Task<Message> {
|
fn start_source_query(&mut self, action: query::Action) -> Task<Message> {
|
||||||
self.source_symbols.open = true;
|
self.text_workspace
|
||||||
|
.show_drawer(Some(text_workspace::DrawerTab::References));
|
||||||
if !nav::interaction::is_current(
|
if !nav::interaction::is_current(
|
||||||
&self.source_symbols.raw_interaction,
|
&self.source_symbols.raw_interaction,
|
||||||
self.source_symbols.raw_interaction.load(Ordering::SeqCst),
|
self.source_symbols.raw_interaction.load(Ordering::SeqCst),
|
||||||
@@ -266,7 +284,7 @@ impl App {
|
|||||||
self.source_symbols.serial = match self.source_symbols.serial.checked_add(1) {
|
self.source_symbols.serial = match self.source_symbols.serial.checked_add(1) {
|
||||||
Some(serial) => serial,
|
Some(serial) => serial,
|
||||||
None => {
|
None => {
|
||||||
self.source_workspace.reset_navigation_session();
|
self.reset_source_navigation_session();
|
||||||
self.source_symbols.back.clear();
|
self.source_symbols.back.clear();
|
||||||
self.source_symbols.cache = None;
|
self.source_symbols.cache = None;
|
||||||
0
|
0
|
||||||
@@ -306,9 +324,12 @@ impl App {
|
|||||||
};
|
};
|
||||||
self.source_symbols.in_flight = Some(request.job);
|
self.source_symbols.in_flight = Some(request.job);
|
||||||
self.source_symbols.request = Some(request.clone());
|
self.source_symbols.request = Some(request.clone());
|
||||||
|
self.source_symbols.display_request = Some(request.clone());
|
||||||
|
self.text_workspace
|
||||||
|
.begin_references(request.stamp, request.path.clone());
|
||||||
self.source_symbols.results = None;
|
self.source_symbols.results = None;
|
||||||
self.source_symbols.notice = None;
|
self.source_symbols.notice = None;
|
||||||
Task::perform(
|
let worker = Task::perform(
|
||||||
async move {
|
async move {
|
||||||
let worker_request = request.clone();
|
let worker_request = request.clone();
|
||||||
let result = tokio::task::spawn_blocking(move || {
|
let result = tokio::task::spawn_blocking(move || {
|
||||||
@@ -339,7 +360,14 @@ impl App {
|
|||||||
nav::Completion { request, result }
|
nav::Completion { request, result }
|
||||||
},
|
},
|
||||||
Message::SourceSymbolsReady,
|
Message::SourceSymbolsReady,
|
||||||
)
|
);
|
||||||
|
Task::batch([
|
||||||
|
worker,
|
||||||
|
iced::widget::operation::scroll_to(
|
||||||
|
self.text_workspace.reference_scroll_id(),
|
||||||
|
iced::widget::scrollable::AbsoluteOffset { x: 0., y: 0. },
|
||||||
|
),
|
||||||
|
])
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(super) fn source_symbols_ready(&mut self, completion: nav::Completion) -> Task<Message> {
|
pub(super) fn source_symbols_ready(&mut self, completion: nav::Completion) -> Task<Message> {
|
||||||
@@ -348,11 +376,11 @@ impl App {
|
|||||||
return Task::none();
|
return Task::none();
|
||||||
}
|
}
|
||||||
self.source_symbols.in_flight = None;
|
self.source_symbols.in_flight = None;
|
||||||
let wanted = self
|
let wanted_navigation = self
|
||||||
.source_symbols
|
.source_symbols
|
||||||
.request
|
.request
|
||||||
.take()
|
.take()
|
||||||
.is_some_and(|current| current.job == request.job)
|
.is_some_and(|current| current == request)
|
||||||
&& request.interaction == self.source_symbols.interaction
|
&& request.interaction == self.source_symbols.interaction
|
||||||
&& request.stamp.snapshot == self.source_key()
|
&& request.stamp.snapshot == self.source_key()
|
||||||
&& nav::interaction::is_current(
|
&& nav::interaction::is_current(
|
||||||
@@ -362,14 +390,33 @@ impl App {
|
|||||||
&& request.path == self.source_workspace.active
|
&& request.path == self.source_workspace.active
|
||||||
&& request.cursor == self.source_editor.cursor()
|
&& request.cursor == self.source_editor.cursor()
|
||||||
&& self.source_navigation_available();
|
&& self.source_navigation_available();
|
||||||
if !wanted {
|
let wanted_display = self
|
||||||
|
.source_symbols
|
||||||
|
.display_request
|
||||||
|
.as_ref()
|
||||||
|
.is_some_and(|current| current == &request)
|
||||||
|
&& request.stamp.snapshot == self.source_key();
|
||||||
|
if !wanted_display {
|
||||||
return Task::none();
|
return Task::none();
|
||||||
}
|
}
|
||||||
match completion.result {
|
match completion.result {
|
||||||
Ok((snapshot, results)) if self.source_snapshot_matches(&snapshot) => {
|
Ok((snapshot, results))
|
||||||
|
if self.source_snapshot_matches(&snapshot)
|
||||||
|
&& results.stamp == request.stamp
|
||||||
|
&& results.action == request.action =>
|
||||||
|
{
|
||||||
self.source_symbols.cache = Some(snapshot);
|
self.source_symbols.cache = Some(snapshot);
|
||||||
self.source_symbols.results = Some(results.clone());
|
self.source_symbols.results = Some(results.clone());
|
||||||
if results.disposition == query::Disposition::Direct
|
self.text_workspace.install_reference_files(
|
||||||
|
results.stamp,
|
||||||
|
results
|
||||||
|
.definitions
|
||||||
|
.iter()
|
||||||
|
.map(|row| row.path.clone())
|
||||||
|
.chain(results.references.iter().map(|row| row.path.clone())),
|
||||||
|
);
|
||||||
|
if wanted_navigation
|
||||||
|
&& results.disposition == query::Disposition::Direct
|
||||||
&& let Some(row) = results.definitions.first()
|
&& let Some(row) = results.definitions.first()
|
||||||
{
|
{
|
||||||
self.source_symbol_jump(&row.path, row.position, row.end_position);
|
self.source_symbol_jump(&row.path, row.position, row.end_position);
|
||||||
@@ -404,6 +451,9 @@ impl App {
|
|||||||
Some("That source location is no longer available. Run navigation again.".into());
|
Some("That source location is no longer available. Run navigation again.".into());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// The destination is admitted. Capture effective Word/Line ranges only
|
||||||
|
// now, when this editor is actually about to leave its current position.
|
||||||
|
let departure = nav::selection::capture(&mut self.source_editor);
|
||||||
if let Some(buffer) = self
|
if let Some(buffer) = self
|
||||||
.source_workspace
|
.source_workspace
|
||||||
.files
|
.files
|
||||||
@@ -413,7 +463,7 @@ impl App {
|
|||||||
session: self.source_workspace.session(),
|
session: self.source_workspace.session(),
|
||||||
path: self.source_workspace.active.clone(),
|
path: self.source_workspace.active.clone(),
|
||||||
generation: buffer.generation(),
|
generation: buffer.generation(),
|
||||||
cursor: self.source_editor.cursor(),
|
cursor: departure,
|
||||||
};
|
};
|
||||||
self.source_symbols
|
self.source_symbols
|
||||||
.back
|
.back
|
||||||
@@ -423,8 +473,7 @@ impl App {
|
|||||||
}
|
}
|
||||||
self.source_symbols.back.push(origin);
|
self.source_symbols.back.push(origin);
|
||||||
}
|
}
|
||||||
self.source_workspace
|
self.source_workspace.switch(path, departure);
|
||||||
.switch(path, self.source_editor.cursor());
|
|
||||||
self.show_source_file(false);
|
self.show_source_file(false);
|
||||||
self.queue_source_reveal(cursor, false);
|
self.queue_source_reveal(cursor, false);
|
||||||
}
|
}
|
||||||
@@ -439,7 +488,7 @@ impl App {
|
|||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
let unchanged = origin.generation == buffer.generation();
|
let unchanged = origin.generation == buffer.generation();
|
||||||
let cursor = if unchanged {
|
let mut cursor = if unchanged {
|
||||||
origin.cursor
|
origin.cursor
|
||||||
} else if origin.path == self.source_workspace.active {
|
} else if origin.path == self.source_workspace.active {
|
||||||
self.source_editor.cursor()
|
self.source_editor.cursor()
|
||||||
@@ -453,8 +502,11 @@ impl App {
|
|||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
self.source_workspace
|
let departure = nav::selection::capture(&mut self.source_editor);
|
||||||
.switch(&origin.path, self.source_editor.cursor());
|
if !unchanged && origin.path == self.source_workspace.active {
|
||||||
|
cursor = departure;
|
||||||
|
}
|
||||||
|
self.source_workspace.switch(&origin.path, departure);
|
||||||
self.show_source_file(false);
|
self.show_source_file(false);
|
||||||
self.queue_source_reveal(cursor, false);
|
self.queue_source_reveal(cursor, false);
|
||||||
self.source_symbols.notice =
|
self.source_symbols.notice =
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,628 @@
|
|||||||
|
//! Text-only presentation and captured command envelopes. Source/model authority
|
||||||
|
//! remains in the existing App controllers; dispatch this envelope before the
|
||||||
|
//! generic source_interaction invalidation in App::update.
|
||||||
|
use super::{App, Message};
|
||||||
|
use crate::{context_menu, source_navigation as nav};
|
||||||
|
use iced::{
|
||||||
|
Point, Task,
|
||||||
|
widget::{self, text_editor::Cursor},
|
||||||
|
};
|
||||||
|
use nav::query::{QueryStamp, SnapshotKey};
|
||||||
|
use oa_core::{Id, source_project::SourceLocation};
|
||||||
|
use std::collections::BTreeSet;
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||||
|
pub enum DrawerTab {
|
||||||
|
References,
|
||||||
|
Problems,
|
||||||
|
Status,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||||
|
pub enum Command {
|
||||||
|
Find,
|
||||||
|
GoToLine,
|
||||||
|
Definition,
|
||||||
|
References,
|
||||||
|
RenameAlias,
|
||||||
|
Back,
|
||||||
|
UndoText,
|
||||||
|
RedoText,
|
||||||
|
UndoModel,
|
||||||
|
RedoModel,
|
||||||
|
UndoRename,
|
||||||
|
RevertFile,
|
||||||
|
ShowProblems,
|
||||||
|
ShowStatus,
|
||||||
|
ShowDiagramUsages,
|
||||||
|
}
|
||||||
|
impl Command {
|
||||||
|
fn shortcut(self) -> Option<&'static str> {
|
||||||
|
match self {
|
||||||
|
Self::Find => Some("Ctrl F"),
|
||||||
|
Self::GoToLine => Some("Ctrl G"),
|
||||||
|
Self::Definition => Some("F12"),
|
||||||
|
Self::References => Some("Shift F12"),
|
||||||
|
Self::RenameAlias => Some("F2"),
|
||||||
|
Self::Back => Some("Alt ←"),
|
||||||
|
Self::UndoText => Some("Ctrl Z"),
|
||||||
|
Self::RedoText => Some("Ctrl Y"),
|
||||||
|
_ => None,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn label(self) -> &'static str {
|
||||||
|
match self {
|
||||||
|
Self::Find => "Find in file",
|
||||||
|
Self::GoToLine => "Go to line",
|
||||||
|
Self::Definition => "Go to definition",
|
||||||
|
Self::References => "Find references",
|
||||||
|
Self::RenameAlias => "Rename source alias",
|
||||||
|
Self::Back => "Back in source",
|
||||||
|
Self::UndoText => "Undo text edit",
|
||||||
|
Self::RedoText => "Redo text edit",
|
||||||
|
Self::UndoModel => "Undo model change",
|
||||||
|
Self::RedoModel => "Redo model change",
|
||||||
|
Self::UndoRename => "Undo source rename",
|
||||||
|
Self::RevertFile => "Revert current file",
|
||||||
|
Self::ShowProblems => "Source problems",
|
||||||
|
Self::ShowStatus => "Source status",
|
||||||
|
Self::ShowDiagramUsages => "Show diagram usages",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, PartialEq)]
|
||||||
|
pub struct CommandContext {
|
||||||
|
document: Id,
|
||||||
|
document_revision: u64,
|
||||||
|
source: SnapshotKey,
|
||||||
|
path: String,
|
||||||
|
cursor: Cursor,
|
||||||
|
interaction: Id,
|
||||||
|
}
|
||||||
|
#[derive(Debug, Clone)]
|
||||||
|
pub struct CommandRequest {
|
||||||
|
context: CommandContext,
|
||||||
|
command: Command,
|
||||||
|
}
|
||||||
|
#[derive(Debug, Clone)]
|
||||||
|
pub struct MenuRequest {
|
||||||
|
context: CommandContext,
|
||||||
|
anchor: Point,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||||
|
pub struct DiagnosticPublication {
|
||||||
|
generation: Id,
|
||||||
|
source: SnapshotKey,
|
||||||
|
}
|
||||||
|
impl DiagnosticPublication {
|
||||||
|
pub fn generation(self) -> Id {
|
||||||
|
self.generation
|
||||||
|
}
|
||||||
|
pub fn source(self) -> SnapshotKey {
|
||||||
|
self.source
|
||||||
|
}
|
||||||
|
pub fn target(self, visit: Id, location: SourceLocation) -> DiagnosticTarget {
|
||||||
|
DiagnosticTarget {
|
||||||
|
publication: self,
|
||||||
|
visit,
|
||||||
|
location,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#[derive(Debug, Clone)]
|
||||||
|
pub struct DiagnosticTarget {
|
||||||
|
publication: DiagnosticPublication,
|
||||||
|
visit: Id,
|
||||||
|
location: SourceLocation,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone)]
|
||||||
|
pub enum Event {
|
||||||
|
ShowDrawer(DrawerTab),
|
||||||
|
HideDrawer,
|
||||||
|
ResizeDrawer(f32),
|
||||||
|
ToggleFile {
|
||||||
|
stamp: QueryStamp,
|
||||||
|
visit: Id,
|
||||||
|
path: String,
|
||||||
|
},
|
||||||
|
ReferenceScrolled {
|
||||||
|
stamp: QueryStamp,
|
||||||
|
visit: Id,
|
||||||
|
y: f32,
|
||||||
|
},
|
||||||
|
Command(CommandRequest),
|
||||||
|
OpenMenu(MenuRequest),
|
||||||
|
DismissMenu(Id),
|
||||||
|
Invoke {
|
||||||
|
token: Id,
|
||||||
|
command: Command,
|
||||||
|
},
|
||||||
|
Diagnostic(DiagnosticTarget),
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone)]
|
||||||
|
struct FrozenEntry {
|
||||||
|
command: Command,
|
||||||
|
action: Option<Action>,
|
||||||
|
}
|
||||||
|
#[derive(Debug, Clone)]
|
||||||
|
enum Action {
|
||||||
|
Dispatch(Box<Message>),
|
||||||
|
Drawer(DrawerTab),
|
||||||
|
}
|
||||||
|
#[derive(Debug, Clone)]
|
||||||
|
pub struct Menu {
|
||||||
|
token: Id,
|
||||||
|
popup_token: u64,
|
||||||
|
anchor: Point,
|
||||||
|
context: CommandContext,
|
||||||
|
entries: Vec<FrozenEntry>,
|
||||||
|
}
|
||||||
|
impl Menu {
|
||||||
|
pub fn token(&self) -> Id {
|
||||||
|
self.token
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub struct ReferencePresentation {
|
||||||
|
stamp: Option<QueryStamp>,
|
||||||
|
origin: String,
|
||||||
|
files: BTreeSet<String>,
|
||||||
|
installed: bool,
|
||||||
|
collapsed_files: BTreeSet<String>,
|
||||||
|
scroll_y: f32,
|
||||||
|
}
|
||||||
|
impl Default for ReferencePresentation {
|
||||||
|
fn default() -> Self {
|
||||||
|
Self {
|
||||||
|
stamp: None,
|
||||||
|
origin: String::new(),
|
||||||
|
files: BTreeSet::new(),
|
||||||
|
installed: false,
|
||||||
|
collapsed_files: BTreeSet::new(),
|
||||||
|
scroll_y: 0.,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
impl ReferencePresentation {
|
||||||
|
pub fn stamp(&self) -> Option<QueryStamp> {
|
||||||
|
self.stamp
|
||||||
|
}
|
||||||
|
pub fn scroll_y(&self) -> f32 {
|
||||||
|
self.scroll_y
|
||||||
|
}
|
||||||
|
pub fn collapsed(&self, path: &str) -> bool {
|
||||||
|
self.collapsed_files.contains(path)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub struct State {
|
||||||
|
drawer: Option<DrawerTab>,
|
||||||
|
drawer_visit: Id,
|
||||||
|
drawer_height: f32,
|
||||||
|
references: ReferencePresentation,
|
||||||
|
menu: Option<Menu>,
|
||||||
|
diagnostic_publication: Option<DiagnosticPublication>,
|
||||||
|
}
|
||||||
|
impl Default for State {
|
||||||
|
fn default() -> Self {
|
||||||
|
Self {
|
||||||
|
drawer: None,
|
||||||
|
drawer_visit: Id::new_v4(),
|
||||||
|
drawer_height: 180.,
|
||||||
|
references: ReferencePresentation::default(),
|
||||||
|
menu: None,
|
||||||
|
diagnostic_publication: None,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
impl State {
|
||||||
|
pub fn drawer_visit(&self) -> Id {
|
||||||
|
self.drawer_visit
|
||||||
|
}
|
||||||
|
pub fn reference_scroll_id(&self) -> widget::Id {
|
||||||
|
widget::Id::from(format!("text-references-{}", self.drawer_visit))
|
||||||
|
}
|
||||||
|
pub fn drawer(&self) -> Option<DrawerTab> {
|
||||||
|
self.drawer
|
||||||
|
}
|
||||||
|
pub fn drawer_height(&self) -> f32 {
|
||||||
|
self.drawer_height
|
||||||
|
}
|
||||||
|
pub fn references(&self) -> &ReferencePresentation {
|
||||||
|
&self.references
|
||||||
|
}
|
||||||
|
pub fn menu(&self) -> Option<&Menu> {
|
||||||
|
self.menu.as_ref()
|
||||||
|
}
|
||||||
|
pub fn diagnostic_publication(&self) -> Option<DiagnosticPublication> {
|
||||||
|
self.diagnostic_publication
|
||||||
|
}
|
||||||
|
/// Call for EVERY diagnostics replacement or clear, including equal bytes.
|
||||||
|
pub fn publish_diagnostics(&mut self, source: SnapshotKey) -> DiagnosticPublication {
|
||||||
|
let publication = DiagnosticPublication {
|
||||||
|
generation: Id::new_v4(),
|
||||||
|
source,
|
||||||
|
};
|
||||||
|
self.diagnostic_publication = Some(publication);
|
||||||
|
publication
|
||||||
|
}
|
||||||
|
pub fn reset(&mut self) {
|
||||||
|
*self = Self::default();
|
||||||
|
}
|
||||||
|
pub fn dismiss_menu(&mut self) {
|
||||||
|
self.menu = None;
|
||||||
|
}
|
||||||
|
pub fn begin_references(&mut self, stamp: QueryStamp, origin: String) {
|
||||||
|
self.references = ReferencePresentation {
|
||||||
|
stamp: Some(stamp),
|
||||||
|
origin,
|
||||||
|
..ReferencePresentation::default()
|
||||||
|
};
|
||||||
|
self.show_drawer(Some(DrawerTab::References));
|
||||||
|
}
|
||||||
|
/// Install presentation groups only for the current completed query. Repeated
|
||||||
|
/// delivery of the same completion cannot undo the user's group choices.
|
||||||
|
pub fn install_reference_files(
|
||||||
|
&mut self,
|
||||||
|
stamp: QueryStamp,
|
||||||
|
paths: impl IntoIterator<Item = String>,
|
||||||
|
) {
|
||||||
|
let refs = &mut self.references;
|
||||||
|
if refs.stamp != Some(stamp) || refs.installed {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
refs.files = paths.into_iter().collect();
|
||||||
|
refs.collapsed_files = refs.files.clone();
|
||||||
|
let expanded = if refs.files.contains(&refs.origin) {
|
||||||
|
Some(refs.origin.clone())
|
||||||
|
} else {
|
||||||
|
refs.files.first().cloned()
|
||||||
|
};
|
||||||
|
if let Some(path) = expanded {
|
||||||
|
refs.collapsed_files.remove(&path);
|
||||||
|
}
|
||||||
|
refs.installed = true;
|
||||||
|
}
|
||||||
|
pub(super) fn show_drawer(&mut self, drawer: Option<DrawerTab>) {
|
||||||
|
self.drawer = drawer;
|
||||||
|
self.drawer_visit = Id::new_v4();
|
||||||
|
}
|
||||||
|
fn toggle_file(&mut self, stamp: QueryStamp, visit: Id, path: String) -> bool {
|
||||||
|
let refs = &mut self.references;
|
||||||
|
if self.drawer != Some(DrawerTab::References)
|
||||||
|
|| self.drawer_visit != visit
|
||||||
|
|| refs.stamp != Some(stamp)
|
||||||
|
|| !refs.files.contains(&path)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if !refs.collapsed_files.remove(&path) {
|
||||||
|
refs.collapsed_files.insert(path);
|
||||||
|
}
|
||||||
|
// Collapsing a group can replace a pressed row at the same position.
|
||||||
|
self.drawer_visit = Id::new_v4();
|
||||||
|
true
|
||||||
|
}
|
||||||
|
fn reference_scrolled(&mut self, stamp: QueryStamp, visit: Id, y: f32) {
|
||||||
|
let refs = &mut self.references;
|
||||||
|
if self.drawer == Some(DrawerTab::References)
|
||||||
|
&& refs.stamp == Some(stamp)
|
||||||
|
&& self.drawer_visit == visit
|
||||||
|
&& y.is_finite()
|
||||||
|
&& y >= 0.
|
||||||
|
{
|
||||||
|
refs.scroll_y = y;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl App {
|
||||||
|
fn text_command_context(&self) -> CommandContext {
|
||||||
|
CommandContext {
|
||||||
|
document: self.canvas_document,
|
||||||
|
document_revision: self.document.revision(),
|
||||||
|
source: self.source_key(),
|
||||||
|
path: self.source_workspace.active.clone(),
|
||||||
|
cursor: self.source_editor.cursor(),
|
||||||
|
interaction: self.source_symbols.interaction,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pub fn text_command_message(&self, command: Command) -> Message {
|
||||||
|
Message::TextWorkspace(Event::Command(CommandRequest {
|
||||||
|
context: self.text_command_context(),
|
||||||
|
command,
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
pub fn text_menu_message(&self, anchor: Point) -> Message {
|
||||||
|
Message::TextWorkspace(Event::OpenMenu(MenuRequest {
|
||||||
|
context: self.text_command_context(),
|
||||||
|
anchor,
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
pub fn text_workspace_menu(&self) -> Option<context_menu::Menu<Message>> {
|
||||||
|
let menu = self.text_workspace.menu.as_ref()?;
|
||||||
|
Some(context_menu::Menu {
|
||||||
|
token: menu.popup_token,
|
||||||
|
anchor: menu.anchor,
|
||||||
|
entries: menu
|
||||||
|
.entries
|
||||||
|
.iter()
|
||||||
|
.flat_map(|entry| {
|
||||||
|
let mut rows = Vec::with_capacity(2);
|
||||||
|
if matches!(entry.command, Command::UndoText | Command::ShowProblems) {
|
||||||
|
rows.push(context_menu::Entry::separator());
|
||||||
|
}
|
||||||
|
rows.push(context_menu::Entry::Action {
|
||||||
|
label: entry.command.label().into(),
|
||||||
|
shortcut: entry.command.shortcut().map(str::to_owned),
|
||||||
|
message: entry.action.as_ref().map(|_| {
|
||||||
|
Message::TextWorkspace(Event::Invoke {
|
||||||
|
token: menu.token(),
|
||||||
|
command: entry.command,
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
rows
|
||||||
|
})
|
||||||
|
.collect(),
|
||||||
|
on_close: Message::TextWorkspace(Event::DismissMenu(menu.token())),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
pub fn text_diagnostic_message(&self, location: SourceLocation) -> Option<Message> {
|
||||||
|
let publication = self.text_workspace.diagnostic_publication?;
|
||||||
|
(publication.source == self.source_key()
|
||||||
|
&& self.text_workspace.drawer() == Some(DrawerTab::Problems))
|
||||||
|
.then(|| {
|
||||||
|
Message::TextWorkspace(Event::Diagnostic(
|
||||||
|
publication.target(self.text_workspace.drawer_visit(), location),
|
||||||
|
))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
fn text_command_action(&self, command: Command) -> Option<Action> {
|
||||||
|
// Menu has been taken before dispatch-time admission. This intentionally
|
||||||
|
// uses navigation admission, not rename admission, for Find/text history.
|
||||||
|
if !self.source_navigation_available() {
|
||||||
|
return None;
|
||||||
|
}
|
||||||
|
let message =
|
||||||
|
match command {
|
||||||
|
Command::Find => Message::SourceNavigation(nav::Event::Open(false)),
|
||||||
|
Command::GoToLine => Message::SourceNavigation(nav::Event::Open(true)),
|
||||||
|
Command::Definition => self
|
||||||
|
.source_symbol_message(nav::SymbolEvent::Query(nav::query::Action::Definition)),
|
||||||
|
Command::References => self
|
||||||
|
.source_symbol_message(nav::SymbolEvent::Query(nav::query::Action::References)),
|
||||||
|
Command::RenameAlias => {
|
||||||
|
self.rename_admission().ok()?;
|
||||||
|
self.source_rename_message()
|
||||||
|
}
|
||||||
|
Command::Back => {
|
||||||
|
if !self
|
||||||
|
.source_symbols
|
||||||
|
.back
|
||||||
|
.iter()
|
||||||
|
.any(|entry| entry.session == self.source_workspace.session())
|
||||||
|
{
|
||||||
|
return None;
|
||||||
|
}
|
||||||
|
self.source_symbol_message(nav::SymbolEvent::Back)
|
||||||
|
}
|
||||||
|
Command::UndoText => Message::SourceUndo,
|
||||||
|
Command::RedoText => Message::SourceRedo,
|
||||||
|
Command::UndoModel | Command::RedoModel => {
|
||||||
|
if self.source_dirty() || self.draft_dirty() {
|
||||||
|
return None;
|
||||||
|
}
|
||||||
|
if command == Command::UndoModel {
|
||||||
|
if !self.document.can_undo() {
|
||||||
|
return None;
|
||||||
|
}
|
||||||
|
Message::Undo
|
||||||
|
} else {
|
||||||
|
if !self.document.can_redo() {
|
||||||
|
return None;
|
||||||
|
}
|
||||||
|
Message::Redo
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Command::UndoRename => self.source_rename_undo_message()?,
|
||||||
|
Command::RevertFile => Message::RevertSource,
|
||||||
|
Command::ShowProblems => return Some(Action::Drawer(DrawerTab::Problems)),
|
||||||
|
Command::ShowStatus => return Some(Action::Drawer(DrawerTab::Status)),
|
||||||
|
Command::ShowDiagramUsages => self.text_diagram_usages_message()?,
|
||||||
|
};
|
||||||
|
Some(Action::Dispatch(Box::new(message)))
|
||||||
|
}
|
||||||
|
pub(super) fn text_workspace_event(&mut self, event: Event) -> Task<Message> {
|
||||||
|
match event {
|
||||||
|
Event::OpenMenu(request) => {
|
||||||
|
if request.context != self.text_command_context()
|
||||||
|
|| !self.source_navigation_available()
|
||||||
|
|| self.text_workspace.menu.is_some()
|
||||||
|
|| !request.anchor.x.is_finite()
|
||||||
|
|| !request.anchor.y.is_finite()
|
||||||
|
{
|
||||||
|
return Task::none();
|
||||||
|
}
|
||||||
|
let Some(popup_token) = self.menu_sequence.checked_add(1) else {
|
||||||
|
return Task::none();
|
||||||
|
};
|
||||||
|
self.source_interaction();
|
||||||
|
let commands = [
|
||||||
|
Command::Find,
|
||||||
|
Command::GoToLine,
|
||||||
|
Command::Definition,
|
||||||
|
Command::References,
|
||||||
|
Command::RenameAlias,
|
||||||
|
Command::Back,
|
||||||
|
Command::UndoText,
|
||||||
|
Command::RedoText,
|
||||||
|
Command::UndoRename,
|
||||||
|
Command::UndoModel,
|
||||||
|
Command::RedoModel,
|
||||||
|
Command::RevertFile,
|
||||||
|
Command::ShowProblems,
|
||||||
|
Command::ShowStatus,
|
||||||
|
Command::ShowDiagramUsages,
|
||||||
|
];
|
||||||
|
let entries = commands
|
||||||
|
.into_iter()
|
||||||
|
.filter_map(|command| {
|
||||||
|
let action = self.text_command_action(command);
|
||||||
|
if command == Command::ShowDiagramUsages && action.is_none() {
|
||||||
|
None
|
||||||
|
} else {
|
||||||
|
Some(FrozenEntry { command, action })
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.collect();
|
||||||
|
self.menu_sequence = popup_token;
|
||||||
|
self.text_workspace.menu = Some(Menu {
|
||||||
|
token: Id::new_v4(),
|
||||||
|
popup_token,
|
||||||
|
anchor: request.anchor,
|
||||||
|
context: self.text_command_context(),
|
||||||
|
entries,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
Event::DismissMenu(token) => {
|
||||||
|
if self
|
||||||
|
.text_workspace
|
||||||
|
.menu
|
||||||
|
.as_ref()
|
||||||
|
.is_some_and(|menu| menu.token == token)
|
||||||
|
{
|
||||||
|
self.text_workspace.menu = None;
|
||||||
|
self.source_interaction();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Event::Invoke { token, command } => {
|
||||||
|
if !self.text_workspace.menu.as_ref().is_some_and(|menu| {
|
||||||
|
menu.token == token && menu.context == self.text_command_context()
|
||||||
|
}) {
|
||||||
|
return Task::none();
|
||||||
|
}
|
||||||
|
// Validate before closing; consume this invocation only once.
|
||||||
|
// Never resolve a frozen row against a newly generated menu.
|
||||||
|
let menu = self.text_workspace.menu.take().unwrap();
|
||||||
|
let Some(action) = menu
|
||||||
|
.entries
|
||||||
|
.into_iter()
|
||||||
|
.find(|entry| entry.command == command)
|
||||||
|
.and_then(|entry| entry.action)
|
||||||
|
else {
|
||||||
|
return Task::none();
|
||||||
|
};
|
||||||
|
if self.text_command_action(command).is_none() {
|
||||||
|
return Task::none();
|
||||||
|
}
|
||||||
|
return self.dispatch_text_action(action);
|
||||||
|
}
|
||||||
|
Event::Command(request) => {
|
||||||
|
if request.context != self.text_command_context() {
|
||||||
|
return Task::none();
|
||||||
|
}
|
||||||
|
if let Some(action) = self.text_command_action(request.command) {
|
||||||
|
return self.dispatch_text_action(action);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Event::ShowDrawer(tab) => {
|
||||||
|
if !self.source_navigation_available() {
|
||||||
|
return Task::none();
|
||||||
|
}
|
||||||
|
return self.show_text_drawer(Some(tab));
|
||||||
|
}
|
||||||
|
Event::HideDrawer => {
|
||||||
|
if !self.source_navigation_available() {
|
||||||
|
return Task::none();
|
||||||
|
}
|
||||||
|
return self.show_text_drawer(None);
|
||||||
|
}
|
||||||
|
Event::ResizeDrawer(height) => {
|
||||||
|
if self.source_navigation_available() && height.is_finite() {
|
||||||
|
// The view applies the measured editor-allocation bound.
|
||||||
|
let height = height.clamp(180., 1200.);
|
||||||
|
if height != self.text_workspace.drawer_height {
|
||||||
|
self.source_interaction();
|
||||||
|
self.text_workspace.drawer_height = height;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Event::ToggleFile { stamp, visit, path } => {
|
||||||
|
if self.source_navigation_available()
|
||||||
|
&& self.text_workspace.toggle_file(stamp, visit, path)
|
||||||
|
{
|
||||||
|
self.source_interaction();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Event::ReferenceScrolled { stamp, visit, y } => {
|
||||||
|
// Passive geometry must neither invalidate pending navigation
|
||||||
|
// nor reset the editor identity, even while commands are blocked.
|
||||||
|
self.text_workspace.reference_scrolled(stamp, visit, y);
|
||||||
|
}
|
||||||
|
Event::Diagnostic(target) => {
|
||||||
|
if !self.source_navigation_available()
|
||||||
|
|| self.text_workspace.drawer() != Some(DrawerTab::Problems)
|
||||||
|
|| self.text_workspace.drawer_visit() != target.visit
|
||||||
|
|| self.text_workspace.diagnostic_publication != Some(target.publication)
|
||||||
|
|| target.publication.source != self.source_key()
|
||||||
|
|| !self
|
||||||
|
.source_workspace
|
||||||
|
.files
|
||||||
|
.get(&target.location.path)
|
||||||
|
.is_some_and(|file| valid_span(&file.text, &target.location))
|
||||||
|
{
|
||||||
|
return Task::none();
|
||||||
|
}
|
||||||
|
self.source_interaction();
|
||||||
|
self.jump_to_source(target.location);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Task::none()
|
||||||
|
}
|
||||||
|
fn dispatch_text_action(&mut self, action: Action) -> Task<Message> {
|
||||||
|
match action {
|
||||||
|
Action::Dispatch(message) => self.update(*message),
|
||||||
|
Action::Drawer(tab) => self.show_text_drawer(Some(tab)),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pub(super) fn show_text_drawer(&mut self, drawer: Option<DrawerTab>) -> Task<Message> {
|
||||||
|
self.source_interaction();
|
||||||
|
self.text_workspace.show_drawer(drawer);
|
||||||
|
if drawer == Some(DrawerTab::References) {
|
||||||
|
let refs = self.text_workspace.references();
|
||||||
|
widget::operation::scroll_to(
|
||||||
|
self.text_workspace.reference_scroll_id(),
|
||||||
|
widget::scrollable::AbsoluteOffset {
|
||||||
|
x: 0.,
|
||||||
|
y: refs.scroll_y(),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
Task::none()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn valid_span(text: &str, location: &SourceLocation) -> bool {
|
||||||
|
let span = location.span;
|
||||||
|
span.start <= span.end
|
||||||
|
&& span.end <= text.len()
|
||||||
|
&& text.is_char_boundary(span.start)
|
||||||
|
&& text.is_char_boundary(span.end)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests;
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod lifecycle_tests;
|
||||||
|
|
||||||
|
#[cfg(all(test, debug_assertions))]
|
||||||
|
mod focus_selection_tests;
|
||||||
@@ -0,0 +1,480 @@
|
|||||||
|
//! The mounted CPU renderer and App use the same cosmic-text editor engine, but
|
||||||
|
//! Iced's Content is parameterized by renderer and cannot be shared between them.
|
||||||
|
//! We hit-test the initial click in the laid-out CPU widget, seed that raw caret
|
||||||
|
//! in App, and relay the real subsequent SelectWord/SelectLine and editing actions.
|
||||||
|
//! App's own Content is never replaced or cursor-normalized after selection. This
|
||||||
|
//! tests the actual controller/content boundary without a window or GPU; native
|
||||||
|
//! replay remains the check of the complete production renderer/layout path.
|
||||||
|
use super::*;
|
||||||
|
use crate::app::Page;
|
||||||
|
use crate::document::Document;
|
||||||
|
use crate::source_workspace::{LIMITS, Workspace};
|
||||||
|
use crate::views::source_tests::FontLayout;
|
||||||
|
use iced::advanced::{Layout, Shell, layout, widget as core_widget};
|
||||||
|
use iced::futures::StreamExt;
|
||||||
|
use iced::keyboard::{self, Key, Modifiers};
|
||||||
|
use iced::widget::{button, container, row, text_editor, text_input};
|
||||||
|
use iced::{Element, Event, Font, Size, mouse};
|
||||||
|
use oa_core::{Project, source_project::SourceBundle};
|
||||||
|
use std::{collections::BTreeMap, sync::Arc, sync::atomic::Ordering};
|
||||||
|
|
||||||
|
const SOURCE: &str = concat!(
|
||||||
|
"// oa_contact tail\r\n",
|
||||||
|
"arcadia 7;\r\n",
|
||||||
|
"project model \"Selection\" id \"9e8f0000-0000-4000-8000-000000000091\" {}\r\n",
|
||||||
|
);
|
||||||
|
const HOST: Size = Size::new(620., 260.);
|
||||||
|
|
||||||
|
fn fixture() -> App {
|
||||||
|
let bundle = SourceBundle {
|
||||||
|
entry: "project.arcadia".into(),
|
||||||
|
files: BTreeMap::from([("project.arcadia".into(), SOURCE.into())]),
|
||||||
|
};
|
||||||
|
let mut app = App::with_project(Project::empty());
|
||||||
|
app.document = Document::from_bundle(bundle, LIMITS).unwrap();
|
||||||
|
app.source_workspace = Workspace::new(app.document.bundle(), true);
|
||||||
|
app.selected = app.project().id;
|
||||||
|
app.refresh_draft();
|
||||||
|
app.page = Page::Text;
|
||||||
|
app.show_source_file(false);
|
||||||
|
app.publish_source_diagnostics(app.document.compiled().diagnostics.clone());
|
||||||
|
app
|
||||||
|
}
|
||||||
|
|
||||||
|
fn ui<'a>(
|
||||||
|
app: &App,
|
||||||
|
content: &'a text_editor::Content<FontLayout>,
|
||||||
|
) -> Element<'a, Message, iced::Theme, FontLayout> {
|
||||||
|
let find: Element<'a, Message, iced::Theme, FontLayout> = if app.source_navigation.open {
|
||||||
|
row![
|
||||||
|
text_input("Find", "")
|
||||||
|
.id("source-find")
|
||||||
|
.on_input(|s| Message::SourceNavigation(nav::Event::Query(s))),
|
||||||
|
container(button("Close").on_press(app.source_find_close_message()))
|
||||||
|
.id("selection-find-close"),
|
||||||
|
]
|
||||||
|
.into()
|
||||||
|
} else {
|
||||||
|
widget::Space::new().into()
|
||||||
|
};
|
||||||
|
// Column::push drops zero-height children. Keep both paths mounted even
|
||||||
|
// while Find is hidden, as the production retained-slot layout does.
|
||||||
|
widget::Column::from_vec(vec![
|
||||||
|
container(find)
|
||||||
|
.height(if app.source_navigation.open { 32. } else { 0. })
|
||||||
|
.into(),
|
||||||
|
widget::text_editor(content)
|
||||||
|
.id(app.source_editor_id())
|
||||||
|
.font(Font::MONOSPACE)
|
||||||
|
.size(14)
|
||||||
|
.padding(16)
|
||||||
|
.height(iced::Fill)
|
||||||
|
.on_action(Message::SourceEdit)
|
||||||
|
.into(),
|
||||||
|
])
|
||||||
|
.width(iced::Fill)
|
||||||
|
.height(iced::Fill)
|
||||||
|
.into()
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Mounted {
|
||||||
|
content: text_editor::Content<FontLayout>,
|
||||||
|
tree: core_widget::Tree,
|
||||||
|
}
|
||||||
|
|
||||||
|
// Operations follow widget-provided traversal instead of assuming a fixed
|
||||||
|
// relationship between layout nodes, transparent containers and state trees.
|
||||||
|
struct Inspection {
|
||||||
|
editor: core_widget::Id,
|
||||||
|
focused: Option<bool>,
|
||||||
|
close_bounds: Option<iced::Rectangle>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl core_widget::Operation for Inspection {
|
||||||
|
fn traverse(&mut self, operate: &mut dyn FnMut(&mut dyn core_widget::Operation)) {
|
||||||
|
operate(self);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn focusable(
|
||||||
|
&mut self,
|
||||||
|
id: Option<&core_widget::Id>,
|
||||||
|
_: iced::Rectangle,
|
||||||
|
state: &mut dyn core_widget::operation::Focusable,
|
||||||
|
) {
|
||||||
|
if id == Some(&self.editor) {
|
||||||
|
assert!(
|
||||||
|
self.focused.replace(state.is_focused()).is_none(),
|
||||||
|
"duplicate editor ID"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn container(&mut self, id: Option<&core_widget::Id>, bounds: iced::Rectangle) {
|
||||||
|
if id == Some(&core_widget::Id::new("selection-find-close")) {
|
||||||
|
assert!(
|
||||||
|
self.close_bounds.replace(bounds).is_none(),
|
||||||
|
"duplicate Close target ID"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Mounted {
|
||||||
|
fn new() -> Self {
|
||||||
|
Self {
|
||||||
|
content: text_editor::Content::with_text(SOURCE),
|
||||||
|
tree: core_widget::Tree::empty(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn events(&mut self, app: &App, events: &[(Event, mouse::Cursor)]) -> Vec<Message> {
|
||||||
|
let mut view = ui(app, &self.content);
|
||||||
|
self.tree.diff(view.as_widget());
|
||||||
|
let node = view.as_widget_mut().layout(
|
||||||
|
&mut self.tree,
|
||||||
|
&FontLayout,
|
||||||
|
&layout::Limits::new(Size::ZERO, HOST),
|
||||||
|
);
|
||||||
|
let mut messages = Vec::new();
|
||||||
|
for (event, cursor) in events {
|
||||||
|
let mut shell = Shell::new(&mut messages);
|
||||||
|
view.as_widget_mut().update(
|
||||||
|
&mut self.tree,
|
||||||
|
event,
|
||||||
|
Layout::new(&node),
|
||||||
|
*cursor,
|
||||||
|
&FontLayout,
|
||||||
|
&mut iced::advanced::clipboard::Null,
|
||||||
|
&mut shell,
|
||||||
|
&iced::Rectangle::with_size(HOST),
|
||||||
|
);
|
||||||
|
if !matches!(event, Event::Mouse(mouse::Event::ButtonReleased(_))) {
|
||||||
|
assert!(
|
||||||
|
shell.is_event_captured(),
|
||||||
|
"mounted input must be handled: {event:?}"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
messages
|
||||||
|
}
|
||||||
|
|
||||||
|
fn operation(&mut self, app: &App, mut op: Box<dyn core_widget::Operation>) {
|
||||||
|
let mut view = ui(app, &self.content);
|
||||||
|
self.tree.diff(view.as_widget());
|
||||||
|
let node = view.as_widget_mut().layout(
|
||||||
|
&mut self.tree,
|
||||||
|
&FontLayout,
|
||||||
|
&layout::Limits::new(Size::ZERO, HOST),
|
||||||
|
);
|
||||||
|
loop {
|
||||||
|
view.as_widget_mut().operate(
|
||||||
|
&mut self.tree,
|
||||||
|
Layout::new(&node),
|
||||||
|
&FontLayout,
|
||||||
|
op.as_mut(),
|
||||||
|
);
|
||||||
|
match op.finish() {
|
||||||
|
core_widget::operation::Outcome::Chain(next) => op = next,
|
||||||
|
core_widget::operation::Outcome::None => break,
|
||||||
|
core_widget::operation::Outcome::Some(()) => panic!("focus does not emit messages"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async fn task(&mut self, app: &App, task: Task<Message>) {
|
||||||
|
if let Some(mut actions) = iced_runtime::task::into_stream(task) {
|
||||||
|
while let Some(action) = actions.next().await {
|
||||||
|
let iced_runtime::Action::Widget(op) = action else {
|
||||||
|
panic!("expected a widget operation")
|
||||||
|
};
|
||||||
|
self.operation(app, op);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn inspect(&mut self, app: &App) -> Inspection {
|
||||||
|
let mut inspection = Inspection {
|
||||||
|
editor: app.source_editor_id(),
|
||||||
|
focused: None,
|
||||||
|
close_bounds: None,
|
||||||
|
};
|
||||||
|
let mut view = ui(app, &self.content);
|
||||||
|
self.tree.diff(view.as_widget());
|
||||||
|
let node = view.as_widget_mut().layout(
|
||||||
|
&mut self.tree,
|
||||||
|
&FontLayout,
|
||||||
|
&layout::Limits::new(Size::ZERO, HOST),
|
||||||
|
);
|
||||||
|
view.as_widget_mut().operate(
|
||||||
|
&mut self.tree,
|
||||||
|
Layout::new(&node),
|
||||||
|
&FontLayout,
|
||||||
|
&mut inspection,
|
||||||
|
);
|
||||||
|
inspection
|
||||||
|
}
|
||||||
|
|
||||||
|
fn editor_focused(&mut self, app: &App) -> bool {
|
||||||
|
self.inspect(app)
|
||||||
|
.focused
|
||||||
|
.expect("exactly one editor with the requested ID")
|
||||||
|
}
|
||||||
|
|
||||||
|
fn close_message(&mut self, app: &App, escape: bool) -> Message {
|
||||||
|
if escape {
|
||||||
|
let event = Event::Keyboard(keyboard::Event::KeyPressed {
|
||||||
|
key: Key::Named(keyboard::key::Named::Escape),
|
||||||
|
modified_key: Key::Named(keyboard::key::Named::Escape),
|
||||||
|
physical_key: keyboard::key::Physical::Code(keyboard::key::Code::Escape),
|
||||||
|
location: keyboard::Location::Standard,
|
||||||
|
modifiers: Modifiers::empty(),
|
||||||
|
text: None,
|
||||||
|
repeat: false,
|
||||||
|
});
|
||||||
|
assert!(
|
||||||
|
self.events(app, &[(event, mouse::Cursor::Unavailable)])
|
||||||
|
.is_empty()
|
||||||
|
);
|
||||||
|
// The existing subscription tests cover the captured-Escape bridge.
|
||||||
|
// Deliver its App message after this actual input captured the key.
|
||||||
|
Message::Escape
|
||||||
|
} else {
|
||||||
|
let center = self
|
||||||
|
.inspect(app)
|
||||||
|
.close_bounds
|
||||||
|
.expect("the mounted Find Close target exists")
|
||||||
|
.center();
|
||||||
|
let cursor = mouse::Cursor::Available(center);
|
||||||
|
let mut messages = self.events(
|
||||||
|
app,
|
||||||
|
&[
|
||||||
|
(
|
||||||
|
Event::Mouse(mouse::Event::ButtonPressed(mouse::Button::Left)),
|
||||||
|
cursor,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
Event::Mouse(mouse::Event::ButtonReleased(mouse::Button::Left)),
|
||||||
|
cursor,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
assert_eq!(messages.len(), 1);
|
||||||
|
let close = messages.remove(0);
|
||||||
|
assert!(matches!(close, Message::SourceFindClose(..)));
|
||||||
|
close
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn select(&mut self, app: &mut App, line: bool) {
|
||||||
|
// One mounted update batch avoids delays between Iced's consecutive-click
|
||||||
|
// timestamps; content actions are applied in their emitted order below.
|
||||||
|
let at = mouse::Cursor::Available(Point::new(65., 25.));
|
||||||
|
let events = (0..if line { 3 } else { 2 })
|
||||||
|
.flat_map(|_| {
|
||||||
|
[
|
||||||
|
(
|
||||||
|
Event::Mouse(mouse::Event::ButtonPressed(mouse::Button::Left)),
|
||||||
|
at,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
Event::Mouse(mouse::Event::ButtonReleased(mouse::Button::Left)),
|
||||||
|
at,
|
||||||
|
),
|
||||||
|
]
|
||||||
|
})
|
||||||
|
.collect::<Vec<_>>();
|
||||||
|
let messages = self.events(app, &events);
|
||||||
|
assert_eq!(messages.len(), if line { 3 } else { 2 });
|
||||||
|
for (index, message) in messages.into_iter().enumerate() {
|
||||||
|
let Message::SourceEdit(action) = message else {
|
||||||
|
panic!("editor action")
|
||||||
|
};
|
||||||
|
if index == 0 {
|
||||||
|
assert!(matches!(action, text_editor::Action::Click(_)));
|
||||||
|
self.content.perform(action);
|
||||||
|
let caret = self.content.cursor();
|
||||||
|
assert_eq!(caret.position.line, 0);
|
||||||
|
assert!(
|
||||||
|
(4..13).contains(&caret.position.column),
|
||||||
|
"click must hit inside oa_contact: {caret:?}"
|
||||||
|
);
|
||||||
|
// App's GPU-typed Content has no public layout API. Copy only the
|
||||||
|
// initial hit-tested caret before any Word/Line selection exists.
|
||||||
|
app.source_editor.move_to(caret);
|
||||||
|
} else {
|
||||||
|
assert_eq!(
|
||||||
|
action,
|
||||||
|
if index == 1 {
|
||||||
|
text_editor::Action::SelectWord
|
||||||
|
} else {
|
||||||
|
text_editor::Action::SelectLine
|
||||||
|
}
|
||||||
|
);
|
||||||
|
self.content.perform(action.clone());
|
||||||
|
let _ = app.update(Message::SourceEdit(action));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
assert_eq!(
|
||||||
|
self.content.selection().as_deref(),
|
||||||
|
Some(if line {
|
||||||
|
"// oa_contact tail"
|
||||||
|
} else {
|
||||||
|
"oa_contact"
|
||||||
|
})
|
||||||
|
);
|
||||||
|
assert_eq!(app.source_editor.selection(), self.content.selection());
|
||||||
|
assert!(self.editor_focused(app));
|
||||||
|
}
|
||||||
|
|
||||||
|
fn type_replacement(&mut self, app: &mut App) {
|
||||||
|
let event = Event::Keyboard(keyboard::Event::KeyPressed {
|
||||||
|
key: Key::Character("x".into()),
|
||||||
|
modified_key: Key::Character("x".into()),
|
||||||
|
physical_key: keyboard::key::Physical::Code(keyboard::key::Code::KeyX),
|
||||||
|
location: keyboard::Location::Standard,
|
||||||
|
modifiers: Modifiers::empty(),
|
||||||
|
text: Some("x".into()),
|
||||||
|
repeat: false,
|
||||||
|
});
|
||||||
|
let messages = self.events(app, &[(event, mouse::Cursor::Unavailable)]);
|
||||||
|
assert_eq!(messages.len(), 1);
|
||||||
|
let Message::SourceEdit(action) = messages.into_iter().next().unwrap() else {
|
||||||
|
panic!("typed edit")
|
||||||
|
};
|
||||||
|
assert_eq!(
|
||||||
|
action,
|
||||||
|
text_editor::Action::Edit(text_editor::Edit::Insert('x'))
|
||||||
|
);
|
||||||
|
self.content.perform(action.clone());
|
||||||
|
let _ = app.update(Message::SourceEdit(action));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn word_and_line_selection_survive_find_close_and_escape_then_replace_exact_bytes() {
|
||||||
|
for line in [false, true] {
|
||||||
|
for escape in [false, true] {
|
||||||
|
let mut app = fixture();
|
||||||
|
let accepted = app.document.snapshot();
|
||||||
|
let mut mounted = Mounted::new();
|
||||||
|
mounted.select(&mut app, line);
|
||||||
|
let selected = app.source_editor.selection();
|
||||||
|
let cursor = app.source_editor.cursor();
|
||||||
|
// Word/Line selection has coincident raw endpoints. Merely checking
|
||||||
|
// cursor equality after a move_to roundtrip cannot detect the defect.
|
||||||
|
assert_eq!(cursor.selection, Some(cursor.position));
|
||||||
|
let task = app.update(Message::SourceNavigation(nav::Event::Open(false)));
|
||||||
|
mounted.task(&app, task).await;
|
||||||
|
assert!(!mounted.editor_focused(&app));
|
||||||
|
assert_eq!(app.source_editor.selection(), selected);
|
||||||
|
let close = mounted.close_message(&app, escape);
|
||||||
|
let _ = app.update(close);
|
||||||
|
let ticket = app
|
||||||
|
.source_reveal_ticket()
|
||||||
|
.expect("guarded restoration ticket");
|
||||||
|
let task = app.update(Message::SourceViewport(Some(ticket)));
|
||||||
|
mounted.task(&app, task).await;
|
||||||
|
assert!(mounted.editor_focused(&app));
|
||||||
|
assert_eq!(app.source_editor.cursor(), cursor);
|
||||||
|
assert_eq!(
|
||||||
|
app.source_editor.selection(),
|
||||||
|
selected,
|
||||||
|
"selected bytes must survive focus restoration"
|
||||||
|
);
|
||||||
|
assert_eq!(app.source_editor.text(), SOURCE);
|
||||||
|
mounted.type_replacement(&mut app);
|
||||||
|
let expected = SOURCE.replacen(selected.as_deref().unwrap(), "x", 1);
|
||||||
|
assert_eq!(app.source_editor.text(), expected);
|
||||||
|
assert_eq!(app.source_workspace.text(), expected);
|
||||||
|
assert_eq!(mounted.content.text(), expected);
|
||||||
|
assert!(Arc::ptr_eq(&accepted, &app.document.snapshot()));
|
||||||
|
assert!(!app.document.can_undo() && !app.document.can_redo());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn mounted_direct_typing_control_and_old_cursor_roundtrip_discriminate_selection_loss() {
|
||||||
|
for line in [false, true] {
|
||||||
|
for old_roundtrip in [false, true] {
|
||||||
|
let mut app = fixture();
|
||||||
|
let mut mounted = Mounted::new();
|
||||||
|
mounted.select(&mut app, line);
|
||||||
|
let selected = app.source_editor.selection().unwrap();
|
||||||
|
let interior = app.source_editor.cursor();
|
||||||
|
if old_roundtrip {
|
||||||
|
app.source_editor.move_to(interior);
|
||||||
|
assert_ne!(
|
||||||
|
app.source_editor.selection().as_deref(),
|
||||||
|
Some(selected.as_str())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
mounted.type_replacement(&mut app);
|
||||||
|
let expected = if old_roundtrip {
|
||||||
|
let mut text = SOURCE.to_owned();
|
||||||
|
text.insert(interior.position.column, 'x');
|
||||||
|
text
|
||||||
|
} else {
|
||||||
|
SOURCE.replacen(&selected, "x", 1)
|
||||||
|
};
|
||||||
|
assert_eq!(app.source_editor.text(), expected);
|
||||||
|
assert_eq!(app.source_workspace.text(), expected);
|
||||||
|
assert_eq!(mounted.content.text(), SOURCE.replacen(&selected, "x", 1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn stale_focus_ticket_and_later_raw_input_cannot_steal_focus_or_change_selected_bytes() {
|
||||||
|
for later_raw_input in [false, true] {
|
||||||
|
let mut app = fixture();
|
||||||
|
let mut mounted = Mounted::new();
|
||||||
|
mounted.select(&mut app, false);
|
||||||
|
let selected = app.source_editor.selection();
|
||||||
|
let open = app.update(Message::SourceNavigation(nav::Event::Open(false)));
|
||||||
|
mounted.task(&app, open).await;
|
||||||
|
let close = app.source_find_close_message();
|
||||||
|
let _ = app.update(close);
|
||||||
|
let ticket = app.source_reveal_ticket().unwrap();
|
||||||
|
let focus = if later_raw_input {
|
||||||
|
app.update(Message::SourceViewport(Some(ticket)))
|
||||||
|
} else {
|
||||||
|
Task::none()
|
||||||
|
};
|
||||||
|
let reopen = app.update(Message::SourceNavigation(nav::Event::Open(false)));
|
||||||
|
mounted.task(&app, reopen).await;
|
||||||
|
if later_raw_input {
|
||||||
|
app.source_symbols
|
||||||
|
.raw_interaction
|
||||||
|
.fetch_add(1, Ordering::SeqCst);
|
||||||
|
mounted.task(&app, focus).await;
|
||||||
|
} else {
|
||||||
|
let stale = app.update(Message::SourceViewport(Some(ticket)));
|
||||||
|
mounted.task(&app, stale).await;
|
||||||
|
}
|
||||||
|
assert!(app.source_navigation.open);
|
||||||
|
assert!(!mounted.editor_focused(&app));
|
||||||
|
assert_eq!(app.source_editor.selection(), selected);
|
||||||
|
assert_eq!(app.source_editor.text(), SOURCE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn explicit_cursor_navigation_still_moves_and_selects_requested_line() {
|
||||||
|
let mut app = fixture();
|
||||||
|
let mut mounted = Mounted::new();
|
||||||
|
mounted.select(&mut app, false);
|
||||||
|
let target = text_editor::Cursor {
|
||||||
|
position: text_editor::Position { line: 1, column: 3 },
|
||||||
|
selection: None,
|
||||||
|
};
|
||||||
|
// Clear the previous semantic selection as actual show_source_file does when
|
||||||
|
// moving to another source buffer, then exercise intentional navigation.
|
||||||
|
app.show_source_file(false);
|
||||||
|
app.queue_source_reveal(target, true);
|
||||||
|
let ticket = app.source_reveal_ticket().unwrap();
|
||||||
|
let task = app.update(Message::SourceViewport(Some(ticket)));
|
||||||
|
mounted.task(&app, task).await;
|
||||||
|
assert_eq!(app.source_editor.cursor().position, target.position);
|
||||||
|
assert_eq!(app.source_editor.selection().as_deref(), Some("arcadia 7;"));
|
||||||
|
}
|
||||||
@@ -0,0 +1,438 @@
|
|||||||
|
//! Real lifecycle receipts, with all disk writes confined to unique temp roots.
|
||||||
|
//! Returned App worker tasks are not polled; completions use the normal captured
|
||||||
|
//! query input and are delivered deterministically through App::update.
|
||||||
|
use super::*;
|
||||||
|
use crate::app::{Page, read_snapshot, write_snapshot};
|
||||||
|
use crate::document::Document;
|
||||||
|
use crate::source_workspace::{LIMITS, Workspace};
|
||||||
|
use oa_core::{
|
||||||
|
Project,
|
||||||
|
language::{Diagnostic, Span},
|
||||||
|
source_project::{SourceBundle, SourceDiagnostic},
|
||||||
|
validation::Severity,
|
||||||
|
};
|
||||||
|
use std::{collections::BTreeMap, path::Path, sync::Arc};
|
||||||
|
|
||||||
|
const VALID: &str = concat!(
|
||||||
|
"arcadia 7;\r\n",
|
||||||
|
"project model \"Lifecycle 救援\" id \"9e8f0000-0000-4000-8000-000000000001\" {\r\n",
|
||||||
|
" oa_activity assess \"Assess\" id \"9e8f0000-0000-4000-8000-000000000002\" {}\r\n",
|
||||||
|
"}\r\n",
|
||||||
|
);
|
||||||
|
|
||||||
|
fn fixture() -> App {
|
||||||
|
let bundle = SourceBundle {
|
||||||
|
entry: "project.arcadia".into(),
|
||||||
|
files: BTreeMap::from([("project.arcadia".into(), VALID.into())]),
|
||||||
|
};
|
||||||
|
let mut app = App::with_project(Project::empty());
|
||||||
|
// with_project uses in-memory Home metadata and no recovery directory.
|
||||||
|
assert!(app.recovery.directory.is_none());
|
||||||
|
app.document = Document::from_bundle(bundle, LIMITS).unwrap();
|
||||||
|
app.source_workspace = Workspace::new(app.document.bundle(), true);
|
||||||
|
app.selected = app.project().id;
|
||||||
|
app.refresh_draft();
|
||||||
|
app.page = Page::Text;
|
||||||
|
app.show_source_file(false);
|
||||||
|
app.publish_source_diagnostics(app.document.compiled().diagnostics.clone());
|
||||||
|
app
|
||||||
|
}
|
||||||
|
fn send(app: &mut App, message: Message) {
|
||||||
|
let _ = app.update(message);
|
||||||
|
}
|
||||||
|
fn save(app: &mut App, path: &Path) {
|
||||||
|
let receipt = write_snapshot(
|
||||||
|
app.canvas_document,
|
||||||
|
app.document.revision(),
|
||||||
|
app.document.snapshot(),
|
||||||
|
path.to_owned(),
|
||||||
|
app.disk_project.clone(),
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
|
send(app, Message::Saved(Ok(Some(receipt))));
|
||||||
|
}
|
||||||
|
fn reveal(app: &mut App) {
|
||||||
|
if let Some(ticket) = app.source_reveal_ticket() {
|
||||||
|
send(app, Message::SourceViewport(Some(ticket)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn query(app: &mut App, action: nav::query::Action) -> nav::Completion {
|
||||||
|
let message = app.source_symbol_message(nav::SymbolEvent::Query(action));
|
||||||
|
send(app, message);
|
||||||
|
let request = app.source_symbols.request.clone().expect("admitted query");
|
||||||
|
assert_eq!(app.source_symbols.in_flight, Some(request.job));
|
||||||
|
let snapshot = Arc::new(app.with_source_input(|input| {
|
||||||
|
nav::query::admit_owned(input, nav::query::Limits::default())
|
||||||
|
.unwrap()
|
||||||
|
.capture()
|
||||||
|
.unwrap()
|
||||||
|
}));
|
||||||
|
let results = Arc::new(
|
||||||
|
snapshot
|
||||||
|
.query(nav::query::Query {
|
||||||
|
stamp: request.stamp,
|
||||||
|
path: &request.path,
|
||||||
|
byte_offset: request.offset,
|
||||||
|
action,
|
||||||
|
})
|
||||||
|
.unwrap(),
|
||||||
|
);
|
||||||
|
nav::Completion {
|
||||||
|
request,
|
||||||
|
result: Ok((snapshot, results)),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn seed_navigation(app: &mut App, pending: bool) -> Option<nav::Completion> {
|
||||||
|
let text = app.source_workspace.text();
|
||||||
|
let start = text.find("oa_activity assess").unwrap() + "oa_activity ".len();
|
||||||
|
let prefix = &text[..start];
|
||||||
|
let position = widget::text_editor::Position {
|
||||||
|
line: prefix.bytes().filter(|byte| *byte == b'\n').count(),
|
||||||
|
column: prefix.rsplit_once('\n').unwrap().1.len(),
|
||||||
|
};
|
||||||
|
app.source_editor.move_to(Cursor {
|
||||||
|
position,
|
||||||
|
selection: None,
|
||||||
|
});
|
||||||
|
let ready = query(app, nav::query::Action::Definition);
|
||||||
|
send(app, Message::SourceSymbolsReady(ready));
|
||||||
|
reveal(app);
|
||||||
|
assert_eq!(app.source_symbols.back.len(), 1);
|
||||||
|
let ready = query(app, nav::query::Action::References);
|
||||||
|
send(app, Message::SourceSymbolsReady(ready));
|
||||||
|
assert!(app.source_symbols.results.is_some() && app.source_symbols.cache.is_some());
|
||||||
|
assert!(app.source_symbols.display_request.is_some());
|
||||||
|
assert_eq!(app.text_workspace.drawer(), Some(DrawerTab::References));
|
||||||
|
if pending {
|
||||||
|
Some(query(app, nav::query::Action::Definition))
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn warning(app: &App) -> SourceDiagnostic {
|
||||||
|
let source = app.source_workspace.text();
|
||||||
|
let primary = source.find("model").unwrap();
|
||||||
|
let related = source.find("assess").unwrap();
|
||||||
|
SourceDiagnostic {
|
||||||
|
path: app.source_workspace.active.clone(),
|
||||||
|
diagnostic: Diagnostic {
|
||||||
|
severity: Severity::Warning,
|
||||||
|
code: "lifecycle_warning".into(),
|
||||||
|
object_id: None,
|
||||||
|
field: None,
|
||||||
|
line: 2,
|
||||||
|
column: 9,
|
||||||
|
message: "Retained warning with a related source location".into(),
|
||||||
|
span: Span {
|
||||||
|
start: primary,
|
||||||
|
end: primary + 5,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
related: vec![SourceLocation {
|
||||||
|
path: app.source_workspace.active.clone(),
|
||||||
|
span: Span {
|
||||||
|
start: related,
|
||||||
|
end: related + 6,
|
||||||
|
},
|
||||||
|
}],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn warning_messages(app: &App) -> [Message; 2] {
|
||||||
|
let warning = &app.source_diagnostics[0];
|
||||||
|
[
|
||||||
|
app.text_diagnostic_message(SourceLocation {
|
||||||
|
path: warning.path.clone(),
|
||||||
|
span: warning.diagnostic.span,
|
||||||
|
})
|
||||||
|
.unwrap(),
|
||||||
|
app.text_diagnostic_message(warning.related[0].clone())
|
||||||
|
.unwrap(),
|
||||||
|
]
|
||||||
|
}
|
||||||
|
fn assert_cleared(app: &App, job: Option<Id>) {
|
||||||
|
assert_eq!(app.source_symbols.in_flight, job);
|
||||||
|
assert!(app.source_symbols.request.is_none() && app.source_symbols.display_request.is_none());
|
||||||
|
assert!(app.source_symbols.results.is_none() && app.source_symbols.cache.is_none());
|
||||||
|
assert!(app.source_symbols.back.is_empty());
|
||||||
|
assert!(app.source_symbols.reveal.is_none() && app.source_jump.is_none());
|
||||||
|
assert!(app.text_workspace.drawer().is_none() && app.text_workspace.menu().is_none());
|
||||||
|
assert!(app.text_workspace.references().stamp().is_none());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn saved_new_destination_republishes_current_warning_and_refuses_old_primary_and_related() {
|
||||||
|
let first = tempfile::tempdir().unwrap();
|
||||||
|
let second = tempfile::tempdir().unwrap();
|
||||||
|
let first_path = first.path().canonicalize().unwrap().join("project.arcadia");
|
||||||
|
let second_path = second
|
||||||
|
.path()
|
||||||
|
.canonicalize()
|
||||||
|
.unwrap()
|
||||||
|
.join("project.arcadia");
|
||||||
|
let mut app = fixture();
|
||||||
|
save(&mut app, &first_path);
|
||||||
|
let ready = seed_navigation(&mut app, true).unwrap();
|
||||||
|
let job = ready.request.job;
|
||||||
|
app.publish_source_diagnostics(vec![warning(&app)]);
|
||||||
|
send(
|
||||||
|
&mut app,
|
||||||
|
Message::TextWorkspace(Event::ShowDrawer(DrawerTab::Problems)),
|
||||||
|
);
|
||||||
|
let old = warning_messages(&app);
|
||||||
|
let warnings = app.source_diagnostics.clone();
|
||||||
|
let publication = app.text_workspace.diagnostic_publication().unwrap();
|
||||||
|
let source = app.source_key();
|
||||||
|
let accepted = app.document.snapshot();
|
||||||
|
let revision = app.document.revision();
|
||||||
|
let raw = app.source_workspace.bundle();
|
||||||
|
save(&mut app, &second_path);
|
||||||
|
assert_eq!(app.path.as_deref(), Some(second_path.as_path()));
|
||||||
|
assert_ne!(app.source_key().workspace, source.workspace);
|
||||||
|
assert_eq!(app.source_workspace.bundle(), raw);
|
||||||
|
assert!(Arc::ptr_eq(&app.document.snapshot(), &accepted));
|
||||||
|
assert_eq!(app.document.revision(), revision);
|
||||||
|
assert_eq!(std::fs::read_to_string(&first_path).unwrap(), VALID);
|
||||||
|
assert_eq!(std::fs::read_to_string(&second_path).unwrap(), VALID);
|
||||||
|
assert_eq!(app.source_diagnostics, warnings);
|
||||||
|
let current = app
|
||||||
|
.text_workspace
|
||||||
|
.diagnostic_publication()
|
||||||
|
.expect("identity-only save retained current warnings");
|
||||||
|
assert_eq!(current.source(), app.source_key());
|
||||||
|
assert_ne!(current.generation(), publication.generation());
|
||||||
|
assert_cleared(&app, Some(job));
|
||||||
|
for message in old {
|
||||||
|
let interaction = app.source_symbols.interaction;
|
||||||
|
send(&mut app, message);
|
||||||
|
assert_eq!(app.source_symbols.interaction, interaction);
|
||||||
|
assert!(app.source_symbols.reveal.is_none() && app.source_jump.is_none());
|
||||||
|
}
|
||||||
|
send(
|
||||||
|
&mut app,
|
||||||
|
Message::TextWorkspace(Event::ShowDrawer(DrawerTab::Problems)),
|
||||||
|
);
|
||||||
|
for message in warning_messages(&app) {
|
||||||
|
send(&mut app, message);
|
||||||
|
assert!(
|
||||||
|
app.source_symbols.reveal.is_some(),
|
||||||
|
"fresh primary and related warnings remain actionable"
|
||||||
|
);
|
||||||
|
reveal(&mut app);
|
||||||
|
}
|
||||||
|
let cursor = app.source_editor.cursor();
|
||||||
|
send(&mut app, Message::SourceSymbolsReady(ready));
|
||||||
|
assert!(app.source_symbols.in_flight.is_none());
|
||||||
|
assert!(app.source_symbols.results.is_none());
|
||||||
|
assert!(app.source_symbols.reveal.is_none() && app.source_jump.is_none());
|
||||||
|
assert_eq!(app.source_editor.cursor(), cursor);
|
||||||
|
assert_eq!(app.source_workspace.bundle(), raw);
|
||||||
|
assert!(Arc::ptr_eq(&app.document.snapshot(), &accepted));
|
||||||
|
assert!(!app.document.can_undo() && !app.document.can_redo());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn invalid_repair_open_clears_prior_presentation_and_publishes_current_problems_preserving_worker()
|
||||||
|
{
|
||||||
|
for pending in [false, true] {
|
||||||
|
let directory = tempfile::tempdir().unwrap();
|
||||||
|
let path = directory
|
||||||
|
.path()
|
||||||
|
.canonicalize()
|
||||||
|
.unwrap()
|
||||||
|
.join("broken.arcadia");
|
||||||
|
let invalid = format!(
|
||||||
|
"{} include \"missing.arcadia\";\r\n}}\r\n",
|
||||||
|
VALID.strip_suffix("}\r\n").unwrap()
|
||||||
|
);
|
||||||
|
std::fs::write(&path, &invalid).unwrap();
|
||||||
|
let mut app = fixture();
|
||||||
|
let ready = seed_navigation(&mut app, pending);
|
||||||
|
let job = ready.as_ref().map(|ready| ready.request.job);
|
||||||
|
app.publish_source_diagnostics(vec![warning(&app)]);
|
||||||
|
send(
|
||||||
|
&mut app,
|
||||||
|
Message::TextWorkspace(Event::ShowDrawer(DrawerTab::Problems)),
|
||||||
|
);
|
||||||
|
let old = warning_messages(&app);
|
||||||
|
let old_publication = app.text_workspace.diagnostic_publication().unwrap();
|
||||||
|
let old_source = app.source_key();
|
||||||
|
let accepted = app.document.snapshot();
|
||||||
|
let open_menu = app.text_menu_message(Point::new(20., 20.));
|
||||||
|
send(&mut app, open_menu);
|
||||||
|
assert!(app.text_workspace.menu().is_some());
|
||||||
|
let loaded = read_snapshot(path.clone()).unwrap();
|
||||||
|
send(&mut app, Message::Loaded(Ok(Some(loaded))));
|
||||||
|
assert!(!app.source_workspace.applied);
|
||||||
|
assert_eq!(app.path.as_deref(), Some(path.as_path()));
|
||||||
|
assert_ne!(app.source_key().workspace, old_source.workspace);
|
||||||
|
assert_eq!(app.source_workspace.text(), invalid);
|
||||||
|
assert!(Arc::ptr_eq(&app.document.snapshot(), &accepted));
|
||||||
|
assert_cleared(&app, job);
|
||||||
|
assert!(
|
||||||
|
app.source_diagnostics
|
||||||
|
.iter()
|
||||||
|
.any(|issue| issue.diagnostic.severity == Severity::Error)
|
||||||
|
);
|
||||||
|
let publication = app.text_workspace.diagnostic_publication().unwrap();
|
||||||
|
assert_eq!(publication.source(), app.source_key());
|
||||||
|
assert_ne!(publication.generation(), old_publication.generation());
|
||||||
|
for message in old {
|
||||||
|
send(&mut app, message);
|
||||||
|
}
|
||||||
|
assert!(app.source_symbols.reveal.is_none() && app.source_jump.is_none());
|
||||||
|
send(
|
||||||
|
&mut app,
|
||||||
|
Message::TextWorkspace(Event::ShowDrawer(DrawerTab::Problems)),
|
||||||
|
);
|
||||||
|
let issue = app
|
||||||
|
.source_diagnostics
|
||||||
|
.iter()
|
||||||
|
.find(|issue| {
|
||||||
|
issue.path == app.source_workspace.active
|
||||||
|
&& issue.diagnostic.span.end <= invalid.len()
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
let current = app
|
||||||
|
.text_diagnostic_message(SourceLocation {
|
||||||
|
path: issue.path.clone(),
|
||||||
|
span: issue.diagnostic.span,
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
send(&mut app, current);
|
||||||
|
assert!(app.source_symbols.reveal.is_some());
|
||||||
|
reveal(&mut app);
|
||||||
|
if let Some(ready) = ready {
|
||||||
|
send(&mut app, Message::SourceSymbolsReady(ready));
|
||||||
|
}
|
||||||
|
assert!(app.source_symbols.in_flight.is_none());
|
||||||
|
assert!(app.source_symbols.results.is_none());
|
||||||
|
assert!(app.source_symbols.reveal.is_none() && app.source_jump.is_none());
|
||||||
|
assert_eq!(app.source_workspace.text(), invalid);
|
||||||
|
assert_eq!(std::fs::read_to_string(&path).unwrap(), invalid);
|
||||||
|
assert!(Arc::ptr_eq(&app.document.snapshot(), &accepted));
|
||||||
|
assert!(!app.document.can_undo() && !app.document.can_redo());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn canceled_or_failed_open_that_installs_nothing_retains_current_presentation_and_diagnostics() {
|
||||||
|
for failed in [false, true] {
|
||||||
|
let mut app = fixture();
|
||||||
|
seed_navigation(&mut app, false);
|
||||||
|
app.publish_source_diagnostics(vec![warning(&app)]);
|
||||||
|
let results = app.source_symbols.results.clone().unwrap();
|
||||||
|
let cache = app.source_symbols.cache.clone().unwrap();
|
||||||
|
let display = app.source_symbols.display_request.clone();
|
||||||
|
let back = app
|
||||||
|
.source_symbols
|
||||||
|
.back
|
||||||
|
.iter()
|
||||||
|
.map(|entry| {
|
||||||
|
(
|
||||||
|
entry.session,
|
||||||
|
entry.path.clone(),
|
||||||
|
entry.generation,
|
||||||
|
entry.cursor,
|
||||||
|
)
|
||||||
|
})
|
||||||
|
.collect::<Vec<_>>();
|
||||||
|
let key = app.source_key();
|
||||||
|
let accepted = app.document.snapshot();
|
||||||
|
let raw = app.source_workspace.bundle();
|
||||||
|
let cursor = app.source_editor.cursor();
|
||||||
|
let publication = app.text_workspace.diagnostic_publication();
|
||||||
|
let diagnostics = app.source_diagnostics.clone();
|
||||||
|
let visit = app.text_workspace.drawer_visit();
|
||||||
|
let result = if failed {
|
||||||
|
Err("Fixture read failed before installing a workspace".into())
|
||||||
|
} else {
|
||||||
|
Ok(None)
|
||||||
|
};
|
||||||
|
send(&mut app, Message::Loaded(result));
|
||||||
|
assert_eq!(app.source_key(), key);
|
||||||
|
assert_eq!(app.text_workspace.diagnostic_publication(), publication);
|
||||||
|
assert_eq!(app.source_diagnostics, diagnostics);
|
||||||
|
assert_eq!(app.text_workspace.drawer(), Some(DrawerTab::References));
|
||||||
|
assert_eq!(app.text_workspace.drawer_visit(), visit);
|
||||||
|
assert!(Arc::ptr_eq(
|
||||||
|
app.source_symbols.results.as_ref().unwrap(),
|
||||||
|
&results
|
||||||
|
));
|
||||||
|
assert!(Arc::ptr_eq(
|
||||||
|
app.source_symbols.cache.as_ref().unwrap(),
|
||||||
|
&cache
|
||||||
|
));
|
||||||
|
assert_eq!(app.source_symbols.display_request, display);
|
||||||
|
assert_eq!(
|
||||||
|
app.source_symbols
|
||||||
|
.back
|
||||||
|
.iter()
|
||||||
|
.map(|entry| (
|
||||||
|
entry.session,
|
||||||
|
entry.path.clone(),
|
||||||
|
entry.generation,
|
||||||
|
entry.cursor
|
||||||
|
))
|
||||||
|
.collect::<Vec<_>>(),
|
||||||
|
back
|
||||||
|
);
|
||||||
|
assert_eq!(app.source_workspace.bundle(), raw);
|
||||||
|
assert_eq!(app.source_editor.cursor(), cursor);
|
||||||
|
assert!(Arc::ptr_eq(&app.document.snapshot(), &accepted));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn saved_new_destination_does_not_revalidate_already_stale_warning_locations() {
|
||||||
|
let first = tempfile::tempdir().unwrap();
|
||||||
|
let second = tempfile::tempdir().unwrap();
|
||||||
|
let first_path = first.path().canonicalize().unwrap().join("project.arcadia");
|
||||||
|
let second_path = second
|
||||||
|
.path()
|
||||||
|
.canonicalize()
|
||||||
|
.unwrap()
|
||||||
|
.join("project.arcadia");
|
||||||
|
let mut app = fixture();
|
||||||
|
save(&mut app, &first_path);
|
||||||
|
app.publish_source_diagnostics(vec![warning(&app)]);
|
||||||
|
send(
|
||||||
|
&mut app,
|
||||||
|
Message::TextWorkspace(Event::ShowDrawer(DrawerTab::Problems)),
|
||||||
|
);
|
||||||
|
let old = warning_messages(&app);
|
||||||
|
let publication = app.text_workspace.diagnostic_publication().unwrap();
|
||||||
|
let draft = format!("{VALID}// unsaved current draft\r\n");
|
||||||
|
app.source_workspace
|
||||||
|
.edit(draft.clone(), app.source_editor.cursor());
|
||||||
|
app.show_source_file(false);
|
||||||
|
assert_ne!(publication.source(), app.source_key());
|
||||||
|
let accepted = app.document.snapshot();
|
||||||
|
save(&mut app, &second_path);
|
||||||
|
assert!(
|
||||||
|
app.text_workspace.diagnostic_publication().is_none(),
|
||||||
|
"identity-only reset cannot turn an old source span into a current warning"
|
||||||
|
);
|
||||||
|
send(
|
||||||
|
&mut app,
|
||||||
|
Message::TextWorkspace(Event::ShowDrawer(DrawerTab::Problems)),
|
||||||
|
);
|
||||||
|
assert!(
|
||||||
|
app.text_diagnostic_message(SourceLocation {
|
||||||
|
path: app.source_diagnostics[0].path.clone(),
|
||||||
|
span: app.source_diagnostics[0].diagnostic.span,
|
||||||
|
})
|
||||||
|
.is_none()
|
||||||
|
);
|
||||||
|
for message in old {
|
||||||
|
send(&mut app, message);
|
||||||
|
}
|
||||||
|
assert!(app.source_symbols.reveal.is_none() && app.source_jump.is_none());
|
||||||
|
assert_eq!(app.source_workspace.text(), draft);
|
||||||
|
assert!(app.source_dirty());
|
||||||
|
assert!(Arc::ptr_eq(&app.document.snapshot(), &accepted));
|
||||||
|
assert_eq!(
|
||||||
|
std::fs::read_to_string(&second_path).unwrap(),
|
||||||
|
VALID,
|
||||||
|
"receipt records accepted bytes while the newer draft remains unsaved"
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,617 @@
|
|||||||
|
use super::*;
|
||||||
|
use crate::app::Page;
|
||||||
|
use oa_core::{Project, language::Span};
|
||||||
|
use std::sync::Arc;
|
||||||
|
|
||||||
|
fn fixture() -> App {
|
||||||
|
let mut app = App::with_project(Project::empty());
|
||||||
|
app.page = Page::Text;
|
||||||
|
let diagnostics = app.source_diagnostics.clone();
|
||||||
|
app.publish_source_diagnostics(diagnostics);
|
||||||
|
assert!(app.source_navigation_available());
|
||||||
|
app
|
||||||
|
}
|
||||||
|
fn send(app: &mut App, event: Event) {
|
||||||
|
// Exercise the real envelope path; worker/lint futures are deliberately not
|
||||||
|
// polled here. The parent owns serialized compile/runtime verification.
|
||||||
|
let _ = app.update(Message::TextWorkspace(event));
|
||||||
|
}
|
||||||
|
fn toggle(app: &App, stamp: QueryStamp, path: String) -> Event {
|
||||||
|
Event::ToggleFile {
|
||||||
|
stamp,
|
||||||
|
visit: app.text_workspace.drawer_visit(),
|
||||||
|
path,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn open(app: &mut App) -> Id {
|
||||||
|
let message = app.text_menu_message(Point::new(10., 20.));
|
||||||
|
let _ = app.update(message);
|
||||||
|
app.text_workspace.menu().unwrap().token()
|
||||||
|
}
|
||||||
|
fn invoke(app: &mut App, token: Id, command: Command) {
|
||||||
|
send(app, Event::Invoke { token, command });
|
||||||
|
}
|
||||||
|
fn enabled(app: &App, command: Command) -> bool {
|
||||||
|
app.text_workspace
|
||||||
|
.menu
|
||||||
|
.as_ref()
|
||||||
|
.unwrap()
|
||||||
|
.entries
|
||||||
|
.iter()
|
||||||
|
.find(|entry| entry.command == command)
|
||||||
|
.is_some_and(|entry| entry.action.is_some())
|
||||||
|
}
|
||||||
|
fn back_entry(app: &App) -> nav::HistoryEntry {
|
||||||
|
nav::HistoryEntry {
|
||||||
|
session: app.source_workspace.session(),
|
||||||
|
path: app.source_workspace.active.clone(),
|
||||||
|
generation: app.source_workspace.files[&app.source_workspace.active].generation(),
|
||||||
|
cursor: app.source_editor.cursor(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn stamp(app: &App, serial: u64) -> QueryStamp {
|
||||||
|
QueryStamp {
|
||||||
|
snapshot: app.source_key(),
|
||||||
|
serial,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn location(app: &App, start: usize, end: usize) -> SourceLocation {
|
||||||
|
SourceLocation {
|
||||||
|
path: app.source_workspace.active.clone(),
|
||||||
|
span: Span { start, end },
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn menu_own_open_invalidation_does_not_stale_find_and_invoke_is_once() {
|
||||||
|
let mut app = fixture();
|
||||||
|
let old_interaction = app.source_symbols.interaction;
|
||||||
|
let token = open(&mut app);
|
||||||
|
assert_ne!(old_interaction, app.source_symbols.interaction);
|
||||||
|
assert_eq!(
|
||||||
|
app.text_workspace.menu.as_ref().unwrap().context,
|
||||||
|
app.text_command_context()
|
||||||
|
);
|
||||||
|
assert!(enabled(&app, Command::Find));
|
||||||
|
invoke(&mut app, token, Command::Find);
|
||||||
|
assert!(app.source_navigation.open);
|
||||||
|
assert!(app.text_workspace.menu().is_none());
|
||||||
|
let instance = app.source_find_instance;
|
||||||
|
invoke(&mut app, token, Command::Find);
|
||||||
|
assert_eq!(
|
||||||
|
app.source_find_instance, instance,
|
||||||
|
"replay must not reopen Find"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn disabled_entry_cannot_become_a_new_action_under_the_same_menu_token() {
|
||||||
|
let mut app = fixture();
|
||||||
|
let token = open(&mut app);
|
||||||
|
assert!(!enabled(&app, Command::Back));
|
||||||
|
app.source_symbols.back.push(back_entry(&app));
|
||||||
|
assert!(
|
||||||
|
!enabled(&app, Command::Back),
|
||||||
|
"frozen presentation must remain disabled"
|
||||||
|
);
|
||||||
|
invoke(&mut app, token, Command::Back);
|
||||||
|
assert_eq!(
|
||||||
|
app.source_symbols.back.len(),
|
||||||
|
1,
|
||||||
|
"a newly enabled action cannot be substituted"
|
||||||
|
);
|
||||||
|
assert!(app.source_symbols.reveal.is_none());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn enabled_entry_is_readmitted_at_dispatch_and_blocked_by_busy() {
|
||||||
|
let mut app = fixture();
|
||||||
|
let token = open(&mut app);
|
||||||
|
assert!(enabled(&app, Command::Find));
|
||||||
|
app.busy = true;
|
||||||
|
assert!(enabled(&app, Command::Find));
|
||||||
|
invoke(&mut app, token, Command::Find);
|
||||||
|
assert!(!app.source_navigation.open);
|
||||||
|
assert!(app.text_workspace.menu().is_none());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn old_dismiss_and_invoke_do_not_consume_a_newer_menu() {
|
||||||
|
let mut app = fixture();
|
||||||
|
let old = open(&mut app);
|
||||||
|
send(&mut app, Event::DismissMenu(old));
|
||||||
|
let new = open(&mut app);
|
||||||
|
send(&mut app, Event::DismissMenu(old));
|
||||||
|
invoke(&mut app, old, Command::Find);
|
||||||
|
assert_eq!(app.text_workspace.menu().unwrap().token(), new);
|
||||||
|
assert!(!app.source_navigation.open);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn menu_source_caret_document_path_and_interaction_changes_refuse_stale_find() {
|
||||||
|
for change in 0..6 {
|
||||||
|
let mut app = fixture();
|
||||||
|
let token = open(&mut app);
|
||||||
|
match change {
|
||||||
|
0 => {
|
||||||
|
let value = format!("{}\n// changed", app.source_workspace.text());
|
||||||
|
app.source_workspace.edit(value, app.source_editor.cursor());
|
||||||
|
}
|
||||||
|
1 => {
|
||||||
|
let mut cursor = app.source_editor.cursor();
|
||||||
|
cursor.position.column += 1;
|
||||||
|
app.source_editor.move_to(cursor);
|
||||||
|
}
|
||||||
|
2 => app.canvas_document = Id::new_v4(),
|
||||||
|
3 => app.source_workspace.active = "other.arcadia".into(),
|
||||||
|
4 => app.source_symbols.interaction = Id::new_v4(),
|
||||||
|
_ => {
|
||||||
|
let mut bundle = app.document.bundle().clone();
|
||||||
|
bundle
|
||||||
|
.files
|
||||||
|
.get_mut(&bundle.entry)
|
||||||
|
.unwrap()
|
||||||
|
.push_str("\n// accepted revision");
|
||||||
|
assert!(app.document.apply_bundle(bundle).unwrap());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
invoke(&mut app, token, Command::Find);
|
||||||
|
assert!(!app.source_navigation.open, "stale context case {change}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn source_and_property_drafts_keep_find_and_text_undo_without_model_application() {
|
||||||
|
let mut app = fixture();
|
||||||
|
let accepted = app.document.bundle().clone();
|
||||||
|
let revision = app.document.revision();
|
||||||
|
let pending_name = "Pending property draft";
|
||||||
|
// Use the actual property input route before source edits coexist. Changing
|
||||||
|
// Draft::value alone is overwritten by its authoritative raw input buffer.
|
||||||
|
let _ = app.update(Message::Field("/name".into(), pending_name.into()));
|
||||||
|
let assert_pending_property = |app: &App| {
|
||||||
|
let draft = app.draft.as_ref().unwrap();
|
||||||
|
assert!(draft.dirty());
|
||||||
|
assert_eq!(draft.inputs["/name"].raw, pending_name);
|
||||||
|
assert_eq!(draft.inputs["/name"].editor.text(), pending_name);
|
||||||
|
assert_eq!(
|
||||||
|
draft.materialize().unwrap()["name"].as_str(),
|
||||||
|
Some(pending_name)
|
||||||
|
);
|
||||||
|
};
|
||||||
|
assert_pending_property(&app);
|
||||||
|
let initial = app.source_workspace.text().to_owned();
|
||||||
|
app.source_workspace
|
||||||
|
.edit(format!("{initial}\n// draft"), app.source_editor.cursor());
|
||||||
|
app.show_source_file(false);
|
||||||
|
assert!(app.source_dirty() && app.draft_dirty());
|
||||||
|
let token = open(&mut app);
|
||||||
|
assert!(enabled(&app, Command::Find) && enabled(&app, Command::UndoText));
|
||||||
|
assert!(!enabled(&app, Command::RenameAlias) && !enabled(&app, Command::UndoModel));
|
||||||
|
invoke(&mut app, token, Command::Find);
|
||||||
|
assert!(app.source_navigation.open);
|
||||||
|
assert_pending_property(&app);
|
||||||
|
let token = open(&mut app);
|
||||||
|
invoke(&mut app, token, Command::UndoText);
|
||||||
|
assert_eq!(app.source_workspace.text(), initial);
|
||||||
|
assert_pending_property(&app);
|
||||||
|
assert_eq!(app.document.revision(), revision);
|
||||||
|
assert_eq!(app.document.bundle(), &accepted);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn queued_toolbar_request_cannot_retarget_after_source_change() {
|
||||||
|
let mut app = fixture();
|
||||||
|
let request = app.text_command_message(Command::Find);
|
||||||
|
app.source_workspace
|
||||||
|
.edit("// changed".into(), app.source_editor.cursor());
|
||||||
|
let _ = app.update(request);
|
||||||
|
assert!(!app.source_navigation.open);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn equal_diagnostic_republication_invalidates_primary_and_related_targets() {
|
||||||
|
let mut app = fixture();
|
||||||
|
send(&mut app, Event::ShowDrawer(DrawerTab::Problems));
|
||||||
|
let primary = app.text_diagnostic_message(location(&app, 0, 1)).unwrap();
|
||||||
|
let related = app.text_diagnostic_message(location(&app, 1, 2)).unwrap();
|
||||||
|
let previous = app.text_workspace.diagnostic_publication().unwrap();
|
||||||
|
app.publish_source_diagnostics(app.source_diagnostics.clone());
|
||||||
|
let current = app.text_workspace.diagnostic_publication().unwrap();
|
||||||
|
assert_eq!(previous.source(), current.source());
|
||||||
|
assert_ne!(previous.generation(), current.generation());
|
||||||
|
for message in [primary, related] {
|
||||||
|
let interaction = app.source_symbols.interaction;
|
||||||
|
let _ = app.update(message);
|
||||||
|
assert_eq!(app.source_symbols.interaction, interaction);
|
||||||
|
assert!(app.source_symbols.reveal.is_none());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn current_diagnostic_target_navigates_but_changed_source_or_clear_refuses_it() {
|
||||||
|
let mut app = fixture();
|
||||||
|
send(&mut app, Event::ShowDrawer(DrawerTab::Problems));
|
||||||
|
let message = app.text_diagnostic_message(location(&app, 0, 1)).unwrap();
|
||||||
|
let _ = app.update(message);
|
||||||
|
assert!(app.source_symbols.reveal.is_some());
|
||||||
|
app.source_interaction();
|
||||||
|
let message = app.text_diagnostic_message(location(&app, 0, 1)).unwrap();
|
||||||
|
app.source_workspace
|
||||||
|
.edit("// newer".into(), app.source_editor.cursor());
|
||||||
|
let _ = app.update(message);
|
||||||
|
assert!(app.source_symbols.reveal.is_none());
|
||||||
|
assert!(app.text_diagnostic_message(location(&app, 0, 1)).is_none());
|
||||||
|
app.publish_source_diagnostics(Vec::new());
|
||||||
|
let message = app.text_diagnostic_message(location(&app, 0, 1)).unwrap();
|
||||||
|
app.publish_source_diagnostics(Vec::new());
|
||||||
|
let _ = app.update(message);
|
||||||
|
assert!(app.source_symbols.reveal.is_none());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn diagnostic_span_must_be_loaded_ordered_and_utf8_exact() {
|
||||||
|
let mut app = fixture();
|
||||||
|
send(&mut app, Event::ShowDrawer(DrawerTab::Problems));
|
||||||
|
app.source_workspace
|
||||||
|
.edit("a雨b".into(), app.source_editor.cursor());
|
||||||
|
app.show_source_file(false);
|
||||||
|
app.publish_source_diagnostics(Vec::new());
|
||||||
|
let mut missing = location(&app, 0, 1);
|
||||||
|
missing.path = "missing.arcadia".into();
|
||||||
|
for target in [
|
||||||
|
location(&app, 3, 2),
|
||||||
|
location(&app, 0, 6),
|
||||||
|
location(&app, 2, 4),
|
||||||
|
location(&app, 1, 3),
|
||||||
|
missing,
|
||||||
|
] {
|
||||||
|
let message = app.text_diagnostic_message(target).unwrap();
|
||||||
|
let _ = app.update(message);
|
||||||
|
assert!(app.source_symbols.reveal.is_none());
|
||||||
|
}
|
||||||
|
let message = app.text_diagnostic_message(location(&app, 1, 4)).unwrap();
|
||||||
|
let _ = app.update(message);
|
||||||
|
assert!(app.source_symbols.reveal.is_some());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn reference_groups_and_scroll_survive_tabs_and_reject_old_visits_and_queries() {
|
||||||
|
let mut app = fixture();
|
||||||
|
let first = stamp(&app, 1);
|
||||||
|
app.text_workspace
|
||||||
|
.begin_references(first, "b/use.arcadia".into());
|
||||||
|
app.text_workspace
|
||||||
|
.install_reference_files(first, ["a/use.arcadia".into(), "b/use.arcadia".into()]);
|
||||||
|
assert!(app.text_workspace.references().collapsed("a/use.arcadia"));
|
||||||
|
assert!(!app.text_workspace.references().collapsed("b/use.arcadia"));
|
||||||
|
let event = toggle(&app, first, "a/use.arcadia".into());
|
||||||
|
send(&mut app, event);
|
||||||
|
let old_visit = app.text_workspace.drawer_visit();
|
||||||
|
let old_scroll_id = app.text_workspace.reference_scroll_id();
|
||||||
|
let interaction = app.source_symbols.interaction;
|
||||||
|
send(
|
||||||
|
&mut app,
|
||||||
|
Event::ReferenceScrolled {
|
||||||
|
stamp: first,
|
||||||
|
visit: old_visit,
|
||||||
|
y: 123.,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
assert_eq!(
|
||||||
|
app.source_symbols.interaction, interaction,
|
||||||
|
"scroll is passive"
|
||||||
|
);
|
||||||
|
send(&mut app, Event::ShowDrawer(DrawerTab::Status));
|
||||||
|
send(
|
||||||
|
&mut app,
|
||||||
|
Event::ReferenceScrolled {
|
||||||
|
stamp: first,
|
||||||
|
visit: old_visit,
|
||||||
|
y: 0.,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
send(&mut app, Event::ShowDrawer(DrawerTab::References));
|
||||||
|
assert_eq!(app.text_workspace.references().scroll_y(), 123.);
|
||||||
|
assert!(!app.text_workspace.references().collapsed("a/use.arcadia"));
|
||||||
|
send(
|
||||||
|
&mut app,
|
||||||
|
Event::ReferenceScrolled {
|
||||||
|
stamp: first,
|
||||||
|
visit: old_visit,
|
||||||
|
y: 0.,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
assert_eq!(app.text_workspace.references().scroll_y(), 123.);
|
||||||
|
assert_ne!(app.text_workspace.reference_scroll_id(), old_scroll_id);
|
||||||
|
let second = stamp(&app, 2);
|
||||||
|
app.text_workspace
|
||||||
|
.begin_references(second, "absent.arcadia".into());
|
||||||
|
app.text_workspace
|
||||||
|
.install_reference_files(first, ["old.arcadia".into()]);
|
||||||
|
app.text_workspace
|
||||||
|
.install_reference_files(second, ["b/use.arcadia".into(), "a/use.arcadia".into()]);
|
||||||
|
assert_eq!(app.text_workspace.references().scroll_y(), 0.);
|
||||||
|
assert!(!app.text_workspace.references().collapsed("a/use.arcadia"));
|
||||||
|
assert!(app.text_workspace.references().collapsed("b/use.arcadia"));
|
||||||
|
let event = toggle(&app, first, "b/use.arcadia".into());
|
||||||
|
send(&mut app, event);
|
||||||
|
assert!(app.text_workspace.references().collapsed("b/use.arcadia"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn reset_removes_ui_and_publication_authority_and_resize_rejects_nan() {
|
||||||
|
let mut app = fixture();
|
||||||
|
open(&mut app);
|
||||||
|
app.text_workspace.reset();
|
||||||
|
assert!(app.text_workspace.menu().is_none());
|
||||||
|
assert!(app.text_workspace.diagnostic_publication().is_none());
|
||||||
|
assert!(app.text_workspace.drawer().is_none());
|
||||||
|
send(&mut app, Event::ResizeDrawer(f32::NAN));
|
||||||
|
assert_eq!(app.text_workspace.drawer_height(), 180.);
|
||||||
|
send(&mut app, Event::ResizeDrawer(f32::MAX));
|
||||||
|
assert_eq!(app.text_workspace.drawer_height(), 1200.);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn only_valid_explicit_group_and_resize_intent_cancel_pending_navigation() {
|
||||||
|
let mut app = fixture();
|
||||||
|
let current = stamp(&app, 1);
|
||||||
|
app.text_workspace
|
||||||
|
.begin_references(current, "uses.arcadia".into());
|
||||||
|
app.text_workspace
|
||||||
|
.install_reference_files(current, ["uses.arcadia".into()]);
|
||||||
|
let request = nav::Request {
|
||||||
|
job: Id::new_v4(),
|
||||||
|
interaction: app.source_symbols.interaction,
|
||||||
|
raw_interaction: 0,
|
||||||
|
stamp: current,
|
||||||
|
path: app.source_workspace.active.clone(),
|
||||||
|
offset: 0,
|
||||||
|
cursor: app.source_editor.cursor(),
|
||||||
|
action: nav::query::Action::References,
|
||||||
|
};
|
||||||
|
app.source_symbols.request = Some(request.clone());
|
||||||
|
app.source_symbols.in_flight = Some(request.job);
|
||||||
|
let interaction = app.source_symbols.interaction;
|
||||||
|
let event = toggle(&app, current, "not-a-group.arcadia".into());
|
||||||
|
send(&mut app, event);
|
||||||
|
let old = QueryStamp {
|
||||||
|
serial: 0,
|
||||||
|
..current
|
||||||
|
};
|
||||||
|
let event = toggle(&app, old, "uses.arcadia".into());
|
||||||
|
send(&mut app, event);
|
||||||
|
send(&mut app, Event::ResizeDrawer(f32::NAN));
|
||||||
|
send(&mut app, Event::ResizeDrawer(180.));
|
||||||
|
assert_eq!(app.source_symbols.interaction, interaction);
|
||||||
|
assert!(app.source_symbols.request.is_some());
|
||||||
|
let event = toggle(&app, current, "uses.arcadia".into());
|
||||||
|
send(&mut app, event);
|
||||||
|
assert!(app.source_symbols.request.is_none());
|
||||||
|
assert_ne!(app.source_symbols.interaction, interaction);
|
||||||
|
assert_eq!(
|
||||||
|
app.source_symbols.in_flight,
|
||||||
|
Some(request.job),
|
||||||
|
"intent does not release an occupied worker"
|
||||||
|
);
|
||||||
|
app.source_symbols.request = Some(request.clone());
|
||||||
|
send(&mut app, Event::ResizeDrawer(240.));
|
||||||
|
assert!(app.source_symbols.request.is_none());
|
||||||
|
app.source_symbols.request = Some(request.clone());
|
||||||
|
send(&mut app, Event::HideDrawer);
|
||||||
|
assert!(app.source_symbols.request.is_none());
|
||||||
|
assert_eq!(app.source_symbols.in_flight, Some(request.job));
|
||||||
|
assert_eq!(app.text_workspace.references().stamp(), Some(current));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn stale_retained_group_can_expand_without_navigating_or_applying_drafts() {
|
||||||
|
let mut app = fixture();
|
||||||
|
let current = stamp(&app, 1);
|
||||||
|
let path = app.source_workspace.active.clone();
|
||||||
|
app.text_workspace.begin_references(current, path.clone());
|
||||||
|
app.text_workspace
|
||||||
|
.install_reference_files(current, [path.clone()]);
|
||||||
|
let event = toggle(&app, current, path.clone());
|
||||||
|
send(&mut app, event);
|
||||||
|
assert!(app.text_workspace.references().collapsed(&path));
|
||||||
|
let accepted = app.document.snapshot();
|
||||||
|
let _ = app.update(Message::SourceEdit(widget::text_editor::Action::Edit(
|
||||||
|
widget::text_editor::Edit::Insert(' '),
|
||||||
|
)));
|
||||||
|
assert_ne!(current.snapshot, app.source_key());
|
||||||
|
let raw = app.source_workspace.bundle();
|
||||||
|
let cursor = app.source_editor.cursor();
|
||||||
|
let event = toggle(&app, current, path.clone());
|
||||||
|
send(&mut app, event);
|
||||||
|
assert!(!app.text_workspace.references().collapsed(&path));
|
||||||
|
assert_eq!(app.source_workspace.active, path);
|
||||||
|
assert_eq!(app.source_workspace.bundle(), raw);
|
||||||
|
assert_eq!(app.source_editor.cursor(), cursor);
|
||||||
|
assert!(app.source_symbols.reveal.is_none() && app.source_symbols.back.is_empty());
|
||||||
|
assert!(std::sync::Arc::ptr_eq(&accepted, &app.document.snapshot()));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn document_reset_preserves_popup_token_sequence_and_drops_old_menu_authority() {
|
||||||
|
let mut app = fixture();
|
||||||
|
let old = open(&mut app);
|
||||||
|
let sequence = app.text_workspace_menu().unwrap().token;
|
||||||
|
app.reset(Project::empty(), None);
|
||||||
|
assert!(app.text_workspace.menu().is_none());
|
||||||
|
app.page = Page::Text;
|
||||||
|
let fresh = open(&mut app);
|
||||||
|
assert_ne!(old, fresh);
|
||||||
|
assert!(app.text_workspace_menu().unwrap().token > sequence);
|
||||||
|
invoke(&mut app, old, Command::Find);
|
||||||
|
assert!(!app.source_navigation.open);
|
||||||
|
assert_eq!(app.text_workspace.menu().unwrap().token(), fresh);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn retained_primary_and_related_targets_cannot_replay_after_hide_or_problems_references_problems() {
|
||||||
|
for hide in [false, true] {
|
||||||
|
let mut app = fixture();
|
||||||
|
send(&mut app, Event::ShowDrawer(DrawerTab::Problems));
|
||||||
|
let old_visit = app.text_workspace.drawer_visit();
|
||||||
|
let publication = app.text_workspace.diagnostic_publication();
|
||||||
|
let targets = [location(&app, 0, 1), location(&app, 1, 2)];
|
||||||
|
let old = targets
|
||||||
|
.iter()
|
||||||
|
.cloned()
|
||||||
|
.map(|target| app.text_diagnostic_message(target).unwrap())
|
||||||
|
.collect::<Vec<_>>();
|
||||||
|
let accepted = app.document.snapshot();
|
||||||
|
let raw = app.source_workspace.bundle();
|
||||||
|
let history = (
|
||||||
|
app.document.revision(),
|
||||||
|
app.document.can_undo(),
|
||||||
|
app.document.can_redo(),
|
||||||
|
app.document.dirty(),
|
||||||
|
);
|
||||||
|
let event = if hide {
|
||||||
|
Event::HideDrawer
|
||||||
|
} else {
|
||||||
|
Event::ShowDrawer(DrawerTab::References)
|
||||||
|
};
|
||||||
|
send(&mut app, event);
|
||||||
|
for reopened in [false, true] {
|
||||||
|
if reopened {
|
||||||
|
send(&mut app, Event::ShowDrawer(DrawerTab::Problems));
|
||||||
|
} else {
|
||||||
|
assert!(app.text_diagnostic_message(targets[0].clone()).is_none());
|
||||||
|
}
|
||||||
|
assert_ne!(app.text_workspace.drawer_visit(), old_visit);
|
||||||
|
assert_eq!(
|
||||||
|
app.text_workspace.diagnostic_publication(),
|
||||||
|
publication,
|
||||||
|
"same list and source isolate the visit guard from publication freshness"
|
||||||
|
);
|
||||||
|
let context = app.text_command_context();
|
||||||
|
let drawer = app.text_workspace.drawer();
|
||||||
|
let visit = app.text_workspace.drawer_visit();
|
||||||
|
for message in old.iter().cloned() {
|
||||||
|
let _ = app.update(message);
|
||||||
|
assert_eq!(
|
||||||
|
app.text_command_context(),
|
||||||
|
context,
|
||||||
|
"stale diagnostic must fail before interaction invalidation"
|
||||||
|
);
|
||||||
|
assert_eq!(app.text_workspace.drawer(), drawer);
|
||||||
|
assert_eq!(app.text_workspace.drawer_visit(), visit);
|
||||||
|
assert!(app.source_symbols.reveal.is_none() && app.source_jump.is_none());
|
||||||
|
assert!(app.source_symbols.back.is_empty());
|
||||||
|
assert_eq!(app.source_workspace.bundle(), raw);
|
||||||
|
assert!(Arc::ptr_eq(&accepted, &app.document.snapshot()));
|
||||||
|
assert_eq!(
|
||||||
|
(
|
||||||
|
app.document.revision(),
|
||||||
|
app.document.can_undo(),
|
||||||
|
app.document.can_redo(),
|
||||||
|
app.document.dirty()
|
||||||
|
),
|
||||||
|
history
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for target in targets {
|
||||||
|
let fresh = app.text_diagnostic_message(target).unwrap();
|
||||||
|
let _ = app.update(fresh);
|
||||||
|
assert!(
|
||||||
|
app.source_symbols.reveal.is_some(),
|
||||||
|
"fresh primary and related targets remain usable"
|
||||||
|
);
|
||||||
|
app.source_interaction();
|
||||||
|
}
|
||||||
|
assert_eq!(app.source_workspace.bundle(), raw);
|
||||||
|
assert!(Arc::ptr_eq(&accepted, &app.document.snapshot()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn queued_group_toggle_cannot_mutate_a_reopened_or_rotated_visit() {
|
||||||
|
for replacement in 0..3 {
|
||||||
|
let mut app = fixture();
|
||||||
|
let current = stamp(&app, 1);
|
||||||
|
app.text_workspace
|
||||||
|
.begin_references(current, "a.arcadia".into());
|
||||||
|
app.text_workspace
|
||||||
|
.install_reference_files(current, ["a.arcadia".into(), "b.arcadia".into()]);
|
||||||
|
let old = toggle(&app, current, "a.arcadia".into());
|
||||||
|
let old_visit = app.text_workspace.drawer_visit();
|
||||||
|
match replacement {
|
||||||
|
0 => {
|
||||||
|
send(&mut app, Event::HideDrawer);
|
||||||
|
send(&mut app, Event::ShowDrawer(DrawerTab::References));
|
||||||
|
}
|
||||||
|
1 => {
|
||||||
|
send(&mut app, Event::ShowDrawer(DrawerTab::Problems));
|
||||||
|
send(&mut app, Event::ShowDrawer(DrawerTab::References));
|
||||||
|
}
|
||||||
|
_ => {
|
||||||
|
let event = toggle(&app, current, "b.arcadia".into());
|
||||||
|
send(&mut app, event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let visit = app.text_workspace.drawer_visit();
|
||||||
|
assert_ne!(visit, old_visit);
|
||||||
|
send(
|
||||||
|
&mut app,
|
||||||
|
Event::ReferenceScrolled {
|
||||||
|
stamp: current,
|
||||||
|
visit,
|
||||||
|
y: 84.,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
let scroll_id = app.text_workspace.reference_scroll_id();
|
||||||
|
let request = nav::Request {
|
||||||
|
job: Id::new_v4(),
|
||||||
|
interaction: app.source_symbols.interaction,
|
||||||
|
raw_interaction: 0,
|
||||||
|
stamp: current,
|
||||||
|
path: app.source_workspace.active.clone(),
|
||||||
|
offset: 0,
|
||||||
|
cursor: app.source_editor.cursor(),
|
||||||
|
action: nav::query::Action::References,
|
||||||
|
};
|
||||||
|
app.source_symbols.request = Some(request.clone());
|
||||||
|
app.source_symbols.in_flight = Some(request.job);
|
||||||
|
let groups =
|
||||||
|
["a.arcadia", "b.arcadia"].map(|path| app.text_workspace.references().collapsed(path));
|
||||||
|
let context = app.text_command_context();
|
||||||
|
let accepted = app.document.snapshot();
|
||||||
|
let raw = app.source_workspace.bundle();
|
||||||
|
for _ in 0..2 {
|
||||||
|
send(&mut app, old.clone());
|
||||||
|
assert_eq!(app.text_workspace.drawer_visit(), visit);
|
||||||
|
assert_eq!(app.text_workspace.references().scroll_y(), 84.);
|
||||||
|
assert_eq!(app.text_workspace.reference_scroll_id(), scroll_id);
|
||||||
|
assert_eq!(app.text_workspace.references().stamp(), Some(current));
|
||||||
|
assert_eq!(
|
||||||
|
["a.arcadia", "b.arcadia"]
|
||||||
|
.map(|path| app.text_workspace.references().collapsed(path)),
|
||||||
|
groups,
|
||||||
|
);
|
||||||
|
assert_eq!(app.text_command_context(), context);
|
||||||
|
assert_eq!(app.source_symbols.request.as_ref(), Some(&request));
|
||||||
|
assert_eq!(app.source_symbols.in_flight, Some(request.job));
|
||||||
|
assert!(app.source_symbols.reveal.is_none() && app.source_jump.is_none());
|
||||||
|
}
|
||||||
|
let fresh = toggle(&app, current, "a.arcadia".into());
|
||||||
|
send(&mut app, fresh);
|
||||||
|
assert_eq!(
|
||||||
|
app.text_workspace.references().collapsed("a.arcadia"),
|
||||||
|
!groups[0]
|
||||||
|
);
|
||||||
|
assert_ne!(app.text_workspace.drawer_visit(), visit);
|
||||||
|
assert_ne!(app.source_symbols.interaction, context.interaction);
|
||||||
|
assert!(app.source_symbols.request.is_none());
|
||||||
|
assert_eq!(app.source_symbols.in_flight, Some(request.job));
|
||||||
|
assert!(app.source_symbols.reveal.is_none() && app.source_jump.is_none());
|
||||||
|
assert!(app.source_symbols.back.is_empty());
|
||||||
|
assert_eq!(app.source_workspace.bundle(), raw);
|
||||||
|
assert!(Arc::ptr_eq(&accepted, &app.document.snapshot()));
|
||||||
|
assert!(!app.document.can_undo() && !app.document.can_redo());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,301 @@
|
|||||||
|
//! Publication-and-visit-bound input for a mounted diagnostic list.
|
||||||
|
//!
|
||||||
|
//! Keep this wrapper at the same widget-tree position, inside the list's outer
|
||||||
|
//! scroller. Pass `None` with an empty child while hidden/removed; unmounting the
|
||||||
|
//! wrapper loses its ability to consume an outstanding release. Every change to
|
||||||
|
//! row identity/order/action must have a fresh publication Id. Pass the pair
|
||||||
|
//! (publication generation, drawer visit): a new visit resets armed controls even
|
||||||
|
//! if Hide and Show coalesce without an intermediate hidden Tree. The child tree
|
||||||
|
//! resets when either component changes, clearing button presses and row focus;
|
||||||
|
//! the outer scroller and editor trees are not reset.
|
||||||
|
//!
|
||||||
|
//! Capturing stops Iced event bubbling and later consumers that respect capture.
|
||||||
|
//! It cannot undo an earlier sibling's event handling. This is a row-list guard,
|
||||||
|
//! not a root event filter or a guard for actions in child overlays. Diagnostic
|
||||||
|
//! messages still need publication/snapshot and drawer-visit validation at dispatch.
|
||||||
|
use iced::advanced::{Clipboard, Layout, Shell, Widget, layout, overlay, renderer, widget};
|
||||||
|
use iced::{Element, Event, Length, Rectangle, Size, Vector, mouse, touch};
|
||||||
|
use oa_core::Id;
|
||||||
|
|
||||||
|
pub struct Guard<'a, Message, Theme = iced::Theme, Renderer = iced::Renderer> {
|
||||||
|
identity: Option<(Id, Id)>,
|
||||||
|
content: Element<'a, Message, Theme, Renderer>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a, Message, Theme, Renderer> Guard<'a, Message, Theme, Renderer> {
|
||||||
|
pub fn new(
|
||||||
|
identity: Option<(Id, Id)>,
|
||||||
|
content: impl Into<Element<'a, Message, Theme, Renderer>>,
|
||||||
|
) -> Self {
|
||||||
|
Self {
|
||||||
|
identity,
|
||||||
|
content: content.into(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
|
||||||
|
enum Pointer {
|
||||||
|
Mouse,
|
||||||
|
Touch(touch::Finger),
|
||||||
|
}
|
||||||
|
impl Pointer {
|
||||||
|
fn press(event: &Event) -> Option<Self> {
|
||||||
|
match event {
|
||||||
|
Event::Mouse(mouse::Event::ButtonPressed(mouse::Button::Left)) => Some(Self::Mouse),
|
||||||
|
Event::Touch(touch::Event::FingerPressed { id, .. }) => Some(Self::Touch(*id)),
|
||||||
|
_ => None,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn release(event: &Event) -> Option<Self> {
|
||||||
|
match event {
|
||||||
|
Event::Mouse(mouse::Event::ButtonReleased(mouse::Button::Left)) => Some(Self::Mouse),
|
||||||
|
Event::Touch(
|
||||||
|
touch::Event::FingerLifted { id, .. } | touch::Event::FingerLost { id, .. },
|
||||||
|
) => Some(Self::Touch(*id)),
|
||||||
|
_ => None,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
struct State {
|
||||||
|
identity: Option<(Id, Id)>,
|
||||||
|
pressed: Option<Pointer>,
|
||||||
|
swallowed: Vec<Pointer>,
|
||||||
|
}
|
||||||
|
impl State {
|
||||||
|
fn quarantine(&mut self, pointer: Pointer) {
|
||||||
|
if !self.swallowed.contains(&pointer) {
|
||||||
|
self.swallowed.push(pointer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn forget(&mut self, pointer: Pointer) -> bool {
|
||||||
|
let found = self.swallowed.contains(&pointer);
|
||||||
|
self.swallowed.retain(|item| *item != pointer);
|
||||||
|
found
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<Message, Theme, Renderer: renderer::Renderer> Widget<Message, Theme, Renderer>
|
||||||
|
for Guard<'_, Message, Theme, Renderer>
|
||||||
|
{
|
||||||
|
fn tag(&self) -> widget::tree::Tag {
|
||||||
|
widget::tree::Tag::of::<State>()
|
||||||
|
}
|
||||||
|
fn state(&self) -> widget::tree::State {
|
||||||
|
widget::tree::State::new(State {
|
||||||
|
identity: self.identity,
|
||||||
|
pressed: None,
|
||||||
|
swallowed: Vec::new(),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
fn children(&self) -> Vec<widget::Tree> {
|
||||||
|
vec![widget::Tree::new(&self.content)]
|
||||||
|
}
|
||||||
|
fn diff(&self, tree: &mut widget::Tree) {
|
||||||
|
let state = tree.state.downcast_mut::<State>();
|
||||||
|
if state.identity != self.identity {
|
||||||
|
state.identity = self.identity;
|
||||||
|
if let Some(pointer) = state.pressed.take() {
|
||||||
|
state.quarantine(pointer);
|
||||||
|
}
|
||||||
|
tree.children = self.children();
|
||||||
|
} else {
|
||||||
|
tree.diff_children(std::slice::from_ref(&self.content));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn size(&self) -> Size<Length> {
|
||||||
|
self.content.as_widget().size()
|
||||||
|
}
|
||||||
|
fn size_hint(&self) -> Size<Length> {
|
||||||
|
self.content.as_widget().size_hint()
|
||||||
|
}
|
||||||
|
fn layout(
|
||||||
|
&mut self,
|
||||||
|
tree: &mut widget::Tree,
|
||||||
|
renderer: &Renderer,
|
||||||
|
limits: &layout::Limits,
|
||||||
|
) -> layout::Node {
|
||||||
|
self.content
|
||||||
|
.as_widget_mut()
|
||||||
|
.layout(&mut tree.children[0], renderer, limits)
|
||||||
|
}
|
||||||
|
fn operate(
|
||||||
|
&mut self,
|
||||||
|
tree: &mut widget::Tree,
|
||||||
|
layout: Layout<'_>,
|
||||||
|
renderer: &Renderer,
|
||||||
|
operation: &mut dyn widget::Operation,
|
||||||
|
) {
|
||||||
|
self.content
|
||||||
|
.as_widget_mut()
|
||||||
|
.operate(&mut tree.children[0], layout, renderer, operation);
|
||||||
|
}
|
||||||
|
fn update(
|
||||||
|
&mut self,
|
||||||
|
tree: &mut widget::Tree,
|
||||||
|
event: &Event,
|
||||||
|
layout: Layout<'_>,
|
||||||
|
cursor: mouse::Cursor,
|
||||||
|
renderer: &Renderer,
|
||||||
|
clipboard: &mut dyn Clipboard,
|
||||||
|
shell: &mut Shell<'_, Message>,
|
||||||
|
viewport: &Rectangle,
|
||||||
|
) {
|
||||||
|
let state = tree.state.downcast_mut::<State>();
|
||||||
|
let release = Pointer::release(event);
|
||||||
|
if let Some(pointer) = release {
|
||||||
|
// Bounds may have become empty or moved. Consume the physical
|
||||||
|
// gesture's terminal event regardless of its current position.
|
||||||
|
if state.forget(pointer) {
|
||||||
|
shell.capture_event();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// Iced Button has a single is_pressed bit, not a pointer identity.
|
||||||
|
// A different finger/mouse release must not activate that button.
|
||||||
|
if state.pressed.is_some_and(|pressed| pressed != pointer) {
|
||||||
|
shell.capture_event();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let press = Pointer::press(event);
|
||||||
|
if let Some(pointer) = state.pressed.filter(|pointer| {
|
||||||
|
press == Some(*pointer) || (release == Some(*pointer) && shell.is_event_captured())
|
||||||
|
}) {
|
||||||
|
// Recover an omitted terminal event, or cancel one intercepted by
|
||||||
|
// an earlier consumer. An off-target mouse release / lost touch
|
||||||
|
// clears Iced Button's pressed state without rebuilding this
|
||||||
|
// publication's tree (which would also discard row focus).
|
||||||
|
state.pressed = None;
|
||||||
|
let cancel = match pointer {
|
||||||
|
Pointer::Mouse => Event::Mouse(mouse::Event::ButtonReleased(mouse::Button::Left)),
|
||||||
|
Pointer::Touch(id) => Event::Touch(touch::Event::FingerLost {
|
||||||
|
id,
|
||||||
|
position: iced::Point::ORIGIN,
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
let mut discarded = Vec::new();
|
||||||
|
let mut cancellation = Shell::new(&mut discarded);
|
||||||
|
self.content.as_widget_mut().update(
|
||||||
|
&mut tree.children[0],
|
||||||
|
&cancel,
|
||||||
|
layout,
|
||||||
|
mouse::Cursor::Unavailable,
|
||||||
|
renderer,
|
||||||
|
clipboard,
|
||||||
|
&mut cancellation,
|
||||||
|
viewport,
|
||||||
|
);
|
||||||
|
// Cancellation must not publish an action or capture the fresh
|
||||||
|
// down. Preserve rendering requests from the state change only.
|
||||||
|
shell.request_redraw();
|
||||||
|
if cancellation.is_layout_invalid() {
|
||||||
|
shell.invalidate_layout();
|
||||||
|
}
|
||||||
|
if cancellation.are_widgets_invalid() {
|
||||||
|
shell.invalidate_widgets();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if shell.is_event_captured() || self.identity.is_none() {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if let Some(pointer) = press {
|
||||||
|
// A fresh down starts a new gesture even if the platform omitted a
|
||||||
|
// previous release (for example while the window lacked focus).
|
||||||
|
state.forget(pointer);
|
||||||
|
if let Some(pressed) = state.pressed {
|
||||||
|
if pressed != pointer {
|
||||||
|
state.quarantine(pointer);
|
||||||
|
}
|
||||||
|
shell.capture_event();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let was_pressed = release.is_some() && release == state.pressed;
|
||||||
|
if was_pressed {
|
||||||
|
state.pressed = None;
|
||||||
|
}
|
||||||
|
self.content.as_widget_mut().update(
|
||||||
|
&mut tree.children[0],
|
||||||
|
event,
|
||||||
|
layout,
|
||||||
|
cursor,
|
||||||
|
renderer,
|
||||||
|
clipboard,
|
||||||
|
shell,
|
||||||
|
viewport,
|
||||||
|
);
|
||||||
|
if let Some(pointer) = press
|
||||||
|
&& shell.is_event_captured()
|
||||||
|
{
|
||||||
|
state.pressed = Some(pointer);
|
||||||
|
}
|
||||||
|
if was_pressed {
|
||||||
|
// FingerLost cancels Iced Button state but does not itself capture.
|
||||||
|
shell.capture_event();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn draw(
|
||||||
|
&self,
|
||||||
|
tree: &widget::Tree,
|
||||||
|
renderer: &mut Renderer,
|
||||||
|
theme: &Theme,
|
||||||
|
style: &renderer::Style,
|
||||||
|
layout: Layout<'_>,
|
||||||
|
cursor: mouse::Cursor,
|
||||||
|
viewport: &Rectangle,
|
||||||
|
) {
|
||||||
|
self.content.as_widget().draw(
|
||||||
|
&tree.children[0],
|
||||||
|
renderer,
|
||||||
|
theme,
|
||||||
|
style,
|
||||||
|
layout,
|
||||||
|
cursor,
|
||||||
|
viewport,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
fn mouse_interaction(
|
||||||
|
&self,
|
||||||
|
tree: &widget::Tree,
|
||||||
|
layout: Layout<'_>,
|
||||||
|
cursor: mouse::Cursor,
|
||||||
|
viewport: &Rectangle,
|
||||||
|
renderer: &Renderer,
|
||||||
|
) -> mouse::Interaction {
|
||||||
|
self.content.as_widget().mouse_interaction(
|
||||||
|
&tree.children[0],
|
||||||
|
layout,
|
||||||
|
cursor,
|
||||||
|
viewport,
|
||||||
|
renderer,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
fn overlay<'b>(
|
||||||
|
&'b mut self,
|
||||||
|
tree: &'b mut widget::Tree,
|
||||||
|
layout: Layout<'b>,
|
||||||
|
renderer: &Renderer,
|
||||||
|
viewport: &Rectangle,
|
||||||
|
translation: Vector,
|
||||||
|
) -> Option<overlay::Element<'b, Message, Theme, Renderer>> {
|
||||||
|
self.content.as_widget_mut().overlay(
|
||||||
|
&mut tree.children[0],
|
||||||
|
layout,
|
||||||
|
renderer,
|
||||||
|
viewport,
|
||||||
|
translation,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a, Message: 'a, Theme: 'a, Renderer: renderer::Renderer + 'a>
|
||||||
|
From<Guard<'a, Message, Theme, Renderer>> for Element<'a, Message, Theme, Renderer>
|
||||||
|
{
|
||||||
|
fn from(guard: Guard<'a, Message, Theme, Renderer>) -> Self {
|
||||||
|
Element::new(guard)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests;
|
||||||
@@ -0,0 +1,626 @@
|
|||||||
|
use super::*;
|
||||||
|
use iced::advanced::widget::operation::{self, Focusable, Scrollable};
|
||||||
|
use iced::widget::{Space, button, column, container, mouse_area, scrollable, text_input};
|
||||||
|
use iced::{Point, Theme, event, keyboard};
|
||||||
|
|
||||||
|
type View = Element<'static, Message, Theme, ()>;
|
||||||
|
const BOUNDS: Rectangle = Rectangle {
|
||||||
|
x: 0.,
|
||||||
|
y: 0.,
|
||||||
|
width: 400.,
|
||||||
|
height: 300.,
|
||||||
|
};
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
||||||
|
enum Message {
|
||||||
|
Primary(u8),
|
||||||
|
Related(u8),
|
||||||
|
BackgroundButton,
|
||||||
|
BackgroundRelease,
|
||||||
|
Submit(u8),
|
||||||
|
Edit,
|
||||||
|
}
|
||||||
|
|
||||||
|
fn rows(version: u8) -> View {
|
||||||
|
column![
|
||||||
|
button(Space::new())
|
||||||
|
.width(200.)
|
||||||
|
.height(40.)
|
||||||
|
.padding(0)
|
||||||
|
.on_press(Message::Primary(version)),
|
||||||
|
button(Space::new())
|
||||||
|
.width(200.)
|
||||||
|
.height(40.)
|
||||||
|
.padding(0)
|
||||||
|
.on_press(Message::Related(version)),
|
||||||
|
]
|
||||||
|
.into()
|
||||||
|
}
|
||||||
|
fn guarded(generation: Option<Id>, version: u8) -> View {
|
||||||
|
let child: View = if generation.is_some() {
|
||||||
|
rows(version)
|
||||||
|
} else {
|
||||||
|
Space::new().into()
|
||||||
|
};
|
||||||
|
Guard::new(
|
||||||
|
generation.map(|publication| (publication, Id::nil())),
|
||||||
|
child,
|
||||||
|
)
|
||||||
|
.into()
|
||||||
|
}
|
||||||
|
fn press() -> Event {
|
||||||
|
Event::Mouse(mouse::Event::ButtonPressed(mouse::Button::Left))
|
||||||
|
}
|
||||||
|
fn release() -> Event {
|
||||||
|
Event::Mouse(mouse::Event::ButtonReleased(mouse::Button::Left))
|
||||||
|
}
|
||||||
|
fn enter() -> Event {
|
||||||
|
Event::Keyboard(keyboard::Event::KeyPressed {
|
||||||
|
key: keyboard::Key::Named(keyboard::key::Named::Enter),
|
||||||
|
modified_key: keyboard::Key::Named(keyboard::key::Named::Enter),
|
||||||
|
physical_key: keyboard::key::Physical::Code(keyboard::key::Code::Enter),
|
||||||
|
location: keyboard::Location::Standard,
|
||||||
|
modifiers: keyboard::Modifiers::empty(),
|
||||||
|
text: None,
|
||||||
|
repeat: false,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
fn touch_down(id: u64, position: Point) -> Event {
|
||||||
|
Event::Touch(touch::Event::FingerPressed {
|
||||||
|
id: touch::Finger(id),
|
||||||
|
position,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
fn touch_up(id: u64, position: Point) -> Event {
|
||||||
|
Event::Touch(touch::Event::FingerLifted {
|
||||||
|
id: touch::Finger(id),
|
||||||
|
position,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
fn touch_lost(id: u64, position: Point) -> Event {
|
||||||
|
Event::Touch(touch::Event::FingerLost {
|
||||||
|
id: touch::Finger(id),
|
||||||
|
position,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Mounted {
|
||||||
|
view: View,
|
||||||
|
tree: widget::Tree,
|
||||||
|
node: layout::Node,
|
||||||
|
}
|
||||||
|
impl Mounted {
|
||||||
|
fn new(mut view: View) -> Self {
|
||||||
|
let mut tree = widget::Tree::new(view.as_widget());
|
||||||
|
let node = view.as_widget_mut().layout(
|
||||||
|
&mut tree,
|
||||||
|
&(),
|
||||||
|
&layout::Limits::new(Size::ZERO, BOUNDS.size()),
|
||||||
|
);
|
||||||
|
Self { view, tree, node }
|
||||||
|
}
|
||||||
|
fn replace(&mut self, mut view: View) {
|
||||||
|
self.tree.diff(view.as_widget());
|
||||||
|
self.node = view.as_widget_mut().layout(
|
||||||
|
&mut self.tree,
|
||||||
|
&(),
|
||||||
|
&layout::Limits::new(Size::ZERO, BOUNDS.size()),
|
||||||
|
);
|
||||||
|
self.view = view;
|
||||||
|
}
|
||||||
|
fn event(&mut self, event: Event, point: Point) -> (Vec<Message>, event::Status) {
|
||||||
|
self.event_with_capture(event, point, false)
|
||||||
|
}
|
||||||
|
fn event_with_capture(
|
||||||
|
&mut self,
|
||||||
|
event: Event,
|
||||||
|
point: Point,
|
||||||
|
captured: bool,
|
||||||
|
) -> (Vec<Message>, event::Status) {
|
||||||
|
let mut messages = Vec::new();
|
||||||
|
let mut shell = Shell::new(&mut messages);
|
||||||
|
if captured {
|
||||||
|
shell.capture_event();
|
||||||
|
}
|
||||||
|
self.view.as_widget_mut().update(
|
||||||
|
&mut self.tree,
|
||||||
|
&event,
|
||||||
|
Layout::new(&self.node),
|
||||||
|
mouse::Cursor::Available(point),
|
||||||
|
&(),
|
||||||
|
&mut iced::advanced::clipboard::Null,
|
||||||
|
&mut shell,
|
||||||
|
&BOUNDS,
|
||||||
|
);
|
||||||
|
let status = shell.event_status();
|
||||||
|
(messages, status)
|
||||||
|
}
|
||||||
|
fn operate(&mut self, operation: &mut dyn widget::Operation) {
|
||||||
|
self.view
|
||||||
|
.as_widget_mut()
|
||||||
|
.operate(&mut self.tree, Layout::new(&self.node), &(), operation);
|
||||||
|
}
|
||||||
|
fn focus(&mut self) {
|
||||||
|
self.operate(&mut operation::focusable::focus::<()>("row".into()));
|
||||||
|
}
|
||||||
|
fn focused(&mut self) -> bool {
|
||||||
|
#[derive(Default)]
|
||||||
|
struct Focus(bool);
|
||||||
|
impl widget::Operation for Focus {
|
||||||
|
fn traverse(&mut self, visit: &mut dyn FnMut(&mut dyn widget::Operation)) {
|
||||||
|
visit(self);
|
||||||
|
}
|
||||||
|
fn focusable(
|
||||||
|
&mut self,
|
||||||
|
_: Option<&widget::Id>,
|
||||||
|
_: Rectangle,
|
||||||
|
state: &mut dyn Focusable,
|
||||||
|
) {
|
||||||
|
self.0 |= state.is_focused();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let mut focus = Focus::default();
|
||||||
|
self.operate(&mut focus);
|
||||||
|
focus.0
|
||||||
|
}
|
||||||
|
fn scroll(&mut self) -> Vector {
|
||||||
|
#[derive(Default)]
|
||||||
|
struct Offset(Option<Vector>);
|
||||||
|
impl widget::Operation for Offset {
|
||||||
|
fn traverse(&mut self, visit: &mut dyn FnMut(&mut dyn widget::Operation)) {
|
||||||
|
visit(self);
|
||||||
|
}
|
||||||
|
fn scrollable(
|
||||||
|
&mut self,
|
||||||
|
_: Option<&widget::Id>,
|
||||||
|
_: Rectangle,
|
||||||
|
_: Rectangle,
|
||||||
|
translation: Vector,
|
||||||
|
_: &mut dyn Scrollable,
|
||||||
|
) {
|
||||||
|
self.0 = Some(translation);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let mut offset = Offset::default();
|
||||||
|
self.operate(&mut offset);
|
||||||
|
offset.0.unwrap()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn current_primary_and_related_mouse_clicks_survive_same_publication_diff() {
|
||||||
|
for (y, expected) in [(20., Message::Primary(1)), (60., Message::Related(1))] {
|
||||||
|
let generation = Id::new_v4();
|
||||||
|
let point = Point::new(20., y);
|
||||||
|
let mut ui = Mounted::new(guarded(Some(generation), 1));
|
||||||
|
assert_eq!(ui.event(press(), point), (vec![], event::Status::Captured));
|
||||||
|
ui.replace(guarded(Some(generation), 1));
|
||||||
|
assert_eq!(
|
||||||
|
ui.event(release(), point),
|
||||||
|
(vec![expected], event::Status::Captured)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn same_publication_new_visit_cancels_armed_rows_without_a_hidden_tree_frame() {
|
||||||
|
for touch in [false, true] {
|
||||||
|
for (y, expected) in [(20., Message::Primary(2)), (60., Message::Related(2))] {
|
||||||
|
let publication = Id::new_v4();
|
||||||
|
let old_visit = Id::new_v4();
|
||||||
|
let new_visit = Id::new_v4();
|
||||||
|
let point = Point::new(20., y);
|
||||||
|
let mut ui = Mounted::new(Guard::new(Some((publication, old_visit)), rows(1)).into());
|
||||||
|
let down = || if touch { touch_down(7, point) } else { press() };
|
||||||
|
let up = || if touch { touch_up(7, point) } else { release() };
|
||||||
|
assert_eq!(ui.event(down(), point), (vec![], event::Status::Captured));
|
||||||
|
// Hide→Show has already happened in application state. No None
|
||||||
|
// publication or empty child is ever diffed into this retained Tree.
|
||||||
|
ui.replace(Guard::new(Some((publication, new_visit)), rows(2)).into());
|
||||||
|
assert_eq!(ui.event(up(), point), (vec![], event::Status::Captured));
|
||||||
|
assert_eq!(ui.event(down(), point), (vec![], event::Status::Captured));
|
||||||
|
assert_eq!(
|
||||||
|
ui.event(up(), point),
|
||||||
|
(vec![expected], event::Status::Captured)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn negative_control_iced_button_retargets_a_press_after_plain_tree_diff() {
|
||||||
|
for (y, expected) in [(20., Message::Primary(2)), (60., Message::Related(2))] {
|
||||||
|
let point = Point::new(20., y);
|
||||||
|
let mut ui = Mounted::new(rows(1));
|
||||||
|
assert!(ui.event(press(), point).0.is_empty());
|
||||||
|
ui.replace(rows(2));
|
||||||
|
assert_eq!(ui.event(release(), point).0, vec![expected]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn replaced_primary_and_related_rows_consume_stale_release_then_accept_new_click() {
|
||||||
|
for y in [20., 60.] {
|
||||||
|
let point = Point::new(20., y);
|
||||||
|
let mut ui = Mounted::new(guarded(Some(Id::new_v4()), 1));
|
||||||
|
ui.event(press(), point);
|
||||||
|
ui.replace(guarded(Some(Id::new_v4()), 2));
|
||||||
|
ui.replace(guarded(Some(Id::new_v4()), 3));
|
||||||
|
assert_eq!(
|
||||||
|
ui.event(release(), point),
|
||||||
|
(vec![], event::Status::Captured)
|
||||||
|
);
|
||||||
|
ui.event(press(), point);
|
||||||
|
let expected = if y < 40. {
|
||||||
|
Message::Primary(3)
|
||||||
|
} else {
|
||||||
|
Message::Related(3)
|
||||||
|
};
|
||||||
|
assert_eq!(
|
||||||
|
ui.event(release(), point),
|
||||||
|
(vec![expected], event::Status::Captured)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn hidden_zero_size_list_consumes_release_outside_old_bounds_once() {
|
||||||
|
let mut ui = Mounted::new(guarded(Some(Id::new_v4()), 1));
|
||||||
|
ui.event(press(), Point::new(20., 20.));
|
||||||
|
ui.replace(guarded(None, 0));
|
||||||
|
ui.replace(guarded(None, 0));
|
||||||
|
assert_eq!(ui.node.size(), Size::ZERO);
|
||||||
|
let outside = Point::new(350., 250.);
|
||||||
|
assert_eq!(
|
||||||
|
ui.event(release(), outside),
|
||||||
|
(vec![], event::Status::Captured)
|
||||||
|
);
|
||||||
|
assert_eq!(
|
||||||
|
ui.event(release(), outside),
|
||||||
|
(vec![], event::Status::Ignored)
|
||||||
|
);
|
||||||
|
ui.replace(guarded(Some(Id::new_v4()), 2));
|
||||||
|
assert_eq!(ui.event(release(), Point::new(20., 20.)).0, vec![]);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn with_background(content: View) -> View {
|
||||||
|
mouse_area(
|
||||||
|
button(container(content).width(250.).height(100.))
|
||||||
|
.padding(0)
|
||||||
|
.on_press(Message::BackgroundButton),
|
||||||
|
)
|
||||||
|
.on_release(Message::BackgroundRelease)
|
||||||
|
.into()
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn stale_release_does_not_bubble_to_real_background_controls() {
|
||||||
|
let point = Point::new(20., 20.);
|
||||||
|
let mut ui = Mounted::new(with_background(guarded(Some(Id::new_v4()), 1)));
|
||||||
|
ui.event(press(), point);
|
||||||
|
ui.replace(with_background(guarded(None, 0)));
|
||||||
|
assert_eq!(
|
||||||
|
ui.event(release(), point),
|
||||||
|
(vec![], event::Status::Captured)
|
||||||
|
);
|
||||||
|
// The enclosing real button still supports a fresh ordinary click.
|
||||||
|
ui.event(press(), point);
|
||||||
|
assert_eq!(
|
||||||
|
ui.event(release(), point).0,
|
||||||
|
vec![Message::BackgroundButton]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn negative_control_removing_unguarded_rows_exposes_background_release() {
|
||||||
|
let point = Point::new(20., 20.);
|
||||||
|
let mut ui = Mounted::new(with_background(rows(1)));
|
||||||
|
ui.event(press(), point);
|
||||||
|
ui.replace(with_background(Space::new().into()));
|
||||||
|
assert_eq!(
|
||||||
|
ui.event(release(), point).0,
|
||||||
|
vec![Message::BackgroundRelease]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn current_touch_activates_primary_and_related_and_cancel_does_not_activate() {
|
||||||
|
for (y, expected) in [(20., Message::Primary(1)), (60., Message::Related(1))] {
|
||||||
|
let point = Point::new(20., y);
|
||||||
|
let mut ui = Mounted::new(guarded(Some(Id::new_v4()), 1));
|
||||||
|
assert_eq!(
|
||||||
|
ui.event(touch_down(1, point), point),
|
||||||
|
(vec![], event::Status::Captured)
|
||||||
|
);
|
||||||
|
assert_eq!(
|
||||||
|
ui.event(touch_up(1, point), point),
|
||||||
|
(vec![expected], event::Status::Captured)
|
||||||
|
);
|
||||||
|
ui.event(touch_down(2, point), point);
|
||||||
|
assert_eq!(
|
||||||
|
ui.event(touch_lost(2, point), point),
|
||||||
|
(vec![], event::Status::Captured)
|
||||||
|
);
|
||||||
|
assert!(ui.event(touch_up(2, point), point).0.is_empty());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn replaced_touch_consumes_lift_or_cancel_even_when_hidden() {
|
||||||
|
for hide in [false, true] {
|
||||||
|
for lost in [false, true] {
|
||||||
|
for y in [20., 60.] {
|
||||||
|
let point = Point::new(20., y);
|
||||||
|
let mut ui = Mounted::new(guarded(Some(Id::new_v4()), 1));
|
||||||
|
ui.event(touch_down(1, point), point);
|
||||||
|
ui.replace(guarded(if hide { None } else { Some(Id::new_v4()) }, 2));
|
||||||
|
let end = if lost {
|
||||||
|
touch_lost(1, point)
|
||||||
|
} else {
|
||||||
|
touch_up(1, point)
|
||||||
|
};
|
||||||
|
assert_eq!(ui.event(end, point), (vec![], event::Status::Captured));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn unrelated_finger_or_mouse_release_cannot_complete_another_fingers_press() {
|
||||||
|
let point = Point::new(20., 20.);
|
||||||
|
let mut ui = Mounted::new(guarded(Some(Id::new_v4()), 1));
|
||||||
|
ui.event(touch_down(1, point), point);
|
||||||
|
ui.event(touch_down(2, point), point);
|
||||||
|
assert_eq!(
|
||||||
|
ui.event(touch_up(2, point), point),
|
||||||
|
(vec![], event::Status::Captured)
|
||||||
|
);
|
||||||
|
assert_eq!(
|
||||||
|
ui.event(release(), point),
|
||||||
|
(vec![], event::Status::Captured)
|
||||||
|
);
|
||||||
|
assert_eq!(
|
||||||
|
ui.event(touch_up(1, point), point).0,
|
||||||
|
vec![Message::Primary(1)]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn keyboard_row(version: u8) -> View {
|
||||||
|
// Iced 0.14.2 Button has no focus/keyboard activation. A real focusable
|
||||||
|
// submit control tests the wrapper's focus lifecycle without inventing it.
|
||||||
|
text_input("Diagnostic action", "row")
|
||||||
|
.id("row")
|
||||||
|
.on_input(|_| Message::Edit)
|
||||||
|
.on_submit(Message::Submit(version))
|
||||||
|
.into()
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn same_publication_preserves_focus_but_replacement_never_inherits_activation() {
|
||||||
|
let generation = Id::new_v4();
|
||||||
|
let mut ui = Mounted::new(Guard::new(Some((generation, Id::nil())), keyboard_row(1)).into());
|
||||||
|
ui.focus();
|
||||||
|
assert!(ui.focused());
|
||||||
|
ui.replace(Guard::new(Some((generation, Id::nil())), keyboard_row(1)).into());
|
||||||
|
assert!(ui.focused());
|
||||||
|
assert_eq!(ui.event(enter(), Point::ORIGIN).0, vec![Message::Submit(1)]);
|
||||||
|
ui.replace(Guard::new(Some((Id::new_v4(), Id::nil())), keyboard_row(2)).into());
|
||||||
|
assert!(!ui.focused());
|
||||||
|
assert!(ui.event(enter(), Point::ORIGIN).0.is_empty());
|
||||||
|
ui.focus();
|
||||||
|
assert_eq!(ui.event(enter(), Point::ORIGIN).0, vec![Message::Submit(2)]);
|
||||||
|
ui.replace(Guard::new(None, Space::new()).into());
|
||||||
|
ui.replace(Guard::new(Some((Id::new_v4(), Id::nil())), keyboard_row(3)).into());
|
||||||
|
assert!(!ui.focused());
|
||||||
|
assert!(ui.event(enter(), Point::ORIGIN).0.is_empty());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn negative_control_plain_focusable_row_migrates_activation_to_replacement() {
|
||||||
|
let mut ui = Mounted::new(keyboard_row(1));
|
||||||
|
ui.focus();
|
||||||
|
ui.replace(keyboard_row(2));
|
||||||
|
assert!(ui.focused());
|
||||||
|
assert_eq!(ui.event(enter(), Point::ORIGIN).0, vec![Message::Submit(2)]);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn outer_scroll_offset_survives_same_and_changed_publications() {
|
||||||
|
fn pane(generation: Id) -> View {
|
||||||
|
scrollable(Guard::new(
|
||||||
|
Some((generation, Id::nil())),
|
||||||
|
column![rows(1), Space::new().height(600.)],
|
||||||
|
))
|
||||||
|
.width(240.)
|
||||||
|
.height(100.)
|
||||||
|
.into()
|
||||||
|
}
|
||||||
|
let generation = Id::new_v4();
|
||||||
|
let mut ui = Mounted::new(pane(generation));
|
||||||
|
ui.event(
|
||||||
|
Event::Mouse(mouse::Event::WheelScrolled {
|
||||||
|
delta: mouse::ScrollDelta::Pixels { x: 0., y: -120. },
|
||||||
|
}),
|
||||||
|
Point::new(20., 20.),
|
||||||
|
);
|
||||||
|
let offset = ui.scroll();
|
||||||
|
assert_eq!(offset, Vector::new(0., 120.));
|
||||||
|
ui.replace(pane(generation));
|
||||||
|
assert_eq!(ui.scroll(), offset);
|
||||||
|
ui.replace(pane(Id::new_v4()));
|
||||||
|
assert_eq!(ui.scroll(), offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn stale_touch_release_does_not_disarm_a_new_current_gesture() {
|
||||||
|
let point = Point::new(20., 20.);
|
||||||
|
let mut ui = Mounted::new(guarded(Some(Id::new_v4()), 1));
|
||||||
|
ui.event(touch_down(1, point), point);
|
||||||
|
ui.replace(guarded(Some(Id::new_v4()), 2));
|
||||||
|
ui.event(touch_down(2, point), point);
|
||||||
|
assert_eq!(
|
||||||
|
ui.event(touch_up(1, point), point),
|
||||||
|
(vec![], event::Status::Captured)
|
||||||
|
);
|
||||||
|
assert_eq!(
|
||||||
|
ui.event(touch_up(2, point), point).0,
|
||||||
|
vec![Message::Primary(2)]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn fresh_mouse_press_after_missing_stale_release_can_activate_current_row() {
|
||||||
|
let point = Point::new(20., 20.);
|
||||||
|
let mut ui = Mounted::new(guarded(Some(Id::new_v4()), 1));
|
||||||
|
ui.event(press(), point);
|
||||||
|
ui.replace(guarded(Some(Id::new_v4()), 2));
|
||||||
|
// The platform delivers another down without the previous up.
|
||||||
|
ui.event(press(), point);
|
||||||
|
assert_eq!(ui.event(release(), point).0, vec![Message::Primary(2)]);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn missed_press_is_ignored_and_dragging_release_outside_does_not_activate() {
|
||||||
|
let inside = Point::new(20., 20.);
|
||||||
|
let outside = Point::new(350., 250.);
|
||||||
|
let mut ui = Mounted::new(guarded(Some(Id::new_v4()), 1));
|
||||||
|
assert_eq!(ui.event(press(), outside), (vec![], event::Status::Ignored));
|
||||||
|
assert_eq!(
|
||||||
|
ui.event(release(), inside),
|
||||||
|
(vec![], event::Status::Ignored)
|
||||||
|
);
|
||||||
|
ui.event(press(), inside);
|
||||||
|
assert_eq!(
|
||||||
|
ui.event(release(), outside),
|
||||||
|
(vec![], event::Status::Captured)
|
||||||
|
);
|
||||||
|
assert_eq!(
|
||||||
|
ui.event(release(), inside),
|
||||||
|
(vec![], event::Status::Ignored)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn same_publication_missing_terminal_recovers_on_fresh_mouse_or_touch_down() {
|
||||||
|
let primary = Point::new(20., 20.);
|
||||||
|
let related = Point::new(20., 60.);
|
||||||
|
for is_touch in [false, true] {
|
||||||
|
let generation = Id::new_v4();
|
||||||
|
let mut ui = Mounted::new(guarded(Some(generation), 1));
|
||||||
|
let down = |point| {
|
||||||
|
if is_touch {
|
||||||
|
touch_down(1, point)
|
||||||
|
} else {
|
||||||
|
press()
|
||||||
|
}
|
||||||
|
};
|
||||||
|
let up = |point| {
|
||||||
|
if is_touch {
|
||||||
|
touch_up(1, point)
|
||||||
|
} else {
|
||||||
|
release()
|
||||||
|
}
|
||||||
|
};
|
||||||
|
ui.event(down(primary), primary);
|
||||||
|
ui.replace(guarded(Some(generation), 1));
|
||||||
|
// The first gesture never receives its terminal event; same Id means
|
||||||
|
// no publication reset can accidentally make this regression pass.
|
||||||
|
assert_eq!(
|
||||||
|
ui.event(down(related), related),
|
||||||
|
(vec![], event::Status::Captured)
|
||||||
|
);
|
||||||
|
assert_eq!(ui.event(up(related), related).0, vec![Message::Related(1)]);
|
||||||
|
assert!(ui.event(up(primary), primary).0.is_empty());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn already_captured_terminal_cancels_child_without_activation_or_lingering_press() {
|
||||||
|
let primary = Point::new(20., 20.);
|
||||||
|
let related = Point::new(20., 60.);
|
||||||
|
for is_touch in [false, true] {
|
||||||
|
let mut ui = Mounted::new(guarded(Some(Id::new_v4()), 1));
|
||||||
|
let down = |point| {
|
||||||
|
if is_touch {
|
||||||
|
touch_down(1, point)
|
||||||
|
} else {
|
||||||
|
press()
|
||||||
|
}
|
||||||
|
};
|
||||||
|
let up = |point| {
|
||||||
|
if is_touch {
|
||||||
|
touch_up(1, point)
|
||||||
|
} else {
|
||||||
|
release()
|
||||||
|
}
|
||||||
|
};
|
||||||
|
ui.event(down(primary), primary);
|
||||||
|
assert_eq!(
|
||||||
|
ui.event_with_capture(up(primary), primary, true),
|
||||||
|
(vec![], event::Status::Captured)
|
||||||
|
);
|
||||||
|
// An unpaired second release must not expose a lingering button press.
|
||||||
|
assert_eq!(
|
||||||
|
ui.event(up(primary), primary),
|
||||||
|
(vec![], event::Status::Ignored)
|
||||||
|
);
|
||||||
|
ui.event(down(related), related);
|
||||||
|
assert_eq!(ui.event(up(related), related).0, vec![Message::Related(1)]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn captured_terminal_cancellation_preserves_same_publication_focusable_child_state() {
|
||||||
|
let generation = Id::new_v4();
|
||||||
|
let mut ui = Mounted::new(
|
||||||
|
Guard::new(
|
||||||
|
Some((generation, Id::nil())),
|
||||||
|
column![rows(1), keyboard_row(1)],
|
||||||
|
)
|
||||||
|
.into(),
|
||||||
|
);
|
||||||
|
ui.event(press(), Point::new(20., 20.));
|
||||||
|
// Focus through an operation avoids making the old pointer gesture whole.
|
||||||
|
ui.focus();
|
||||||
|
assert!(ui.focused());
|
||||||
|
assert!(
|
||||||
|
ui.event_with_capture(release(), Point::new(20., 20.), true)
|
||||||
|
.0
|
||||||
|
.is_empty()
|
||||||
|
);
|
||||||
|
assert!(
|
||||||
|
ui.focused(),
|
||||||
|
"gesture cancellation must not remount the row tree"
|
||||||
|
);
|
||||||
|
assert_eq!(ui.event(enter(), Point::ORIGIN).0, vec![Message::Submit(1)]);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn hidden_zero_height_scroller_delivers_cancelled_mouse_and_touch_terminals_to_guard() {
|
||||||
|
fn pane(generation: Option<Id>) -> View {
|
||||||
|
scrollable(guarded(generation, 1))
|
||||||
|
.width(240.)
|
||||||
|
.height(if generation.is_some() { 100. } else { 0. })
|
||||||
|
.into()
|
||||||
|
}
|
||||||
|
let point = Point::new(20., 20.);
|
||||||
|
let outside = Point::new(350., 250.);
|
||||||
|
for is_touch in [false, true] {
|
||||||
|
let mut ui = Mounted::new(pane(Some(Id::new_v4())));
|
||||||
|
let down = if is_touch {
|
||||||
|
touch_down(1, point)
|
||||||
|
} else {
|
||||||
|
press()
|
||||||
|
};
|
||||||
|
assert_eq!(ui.event(down, point), (vec![], event::Status::Captured));
|
||||||
|
ui.replace(pane(None));
|
||||||
|
ui.replace(pane(None));
|
||||||
|
assert_eq!(ui.node.size().height, 0.);
|
||||||
|
let up = if is_touch {
|
||||||
|
touch_up(1, outside)
|
||||||
|
} else {
|
||||||
|
release()
|
||||||
|
};
|
||||||
|
assert_eq!(ui.event(up, outside), (vec![], event::Status::Captured));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,6 +6,7 @@ mod connection_tool;
|
|||||||
mod context_menu;
|
mod context_menu;
|
||||||
mod data_values;
|
mod data_values;
|
||||||
mod data_view;
|
mod data_view;
|
||||||
|
mod diagnostic_input;
|
||||||
mod diagram;
|
mod diagram;
|
||||||
mod document;
|
mod document;
|
||||||
mod explorer;
|
mod explorer;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
mod controller;
|
mod controller;
|
||||||
pub mod interaction;
|
pub mod interaction;
|
||||||
pub mod query;
|
pub mod query;
|
||||||
|
pub mod selection;
|
||||||
pub mod symbols;
|
pub mod symbols;
|
||||||
pub use controller::*;
|
pub use controller::*;
|
||||||
use iced::widget::text_editor::{Cursor, Position};
|
use iced::widget::text_editor::{Cursor, Position};
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ pub enum SymbolEvent {
|
|||||||
Close,
|
Close,
|
||||||
Choose {
|
Choose {
|
||||||
stamp: query::QueryStamp,
|
stamp: query::QueryStamp,
|
||||||
|
visit: Id,
|
||||||
reference: bool,
|
reference: bool,
|
||||||
index: usize,
|
index: usize,
|
||||||
},
|
},
|
||||||
@@ -33,7 +34,7 @@ pub struct HistoryEntry {
|
|||||||
pub cursor: Cursor,
|
pub cursor: Cursor,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone, PartialEq)]
|
||||||
pub struct Request {
|
pub struct Request {
|
||||||
pub job: Id,
|
pub job: Id,
|
||||||
pub interaction: Id,
|
pub interaction: Id,
|
||||||
@@ -60,12 +61,15 @@ pub struct Reveal {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub struct SymbolState {
|
pub struct SymbolState {
|
||||||
pub open: bool,
|
|
||||||
pub interaction: Id,
|
pub interaction: Id,
|
||||||
pub raw_interaction: Arc<AtomicU64>,
|
pub raw_interaction: Arc<AtomicU64>,
|
||||||
pub serial: u64,
|
pub serial: u64,
|
||||||
pub in_flight: Option<Id>,
|
pub in_flight: Option<Id>,
|
||||||
pub request: Option<Request>,
|
pub request: Option<Request>,
|
||||||
|
/// Latest admitted query owns displayed data independently of whether its
|
||||||
|
/// original navigation intent is still current. Hiding a drawer cancels
|
||||||
|
/// navigation, but a matching completion can still populate retained data.
|
||||||
|
pub display_request: Option<Request>,
|
||||||
pub cache: Option<Arc<query::Snapshot>>,
|
pub cache: Option<Arc<query::Snapshot>>,
|
||||||
pub results: Option<Arc<query::Results>>,
|
pub results: Option<Arc<query::Results>>,
|
||||||
pub notice: Option<String>,
|
pub notice: Option<String>,
|
||||||
@@ -76,12 +80,12 @@ pub struct SymbolState {
|
|||||||
impl Default for SymbolState {
|
impl Default for SymbolState {
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
Self {
|
Self {
|
||||||
open: false,
|
|
||||||
interaction: Id::new_v4(),
|
interaction: Id::new_v4(),
|
||||||
raw_interaction: Arc::new(AtomicU64::new(0)),
|
raw_interaction: Arc::new(AtomicU64::new(0)),
|
||||||
serial: 0,
|
serial: 0,
|
||||||
in_flight: None,
|
in_flight: None,
|
||||||
request: None,
|
request: None,
|
||||||
|
display_request: None,
|
||||||
cache: None,
|
cache: None,
|
||||||
results: None,
|
results: None,
|
||||||
notice: None,
|
notice: None,
|
||||||
|
|||||||
@@ -0,0 +1,295 @@
|
|||||||
|
//! Effective selected-byte ranges for a committed departure from a source view.
|
||||||
|
//!
|
||||||
|
//! Iced's `Cursor` omits cosmic-text's Word/Line selection kind. Saving its raw
|
||||||
|
//! endpoints can therefore save an empty range for a visibly selected word/line.
|
||||||
|
//! Capture only after navigation admission and destination validation succeed,
|
||||||
|
//! immediately before replacing/leaving the live editor. Never use this to inspect
|
||||||
|
//! pending queries, failed/no-op navigation, or restore focus to the same editor.
|
||||||
|
use iced::advanced::{graphics, text};
|
||||||
|
use iced::widget::text_editor::{Action, Content, Cursor, Motion, Position};
|
||||||
|
|
||||||
|
/// Capture the effective range for restoration on fresh Content via `move_to`.
|
||||||
|
///
|
||||||
|
/// A nonempty selection is collapsed to its start in the departing Content; text
|
||||||
|
/// is not edited. The returned Normal range preserves selected bytes and typing
|
||||||
|
/// replacement, not Word/Line gesture-extension mode or an interior click point.
|
||||||
|
/// Unequal raw endpoint direction is preserved; coincident Word/Line endpoints
|
||||||
|
/// canonically restore with the active cursor at the effective end.
|
||||||
|
///
|
||||||
|
/// The renderer constraint is intentional: the inspected Iced graphics editor
|
||||||
|
/// collapses any selection to its effective start for `Move(Left)`, and its copied
|
||||||
|
/// selection joins editor lines with LF regardless of physical CRLF/LF endings.
|
||||||
|
/// Only the selected text is temporarily copied; retained state is one Cursor.
|
||||||
|
pub fn capture<R>(content: &mut Content<R>) -> Cursor
|
||||||
|
where
|
||||||
|
R: text::Renderer<Editor = graphics::text::Editor>,
|
||||||
|
{
|
||||||
|
let original = content.cursor();
|
||||||
|
let Some(selected) = content.selection().filter(|selected| !selected.is_empty()) else {
|
||||||
|
// Moving an unselected caret Left would be a user-visible navigation.
|
||||||
|
return original;
|
||||||
|
};
|
||||||
|
let active_start = original.selection.is_some_and(|anchor| {
|
||||||
|
(original.position.line, original.position.column) < (anchor.line, anchor.column)
|
||||||
|
});
|
||||||
|
content.perform(Action::Move(Motion::Left));
|
||||||
|
let start = content.cursor().position;
|
||||||
|
let end = match selected.rsplit_once('\n') {
|
||||||
|
Some((prefix, suffix)) => Position {
|
||||||
|
line: start.line + prefix.bytes().filter(|byte| *byte == b'\n').count() + 1,
|
||||||
|
column: suffix.len(),
|
||||||
|
},
|
||||||
|
None => Position {
|
||||||
|
line: start.line,
|
||||||
|
column: start.column + selected.len(),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
// These sums describe an existing selection in this same allocated buffer;
|
||||||
|
// neither can exceed its line count / existing UTF-8 line length. A checked
|
||||||
|
// error after collapsing would leave a failed departure with lost selection.
|
||||||
|
debug_assert!(content.cursor().selection.is_none());
|
||||||
|
debug_assert!(start.line < content.line_count() && end.line < content.line_count());
|
||||||
|
debug_assert!((start.line, start.column) < (end.line, end.column));
|
||||||
|
Cursor {
|
||||||
|
position: if active_start { start } else { end },
|
||||||
|
selection: Some(if active_start { end } else { start }),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
use iced::widget::text_editor::Edit;
|
||||||
|
use std::sync::Arc;
|
||||||
|
|
||||||
|
type EditorContent = Content<iced::Renderer>;
|
||||||
|
|
||||||
|
fn at(line: usize, column: usize) -> Position {
|
||||||
|
Position { line, column }
|
||||||
|
}
|
||||||
|
|
||||||
|
fn range(start: Position, end: Position, active_start: bool) -> Cursor {
|
||||||
|
Cursor {
|
||||||
|
position: if active_start { start } else { end },
|
||||||
|
selection: Some(if active_start { end } else { start }),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn caret(content: &mut EditorContent, position: Position) {
|
||||||
|
content.move_to(Cursor {
|
||||||
|
position,
|
||||||
|
selection: None,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
fn roundtrip(
|
||||||
|
source: &str,
|
||||||
|
prepare: impl Fn(&mut EditorContent),
|
||||||
|
selected: &str,
|
||||||
|
expected: Cursor,
|
||||||
|
lossy_raw: bool,
|
||||||
|
) {
|
||||||
|
let mut departing = EditorContent::with_text(source);
|
||||||
|
prepare(&mut departing);
|
||||||
|
assert_eq!(departing.text(), source);
|
||||||
|
assert_eq!(departing.selection().as_deref(), Some(selected));
|
||||||
|
let raw = departing.cursor();
|
||||||
|
|
||||||
|
// Independent direct-typing control retains the original semantic mode.
|
||||||
|
let replacement = Action::Edit(Edit::Paste(Arc::new("替🚀".into())));
|
||||||
|
let mut direct = EditorContent::with_text(source);
|
||||||
|
prepare(&mut direct);
|
||||||
|
direct.perform(replacement.clone());
|
||||||
|
|
||||||
|
let captured = capture(&mut departing);
|
||||||
|
assert_eq!(captured, expected);
|
||||||
|
assert_eq!(
|
||||||
|
departing.text(),
|
||||||
|
source,
|
||||||
|
"capture cannot edit physical source bytes"
|
||||||
|
);
|
||||||
|
assert!(departing.cursor().selection.is_none());
|
||||||
|
let mut restored = EditorContent::with_text(source);
|
||||||
|
restored.move_to(captured);
|
||||||
|
assert_eq!(restored.selection().as_deref(), Some(selected));
|
||||||
|
assert_eq!(restored.text(), source);
|
||||||
|
restored.perform(replacement);
|
||||||
|
assert_eq!(
|
||||||
|
restored.text(),
|
||||||
|
direct.text(),
|
||||||
|
"restored range must replace exactly the original selected bytes"
|
||||||
|
);
|
||||||
|
assert_eq!(restored.cursor(), direct.cursor());
|
||||||
|
if lossy_raw {
|
||||||
|
let mut old = EditorContent::with_text(source);
|
||||||
|
old.move_to(raw);
|
||||||
|
assert_ne!(
|
||||||
|
old.selection().as_deref(),
|
||||||
|
Some(selected),
|
||||||
|
"negative control must discriminate raw cursor storage"
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
assert_eq!(
|
||||||
|
captured, raw,
|
||||||
|
"ordinary directional ranges are already canonical"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn unicode_normal_ranges_preserve_forward_and_reverse_direction() {
|
||||||
|
let source = "先 αβ 救助 🚀 tail\r\n";
|
||||||
|
for active_start in [false, true] {
|
||||||
|
let expected = range(
|
||||||
|
at(0, "先 ".len()),
|
||||||
|
at(0, "先 αβ 救助 🚀".len()),
|
||||||
|
active_start,
|
||||||
|
);
|
||||||
|
roundtrip(
|
||||||
|
source,
|
||||||
|
|content| content.move_to(expected),
|
||||||
|
"αβ 救助 🚀",
|
||||||
|
expected,
|
||||||
|
false,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn repeated_unicode_words_capture_the_selected_occurrence_without_searching() {
|
||||||
|
let source = "éclair éclair éclair\r\n";
|
||||||
|
let start = "éclair ".len();
|
||||||
|
roundtrip(
|
||||||
|
source,
|
||||||
|
|content| {
|
||||||
|
caret(content, at(0, start + "écl".len()));
|
||||||
|
content.perform(Action::SelectWord);
|
||||||
|
},
|
||||||
|
"éclair",
|
||||||
|
range(at(0, start), at(0, start + "éclair".len()), false),
|
||||||
|
true,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn line_selection_expands_past_its_interior_unicode_caret() {
|
||||||
|
let source = "first\r\n救助 🚀 tail\r\nlast";
|
||||||
|
roundtrip(
|
||||||
|
source,
|
||||||
|
|content| {
|
||||||
|
caret(content, at(1, "救助 ".len()));
|
||||||
|
content.perform(Action::SelectLine);
|
||||||
|
},
|
||||||
|
"救助 🚀 tail",
|
||||||
|
range(at(1, 0), at(1, "救助 🚀 tail".len()), false),
|
||||||
|
true,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn multiline_ranges_use_copied_lf_and_utf8_columns_for_physical_crlf_and_mixed_endings() {
|
||||||
|
for source in ["pré α\r\n中 🚀\r\nfin Ω", "pré α\n中 🚀\r\nfin Ω"] {
|
||||||
|
for active_start in [false, true] {
|
||||||
|
let expected = range(at(0, "pré ".len()), at(2, "fin ".len()), active_start);
|
||||||
|
roundtrip(
|
||||||
|
source,
|
||||||
|
|content| content.move_to(expected),
|
||||||
|
"α\n中 🚀\nfin ",
|
||||||
|
expected,
|
||||||
|
false,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn expanded_word_and_line_modes_capture_multiline_ranges_in_both_directions() {
|
||||||
|
let source = "one alpha\r\ntwo beta\nthree gamma";
|
||||||
|
for line in [false, true] {
|
||||||
|
for reverse in [false, true] {
|
||||||
|
let (start, end, selected) = match (line, reverse) {
|
||||||
|
(false, false) => (at(0, 4), at(2, 11), "alpha\ntwo beta\nthree gamma"),
|
||||||
|
(false, true) => (at(0, 0), at(2, 11), "one alpha\ntwo beta\nthree gamma"),
|
||||||
|
(true, _) => (at(0, 0), at(2, 11), "one alpha\ntwo beta\nthree gamma"),
|
||||||
|
};
|
||||||
|
roundtrip(
|
||||||
|
source,
|
||||||
|
|content| {
|
||||||
|
caret(content, if reverse { at(2, 8) } else { at(0, 6) });
|
||||||
|
content.perform(if line {
|
||||||
|
Action::SelectLine
|
||||||
|
} else {
|
||||||
|
Action::SelectWord
|
||||||
|
});
|
||||||
|
// Iced preserves existing Word/Line mode for Select motions.
|
||||||
|
content.perform(Action::Select(if reverse {
|
||||||
|
Motion::DocumentStart
|
||||||
|
} else {
|
||||||
|
Motion::DocumentEnd
|
||||||
|
}));
|
||||||
|
},
|
||||||
|
selected,
|
||||||
|
range(start, end, reverse),
|
||||||
|
true,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn trailing_newline_selection_restores_endpoint_on_the_empty_last_line() {
|
||||||
|
let source = "雨\r\n🚀\r\n";
|
||||||
|
let expected = range(at(0, 0), at(2, 0), false);
|
||||||
|
roundtrip(
|
||||||
|
source,
|
||||||
|
|content| content.perform(Action::SelectAll),
|
||||||
|
"雨\n🚀\n",
|
||||||
|
expected,
|
||||||
|
false,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn absent_and_empty_selection_do_not_move_the_departing_caret() {
|
||||||
|
for source in ["", "\r\n", "alpha\r\n\r\ntail"] {
|
||||||
|
for empty_selection in [false, true] {
|
||||||
|
let mut content = EditorContent::with_text(source);
|
||||||
|
let position = if source.starts_with("alpha") {
|
||||||
|
at(1, 0)
|
||||||
|
} else {
|
||||||
|
at(0, 0)
|
||||||
|
};
|
||||||
|
caret(&mut content, position);
|
||||||
|
if empty_selection {
|
||||||
|
content.perform(Action::SelectLine);
|
||||||
|
assert_eq!(content.selection().as_deref(), Some(""));
|
||||||
|
} else {
|
||||||
|
assert!(content.selection().is_none());
|
||||||
|
}
|
||||||
|
let raw = content.cursor();
|
||||||
|
let selected = content.selection();
|
||||||
|
assert_eq!(capture(&mut content), raw);
|
||||||
|
assert_eq!(content.cursor(), raw);
|
||||||
|
assert_eq!(content.selection(), selected);
|
||||||
|
assert_eq!(content.text(), source);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for empty_normal in [false, true] {
|
||||||
|
let mut content = EditorContent::with_text("éclair");
|
||||||
|
let position = at(0, "écl".len());
|
||||||
|
content.move_to(Cursor {
|
||||||
|
position,
|
||||||
|
selection: empty_normal.then_some(position),
|
||||||
|
});
|
||||||
|
let raw = content.cursor();
|
||||||
|
let selected = content.selection();
|
||||||
|
assert_eq!(capture(&mut content), raw);
|
||||||
|
assert_eq!(
|
||||||
|
content.cursor(),
|
||||||
|
raw,
|
||||||
|
"an unselected interior caret must not move left"
|
||||||
|
);
|
||||||
|
assert_eq!(content.selection(), selected);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+62
-430
@@ -1,4 +1,5 @@
|
|||||||
mod source_symbols;
|
mod source_symbols;
|
||||||
|
mod text_workspace;
|
||||||
pub(crate) mod traceability;
|
pub(crate) mod traceability;
|
||||||
use crate::{
|
use crate::{
|
||||||
app::{App, Choice, FileOperation, Message, Page, Pending},
|
app::{App, Choice, FileOperation, Message, Page, Pending},
|
||||||
@@ -276,7 +277,7 @@ pub fn view(app: &App) -> View<'_, Message> {
|
|||||||
p.relations.len()
|
p.relations.len()
|
||||||
)),
|
)),
|
||||||
action(
|
action(
|
||||||
&format!("{} checks", app.issue_count()),
|
&format!("{} model checks", app.issue_count()),
|
||||||
Message::Page(Page::Validation)
|
Message::Page(Page::Validation)
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
@@ -1010,237 +1011,70 @@ fn source_files(app: &App) -> View<'_, Message> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn source(app: &App) -> View<'_, Message> {
|
fn source(app: &App) -> View<'_, Message> {
|
||||||
use crate::source_navigation::Event as SourceEvent;
|
use crate::app::text_workspace::DrawerTab;
|
||||||
let (undo_label, undo_message) = match app.source_rename_undo_message() {
|
use oa_core::source_project::SourceLocation;
|
||||||
Some(message) => ("Undo rename", Some(message)),
|
let visible = app.text_workspace.drawer() == Some(DrawerTab::Problems);
|
||||||
None => (
|
let publication = app
|
||||||
"Undo model",
|
.text_workspace
|
||||||
(app.document.can_undo() && !app.source_dirty()).then_some(Message::Undo),
|
.diagnostic_publication()
|
||||||
),
|
.filter(|publication| visible && publication.source() == app.source_key());
|
||||||
};
|
let mut diagnostics = column![].spacing(3).width(Fill);
|
||||||
let navigation: View<'_, Message> = if app.source_navigation.open {
|
if visible {
|
||||||
column![
|
if publication.is_none() && !app.source_diagnostics.is_empty() {
|
||||||
row![
|
diagnostics = diagnostics
|
||||||
text_input("Find literal text…", &app.source_navigation.query)
|
.push(text("Source changed. Waiting for current source checks…").size(12));
|
||||||
.id("source-find")
|
|
||||||
.on_input(|query| Message::SourceNavigation(SourceEvent::Query(query)))
|
|
||||||
.on_submit(Message::SourceNavigation(SourceEvent::Next(false)))
|
|
||||||
.padding(8)
|
|
||||||
.size(12)
|
|
||||||
.width(Fill),
|
|
||||||
action(
|
|
||||||
"Previous",
|
|
||||||
Message::SourceNavigation(SourceEvent::Next(true))
|
|
||||||
),
|
|
||||||
action("Next", Message::SourceNavigation(SourceEvent::Next(false))),
|
|
||||||
label(app.source_navigation.label()),
|
|
||||||
action("Close", app.source_find_close_message()),
|
|
||||||
]
|
|
||||||
.spacing(6)
|
|
||||||
.align_y(iced::Center),
|
|
||||||
row![
|
|
||||||
text_input("Line", &app.source_navigation.line)
|
|
||||||
.id("source-line")
|
|
||||||
.on_input(|line| Message::SourceNavigation(SourceEvent::Line(line)))
|
|
||||||
.on_submit(Message::SourceNavigation(SourceEvent::Go))
|
|
||||||
.padding(8)
|
|
||||||
.size(12)
|
|
||||||
.width(80),
|
|
||||||
action("Go to line", Message::SourceNavigation(SourceEvent::Go)),
|
|
||||||
label("Enter or F3: next match · Shift F3: previous · Esc: close"),
|
|
||||||
]
|
|
||||||
.spacing(6)
|
|
||||||
.align_y(iced::Center),
|
|
||||||
]
|
|
||||||
.spacing(6)
|
|
||||||
.into()
|
|
||||||
} else {
|
|
||||||
column![].into()
|
|
||||||
};
|
|
||||||
let recovery: View<'_, Message> = if let Some(path) = &app.pending_recovery {
|
|
||||||
let edits_block_recovery =
|
|
||||||
!app.source_workspace.applied && app.source_workspace.has_edits();
|
|
||||||
let filename = path.file_name().unwrap_or_default().to_string_lossy();
|
|
||||||
container(
|
|
||||||
column![
|
|
||||||
tooltip(
|
|
||||||
text(format!("Interrupted save · {filename}")).size(15),
|
|
||||||
text(path.display().to_string()).size(12),
|
|
||||||
tooltip::Position::Bottom,
|
|
||||||
),
|
|
||||||
text(if edits_block_recovery {
|
|
||||||
"Revert the edited files before recovery. Recovery restores files to their state before the interrupted save, then reopens them."
|
|
||||||
} else if app.source_workspace.applied {
|
|
||||||
"Restore files to their state before the interrupted save. Your current model and editor drafts are kept."
|
|
||||||
} else {
|
|
||||||
"Restore files to their state before the interrupted save, then reopen them. This rolls back the incomplete save."
|
|
||||||
})
|
|
||||||
.size(13),
|
|
||||||
button(text("Recover interrupted save").size(12))
|
|
||||||
.padding(10)
|
|
||||||
.on_press_maybe(
|
|
||||||
(!edits_block_recovery && !app.busy).then_some(Message::SourceRecover),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
.spacing(8),
|
|
||||||
)
|
|
||||||
.padding(12)
|
|
||||||
.width(Fill)
|
|
||||||
.style(style::card)
|
|
||||||
.into()
|
|
||||||
} else {
|
|
||||||
column![].into()
|
|
||||||
};
|
|
||||||
let mut diagnostics = column![].spacing(5);
|
|
||||||
let mut visible_diagnostics = 0;
|
|
||||||
for (index, issue) in app.source_diagnostics.iter().enumerate() {
|
|
||||||
// The persistent recovery banner supplies the action and explanation;
|
|
||||||
// repeating the internal journal path obscures ordinary diagnostics.
|
|
||||||
if app.pending_recovery.is_some() && issue.diagnostic.code == "pending_save" {
|
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
visible_diagnostics += 1;
|
if app.source_diagnostics.is_empty() {
|
||||||
diagnostics = diagnostics.push(
|
diagnostics = diagnostics.push(text("No source problems reported.").size(12));
|
||||||
button(
|
}
|
||||||
text(format!(
|
for issue in &app.source_diagnostics {
|
||||||
"{}:{}:{} {}",
|
let location = SourceLocation {
|
||||||
issue.path,
|
path: issue.path.clone(),
|
||||||
issue.diagnostic.line,
|
span: issue.diagnostic.span,
|
||||||
issue.diagnostic.column,
|
};
|
||||||
issue.diagnostic.message
|
let severity = match issue.diagnostic.severity {
|
||||||
))
|
validation::Severity::Error => "Error",
|
||||||
.size(12)
|
validation::Severity::Warning => "Warning",
|
||||||
.color(match issue.diagnostic.severity {
|
};
|
||||||
validation::Severity::Error => iced::Color::from_rgb8(174, 46, 64),
|
diagnostics = diagnostics.push(
|
||||||
validation::Severity::Warning => iced::Color::from_rgb8(145, 93, 23),
|
button(
|
||||||
}),
|
text(format!(
|
||||||
)
|
"{severity} · {}:{}:{} · {}",
|
||||||
.width(Fill)
|
issue.path,
|
||||||
.padding([4, 6])
|
issue.diagnostic.line,
|
||||||
.style(style::nav)
|
issue.diagnostic.column,
|
||||||
.on_press(Message::SourceDiagnostic(index)),
|
issue.diagnostic.message,
|
||||||
);
|
))
|
||||||
for related in &issue.related {
|
.size(12)
|
||||||
diagnostics = diagnostics.push(action(
|
.wrapping(widget::text::Wrapping::WordOrGlyph),
|
||||||
&format!("Related declaration · {}", related.path),
|
)
|
||||||
Message::SourceRelated(related.clone()),
|
.width(Fill)
|
||||||
));
|
.padding([4, 6])
|
||||||
|
.style(style::nav)
|
||||||
|
.on_press_maybe(app.text_diagnostic_message(location)),
|
||||||
|
);
|
||||||
|
for related in &issue.related {
|
||||||
|
diagnostics = diagnostics.push(
|
||||||
|
button(
|
||||||
|
text(format!("Related declaration · {}", related.path))
|
||||||
|
.size(12)
|
||||||
|
.wrapping(widget::text::Wrapping::WordOrGlyph),
|
||||||
|
)
|
||||||
|
.width(Fill)
|
||||||
|
.padding([4, 12])
|
||||||
|
.style(style::nav)
|
||||||
|
.on_press_maybe(app.text_diagnostic_message(related.clone())),
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let editor = widget::text_editor(&app.source_editor)
|
let guard = crate::diagnostic_input::Guard::new(
|
||||||
.id(app.source_editor_id())
|
publication.map(|p| (p.generation(), app.text_workspace.drawer_visit())),
|
||||||
.on_action(Message::SourceEdit)
|
diagnostics,
|
||||||
.key_binding({
|
);
|
||||||
let context = app.source_symbol_context();
|
text_workspace::view(app, source_symbols::panel(app), guard.into())
|
||||||
let rename = app.source_rename_begin();
|
|
||||||
move |press| source_binding(press, &context, Some(&rename))
|
|
||||||
})
|
|
||||||
.font(Font::MONOSPACE)
|
|
||||||
.size(14)
|
|
||||||
.padding(16)
|
|
||||||
.height(Fill)
|
|
||||||
.highlight_with::<crate::highlight::ArcadiaHighlighter>(
|
|
||||||
app.source_snapshot.clone(),
|
|
||||||
crate::highlight::format,
|
|
||||||
);
|
|
||||||
let header = container(
|
|
||||||
column![
|
|
||||||
row![
|
|
||||||
container(heading(
|
|
||||||
"Textual model",
|
|
||||||
"One model across files · comments and identities preserved"
|
|
||||||
))
|
|
||||||
.width(Fill),
|
|
||||||
button(text("Apply all").size(12))
|
|
||||||
.padding(10)
|
|
||||||
.on_press(Message::ApplySource),
|
|
||||||
action("Revert file", Message::RevertSource)
|
|
||||||
]
|
|
||||||
.spacing(8)
|
|
||||||
.align_y(iced::Center),
|
|
||||||
row![
|
|
||||||
action("Undo text", Message::SourceUndo),
|
|
||||||
action("Redo text", Message::SourceRedo),
|
|
||||||
button(text(undo_label).size(12)).padding([8,10]).style(style::nav)
|
|
||||||
.on_press_maybe(undo_message),
|
|
||||||
button(text("Redo model").size(12)).padding([8,10]).style(style::nav)
|
|
||||||
.on_press_maybe((app.document.can_redo() && !app.source_dirty()).then_some(Message::Redo)),
|
|
||||||
action("Find / go to…", Message::SourceNavigation(SourceEvent::Open(false))),
|
|
||||||
label(if app.source_dirty() {
|
|
||||||
"Drafts pending"
|
|
||||||
} else {
|
|
||||||
"Model in sync"
|
|
||||||
})
|
|
||||||
]
|
|
||||||
.spacing(7)
|
|
||||||
.align_y(iced::Center),
|
|
||||||
recovery,
|
|
||||||
text(app.source_workspace.active.clone()).font(Font::MONOSPACE).size(12).color(style::INK),
|
|
||||||
label(if app.pending_recovery.is_some() && !app.source_workspace.applied {
|
|
||||||
"The previous graphical model remains available while these files are recovered."
|
|
||||||
} else if !app.source_workspace.applied {
|
|
||||||
"This project needs repair. Apply all adopts it; the previous graphical model remains available."
|
|
||||||
} else if app.source_workspace.detached_dirty() {
|
|
||||||
"A detached file has an unsaved draft. Reattach it or revert that file before saving."
|
|
||||||
} else {
|
|
||||||
"Undo text affects this file's draft. Model Undo restores accepted files together (100 changes / about 32 MiB)."
|
|
||||||
}),
|
|
||||||
navigation,
|
|
||||||
row![
|
|
||||||
action("Definition · F12", app.source_symbol_message(crate::source_navigation::SymbolEvent::Query(crate::source_navigation::query::Action::Definition))),
|
|
||||||
action("References · Shift F12", app.source_symbol_message(crate::source_navigation::SymbolEvent::Query(crate::source_navigation::query::Action::References))),
|
|
||||||
action("Rename alias · F2", app.source_rename_message()),
|
|
||||||
button(text("Back · Alt ←").size(12)).padding([8, 10]).style(style::nav)
|
|
||||||
.on_press_maybe((app.source_symbols.back.iter().any(|entry| entry.session == app.source_workspace.session())).then(|| app.source_symbol_message(crate::source_navigation::SymbolEvent::Back))),
|
|
||||||
].spacing(7),
|
|
||||||
scrollable(diagnostics)
|
|
||||||
.height((visible_diagnostics as f32 * 32.).min(132.))
|
|
||||||
]
|
|
||||||
.spacing(12)
|
|
||||||
)
|
|
||||||
.padding(18);
|
|
||||||
let editor = widget::sensor(editor)
|
|
||||||
.key((
|
|
||||||
app.source_workspace.active.clone(),
|
|
||||||
app.source_reveal_ticket(),
|
|
||||||
))
|
|
||||||
.on_show({
|
|
||||||
let ticket = app.source_reveal_ticket();
|
|
||||||
move |_| Message::SourceViewport(ticket)
|
|
||||||
})
|
|
||||||
.on_resize({
|
|
||||||
let ticket = app.source_reveal_ticket();
|
|
||||||
move |_| Message::SourceViewport(ticket)
|
|
||||||
});
|
|
||||||
let workspace: View<'_, Message> = if app.source_symbols.open {
|
|
||||||
row![
|
|
||||||
container(editor).width(Fill).height(Fill),
|
|
||||||
container(scrollable(source_symbols::panel(app)))
|
|
||||||
.width(300)
|
|
||||||
.height(Fill),
|
|
||||||
]
|
|
||||||
.height(Fill)
|
|
||||||
.into()
|
|
||||||
} else {
|
|
||||||
container(editor).width(Fill).height(Fill).into()
|
|
||||||
};
|
|
||||||
source_layout(header.into(), workspace, app.window_size.height)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn source_layout<'a, Renderer: iced::advanced::text::Renderer + 'a>(
|
|
||||||
header: View<'a, Message, iced::Theme, Renderer>,
|
|
||||||
workspace: View<'a, Message, iced::Theme, Renderer>,
|
|
||||||
window_height: f32,
|
|
||||||
) -> View<'a, Message, iced::Theme, Renderer> {
|
|
||||||
// Lint clears and repopulates diagnostics asynchronously. Reserve the same
|
|
||||||
// outer slot so a pointer aimed at the editor cannot land in the header.
|
|
||||||
column![
|
|
||||||
container(scrollable(header).id("source-header")).height((window_height * 0.42).max(180.)),
|
|
||||||
workspace,
|
|
||||||
]
|
|
||||||
.height(Fill)
|
|
||||||
.into()
|
|
||||||
}
|
|
||||||
pub(crate) fn source_binding(
|
pub(crate) fn source_binding(
|
||||||
press: widget::text_editor::KeyPress,
|
press: widget::text_editor::KeyPress,
|
||||||
context: &crate::source_navigation::SymbolContext,
|
context: &crate::source_navigation::SymbolContext,
|
||||||
@@ -1304,8 +1138,7 @@ pub(crate) mod source_tests {
|
|||||||
use iced::advanced::{
|
use iced::advanced::{
|
||||||
Layout, Shell, graphics, layout, renderer, text as shaped, widget as core_widget,
|
Layout, Shell, graphics, layout, renderer, text as shaped, widget as core_widget,
|
||||||
};
|
};
|
||||||
use iced::widget::column;
|
use iced::{Background, Color, Pixels, Point, Rectangle, Size, Transformation};
|
||||||
use iced::{Background, Color, Pixels, Point, Rectangle, Size, Transformation, Vector};
|
|
||||||
|
|
||||||
// Measure real Iced paragraphs/editor text without constructing a window or GPU.
|
// Measure real Iced paragraphs/editor text without constructing a window or GPU.
|
||||||
pub(crate) struct FontLayout;
|
pub(crate) struct FontLayout;
|
||||||
@@ -1350,207 +1183,6 @@ pub(crate) mod source_tests {
|
|||||||
fn fill_text(&mut self, _: shaped::Text, _: Point, _: Color, _: Rectangle) {}
|
fn fill_text(&mut self, _: shaped::Text, _: Point, _: Color, _: Rectangle) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Default)]
|
|
||||||
struct Geometry {
|
|
||||||
header: Option<(Rectangle, Rectangle, Vector)>,
|
|
||||||
editor: Option<Rectangle>,
|
|
||||||
}
|
|
||||||
impl core_widget::Operation for Geometry {
|
|
||||||
fn traverse(&mut self, visit: &mut dyn FnMut(&mut dyn core_widget::Operation)) {
|
|
||||||
visit(self);
|
|
||||||
}
|
|
||||||
fn container(&mut self, id: Option<&core_widget::Id>, bounds: Rectangle) {
|
|
||||||
if id == Some(&core_widget::Id::new("test-source-editor")) {
|
|
||||||
self.editor = Some(bounds);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fn scrollable(
|
|
||||||
&mut self,
|
|
||||||
id: Option<&core_widget::Id>,
|
|
||||||
bounds: Rectangle,
|
|
||||||
content: Rectangle,
|
|
||||||
offset: Vector,
|
|
||||||
_: &mut dyn core_widget::operation::Scrollable,
|
|
||||||
) {
|
|
||||||
if id == Some(&core_widget::Id::new("source-header")) {
|
|
||||||
self.header = Some((bounds, content, offset));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn mounted_source<'a>(
|
|
||||||
content: &'a widget::text_editor::Content<FontLayout>,
|
|
||||||
diagnostics: usize,
|
|
||||||
find: bool,
|
|
||||||
window_height: f32,
|
|
||||||
) -> View<'a, Message, iced::Theme, FontLayout> {
|
|
||||||
let mut notices = column![].spacing(5);
|
|
||||||
for index in 0..diagnostics {
|
|
||||||
notices = notices.push(button(text(format!(
|
|
||||||
"救援/assess.arcadia:{}:5 · Warning: verify this participant's engineering allocation", index + 1,
|
|
||||||
)).size(12)).padding([4, 6]).width(Fill));
|
|
||||||
}
|
|
||||||
let find: View<'_, Message, iced::Theme, FontLayout> = if find {
|
|
||||||
column![
|
|
||||||
text_input("Find literal text", "assess").on_input(|s| Message::SourceNavigation(
|
|
||||||
crate::source_navigation::Event::Query(s)
|
|
||||||
)),
|
|
||||||
text_input("Line", "1").on_input(|s| Message::SourceNavigation(
|
|
||||||
crate::source_navigation::Event::Line(s)
|
|
||||||
)),
|
|
||||||
]
|
|
||||||
.spacing(8)
|
|
||||||
.into()
|
|
||||||
} else {
|
|
||||||
Space::new().into()
|
|
||||||
};
|
|
||||||
let header = container(
|
|
||||||
column![
|
|
||||||
text("Textual model").size(24),
|
|
||||||
text("Edit the current file. Apply text validates the complete included model.")
|
|
||||||
.size(11),
|
|
||||||
row![
|
|
||||||
button(text("Apply text")),
|
|
||||||
button(text("Undo text")),
|
|
||||||
button(text("Model Undo"))
|
|
||||||
]
|
|
||||||
.spacing(8),
|
|
||||||
text("救援/assess.arcadia · All files applied to the accepted model").size(11),
|
|
||||||
text("Undo text affects this draft. Model Undo restores accepted files together.")
|
|
||||||
.size(11),
|
|
||||||
find,
|
|
||||||
row![
|
|
||||||
button(text("Definition · F12")),
|
|
||||||
button(text("References · Shift F12")),
|
|
||||||
button(text("Back"))
|
|
||||||
]
|
|
||||||
.spacing(7),
|
|
||||||
scrollable(notices).height((diagnostics as f32 * 32.).min(132.)),
|
|
||||||
]
|
|
||||||
.spacing(12),
|
|
||||||
)
|
|
||||||
.padding(18);
|
|
||||||
let editor = container(
|
|
||||||
widget::text_editor(content)
|
|
||||||
.on_action(Message::SourceEdit)
|
|
||||||
.font(Font::MONOSPACE)
|
|
||||||
.size(14)
|
|
||||||
.padding(16)
|
|
||||||
.height(Fill),
|
|
||||||
)
|
|
||||||
.id("test-source-editor")
|
|
||||||
.height(Fill)
|
|
||||||
.width(Fill);
|
|
||||||
source_layout(header.into(), editor.into(), window_height)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn source_header_keeps_editor_bounds_stable_through_lint_and_find_rebuilds() {
|
|
||||||
for (host, window_height) in [
|
|
||||||
(Size::new(720., 540.), 700.),
|
|
||||||
(Size::new(1180., 890.), 1080.),
|
|
||||||
] {
|
|
||||||
let content = widget::text_editor::Content::<FontLayout>::with_text(
|
|
||||||
"// is excluded\r\n// 雨\r\n",
|
|
||||||
);
|
|
||||||
let mut tree = core_widget::Tree::empty();
|
|
||||||
let mut baseline = None;
|
|
||||||
for (diagnostics, find) in [
|
|
||||||
(0, false),
|
|
||||||
(6, false),
|
|
||||||
(0, false),
|
|
||||||
(6, true),
|
|
||||||
(1, true),
|
|
||||||
(0, false),
|
|
||||||
] {
|
|
||||||
let mut ui = mounted_source(&content, diagnostics, find, window_height);
|
|
||||||
tree.diff(ui.as_widget());
|
|
||||||
let node = ui.as_widget_mut().layout(
|
|
||||||
&mut tree,
|
|
||||||
&FontLayout,
|
|
||||||
&layout::Limits::new(Size::ZERO, host),
|
|
||||||
);
|
|
||||||
let mut geometry = Geometry::default();
|
|
||||||
ui.as_widget_mut().operate(
|
|
||||||
&mut tree,
|
|
||||||
Layout::new(&node),
|
|
||||||
&FontLayout,
|
|
||||||
&mut geometry,
|
|
||||||
);
|
|
||||||
let editor = geometry.editor.unwrap();
|
|
||||||
let (header, _, _) = geometry.header.unwrap();
|
|
||||||
let slot = node.children()[0].bounds();
|
|
||||||
assert_eq!(slot.height, (window_height * 0.42).max(180.));
|
|
||||||
assert!(
|
|
||||||
header.height <= slot.height,
|
|
||||||
"short content may shrink inside the fixed slot"
|
|
||||||
);
|
|
||||||
assert!(
|
|
||||||
editor.height >= 240.,
|
|
||||||
"remaining editor must stay usable: {editor:?}"
|
|
||||||
);
|
|
||||||
assert_eq!(editor.y, slot.y + slot.height);
|
|
||||||
if let Some(expected) = baseline {
|
|
||||||
assert_eq!(editor, expected, "diagnostics={diagnostics}, find={find}");
|
|
||||||
} else {
|
|
||||||
baseline = Some(editor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn source_header_remains_scrollable_and_preserves_offset_across_diagnostic_refresh() {
|
|
||||||
let content = widget::text_editor::Content::<FontLayout>::with_text("// 雨\r\n");
|
|
||||||
let host = Size::new(720., 540.);
|
|
||||||
let mut tree = core_widget::Tree::empty();
|
|
||||||
let mut saved = None;
|
|
||||||
for diagnostics in [6, 7] {
|
|
||||||
let mut ui = mounted_source(&content, diagnostics, true, 700.);
|
|
||||||
tree.diff(ui.as_widget());
|
|
||||||
let node = ui.as_widget_mut().layout(
|
|
||||||
&mut tree,
|
|
||||||
&FontLayout,
|
|
||||||
&layout::Limits::new(Size::ZERO, host),
|
|
||||||
);
|
|
||||||
let mut geometry = Geometry::default();
|
|
||||||
ui.as_widget_mut()
|
|
||||||
.operate(&mut tree, Layout::new(&node), &FontLayout, &mut geometry);
|
|
||||||
let (bounds, contents, _) = geometry.header.unwrap();
|
|
||||||
assert!(
|
|
||||||
contents.height > bounds.height,
|
|
||||||
"fixture must actually overflow"
|
|
||||||
);
|
|
||||||
if saved.is_none() {
|
|
||||||
let mut messages = Vec::new();
|
|
||||||
let mut shell = Shell::new(&mut messages);
|
|
||||||
ui.as_widget_mut().update(
|
|
||||||
&mut tree,
|
|
||||||
&iced::Event::Mouse(iced::mouse::Event::WheelScrolled {
|
|
||||||
delta: iced::mouse::ScrollDelta::Pixels { x: 0., y: -45. },
|
|
||||||
}),
|
|
||||||
Layout::new(&node),
|
|
||||||
iced::mouse::Cursor::Available(Point::new(bounds.x + 8., bounds.y + 8.)),
|
|
||||||
&FontLayout,
|
|
||||||
&mut iced::advanced::clipboard::Null,
|
|
||||||
&mut shell,
|
|
||||||
&Rectangle::with_size(host),
|
|
||||||
);
|
|
||||||
assert!(shell.is_event_captured());
|
|
||||||
}
|
|
||||||
let mut geometry = Geometry::default();
|
|
||||||
ui.as_widget_mut()
|
|
||||||
.operate(&mut tree, Layout::new(&node), &FontLayout, &mut geometry);
|
|
||||||
let offset = geometry.header.unwrap().2;
|
|
||||||
assert!(offset.y > 0., "the actual mounted Scrollable must move");
|
|
||||||
if let Some(before) = saved {
|
|
||||||
assert_eq!(offset, before);
|
|
||||||
} else {
|
|
||||||
saved = Some(offset);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(target_os = "windows")]
|
#[cfg(target_os = "windows")]
|
||||||
#[test]
|
#[test]
|
||||||
fn source_editor_windows_menu_payload_is_inert_but_space_and_altgr_still_edit() {
|
fn source_editor_windows_menu_payload_is_inert_but_space_and_altgr_still_edit() {
|
||||||
|
|||||||
@@ -2,80 +2,151 @@ use crate::{
|
|||||||
app::{App, Message},
|
app::{App, Message},
|
||||||
source_navigation::{
|
source_navigation::{
|
||||||
SymbolEvent,
|
SymbolEvent,
|
||||||
query::{self, Declaration, Disposition, Evidence, Identity, Membership, Position},
|
query::{Declaration, Disposition, Evidence, Identity, Membership, Position},
|
||||||
},
|
},
|
||||||
style,
|
style,
|
||||||
};
|
};
|
||||||
use iced::{
|
use iced::{
|
||||||
Element, Fill,
|
Element, Fill,
|
||||||
widget::{Space, button, column, container, row, scrollable, text, tooltip},
|
widget::{button, column, container, scrollable, text, tooltip},
|
||||||
};
|
};
|
||||||
|
|
||||||
pub(super) fn panel(app: &App) -> Element<'_, Message> {
|
pub(super) fn panel(app: &App) -> Element<'_, Message> {
|
||||||
|
use crate::app::text_workspace::{DrawerTab, Event};
|
||||||
|
use std::collections::BTreeSet;
|
||||||
let state = &app.source_symbols;
|
let state = &app.source_symbols;
|
||||||
if !state.open
|
let visible = app.text_workspace.drawer() == Some(DrawerTab::References);
|
||||||
|| (state.results.is_none() && state.in_flight.is_none() && state.notice.is_none())
|
let presentation = app.text_workspace.references();
|
||||||
{
|
let mut content = column![].spacing(0).width(Fill);
|
||||||
return column![].into();
|
if visible && let Some(notice) = &state.notice {
|
||||||
|
content = content.push(text(notice.clone()).size(12));
|
||||||
}
|
}
|
||||||
let title = state.results.as_ref().map_or_else(
|
if visible && let Some(results) = &state.results {
|
||||||
|| "Source symbols".to_owned(),
|
|
||||||
|results| {
|
|
||||||
let action = match results.action {
|
|
||||||
query::Action::Definition => "Definitions",
|
|
||||||
query::Action::References => "References",
|
|
||||||
};
|
|
||||||
results.alias.as_ref().map_or_else(
|
|
||||||
|| action.to_owned(),
|
|
||||||
|alias| format!("{action} · @{}", preview(alias, 40)),
|
|
||||||
)
|
|
||||||
},
|
|
||||||
);
|
|
||||||
let mut content = column![
|
|
||||||
row![
|
|
||||||
text(title).size(13),
|
|
||||||
Space::new().width(Fill),
|
|
||||||
button(text("Close").size(11))
|
|
||||||
.padding([3, 8])
|
|
||||||
.style(style::nav)
|
|
||||||
.on_press(app.source_symbol_message(SymbolEvent::Close)),
|
|
||||||
]
|
|
||||||
.align_y(iced::Center)
|
|
||||||
]
|
|
||||||
.spacing(5);
|
|
||||||
|
|
||||||
if let Some(notice) = &state.notice {
|
|
||||||
content = content.push(super::label(preview(notice, 240)));
|
|
||||||
}
|
|
||||||
if state.in_flight.is_some() {
|
|
||||||
content = content.push(super::label("Finding source symbols…"));
|
|
||||||
} else if let Some(results) = &state.results {
|
|
||||||
let stale = results.stamp.snapshot != app.source_key();
|
let stale = results.stamp.snapshot != app.source_key();
|
||||||
if stale {
|
let enabled = !stale && app.source_navigation_available();
|
||||||
content = content.push(super::label(
|
let files: BTreeSet<_> = results
|
||||||
"Stale results — source changed. Run Definition or References again.",
|
.definitions
|
||||||
));
|
.iter()
|
||||||
|
.map(|row| row.path.as_str())
|
||||||
|
.chain(results.references.iter().map(|row| row.path.as_str()))
|
||||||
|
.collect();
|
||||||
|
let mut ordered: Vec<_> = files.iter().copied().collect();
|
||||||
|
// Keep the query's captured origin first even after navigating elsewhere.
|
||||||
|
if let Some(origin) = state
|
||||||
|
.display_request
|
||||||
|
.as_ref()
|
||||||
|
.map(|request| request.path.as_str())
|
||||||
|
{
|
||||||
|
ordered.sort_by_key(|path| (*path != origin, *path));
|
||||||
|
}
|
||||||
|
for path in ordered {
|
||||||
|
let collapsed = presentation.collapsed(path);
|
||||||
|
let count = results
|
||||||
|
.definitions
|
||||||
|
.iter()
|
||||||
|
.filter(|row| row.path == path)
|
||||||
|
.count()
|
||||||
|
+ results
|
||||||
|
.references
|
||||||
|
.iter()
|
||||||
|
.filter(|row| row.path == path)
|
||||||
|
.count();
|
||||||
|
let suffix = distinguishing_path(path, &files);
|
||||||
|
content = content.push(
|
||||||
|
button(
|
||||||
|
text(format!(
|
||||||
|
"{} {suffix} · {count}",
|
||||||
|
if collapsed { "▸" } else { "▾" }
|
||||||
|
))
|
||||||
|
.size(12)
|
||||||
|
.wrapping(iced::widget::text::Wrapping::None),
|
||||||
|
)
|
||||||
|
.height(24)
|
||||||
|
.width(Fill)
|
||||||
|
.padding([2, 6])
|
||||||
|
.style(style::nav)
|
||||||
|
.on_press_maybe(app.source_navigation_available().then(|| {
|
||||||
|
Message::TextWorkspace(Event::ToggleFile {
|
||||||
|
stamp: results.stamp,
|
||||||
|
visit: app.text_workspace.drawer_visit(),
|
||||||
|
path: path.to_owned(),
|
||||||
|
})
|
||||||
|
})),
|
||||||
|
);
|
||||||
|
if collapsed {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
for (index, definition) in results
|
||||||
|
.definitions
|
||||||
|
.iter()
|
||||||
|
.enumerate()
|
||||||
|
.filter(|(_, row)| row.path == path)
|
||||||
|
{
|
||||||
|
content = content.push(location_row(
|
||||||
|
declaration_title(&definition.declaration),
|
||||||
|
path,
|
||||||
|
definition.position,
|
||||||
|
provenance(
|
||||||
|
definition.membership,
|
||||||
|
definition.evidence,
|
||||||
|
definition.declaration.identity,
|
||||||
|
false,
|
||||||
|
),
|
||||||
|
enabled.then(|| {
|
||||||
|
app.source_symbol_message(SymbolEvent::Choose {
|
||||||
|
stamp: results.stamp,
|
||||||
|
visit: app.text_workspace.drawer_visit(),
|
||||||
|
reference: false,
|
||||||
|
index,
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
));
|
||||||
|
}
|
||||||
|
for (index, reference) in results
|
||||||
|
.references
|
||||||
|
.iter()
|
||||||
|
.enumerate()
|
||||||
|
.filter(|(_, row)| row.path == path)
|
||||||
|
{
|
||||||
|
let title = reference.context.as_ref().map_or_else(
|
||||||
|
|| format!("@{} · lexical use", preview(&reference.alias, 48)),
|
||||||
|
|context| format!("use · {}", declaration_title(context)),
|
||||||
|
);
|
||||||
|
content = content.push(location_row(
|
||||||
|
title,
|
||||||
|
path,
|
||||||
|
reference.position,
|
||||||
|
provenance(
|
||||||
|
reference.membership,
|
||||||
|
reference.evidence,
|
||||||
|
reference
|
||||||
|
.context
|
||||||
|
.as_ref()
|
||||||
|
.map_or(Identity::Missing, |context| context.identity),
|
||||||
|
true,
|
||||||
|
),
|
||||||
|
enabled.then(|| {
|
||||||
|
app.source_symbol_message(SymbolEvent::Choose {
|
||||||
|
stamp: results.stamp,
|
||||||
|
visit: app.text_workspace.drawer_visit(),
|
||||||
|
reference: true,
|
||||||
|
index,
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
));
|
||||||
|
}
|
||||||
|
// Full path is readable by ordinary scrolling, independently of hover.
|
||||||
|
content = content.push(
|
||||||
|
container(
|
||||||
|
text(path.to_owned())
|
||||||
|
.font(iced::Font::MONOSPACE)
|
||||||
|
.size(12)
|
||||||
|
.wrapping(iced::widget::text::Wrapping::WordOrGlyph),
|
||||||
|
)
|
||||||
|
.padding([3, 8]),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
let scope = &results.scope;
|
let scope = &results.scope;
|
||||||
content = content.push(super::label(format!(
|
|
||||||
"{} · {} · {} included / {} detached / {} unverified files · {} scope issues",
|
|
||||||
if scope.partial() {
|
|
||||||
"Partial scope"
|
|
||||||
} else {
|
|
||||||
"Complete include scope"
|
|
||||||
},
|
|
||||||
if !scope.applied {
|
|
||||||
"Unapplied drafts"
|
|
||||||
} else if scope.validated {
|
|
||||||
"Validated sources"
|
|
||||||
} else {
|
|
||||||
"Draft sources"
|
|
||||||
},
|
|
||||||
scope.included_files,
|
|
||||||
scope.detached_files,
|
|
||||||
scope.unverified_files,
|
|
||||||
scope.issues.len(),
|
|
||||||
)));
|
|
||||||
let explanation = match results.disposition {
|
let explanation = match results.disposition {
|
||||||
Disposition::NoSymbol => "Place the caret on a declaration alias or an @reference.",
|
Disposition::NoSymbol => "Place the caret on a declaration alias or an @reference.",
|
||||||
Disposition::NoDefinition => "No matching declaration in the loaded sources.",
|
Disposition::NoDefinition => "No matching declaration in the loaded sources.",
|
||||||
@@ -87,89 +158,113 @@ pub(super) fn panel(app: &App) -> Element<'_, Message> {
|
|||||||
"Lexical uses of this alias; these do not establish a semantic target."
|
"Lexical uses of this alias; these do not establish a semantic target."
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
content = content.push(super::label(explanation));
|
content = content.push(text(explanation).size(12));
|
||||||
if results.total_definitions > 1 {
|
if stale {
|
||||||
content = content.push(super::label(format!(
|
content = content.push(
|
||||||
"Alias collision: {} declarations. Uses are not attributed to a single declaration.",
|
text("Source changed. Run Definition or References again for current locations.")
|
||||||
results.total_definitions,
|
.size(12),
|
||||||
)));
|
|
||||||
}
|
|
||||||
let enabled = !stale && !app.busy;
|
|
||||||
let mut rows = column![super::label(counts(
|
|
||||||
"Declarations",
|
|
||||||
results.definitions.len(),
|
|
||||||
results.total_definitions,
|
|
||||||
results.omitted_definitions,
|
|
||||||
))]
|
|
||||||
.spacing(4);
|
|
||||||
for (index, definition) in results.definitions.iter().enumerate() {
|
|
||||||
rows = rows.push(location_row(
|
|
||||||
declaration_title(&definition.declaration),
|
|
||||||
&definition.path,
|
|
||||||
definition.position,
|
|
||||||
provenance(
|
|
||||||
definition.membership,
|
|
||||||
definition.evidence,
|
|
||||||
definition.declaration.identity,
|
|
||||||
false,
|
|
||||||
),
|
|
||||||
enabled.then(|| {
|
|
||||||
app.source_symbol_message(SymbolEvent::Choose {
|
|
||||||
stamp: results.stamp,
|
|
||||||
reference: false,
|
|
||||||
index,
|
|
||||||
})
|
|
||||||
}),
|
|
||||||
));
|
|
||||||
}
|
|
||||||
rows = rows.push(super::label(counts(
|
|
||||||
"Lexical uses",
|
|
||||||
results.references.len(),
|
|
||||||
results.total_references,
|
|
||||||
results.omitted_references,
|
|
||||||
)));
|
|
||||||
for (index, reference) in results.references.iter().enumerate() {
|
|
||||||
let title = reference.context.as_ref().map_or_else(
|
|
||||||
|| format!("@{} · lexical use", preview(&reference.alias, 48)),
|
|
||||||
|context| {
|
|
||||||
format!(
|
|
||||||
"@{} · inside {}",
|
|
||||||
preview(&reference.alias, 48),
|
|
||||||
declaration_title(context)
|
|
||||||
)
|
|
||||||
},
|
|
||||||
);
|
);
|
||||||
rows = rows.push(location_row(
|
|
||||||
title,
|
|
||||||
&reference.path,
|
|
||||||
reference.position,
|
|
||||||
provenance(
|
|
||||||
reference.membership,
|
|
||||||
reference.evidence,
|
|
||||||
reference
|
|
||||||
.context
|
|
||||||
.as_ref()
|
|
||||||
.map_or(Identity::Missing, |context| context.identity),
|
|
||||||
true,
|
|
||||||
),
|
|
||||||
enabled.then(|| {
|
|
||||||
app.source_symbol_message(SymbolEvent::Choose {
|
|
||||||
stamp: results.stamp,
|
|
||||||
reference: true,
|
|
||||||
index,
|
|
||||||
})
|
|
||||||
}),
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
let row_count = results.definitions.len() + results.references.len();
|
if results.total_definitions > 1 {
|
||||||
content =
|
content = content.push(
|
||||||
content.push(scrollable(rows).height((44.0 + row_count as f32 * 48.0).min(180.0)));
|
text("Alias collision: uses are not attributed to a single declaration.").size(12),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
content = content
|
||||||
|
.push(
|
||||||
|
text(format!(
|
||||||
|
"{} · {} included / {} detached / {} unverified files · {} scope issues",
|
||||||
|
if scope.partial() {
|
||||||
|
"Partial include scope"
|
||||||
|
} else {
|
||||||
|
"Complete include scope"
|
||||||
|
},
|
||||||
|
scope.included_files,
|
||||||
|
scope.detached_files,
|
||||||
|
scope.unverified_files,
|
||||||
|
scope.issues.len()
|
||||||
|
))
|
||||||
|
.size(12),
|
||||||
|
)
|
||||||
|
.push(
|
||||||
|
text(if !scope.applied {
|
||||||
|
"Unapplied drafts"
|
||||||
|
} else if scope.validated {
|
||||||
|
"Validated sources"
|
||||||
|
} else {
|
||||||
|
"Draft sources"
|
||||||
|
})
|
||||||
|
.size(12),
|
||||||
|
)
|
||||||
|
.push(
|
||||||
|
text(counts(
|
||||||
|
"Declarations",
|
||||||
|
results.definitions.len(),
|
||||||
|
results.total_definitions,
|
||||||
|
results.omitted_definitions,
|
||||||
|
))
|
||||||
|
.size(12),
|
||||||
|
)
|
||||||
|
.push(
|
||||||
|
text(counts(
|
||||||
|
"Lexical uses",
|
||||||
|
results.references.len(),
|
||||||
|
results.total_references,
|
||||||
|
results.omitted_references,
|
||||||
|
))
|
||||||
|
.size(12),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
container(content)
|
let identity = if visible {
|
||||||
.padding(8)
|
state
|
||||||
.width(Fill)
|
.display_request
|
||||||
.style(style::subtle)
|
.as_ref()
|
||||||
.into()
|
.map(|request| (request.job, app.text_workspace.drawer_visit()))
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
};
|
||||||
|
let guarded = crate::diagnostic_input::Guard::new(identity, content);
|
||||||
|
let mut body = scrollable(
|
||||||
|
container(guarded)
|
||||||
|
.width(Fill)
|
||||||
|
.padding(iced::Padding::ZERO.right(14)),
|
||||||
|
)
|
||||||
|
.id(app.text_workspace.reference_scroll_id())
|
||||||
|
.height(Fill)
|
||||||
|
.width(Fill);
|
||||||
|
if let Some(stamp) = presentation.stamp() {
|
||||||
|
let visit = app.text_workspace.drawer_visit();
|
||||||
|
body = body.on_scroll(move |viewport| {
|
||||||
|
Message::TextWorkspace(Event::ReferenceScrolled {
|
||||||
|
stamp,
|
||||||
|
visit,
|
||||||
|
y: viewport.absolute_offset().y,
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
body.into()
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Shortest suffix that still distinguishes duplicate basenames and suffix paths.
|
||||||
|
fn distinguishing_path<'a>(path: &'a str, files: &std::collections::BTreeSet<&str>) -> &'a str {
|
||||||
|
let starts = std::iter::once(0).chain(path.match_indices('/').map(|(index, _)| index + 1));
|
||||||
|
for start in starts.collect::<Vec<_>>().into_iter().rev() {
|
||||||
|
let candidate = &path[start..];
|
||||||
|
if files
|
||||||
|
.iter()
|
||||||
|
.filter(|other| {
|
||||||
|
**other == candidate
|
||||||
|
|| other
|
||||||
|
.strip_suffix(candidate)
|
||||||
|
.is_some_and(|prefix| prefix.ends_with('/'))
|
||||||
|
})
|
||||||
|
.count()
|
||||||
|
== 1
|
||||||
|
{
|
||||||
|
return candidate;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
path
|
||||||
}
|
}
|
||||||
|
|
||||||
fn counts(label: &str, shown: usize, total: usize, omitted: usize) -> String {
|
fn counts(label: &str, shown: usize, total: usize, omitted: usize) -> String {
|
||||||
@@ -223,23 +318,24 @@ fn location_row(
|
|||||||
) -> Element<'static, Message> {
|
) -> Element<'static, Message> {
|
||||||
let line = position.line.saturating_add(1);
|
let line = position.line.saturating_add(1);
|
||||||
let column = position.byte_column.saturating_add(1);
|
let column = position.byte_column.saturating_add(1);
|
||||||
let location = format!("{}:{line}:{column}", preview(path, 72));
|
let full =
|
||||||
|
format!("{path}:{line}:{column} · {title} · {status} (1-based line and UTF-8 byte column)");
|
||||||
tooltip(
|
tooltip(
|
||||||
button(
|
button(
|
||||||
column![
|
container(
|
||||||
text(title).size(12),
|
text(format!("{line}:{column} {title} · {status}"))
|
||||||
super::label(format!("{location} · {status}"))
|
.size(12)
|
||||||
]
|
.wrapping(iced::widget::text::Wrapping::None),
|
||||||
.spacing(2),
|
)
|
||||||
|
.clip(true)
|
||||||
|
.width(Fill),
|
||||||
)
|
)
|
||||||
.padding([4, 6])
|
.padding([3, 12])
|
||||||
|
.height(28)
|
||||||
.width(Fill)
|
.width(Fill)
|
||||||
.style(style::nav)
|
.style(style::nav)
|
||||||
.on_press_maybe(event),
|
.on_press_maybe(event),
|
||||||
text(format!(
|
text(full).size(12),
|
||||||
"{path}:{line}:{column} (1-based line and UTF-8 byte column)"
|
|
||||||
))
|
|
||||||
.size(11),
|
|
||||||
tooltip::Position::Top,
|
tooltip::Position::Top,
|
||||||
)
|
)
|
||||||
.into()
|
.into()
|
||||||
@@ -258,3 +354,32 @@ fn preview(value: &str, limit: usize) -> String {
|
|||||||
}
|
}
|
||||||
result
|
result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
#[test]
|
||||||
|
fn suffixes_distinguish_nested_duplicate_basenames_without_changing_unicode() {
|
||||||
|
let files = [
|
||||||
|
"a/core.arcadia",
|
||||||
|
"b/core.arcadia",
|
||||||
|
"core.arcadia",
|
||||||
|
"救援/actors.arcadia",
|
||||||
|
]
|
||||||
|
.into_iter()
|
||||||
|
.collect();
|
||||||
|
assert_eq!(
|
||||||
|
distinguishing_path("a/core.arcadia", &files),
|
||||||
|
"a/core.arcadia"
|
||||||
|
);
|
||||||
|
assert_eq!(
|
||||||
|
distinguishing_path("b/core.arcadia", &files),
|
||||||
|
"b/core.arcadia"
|
||||||
|
);
|
||||||
|
assert_eq!(distinguishing_path("core.arcadia", &files), "core.arcadia");
|
||||||
|
assert_eq!(
|
||||||
|
distinguishing_path("救援/actors.arcadia", &files),
|
||||||
|
"actors.arcadia"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,248 @@
|
|||||||
|
//! Shapes and draws the production summary, checking actual paragraph advances.
|
||||||
|
//! Native validation remains necessary for platform raster ink/fallback fonts.
|
||||||
|
use super::*;
|
||||||
|
use crate::source_navigation::query;
|
||||||
|
use crate::views::source_tests::FontLayout;
|
||||||
|
use iced::advanced::{Layout, layout, renderer, text as shaped, widget::Tree};
|
||||||
|
use iced::{Background, Color, Pixels, Point, Rectangle, Size, Transformation};
|
||||||
|
use std::sync::Arc;
|
||||||
|
|
||||||
|
struct Cluster {
|
||||||
|
paragraph: String,
|
||||||
|
bytes: std::ops::Range<usize>,
|
||||||
|
bounds: Rectangle,
|
||||||
|
clip: Rectangle,
|
||||||
|
}
|
||||||
|
struct Recorder {
|
||||||
|
clips: Vec<Rectangle>,
|
||||||
|
transforms: Vec<Transformation>,
|
||||||
|
clusters: Vec<Cluster>,
|
||||||
|
}
|
||||||
|
impl Recorder {
|
||||||
|
fn transform(&self) -> Transformation {
|
||||||
|
*self.transforms.last().unwrap()
|
||||||
|
}
|
||||||
|
fn clip(&self, bounds: Rectangle) -> Rectangle {
|
||||||
|
self.clips
|
||||||
|
.last()
|
||||||
|
.unwrap()
|
||||||
|
.intersection(&(bounds * self.transform()))
|
||||||
|
.unwrap_or(Rectangle::with_size(Size::ZERO))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
impl renderer::Renderer for Recorder {
|
||||||
|
fn start_layer(&mut self, bounds: Rectangle) {
|
||||||
|
self.clips.push(self.clip(bounds));
|
||||||
|
}
|
||||||
|
fn end_layer(&mut self) {
|
||||||
|
self.clips.pop().unwrap();
|
||||||
|
}
|
||||||
|
fn start_transformation(&mut self, transform: Transformation) {
|
||||||
|
self.transforms.push(self.transform() * transform);
|
||||||
|
}
|
||||||
|
fn end_transformation(&mut self) {
|
||||||
|
self.transforms.pop().unwrap();
|
||||||
|
}
|
||||||
|
fn reset(&mut self, bounds: Rectangle) {
|
||||||
|
self.clips = vec![bounds];
|
||||||
|
self.transforms = vec![Transformation::IDENTITY];
|
||||||
|
self.clusters.clear();
|
||||||
|
}
|
||||||
|
fn fill_quad(&mut self, _: renderer::Quad, _: impl Into<Background>) {}
|
||||||
|
fn allocate_image(
|
||||||
|
&mut self,
|
||||||
|
handle: &iced::advanced::image::Handle,
|
||||||
|
callback: impl FnOnce(Result<iced::advanced::image::Allocation, iced::advanced::image::Error>)
|
||||||
|
+ Send
|
||||||
|
+ 'static,
|
||||||
|
) {
|
||||||
|
renderer::Renderer::allocate_image(&mut FontLayout, handle, callback);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
impl shaped::Renderer for Recorder {
|
||||||
|
type Font = Font;
|
||||||
|
type Paragraph = <FontLayout as shaped::Renderer>::Paragraph;
|
||||||
|
type Editor = <FontLayout as shaped::Renderer>::Editor;
|
||||||
|
const ICON_FONT: Font = <FontLayout as shaped::Renderer>::ICON_FONT;
|
||||||
|
const CHECKMARK_ICON: char = <FontLayout as shaped::Renderer>::CHECKMARK_ICON;
|
||||||
|
const ARROW_DOWN_ICON: char = <FontLayout as shaped::Renderer>::ARROW_DOWN_ICON;
|
||||||
|
const SCROLL_UP_ICON: char = <FontLayout as shaped::Renderer>::SCROLL_UP_ICON;
|
||||||
|
const SCROLL_DOWN_ICON: char = <FontLayout as shaped::Renderer>::SCROLL_DOWN_ICON;
|
||||||
|
const SCROLL_LEFT_ICON: char = <FontLayout as shaped::Renderer>::SCROLL_LEFT_ICON;
|
||||||
|
const SCROLL_RIGHT_ICON: char = <FontLayout as shaped::Renderer>::SCROLL_RIGHT_ICON;
|
||||||
|
const ICED_LOGO: char = <FontLayout as shaped::Renderer>::ICED_LOGO;
|
||||||
|
fn default_font(&self) -> Font {
|
||||||
|
shaped::Renderer::default_font(&FontLayout)
|
||||||
|
}
|
||||||
|
fn default_size(&self) -> Pixels {
|
||||||
|
shaped::Renderer::default_size(&FontLayout)
|
||||||
|
}
|
||||||
|
fn fill_paragraph(
|
||||||
|
&mut self,
|
||||||
|
paragraph: &Self::Paragraph,
|
||||||
|
position: Point,
|
||||||
|
_: Color,
|
||||||
|
clip: Rectangle,
|
||||||
|
) {
|
||||||
|
let buffer = paragraph.buffer();
|
||||||
|
let content = buffer
|
||||||
|
.lines
|
||||||
|
.iter()
|
||||||
|
.map(|line| line.text())
|
||||||
|
.collect::<Vec<_>>()
|
||||||
|
.join("\n");
|
||||||
|
let clip = self.clip(clip);
|
||||||
|
for run in buffer.layout_runs() {
|
||||||
|
for glyph in run.glyphs {
|
||||||
|
self.clusters.push(Cluster {
|
||||||
|
paragraph: content.clone(),
|
||||||
|
bytes: glyph.start..glyph.end,
|
||||||
|
bounds: Rectangle {
|
||||||
|
x: position.x + glyph.x + glyph.x_offset * glyph.font_size,
|
||||||
|
y: position.y + run.line_top,
|
||||||
|
width: glyph.w,
|
||||||
|
height: run.line_height,
|
||||||
|
} * self.transform(),
|
||||||
|
clip,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn fill_editor(&mut self, _: &Self::Editor, _: Point, _: Color, _: Rectangle) {}
|
||||||
|
fn fill_text(&mut self, _: shaped::Text, _: Point, _: Color, _: Rectangle) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
const FLAGS: [&str; 5] = ["Stale", "Partial", "Collision", "Detached", "Unverified"];
|
||||||
|
|
||||||
|
fn draw_and_check_flags(
|
||||||
|
content: Element<'_, Message, iced::Theme, Recorder>,
|
||||||
|
width: f32,
|
||||||
|
) -> Vec<String> {
|
||||||
|
let viewport = Rectangle::with_size(Size::new(width, 24.));
|
||||||
|
let mut renderer = Recorder {
|
||||||
|
clips: vec![viewport],
|
||||||
|
transforms: vec![Transformation::IDENTITY],
|
||||||
|
clusters: Vec::new(),
|
||||||
|
};
|
||||||
|
let mut view: Element<'_, Message, iced::Theme, Recorder> =
|
||||||
|
container(content).width(Fill).height(24).clip(true).into();
|
||||||
|
let mut tree = Tree::new(view.as_widget());
|
||||||
|
let node = view.as_widget_mut().layout(
|
||||||
|
&mut tree,
|
||||||
|
&renderer,
|
||||||
|
&layout::Limits::new(Size::ZERO, viewport.size()),
|
||||||
|
);
|
||||||
|
assert_eq!(node.size(), viewport.size());
|
||||||
|
view.as_widget().draw(
|
||||||
|
&tree,
|
||||||
|
&mut renderer,
|
||||||
|
&iced::Theme::Light,
|
||||||
|
&renderer::Style::default(),
|
||||||
|
Layout::new(&node),
|
||||||
|
iced::mouse::Cursor::Unavailable,
|
||||||
|
&viewport,
|
||||||
|
);
|
||||||
|
let mut failures = Vec::new();
|
||||||
|
for flag in FLAGS {
|
||||||
|
for byte in 0..flag.len() {
|
||||||
|
let matching: Vec<_> = renderer
|
||||||
|
.clusters
|
||||||
|
.iter()
|
||||||
|
.filter(|cluster| {
|
||||||
|
cluster
|
||||||
|
.paragraph
|
||||||
|
.find(flag)
|
||||||
|
.is_some_and(|start| cluster.bytes.contains(&(start + byte)))
|
||||||
|
})
|
||||||
|
.collect();
|
||||||
|
if matching.is_empty() {
|
||||||
|
failures.push(format!("missing shaped flag byte: {flag}[{byte}]"));
|
||||||
|
}
|
||||||
|
for cluster in matching {
|
||||||
|
let b = cluster.bounds;
|
||||||
|
let c = cluster.clip;
|
||||||
|
if !(b.x >= c.x - 0.5
|
||||||
|
&& b.y >= c.y - 0.5
|
||||||
|
&& b.x + b.width <= c.x + c.width + 0.5
|
||||||
|
&& b.y + b.height <= c.y + c.height + 0.5)
|
||||||
|
{
|
||||||
|
failures.push(format!("flag {flag} is clipped: glyph {b:?}, clip {c:?}"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
failures
|
||||||
|
}
|
||||||
|
|
||||||
|
fn old_summary(value: String) -> Element<'static, Message, iced::Theme, Recorder> {
|
||||||
|
text(value)
|
||||||
|
.size(12)
|
||||||
|
.wrapping(widget::text::Wrapping::None)
|
||||||
|
.into()
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn all_reference_exceptions_fit_allocated_width_with_wide_alias_and_large_counts() {
|
||||||
|
let mut app = App::with_project(oa_core::Project::empty());
|
||||||
|
let old_key = App::with_project(oa_core::Project::empty()).source_key();
|
||||||
|
assert_ne!(old_key, app.source_key());
|
||||||
|
for alias in ["雨".repeat(32), "W".repeat(32)] {
|
||||||
|
// Unicode aliases are presentation stress: the current lexer admits
|
||||||
|
// ASCII identifiers only. Six-digit totals are within the query's
|
||||||
|
// 250,000-record cap; this does not build that many source records.
|
||||||
|
let old_value = format!(
|
||||||
|
"@{alias} · 100000 declarations · 100000 uses · Stale · Partial · Collision · Detached · Unverified"
|
||||||
|
);
|
||||||
|
app.source_symbols.results = Some(Arc::new(query::Results {
|
||||||
|
stamp: query::QueryStamp {
|
||||||
|
snapshot: old_key,
|
||||||
|
serial: 1,
|
||||||
|
},
|
||||||
|
action: query::Action::References,
|
||||||
|
origin_path: app.source_workspace.active.clone(),
|
||||||
|
origin_offset: 0,
|
||||||
|
origin: None,
|
||||||
|
alias: Some(alias.clone()),
|
||||||
|
scope: query::Scope {
|
||||||
|
closure_complete: false,
|
||||||
|
applied: false,
|
||||||
|
validated: false,
|
||||||
|
included_files: 28,
|
||||||
|
detached_files: 1,
|
||||||
|
unverified_files: 1,
|
||||||
|
issues: Vec::new(),
|
||||||
|
},
|
||||||
|
disposition: query::Disposition::LexicalReferences,
|
||||||
|
definitions: Vec::new(),
|
||||||
|
references: Vec::new(),
|
||||||
|
total_definitions: 100_000,
|
||||||
|
total_references: 100_000,
|
||||||
|
omitted_definitions: 100_000,
|
||||||
|
omitted_references: 100_000,
|
||||||
|
}));
|
||||||
|
for width in [840., 720.] {
|
||||||
|
let positive = draw_and_check_flags(reference_summary(&app), width);
|
||||||
|
assert!(
|
||||||
|
positive.is_empty(),
|
||||||
|
"reserved flags, width {width}, alias {alias:?}: {positive:?}"
|
||||||
|
);
|
||||||
|
// Observe the exact old presentation without predicting font widths.
|
||||||
|
// This is emitted under --nocapture, whether it clips or fits.
|
||||||
|
let old = draw_and_check_flags(old_summary(old_value.clone()), width);
|
||||||
|
println!(
|
||||||
|
"old alias-first summary width={width} alias={alias:?}: {} missing/clipped flag-byte checks; first={:?}",
|
||||||
|
old.len(),
|
||||||
|
old.first()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Deliberate evaluator stress, beyond the production 32-character subject
|
||||||
|
// bound: require the same evaluator to reject a clipped old-style paragraph.
|
||||||
|
// This is not evidence of a production/native overflow at 840 pixels.
|
||||||
|
let stress = format!("@{} · {}", "W".repeat(256), FLAGS.join(" · "));
|
||||||
|
let rejected = draw_and_check_flags(old_summary(stress), 720.);
|
||||||
|
assert!(
|
||||||
|
!rejected.is_empty(),
|
||||||
|
"negative control must detect missing/clipped warning text"
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"path": "crates/oa-desktop/src/app/source_symbols.rs",
|
||||||
|
"oldSha256": "1fb3709bb973e7dcfbcde56054d028e47d770a62f3b7c8b6fac411543a234b7b",
|
||||||
|
"correctedSha256": "aa4f1423e759fdeaf7815d656b40189be176f4e8659f3da50debb5d85ed3af6c",
|
||||||
|
"correctedBytes": 21062
|
||||||
|
}
|
||||||
@@ -0,0 +1,516 @@
|
|||||||
|
//! Current draft navigation, isolated from model application and disk discovery.
|
||||||
|
use super::*;
|
||||||
|
use crate::source_navigation::{self as nav, query};
|
||||||
|
use std::sync::atomic::Ordering;
|
||||||
|
|
||||||
|
fn admission_notice(error: query::AdmissionError) -> String {
|
||||||
|
use nav::symbols::{BuildError, InputProblem, Resource};
|
||||||
|
let (limit, resource) = match error {
|
||||||
|
query::AdmissionError::Index(BuildError::Limit { limit, resource, .. }) => (limit, resource),
|
||||||
|
query::AdmissionError::Outline { error, .. } => (error.limit, match error.resource {
|
||||||
|
language::OutlineResource::SourceBytes => Resource::SourceBytes,
|
||||||
|
language::OutlineResource::Tokens => Resource::Tokens,
|
||||||
|
language::OutlineResource::Declarations => Resource::Records,
|
||||||
|
}),
|
||||||
|
query::AdmissionError::Index(BuildError::Input { problem, .. }) => return match problem {
|
||||||
|
InputProblem::NonCanonicalPath | InputProblem::DuplicateOrCaseCollidingPath =>
|
||||||
|
"Navigation needs distinct relative source paths. Check file names and include paths.".into(),
|
||||||
|
_ => "Navigation could not verify the current source locations. Correct source errors and try again.".into(),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
let unit = match resource {
|
||||||
|
Resource::Files => "loaded files",
|
||||||
|
Resource::SourceBytes => "source bytes",
|
||||||
|
Resource::PathBytes => "bytes in file paths",
|
||||||
|
Resource::Tokens => "source tokens",
|
||||||
|
Resource::Records => "declarations and references",
|
||||||
|
};
|
||||||
|
format!(
|
||||||
|
"Navigation reached its limit of {limit} {unit}. Reduce the loaded source size and try again."
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
impl App {
|
||||||
|
pub fn source_symbol_context(&self) -> nav::SymbolContext {
|
||||||
|
nav::SymbolContext {
|
||||||
|
session: self.source_workspace.session(),
|
||||||
|
path: self.source_workspace.active.clone(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn source_symbol_message(&self, event: nav::SymbolEvent) -> Message {
|
||||||
|
Message::SourceSymbols(self.source_symbol_context(), event)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn source_find_close_message(&self) -> Message {
|
||||||
|
Message::SourceFindClose(self.source_symbol_context(), self.source_find_instance)
|
||||||
|
}
|
||||||
|
pub fn source_key(&self) -> query::SnapshotKey {
|
||||||
|
query::SnapshotKey {
|
||||||
|
workspace: self.source_workspace.session(),
|
||||||
|
revision: self.source_workspace.revision(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub(super) fn with_source_input<T>(&self, use_input: impl FnOnce(query::Input<'_>) -> T) -> T {
|
||||||
|
let files: Vec<_> = self
|
||||||
|
.source_workspace
|
||||||
|
.files
|
||||||
|
.iter()
|
||||||
|
.map(|(path, buffer)| query::DraftFile {
|
||||||
|
path,
|
||||||
|
text: &buffer.text,
|
||||||
|
})
|
||||||
|
.collect();
|
||||||
|
let accepted = self.document.bundle();
|
||||||
|
let validated: Vec<_> = accepted
|
||||||
|
.files
|
||||||
|
.iter()
|
||||||
|
.map(|(path, text)| query::DraftFile { path, text })
|
||||||
|
.collect();
|
||||||
|
use_input(query::Input {
|
||||||
|
key: self.source_key(),
|
||||||
|
entry: &self.source_workspace.entry,
|
||||||
|
files: &files,
|
||||||
|
applied: self.source_workspace.applied,
|
||||||
|
validation: self
|
||||||
|
.source_workspace
|
||||||
|
.applied
|
||||||
|
.then_some(query::ValidatedSources {
|
||||||
|
entry: &accepted.entry,
|
||||||
|
files: &validated,
|
||||||
|
}),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
pub(super) fn source_snapshot_matches(&self, snapshot: &query::Snapshot) -> bool {
|
||||||
|
snapshot.key() == self.source_key()
|
||||||
|
&& self.with_source_input(|input| snapshot.matches(input))
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn source_navigation_available(&self) -> bool {
|
||||||
|
self.page == Page::Text
|
||||||
|
&& !self.source_rename.open()
|
||||||
|
&& !self.busy
|
||||||
|
&& self.pending.is_none()
|
||||||
|
&& self.file_prompt.is_none()
|
||||||
|
&& !self.delete_pending
|
||||||
|
&& self.workflow.is_none()
|
||||||
|
&& !self.hosted.visible
|
||||||
|
&& self.model_menu.is_none()
|
||||||
|
&& self.text_workspace.menu().is_none()
|
||||||
|
&& self.architecture.is_none()
|
||||||
|
&& !self.behavior.has_pending()
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Mounted widget IDs change when another interaction supersedes a reveal.
|
||||||
|
/// A queued focus operation therefore cannot find a subsequently reused editor.
|
||||||
|
pub fn source_editor_id(&self) -> iced::widget::Id {
|
||||||
|
iced::widget::Id::from(format!(
|
||||||
|
"source-editor-{}-{}-{}",
|
||||||
|
self.source_workspace.session(),
|
||||||
|
self.source_workspace.active,
|
||||||
|
self.source_symbols.interaction
|
||||||
|
))
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The reviewed diagram-query union is not integrated into this source yet.
|
||||||
|
/// Its eventual adapter must return the peer's captured chooser message.
|
||||||
|
pub(super) fn text_diagram_usages_message(&self) -> Option<Message> {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn source_reveal_ticket(&self) -> Option<Id> {
|
||||||
|
self.source_symbols
|
||||||
|
.reveal
|
||||||
|
.as_ref()
|
||||||
|
.map(|reveal| reveal.ticket)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub(super) fn source_interaction(&mut self) {
|
||||||
|
self.source_symbols.interaction = Id::new_v4();
|
||||||
|
self.source_symbols.request = None;
|
||||||
|
self.source_symbols.reveal = None;
|
||||||
|
self.source_jump = None;
|
||||||
|
}
|
||||||
|
|
||||||
|
pub(super) fn queue_source_reveal(&mut self, cursor: text_editor::Cursor, select_line: bool) {
|
||||||
|
self.source_jump = Some(cursor);
|
||||||
|
self.source_select_line = select_line;
|
||||||
|
self.source_symbols.reveal = Some(nav::Reveal {
|
||||||
|
ticket: Id::new_v4(),
|
||||||
|
interaction: self.source_symbols.interaction,
|
||||||
|
raw_interaction: self.source_symbols.raw_interaction.load(Ordering::SeqCst),
|
||||||
|
snapshot: self.source_key(),
|
||||||
|
path: self.source_workspace.active.clone(),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
pub(super) fn restore_source_editor_focus(&mut self) {
|
||||||
|
let cursor = self.source_editor.cursor();
|
||||||
|
if self.source_navigation_available()
|
||||||
|
&& nav::exact_cursor(self.source_workspace.text(), cursor)
|
||||||
|
{
|
||||||
|
self.queue_source_reveal(cursor, false);
|
||||||
|
// This ticket restores focus to the live editor, not a saved cursor.
|
||||||
|
// Iced's Cursor omits Word/Line selection kind; moving back to that
|
||||||
|
// lossy value would collapse an actual word/line selection.
|
||||||
|
self.source_jump = None;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub(super) fn source_viewport(&mut self, ticket: Option<Id>) -> Task<Message> {
|
||||||
|
let Some(reveal) = &self.source_symbols.reveal else {
|
||||||
|
return Task::none();
|
||||||
|
};
|
||||||
|
if Some(reveal.ticket) != ticket
|
||||||
|
|| reveal.interaction != self.source_symbols.interaction
|
||||||
|
|| !nav::interaction::is_current(
|
||||||
|
&self.source_symbols.raw_interaction,
|
||||||
|
reveal.raw_interaction,
|
||||||
|
)
|
||||||
|
|| reveal.snapshot != self.source_key()
|
||||||
|
|| reveal.path != self.source_workspace.active
|
||||||
|
|| !self.source_navigation_available()
|
||||||
|
{
|
||||||
|
return Task::none();
|
||||||
|
}
|
||||||
|
let raw_interaction = reveal.raw_interaction;
|
||||||
|
self.source_symbols.reveal = None;
|
||||||
|
if let Some(cursor) = self.source_jump.take() {
|
||||||
|
if !nav::exact_cursor(self.source_workspace.text(), cursor) {
|
||||||
|
return Task::none();
|
||||||
|
}
|
||||||
|
self.source_editor.move_to(cursor);
|
||||||
|
if self.source_select_line && cursor.selection.is_none() {
|
||||||
|
self.source_editor.perform(text_editor::Action::SelectLine);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// A valid ticket with no jump is focus-only. All intentional navigation
|
||||||
|
// still takes the cursor branch above, including explicit line selection.
|
||||||
|
nav::interaction::guarded_focus(
|
||||||
|
self.source_editor_id(),
|
||||||
|
self.source_symbols.raw_interaction.clone(),
|
||||||
|
raw_interaction,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub(super) fn source_symbol_event(&mut self, event: nav::SymbolEvent) -> Task<Message> {
|
||||||
|
if !self.source_navigation_available() {
|
||||||
|
return Task::none();
|
||||||
|
}
|
||||||
|
match event {
|
||||||
|
nav::SymbolEvent::Close => {
|
||||||
|
return self.show_text_drawer(None);
|
||||||
|
}
|
||||||
|
nav::SymbolEvent::Back => {
|
||||||
|
self.source_symbol_back();
|
||||||
|
// A successful Back needs no empty results panel. Retain an
|
||||||
|
// already open panel, or reveal an actionable return notice.
|
||||||
|
if self.source_symbols.notice.is_some() {
|
||||||
|
self.text_workspace
|
||||||
|
.show_drawer(Some(text_workspace::DrawerTab::References));
|
||||||
|
let refs = self.text_workspace.references();
|
||||||
|
return iced::widget::operation::scroll_to(
|
||||||
|
self.text_workspace.reference_scroll_id(),
|
||||||
|
iced::widget::scrollable::AbsoluteOffset {
|
||||||
|
x: 0.,
|
||||||
|
y: refs.scroll_y(),
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
nav::SymbolEvent::Choose {
|
||||||
|
stamp,
|
||||||
|
reference,
|
||||||
|
index,
|
||||||
|
..
|
||||||
|
} => {
|
||||||
|
let Some(results) = self.source_symbols.results.clone() else {
|
||||||
|
return Task::none();
|
||||||
|
};
|
||||||
|
if results.stamp != stamp
|
||||||
|
|| stamp.snapshot != self.source_key()
|
||||||
|
|| self
|
||||||
|
.source_symbols
|
||||||
|
.cache
|
||||||
|
.as_ref()
|
||||||
|
.is_none_or(|cache| !self.source_snapshot_matches(cache))
|
||||||
|
{
|
||||||
|
self.source_symbols.notice =
|
||||||
|
Some("Source changed. Run navigation again for current locations.".into());
|
||||||
|
return Task::none();
|
||||||
|
}
|
||||||
|
let destination = if reference {
|
||||||
|
results
|
||||||
|
.references
|
||||||
|
.get(index)
|
||||||
|
.map(|row| (&row.path, row.position, row.end_position))
|
||||||
|
} else {
|
||||||
|
results
|
||||||
|
.definitions
|
||||||
|
.get(index)
|
||||||
|
.map(|row| (&row.path, row.position, row.end_position))
|
||||||
|
};
|
||||||
|
if let Some((path, start, end)) = destination {
|
||||||
|
self.source_symbol_jump(path, start, end);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
nav::SymbolEvent::Query(action) => return self.start_source_query(action),
|
||||||
|
}
|
||||||
|
Task::none()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn start_source_query(&mut self, action: query::Action) -> Task<Message> {
|
||||||
|
self.text_workspace
|
||||||
|
.show_drawer(Some(text_workspace::DrawerTab::References));
|
||||||
|
if !nav::interaction::is_current(
|
||||||
|
&self.source_symbols.raw_interaction,
|
||||||
|
self.source_symbols.raw_interaction.load(Ordering::SeqCst),
|
||||||
|
) {
|
||||||
|
self.source_symbols.notice = Some("Reopen this workspace to reset navigation.".into());
|
||||||
|
return Task::none();
|
||||||
|
}
|
||||||
|
if self.source_symbols.in_flight.is_some() {
|
||||||
|
self.source_symbols.notice = Some("Navigation is finishing. Try again shortly.".into());
|
||||||
|
return Task::none();
|
||||||
|
}
|
||||||
|
let cursor = self.source_editor.cursor();
|
||||||
|
let Some(offset) = nav::cursor_offset(self.source_workspace.text(), cursor) else {
|
||||||
|
self.source_symbols.notice =
|
||||||
|
Some("Place the cursor on an alias or its @ reference.".into());
|
||||||
|
return Task::none();
|
||||||
|
};
|
||||||
|
self.source_symbols.serial = match self.source_symbols.serial.checked_add(1) {
|
||||||
|
Some(serial) => serial,
|
||||||
|
None => {
|
||||||
|
self.reset_source_navigation_session();
|
||||||
|
self.source_symbols.back.clear();
|
||||||
|
self.source_symbols.cache = None;
|
||||||
|
0
|
||||||
|
}
|
||||||
|
};
|
||||||
|
let request = nav::Request {
|
||||||
|
job: Id::new_v4(),
|
||||||
|
interaction: self.source_symbols.interaction,
|
||||||
|
raw_interaction: self.source_symbols.raw_interaction.load(Ordering::SeqCst),
|
||||||
|
stamp: query::QueryStamp {
|
||||||
|
snapshot: self.source_key(),
|
||||||
|
serial: self.source_symbols.serial,
|
||||||
|
},
|
||||||
|
path: self.source_workspace.active.clone(),
|
||||||
|
offset,
|
||||||
|
cursor,
|
||||||
|
action,
|
||||||
|
};
|
||||||
|
let cache = self
|
||||||
|
.source_symbols
|
||||||
|
.cache
|
||||||
|
.as_ref()
|
||||||
|
.filter(|cache| self.source_snapshot_matches(cache))
|
||||||
|
.cloned();
|
||||||
|
let input = if cache.is_none() {
|
||||||
|
match self
|
||||||
|
.with_source_input(|input| query::admit_owned(input, query::Limits::default()))
|
||||||
|
{
|
||||||
|
Ok(input) => Some(input),
|
||||||
|
Err(error) => {
|
||||||
|
self.source_symbols.notice = Some(admission_notice(error));
|
||||||
|
return Task::none();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
};
|
||||||
|
self.source_symbols.in_flight = Some(request.job);
|
||||||
|
self.source_symbols.request = Some(request.clone());
|
||||||
|
self.source_symbols.display_request = Some(request.clone());
|
||||||
|
self.text_workspace
|
||||||
|
.begin_references(request.stamp, request.path.clone());
|
||||||
|
self.source_symbols.results = None;
|
||||||
|
self.source_symbols.notice = None;
|
||||||
|
let worker = Task::perform(
|
||||||
|
async move {
|
||||||
|
let worker_request = request.clone();
|
||||||
|
let result = tokio::task::spawn_blocking(move || {
|
||||||
|
let snapshot = match cache {
|
||||||
|
Some(cache) => cache,
|
||||||
|
None => Arc::new(
|
||||||
|
input
|
||||||
|
.expect("admitted input for uncached request")
|
||||||
|
.capture()
|
||||||
|
.map_err(admission_notice)?,
|
||||||
|
),
|
||||||
|
};
|
||||||
|
let results = snapshot
|
||||||
|
.query(query::Query {
|
||||||
|
stamp: worker_request.stamp,
|
||||||
|
path: &worker_request.path,
|
||||||
|
byte_offset: worker_request.offset,
|
||||||
|
action: worker_request.action,
|
||||||
|
})
|
||||||
|
.map_err(|error| match error {
|
||||||
|
query::QueryError::ResultEnvelopeLimit => "These result details exceed the display limit. Try literal Find for this alias.".to_owned(),
|
||||||
|
_ => "Navigation could not verify this location. Place the cursor on an alias and try again.".to_owned(),
|
||||||
|
})?;
|
||||||
|
Ok((snapshot, Arc::new(results)))
|
||||||
|
})
|
||||||
|
.await
|
||||||
|
.unwrap_or_else(|error| Err(format!("Navigation task failed: {error}")));
|
||||||
|
nav::Completion { request, result }
|
||||||
|
},
|
||||||
|
Message::SourceSymbolsReady,
|
||||||
|
);
|
||||||
|
Task::batch([
|
||||||
|
worker,
|
||||||
|
iced::widget::operation::scroll_to(
|
||||||
|
self.text_workspace.reference_scroll_id(),
|
||||||
|
iced::widget::scrollable::AbsoluteOffset { x: 0., y: 0. },
|
||||||
|
),
|
||||||
|
])
|
||||||
|
}
|
||||||
|
|
||||||
|
pub(super) fn source_symbols_ready(&mut self, completion: nav::Completion) -> Task<Message> {
|
||||||
|
let request = completion.request;
|
||||||
|
if self.source_symbols.in_flight != Some(request.job) {
|
||||||
|
return Task::none();
|
||||||
|
}
|
||||||
|
self.source_symbols.in_flight = None;
|
||||||
|
let wanted_navigation = self
|
||||||
|
.source_symbols
|
||||||
|
.request
|
||||||
|
.take()
|
||||||
|
.is_some_and(|current| current == request)
|
||||||
|
&& request.interaction == self.source_symbols.interaction
|
||||||
|
&& request.stamp.snapshot == self.source_key()
|
||||||
|
&& nav::interaction::is_current(
|
||||||
|
&self.source_symbols.raw_interaction,
|
||||||
|
request.raw_interaction,
|
||||||
|
)
|
||||||
|
&& request.path == self.source_workspace.active
|
||||||
|
&& request.cursor == self.source_editor.cursor()
|
||||||
|
&& self.source_navigation_available();
|
||||||
|
let wanted_display = self
|
||||||
|
.source_symbols
|
||||||
|
.display_request
|
||||||
|
.as_ref()
|
||||||
|
.is_some_and(|current| current == &request)
|
||||||
|
&& request.stamp.snapshot == self.source_key();
|
||||||
|
if !wanted_display {
|
||||||
|
return Task::none();
|
||||||
|
}
|
||||||
|
match completion.result {
|
||||||
|
Ok((snapshot, results))
|
||||||
|
if self.source_snapshot_matches(&snapshot)
|
||||||
|
&& results.stamp == request.stamp
|
||||||
|
&& results.action == request.action =>
|
||||||
|
{
|
||||||
|
self.source_symbols.cache = Some(snapshot);
|
||||||
|
self.source_symbols.results = Some(results.clone());
|
||||||
|
self.text_workspace.install_reference_files(
|
||||||
|
results.stamp,
|
||||||
|
results
|
||||||
|
.definitions
|
||||||
|
.iter()
|
||||||
|
.map(|row| row.path.clone())
|
||||||
|
.chain(results.references.iter().map(|row| row.path.clone())),
|
||||||
|
);
|
||||||
|
if wanted_navigation
|
||||||
|
&& results.disposition == query::Disposition::Direct
|
||||||
|
&& let Some(row) = results.definitions.first()
|
||||||
|
{
|
||||||
|
self.source_symbol_jump(&row.path, row.position, row.end_position);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Ok(_) => {
|
||||||
|
self.source_symbols.notice = Some("Source changed. Run navigation again.".into())
|
||||||
|
}
|
||||||
|
Err(error) => self.source_symbols.notice = Some(error),
|
||||||
|
}
|
||||||
|
Task::none()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn source_symbol_jump(&mut self, path: &str, start: query::Position, end: query::Position) {
|
||||||
|
let cursor = text_editor::Cursor {
|
||||||
|
position: text_editor::Position {
|
||||||
|
line: start.line,
|
||||||
|
column: start.byte_column,
|
||||||
|
},
|
||||||
|
selection: Some(text_editor::Position {
|
||||||
|
line: end.line,
|
||||||
|
column: end.byte_column,
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
if self
|
||||||
|
.source_workspace
|
||||||
|
.files
|
||||||
|
.get(path)
|
||||||
|
.is_none_or(|buffer| !nav::exact_cursor(&buffer.text, cursor))
|
||||||
|
{
|
||||||
|
self.source_symbols.notice =
|
||||||
|
Some("That source location is no longer available. Run navigation again.".into());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if let Some(buffer) = self
|
||||||
|
.source_workspace
|
||||||
|
.files
|
||||||
|
.get(&self.source_workspace.active)
|
||||||
|
{
|
||||||
|
let origin = nav::HistoryEntry {
|
||||||
|
session: self.source_workspace.session(),
|
||||||
|
path: self.source_workspace.active.clone(),
|
||||||
|
generation: buffer.generation(),
|
||||||
|
cursor: self.source_editor.cursor(),
|
||||||
|
};
|
||||||
|
self.source_symbols
|
||||||
|
.back
|
||||||
|
.retain(|entry| entry.session == origin.session);
|
||||||
|
if self.source_symbols.back.len() == 64 {
|
||||||
|
self.source_symbols.back.remove(0);
|
||||||
|
}
|
||||||
|
self.source_symbols.back.push(origin);
|
||||||
|
}
|
||||||
|
self.source_workspace
|
||||||
|
.switch(path, self.source_editor.cursor());
|
||||||
|
self.show_source_file(false);
|
||||||
|
self.queue_source_reveal(cursor, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn source_symbol_back(&mut self) {
|
||||||
|
while let Some(origin) = self.source_symbols.back.pop() {
|
||||||
|
if origin.session != self.source_workspace.session() {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
let Some(buffer) = self.source_workspace.files.get(&origin.path) else {
|
||||||
|
self.source_symbols.notice = Some("The previous file is no longer loaded.".into());
|
||||||
|
return;
|
||||||
|
};
|
||||||
|
let unchanged = origin.generation == buffer.generation();
|
||||||
|
let cursor = if unchanged {
|
||||||
|
origin.cursor
|
||||||
|
} else if origin.path == self.source_workspace.active {
|
||||||
|
self.source_editor.cursor()
|
||||||
|
} else {
|
||||||
|
buffer.cursor
|
||||||
|
};
|
||||||
|
if !nav::exact_cursor(&buffer.text, cursor) {
|
||||||
|
self.source_symbols.notice = Some(
|
||||||
|
"The previous location changed. Open the file to choose a current position."
|
||||||
|
.into(),
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
self.source_workspace
|
||||||
|
.switch(&origin.path, self.source_editor.cursor());
|
||||||
|
self.show_source_file(false);
|
||||||
|
self.queue_source_reveal(cursor, false);
|
||||||
|
self.source_symbols.notice =
|
||||||
|
(!unchanged).then(|| "This draft changed; its current cursor was restored.".into());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
self.source_symbols.notice = Some("No previous source location in this workspace.".into());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests;
|
||||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"command": [
|
||||||
|
"cargo",
|
||||||
|
"test",
|
||||||
|
"--locked",
|
||||||
|
"--offline",
|
||||||
|
"-p",
|
||||||
|
"oa-desktop",
|
||||||
|
"--bin",
|
||||||
|
"arcadia-studio",
|
||||||
|
"text_workspace::focus_selection_tests",
|
||||||
|
"--",
|
||||||
|
"--nocapture",
|
||||||
|
"--test-threads=1"
|
||||||
|
],
|
||||||
|
"started": "2026-09-13T03:16:10.963840+00:00",
|
||||||
|
"finished": "2026-09-13T03:16:14.567610+00:00",
|
||||||
|
"seconds": 3.6007215999998152,
|
||||||
|
"exitCode": 101,
|
||||||
|
"inputsUnchanged": true,
|
||||||
|
"stdout": {
|
||||||
|
"bytes": 942,
|
||||||
|
"sha256": "d31c5ab32ed7d3e758544758adb39a89c4c97c9ccb53f9c83cd6273e0d669b19"
|
||||||
|
},
|
||||||
|
"stderr": {
|
||||||
|
"bytes": 1015,
|
||||||
|
"sha256": "8c45c4e803b9eea688856e75aea6a1d7d0f960e8304958aca2e91a7407f623fa"
|
||||||
|
},
|
||||||
|
"scope": "Focused evaluator run only; red label describes intended old-production run, not proof of the expected failure cause."
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
Finished `test` profile [unoptimized] target(s) in 2.57s
|
||||||
|
Running unittests src\main.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\target-gnullvm\debug\deps\arcadia_studio-58e30cee1fd51a8b.exe)
|
||||||
|
|
||||||
|
thread 'app::text_workspace::focus_selection_tests::stale_focus_ticket_and_later_raw_input_cannot_steal_focus_or_change_selected_bytes' (6596) panicked at crates\oa-desktop\src\app\text_workspace\focus_selection_tests.rs:457:9:
|
||||||
|
assertion `left == right` failed
|
||||||
|
left: Some("")
|
||||||
|
right: Some("oa_contact")
|
||||||
|
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
||||||
|
|
||||||
|
thread 'app::text_workspace::focus_selection_tests::word_and_line_selection_survive_find_close_and_escape_then_replace_exact_bytes' (9664) panicked at crates\oa-desktop\src\app\text_workspace\focus_selection_tests.rs:379:13:
|
||||||
|
assertion `left == right` failed: selected bytes must survive focus restoration
|
||||||
|
left: Some("")
|
||||||
|
right: Some("oa_contact")
|
||||||
|
error: test failed, to rerun pass `-p oa-desktop --bin arcadia-studio`
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
|
||||||
|
running 4 tests
|
||||||
|
test app::text_workspace::focus_selection_tests::explicit_cursor_navigation_still_moves_and_selects_requested_line ... ok
|
||||||
|
test app::text_workspace::focus_selection_tests::mounted_direct_typing_control_and_old_cursor_roundtrip_discriminate_selection_loss ... ok
|
||||||
|
test app::text_workspace::focus_selection_tests::stale_focus_ticket_and_later_raw_input_cannot_steal_focus_or_change_selected_bytes ... FAILED
|
||||||
|
test app::text_workspace::focus_selection_tests::word_and_line_selection_survive_find_close_and_escape_then_replace_exact_bytes ... FAILED
|
||||||
|
|
||||||
|
failures:
|
||||||
|
|
||||||
|
failures:
|
||||||
|
app::text_workspace::focus_selection_tests::stale_focus_ticket_and_later_raw_input_cannot_steal_focus_or_change_selected_bytes
|
||||||
|
app::text_workspace::focus_selection_tests::word_and_line_selection_survive_find_close_and_escape_then_replace_exact_bytes
|
||||||
|
|
||||||
|
test result: FAILED. 2 passed; 2 failed; 0 ignored; 0 measured; 859 filtered out; finished in 0.19s
|
||||||
|
|
||||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"command": [
|
||||||
|
"cargo",
|
||||||
|
"test",
|
||||||
|
"--locked",
|
||||||
|
"--offline",
|
||||||
|
"-p",
|
||||||
|
"oa-desktop",
|
||||||
|
"--bin",
|
||||||
|
"arcadia-studio",
|
||||||
|
"text_workspace::focus_selection_tests",
|
||||||
|
"--",
|
||||||
|
"--nocapture",
|
||||||
|
"--test-threads=1"
|
||||||
|
],
|
||||||
|
"started": "2026-09-13T03:16:36.205020+00:00",
|
||||||
|
"finished": "2026-09-13T03:17:54.177014+00:00",
|
||||||
|
"seconds": 77.9678075999982,
|
||||||
|
"exitCode": 0,
|
||||||
|
"inputsUnchanged": true,
|
||||||
|
"stdout": {
|
||||||
|
"bytes": 650,
|
||||||
|
"sha256": "6f19f24e2fa37db4fc95c9b2d11b65e420299c6c6f90e4657e7e8e328b326fa0"
|
||||||
|
},
|
||||||
|
"stderr": {
|
||||||
|
"bytes": 280,
|
||||||
|
"sha256": "fd27fce4cf7372453e35ca9a241f7d597a66e90d93b4b7a5bc81c7a53370a198"
|
||||||
|
},
|
||||||
|
"scope": "Focused evaluator run only; red label describes intended old-production run, not proof of the expected failure cause."
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
Compiling oa-desktop v0.2.0 (C:\ar-text-9e8r6t\crates\oa-desktop)
|
||||||
|
Finished `test` profile [unoptimized] target(s) in 1m 16s
|
||||||
|
Running unittests src\main.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\target-gnullvm\debug\deps\arcadia_studio-58e30cee1fd51a8b.exe)
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
|
||||||
|
running 4 tests
|
||||||
|
test app::text_workspace::focus_selection_tests::explicit_cursor_navigation_still_moves_and_selects_requested_line ... ok
|
||||||
|
test app::text_workspace::focus_selection_tests::mounted_direct_typing_control_and_old_cursor_roundtrip_discriminate_selection_loss ... ok
|
||||||
|
test app::text_workspace::focus_selection_tests::stale_focus_ticket_and_later_raw_input_cannot_steal_focus_or_change_selected_bytes ... ok
|
||||||
|
test app::text_workspace::focus_selection_tests::word_and_line_selection_survive_find_close_and_escape_then_replace_exact_bytes ... ok
|
||||||
|
|
||||||
|
test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 859 filtered out; finished in 0.31s
|
||||||
|
|
||||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"command": [
|
||||||
|
"cargo",
|
||||||
|
"test",
|
||||||
|
"--locked",
|
||||||
|
"--offline",
|
||||||
|
"-p",
|
||||||
|
"oa-desktop",
|
||||||
|
"--bin",
|
||||||
|
"arcadia-studio",
|
||||||
|
"text_workspace::focus_selection_tests",
|
||||||
|
"--",
|
||||||
|
"--nocapture",
|
||||||
|
"--test-threads=1"
|
||||||
|
],
|
||||||
|
"started": "2026-09-13T03:04:50.599029+00:00",
|
||||||
|
"finished": "2026-09-13T03:08:47.160910+00:00",
|
||||||
|
"seconds": 236.56363180000335,
|
||||||
|
"exitCode": 101,
|
||||||
|
"inputsUnchanged": true,
|
||||||
|
"stdout": {
|
||||||
|
"bytes": 1195,
|
||||||
|
"sha256": "1c2225bdf514b4d1d33817507a8fc9a37e21c272af9e4470bfbfe04e0d54e534"
|
||||||
|
},
|
||||||
|
"stderr": {
|
||||||
|
"bytes": 1540,
|
||||||
|
"sha256": "7fb0df00e17a8731f6a86fe806363462f51b312615e8f51e60f5c50a5ab0fe06"
|
||||||
|
},
|
||||||
|
"scope": "Focused evaluator run only; red label describes intended old-production run, not proof of the expected failure cause."
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
Compiling oa-desktop v0.2.0 (C:\ar-text-9e8r6t\crates\oa-desktop)
|
||||||
|
Finished `test` profile [unoptimized] target(s) in 3m 55s
|
||||||
|
Running unittests src\main.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\target-gnullvm\debug\deps\arcadia_studio-58e30cee1fd51a8b.exe)
|
||||||
|
|
||||||
|
thread 'app::text_workspace::focus_selection_tests::explicit_cursor_navigation_still_moves_and_selects_requested_line' (2748) panicked at crates\oa-desktop\src\app\text_workspace\focus_selection_tests.rs:151:27:
|
||||||
|
index out of bounds: the len is 1 but the index is 1
|
||||||
|
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
||||||
|
|
||||||
|
thread 'app::text_workspace::focus_selection_tests::mounted_direct_typing_control_and_old_cursor_roundtrip_discriminate_selection_loss' (6192) panicked at crates\oa-desktop\src\app\text_workspace\focus_selection_tests.rs:151:27:
|
||||||
|
index out of bounds: the len is 1 but the index is 1
|
||||||
|
|
||||||
|
thread 'app::text_workspace::focus_selection_tests::stale_focus_ticket_and_later_raw_input_cannot_steal_focus_or_change_selected_bytes' (1988) panicked at crates\oa-desktop\src\app\text_workspace\focus_selection_tests.rs:151:27:
|
||||||
|
index out of bounds: the len is 1 but the index is 1
|
||||||
|
|
||||||
|
thread 'app::text_workspace::focus_selection_tests::word_and_line_selection_survive_find_close_and_escape_then_replace_exact_bytes' (8076) panicked at crates\oa-desktop\src\app\text_workspace\focus_selection_tests.rs:151:27:
|
||||||
|
index out of bounds: the len is 1 but the index is 1
|
||||||
|
error: test failed, to rerun pass `-p oa-desktop --bin arcadia-studio`
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
running 4 tests
|
||||||
|
test app::text_workspace::focus_selection_tests::explicit_cursor_navigation_still_moves_and_selects_requested_line ... FAILED
|
||||||
|
test app::text_workspace::focus_selection_tests::mounted_direct_typing_control_and_old_cursor_roundtrip_discriminate_selection_loss ... FAILED
|
||||||
|
test app::text_workspace::focus_selection_tests::stale_focus_ticket_and_later_raw_input_cannot_steal_focus_or_change_selected_bytes ... FAILED
|
||||||
|
test app::text_workspace::focus_selection_tests::word_and_line_selection_survive_find_close_and_escape_then_replace_exact_bytes ... FAILED
|
||||||
|
|
||||||
|
failures:
|
||||||
|
|
||||||
|
failures:
|
||||||
|
app::text_workspace::focus_selection_tests::explicit_cursor_navigation_still_moves_and_selects_requested_line
|
||||||
|
app::text_workspace::focus_selection_tests::mounted_direct_typing_control_and_old_cursor_roundtrip_discriminate_selection_loss
|
||||||
|
app::text_workspace::focus_selection_tests::stale_focus_ticket_and_later_raw_input_cannot_steal_focus_or_change_selected_bytes
|
||||||
|
app::text_workspace::focus_selection_tests::word_and_line_selection_survive_find_close_and_escape_then_replace_exact_bytes
|
||||||
|
|
||||||
|
test result: FAILED. 0 passed; 4 failed; 0 ignored; 0 measured; 859 filtered out; finished in 0.28s
|
||||||
|
|
||||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"command": [
|
||||||
|
"cargo",
|
||||||
|
"test",
|
||||||
|
"--locked",
|
||||||
|
"--offline",
|
||||||
|
"-p",
|
||||||
|
"oa-desktop",
|
||||||
|
"--bin",
|
||||||
|
"arcadia-studio",
|
||||||
|
"text_workspace::focus_selection_tests",
|
||||||
|
"--",
|
||||||
|
"--nocapture",
|
||||||
|
"--test-threads=1"
|
||||||
|
],
|
||||||
|
"started": "2026-09-13T03:12:28.053574+00:00",
|
||||||
|
"finished": "2026-09-13T03:15:12.064865+00:00",
|
||||||
|
"seconds": 164.01172979999683,
|
||||||
|
"exitCode": 101,
|
||||||
|
"inputsUnchanged": true,
|
||||||
|
"stdout": {
|
||||||
|
"bytes": 942,
|
||||||
|
"sha256": "9bf339fc98af88adb0ad52d27109eabc79118c2fabc8d0f81c693b68385bc8ef"
|
||||||
|
},
|
||||||
|
"stderr": {
|
||||||
|
"bytes": 1085,
|
||||||
|
"sha256": "99c461d077c060326f70e815eccc36439f5f6b9a9377a71f9af9dc7e3900986d"
|
||||||
|
},
|
||||||
|
"scope": "Focused evaluator run only; red label describes intended old-production run, not proof of the expected failure cause."
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
Compiling oa-desktop v0.2.0 (C:\ar-text-9e8r6t\crates\oa-desktop)
|
||||||
|
Finished `test` profile [unoptimized] target(s) in 2m 42s
|
||||||
|
Running unittests src\main.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\target-gnullvm\debug\deps\arcadia_studio-58e30cee1fd51a8b.exe)
|
||||||
|
|
||||||
|
thread 'app::text_workspace::focus_selection_tests::stale_focus_ticket_and_later_raw_input_cannot_steal_focus_or_change_selected_bytes' (3960) panicked at crates\oa-desktop\src\app\text_workspace\focus_selection_tests.rs:457:9:
|
||||||
|
assertion `left == right` failed
|
||||||
|
left: Some("")
|
||||||
|
right: Some("oa_contact")
|
||||||
|
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
||||||
|
|
||||||
|
thread 'app::text_workspace::focus_selection_tests::word_and_line_selection_survive_find_close_and_escape_then_replace_exact_bytes' (2596) panicked at crates\oa-desktop\src\app\text_workspace\focus_selection_tests.rs:379:13:
|
||||||
|
assertion `left == right` failed: selected bytes must survive focus restoration
|
||||||
|
left: Some("")
|
||||||
|
right: Some("oa_contact")
|
||||||
|
error: test failed, to rerun pass `-p oa-desktop --bin arcadia-studio`
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
|
||||||
|
running 4 tests
|
||||||
|
test app::text_workspace::focus_selection_tests::explicit_cursor_navigation_still_moves_and_selects_requested_line ... ok
|
||||||
|
test app::text_workspace::focus_selection_tests::mounted_direct_typing_control_and_old_cursor_roundtrip_discriminate_selection_loss ... ok
|
||||||
|
test app::text_workspace::focus_selection_tests::stale_focus_ticket_and_later_raw_input_cannot_steal_focus_or_change_selected_bytes ... FAILED
|
||||||
|
test app::text_workspace::focus_selection_tests::word_and_line_selection_survive_find_close_and_escape_then_replace_exact_bytes ... FAILED
|
||||||
|
|
||||||
|
failures:
|
||||||
|
|
||||||
|
failures:
|
||||||
|
app::text_workspace::focus_selection_tests::stale_focus_ticket_and_later_raw_input_cannot_steal_focus_or_change_selected_bytes
|
||||||
|
app::text_workspace::focus_selection_tests::word_and_line_selection_survive_find_close_and_escape_then_replace_exact_bytes
|
||||||
|
|
||||||
|
test result: FAILED. 2 passed; 2 failed; 0 ignored; 0 measured; 859 filtered out; finished in 0.29s
|
||||||
|
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
"""Preserve the Find regression sequence and verify exact red/green input deltas."""
|
||||||
|
from pathlib import Path
|
||||||
|
import hashlib
|
||||||
|
import json
|
||||||
|
import shutil
|
||||||
|
|
||||||
|
base = Path(__file__).resolve().parent
|
||||||
|
root = base.parents[1]
|
||||||
|
dest = root / 'harness/experiments/text-find-selection-20260913'
|
||||||
|
dest.mkdir()
|
||||||
|
labels = ['focus-red-1', 'focus-red-2', 'focus-green-1', 'focus-green-2']
|
||||||
|
records = []
|
||||||
|
def keep(path, relative):
|
||||||
|
raw = path.read_bytes()
|
||||||
|
target = dest / relative
|
||||||
|
target.parent.mkdir(parents=True, exist_ok=True)
|
||||||
|
assert not target.exists()
|
||||||
|
shutil.copyfile(path, target)
|
||||||
|
assert target.read_bytes() == raw
|
||||||
|
records.append({'path': relative, 'bytes': len(raw), 'sha256': hashlib.sha256(raw).hexdigest()})
|
||||||
|
inputs = {}
|
||||||
|
for label in labels:
|
||||||
|
inputs[label] = json.loads((base / label / 'inputs.json').read_text())['files']
|
||||||
|
receipt = json.loads((base / label / 'result.json').read_text())
|
||||||
|
assert receipt['inputsUnchanged']
|
||||||
|
for stream in ['stdout', 'stderr']:
|
||||||
|
raw = (base / label / (stream + '.log')).read_bytes()
|
||||||
|
assert receipt[stream] == {'bytes': len(raw), 'sha256': hashlib.sha256(raw).hexdigest()}
|
||||||
|
for path in sorted((base / label).iterdir()):
|
||||||
|
if path.is_file():
|
||||||
|
keep(path, label + '/' + path.name)
|
||||||
|
def differences(a, b):
|
||||||
|
assert inputs[a].keys() == inputs[b].keys()
|
||||||
|
return [name for name in inputs[a] if inputs[a][name] != inputs[b][name]]
|
||||||
|
red_fixture = differences('focus-red-1', 'focus-red-2')
|
||||||
|
fix = differences('focus-red-2', 'focus-green-2')
|
||||||
|
retry = differences('focus-green-1', 'focus-green-2')
|
||||||
|
assert red_fixture == ['crates/oa-desktop/src/app/text_workspace/focus_selection_tests.rs']
|
||||||
|
assert fix == ['crates/oa-desktop/src/app/source_symbols.rs']
|
||||||
|
assert retry == []
|
||||||
|
for name in ['focus_regression.py', 'prepare_focus_red.py', 'archive_focus.py']:
|
||||||
|
keep(base / name, 'helpers/' + name)
|
||||||
|
keep(base / 'focus-corrected-source/manifest.json', 'corrected/manifest.json')
|
||||||
|
keep(base / 'focus-corrected-source/source_symbols.rs', 'corrected/source_symbols.rs')
|
||||||
|
manifest = {'scope': 'Historical Find-only regression sequence. Red1 fixture failure and green1 cache rejection are not correction acceptance. Red2 vs green2 differs only in production source_symbols.rs.', 'redFixtureDelta': red_fixture, 'redGreenDelta': fix, 'greenRetryByteDelta': retry, 'files': records}
|
||||||
|
with (dest / 'manifest.json').open('x', encoding='utf-8', newline='\n') as stream:
|
||||||
|
json.dump(manifest, stream, indent=2)
|
||||||
|
stream.write('\n')
|
||||||
|
print(json.dumps({'directory': str(dest), 'payloads': len(records), 'bytes': sum(r['bytes'] for r in records), 'manifestSha256': hashlib.sha256((dest / 'manifest.json').read_bytes()).hexdigest()}))
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
"""Capture one focused regression run; do not treat expected failure as acceptance."""
|
||||||
|
from pathlib import Path
|
||||||
|
from datetime import datetime, timezone
|
||||||
|
import hashlib
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
import zipfile
|
||||||
|
|
||||||
|
root = Path(__file__).resolve().parents[2]
|
||||||
|
label = sys.argv[1]
|
||||||
|
assert re.fullmatch(r'focus-(?:red|green)-[0-9]+', label)
|
||||||
|
assert os.environ.get('CARGO_BUILD_JOBS') == '1'
|
||||||
|
dest = Path(__file__).resolve().parent / label
|
||||||
|
dest.mkdir()
|
||||||
|
scopes = ['Cargo.toml', 'Cargo.lock', 'crates', 'build', '.cargo', 'docs', 'examples', 'harness/fixtures']
|
||||||
|
def names():
|
||||||
|
raw = subprocess.check_output(['git', 'ls-files', '-z', '--cached', '--others', '--exclude-standard', '--', *scopes], cwd=root)
|
||||||
|
return sorted(set(s.decode() for s in raw.split(b'\0') if s))
|
||||||
|
def identity(path):
|
||||||
|
raw = path.read_bytes()
|
||||||
|
return {'bytes': len(raw), 'sha256': hashlib.sha256(raw).hexdigest()}
|
||||||
|
inputs = {name: identity(root / name) for name in names()}
|
||||||
|
with zipfile.ZipFile(dest / 'inputs.zip', 'x', zipfile.ZIP_DEFLATED) as archive:
|
||||||
|
for name in inputs:
|
||||||
|
archive.write(root / name, name)
|
||||||
|
def save(name, value):
|
||||||
|
with (dest / name).open('x', encoding='utf-8', newline='\n') as stream:
|
||||||
|
json.dump(value, stream, indent=2)
|
||||||
|
stream.write('\n')
|
||||||
|
save('inputs.json', {'baseCommit': subprocess.check_output(['git', 'rev-parse', 'HEAD'], cwd=root).decode().strip(), 'files': inputs, 'archive': identity(dest / 'inputs.zip')})
|
||||||
|
command = ['cargo', 'test', '--locked', '--offline', '-p', 'oa-desktop', '--bin', 'arcadia-studio', 'text_workspace::focus_selection_tests', '--', '--nocapture', '--test-threads=1']
|
||||||
|
start = datetime.now(timezone.utc).isoformat()
|
||||||
|
timer = time.perf_counter()
|
||||||
|
print(json.dumps({'command': command, 'started': start, 'label': label}), flush=True)
|
||||||
|
with (dest / 'stdout.log').open('xb') as out, (dest / 'stderr.log').open('xb') as err:
|
||||||
|
code = subprocess.run(command, cwd=root, stdout=out, stderr=err).returncode
|
||||||
|
unchanged = names() == list(inputs) and all(identity(root / name) == data for name, data in inputs.items())
|
||||||
|
receipt = {'command': command, 'started': start, 'finished': datetime.now(timezone.utc).isoformat(), 'seconds': time.perf_counter()-timer, 'exitCode': code, 'inputsUnchanged': unchanged, 'stdout': identity(dest / 'stdout.log'), 'stderr': identity(dest / 'stderr.log'), 'scope': 'Focused evaluator run only; red label describes intended old-production run, not proof of the expected failure cause.'}
|
||||||
|
save('result.json', receipt)
|
||||||
|
print(json.dumps(receipt), flush=True)
|
||||||
|
print((dest / 'stdout.log').read_text(encoding='utf-8', errors='replace')[-6000:], flush=True)
|
||||||
|
print((dest / 'stderr.log').read_text(encoding='utf-8', errors='replace')[-6000:], flush=True)
|
||||||
|
sys.exit(code or (0 if unchanged else 1))
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
"""Preserve corrected production bytes, then substitute exact prior production for a red run."""
|
||||||
|
from pathlib import Path
|
||||||
|
import hashlib
|
||||||
|
import json
|
||||||
|
import zipfile
|
||||||
|
base = Path(__file__).resolve().parent
|
||||||
|
root = base.parents[1]
|
||||||
|
rel = 'crates/oa-desktop/src/app/source_symbols.rs'
|
||||||
|
destination = base / 'focus-corrected-source'
|
||||||
|
destination.mkdir()
|
||||||
|
corrected = (root / rel).read_bytes()
|
||||||
|
with zipfile.ZipFile(base / 'attempt-4/inputs.zip') as archive:
|
||||||
|
old = archive.read(rel)
|
||||||
|
assert hashlib.sha256(old).hexdigest() == '1fb3709bb973e7dcfbcde56054d028e47d770a62f3b7c8b6fac411543a234b7b'
|
||||||
|
assert corrected != old and b'focus-only' in corrected
|
||||||
|
(destination / 'source_symbols.rs').write_bytes(corrected)
|
||||||
|
record = {'path': rel, 'oldSha256': hashlib.sha256(old).hexdigest(), 'correctedSha256': hashlib.sha256(corrected).hexdigest(), 'correctedBytes': len(corrected)}
|
||||||
|
(destination / 'manifest.json').write_text(json.dumps(record, indent=2)+'\n', encoding='utf-8')
|
||||||
|
(root / rel).write_bytes(old)
|
||||||
|
assert (root / rel).read_bytes() == old
|
||||||
|
print(json.dumps(record), flush=True)
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
{
|
||||||
|
"scope": "Historical Find-only regression sequence. Red1 fixture failure and green1 cache rejection are not correction acceptance. Red2 vs green2 differs only in production source_symbols.rs.",
|
||||||
|
"redFixtureDelta": [
|
||||||
|
"crates/oa-desktop/src/app/text_workspace/focus_selection_tests.rs"
|
||||||
|
],
|
||||||
|
"redGreenDelta": [
|
||||||
|
"crates/oa-desktop/src/app/source_symbols.rs"
|
||||||
|
],
|
||||||
|
"greenRetryByteDelta": [],
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"path": "focus-red-1/inputs.json",
|
||||||
|
"bytes": 90651,
|
||||||
|
"sha256": "b721bca1f3bcc73d59daa040712892f510ba1d080d81ea7068eba61161e11f39"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "focus-red-1/inputs.zip",
|
||||||
|
"bytes": 2192609,
|
||||||
|
"sha256": "19063c2d937cd659dc97f6b9a6e61f1f17069fd6ec87613bfdf8159687901fab"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "focus-red-1/result.json",
|
||||||
|
"bytes": 789,
|
||||||
|
"sha256": "ae1172d2d4469c5c2424d5b057e3780e9d857165ae6e632dcdcd2d250cbac082"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "focus-red-1/stderr.log",
|
||||||
|
"bytes": 1540,
|
||||||
|
"sha256": "7fb0df00e17a8731f6a86fe806363462f51b312615e8f51e60f5c50a5ab0fe06"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "focus-red-1/stdout.log",
|
||||||
|
"bytes": 1195,
|
||||||
|
"sha256": "1c2225bdf514b4d1d33817507a8fc9a37e21c272af9e4470bfbfe04e0d54e534"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "focus-red-2/inputs.json",
|
||||||
|
"bytes": 90651,
|
||||||
|
"sha256": "762480875e82147ac65fd01a1aaa7af917bd063653acc819d2b2b694858f1e41"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "focus-red-2/inputs.zip",
|
||||||
|
"bytes": 2193026,
|
||||||
|
"sha256": "bb8f9b1be06aaef8eabfcb1ab6f69cf380d2ff2d3601dac853c46e69926a1b6c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "focus-red-2/result.json",
|
||||||
|
"bytes": 788,
|
||||||
|
"sha256": "fed836a961ba3cf81377253411d11a79a600123c553f872695cd5fe25087b633"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "focus-red-2/stderr.log",
|
||||||
|
"bytes": 1085,
|
||||||
|
"sha256": "99c461d077c060326f70e815eccc36439f5f6b9a9377a71f9af9dc7e3900986d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "focus-red-2/stdout.log",
|
||||||
|
"bytes": 942,
|
||||||
|
"sha256": "9bf339fc98af88adb0ad52d27109eabc79118c2fabc8d0f81c693b68385bc8ef"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "focus-green-1/inputs.json",
|
||||||
|
"bytes": 90651,
|
||||||
|
"sha256": "4189c0b40b9fd1d764e9f0b786b8cff7059b5fb7361d220209af5058101f20aa"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "focus-green-1/inputs.zip",
|
||||||
|
"bytes": 2193207,
|
||||||
|
"sha256": "cfde0f2869270e4bce50ca9e242873172d9329292e63fc89c5cb8b08b0564e2c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "focus-green-1/result.json",
|
||||||
|
"bytes": 788,
|
||||||
|
"sha256": "7c46331b0aa2609eb4aadaa327d45b601292d7405c5bd5e5b8d3377bca131e3e"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "focus-green-1/stderr.log",
|
||||||
|
"bytes": 1015,
|
||||||
|
"sha256": "8c45c4e803b9eea688856e75aea6a1d7d0f960e8304958aca2e91a7407f623fa"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "focus-green-1/stdout.log",
|
||||||
|
"bytes": 942,
|
||||||
|
"sha256": "d31c5ab32ed7d3e758544758adb39a89c4c97c9ccb53f9c83cd6273e0d669b19"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "focus-green-2/inputs.json",
|
||||||
|
"bytes": 90651,
|
||||||
|
"sha256": "86e43a980c3afa8c7bfc1973d9ad4fe523157cab67f008622de2a126f7f0e9a6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "focus-green-2/inputs.zip",
|
||||||
|
"bytes": 2193207,
|
||||||
|
"sha256": "486c0e0e43c0123c27efe6a6b33fd27a4dff97ca631a6b066d654e6be745ef76"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "focus-green-2/result.json",
|
||||||
|
"bytes": 783,
|
||||||
|
"sha256": "ee29d1585c9d13a30e3a18731ff3fa1e9c5ce29305a6dbb14cdf60353d736462"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "focus-green-2/stderr.log",
|
||||||
|
"bytes": 280,
|
||||||
|
"sha256": "fd27fce4cf7372453e35ca9a241f7d597a66e90d93b4b7a5bc81c7a53370a198"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "focus-green-2/stdout.log",
|
||||||
|
"bytes": 650,
|
||||||
|
"sha256": "6f19f24e2fa37db4fc95c9b2d11b65e420299c6c6f90e4657e7e8e328b326fa0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "helpers/focus_regression.py",
|
||||||
|
"bytes": 2794,
|
||||||
|
"sha256": "f342a159f0b307a07ac6957e3c3b7d71eb6f83a2a4eb6907ca2e9348a5958cc1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "helpers/prepare_focus_red.py",
|
||||||
|
"bytes": 1062,
|
||||||
|
"sha256": "ad93ecb06c6721797c772398e73f9fd08b144f05e8305c0e287a1de34ccd36f6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "helpers/archive_focus.py",
|
||||||
|
"bytes": 2691,
|
||||||
|
"sha256": "a1e6e0a764503f1f718c96435099e5123964a1cb5dfac93535ea22e38e5ac234"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "corrected/manifest.json",
|
||||||
|
"bytes": 265,
|
||||||
|
"sha256": "f9eac4ae9255e9a8588e1605094e8502c0f7582555be8fb659d9c64194cb2e3d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "corrected/source_symbols.rs",
|
||||||
|
"bytes": 21062,
|
||||||
|
"sha256": "aa4f1423e759fdeaf7815d656b40189be176f4e8659f3da50debb5d85ed3af6c"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
# Attempt 5: independent evidence audit
|
||||||
|
|
||||||
|
**PASS — no binding or result discrepancy found.** Read-only audit of `C:/ar-text-9e8r6t/.local/text-workspace-gates-20260912/attempt-5`. No builds, retained helpers, GUI actions, source edits or shared-target access were performed. Trial 2/native acceptance remains separate and pending.
|
||||||
|
|
||||||
|
- All 526 input ZIP members have unique exact names and match the input manifest's byte sizes/SHA-256 values; reading every member also verifies its ZIP CRC. ZIP SHA matches the manifest. Current read-only Git inventory for the gate's declared scopes matches those same 526 names, and every current file matches the captured raw bytes.
|
||||||
|
- All five final formatted hashes in `departure-selection-review.md` match both the input archive and current source. The archive captures uncommitted integrated inputs based on CBC; `baseCommit` is not a claim that those changed bytes are committed source.
|
||||||
|
- All seven receipts report exit 0 and unchanged inputs. Raw stdout/stderr hashes match each receipt. Input/environment capture precedes the serial, nonoverlapping Clippy→membership→Text→selection→full suite→timing→GUI sequence; recorded durations and completion timestamp agree. Strict Clippy uses all targets and `-D warnings`.
|
||||||
|
- Raw membership contains exactly 874 distinct tests, all required names and 20 Guard tests. Every listed test has an outcome in the full raw stdout: 871 pass and three explicitly ignored manual experiments. Focused Text has 30 passes; the overlapping selection filter has 58. No counts are added together as independent coverage.
|
||||||
|
- The separately requested ignored Confirm timing test passes with five measured samples. Its App-update median is 38.048ms; the direct ordinary App-sync median is 831.4022ms. These Windows development measurements exclude returned Task polling/native rendering and do not establish end-to-end interaction latency. The two other ignored manual experiments were not executed by this attempt.
|
||||||
|
- The GUI receipt's artifact object exactly matches the sole executable `arcadia-studio` record in raw Cargo JSON; final build status is successful. It identifies the worktree source, development profile (opt-level 0, debuginfo 0, debug assertions and overflow checks enabled), and `fresh: false`. The locally preserved executable independently matches 114,171,904 bytes and SHA-256 `4a1d09c108fd5062f01bc7059064fa7dc839e03d0cc2a3b1e12f8b02c8115a24`. The shared-target executable was not read or touched.
|
||||||
|
|
||||||
|
GUI build ended 2026-09-13 03:41:56.842652Z; completion receipt is 03:42:01.051061Z. Environment records rustc 1.98.1/Cargo 1.98.1, x86_64-pc-windows-gnullvm and one compiler job. The receipt captures selected environment variables, not a hermetic machine image. This audit verifies retained evidence and current source binding; it does not rerun tests, verify packaging or accept the live native trial.
|
||||||
|
|
||||||
|
## Principal bindings
|
||||||
|
|
||||||
|
- `inputs.json` — `8b2f9ae76edbb808549f4d86a4e36aa3b64ef368de78e841090c7d7c34d62211`.
|
||||||
|
- `inputs.zip` — 2,197,940 bytes; `83ff861fc27b7aead159fde12e6fd881ba6c3c02b29e7bf10bbc12c60b7e6067`.
|
||||||
|
- `environment.json` — `d0a796a4fc328845ea916382bceabf9c80da3002e1559307a92a3fda6dfb7d33`.
|
||||||
|
- `complete.json` — `5492eeaf82d48f7b9322602659b0012d9cba0735374aa3ddd8d7793f9a5fc3f8`.
|
||||||
|
- `clippy-result.json` — `7067e3df6585a7e2a3e56f2c4edd8870bdb0c7f3ed2f7ed524c158b4d2d95bb0`.
|
||||||
|
- `membership-result.json` — `638e58424ccb7a09909b567addb357f5dbb3ee7ea816f0d25024a83883c37854`.
|
||||||
|
- `focused-result.json` — `9d3039748fafa25c722a62721071040ba72265c3d349c10d71c689dcd24bcac7`.
|
||||||
|
- `selection-result.json` — `96651aa4d4374ecbf9e660435801f058325a9b0ea60b26aa842f23629d98136d`.
|
||||||
|
- `tests-result.json` — `f39b6906c8cbbfc8af2de9eb88c568786c585da51ec5e0f72b2facf4b1954141`.
|
||||||
|
- `timing-result.json` — `caef9fd294cb0e6274bdd38839b0d8ae038cefab6d4495e16efeb5e37b8f677a`.
|
||||||
|
- `gui-result.json` — `bb7f5060faa834031a9d301a627f1a80b4c4bf7604dcd48a385730699c3055da`.
|
||||||
|
- Prior five-file review — `departure-selection-review.md`, SHA-256 `f872c511eab74ca05d35b97ad31ee1a879c42717e40a698959501b6f96546dac`.
|
||||||
+21
@@ -0,0 +1,21 @@
|
|||||||
|
# Escape dismissal correction: independent static review
|
||||||
|
|
||||||
|
**PASS — no actionable mismatch found within the bounded correction.** Reviewed formatted `C:/ar-text-9e8r6t` source against exact attempt-5 captured files and the interaction contract. No builds, tests, native actions or production edits performed. Parent retains execution/acceptance ownership.
|
||||||
|
|
||||||
|
The production diff is confined to the ordinary `Message::Escape` arm at `app.rs:1996`: when Text navigation is admitted and Find is open, it closes Find without calling `show_drawer(None)`. That preserves drawer visibility and visit. A later Escape with only the drawer open uses the existing hide operation, retaining presentation data while rotating the visit and revoking old row authority. Both admitted paths keep the existing focus-only restoration, preserving live Word/Line selection rather than roundtripping endpoints.
|
||||||
|
|
||||||
|
The existing Text-popup router returns before this arm; its captured-Escape bridge remains disabled while the popup owns the key. Architecture, model menu, busy/modal routing and source-rename dismissal likewise remain unchanged and return before ordinary Text dismissal where applicable (`app.rs:1232,1287,1324,1393,1455`). Thus this delta does not bypass their input priority. The contract's menu→Find→drawer sequence and Find-specific retained visit/data behavior match this implementation.
|
||||||
|
|
||||||
|
Generic source interaction still invalidates pending navigation/reveal before an ordinary Escape. It does not free the occupied worker slot. The migrated pending/completed query tests confirm that successive Find/drawer dismissal retains in-flight ownership, admits the later display completion without a jump/reopen and preserves raw source/Document identity/history.
|
||||||
|
|
||||||
|
The subscription evaluator is meaningful: it creates a real Iced TextInput, optionally focuses it, delivers Escape, obtains actual Captured or Ignored status from its Shell, and passes that status to the actual App subscription recipes. It checks exactly one Escape message in both ordinary status routes and no duplicate captured bridge under Text popup ownership. Tests preserve semantic selected bytes, raw cursor, result Arc, query text, grouping, saved 96px offset and visit after Find dismissal; they require visit rotation only on subsequent drawer dismissal. Hosted/file/pending modal cases assert that their first Escape preserves underlying surfaces and cannot mint editor focus.
|
||||||
|
|
||||||
|
Evidence limits: the popup test sends its actual tokened `menu.on_close` message, rather than mounting the Popup's own key handler. Saved 96px scroll is controller state, not measured native scrollbar retention. The helper uses the null renderer for TextInput status/focus protocol, polls only immediately available subscription output and does not run native input or returned editor-focus operations; existing dedicated focus tests cover those operations. Rename priority here is a source-routing check, not a newly mounted rename-modal test. No native acceptance or all-platform result is claimed.
|
||||||
|
|
||||||
|
## Bindings
|
||||||
|
|
||||||
|
- Formatted `crates/oa-desktop/src/app.rs`: 223,370 bytes; SHA-256 `4f4c1bb5f832601a072b5cd406a75731982e8b9955ee6af39a93f124496938f9`.
|
||||||
|
- Formatted `crates/oa-desktop/src/app/source_symbols/tests.rs`: 84,817 bytes; SHA-256 `411a8b35fe1d3211daf165d1585d209df9961b0da59a969a856991508bbc29a6`.
|
||||||
|
- `harness/text-workspace-interaction-contract-20260912.md`: 14,223 bytes; SHA-256 `7ee4df9c57e1fbe28cec27211945044ac2556f63442404d9fa6ffbd195095589` (especially lines 21 and 53).
|
||||||
|
- Attempt-5 baseline ZIP: SHA-256 `83ff861fc27b7aead159fde12e6fd881ba6c3c02b29e7bf10bbc12c60b7e6067`.
|
||||||
|
- Baseline App: SHA-256 `75ef46ef2789b32c5837ee33dfdc303eaba013ba75767138e4a19ba5113bc6ba`; baseline tests: `00cbacdd0af98858b5e74608720bd8251719c9926569a65a0ad777a40f1744c9`.
|
||||||
+74
@@ -0,0 +1,74 @@
|
|||||||
|
# Separable Find focus correction for #27 integration
|
||||||
|
|
||||||
|
Static review: the production correction is self-contained on CBC `cbc49a7802fb1bba0dd284fd904c700a0703ae70`. It needs only two local changes in `crates/oa-desktop/src/app/source_symbols.rs`; no new App state, enum, Text workspace, diagnostics publication, drawer, canonical departure-selection helper, or dependency change is required. No source was edited or built in this review. Peer commit `e124029` is not present in the local object database, so compatibility with that actual union remains an integration check for its owner, not a verified claim here.
|
||||||
|
|
||||||
|
## Exact production scope
|
||||||
|
|
||||||
|
In `restore_source_editor_focus`, retain both existing admission checks and `queue_source_reveal(cursor, false)`, then add:
|
||||||
|
|
||||||
|
```rust
|
||||||
|
// This ticket restores focus to the live editor, not a saved cursor.
|
||||||
|
// Iced's Cursor omits Word/Line selection kind; moving back to that
|
||||||
|
// lossy value would collapse an actual word/line selection.
|
||||||
|
self.source_jump = None;
|
||||||
|
```
|
||||||
|
|
||||||
|
In `source_viewport`, leave every ticket/admission check, ticket consumption, `source_jump.take()`, exact-cursor check, `move_to`, and optional `SelectLine` unchanged. Move the existing `guarded_focus` expression outside the `if let Some(cursor)` branch, replacing the final `Task::none()`:
|
||||||
|
|
||||||
|
```rust
|
||||||
|
if let Some(cursor) = self.source_jump.take() {
|
||||||
|
if !nav::exact_cursor(self.source_workspace.text(), cursor) {
|
||||||
|
return Task::none();
|
||||||
|
}
|
||||||
|
self.source_editor.move_to(cursor);
|
||||||
|
if self.source_select_line && cursor.selection.is_none() {
|
||||||
|
self.source_editor.perform(text_editor::Action::SelectLine);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// A valid ticket with no jump is focus-only. All intentional navigation
|
||||||
|
// still takes the cursor branch above, including explicit line selection.
|
||||||
|
nav::interaction::guarded_focus(
|
||||||
|
self.source_editor_id(),
|
||||||
|
self.source_symbols.raw_interaction.clone(),
|
||||||
|
raw_interaction,
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
Do not transplant the surrounding working-file diff. It additionally contains #13 menu exclusion, retained reference display/query lifetime, drawer commands/scroll state, future diagram adapter, and canonical selection capture for navigation departure. Those are separate changes with separate dependencies and evidence.
|
||||||
|
|
||||||
|
## Existing CBC protection remains operative
|
||||||
|
|
||||||
|
CBC already has `restore_source_editor_focus`, `queue_source_reveal`, `source_viewport`, the guarded Find Close envelope, and their call sites. Its actual editor sensor is keyed by `(active_path, reveal_ticket)` and emits captured `SourceViewport(ticket)` on show/resize. Creating a fresh focus-only reveal still changes this key and schedules the existing path; no new sensor or callback is required.
|
||||||
|
|
||||||
|
Before any mutation or focus operation, `source_viewport` checks ticket, interaction ID, raw interaction clock, workspace/revision snapshot, active path, and current navigation availability. The reveal is consumed once. An intentional jump is still checked against current source before movement; invalid destinations return without focus. `SourceViewport` remains exempt from App's generic interaction invalidation so a valid ticket can survive its own delivery. Other interactions invalidate the ticket and editor ID through existing CBC logic.
|
||||||
|
|
||||||
|
The returned existing `guarded_focus` is not an unconditional deferred focus. It rechecks the raw clock while traversing, requires exactly one matching mounted editor and no foreign focused widget, then synchronously chains the focus pass with another clock check. The editor ID includes workspace session, active path and interaction. Thus both stale message delivery and later input between Task creation and operation are guarded. Clearing `source_jump` does not discard this authority. `source_select_line` is already set false by `queue_source_reveal(cursor, false)`.
|
||||||
|
|
||||||
|
The intentional behavioral extension is narrowly defined: a current admitted reveal with no jump now restores focus. Existing real navigation continues through the cursor branch. Do not replace this with direct `widget::focus`, call `move_to` during focus restoration, clone/reset Content, or canonicalize Word/Line selection at Find Close. Those alternatives lose live selection mode or ticket protection.
|
||||||
|
|
||||||
|
## Mounted regression handoff
|
||||||
|
|
||||||
|
Current fixture: `crates/oa-desktop/src/app/text_workspace/focus_selection_tests.rs`. Its four tests are:
|
||||||
|
|
||||||
|
1. `word_and_line_selection_survive_find_close_and_escape_then_replace_exact_bytes`: actual double/triple-click selection, Close button or captured Escape bridge, guarded viewport Task, selected text, exact replacement, unchanged accepted Document/history; covers four word/line × Close/Escape cases.
|
||||||
|
2. `mounted_direct_typing_control_and_old_cursor_roundtrip_discriminate_selection_loss`: valid direct typing control and explicit old lossy roundtrip discrimination.
|
||||||
|
3. `stale_focus_ticket_and_later_raw_input_cannot_steal_focus_or_change_selected_bytes`: both stale viewport delivery and a previously created operation executed after later raw input/reopened Find.
|
||||||
|
4. `explicit_cursor_navigation_still_moves_and_selects_requested_line`: intentional cursor navigation remains effective.
|
||||||
|
|
||||||
|
For a CBC-based separable test commit, place the fixture in a source-navigation/source-symbols test module rather than importing all `app::text_workspace`. Register under the same debug/test cfg convention used by the existing App tests. Resolve its current `use super::*` explicitly to App/Message, `crate::source_navigation as nav`, Point, Task and widget as required by the chosen module; retain existing explicit imports. CBC already exports `views::source_tests::FontLayout` and provides Document/Workspace and the SourceNavigation/SourceFindClose/SourceViewport messages used here. The setup call `app.publish_source_diagnostics(...)` is #13-only and unnecessary for these focus assertions; omit it for CBC rather than introduce that production API. No other TextWorkspace event/state is referenced in the fixture body.
|
||||||
|
|
||||||
|
Keep `Column::from_vec` with the permanent zero-height Find slot: `Column::push` elides that child and invalidates the fixture. Keep the actual hit-tested initial caret transfer only before Word/Line selection; never copy a cursor back into App after selecting. App and CPU mounted Content are different renderer-typed instances, so this is a controller/content plus widget-operation evaluator, not a full production GPU/sensor/scroll measurement. Its manually delivered `SourceViewport` tests the controller guard; the owner should retain existing subscription/sensor checks and exercise the peer's actual editor wrapper after integration. The focused port's module-path command must match its final registration; do not reuse a filter that discovers zero tests. Confirm exactly four named tests execute, then run the owner's combined gates.
|
||||||
|
|
||||||
|
## Evidence and remaining union work
|
||||||
|
|
||||||
|
The portable `harness/experiments/text-find-selection-20260913` archive retains original inputs/logs and corrected source. Valid `focus-red-2` used the fixed fixture with old production: direct typing and explicit navigation passed while two selection tests failed. `focus-green-2` actually recompiled corrected production and passed all four, ending 2026-09-13T03:17:54Z; stdout SHA256 `6f19f24e2fa37db4fc95c9b2d11b65e420299c6c6f90e4657e7e8e328b326fa0`. Red1 failed fixture construction and green1 reused stale compiler cache: neither establishes the correction. This earlier valid red/green predates canonical departure-selection changes and therefore supports separability of the focus behavior. It does not establish an unbuilt CBC-only patch or the peer union.
|
||||||
|
|
||||||
|
Owner #27 must reconcile the two function-body changes with its own source, preserve every peer admission predicate and menu/modal ownership check, keep the existing guarded operation and sensor ticket identity, and port/run the four tests in that union. If its editor wrapper or Find Escape dispatch differs, test that actual route; do not replace it with #13's later drawer Escape correction. Back/file canonical selection capture is a different patch; diagram usages/chooser and reference display retention remain separately owned integration dependencies. None is necessary to compile this focus-only production patch on CBC, and none is delivered by it.
|
||||||
|
|
||||||
|
Bindings at review:
|
||||||
|
|
||||||
|
- CBC raw `source_symbols.rs`: `77cb97ec909bcaf3d952e0c6673171fd81e7ca31568248994c8c6b150e2c7f4e`.
|
||||||
|
- Working `source_symbols.rs`: `d81914a553114d85452d973a1edb175843d27154b3f9b9fc4cbc5049d423abe4`.
|
||||||
|
- Mounted fixture: `db7cc3cfbf5f8dce83cf6134e339cc0ba57c0679c47b6268f0e470d09c0e6cc8`.
|
||||||
|
- Existing `interaction.rs`: `c6efa6105b8ba46655e27a89b9fa59e6fc01a4c6f331f886e035af1e70cbf8a9`; no diff from CBC.
|
||||||
|
- Red/green archive manifest: `4580d8cbc2f0347f1ebc1448728af6ef8885f6ebbd4c2d2dbe0c41eac97fb283`.
|
||||||
+52
@@ -0,0 +1,52 @@
|
|||||||
|
# Native trial 2: Escape and text Undo review
|
||||||
|
|
||||||
|
Read-only source and evidence review by Codex-9e8r6t /root/diagnostic_input, 2026-09-13. Parent owns the live GUI, source integration and execution. This note is the only new artifact; no source edits, build, test, Git or GUI operation was performed for this review. Source references below are relative to C:/ar-text-9e8r6t at the hashes recorded below. Trial evidence is under main `.local/text-workspace-native-20260912/trial-text-2`.
|
||||||
|
|
||||||
|
## Escape: one legacy action, not duplicate dispatch
|
||||||
|
|
||||||
|
Screenshots 050 and 051 were independently inspected. 050 shows the menu dismissed with Find and References still open. 051 shows both Find and the drawer closed. Its filename says “keeps-drawer”; that label is incorrect and must not override the pixels.
|
||||||
|
|
||||||
|
The mechanism is direct: `app.rs:1996` computes whether to restore source focus, then unconditionally sets `source_navigation.open = false` and calls `text_workspace.show_drawer(None)` before guarded focus restoration. The captured bridge (`behavior/creation.rs:15,23`) emits only for Captured Escape. The ordinary subscription (`app.rs:1128–1142`) explicitly ignores Captured Escape. The bridge is disabled while the Text popup is open (`app.rs:1117`). There is no evidence of two App Escape messages from one key. The actual-subscription test at `app/source_symbols/tests.rs:1916` already asserts one message after popup dismissal and then explicitly expects both surfaces closed; the modal matrix at line 1099 also encodes the simultaneous dismissal.
|
||||||
|
|
||||||
|
Frozen CBC `main/crates/oa-desktop/src/app.rs:1911` performed the same simultaneous dismissal, additionally clearing old results. This is inherited behavior, not a new subscription race. Current interaction contract line 53 requires only menu-first dismissal, which trial 2 passes. Earlier private `design.md:50` says “Escape closes only the focused transient surface”; that stronger scoped-dismissal intent was omitted from the handler/test expectations. Parent now accepts a one-surface-per-Escape correction after the native trial closes. This is a bounded usability defect, with no observed source/model data loss; retained query data already survives Hide.
|
||||||
|
|
||||||
|
### Small correction and evaluator
|
||||||
|
|
||||||
|
Keep the existing popup and modal dispatch layers. In the ordinary Text Escape path, dismiss Find if it is open; otherwise hide the supporting drawer. Use the existing focus-only restoration for Find, preserving its actual selected bytes and scroll. Do not introduce another subscription or focused-widget engine. The accepted priority is explicitly menu → Find → drawer, including the case where clicking Actions had unfocused the Find input.
|
||||||
|
|
||||||
|
Extend the actual subscription regression: start with current References data, grouping and nonzero saved scroll, open Find, then Actions. Popup Escape yields its tokened dismissal and no bridge message. The next actual captured/ignored Escape yields exactly one App message, closes Find only, retains drawer visit/groups/results/scroll, and leaves the live word/line selection intact after guarded focus. The next Escape closes only the drawer and retains its data. Check accepted source/model/history unchanged; pending matching query completion may store data without jumping/reopening. Update the two legacy simultaneous-dismissal expectations rather than merely adding a new test that contradicts them. Native replay must inspect each resulting surface separately.
|
||||||
|
|
||||||
|
Higher-priority risks: do not move the Text branch before menu handling (`app.rs:1232`), architecture cancellation (1287), model-menu dismissal (1324), hosted/workflow/file/delete/pending dialogs (1392), or rename cancellation (1454). Existing modal Escape tests must still leave underlying Find/drawer intact and must not queue editor focus. Generic source interaction invalidation precedes ordinary dispatch; retain that cancellation and queue focus only after the chosen current surface closes. Preserve `source_navigation_available` guards (`app/source_symbols.rs:91`) and the raw-input/ticket guards on asynchronous focus. Do not inadvertently extend this Text priority to behavior-source back/cancel or active connection cancellation in the same ordinary handler.
|
||||||
|
|
||||||
|
## Text Undo: separate existing history limitation
|
||||||
|
|
||||||
|
`source_workspace.rs:83` stores `past/future: Vec<String>` plus one current cursor, with no per-history cursor, selection or scroll. `app.rs:2982` applies the edit and sends the **post-edit** cursor into `Workspace::edit` (233), which overwrites `buffer.cursor`. `Workspace::undo` (302) swaps text/history and advances generation but leaves that cursor unchanged. `app.rs:3156` then calls `show_source_file(true)`; its default path (`app.rs:700–734`) reconstructs Content with text, losing internal scroll, and queues the retained post-edit coordinate.
|
||||||
|
|
||||||
|
If that coordinate is invalid in the restored shorter text, the existing exact-cursor guard refuses the reveal, leaving the fresh editor at its default top/caret. If it remains valid, restoration can use that post-edit coordinate instead of the earlier pre-edit selection. These primary-source mechanisms explain the parent's reported scroll-to-top and occasional prior post-edit caret. Workspace bytes are unchanged from frozen CBC and CBC has the same SourceUndo reconstruction route. A targeted note search found no earlier explicit tracked Undo-scroll defect: describe this as a newly observed native limitation of pre-existing text-only history, not as already accepted exact cursor/viewport Undo behavior.
|
||||||
|
|
||||||
|
Screenshot 011 was inspected: it shows the original alias, the viewport at the file start, and “All changes saved” after the typing probe's Undo. The parent reports analogous baseline restorations during the other selection probes. This is limited evidence of visible text restoration and clean-state feedback, **not** proof of exact Undo caret/selection/scroll restoration or all unsaved buffers. Saved-disk oracle results inspect disk only; they cannot establish a live unsaved editor's cursor or viewport. Model/rename Undo evidence is a separate action and must not be used as text-Undo evidence.
|
||||||
|
|
||||||
|
Keep exact text-Undo cursor/selection/viewport semantics as a separate follow-up: decide the edit grouping and before/after selection/viewport history policy, then evaluate real replacement → Undo → Redo with Unicode, multiline CRLF, caret movement after edit, and exact source/selection/scroll assertions. Navigation design line 43 explicitly keeps existing text/model history untouched. The current Escape correction should not redesign histories.
|
||||||
|
|
||||||
|
## Exact reviewed hashes
|
||||||
|
|
||||||
|
Trial launch manifest binds source archive `83ff861fc27b7aead159fde12e6fd881ba6c3c02b29e7bf10bbc12c60b7e6067`; its native scope was still pending at launch. Hashes below bind this review, not later fixes.
|
||||||
|
|
||||||
|
| Artifact | SHA-256 |
|
||||||
|
| --- | --- |
|
||||||
|
| crates/oa-desktop/src/app.rs | 75ef46ef2789b32c5837ee33dfdc303eaba013ba75767138e4a19ba5113bc6ba |
|
||||||
|
| crates/oa-desktop/src/app/source_symbols.rs | d81914a553114d85452d973a1edb175843d27154b3f9b9fc4cbc5049d423abe4 |
|
||||||
|
| crates/oa-desktop/src/app/source_symbols/tests.rs | 00cbacdd0af98858b5e74608720bd8251719c9926569a65a0ad777a40f1744c9 |
|
||||||
|
| crates/oa-desktop/src/behavior/creation.rs | 438a245ead397060767c790c51a8f21cd5021342627999deb4695cf3bd22091a |
|
||||||
|
| crates/oa-desktop/src/source_workspace.rs | 388c71f63829c0c76526a1700ebf5f240c86c467a65aae4fca4cd6c6a88c468b |
|
||||||
|
| harness/text-workspace-interaction-contract-20260912.md | 87d83bcedc808bf78bb3f9d0bb4b09884f627c010fbc339c86e11d00f696646b |
|
||||||
|
| harness/release-text-navigation-design-20260911.md | adaaf60fa0711677997f62c49ec899b8d412a0a0896897b2f1bb53d0ecdbeb75 |
|
||||||
|
| main private design.md | 73c6aa75980ce0ceeb132ef8a89f73a906a2ed6c4a7cc1f2ff5745ab0d0b66fa |
|
||||||
|
| frozen CBC main app.rs | d2e13b4527eec6c0920668d312d647806c762ed0a2f3ad9595a1243d9993fc14 |
|
||||||
|
| trial2 launch-manifest.json | f4bc04c2f6669f7e2cb28d12cc65efe4c89917396c3d871a189960dea7dee1ee |
|
||||||
|
| trial2 screenshots/050-escape-closes-only-actions.json | 3bb686f78988b6d7a321fa4c7c7f62f7ffe159023fb38146b8fb6baa73d924bf |
|
||||||
|
| trial2 screenshots/050-escape-closes-only-actions-0.jpg | d414906bcb1e55e881128a388c223e9f139b5c5097083bb51f35cad133632fdc |
|
||||||
|
| trial2 screenshots/051-second-escape-closes-find-keeps-drawer.json | 942ccb4b8cb87de4a2b1d02fe5daa98ccf8db26723c2d55ab946570b59c5e10e |
|
||||||
|
| trial2 screenshots/051-second-escape-closes-find-keeps-drawer-0.jpg | 988dc77f7844cbae0bf3156e27065a20f5198e7a081ecb7b031d95f15f04b29a |
|
||||||
|
| trial2 screenshots/011-word-find-close-undo-baseline.json | cfdf9fb5fe821e269e2288acc9d3e69bce7d2601b0dc1f528044755eff390658 |
|
||||||
|
| trial2 screenshots/011-word-find-close-undo-baseline-0.jpg | ddb8488cfefad22260bf9aded45ca46a7c77cdf2e35ec413c1e66d605f01ece5 |
|
||||||
+1172
File diff suppressed because it is too large
Load Diff
+31
@@ -0,0 +1,31 @@
|
|||||||
|
# Native Text trial 2 — independent evidence review
|
||||||
|
|
||||||
|
Bounded evidence supports the seven selection-replacement probes, saved rename transactions, and the inspected compact Text interactions. **This is not final #13 acceptance:** capture 051 demonstrates the inherited simultaneous Find/drawer Escape defect; the next source correction is outside this trial. Review performed read-only on 2026-09-13; no GUI, compiler, application, or oracle was executed by this reviewer.
|
||||||
|
|
||||||
|
## Identity and original records
|
||||||
|
|
||||||
|
Original trial: `.local/text-workspace-native-20260912/trial-text-2`. PID 5284 launched 2026-09-13T03:42:39.425514Z and closed normally at 04:18:28.799966Z, exit 0. Both logs are empty; closure records unchanged binary and DLL. Development executable SHA256 `4a1d09c108fd5062f01bc7059064fa7dc839e03d0cc2a3b1e12f8b02c8115a24`, 114,171,904 bytes. This was an isolated development launch, not packaged-release acceptance. Elapsed session time is not a performance measurement.
|
||||||
|
|
||||||
|
The adjacent `native2-evidence-review.json` binds all 105 original metadata states and all 112 original JPEGs individually, plus seven saved-disk receipts and the launch/closure. Every metadata-referenced JPEG exists; the JPEG set is exact with no duplicate references. Receipt SHA256: `a2b0a6b3bec5bd88497f8de89baf3a652b5210b7c6a3480dd600bc8faa438722`.
|
||||||
|
|
||||||
|
## Observations
|
||||||
|
|
||||||
|
Directly inspected JPEG states 007, 010, 014, 016, 018, 022, 024, 025, 028, 033, 035, 037, 039, 043, 047, 050, 051, 064, 068, 072, 086, 089, 096, 099, and 104. Other captures are byte-bound, not claimed as individually visually inspected.
|
||||||
|
|
||||||
|
- Seven result images show the intended whole replacement: Find word/Close `oa_contact_probe` (010), word/Escape `oa_control_probe` (014), line/Close `description "line_close_probe";` (018), line/Escape `description "line_escape_probe";` (022), Back word `oa_control_back_probe` (028), file roundtrip word `oa_control_file_probe` (033), and file roundtrip line `description "line_file_probe";` (037). Selected-origin examples 007/016/024/035 corroborate actual word/line selections rather than merely caret movement. These demonstrate selected-byte replacement for these seven probes; they do not establish preservation of Word/Line drag-extension mode after real navigation or every Unicode selection shape.
|
||||||
|
- At the recorded 1102x732 outer window, 025 shows approximately 306 pixels of editor height with the default drawer and three complete reference result rows (one declaration, two uses), with the next use near the lower edge. Do not describe this as three complete lexical-use rows. Enlarged drawer 039 leaves approximately 246 pixels of editor. Scrolled references in 043 and explicit hide/reopen in 047 show the retained lower group position and readable full `oa/participants.arcadia` path. Stale is visible before the alias. Retained stale rows are visibly pale; this review makes no contrast-compliance claim.
|
||||||
|
- 050 shows the first Escape has removed Actions while Find and the drawer remain. Despite its filename, 051 shows **both Find and the drawer closed** after the second Escape. The filename is an inaccurate historical label and must not be treated as a passing assertion.
|
||||||
|
- Representative saved states 064/068/072 show `oa_restore_pressure` / original `oa_restore_work` / `oa_restore_pressure` respectively, clean save messages, and consistent visible declaration UUID. Reopen capture 089 independently shows `oa_restore_pressure` in graphical properties. Small capture 086 shows `assess_damage` while the comment and description still contain the original prose `@assess`.
|
||||||
|
- Scope-stress 099 shows Partial and Collision before the long alias, two declarations/two uses, full Unicode `救援/assess.arcadia` path, and combined repair conditions in the status strip. 096 shows diagnostic navigation selecting the missing include, with the full failure explanation wrapped in Problems. 104 shows the prior representative graphical model retained and properties blocked by pending source drafts. Invalid source loaded as repair drafts is not a successful valid-project load or model replacement.
|
||||||
|
|
||||||
|
## Saved-disk and archive verification
|
||||||
|
|
||||||
|
All seven original verifier receipts report PASS, exit 0, physical byte equality, and no oracle mutation; their raw stdout/stderr hashes independently match the recorded hashes. Five representative checks cover baseline before opening, renamed save, undo save back to baseline, redo save, and final closed state. Two simple checks cover renamed save and final closed state. Oracle stdout reports exact model/identity with 30 reachable representative sources or four simple sources. The separate physical maps contain 37 and four files respectively. Independent current readback confirms all 41 final physical work files equal their preauthored expected trees. Scope-stress's four physical model files equal its manifest's authored after-hashes. These are saved-disk assertions, not an oracle inspection of a live unsaved editor model.
|
||||||
|
|
||||||
|
Versioned archive directory: `C:/ar-text-9e8r6t/harness/experiments/text-workspace-native2-20260913`. Manifest SHA256 `3ddabcf26828afe2aee882bdfbac26d0f3e6003e6c22f1575bb5bfdf12dcb01a`, 70,577 bytes. Independently verified all 367 unique payload files / 13,631,658 bytes against the full manifest, exact on-disk membership including only manifest as additional file, and 366 payload files against their independently located originals. The archived initial trial2 helper is historical evidence at its manifest hash; no separate pre-correction live original remains. An initial reviewer mapping to `archive_initial.py` failed and was rejected because that file belongs to trial1; it was not accepted as provenance. Corrected helper equals the live helper. The parent's original Windows Unicode-decoding failure and corrected explicit UTF-8 helper remain distinct historical files; resumed identical copies are not a new native run.
|
||||||
|
|
||||||
|
The nested attempt-5 input ZIP passes full CRC reading (526 members). This is archive integrity, not a rerun of its compiler gates. Payload excludes executables, DLLs, profiles, temporary directories and caches. Baseline/expected trees are archived; final work equality is supplied by the original receipts and this independent current readback, rather than claiming a separately archived final-work tree.
|
||||||
|
|
||||||
|
## Limits and disposition
|
||||||
|
|
||||||
|
Initial empty-text small/scope path-entry captures were failed input attempts later recovered, not successful opens. The scope-stress project was already invalid on load; close/Discard without manual edit or Save is the operator's recorded sequence, consistent with the unchanged physical readback, but disk equality alone cannot prove the absence of transient input. Screenshot metadata/accessibility does not constitute a complete key-event log. Existing Escape correction requires its own source gates and targeted behavior evidence. No full-app, release, timing, accessibility, or final UX acceptance is asserted here.
|
||||||
+396
@@ -0,0 +1,396 @@
|
|||||||
|
{
|
||||||
|
"atUtc": "2026-09-13T04:54:42.116051+00:00",
|
||||||
|
"scope": "Read-only archive and recorded evidence review; no runtime or compiler. Archive/original/external/ZIP/gate checks completed in preceding read-only invocation before Windows cp1252 failed at capture metadata; this invocation completes explicit UTF8 capture and receipt checks.",
|
||||||
|
"manifest": {
|
||||||
|
"bytes": 24309,
|
||||||
|
"sha256": "07c765910f3d7bda3e298b32f6a12feb578214c61c241b0ac0cebc6c46e28db8"
|
||||||
|
},
|
||||||
|
"files": 115,
|
||||||
|
"bytes": 7138817,
|
||||||
|
"allOriginalAndArchiveBytesEqual": true,
|
||||||
|
"externalPinsVerified": 7,
|
||||||
|
"nestedSourceZipMembersCRCAndBytes": 526,
|
||||||
|
"recordedSuccessfulGates": [
|
||||||
|
"escape",
|
||||||
|
"clippy",
|
||||||
|
"membership",
|
||||||
|
"focused",
|
||||||
|
"selection",
|
||||||
|
"tests",
|
||||||
|
"timing",
|
||||||
|
"gui"
|
||||||
|
],
|
||||||
|
"captureStates": 31,
|
||||||
|
"jpegFiles": 34,
|
||||||
|
"captureSizes": [
|
||||||
|
[
|
||||||
|
16,
|
||||||
|
16
|
||||||
|
],
|
||||||
|
[
|
||||||
|
185,
|
||||||
|
147
|
||||||
|
],
|
||||||
|
[
|
||||||
|
1108,
|
||||||
|
633
|
||||||
|
],
|
||||||
|
[
|
||||||
|
1442,
|
||||||
|
932
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"captures": [
|
||||||
|
{
|
||||||
|
"path": "001-fresh-escape-correction-home.json",
|
||||||
|
"bytes": 1085,
|
||||||
|
"sha256": "b5637b1eb029200d146dbb0b22a7d445839c6d0dd3242ba6a591498b9a93354d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "001-fresh-escape-correction-home-0.jpg",
|
||||||
|
"bytes": 98647,
|
||||||
|
"sha256": "5e4da4a94c74b708c872833167cddb45d38d91b4ee128ae3a4c9cf1d1326ad29"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "002-open-representative-picker.json",
|
||||||
|
"bytes": 1081,
|
||||||
|
"sha256": "e1bb2850901bda485c7b2a42e14053912f909b41c68c728f6a233074f2c58db8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "002-open-representative-picker-0.jpg",
|
||||||
|
"bytes": 97089,
|
||||||
|
"sha256": "e18826ed3f64c64cdb7efcc7d8c4648a775439d1f99221a11944ef9e4023b82b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "003-native-picker.json",
|
||||||
|
"bytes": 5024,
|
||||||
|
"sha256": "25fa11463186769b16d3b1a348759798f53ef0fb694ada2206c4878d672e86e7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "003-native-picker-0.jpg",
|
||||||
|
"bytes": 674,
|
||||||
|
"sha256": "5a2387a1a593a32ea169b56b9a3e59333936ee1da95164564e4d9be61bf5a24b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "003-native-picker-1.jpg",
|
||||||
|
"bytes": 50649,
|
||||||
|
"sha256": "2c4f1905bced8991366aebf1daa23c2984c406ff77a8abafb3c8a3bf7e60fb38"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "004-representative-path-confirmed.json",
|
||||||
|
"bytes": 5072,
|
||||||
|
"sha256": "2776bf132cf6d163e8adcdd16ddf67567aa20c34216d2c20892f83e0328abfb4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "004-representative-path-confirmed-0.jpg",
|
||||||
|
"bytes": 674,
|
||||||
|
"sha256": "5a2387a1a593a32ea169b56b9a3e59333936ee1da95164564e4d9be61bf5a24b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "004-representative-path-confirmed-1.jpg",
|
||||||
|
"bytes": 55518,
|
||||||
|
"sha256": "a0ab138c25b7ba7a8028b3d46f61b00fb3b442679f98ffc68a5250bf50d4bc7c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "005-representative-open-request.json",
|
||||||
|
"bytes": 1083,
|
||||||
|
"sha256": "79b644cfd0d5240fd2ffc6d9bec2b3469286cd2bc3204eae511c7d1f9f07a4c3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "005-representative-open-request-0.jpg",
|
||||||
|
"bytes": 98435,
|
||||||
|
"sha256": "98463e8881e8161a8c1ff3584cd6ccacdf95e3c8bbeba40fe9a48d0bda644fed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "006-representative-loaded.json",
|
||||||
|
"bytes": 1256,
|
||||||
|
"sha256": "800d9521f99a1eeb72e7fa30993473fc87b99c80d4f8572222887a0447878801"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "006-representative-loaded-0.jpg",
|
||||||
|
"bytes": 133714,
|
||||||
|
"sha256": "e2c550951994e38f2f2bd90ab8826b03a8affefdb80f11391b3068a8c7731ff7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "007-text-wide.json",
|
||||||
|
"bytes": 1232,
|
||||||
|
"sha256": "ed2dd657ebab1b7e92c5a12637c13b95323c7187c929374b4542956ebed1a1e0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "007-text-wide-0.jpg",
|
||||||
|
"bytes": 168557,
|
||||||
|
"sha256": "c5a495fc54f5c38a6ddc89e4a0ab329302c95c0d85708f6fd21862794ad4c958"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "008-text-minimum.json",
|
||||||
|
"bytes": 1238,
|
||||||
|
"sha256": "1c48645c6b528eef9b792bc8a91f90a33748129f1e7390902dbaba00f528b17e"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "008-text-minimum-0.jpg",
|
||||||
|
"bytes": 170880,
|
||||||
|
"sha256": "ce5bad312c8cd140ace5fb4f8472affd1936fd076742444c6333f5167dd02419"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "009-window-size-menu.json",
|
||||||
|
"bytes": 1934,
|
||||||
|
"sha256": "804ff9d424c696ba40cf686043556bb29198e26f97459baa09558a49bc5a9c05"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "009-window-size-menu-0.jpg",
|
||||||
|
"bytes": 170297,
|
||||||
|
"sha256": "13ddf9100a532d95a87c4e4b7fc13db6f38503e8267ad6a77ef84b29f72bce76"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "009-window-size-menu-1.jpg",
|
||||||
|
"bytes": 4956,
|
||||||
|
"sha256": "1b33fc34741438282edbd352299d4844fb6762b3ed434365e302e03f408dfc04"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "010-size-command.json",
|
||||||
|
"bytes": 1238,
|
||||||
|
"sha256": "a90dc51e4548595d53ab0f5152ced87786d39489c912fd5de412bb63346ea397"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "010-size-command-0.jpg",
|
||||||
|
"bytes": 170949,
|
||||||
|
"sha256": "c74face251a288e9e48a555839bd27722fd0a07cd438e809c581b02a7eeb72b6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "011-size-right-edge.json",
|
||||||
|
"bytes": 1244,
|
||||||
|
"sha256": "9dd5ae891a08e1eff381a331b31be4da39b0bde1d8fdfe5097e373dcff53298d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "011-size-right-edge-0.jpg",
|
||||||
|
"bytes": 170949,
|
||||||
|
"sha256": "c74face251a288e9e48a555839bd27722fd0a07cd438e809c581b02a7eeb72b6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "012-cancel-window-sizing-wide.json",
|
||||||
|
"bytes": 1264,
|
||||||
|
"sha256": "757cdf55f48e66d577c62c5cefad8c329bd1ee33653db787e4f5266ab1aaee37"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "012-cancel-window-sizing-wide-0.jpg",
|
||||||
|
"bytes": 170949,
|
||||||
|
"sha256": "c74face251a288e9e48a555839bd27722fd0a07cd438e809c581b02a7eeb72b6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "013-oa-folder.json",
|
||||||
|
"bytes": 1232,
|
||||||
|
"sha256": "2fb29d44e40f4e4b9ab37bf1ffa17dbdf475290e3e53f33c7f4b8f23466778ba"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "013-oa-folder-0.jpg",
|
||||||
|
"bytes": 171567,
|
||||||
|
"sha256": "37ee2ed3e425bd54d00ec195f2eebd7fc6ecdd223ae4377dcc28305d9bfb4c65"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "014-participants-source.json",
|
||||||
|
"bytes": 1252,
|
||||||
|
"sha256": "fb51f962a4b4d318b8ff93260d7b9676d0e541e312b1743354478ef966d9bd01"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "014-participants-source-0.jpg",
|
||||||
|
"bytes": 132210,
|
||||||
|
"sha256": "4fc0866a6a960eab7ac4df5379e9dd9ba244cd30fe283de0676380fae3bbdcc7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "015-word-selected.json",
|
||||||
|
"bytes": 1240,
|
||||||
|
"sha256": "08a07b5cf556ae69f0b27933ed92f031cb2df288868f8c916bd452b27e69e7e9"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "015-word-selected-0.jpg",
|
||||||
|
"bytes": 131689,
|
||||||
|
"sha256": "a02b211dc181d942461e00381747b208824d5375baa9636eb1e4cba08d296a1b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "016-references-query.json",
|
||||||
|
"bytes": 1246,
|
||||||
|
"sha256": "9bfa28bc44126799c36947ef1015baedf480233a26970c5c98036e05cdced41f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "016-references-query-0.jpg",
|
||||||
|
"bytes": 136808,
|
||||||
|
"sha256": "4791f8b9cc059234239874c3ea741d65d06c4f055e2edc2a94e45e21c05b94de"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "017-references-scrolled.json",
|
||||||
|
"bytes": 1252,
|
||||||
|
"sha256": "afb568c4da1a2db6cbe976262e27d6786b40a4b627460b5cc78609772136d682"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "017-references-scrolled-0.jpg",
|
||||||
|
"bytes": 143285,
|
||||||
|
"sha256": "f1e7338bab33939f31eae72b7590cd964d6a59bbac5122435aa0a5a94e2ace28"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "018-find-and-retained-drawer.json",
|
||||||
|
"bytes": 1262,
|
||||||
|
"sha256": "bbda451ac080eab4fa8825341eec42933cd2066eed2a38ad6ec7d11c513a421c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "018-find-and-retained-drawer-0.jpg",
|
||||||
|
"bytes": 146738,
|
||||||
|
"sha256": "92956cc253a2edcf80e305fa019ab4153b87f461b282aa4f01a30b893912fb48"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "019-actions-find-drawer.json",
|
||||||
|
"bytes": 1252,
|
||||||
|
"sha256": "dfd440c1182ce93f6ad5e0206e09a23b259723b0720acfd853d5d861317737b1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "019-actions-find-drawer-0.jpg",
|
||||||
|
"bytes": 144620,
|
||||||
|
"sha256": "583b06732b126b4a79df1233ce654b8bca60eebf1a6be1bcb11994ccae705dc5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "020-escape1-menu-only.json",
|
||||||
|
"bytes": 1248,
|
||||||
|
"sha256": "5bd0a3192c81832c7ae5045a03f0a0588c15d65f145ca4aeebb6867d8f21c073"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "020-escape1-menu-only-0.jpg",
|
||||||
|
"bytes": 139894,
|
||||||
|
"sha256": "022b457ac5b15b56e4faf4615981cfaaeed95d3b554eab2c6b257cb77ee27a3d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "021-escape2-find-only-retains-results-scroll.json",
|
||||||
|
"bytes": 1294,
|
||||||
|
"sha256": "8012e1fd675c0607f08d785101295cfbe9eba6dfa0c28282a2729ee126801035"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "021-escape2-find-only-retains-results-scroll-0.jpg",
|
||||||
|
"bytes": 137580,
|
||||||
|
"sha256": "08aaead3e2978daf802fd0b1e36265dad517fcfad54cfbc1e18adfdfd274e772"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "022-escape3-drawer-only.json",
|
||||||
|
"bytes": 1252,
|
||||||
|
"sha256": "0b1190135965eaa5cb4d6fe360001651833f4913637268767817373a2db9b2db"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "022-escape3-drawer-only-0.jpg",
|
||||||
|
"bytes": 131935,
|
||||||
|
"sha256": "1bcc3d2fca2f0becac88ad971cae827169c971821061450b42efe2ca6b15b696"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "023-word-replacement-after-three-escapes.json",
|
||||||
|
"bytes": 1296,
|
||||||
|
"sha256": "d6439401b0e8dc5862ba8dec89f95fad41d24d5eb2c4a0ab4bb75dad983f9f79"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "023-word-replacement-after-three-escapes-0.jpg",
|
||||||
|
"bytes": 132787,
|
||||||
|
"sha256": "88f8b825615a70eb4492c9df08f78ade1e8aa9c475ddd6c96d45272d8b191553"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "024-word-probe-undo.json",
|
||||||
|
"bytes": 1244,
|
||||||
|
"sha256": "b839286980a247a7a0c6d2924c9159ea6f0f542ed633770a723d2e0245e24902"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "024-word-probe-undo-0.jpg",
|
||||||
|
"bytes": 131885,
|
||||||
|
"sha256": "57a6fcf2633de7e7f8eaf69e4e39839343bf46a39daac9e66361c4250501094e"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "025-reopen-status-after-escape.json",
|
||||||
|
"bytes": 1266,
|
||||||
|
"sha256": "cebab27b0c58effa5c58f0206ab5a8e1de4db185cb959fe96f354b014bc0a816"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "025-reopen-status-after-escape-0.jpg",
|
||||||
|
"bytes": 133772,
|
||||||
|
"sha256": "7908e1317430a560d65cb764b4cbeeb52b8e658576de538392c9948c4789e63c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "026-references-retained-after-escape-reopen.json",
|
||||||
|
"bytes": 1292,
|
||||||
|
"sha256": "251514490964d521f2036e9fa4c7c4761fef3f1a8ac4440e560a74e23fb77e2e"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "026-references-retained-after-escape-reopen-0.jpg",
|
||||||
|
"bytes": 130790,
|
||||||
|
"sha256": "7c2839245e264831627f3d50e25f21a3cc06136b93f09024126615042b1267c2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "027-line-selected.json",
|
||||||
|
"bytes": 1240,
|
||||||
|
"sha256": "b048034c34efddaab3947a809b40359c346d7b123793c90eb174a6ceafdb6b9d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "027-line-selected-0.jpg",
|
||||||
|
"bytes": 132710,
|
||||||
|
"sha256": "86872b886ea25e10067e5dbb7d6b38be4cade9e4882cc881c7cd27680d5ff253"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "028-focused-find-over-line-and-drawer.json",
|
||||||
|
"bytes": 1280,
|
||||||
|
"sha256": "633bac8c103ea5dca6cdae3bf722bcb26fbf1ca0a4939e522a6ebd10579a80d2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "028-focused-find-over-line-and-drawer-0.jpg",
|
||||||
|
"bytes": 136832,
|
||||||
|
"sha256": "c22b510f3238b9b10de5e7944538704778447eb8517117cf441e4b0e8466bb23"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "029-focused-escape-retains-drawer-and-line.json",
|
||||||
|
"bytes": 1290,
|
||||||
|
"sha256": "62d92c5a2d4f1baf8c53ca1bd835b604d61c4fe30aa45a23fa2203dad653392e"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "029-focused-escape-retains-drawer-and-line-0.jpg",
|
||||||
|
"bytes": 132794,
|
||||||
|
"sha256": "0384c0046addd8d1568ff309840cae52e2e394eb3c33cff4eb75413ca817e391"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "030-line-replacement-after-focused-find-escape.json",
|
||||||
|
"bytes": 1308,
|
||||||
|
"sha256": "33065c7de823bba42ac37d529bf4317fdc36553b4e0071db344637c6bb7d5aed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "030-line-replacement-after-focused-find-escape-0.jpg",
|
||||||
|
"bytes": 133736,
|
||||||
|
"sha256": "bb15d06d3c92347305636d4abdd9f490a414958b986c581b0b5f3415cb5aebb6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "031-line-probe-undo.json",
|
||||||
|
"bytes": 1244,
|
||||||
|
"sha256": "8f80a246e1be1390a019b8153d6683c4e811967ecc0a71dd6a5788bdd8b5c212"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "031-line-probe-undo-0.jpg",
|
||||||
|
"bytes": 132790,
|
||||||
|
"sha256": "63e71bf4b82e678ea8c1c3a5f33d05ff9901fbd7098099c49ac701c4da3a7cf5"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"savedReceipts": [
|
||||||
|
{
|
||||||
|
"path": "verification-representative-trial-closed\\result.json",
|
||||||
|
"bytes": 7378,
|
||||||
|
"sha256": "7cd11b75dab124ea7ffc95075c78b35ec87a54d1a211bb5221a7843f4e6b19ae",
|
||||||
|
"variant": "expected",
|
||||||
|
"physicalFiles": 37,
|
||||||
|
"stdout": "PASS exact model/identity/30 reachable sources; 30 exact disk files (0 proven retained)\n"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"launch": {
|
||||||
|
"bytes": 1663,
|
||||||
|
"sha256": "d4ee809d68f036c09801b4a85977696a76010b58e9a380fdec8f7e30498302b4"
|
||||||
|
},
|
||||||
|
"closure": {
|
||||||
|
"bytes": 398,
|
||||||
|
"sha256": "b7b978e3b762bfb2d2427b69fb247419576bff09e663ccaae25ea79342cf725b"
|
||||||
|
},
|
||||||
|
"archiver": {
|
||||||
|
"bytes": 16147,
|
||||||
|
"sha256": "b619f0db6dbbb430f0bcb6104c1b09d0bc25b87e9cb93a07441e5a3f5fafd72c"
|
||||||
|
},
|
||||||
|
"recorder": {
|
||||||
|
"bytes": 1225,
|
||||||
|
"sha256": "46993f6bef7af7b443c5d42505aa143ac397fd30c2562d4675a1d6376fbf32ff"
|
||||||
|
}
|
||||||
|
}
|
||||||
+29
@@ -0,0 +1,29 @@
|
|||||||
|
# Native trial 3 — independent evidence review
|
||||||
|
|
||||||
|
The inspected original captures support the bounded Escape correction and word/line replacement claims. This was a **wide-window development replay**, not a new minimum-window or packaged-release acceptance run. No additional concrete defect was found in these captures. This review ran only read-only file/hash/ZIP checks and viewed stored images; no application, oracle, compiler or UI operation was run.
|
||||||
|
|
||||||
|
## Recorded execution and observations
|
||||||
|
|
||||||
|
PID 4288 ran from 2026-09-13T04:44:53.418424Z to 04:51:07.980916Z and closed normally with exit 0. Both logs are empty and closure reports unchanged GUI/DLL. GUI SHA256 `0ee1425174bdc93399f97d926f832b3ece1671bc4cd484d45a2844bdeed08399`, 114,171,904 bytes. Session duration is not a responsiveness measurement.
|
||||||
|
|
||||||
|
Directly inspected original JPEGs 008, 019–024, 026, and 028–031:
|
||||||
|
|
||||||
|
- 019 displays Actions over Find and the scrolled References drawer. 020 removes only Actions; Find and the same lower reference rows remain. 021 removes Find while retaining the drawer's lower rows/full `oa/participants.arcadia` path and showing the selected `oa_control` word in the editor. 022 then closes the drawer with that word still selected.
|
||||||
|
- 023 shows the whole selected word replaced by `oa_control_escape_probe`, with the surrounding declaration intact and Unsaved changes. 024 shows original `oa_control` restored and All changes saved. The latter is the clean-state indicator after Undo, not evidence that a Save command was invoked.
|
||||||
|
- 026 shows References reopened with the same lower group position and Stale before the alias; displaying retained stale results does not authorize stale navigation.
|
||||||
|
- 028 visibly focuses Find over the drawer. 029 closes Find, retaining the drawer and the selected description line. 030 shows the whole line replaced with `description "escape_line_probe";`, and 031 shows `description "";` restored and All changes saved. This supports both retained selection and usable editor focus after the focused Find Escape.
|
||||||
|
- 008 is still 1442x932 despite its `text-minimum` name. The failed resize attempts and cancelled OS sizing must remain failed attempts. These captures add no 1100x700 minimum-window verification; that geometry remains bounded to trial 2 and its source version.
|
||||||
|
|
||||||
|
There are 31 metadata states and 34 original JPEGs. Metadata also includes picker/menu surfaces with smaller dimensions; those are not resized application-client evidence. Every metadata image reference exists, is unique, and exactly matches the JPEG inventory. All originals are individually hash-bound in the adjacent JSON; images not listed above were inventory-checked, not claimed as individually visually assessed.
|
||||||
|
|
||||||
|
## Saved-state and archive checks
|
||||||
|
|
||||||
|
One final representative saved-disk receipt is PASS, exit 0, expected variant, all 37 physical files equal, and unchanged by oracle. Its raw stdout/stderr match their receipt hashes; stdout states `PASS exact model/identity/30 reachable sources; 30 exact disk files (0 proven retained)`. Receipt SHA256 `7cd11b75dab124ea7ffc95075c78b35ec87a54d1a211bb5221a7843f4e6b19ae`. This confirms the recorded final saved state; it does not inspect the live unsaved model or independently prove no intermediate Save/Apply. No Save/Apply is the operator's recorded action scope. No rename transaction, simple fixture replay, or full acceptance is inferred from this trial.
|
||||||
|
|
||||||
|
Archive directory: `C:/ar-text-9e8r6t/harness/experiments/text-workspace-native3-20260913`. Manifest SHA256 `07c765910f3d7bda3e298b32f6a12feb578214c61c241b0ac0cebc6c46e28db8`, 24,309 bytes. Independent checks verified all **115 unique payload files / 7,138,817 bytes**, exact archive membership (manifest is the sole additional file), and every payload against its independently located original. All seven external pins read back equal. The nested source ZIP has exactly 526 manifest-bound members, each read with CRC and SHA/size verification. All eight original gate receipts report exit 0 and unchanged inputs, with matching raw log hashes: escape, Clippy, membership, focused, selection, tests, timing and GUI. These are preserved gate results, not new executions by this review.
|
||||||
|
|
||||||
|
The archive correctly excludes executables/DLL payloads, profiles, temporary directories, caches, working fixture copies and duplicate authored fixtures, linking trial2 fixture evidence externally. Archived gate.py/verify_saved.py are preserved current helper bytes and must not be promoted to independently receipt-bound historical execution hashes; the manifest explicitly explains that limitation. Launch and binder helpers have receipt bindings. Recorder and archiver are retained independently: recorder SHA256 `46993f6bef7af7b443c5d42505aa143ac397fd30c2562d4675a1d6376fbf32ff`; updated archiver SHA256 `b619f0db6dbbb430f0bcb6104c1b09d0bc25b87e9cb93a07441e5a3f5fafd72c`.
|
||||||
|
|
||||||
|
Review process note: an initial read-only check assumed the earlier gate log schema (`stdout` object); these receipts actually use `stdoutSha256`. Correcting the reader preserved strict hash equality. A following reader completed all archive/original/external/ZIP/gate checks before failing at Windows cp1252 capture decoding. Explicit UTF-8 completed capture/receipt checking without modifying any input. No producer or runtime retry occurred.
|
||||||
|
|
||||||
|
Machine review and original capture bindings: `native3-evidence-review.json`, SHA256 `6817c45fb595157ff0b5845a4082ba71bc747fe8686a04b44ea6fe565558a143`. The native evidence resolves the inspected wide-window Escape sequence; combined source integration, publication and broader UX disposition remain with the parent.
|
||||||
+18
@@ -0,0 +1,18 @@
|
|||||||
|
# Selection correction report: bounded evidence review
|
||||||
|
|
||||||
|
**PASS — no factual mismatch found.** Reviewed the versioned report and historical Find-only red/green evidence. No retained helpers, builds, tests or GUI actions were executed; no source was edited.
|
||||||
|
|
||||||
|
The manifest has exactly 25 payloads totaling 9,173,324 bytes. Every listed payload's actual size and SHA-256 matches. Four input maps each contain 525 files: red1→red2 changes only `app/text_workspace/focus_selection_tests.rs`; red2→green2 changes only `app/source_symbols.rs`; green1→green2 changes no input bytes. The retained source hashes and green stdout hash match the report.
|
||||||
|
|
||||||
|
Raw red1 stderr identifies the same before-Find child-index panic in all four tests; it is correctly rejected as regression proof. Red2 compiles and has two passing controls and two failures at selected-byte assertions (`Some("")` versus `Some("oa_contact")`). Its timestamps, duration and unchanged-input receipt match the report. Green1 has no compile line, reproduces those failures and is explicitly rejected. Its ZIP source entry retains the old 20:04:46 local modification time; green2's source entry is 20:16:32 with identical source bytes. Green2 stderr records fresh compilation and stdout records four passes; 03:16:36.205020Z–03:17:54.177014Z and 77.9678s support the stated rounded values. These observations support the reported cache-retry interpretation; they are not an independent rerun of Cargo's cache behavior.
|
||||||
|
|
||||||
|
The report properly separates this executed Find-only correction from later departure changes and their pending combined/native evidence. The distinction between a nonmutating live focus restoration and a canonical range retained on a committed departure matches the independent static review. CPU/App Content separation, injected Escape bridge message, lack of GPU/window/scroll proof, and lost Word/Line extension mode after real navigation are stated rather than silently accepted.
|
||||||
|
|
||||||
|
This review checked manifest payload hashes, input-map differences, raw receipts/logs and ZIP entry metadata. It did not execute archive builders or independently revalidate every decompressed source member. Historical inputs remain distinct from the currently running combined gate.
|
||||||
|
|
||||||
|
## Bindings
|
||||||
|
|
||||||
|
- Report `C:/ar-text-9e8r6t/harness/text-selection-correction-20260913.md`: SHA-256 `adfd9b5f11cf3ae6c65579f62ec90e529dd8dd569c4fc452e41b5b2994d21e61`.
|
||||||
|
- Experiment manifest: SHA-256 `4580d8cbc2f0347f1ebc1448728af6ef8885f6ebbd4c2d2dbe0c41eac97fb283` (4,401 bytes), binding all 25 checked payloads.
|
||||||
|
- Green2 stdout: SHA-256 `6f19f24e2fa37db4fc95c9b2d11b65e420299c6c6f90e4657e7e8e328b326fa0`.
|
||||||
|
- The separate durable departure static review is `departure-selection-review.md`, SHA-256 `f872c511eab74ca05d35b97ad31ee1a879c42717e40a698959501b6f96546dac`; it retains the five final formatted source hashes and the corrected fixture finding.
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"command": [
|
||||||
|
"cargo",
|
||||||
|
"clippy",
|
||||||
|
"--locked",
|
||||||
|
"--offline",
|
||||||
|
"-p",
|
||||||
|
"oa-desktop",
|
||||||
|
"--all-targets",
|
||||||
|
"--",
|
||||||
|
"-D",
|
||||||
|
"warnings"
|
||||||
|
],
|
||||||
|
"started": "2026-09-13T01:48:18.205790+00:00",
|
||||||
|
"finished": "2026-09-13T01:50:22.597629+00:00",
|
||||||
|
"seconds": 124.39168569999674,
|
||||||
|
"exitCode": 0,
|
||||||
|
"inputsUnchanged": true,
|
||||||
|
"stdoutSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||||
|
"stderrSha256": "1528c8ddc7b7275a08f859d245b31b33e151e5ab2619f7258c815e51ec33144c"
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
Checking oa-desktop v0.2.0 (C:\ar-text-9e8r6t\crates\oa-desktop)
|
||||||
|
Finished `dev` profile [unoptimized] target(s) in 2m 03s
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"atUtc": "2026-09-13T01:48:17.334248+00:00",
|
||||||
|
"versions": {
|
||||||
|
"rustc": "rustc 1.98.1 (48a229cea 2026-09-01)\nbinary: rustc\ncommit-hash: 48a229ceaefd4985c50990b14116b6d856af0985\ncommit-date: 2026-09-01\nhost: x86_64-pc-windows-gnullvm\nrelease: 1.98.1\nLLVM version: 22.1.8\n",
|
||||||
|
"cargo": "cargo 1.98.1 (797e8a9bc 2026-08-05)\n"
|
||||||
|
},
|
||||||
|
"variables": {
|
||||||
|
"RUSTUP_HOME": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\rustup",
|
||||||
|
"CARGO_HOME": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo",
|
||||||
|
"RUSTUP_TOOLCHAIN": "stable-x86_64-pc-windows-gnullvm",
|
||||||
|
"CARGO_TARGET_DIR": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm",
|
||||||
|
"CARGO_BUILD_JOBS": "1",
|
||||||
|
"CARGO_TARGET_X86_64_PC_WINDOWS_GNULLVM_LINKER": "clang.exe"
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"command": [
|
||||||
|
"cargo",
|
||||||
|
"test",
|
||||||
|
"--locked",
|
||||||
|
"--offline",
|
||||||
|
"-p",
|
||||||
|
"oa-desktop",
|
||||||
|
"--bin",
|
||||||
|
"arcadia-studio",
|
||||||
|
"--",
|
||||||
|
"--list"
|
||||||
|
],
|
||||||
|
"started": "2026-09-13T01:50:23.457615+00:00",
|
||||||
|
"finished": "2026-09-13T02:05:04.869589+00:00",
|
||||||
|
"seconds": 881.4089695000002,
|
||||||
|
"exitCode": 0,
|
||||||
|
"inputsUnchanged": true,
|
||||||
|
"stdoutSha256": "45a54d47fdd9a87fd6d55e13a6f0ee4f19f4253e099a6efa367704d50d77cf76",
|
||||||
|
"stderrSha256": "e760e45395cb4f5c0f101d8edddcc9ec1040d792fe8de6baf5dc58e3c40bf98b",
|
||||||
|
"testMembership": {
|
||||||
|
"listed": 857,
|
||||||
|
"required": [
|
||||||
|
"app::source_symbols::tests::retained_choices_cannot_replay_after_hide_or_references_problems_references",
|
||||||
|
"app::text_workspace::lifecycle_tests::invalid_repair_open_clears_prior_presentation_and_publishes_current_problems_preserving_worker",
|
||||||
|
"app::text_workspace::lifecycle_tests::saved_new_destination_republishes_current_warning_and_refuses_old_primary_and_related",
|
||||||
|
"app::text_workspace::tests::document_reset_preserves_popup_token_sequence_and_drops_old_menu_authority",
|
||||||
|
"app::text_workspace::tests::stale_retained_group_can_expand_without_navigating_or_applying_drafts",
|
||||||
|
"diagnostic_input::tests::same_publication_new_visit_cancels_armed_rows_without_a_hidden_tree_frame",
|
||||||
|
"views::text_workspace::tests::drawer_clamps_to_actual_center_allocation_including_oversize_requests",
|
||||||
|
"views::text_workspace::tests::highlighted_sensor_editor_retains_real_scrolled_buffer_across_panel_rebuilds"
|
||||||
|
],
|
||||||
|
"missing": [],
|
||||||
|
"diagnosticGuardCount": 20
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
Compiling oa-core v0.2.0 (C:\ar-text-9e8r6t\crates\oa-core)
|
||||||
|
Compiling oa-server v0.2.0 (C:\ar-text-9e8r6t\crates\oa-server)
|
||||||
|
Compiling oa-desktop v0.2.0 (C:\ar-text-9e8r6t\crates\oa-desktop)
|
||||||
|
Finished `test` profile [unoptimized] target(s) in 14m 40s
|
||||||
|
Running unittests src\main.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\target-gnullvm\debug\deps\arcadia_studio-58e30cee1fd51a8b.exe)
|
||||||
@@ -0,0 +1,859 @@
|
|||||||
|
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_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::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_scroll_and_real_resize_invalidate_only_pointer_context: 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_scroll_resize_and_passive_geometry_keep_drafts_and_current_origin: 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::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_rename::alias_input::tests::effective_escape_reset_follows_child_after_early_returns: test
|
||||||
|
app::source_rename::alias_input::tests::held_paste_cache_contains_only_previously_admitted_text: test
|
||||||
|
app::source_rename::alias_input::tests::paste_refusal_matches_child_focus_enabled_and_stored_modifier_protocol: test
|
||||||
|
app::source_rename::editor_patch::tests::all_preflight_refusals_leave_text_cursor_and_selection_unchanged: test
|
||||||
|
app::source_rename::editor_patch::tests::already_laid_out_editor_notifies_highlighter_from_zero_after_later_line_patch: test
|
||||||
|
app::source_rename::editor_patch::tests::exact_text_matrix_and_reverse_preserve_endings: test
|
||||||
|
app::source_rename::editor_patch::tests::unchanged_content_preserves_selection_and_next_direct_edit_works: test
|
||||||
|
app::source_rename::tests::actual_alias_clipboard_rejects_controls_without_normalizing_or_moving_selection: test
|
||||||
|
app::source_rename::tests::actual_captured_escape_closes_only_its_priority_owner_and_retains_worker: test
|
||||||
|
app::source_rename::tests::actual_dialog_enter_requests_preview_even_when_confirm_is_available: test
|
||||||
|
app::source_rename::tests::actual_dialog_real_paragraph_geometry_keeps_input_preview_and_footer_reachable: test
|
||||||
|
app::source_rename::tests::alias_editor_sync_fallback_restores_accepted_display_and_preserves_model_history: test
|
||||||
|
app::source_rename::tests::close_and_reset_retain_worker_slot_until_exact_completion_without_reopening: test
|
||||||
|
app::source_rename::tests::complete_alias_change_preserves_literals_and_last_comment_separated_origin_and_undo: test
|
||||||
|
app::source_rename::tests::full_details_selection_survives_readonly_and_passive_messages_and_tracks_input: test
|
||||||
|
app::source_rename::tests::genuine_save_receipts_preserve_same_destination_preview_but_invalidate_save_as: test
|
||||||
|
app::source_rename::tests::invalid_open_retains_accepted_document_but_refuses_alias_rename: test
|
||||||
|
app::source_rename::tests::last_same_line_use_beyond_reference_row_limit_and_selection_boundaries: test
|
||||||
|
app::source_rename::tests::mounted_editor_f2_requires_focus_and_no_modifiers: test
|
||||||
|
app::source_rename::tests::paging_all_utf8_fragments_preserves_exact_preview_and_approval: test
|
||||||
|
app::source_rename::tests::preview_glyph_tests::actual_preview_source_glyphs_clear_scrollbar_and_all_long_fragments_are_reachable: test
|
||||||
|
app::source_rename::tests::preview_scroll_tests::delayed_page_and_approval_operations_cannot_reset_a_new_destination: test
|
||||||
|
app::source_rename::tests::preview_scroll_tests::explicit_navigation_resets_retained_scroll_but_id_change_alone_does_not: test
|
||||||
|
app::source_rename::tests::preview_scroll_tests::repeated_page_visits_filters_and_fast_preview_completion_have_distinct_destinations: test
|
||||||
|
app::source_rename::tests::property_draft_and_detached_buffer_refuse_without_hidden_apply: test
|
||||||
|
app::source_rename::tests::replacement_generation_aba_and_modal_shortcuts_cannot_commit_stale_preview: test
|
||||||
|
app::source_rename::tests::same_alias_invalid_and_cancel_keep_existing_redo_and_source_selection: test
|
||||||
|
app::source_rename::tests::source_edit_undo_and_recovery_invalidation_do_not_revive_approval: test
|
||||||
|
app::source_rename::tests::stale_dialog_envelopes_do_not_cancel_new_same_path_form_or_its_approval: test
|
||||||
|
app::source_rename::timing_tests::accepted_release1_prepare_commit_sync_and_confirm_timing: test
|
||||||
|
app::source_rename::timing_tests::layout_timing_tests::accepted_release1_constructor_vs_reuse_through_next_highlight: 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_retains_hidden_completion_without_reopening_or_navigation: test
|
||||||
|
app::source_symbols::tests::closed_results_stay_closed_on_exact_back_and_reopen_only_for_a_return_notice: test
|
||||||
|
app::source_symbols::tests::completion_retains_current_display_but_rejects_navigation_after_context_changes: test
|
||||||
|
app::source_symbols::tests::delayed_definition_after_hide_or_tab_change_retains_data_without_reopening_or_focus: 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_hides_results_and_cancels_navigation_but_retains_latest_display: 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::hidden_completion_checks_exact_bytes_even_when_snapshot_key_was_not_advanced: test
|
||||||
|
app::source_symbols::tests::invalid_unapplied_drafts_navigate_without_apply_or_losing_either_history: test
|
||||||
|
app::source_symbols::tests::matching_old_worker_cannot_replace_a_newer_display_owner: 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::popup_escape_has_no_duplicate_bridge_and_dismissal_preserves_underlying_find_and_drawer: test
|
||||||
|
app::source_symbols::tests::reset_retains_worker_slot_until_old_completion_then_admits_new_session_query: test
|
||||||
|
app::source_symbols::tests::retained_choices_cannot_replay_after_hide_or_references_problems_references: test
|
||||||
|
app::source_symbols::tests::same_worker_with_changed_request_envelope_cannot_publish_or_navigate: 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::text_workspace::lifecycle_tests::canceled_or_failed_open_that_installs_nothing_retains_current_presentation_and_diagnostics: test
|
||||||
|
app::text_workspace::lifecycle_tests::invalid_repair_open_clears_prior_presentation_and_publishes_current_problems_preserving_worker: test
|
||||||
|
app::text_workspace::lifecycle_tests::saved_new_destination_does_not_revalidate_already_stale_warning_locations: test
|
||||||
|
app::text_workspace::lifecycle_tests::saved_new_destination_republishes_current_warning_and_refuses_old_primary_and_related: test
|
||||||
|
app::text_workspace::tests::current_diagnostic_target_navigates_but_changed_source_or_clear_refuses_it: test
|
||||||
|
app::text_workspace::tests::diagnostic_span_must_be_loaded_ordered_and_utf8_exact: test
|
||||||
|
app::text_workspace::tests::disabled_entry_cannot_become_a_new_action_under_the_same_menu_token: test
|
||||||
|
app::text_workspace::tests::document_reset_preserves_popup_token_sequence_and_drops_old_menu_authority: test
|
||||||
|
app::text_workspace::tests::enabled_entry_is_readmitted_at_dispatch_and_blocked_by_busy: test
|
||||||
|
app::text_workspace::tests::equal_diagnostic_republication_invalidates_primary_and_related_targets: test
|
||||||
|
app::text_workspace::tests::menu_own_open_invalidation_does_not_stale_find_and_invoke_is_once: test
|
||||||
|
app::text_workspace::tests::menu_source_caret_document_path_and_interaction_changes_refuse_stale_find: test
|
||||||
|
app::text_workspace::tests::old_dismiss_and_invoke_do_not_consume_a_newer_menu: test
|
||||||
|
app::text_workspace::tests::only_valid_explicit_group_and_resize_intent_cancel_pending_navigation: test
|
||||||
|
app::text_workspace::tests::queued_toolbar_request_cannot_retarget_after_source_change: test
|
||||||
|
app::text_workspace::tests::reference_groups_and_scroll_survive_tabs_and_reject_old_visits_and_queries: test
|
||||||
|
app::text_workspace::tests::reset_removes_ui_and_publication_authority_and_resize_rejects_nan: test
|
||||||
|
app::text_workspace::tests::retained_primary_and_related_targets_cannot_replay_after_hide_or_problems_references_problems: test
|
||||||
|
app::text_workspace::tests::source_and_property_drafts_keep_find_and_text_undo_without_model_application: test
|
||||||
|
app::text_workspace::tests::stale_retained_group_can_expand_without_navigating_or_applying_drafts: 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::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_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_old_empty_action_cannot_open_a_previous_owner_or_layer: 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_scroll_resize_and_bounds_changes_cancel_captured_slots: test
|
||||||
|
behavior::direct_canvas_tests::direct_scrolled_canvas_maps_raw_pointer_events_to_the_visible_slot: 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_observed_scroll_current_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::workspace::tests::scenario_workspace_allocates_remaining_height_and_pins_actions_at_minimum_and_wide_sizes: test
|
||||||
|
behavior::scenario::workspace::tests::scenario_workspace_caller_restores_actual_mounted_canvas_and_shelf_with_camera: test
|
||||||
|
behavior::scenario::workspace::tests::scenario_workspace_canvas_and_form_scroll_survive_disclosures_focus_width_and_resize: test
|
||||||
|
behavior::scenario::workspace::tests::scenario_workspace_choosing_tools_preserves_valid_and_invalid_pending_editors: test
|
||||||
|
behavior::scenario::workspace::tests::scenario_workspace_fit_reobserves_same_sized_owner_and_document_changes: 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_scroll_after_preselection: test
|
||||||
|
behavior::scenario::workspace::tests::scenario_workspace_scaled_and_scrolled_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::workspace::tests::scenario_workspace_whole_app_canvas_tree_survives_pending_shelves_and_focus: 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::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_pending_form_diff_retains_the_canvas_scroll_state: test
|
||||||
|
behavior::topology::direct_tests::direct_process_production_click_click_drag_insert_and_scroll_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_fit_canvas_selection_ignores_retained_ordered_page_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::view::layout_tests::direct_process_pending_editor_uses_available_height_and_keeps_actions_visible: test
|
||||||
|
behavior::topology::view::layout_tests::process_fit_layout_disclosures_and_pending_editor_keep_real_manual_canvas_scroll: test
|
||||||
|
behavior::topology::view::layout_tests::process_fit_layout_measures_remaining_canvas_with_details_forms_and_window_resize: test
|
||||||
|
behavior::topology::view::layout_tests::process_fit_whole_app_focus_and_disclosures_retain_canvas_tree_with_pending_raw_form: 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
|
||||||
|
diagnostic_input::tests::already_captured_terminal_cancels_child_without_activation_or_lingering_press: test
|
||||||
|
diagnostic_input::tests::captured_terminal_cancellation_preserves_same_publication_focusable_child_state: test
|
||||||
|
diagnostic_input::tests::current_primary_and_related_mouse_clicks_survive_same_publication_diff: test
|
||||||
|
diagnostic_input::tests::current_touch_activates_primary_and_related_and_cancel_does_not_activate: test
|
||||||
|
diagnostic_input::tests::fresh_mouse_press_after_missing_stale_release_can_activate_current_row: test
|
||||||
|
diagnostic_input::tests::hidden_zero_height_scroller_delivers_cancelled_mouse_and_touch_terminals_to_guard: test
|
||||||
|
diagnostic_input::tests::hidden_zero_size_list_consumes_release_outside_old_bounds_once: test
|
||||||
|
diagnostic_input::tests::missed_press_is_ignored_and_dragging_release_outside_does_not_activate: test
|
||||||
|
diagnostic_input::tests::negative_control_iced_button_retargets_a_press_after_plain_tree_diff: test
|
||||||
|
diagnostic_input::tests::negative_control_plain_focusable_row_migrates_activation_to_replacement: test
|
||||||
|
diagnostic_input::tests::negative_control_removing_unguarded_rows_exposes_background_release: test
|
||||||
|
diagnostic_input::tests::outer_scroll_offset_survives_same_and_changed_publications: test
|
||||||
|
diagnostic_input::tests::replaced_primary_and_related_rows_consume_stale_release_then_accept_new_click: test
|
||||||
|
diagnostic_input::tests::replaced_touch_consumes_lift_or_cancel_even_when_hidden: test
|
||||||
|
diagnostic_input::tests::same_publication_missing_terminal_recovers_on_fresh_mouse_or_touch_down: test
|
||||||
|
diagnostic_input::tests::same_publication_new_visit_cancels_armed_rows_without_a_hidden_tree_frame: test
|
||||||
|
diagnostic_input::tests::same_publication_preserves_focus_but_replacement_never_inherits_activation: test
|
||||||
|
diagnostic_input::tests::stale_release_does_not_bubble_to_real_background_controls: test
|
||||||
|
diagnostic_input::tests::stale_touch_release_does_not_disarm_a_new_current_gesture: test
|
||||||
|
diagnostic_input::tests::unrelated_finger_or_mouse_release_cannot_complete_another_fingers_press: 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
|
||||||
|
document::alias_rename::tests::each_identity_family_changes_only_authored_alias_roles_and_one_history_entry: test
|
||||||
|
document::alias_rename::tests::equal_bytes_undo_replay_cross_document_and_exhausted_revision_refuse: test
|
||||||
|
document::alias_rename::tests::exact_history_capacity_admits_immediate_undo_and_rejects_larger_candidate: test
|
||||||
|
document::alias_rename::tests::highlighted_keyword_alias_is_valid_without_normalizing_input: test
|
||||||
|
document::alias_rename::tests::invalid_and_identical_aliases_preserve_live_state_and_redo: test
|
||||||
|
document::alias_rename::tests::mint_and_commit_refuse_exhausted_or_inconsistent_live_history_estimate: test
|
||||||
|
document::alias_rename::tests::mutable_public_preview_copies_cannot_change_prepared_authority: test
|
||||||
|
document::alias_rename::tests::preview_retains_latest_saved_baseline_and_recovery_state: 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::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::origin_keeps_exact_hit_when_display_rows_are_omitted: 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_rename::origin::tests::maps_last_repeated_reference_with_unicode_crlf_and_comment_separator: test
|
||||||
|
source_rename::origin::tests::permits_identifier_keyword_transitions_in_alias_roles: test
|
||||||
|
source_rename::origin::tests::preserves_final_same_line_occurrence_not_first_or_prose: test
|
||||||
|
source_rename::origin::tests::rejects_changed_trivia_non_alias_words_and_wrong_marker: test
|
||||||
|
source_rename::preview::tests::each_bound_is_exact_and_overflow_never_returns_a_partial_preview: test
|
||||||
|
source_rename::preview::tests::first_and_last_lines_form_complete_separate_hunks_and_pages: test
|
||||||
|
source_rename::preview::tests::limits_apply_to_the_whole_preview_not_each_file: test
|
||||||
|
source_rename::preview::tests::long_unicode_lines_are_fully_reachable_as_bounded_fragments: test
|
||||||
|
source_rename::preview::tests::nearby_changes_merge_and_all_changed_files_are_reachable: test
|
||||||
|
source_rename::preview::tests::preserves_unicode_mixed_endings_and_counts_lines_not_repeated_uses: test
|
||||||
|
source_rename::preview::tests::refuses_membership_entry_line_count_and_line_ending_changes: test
|
||||||
|
source_rename::preview::tests::unchanged_and_empty_sources_have_no_preview: 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::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_symbols::tests::suffixes_distinguish_nested_duplicate_basenames_without_changing_unicode: test
|
||||||
|
views::source_tests::source_editor_windows_menu_payload_is_inert_but_space_and_altgr_still_edit: test
|
||||||
|
views::text_workspace::tests::drawer_clamps_to_actual_center_allocation_including_oversize_requests: test
|
||||||
|
views::text_workspace::tests::five_slots_keep_editor_state_and_selection_through_explicit_and_passive_changes: test
|
||||||
|
views::text_workspace::tests::highlighted_sensor_editor_retains_real_scrolled_buffer_across_panel_rebuilds: test
|
||||||
|
views::text_workspace::tests::keyboard_resize_uses_effective_height_and_only_exact_open_drawer_shortcut: 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
|
||||||
|
|
||||||
|
857 tests, 0 benchmarks
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"command": [
|
||||||
|
"cargo",
|
||||||
|
"test",
|
||||||
|
"--locked",
|
||||||
|
"--offline",
|
||||||
|
"-p",
|
||||||
|
"oa-desktop",
|
||||||
|
"--bin",
|
||||||
|
"arcadia-studio",
|
||||||
|
"--",
|
||||||
|
"--test-threads=1"
|
||||||
|
],
|
||||||
|
"started": "2026-09-13T02:05:06.654255+00:00",
|
||||||
|
"finished": "2026-09-13T02:12:23.514763+00:00",
|
||||||
|
"seconds": 436.85842480000065,
|
||||||
|
"exitCode": 101,
|
||||||
|
"inputsUnchanged": true,
|
||||||
|
"stdoutSha256": "6fdccf0a6c302f9b04ff6a64d38eb9cbc010d56f978349086055937c6e86333f",
|
||||||
|
"stderrSha256": "b01b054ef4d002426be823d05362d121ae494bcad224a4d457aba266f013ff8a"
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
Finished `test` profile [unoptimized] target(s) in 4.21s
|
||||||
|
Running unittests src\main.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\target-gnullvm\debug\deps\arcadia_studio-58e30cee1fd51a8b.exe)
|
||||||
|
error: test failed, to rerun pass `-p oa-desktop --bin arcadia-studio`
|
||||||
@@ -0,0 +1,874 @@
|
|||||||
|
|
||||||
|
running 857 tests
|
||||||
|
test app::architecture_authoring::tests::architecture_allocated_work_is_root_owned_and_one_exact_history_change ... ok
|
||||||
|
test app::architecture_authoring::tests::architecture_blank_names_and_escape_never_accept_placeholder_or_rename ... ok
|
||||||
|
test app::architecture_authoring::tests::architecture_captured_escape_does_not_cancel_other_controls_or_placement ... ok
|
||||||
|
test app::architecture_authoring::tests::architecture_f2_routes_selected_node_to_inline_rename_and_exact_undo ... ok
|
||||||
|
test app::architecture_authoring::tests::architecture_first_focused_input_escape_cancels_create_and_rename ... ok
|
||||||
|
test app::architecture_authoring::tests::architecture_invalid_click_cannot_poison_inline_or_checkpoint_geometry ... ok
|
||||||
|
test app::architecture_authoring::tests::architecture_stale_submit_keeps_create_and_rename_visible_and_exact ... ok
|
||||||
|
test app::architecture_authoring_tests::architecture_cancelled_gesture_cannot_commit_a_later_named_draft ... ok
|
||||||
|
test app::architecture_authoring_tests::architecture_canvas_left_click_uses_world_coordinate_once_at_zoom_and_pan ... ok
|
||||||
|
test app::architecture_authoring_tests::architecture_checkpoint_retains_exact_name_point_and_fresh_binding_without_commands ... ok
|
||||||
|
test app::architecture_authoring_tests::architecture_context_choices_are_small_and_system_is_singleton ... ok
|
||||||
|
test app::architecture_authoring_tests::architecture_contextual_allocation_creates_work_relation_and_node_in_one_undo ... ok
|
||||||
|
test app::architecture_authoring_tests::architecture_creation_names_before_commit_preserves_camera_and_undoes_once ... ok
|
||||||
|
test app::architecture_authoring_tests::architecture_existing_inventory_is_contextual_and_placement_never_implies_allocation ... ok
|
||||||
|
test app::architecture_authoring_tests::architecture_f2_rename_preserves_identity_placement_and_atomic_history ... ok
|
||||||
|
test app::architecture_authoring_tests::architecture_name_survives_rejected_click_resize_navigation_and_escape_is_explicit ... ok
|
||||||
|
test app::architecture_authoring_tests::architecture_rejected_submission_keeps_inline_name_visible_and_invalid_click_is_ignored ... ok
|
||||||
|
test app::architecture_authoring_tests::basic_transition_explicit_overview_focus_wins_over_an_already_populated_architecture ... ok
|
||||||
|
test app::behavior_lifecycle_tests::incomplete_behavior_form_is_dirty_close_save_retains_it_and_cancel_allows_switching ... ok
|
||||||
|
test app::behavior_lifecycle_tests::passive_behavior_canvas_events_do_not_apply_property_drafts ... ok
|
||||||
|
test app::behavior_lifecycle_tests::pending_behavior_blocks_navigation_property_edits_and_model_history ... ok
|
||||||
|
test app::behavior_lifecycle_tests::pending_behavior_blocks_source_creation_and_source_history_replay ... ok
|
||||||
|
test app::behavior_lifecycle_tests::save_prepares_behavior_before_opening_destination_and_cancel_keeps_one_undo ... ok
|
||||||
|
test app::behavior_lifecycle_tests::source_writeback_failure_keeps_typed_behavior_form_for_repair_and_one_undo ... ok
|
||||||
|
test app::checkpoints::tests::checkpoint_completion_releases_the_writer_while_a_context_menu_is_open ... ok
|
||||||
|
test app::checkpoints::tests::checkpoint_inline_create_and_rename_restore_focus_without_changing_drafts_or_history ... ok
|
||||||
|
test app::checkpoints::tests::checkpoint_noninline_contexts_keep_other_focus_and_still_lint ... ok
|
||||||
|
test app::checkpoints::tests::discard_and_close_waits_for_the_late_checkpoint_then_retires_it ... ok
|
||||||
|
test app::checkpoints::tests::home_resume_keeps_state_view_while_explicit_architecture_remains_reachable ... ok
|
||||||
|
test app::checkpoints::tests::home_resume_retains_invalid_source_and_property_drafts ... ok
|
||||||
|
test app::checkpoints::tests::home_resume_returns_to_each_actual_workspace_without_model_edits ... ok
|
||||||
|
test app::checkpoints::tests::malformed_checkpoint_does_not_replace_the_current_model ... ok
|
||||||
|
test app::checkpoints::tests::recent_and_recovery_navigation_respect_unsaved_decision ... ok
|
||||||
|
test app::checkpoints::tests::restored_copy_keeps_raw_property_and_requires_save_without_local_or_hosted_binding ... ok
|
||||||
|
test app::checkpoints::tests::saving_an_older_snapshot_keeps_recovery_for_newer_unsaved_work ... ok
|
||||||
|
test app::checkpoints::tests::stale_write_completion_cannot_recover_a_discarded_document ... ok
|
||||||
|
test app::checkpoints::tests::walkthrough_request_keeps_unfinished_source_behind_the_normal_pending_guard ... ok
|
||||||
|
test app::data_paging_lifecycle_tests::paging_preserves_same_context_and_resets_on_layer_or_document_replacement ... ok
|
||||||
|
test app::diagram_selection_tests::changing_visible_view_follows_its_clean_inspector_without_a_model_edit ... ok
|
||||||
|
test app::diagram_selection_tests::diagram_switch_preserves_an_independent_semantic_inspection ... ok
|
||||||
|
test app::diagram_selection_tests::diagram_uuid_edit_follows_the_same_view_or_a_different_picker_target ... ok
|
||||||
|
test app::diagram_selection_tests::invalid_view_draft_blocks_the_switch_and_retains_raw_input ... ok
|
||||||
|
test app::diagram_selection_tests::stale_diagram_choice_never_applies_an_unrelated_valid_draft ... ok
|
||||||
|
test app::diagram_selection_tests::valid_pending_view_edit_applies_to_old_view_then_inspects_the_new_view ... ok
|
||||||
|
test app::direct_scenario_tests::direct_scenario_creation_and_reorder_preserve_selection_and_each_undo_once ... ok
|
||||||
|
test app::direct_scenario_tests::direct_scenario_rejects_every_stale_context_and_preserves_property_drafts ... ok
|
||||||
|
test app::direct_scenario_tests::direct_scenario_scroll_and_real_resize_invalidate_only_pointer_context ... ok
|
||||||
|
test app::direct_scenario_tests::direct_scenario_source_failure_and_navigation_keep_form_until_success ... ok
|
||||||
|
test app::hosted::tests::hosted_actual_app_tasks_publish_edit_conflict_correct_credentials_reload_and_open ... ok
|
||||||
|
test app::hosted::tests::hosted_catalog_invalidation_follows_service_writes_and_observed_revision_changes ... ok
|
||||||
|
test app::hosted::tests::hosted_catalog_search_credentials_and_failed_refresh_never_mix_result_scopes ... ok
|
||||||
|
test app::hosted::tests::hosted_changed_bound_head_does_not_invalidate_another_services_empty_filter ... ok
|
||||||
|
test app::hosted::tests::hosted_conflict_fetches_review_without_adoption_and_reload_is_undoable ... ok
|
||||||
|
test app::hosted::tests::hosted_detached_drafts_and_recovery_remain_available_after_rejected_publish ... ok
|
||||||
|
test app::hosted::tests::hosted_failed_cross_service_publication_checks_and_reloads_its_own_resource ... ok
|
||||||
|
test app::hosted::tests::hosted_failed_or_cancelled_local_open_keeps_the_existing_document_and_destination ... ok
|
||||||
|
test app::hosted::tests::hosted_invalid_and_detached_source_drafts_never_start_network_writes ... ok
|
||||||
|
test app::hosted::tests::hosted_invalid_local_open_repair_saves_locally_and_never_replaces_old_resource ... ok
|
||||||
|
test app::hosted::tests::hosted_modal_blocks_underlying_edits_and_credentials_are_redacted ... ok
|
||||||
|
test app::hosted::tests::hosted_new_revision_invalidates_filtered_catalog_even_without_a_displayed_row ... ok
|
||||||
|
test app::hosted::tests::hosted_only_successful_source_save_as_changes_the_active_destination ... ok
|
||||||
|
test app::hosted::tests::hosted_open_waits_for_unsaved_guard_and_failed_open_preserves_current_document ... ok
|
||||||
|
test app::hosted::tests::hosted_publish_acknowledges_only_the_sent_snapshot_and_retains_undo ... ok
|
||||||
|
test app::hosted::tests::hosted_stale_completions_do_not_clear_current_busy_or_adopt_another_document ... ok
|
||||||
|
test app::hosted::tests::hosted_unknown_save_is_acknowledged_by_exact_readback_without_retry ... ok
|
||||||
|
test app::lint_tests::committed_check_cache_follows_edit_and_undo_while_drafts_stay_separate ... ok
|
||||||
|
test app::lint_tests::lint_coalesces_work_and_rejects_obsolete_results ... ok
|
||||||
|
test app::lint_tests::prior_document_lint_cannot_enter_reopened_model_or_block_next_checks ... ok
|
||||||
|
test app::port_view_tests::catalog_creation_follows_the_new_port_and_keeps_group_browsing_explicit ... ok
|
||||||
|
test app::port_view_tests::filtered_active_view_cannot_hide_a_created_port_when_eligible_owner_view_is_folded ... ok
|
||||||
|
test app::process_canvas::direct_process_dirty_source_blocks_canvas_creation_without_losing_text ... ok
|
||||||
|
test app::process_canvas::tests::direct_process_app_open_source_and_back_preserve_local_reference_identity ... ok
|
||||||
|
test app::process_canvas::tests::direct_process_app_same_owner_selection_preserves_tool_but_owner_change_resets_it ... ok
|
||||||
|
test app::process_canvas::tests::direct_process_app_save_scroll_resize_and_passive_geometry_keep_drafts_and_current_origin ... ok
|
||||||
|
test app::process_canvas::tests::direct_process_app_source_failure_retains_form_then_commits_once_and_selects_occurrence ... ok
|
||||||
|
test app::process_canvas::tests::direct_process_app_stale_context_dirty_source_and_properties_never_mutate ... ok
|
||||||
|
test app::process_canvas::tests::direct_process_append_empty_first_second_exchange_has_exact_source_history ... ok
|
||||||
|
test app::process_canvas::tests::process_focus_retains_rejected_draft_and_guards_selection_until_panels_restore ... ok
|
||||||
|
test app::repair_save_state_tests::recovering_applied_repair_rebinds_rolled_back_disk_bytes_without_changing_model ... ok
|
||||||
|
test app::repair_save_state_tests::recovery_missing_entry_or_failed_reload_preserves_current_destination_save_authority ... ok
|
||||||
|
test app::repair_save_state_tests::repair_history_compares_to_new_disk_baseline_and_then_successful_save ... ok
|
||||||
|
test app::repair_save_state_tests::repair_to_previous_saved_bytes_requires_save_at_new_destination_and_guards_close ... ok
|
||||||
|
test app::repair_save_state_tests::valid_equal_content_at_distinct_destinations_stays_clean ... ok
|
||||||
|
test app::review_navigation_tests::rejected_semantic_source_writeback_retains_review_camera_and_original_navigation ... ok
|
||||||
|
test app::review_navigation_tests::review_already_showing_the_target_keeps_its_camera_and_query ... ok
|
||||||
|
test app::review_navigation_tests::semantic_name_take_selects_the_counterpart_view_in_both_directions_with_one_exact_history_entry ... ok
|
||||||
|
test app::review_navigation_tests::semantic_review_without_a_destination_view_clears_the_old_layer_canvas_without_creating_a_view ... ok
|
||||||
|
test app::save_as_tests::save_as_late_receipt_preserves_newer_raw_source_draft_and_destination ... ok
|
||||||
|
test app::save_as_tests::save_as_preflight_rejects_historical_collision_before_starting_io ... ok
|
||||||
|
test app::save_as_tests::save_as_receipt_then_one_undo_restores_meaning_and_saving_preserves_redo ... ok
|
||||||
|
test app::source_project_tests::closed_detached_file_keeps_first_save_conflict_then_can_be_reloaded_fresh ... ok
|
||||||
|
test app::source_project_tests::inactive_invalid_draft_blocks_graphical_changes_and_diagnostic_switches_files ... ok
|
||||||
|
test app::source_project_tests::json_export_and_rejected_save_as_preserve_source_location_history_and_bytes ... ok
|
||||||
|
test app::source_project_tests::missing_include_open_keeps_old_model_and_can_be_repaired_and_saved ... ok
|
||||||
|
test app::source_project_tests::recovery_after_first_save_failure_retains_target_then_retries_without_reentering_path ... ok
|
||||||
|
test app::source_project_tests::recovery_of_previous_save_as_target_does_not_redirect_current_project ... ok
|
||||||
|
test app::source_project_tests::recovery_open_finds_first_save_journal_without_an_entry_file ... ok
|
||||||
|
test app::source_project_tests::recovery_target_survives_edit_lint_apply_and_rejected_recovery_until_success ... ok
|
||||||
|
test app::source_project_tests::source3_native_open_preserves_report_comments_nesting_and_save_reopen ... ok
|
||||||
|
test app::source_project_tests::two_file_apply_graphical_edit_exact_undo_save_as_and_reopen ... ok
|
||||||
|
test app::source_rename::alias_input::tests::effective_escape_reset_follows_child_after_early_returns ... ok
|
||||||
|
test app::source_rename::alias_input::tests::held_paste_cache_contains_only_previously_admitted_text ... ok
|
||||||
|
test app::source_rename::alias_input::tests::paste_refusal_matches_child_focus_enabled_and_stored_modifier_protocol ... ok
|
||||||
|
test app::source_rename::editor_patch::tests::all_preflight_refusals_leave_text_cursor_and_selection_unchanged ... ok
|
||||||
|
test app::source_rename::editor_patch::tests::already_laid_out_editor_notifies_highlighter_from_zero_after_later_line_patch ... ok
|
||||||
|
test app::source_rename::editor_patch::tests::exact_text_matrix_and_reverse_preserve_endings ... ok
|
||||||
|
test app::source_rename::editor_patch::tests::unchanged_content_preserves_selection_and_next_direct_edit_works ... ok
|
||||||
|
test app::source_rename::tests::actual_alias_clipboard_rejects_controls_without_normalizing_or_moving_selection ... ok
|
||||||
|
test app::source_rename::tests::actual_captured_escape_closes_only_its_priority_owner_and_retains_worker ... ok
|
||||||
|
test app::source_rename::tests::actual_dialog_enter_requests_preview_even_when_confirm_is_available ... ok
|
||||||
|
test app::source_rename::tests::actual_dialog_real_paragraph_geometry_keeps_input_preview_and_footer_reachable ... ok
|
||||||
|
test app::source_rename::tests::alias_editor_sync_fallback_restores_accepted_display_and_preserves_model_history ... ok
|
||||||
|
test app::source_rename::tests::close_and_reset_retain_worker_slot_until_exact_completion_without_reopening ... ok
|
||||||
|
test app::source_rename::tests::complete_alias_change_preserves_literals_and_last_comment_separated_origin_and_undo ... ok
|
||||||
|
test app::source_rename::tests::full_details_selection_survives_readonly_and_passive_messages_and_tracks_input ... ok
|
||||||
|
test app::source_rename::tests::genuine_save_receipts_preserve_same_destination_preview_but_invalidate_save_as ... ok
|
||||||
|
test app::source_rename::tests::invalid_open_retains_accepted_document_but_refuses_alias_rename ... ok
|
||||||
|
test app::source_rename::tests::last_same_line_use_beyond_reference_row_limit_and_selection_boundaries ... ok
|
||||||
|
test app::source_rename::tests::mounted_editor_f2_requires_focus_and_no_modifiers ... ok
|
||||||
|
test app::source_rename::tests::paging_all_utf8_fragments_preserves_exact_preview_and_approval ... ok
|
||||||
|
test app::source_rename::tests::preview_glyph_tests::actual_preview_source_glyphs_clear_scrollbar_and_all_long_fragments_are_reachable ... ok
|
||||||
|
test app::source_rename::tests::preview_scroll_tests::delayed_page_and_approval_operations_cannot_reset_a_new_destination ... ok
|
||||||
|
test app::source_rename::tests::preview_scroll_tests::explicit_navigation_resets_retained_scroll_but_id_change_alone_does_not ... ok
|
||||||
|
test app::source_rename::tests::preview_scroll_tests::repeated_page_visits_filters_and_fast_preview_completion_have_distinct_destinations ... ok
|
||||||
|
test app::source_rename::tests::property_draft_and_detached_buffer_refuse_without_hidden_apply ... ok
|
||||||
|
test app::source_rename::tests::replacement_generation_aba_and_modal_shortcuts_cannot_commit_stale_preview ... ok
|
||||||
|
test app::source_rename::tests::same_alias_invalid_and_cancel_keep_existing_redo_and_source_selection ... ok
|
||||||
|
test app::source_rename::tests::source_edit_undo_and_recovery_invalidation_do_not_revive_approval ... ok
|
||||||
|
test app::source_rename::tests::stale_dialog_envelopes_do_not_cancel_new_same_path_form_or_its_approval ... ok
|
||||||
|
test app::source_rename::timing_tests::accepted_release1_prepare_commit_sync_and_confirm_timing ... ignored, manual Windows dev/debug rename latency trial; run alone with --ignored --nocapture --test-threads=1
|
||||||
|
test app::source_rename::timing_tests::layout_timing_tests::accepted_release1_constructor_vs_reuse_through_next_highlight ... ignored, manual Windows dev/debug editor replacement + layout/highlight trial; run alone with --ignored --nocapture --test-threads=1
|
||||||
|
test app::source_symbols::tests::back_after_origin_edit_uses_its_current_cursor_instead_of_the_old_range ... ok
|
||||||
|
test app::source_symbols::tests::back_keeps_the_latest_64_actual_locations_without_reusing_dropped_history ... ok
|
||||||
|
test app::source_symbols::tests::back_restores_exact_reversed_utf8_selection_and_crlf_source ... ok
|
||||||
|
test app::source_symbols::tests::captured_find_and_modal_escape_use_one_actual_subscription_and_preserve_pending_work ... ok
|
||||||
|
test app::source_symbols::tests::captured_subscription_does_not_duplicate_existing_behavior_or_architecture_routes ... ok
|
||||||
|
test app::source_symbols::tests::close_during_busy_retains_hidden_completion_without_reopening_or_navigation ... ok
|
||||||
|
test app::source_symbols::tests::closed_results_stay_closed_on_exact_back_and_reopen_only_for_a_return_notice ... ok
|
||||||
|
test app::source_symbols::tests::completion_retains_current_display_but_rejects_navigation_after_context_changes ... ok
|
||||||
|
test app::source_symbols::tests::delayed_definition_after_hide_or_tab_change_retains_data_without_reopening_or_focus ... ok
|
||||||
|
test app::source_symbols::tests::detached_duplicate_requires_an_explicit_choice_even_when_included_source_is_validated ... ok
|
||||||
|
test app::source_symbols::tests::escape_dismisses_modal_before_underlying_source_results ... ok
|
||||||
|
test app::source_symbols::tests::escape_hides_results_and_cancels_navigation_but_retains_latest_display ... ok
|
||||||
|
test app::source_symbols::tests::find_close_releases_removed_input_and_guarded_focus_respects_later_input ... ok
|
||||||
|
test app::source_symbols::tests::find_only_captured_escape_closes_once_and_preserves_raw_query_and_selection ... ok
|
||||||
|
test app::source_symbols::tests::hidden_completion_checks_exact_bytes_even_when_snapshot_key_was_not_advanced ... ok
|
||||||
|
test app::source_symbols::tests::invalid_unapplied_drafts_navigate_without_apply_or_losing_either_history ... ok
|
||||||
|
test app::source_symbols::tests::matching_old_worker_cannot_replace_a_newer_display_owner ... ok
|
||||||
|
test app::source_symbols::tests::matching_reveal_ticket_is_required_and_raw_input_invalidates_pending_reveal ... ok
|
||||||
|
test app::source_symbols::tests::old_find_close_cannot_cancel_a_new_file_session_or_reopened_find_intent ... ok
|
||||||
|
test app::source_symbols::tests::old_symbol_widget_envelopes_after_file_switch_preserve_same_session_intent ... ok
|
||||||
|
test app::source_symbols::tests::old_symbol_widget_envelopes_after_reset_preserve_new_same_path_intent ... ok
|
||||||
|
test app::source_symbols::tests::popup_escape_has_no_duplicate_bridge_and_dismissal_preserves_underlying_find_and_drawer ... ok
|
||||||
|
test app::source_symbols::tests::reset_retains_worker_slot_until_old_completion_then_admits_new_session_query ... ok
|
||||||
|
test app::source_symbols::tests::retained_choices_cannot_replay_after_hide_or_references_problems_references ... ok
|
||||||
|
test app::source_symbols::tests::same_worker_with_changed_request_envelope_cannot_publish_or_navigate ... ok
|
||||||
|
test app::source_symbols::tests::saturated_raw_clock_never_authorizes_completion_or_reveal ... ok
|
||||||
|
test app::source_symbols::tests::source_symbols_100_modules_1000_definitions_10000_uses ... ignored, manual 100-module latency/process-memory trial; run alone with --ignored --nocapture --test-threads=1
|
||||||
|
test app::source_symbols::tests::unknown_job_cannot_release_current_worker_and_old_duplicate_cannot_replace_new_results ... ok
|
||||||
|
test app::source_symbols::tests::valid_definition_and_reference_choice_keep_whole_model_and_source_unchanged ... ok
|
||||||
|
test app::state_diagram_tests::all_context_dimensions_reject_stale_selection_camera_and_model_messages ... ok
|
||||||
|
test app::state_diagram_tests::create_view_places_only_its_machine_and_restores_exact_source_in_one_undo ... ok
|
||||||
|
test app::state_diagram_tests::direct_create_connect_select_and_move_keep_semantic_identity_and_atomic_history ... ok
|
||||||
|
test app::state_diagram_tests::fallback_owner_first_selection_keeps_the_captured_context_for_its_first_move ... ok
|
||||||
|
test app::state_diagram_tests::pending_drafts_block_every_direct_mutation_and_passive_camera_preserves_inputs ... ok
|
||||||
|
test app::state_diagram_tests::real_view_tool_and_history_changes_invalidate_old_release_events ... ok
|
||||||
|
test app::state_diagram_tests::rejected_creation_keeps_source_and_selection_then_valid_owner_can_retry ... ok
|
||||||
|
test app::state_diagram_tests::same_size_viewport_after_revision_or_tool_epoch_does_not_refit_the_camera ... ok
|
||||||
|
test app::state_diagram_tests::shared_semantic_states_keep_architecture_and_behavior_placements_independent ... ok
|
||||||
|
test app::state_diagram_tests::state_diagram_routes_constructor_and_source_open_to_the_existing_workspace_without_edits ... ok
|
||||||
|
test app::state_diagram_tests::state_diagram_routes_picker_and_reveal_but_explicit_architecture_does_not_bounce ... ok
|
||||||
|
test app::state_diagram_tests::state_diagram_routes_preserve_selected_raw_properties_and_pending_behavior_guards ... ok
|
||||||
|
test app::state_diagram_tests::state_navigation_catalog_selection_across_layers_resets_camera_and_tool ... ok
|
||||||
|
test app::state_diagram_tests::state_navigation_catalog_selection_of_another_machine_resets_camera_and_tool ... ok
|
||||||
|
test app::state_diagram_tests::state_navigation_layer_change_resets_the_new_machine_at_the_same_viewport_size ... ok
|
||||||
|
test app::state_diagram_tests::state_navigation_return_to_the_same_view_preserves_camera_tool_and_fit_mode ... ok
|
||||||
|
test app::state_diagram_tests::state_navigation_root_event_and_same_layer_keep_the_current_camera_and_tool ... ok
|
||||||
|
test app::text_workspace::lifecycle_tests::canceled_or_failed_open_that_installs_nothing_retains_current_presentation_and_diagnostics ... ok
|
||||||
|
test app::text_workspace::lifecycle_tests::invalid_repair_open_clears_prior_presentation_and_publishes_current_problems_preserving_worker ... ok
|
||||||
|
test app::text_workspace::lifecycle_tests::saved_new_destination_does_not_revalidate_already_stale_warning_locations ... ok
|
||||||
|
test app::text_workspace::lifecycle_tests::saved_new_destination_republishes_current_warning_and_refuses_old_primary_and_related ... ok
|
||||||
|
test app::text_workspace::tests::current_diagnostic_target_navigates_but_changed_source_or_clear_refuses_it ... ok
|
||||||
|
test app::text_workspace::tests::diagnostic_span_must_be_loaded_ordered_and_utf8_exact ... ok
|
||||||
|
test app::text_workspace::tests::disabled_entry_cannot_become_a_new_action_under_the_same_menu_token ... ok
|
||||||
|
test app::text_workspace::tests::document_reset_preserves_popup_token_sequence_and_drops_old_menu_authority ... ok
|
||||||
|
test app::text_workspace::tests::enabled_entry_is_readmitted_at_dispatch_and_blocked_by_busy ... ok
|
||||||
|
test app::text_workspace::tests::equal_diagnostic_republication_invalidates_primary_and_related_targets ... ok
|
||||||
|
test app::text_workspace::tests::menu_own_open_invalidation_does_not_stale_find_and_invoke_is_once ... ok
|
||||||
|
test app::text_workspace::tests::menu_source_caret_document_path_and_interaction_changes_refuse_stale_find ... ok
|
||||||
|
test app::text_workspace::tests::old_dismiss_and_invoke_do_not_consume_a_newer_menu ... ok
|
||||||
|
test app::text_workspace::tests::only_valid_explicit_group_and_resize_intent_cancel_pending_navigation ... ok
|
||||||
|
test app::text_workspace::tests::queued_toolbar_request_cannot_retarget_after_source_change ... ok
|
||||||
|
test app::text_workspace::tests::reference_groups_and_scroll_survive_tabs_and_reject_old_visits_and_queries ... ok
|
||||||
|
test app::text_workspace::tests::reset_removes_ui_and_publication_authority_and_resize_rejects_nan ... ok
|
||||||
|
test app::text_workspace::tests::retained_primary_and_related_targets_cannot_replay_after_hide_or_problems_references_problems ... ok
|
||||||
|
test app::text_workspace::tests::source_and_property_drafts_keep_find_and_text_undo_without_model_application ... FAILED
|
||||||
|
test app::text_workspace::tests::stale_retained_group_can_expand_without_navigating_or_applying_drafts ... ok
|
||||||
|
test app::transition_context_tests::explicit_behavior_internal_and_process_roots_keep_their_workspace_without_creating_a_view ... ok
|
||||||
|
test app::transition_context_tests::explicit_destination_is_honored_and_ordinary_work_transition_still_places_in_architecture ... ok
|
||||||
|
test app::transition_context_tests::machine_and_typed_action_transitions_resolve_the_owner_and_reusing_that_context_retains_camera ... ok
|
||||||
|
test app::transition_context_tests::rejected_source_writeback_keeps_review_and_navigation_and_invalid_draft_still_blocks_start ... ok
|
||||||
|
test app::transition_context_tests::scenario_transition_focuses_requested_counterpart_and_preserves_unrelated_views_in_both_directions ... ok
|
||||||
|
test app::view_copy_tests::copying_architecture_keeps_architecture_even_with_a_retained_state_view ... ok
|
||||||
|
test app::view_copy_tests::copying_the_current_state_view_uses_its_own_identity_and_is_one_source_undo ... ok
|
||||||
|
test app::view_copy_tests::duplicate_rejection_preserves_an_incomplete_source_buffer ... ok
|
||||||
|
test app::view_copy_tests::duplicate_rejection_preserves_invalid_property_and_pending_behavior_drafts ... ok
|
||||||
|
test app::view_copy_tests::stale_copy_does_not_apply_an_unrelated_valid_property_draft ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_app_checkpoint_restores_inner_raw_draft_without_model_adoption ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_app_empty_actions_and_child_open_refuse_other_raw_editors ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_app_modal_escape_then_child_back_then_parent_cancel_preserve_accepted_source ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_back_remains_available_after_owner_deletion_and_with_dirty_editors ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_back_retains_parent_and_rejects_late_child_event ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_default_consumer_name_has_stable_alias_and_correlated_selection ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_deleted_owner_view_retains_draft_instead_of_panicking_or_using_fallback ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_empty_history_reports_no_change_and_success_requires_a_real_history_step ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_existing_choice_prunes_staged_dependency ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_failed_source_budget_preserves_both_drafts_and_accepted_bytes ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_incomplete_recovered_kind_reports_error_without_panicking ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_inserts_work_on_the_exact_guarded_link_and_refuses_exchange_identity_conflict ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_lifelines_stage_exact_separate_records_and_one_history_entry ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_machine_before_any_owner_creates_optional_view_atomically ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_mounted_small_editor_keeps_back_and_use_outside_field_scroll ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_nested_semantic_parent_is_explicit_and_revalidated ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_new_callee_lifeline_preserves_caller_bindings_as_an_explicit_warning ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_old_empty_action_cannot_open_a_previous_owner_or_layer ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_original_document_remains_bound_after_back_or_choosing_existing ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_owner_first_can_return_to_an_unnamed_machine_without_losing_source ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_recovery_keeps_inner_raw_fields_and_refuses_deleted_or_changed_owner ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_second_system_and_role_machine_owner_refuse_without_fallback ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_work_uses_reserved_contribution_and_link_ids_and_one_undo ... ok
|
||||||
|
test behavior::creation::app_tests::app_choosing_another_behavior_or_layer_cannot_commit_a_creation_draft ... ok
|
||||||
|
test behavior::creation::app_tests::app_creation_opens_the_actual_new_owner_instead_of_first_or_previously_active_behavior ... ok
|
||||||
|
test behavior::creation::app_tests::app_first_captured_escape_dismisses_file_or_pending_overlay_before_creation ... ok
|
||||||
|
test behavior::creation::app_tests::app_lesson_request_cancel_retains_creation_then_escape_discards_only_the_draft ... ok
|
||||||
|
test behavior::creation::app_tests::app_machine_behavior_submit_opens_its_opted_in_view_as_one_undoable_transaction ... ok
|
||||||
|
test behavior::creation::app_tests::app_new_never_auto_applies_valid_or_invalid_property_and_source_drafts ... ok
|
||||||
|
test behavior::creation::app_tests::app_recovered_rootless_sa_creation_retains_layer_ids_and_other_raw_drafts ... ok
|
||||||
|
test behavior::creation::app_tests::app_stale_layer_open_never_starts_or_replaces_a_draft ... ok
|
||||||
|
test behavior::creation::tests::all_four_viewpoints_are_explicit_and_survive_source_history_reopen ... ok
|
||||||
|
test behavior::creation::tests::cancel_and_illegal_family_layer_switches_never_create_model_objects ... ok
|
||||||
|
test behavior::creation::tests::corrupted_recovery_and_reserved_identity_collision_refuse_without_repairing_raw_values ... ok
|
||||||
|
test behavior::creation::tests::creation_selection_rejects_changed_scenario_body_and_post_creation_operations ... ok
|
||||||
|
test behavior::creation::tests::machine_requires_valid_owner_and_first_view_adds_no_region_or_state ... ok
|
||||||
|
test behavior::creation::tests::mounted_creation_keeps_actions_visible_and_renders_only_six_owner_candidates ... ok
|
||||||
|
test behavior::creation::tests::oa_process_and_sa_chain_keep_exact_names_root_ownership_and_one_history_entry ... ok
|
||||||
|
test behavior::creation::tests::optional_context_collapses_without_losing_authored_reference_or_raw_search ... ok
|
||||||
|
test behavior::creation::tests::owner_search_is_name_ordered_filtered_and_page_sized_not_a_catalog ... ok
|
||||||
|
test behavior::creation::tests::post_commit_selection_is_correlated_with_exact_created_behavior_and_view ... ok
|
||||||
|
test behavior::creation::tests::recovery_preserves_exact_raw_inputs_reserved_ids_and_revalidates_stale_owner ... ok
|
||||||
|
test behavior::creation::tests::rejected_source_transaction_keeps_draft_and_every_accepted_source_byte ... ok
|
||||||
|
test behavior::creation::tests::repeated_owner_names_remain_distinguishable_by_searchable_parent_context_and_alias ... ok
|
||||||
|
test behavior::direct_canvas_tests::direct_alt_execution_stops_each_operand_at_its_reply_and_marks_open_operand ... ok
|
||||||
|
test behavior::direct_canvas_tests::direct_bounds_change_during_held_drag_never_commits_old_slot ... ok
|
||||||
|
test behavior::direct_canvas_tests::direct_clicked_occurrence_capture_cancels_on_view_and_context_changes ... ok
|
||||||
|
test behavior::direct_canvas_tests::direct_context_escape_unfocus_and_pending_form_cancel_gestures ... ok
|
||||||
|
test behavior::direct_canvas_tests::direct_drag_and_click_click_use_ordered_sources_and_publish_once ... ok
|
||||||
|
test behavior::direct_canvas_tests::direct_execution_span_ends_at_its_correlated_reply_and_marks_an_open_call ... ok
|
||||||
|
test behavior::direct_canvas_tests::direct_scroll_resize_and_bounds_changes_cancel_captured_slots ... ok
|
||||||
|
test behavior::direct_canvas_tests::direct_scrolled_canvas_maps_raw_pointer_events_to_the_visible_slot ... ok
|
||||||
|
test behavior::direct_canvas_tests::direct_selected_handle_reorders_and_hits_keep_semantic_identity ... ok
|
||||||
|
test behavior::direct_canvas_tests::reused_exchange_messages_display_their_distinct_occurrence_names ... ok
|
||||||
|
test behavior::scenario::data_contract_tests::large_payload_has_one_editor_with_reachable_field_and_authored_pages ... ok
|
||||||
|
test behavior::scenario::data_contract_tests::recursive_browsing_up_and_root_keep_values_and_report_the_depth_limit ... ok
|
||||||
|
test behavior::scenario::data_contract_tests::recursive_value_focus_exposes_authored_leaf_and_phase_changes_retain_surviving_keys ... ok
|
||||||
|
test behavior::scenario::data_contract_tests::reply_call_picker_previews_the_same_value_reset_as_selecting_another_exchange ... ok
|
||||||
|
test behavior::scenario::data_contract_tests::scenario_form_commits_two_reused_record_values_and_correlated_reply_atomically ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_busy_save_keeps_observed_scroll_current_for_the_next_pointer_gesture ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_clicked_occurrence_rejects_stale_slots_and_retains_recoverable_drafts ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_clicked_occurrences_use_root_and_operand_slots_with_exact_source_history ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_exchange_compatibility_browsing_preserves_final_slot_validation ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_exchange_picker_is_bounded_and_browsing_keeps_pending_values ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_five_hundred_exchange_choice_render_probe ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_form_keeps_the_same_canvas_in_the_widget_tree ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_middle_pair_insertion_is_one_exact_source_and_model_undo ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_operand_pair_keeps_parent_sequence_and_cannot_reorder_across_operands ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_reply_choices_cache_keeps_typing_fast_and_revalidates_changed_contexts ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_reply_choices_validate_the_actual_slot_and_reorder_rejects_reverse_order ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_scenario_reference_navigation_blocks_pending_drafts_and_stale_contexts ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_scenario_reference_navigation_retains_each_exact_caller_without_history ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_scenario_reference_return_survives_rename_and_rejects_deleted_or_changed_use ... ok
|
||||||
|
test behavior::scenario::operation_tests::operation_gui_async_picker_uses_request_root_and_nested_directions_without_erasing_rejected_values ... ok
|
||||||
|
test behavior::scenario::operation_tests::operation_gui_selects_two_parameterless_allocations_without_inventing_refinement_and_reply_derives_call ... ok
|
||||||
|
test behavior::scenario::operation_tests::operation_gui_unresolved_and_disabled_selection_recovery_preserves_rejected_raw_values ... ok
|
||||||
|
test behavior::scenario::tests::fragment_operands_accept_paired_messages_through_normal_destination_picker ... ok
|
||||||
|
test behavior::scenario::tests::graphical_call_reply_is_atomic_correlated_and_source_equivalent ... ok
|
||||||
|
test behavior::scenario::tests::invalid_lifecycle_edit_keeps_draft_and_timer_has_no_global_exchange ... ok
|
||||||
|
test behavior::scenario::tests::lifeline_picker_uses_core_viewpoint_contract ... ok
|
||||||
|
test behavior::scenario::tests::reverse_communication_canvas_choices_and_correlated_reply_share_core_direction ... ok
|
||||||
|
test behavior::scenario::tests::scenario_reuse_requires_explicit_compatible_bindings ... ok
|
||||||
|
test behavior::scenario::tests::tagged_scenario_commit_is_not_redirected_by_other_editor_events ... ok
|
||||||
|
test behavior::scenario::workspace::tests::scenario_workspace_allocates_remaining_height_and_pins_actions_at_minimum_and_wide_sizes ... ok
|
||||||
|
test behavior::scenario::workspace::tests::scenario_workspace_caller_restores_actual_mounted_canvas_and_shelf_with_camera ... ok
|
||||||
|
test behavior::scenario::workspace::tests::scenario_workspace_canvas_and_form_scroll_survive_disclosures_focus_width_and_resize ... ok
|
||||||
|
test behavior::scenario::workspace::tests::scenario_workspace_choosing_tools_preserves_valid_and_invalid_pending_editors ... ok
|
||||||
|
test behavior::scenario::workspace::tests::scenario_workspace_fit_reobserves_same_sized_owner_and_document_changes ... ok
|
||||||
|
test behavior::scenario::workspace::tests::scenario_workspace_fit_uses_measured_inner_viewport_and_rejects_nonfinite_inputs ... ok
|
||||||
|
test behavior::scenario::workspace::tests::scenario_workspace_open_and_back_restore_owner_and_mounted_scroll_after_preselection ... ok
|
||||||
|
test behavior::scenario::workspace::tests::scenario_workspace_scaled_and_scrolled_scene_keeps_clicked_slots_and_message_endpoints ... ok
|
||||||
|
test behavior::scenario::workspace::tests::scenario_workspace_scaled_nested_occurrences_and_reorder_keep_exact_sequence_identity ... ok
|
||||||
|
test behavior::scenario::workspace::tests::scenario_workspace_viewport_events_are_passive_guarded_and_do_not_apply_raw_forms ... ok
|
||||||
|
test behavior::scenario::workspace::tests::scenario_workspace_whole_app_canvas_tree_survives_pending_shelves_and_focus ... ok
|
||||||
|
test behavior::scenario_scroll::tests::direct_scenario_caller_restores_mounted_scroll_once_with_clamping_and_app_receipt ... ok
|
||||||
|
test behavior::scenario_scroll::tests::direct_scenario_restore_cannot_scroll_another_document_owner_or_process_view ... ok
|
||||||
|
test behavior::scenario_scroll::tests::direct_scroll_mounted_identity_resets_navigation_but_preserves_edits_before_first_report ... ok
|
||||||
|
test behavior::scenario_scroll::tests::direct_scroll_observer_reports_actual_initial_clamped_and_remounted_offsets_once ... ok
|
||||||
|
test behavior::scenario_scroll::tests::independent_process_owner_change_resets_actual_scroll_offsets ... ok
|
||||||
|
test behavior::source_draft::layout_tests::contextual_source_layout_initial_essentials_fit_short_composed_host_with_real_paragraphs ... ok
|
||||||
|
test behavior::source_draft::layout_tests::contextual_source_layout_long_parent_wraps_after_visible_name_without_losing_raw_data ... ok
|
||||||
|
test behavior::source_draft::layout_tests::contextual_source_layout_visible_kind_click_keeps_choice_explicit_and_name_input_works ... ok
|
||||||
|
test behavior::state_canvas::tests::context_menu_keeps_window_anchor_and_explicit_placement_identity ... ok
|
||||||
|
test behavior::state_canvas::tests::context_tool_and_pending_form_changes_cancel_mutating_gestures ... ok
|
||||||
|
test behavior::state_canvas::tests::creation_uses_the_explicit_deepest_owner_and_never_a_fallback_ancestor ... ok
|
||||||
|
test behavior::state_canvas::tests::drag_uses_ordered_release_at_each_zoom_and_moves_descendants_in_one_undo ... ok
|
||||||
|
test behavior::state_canvas::tests::escape_and_view_switch_discard_the_armed_transition_source ... ok
|
||||||
|
test behavior::state_canvas::tests::internal_rows_and_pseudostate_hits_use_shared_persisted_geometry ... ok
|
||||||
|
test behavior::state_canvas::tests::ordered_stationary_click_does_not_move_on_later_motion_in_the_same_batch ... ok
|
||||||
|
test behavior::state_canvas::tests::pan_is_button_scoped_read_only_and_hover_does_not_reproject_the_scene ... ok
|
||||||
|
test behavior::state_canvas::tests::pseudostate_names_avoid_rightward_and_downward_routes_and_share_hit_bounds ... ok
|
||||||
|
test behavior::state_canvas::tests::relayout_does_not_turn_a_transition_click_into_a_drag_or_pan ... ok
|
||||||
|
test behavior::state_canvas::tests::selected_endpoint_reconnect_preserves_identity_and_requires_handle_motion ... ok
|
||||||
|
test behavior::state_canvas::tests::selection_relayout_does_not_move_nodes_or_change_drag_distance ... ok
|
||||||
|
test behavior::state_canvas::tests::stacked_symbol_names_avoid_each_other_and_are_independent_of_input_order ... ok
|
||||||
|
test behavior::state_canvas::tests::transition_supports_click_click_and_drag_without_coalesced_accidental_edges ... ok
|
||||||
|
test behavior::state_canvas::tests::typed_state_actions_are_named_selectable_rows_before_internal_transitions_and_regions ... ok
|
||||||
|
test behavior::state_canvas::tests::viewport_uses_full_canvas_coordinates_and_republishes_for_a_new_context ... ok
|
||||||
|
test behavior::state_edit::tests::an_empty_machine_has_an_explicit_visible_owner_for_first_region_creation ... ok
|
||||||
|
test behavior::state_edit::tests::connect_preserves_self_loops_and_rejects_hidden_or_incompatible_vertices ... ok
|
||||||
|
test behavior::state_edit::tests::creation_places_missing_ancestry_and_unfolds_existing_owners_atomically ... ok
|
||||||
|
test behavior::state_edit::tests::every_context_component_and_invalid_ownership_are_checked_before_planning ... ok
|
||||||
|
test behavior::state_edit::tests::placing_existing_content_and_moving_a_folded_group_preserve_other_views_and_semantics ... ok
|
||||||
|
test behavior::state_edit::tests::reconnect_preserves_the_complete_record_and_replaces_cardinality_in_place ... ok
|
||||||
|
test behavior::state_edit::tests::view_initializes_only_its_machine_in_one_source_and_model_history_entry ... ok
|
||||||
|
test behavior::states::tests::internal_choice_targets_self_and_edit_preserves_identity_and_description ... ok
|
||||||
|
test behavior::states::tests::invalid_pseudo_trigger_keeps_draft_and_does_not_create_orphan_event ... ok
|
||||||
|
test behavior::states::tests::selected_composite_owns_new_region_and_history_uses_selected_region ... ok
|
||||||
|
test behavior::states::tests::timeout_and_work_trigger_commit_together_roundtrip_and_undo ... ok
|
||||||
|
test behavior::tests::failed_document_commit_retains_typed_transition_and_time_event_for_repair ... ok
|
||||||
|
test behavior::tests::legacy_process_and_chain_keep_their_ordered_exchange_scene ... ok
|
||||||
|
test behavior::tests::one_behavior_form_survives_start_edit_and_unrelated_cancel_until_commit ... ok
|
||||||
|
test behavior::tests::recovery_preserves_distinct_qualified_value_paths_and_rejects_invalid_payload_atomically ... ok
|
||||||
|
test behavior::tests::recovery_retains_each_incomplete_behavior_form_without_executing_it ... ok
|
||||||
|
test behavior::tests::selecting_state_transition_keeps_its_behavior_context ... ok
|
||||||
|
test behavior::topology::contextual::tests::qualified_link_gui_deleted_transient_selection_does_not_seed_or_hide_retained_authored_endpoint ... ok
|
||||||
|
test behavior::topology::contextual::tests::qualified_link_gui_nested_preview_folds_only_the_exact_reference_instance ... ok
|
||||||
|
test behavior::topology::contextual::tests::qualified_link_gui_rejected_endpoint_keeps_exact_raw_intent_after_recovery ... ok
|
||||||
|
test behavior::topology::contextual::tests::qualified_link_gui_repeated_sources_remain_distinct_and_apply_has_exact_source_history ... ok
|
||||||
|
test behavior::topology::contextual::tests::qualified_link_gui_scope_paging_and_search_reach_tail_beyond_512_without_losing_endpoints ... ok
|
||||||
|
test behavior::topology::contextual_routing::tests::contextual_route_native_x_to_first_b_keeps_visible_arrow_above_background_and_clear_of_other_references ... ok
|
||||||
|
test behavior::topology::contextual_routing::tests::contextual_route_nested_visible_hidden_and_parallel_paths_keep_exact_addresses_and_legacy_routes ... ok
|
||||||
|
test behavior::topology::contextual_routing::tests::contextual_route_shared_anchor_preserves_selected_direct_reconnect_at_fit_and_full_scale ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_append_preserves_existing_order_and_rejects_incompatible_exchange ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_controls_allow_incomplete_work_and_preserve_branch_semantics ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_empty_first_and_second_exchange_keep_the_same_interactive_renderer ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_imported_order_is_projected_without_mutation_and_first_canvas_edit_is_atomic ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_incompatible_imported_order_rejects_conversion_without_losing_draft ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_nested_source_reopen_and_api_command_use_one_transaction ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_oa_sa_repeated_occurrences_share_sources_and_split_one_guarded_link ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_palette_preserves_fit_and_manual_camera ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_pending_form_diff_retains_the_canvas_scroll_state ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_production_click_click_drag_insert_and_scroll_coordinates ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_production_endpoint_and_peer_reorder_handles_publish_exact_identity ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_production_stale_focus_scroll_bounds_and_pending_cancel ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_readable_default_fit_expansion_and_bounded_choices ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_real_picker_stays_bounded_and_search_keeps_selection ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_reconnect_delete_and_reorder_preserve_other_paths_and_sources ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_reuse_preview_is_local_expandable_and_recursive_sources_are_rejected ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_scaled_control_and_link_gestures_use_visible_positions ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_specific_parallel_link_and_incompatible_adjacency ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_three_ordered_exchanges_preserve_outer_paths_on_insertion ... ok
|
||||||
|
test behavior::topology::tests::cycle_projection_terminates_and_retains_actual_links ... ok
|
||||||
|
test behavior::topology::tests::empty_process_can_start_through_normal_authoring_events ... ok
|
||||||
|
test behavior::topology::tests::fitting_a_branch_keeps_all_nodes_visible_and_selection_uses_scaled_coordinates ... ok
|
||||||
|
test behavior::topology::tests::guarded_branch_is_one_transaction_with_distinct_source_identities ... ok
|
||||||
|
test behavior::topology::tests::insertion_picker_only_offers_work_matching_adjacent_exchanges ... ok
|
||||||
|
test behavior::topology::tests::legacy_branch_insertion_replaces_only_the_selected_implied_link ... ok
|
||||||
|
test behavior::topology::tests::legacy_edit_preserves_order_and_new_work_in_one_undo ... ok
|
||||||
|
test behavior::topology::tests::long_engineering_identifiers_stay_inside_label_width ... ok
|
||||||
|
test behavior::topology::tests::process_fit_canvas_selection_ignores_retained_ordered_page_scroll ... ok
|
||||||
|
test behavior::topology::tests::process_fit_disclosures_and_focus_preserve_rejected_raw_draft_and_accepted_source ... ok
|
||||||
|
test behavior::topology::tests::process_fit_uses_measured_height_and_reports_minimum_without_changing_manual_zoom ... ok
|
||||||
|
test behavior::topology::tests::reusable_preview_preserves_identity_and_filters_recursive_sources ... ok
|
||||||
|
test behavior::topology::tests::stale_or_invalid_submit_preserves_inputs_and_creates_nothing ... ok
|
||||||
|
test behavior::topology::tests::unlinked_contributions_do_not_gain_fictional_edges ... ok
|
||||||
|
test behavior::topology::view::layout_tests::direct_process_pending_editor_uses_available_height_and_keeps_actions_visible ... ok
|
||||||
|
test behavior::topology::view::layout_tests::process_fit_layout_disclosures_and_pending_editor_keep_real_manual_canvas_scroll ... ok
|
||||||
|
test behavior::topology::view::layout_tests::process_fit_layout_measures_remaining_canvas_with_details_forms_and_window_resize ... ok
|
||||||
|
test behavior::topology::view::layout_tests::process_fit_whole_app_focus_and_disclosures_retain_canvas_tree_with_pending_raw_form ... ok
|
||||||
|
test connection_edit::tests::cancel_navigation_revision_and_dirty_drafts_cannot_commit_a_stale_connection ... ok
|
||||||
|
test connection_edit::tests::visible_endpoint_drawing_commits_ports_and_exchange_once_with_exact_history ... ok
|
||||||
|
test connection_tool::tests::boundary_candidates_match_core_orientation_and_reject_same_owner_or_mixed_kind ... ok
|
||||||
|
test connection_tool::tests::boundary_feasibility_keeps_interface_warnings_and_final_carried_item_checks ... ok
|
||||||
|
test connection_tool::tests::boundary_feasibility_rejects_dangling_identity_in_a_malformed_element_map ... ok
|
||||||
|
test connection_tool::tests::direct_connections_share_exact_source_history_and_model_parity ... ok
|
||||||
|
test connection_tool::tests::explicit_function_ports_keep_owners_contracts_and_do_not_invent_carried_items ... ok
|
||||||
|
test connection_tool::tests::final_command_validation_rejects_invalid_models_without_mutation ... ok
|
||||||
|
test connection_tool::tests::function_cards_use_unique_reuse_and_atomic_generation_when_ambiguous ... ok
|
||||||
|
test connection_tool::tests::mismatched_port_owners_layers_and_contract_kinds_are_not_candidates ... ok
|
||||||
|
test connection_tool::tests::operational_communication_uses_participants_without_creating_ports ... ok
|
||||||
|
test connection_tool::tests::operational_interaction_targets_only_distinct_oa_activities ... ok
|
||||||
|
test context_menu::tests::a_new_context_token_cannot_reuse_the_previous_mouse_press_or_scroll ... ok
|
||||||
|
test context_menu::tests::actions_area_does_not_swallow_first_independent_click_after_overlay_consumed_its_release ... ok
|
||||||
|
test context_menu::tests::anchors_outside_the_window_and_nonfinite_input_stay_bounded ... ok
|
||||||
|
test context_menu::tests::clicking_disabled_or_dragging_off_an_action_never_executes_it ... ok
|
||||||
|
test context_menu::tests::coalesced_dismissal_release_does_not_swallow_the_next_independent_click ... ok
|
||||||
|
test context_menu::tests::empty_and_disabled_only_menus_still_capture_keys_and_escape_closes ... ok
|
||||||
|
test context_menu::tests::keyboard_skips_headers_separators_and_disabled_actions_and_invokes_once ... ok
|
||||||
|
test context_menu::tests::outside_dismissal_consumes_press_and_release_across_controlled_close ... ok
|
||||||
|
test context_menu::tests::reconstructed_overlay_uses_retained_layout_for_rows_and_hit_testing ... ok
|
||||||
|
test context_menu::tests::retained_overlay_layout_keeps_measured_width_and_scrollbar_after_reconstruction ... ok
|
||||||
|
test context_menu::tests::tall_menu_clamps_to_viewport_and_keyboard_wheel_and_scrollbar_reach_the_end ... ok
|
||||||
|
test data_values::tests::phase_choices_keep_reused_record_addresses_distinct ... ok
|
||||||
|
test data_values::tests::recursive_picker_starts_with_distinct_leaf_names_and_sorts_them ... ok
|
||||||
|
test data_values::tests::recursive_records_can_be_drilled_into_and_valid_imported_paths_resolve ... ok
|
||||||
|
test data_values::tests::reference_parameter_stops_descent_and_unspecified_direction_remains_visible ... ok
|
||||||
|
test data_values::tests::roots_and_one_hop_children_do_not_expand_unrelated_payload_branches ... ok
|
||||||
|
test data_view::tests::allocation_rows_edit_relationship_identity_and_remove_only_that_allocation ... ok
|
||||||
|
test data_view::tests::association_creation_is_a_separate_relation_with_editable_end_contracts ... ok
|
||||||
|
test data_view::tests::browsing_pages_preserves_invalid_numeric_draft_and_inherited_allocation_identity ... ok
|
||||||
|
test data_view::tests::contextual_data_actions_use_typed_defaults_and_one_undo ... ok
|
||||||
|
test data_view::tests::large_inherited_dictionary_has_bounded_widgets_and_every_original_field_is_reachable ... ok
|
||||||
|
test diagnostic_input::tests::already_captured_terminal_cancels_child_without_activation_or_lingering_press ... ok
|
||||||
|
test diagnostic_input::tests::captured_terminal_cancellation_preserves_same_publication_focusable_child_state ... ok
|
||||||
|
test diagnostic_input::tests::current_primary_and_related_mouse_clicks_survive_same_publication_diff ... ok
|
||||||
|
test diagnostic_input::tests::current_touch_activates_primary_and_related_and_cancel_does_not_activate ... ok
|
||||||
|
test diagnostic_input::tests::fresh_mouse_press_after_missing_stale_release_can_activate_current_row ... ok
|
||||||
|
test diagnostic_input::tests::hidden_zero_height_scroller_delivers_cancelled_mouse_and_touch_terminals_to_guard ... ok
|
||||||
|
test diagnostic_input::tests::hidden_zero_size_list_consumes_release_outside_old_bounds_once ... ok
|
||||||
|
test diagnostic_input::tests::missed_press_is_ignored_and_dragging_release_outside_does_not_activate ... ok
|
||||||
|
test diagnostic_input::tests::negative_control_iced_button_retargets_a_press_after_plain_tree_diff ... ok
|
||||||
|
test diagnostic_input::tests::negative_control_plain_focusable_row_migrates_activation_to_replacement ... ok
|
||||||
|
test diagnostic_input::tests::negative_control_removing_unguarded_rows_exposes_background_release ... ok
|
||||||
|
test diagnostic_input::tests::outer_scroll_offset_survives_same_and_changed_publications ... ok
|
||||||
|
test diagnostic_input::tests::replaced_primary_and_related_rows_consume_stale_release_then_accept_new_click ... ok
|
||||||
|
test diagnostic_input::tests::replaced_touch_consumes_lift_or_cancel_even_when_hidden ... ok
|
||||||
|
test diagnostic_input::tests::same_publication_missing_terminal_recovers_on_fresh_mouse_or_touch_down ... ok
|
||||||
|
test diagnostic_input::tests::same_publication_new_visit_cancels_armed_rows_without_a_hidden_tree_frame ... ok
|
||||||
|
test diagnostic_input::tests::same_publication_preserves_focus_but_replacement_never_inherits_activation ... ok
|
||||||
|
test diagnostic_input::tests::stale_release_does_not_bubble_to_real_background_controls ... ok
|
||||||
|
test diagnostic_input::tests::stale_touch_release_does_not_disarm_a_new_current_gesture ... ok
|
||||||
|
test diagnostic_input::tests::unrelated_finger_or_mouse_release_cannot_complete_another_fingers_press ... ok
|
||||||
|
test diagram::lifecycle_tests::menu_reset_and_draw_use_fresh_open_context ... ok
|
||||||
|
test diagram::lifecycle_tests::middle_and_arrow_panning_preserve_source_and_history ... ok
|
||||||
|
test diagram::lifecycle_tests::motion_after_release_must_not_move_clicked_port ... ok
|
||||||
|
test diagram::lifecycle_tests::motion_after_source_click_release_must_not_create_connection ... ok
|
||||||
|
test diagram::pointer_tests::coalesced_fe_ports_commit_once_through_app_and_source_history ... ok
|
||||||
|
test diagram::pointer_tests::coalesced_port_drag_commits_once_through_app_and_source_history ... ok
|
||||||
|
test diagram::pointer_tests::drag_from_already_selected_stationary_port_keeps_source_between_batches ... ok
|
||||||
|
test diagram::pointer_tests::menu_captured_motion_must_not_turn_following_click_into_old_port_drag ... ok
|
||||||
|
test diagram::pointer_tests::modal_and_stale_epoch_block_queued_connection_and_port_commits ... ok
|
||||||
|
test diagram::port_hit_tests::coincident_ports_keep_selection_then_use_stable_identity ... ok
|
||||||
|
test diagram::port_hit_tests::nearest_port_center_wins_on_all_borders_and_zoom_levels ... ok
|
||||||
|
test diagram::port_hit_tests::nested_owner_palette_selection_drag_and_context_menu_pick_the_same_port ... ok
|
||||||
|
test diagram::port_labels::tests::leaving_and_reentering_keeps_suppression_until_each_held_button_releases ... ok
|
||||||
|
test diagram::port_labels::tests::menu_epoch_clears_suppression_when_the_overlay_consumes_release ... ok
|
||||||
|
test diagram::port_labels::tests::outside_presses_do_not_suppress_and_cancel_or_focus_loss_clear_held_buttons ... ok
|
||||||
|
test diagram::port_labels::tests::passive_layer_leaves_port_drag_selection_and_commit_with_the_interactive_canvas ... ok
|
||||||
|
test diagram::tests::association_end_contracts_share_svg_geometry_and_select_without_moving_name_label ... ok
|
||||||
|
test diagram::tests::bend_gestures_use_screen_hit_radius_and_commit_one_undo_at_three_zooms ... ok
|
||||||
|
test diagram::tests::coincident_line_hit_retains_the_selected_connection ... ok
|
||||||
|
test diagram::tests::connection_gestures_pick_real_ports_and_commit_coalesced_drag_at_every_zoom ... ok
|
||||||
|
test diagram::tests::detached_label_selects_connection_and_occluding_card_owns_its_hit ... ok
|
||||||
|
test diagram::tests::dragging_a_child_previews_the_same_enclosure_and_ports_as_commit ... ok
|
||||||
|
test diagram::tests::fast_drags_commit_the_release_cursor_without_a_final_motion_event ... ok
|
||||||
|
test diagram::tests::implicit_port_click_selects_semantics_and_drag_preview_svg_share_anchors ... ok
|
||||||
|
test diagram::tests::route_cache_ignores_pan_zoom_and_cancelled_drag_cannot_commit ... ok
|
||||||
|
test diagram::tests::routed_svg_has_same_polyline_label_and_bounds_as_canvas_scene ... ok
|
||||||
|
test diagram::tests::svg_distinguishes_inferred_work_allocation_from_direct_allocation ... ok
|
||||||
|
test diagram::tests::svg_preserves_visible_exchange_labels_and_capability_stereotypes ... ok
|
||||||
|
test diagram::tests::typed_function_glyphs_and_unoriented_standard_connections_have_distinct_svg ... ok
|
||||||
|
test diagram::view_options_tests::communication_svg_uses_saved_visibility_labels_and_direction ... ok
|
||||||
|
test document::alias_rename::tests::each_identity_family_changes_only_authored_alias_roles_and_one_history_entry ... ok
|
||||||
|
test document::alias_rename::tests::equal_bytes_undo_replay_cross_document_and_exhausted_revision_refuse ... ok
|
||||||
|
test document::alias_rename::tests::exact_history_capacity_admits_immediate_undo_and_rejects_larger_candidate ... ok
|
||||||
|
test document::alias_rename::tests::highlighted_keyword_alias_is_valid_without_normalizing_input ... ok
|
||||||
|
test document::alias_rename::tests::invalid_and_identical_aliases_preserve_live_state_and_redo ... ok
|
||||||
|
test document::alias_rename::tests::mint_and_commit_refuse_exhausted_or_inconsistent_live_history_estimate ... ok
|
||||||
|
test document::alias_rename::tests::mutable_public_preview_copies_cannot_change_prepared_authority ... ok
|
||||||
|
test document::alias_rename::tests::preview_retains_latest_saved_baseline_and_recovery_state ... ok
|
||||||
|
test document::save_as_tests::save_as_preserves_explicit_source_entry_changes_in_history ... ok
|
||||||
|
test document::save_as_tests::save_as_rebases_uniform_history_without_an_undo_step_or_lost_redo ... ok
|
||||||
|
test document::save_as_tests::save_as_rejects_included_filename_collisions_in_past_and_future_without_mutation ... ok
|
||||||
|
test document::save_as_tests::save_as_rejects_stale_or_content_changing_receipt_atomically ... ok
|
||||||
|
test document::tests::accepted_history_keeps_the_latest_hundred_complete_snapshots ... ok
|
||||||
|
test document::tests::altered_compiled_model_or_index_is_rejected_without_mutation ... ok
|
||||||
|
test document::tests::asynchronous_save_marks_its_snapshot_without_cleaning_later_edits ... ok
|
||||||
|
test document::tests::byte_budget_trims_oldest_history_without_discarding_a_large_current ... ok
|
||||||
|
test document::tests::cached_view_index_tracks_accepted_creation_undo_and_redo ... ok
|
||||||
|
test document::tests::comment_and_semantic_history_restore_exact_bytes_and_branch_together ... ok
|
||||||
|
test document::tests::creation_selects_the_single_uuid_persisted_in_source ... ok
|
||||||
|
test document::tests::invalid_project_is_rejected_before_format_can_normalize_it ... ok
|
||||||
|
test document::tests::nested_cross_file_reparent_and_source_edit_share_exact_history ... ok
|
||||||
|
test document::tests::no_op_command_or_source_apply_preserves_history_revision_and_redo ... ok
|
||||||
|
test document::tests::omitted_id_stabilization_remains_dirty_until_exact_source_is_saved ... ok
|
||||||
|
test document::tests::recreated_equal_record_does_not_inherit_deleted_source_ownership ... ok
|
||||||
|
test document::tests::rejected_compile_command_and_writeback_preserve_state_and_redo ... ok
|
||||||
|
test explorer::tests::collapse_and_search_retain_context_without_changing_collapse_state ... ok
|
||||||
|
test explorer::tests::deep_containment_and_search_keep_the_full_path_without_recursion ... ok
|
||||||
|
test explorer::tests::equal_names_have_stable_alias_and_identity_tie_breakers ... ok
|
||||||
|
test explorer::tests::perspective_isolation_and_allocations_do_not_change_containment ... ok
|
||||||
|
test explorer::tests::prefix_names_cannot_separate_a_parent_from_its_children ... ok
|
||||||
|
test forms::data_fields::tests::defaults_distinguish_absent_empty_and_typed_literals_with_escaped_unicode ... ok
|
||||||
|
test forms::data_fields::tests::field_browser_pages_every_direct_field_without_flattening_other_records ... ok
|
||||||
|
test forms::data_fields::tests::independent_review_combined_take_type_informs_actual_default_form_in_both_directions ... ok
|
||||||
|
test forms::data_fields::tests::numeric_bound_drafts_keep_partial_and_full_precision_values_out_of_accepted_state ... ok
|
||||||
|
test forms::data_fields::tests::selecting_qualified_path_preserves_expression_typed_before_the_next_render ... ok
|
||||||
|
test forms::data_fields::tests::semantic_reference_choices_follow_selected_mechanism_and_revert_on_keep ... ok
|
||||||
|
test forms::data_fields::tests::supertype_picker_excludes_descendants_and_keeps_original_inherited_field_identity ... ok
|
||||||
|
test forms::history_fields::tests::history_absent_baseline_and_empty_history_use_explicit_facts_and_exact_document_history ... ok
|
||||||
|
test forms::history_fields::tests::history_clear_discards_inactive_invalid_constructors_before_reusing_the_same_row ... ok
|
||||||
|
test forms::history_fields::tests::history_compound_value_and_constructor_variants_are_editable_without_live_context ... ok
|
||||||
|
test forms::history_fields::tests::history_deleted_keys_and_observation_uuids_remain_exact_and_duplicate_history_rejects ... ok
|
||||||
|
test forms::history_fields::tests::history_every_descriptor_fact_choice_matches_actual_closed_types_and_source_contract ... ok
|
||||||
|
test forms::history_fields::tests::history_exact_strings_do_not_confuse_uuid_shaped_prose_or_literal_keys_with_references ... ok
|
||||||
|
test forms::history_fields::tests::history_invalid_numbers_survive_constructor_switch_reorder_removal_and_recovery ... ok
|
||||||
|
test forms::history_fields::tests::history_missing_semantic_field_can_be_added_and_removed_without_touching_prose_or_live_objects ... ok
|
||||||
|
test forms::history_fields::tests::history_nested_optional_number_events_switch_absent_present_and_recover_invalid_raw ... ok
|
||||||
|
test forms::history_fields::tests::history_nested_uuid_and_list_events_preserve_present_values_and_tagged_item_branches ... ok
|
||||||
|
test forms::history_fields::tests::history_optional_uuid_and_text_seed_absence_without_inventing_observations ... ok
|
||||||
|
test forms::history_fields::tests::history_primitive_type_choices_remain_visible_inside_the_tagged_union ... ok
|
||||||
|
test forms::history_fields::tests::history_retained_text_constructors_follow_exact_mode_without_changing_the_observation ... ok
|
||||||
|
test forms::port_fields::tests::all_demo_records_roundtrip_through_graphical_and_escaped_string_drafts ... ok
|
||||||
|
test forms::port_fields::tests::boundary_choices_honor_draft_direction_same_kind_and_direct_interface_items ... ok
|
||||||
|
test forms::port_fields::tests::contract_choices_follow_owner_and_never_offer_legacy_or_oa_typed_ports ... ok
|
||||||
|
test forms::port_fields::tests::failed_shape_keeps_incomplete_text_and_saved_contract_payloads ... ok
|
||||||
|
test forms::port_fields::tests::functional_endpoints_require_owner_direction_and_items_but_retain_bad_current_choice ... ok
|
||||||
|
test forms::port_fields::tests::interface_roles_offer_participants_and_component_ports_independent_of_orientation ... ok
|
||||||
|
test forms::port_fields::tests::port_allocation_choices_use_actual_owner_direction_and_ignore_edited_relation ... ok
|
||||||
|
test forms::port_fields::tests::standard_switch_retains_incompatible_orientation_until_explicit_repair ... ok
|
||||||
|
test forms::port_fields::tests::switching_function_direction_preserves_invalid_items_and_each_authored_payload ... ok
|
||||||
|
test forms::tests::data_and_port_choices_are_typed_but_retain_invalid_current_values ... ok
|
||||||
|
test forms::tests::editing_allocation_offers_other_performers_without_counting_itself_twice ... ok
|
||||||
|
test forms::tests::moving_placement_and_changing_identity_is_one_lossless_undoable_edit ... ok
|
||||||
|
test forms::tests::parent_choices_reject_cycles_without_removing_clear_or_current_choice ... ok
|
||||||
|
test forms::tests::reply_and_reuse_forms_offer_semantically_compatible_references ... ok
|
||||||
|
test forms::tests::scenario_choices_respect_owner_and_exchange_layer ... ok
|
||||||
|
test forms::tests::semantic_port_group_choices_use_combined_owner_and_retain_invalid_transferred_items ... ok
|
||||||
|
test forms::tests::shared_perspective_change_keeps_payload_and_rejects_incompatible_dependencies ... ok
|
||||||
|
test forms::tests::state_observation_picker_keeps_work_lifelines_allocated_to_machine_owner ... ok
|
||||||
|
test forms::tests::state_placement_form_uses_draft_destination_membership_without_changing_other_views ... ok
|
||||||
|
test forms::tests::state_projection_form_keeps_string_variants_and_requires_a_typed_context ... ok
|
||||||
|
test forms::view_fields::tests::category_family_change_retains_members_until_explicit_correction ... ok
|
||||||
|
test forms::view_fields::tests::selective_view_property_apply_recovery_and_undo_preserve_semantics_and_empty_choices ... ok
|
||||||
|
test guide::tests::filtering_and_related_navigation_keep_selection_visible ... ok
|
||||||
|
test guide::tests::guide_topic_navigation_resets_only_article_and_same_topic_search_keeps_scroll ... ok
|
||||||
|
test guide::tests::search_finds_concepts_in_walkthroughs_and_api_reference ... ok
|
||||||
|
test home::tests::corrupt_future_and_oversized_history_are_preserved_with_usable_session_history ... ok
|
||||||
|
test home::tests::failed_metadata_replace_keeps_previous_history_and_reports_memory_only_entry ... ok
|
||||||
|
test home::tests::first_and_replaced_metadata_are_parseable_and_contain_no_model_bytes ... ok
|
||||||
|
test home::tests::forgotten_and_missing_files_never_change_the_model_or_other_entries ... ok
|
||||||
|
test home::tests::loading_missing_history_does_not_create_files_or_directories ... ok
|
||||||
|
test home::tests::malformed_entries_and_unknown_fields_never_become_open_requests ... ok
|
||||||
|
test home::tests::successful_local_history_is_bounded_ordered_deduplicated_and_durable ... ok
|
||||||
|
test home::tests::unavailable_location_can_reappear_on_refresh_without_losing_identity ... ok
|
||||||
|
test home::tests::walkthrough_uses_packaged_bundle_before_development_and_reports_missing_assets ... ok
|
||||||
|
test hosted::client::tests::hosted_endpoint_validation_redacts_secrets_and_preserves_proxy_paths ... ok
|
||||||
|
test hosted::client::tests::hosted_lost_publication_response_is_uncertain_without_retry ... ok
|
||||||
|
test hosted::client::tests::hosted_open_rejects_incoherent_envelopes_missing_etags_and_unstable_ids ... ok
|
||||||
|
test hosted::client::tests::hosted_oversized_local_bundle_is_rejected_before_network_admission ... ok
|
||||||
|
test hosted::client::tests::hosted_production_auth_proxy_prefix_and_located_rejection ... ok
|
||||||
|
test hosted::client::tests::hosted_production_roundtrip_preserves_comments_noops_and_conflicts ... ok
|
||||||
|
test hosted::client::tests::hosted_publication_race_keeps_receipt_identity_for_review ... ok
|
||||||
|
test hosted::client::tests::hosted_publication_retains_known_resource_after_failed_followup ... ok
|
||||||
|
test hosted::client::tests::hosted_put_preserves_an_opaque_etag_and_compiles_the_accepted_bundle ... ok
|
||||||
|
test hosted::client::tests::hosted_redirect_is_not_followed_or_retried_and_problem_tokens_are_redacted ... ok
|
||||||
|
test hosted::client::tests::hosted_response_limits_cover_declared_and_chunked_bodies ... ok
|
||||||
|
test hosted::client::tests::hosted_structured_mutation_failures_distinguish_precommit_rejections ... ok
|
||||||
|
test hosted::client::tests::hosted_timeout_and_disconnect_leave_mutation_outcomes_explicit ... ok
|
||||||
|
test model_menu::tests::add_bend_here_uses_context_point_and_one_source_aware_history_change ... ok
|
||||||
|
test model_menu::tests::late_menu_actions_do_not_dismiss_new_menu_or_cross_view_context ... ok
|
||||||
|
test model_menu::tests::menu_preserves_pending_properties_and_rejects_delayed_mutations ... ok
|
||||||
|
test model_menu::tests::pending_source_allows_file_navigation_but_disables_model_actions ... ok
|
||||||
|
test model_menu::tests::right_click_targets_actor_without_changing_selection_until_action ... ok
|
||||||
|
test model_menu::tests::show_from_explorer_places_unfolds_and_keeps_semantic_selection ... ok
|
||||||
|
test model_menu::tests::state_menu_folds_and_hides_only_its_captured_placement_and_rejects_stale_views ... ok
|
||||||
|
test model_menu::tests::state_menu_keeps_typed_creation_reachable_and_preserves_pending_properties ... ok
|
||||||
|
test navigation::tests::semantic_browser_finds_behavior_users_without_confusing_containment ... ok
|
||||||
|
test port_edit::tests::all_border_drags_commit_exact_preview_and_restore_automatic_anchors_in_history ... ok
|
||||||
|
test port_edit::tests::graphical_port_reparent_clears_old_anchors_in_the_same_history_operation ... ok
|
||||||
|
test port_preview::tests::functional_creation_identifies_new_and_reused_endpoints_and_owners ... ok
|
||||||
|
test port_preview::tests::legacy_split_discloses_endpoint_routing_item_origins_and_retained_evidence ... ok
|
||||||
|
test port_preview::tests::reused_boundary_shows_item_union_and_existing_allocating_facts ... ok
|
||||||
|
test port_preview::tests::synchronization_preview_exposes_contract_shrinkage_and_current_declaration_origin ... ok
|
||||||
|
test port_workflow::recovery_tests::port_recovery_retains_authored_contract_and_identity_but_rebuilds_preview ... ok
|
||||||
|
test port_workflow::tests::creating_typed_port_and_rejecting_stale_preview_preserve_drafts_and_identity ... ok
|
||||||
|
test port_workflow::tests::graphical_function_exchange_and_component_generation_commit_and_undo_whole_contracts ... ok
|
||||||
|
test port_workflow::tests::legacy_resolution_preserves_original_record_and_applies_as_one_undo ... ok
|
||||||
|
test port_workflow::tests::port_creation_keeps_owner_diagram_and_unfolds_in_the_same_undo ... ok
|
||||||
|
test port_workflow::tests::synchronization_uses_active_contract_instead_of_preserved_direction ... ok
|
||||||
|
test recovery::source5::tests::source5_fingerprint_preserves_historical_field_order_and_diagram_shape ... ok
|
||||||
|
test recovery::source5_tests::source4_checkpoint_remains_explicitly_unsupported_without_touching_disk ... ok
|
||||||
|
test recovery::source5_tests::source5_checkpoint_does_not_refresh_unrelated_clean_buffer_baseline ... ok
|
||||||
|
test recovery::source5_tests::source5_checkpoint_missing_identity_is_not_a_lossless_upgrade ... ok
|
||||||
|
test recovery::source5_tests::source5_checkpoint_old_diagram_property_shape_remains_editable ... ok
|
||||||
|
test recovery::source5_tests::source5_checkpoint_port_draft_replans_and_rejects_stale_base ... ok
|
||||||
|
test recovery::source5_tests::source5_checkpoint_preserves_dirty_invalid_text_and_baseline_exactly ... ok
|
||||||
|
test recovery::source5_tests::source5_checkpoint_preserves_distinct_unapplied_open_workspace ... ok
|
||||||
|
test recovery::source5_tests::source5_checkpoint_property_preserves_invalid_raw_input ... ok
|
||||||
|
test recovery::source5_tests::source5_checkpoint_upgrade_never_rewrites_checkpoint_or_origin ... ok
|
||||||
|
test recovery::source5_tests::source5_checkpoint_upgrades_only_header_and_clean_editor_baseline ... ok
|
||||||
|
test recovery::source5_tests::source5_checkpoint_workflow_rebinds_only_the_proven_old_revision ... ok
|
||||||
|
test recovery::source7_tests::source7_current_combined_contextual_and_operation_drafts_survive_without_execution ... ok
|
||||||
|
test recovery::source7_tests::source7_explicit_new_fields_cannot_enter_frozen_old_model_profiles ... ok
|
||||||
|
test recovery::source7_tests::source7_legacy_inactive_constructor_path_is_structural_but_raw_prose_is_not ... ok
|
||||||
|
test recovery::source7_tests::source7_legacy_profile_workflow_and_semantic_drafts_replan_with_exact_base ... ok
|
||||||
|
test recovery::source7_tests::source7_legacy_profiles_preserve_dirty_source_property_and_behavior_raw_fields ... ok
|
||||||
|
test recovery::source7_tests::source7_legacy_structural_intent_rejects_even_null_but_never_scans_raw_strings ... ok
|
||||||
|
test recovery::source7_tests::source7_legacy_view_selector_refuses_new_relation_kind_without_rewriting_checkpoint ... ok
|
||||||
|
test recovery::source7_tests::source7_recovers_nonempty_frozen_5_and_6_profiles_with_exact_historical_binding ... ok
|
||||||
|
test recovery::tests::altered_accepted_identity_and_unrecognized_raw_property_fields_reject ... ok
|
||||||
|
test recovery::tests::exact_source_and_unfinished_invalid_buffers_restore_without_model_overwrite ... ok
|
||||||
|
test recovery::tests::excess_retained_buffers_cannot_replace_the_last_recoverable_checkpoint ... ok
|
||||||
|
test recovery::tests::invalid_open_retains_distinct_accepted_model_and_repair_workspace ... ok
|
||||||
|
test recovery::tests::missing_includes_remain_reachable_repair_targets_without_fabricated_buffers ... ok
|
||||||
|
test recovery::tests::multiple_sessions_replace_only_their_own_checkpoint_and_corruption_is_retained ... ok
|
||||||
|
test recovery::tests::raw_invalid_property_number_survives_and_stays_rejected_until_repaired ... ok
|
||||||
|
test semantic_review::artifacts_recovery_falsifier_tests::forged_artifact_draft_cannot_target_an_unreserved_or_non_artifact_identity ... ok
|
||||||
|
test semantic_review::artifacts_recovery_falsifier_tests::forged_artifact_raw_variants_duplicate_addresses_and_unknown_fields_are_refused ... ok
|
||||||
|
test semantic_review::artifacts_recovery_falsifier_tests::forged_artifact_reservations_cannot_duplicate_or_claim_an_existing_identity_or_another_owner ... ok
|
||||||
|
test semantic_review::artifacts_recovery_falsifier_tests::legitimate_invalid_artifact_checkpoint_round_trips_and_prepares_only_after_explicit_repair ... ok
|
||||||
|
test semantic_review::artifacts_tests::artifact_candidate_is_a_complete_record_not_a_tombstone_or_unattached_creation_shortcut ... ok
|
||||||
|
test semantic_review::artifacts_tests::artifact_creation_and_identified_source_deletion_follow_core_metadata_and_history_boundary_both_directions ... ok
|
||||||
|
test semantic_review::artifacts_tests::artifact_gui_reserves_recovers_and_creates_only_after_all_seven_metadata_reviews_both_directions ... ok
|
||||||
|
test semantic_review::artifacts_tests::artifact_metadata_apply_and_exact_history_reset_are_one_source_preserving_undo_redo ... ok
|
||||||
|
test semantic_review::artifacts_tests::artifact_move_metadata_none_empty_and_invalid_raw_recovery_are_independent_both_directions ... ok
|
||||||
|
test semantic_review::artifacts_tests::artifact_moved_source_absence_deletes_but_destination_only_take_retains_both_directions ... ok
|
||||||
|
test semantic_review::attachments::tests::absent_attachment_payloads_migrate_v1_and_v2_and_source5_upgrade_requires_exact_legacy_base ... ok
|
||||||
|
test semantic_review::attachments::tests::addressed_attachment_candidates_equal_direct_core_oracle_both_directions ... ok
|
||||||
|
test semantic_review::attachments::tests::attachment_apply_is_one_exact_source_and_history_undo_redo ... ok
|
||||||
|
test semantic_review::attachments::tests::attachment_candidate_and_direct_record_keep_conflict_on_actual_slot_without_losing_drafts ... ok
|
||||||
|
test semantic_review::attachments::tests::attachment_pair_drafts_survive_family_switch_and_restore_without_mutating_model ... ok
|
||||||
|
test semantic_review::attachments::tests::functional_incident_source_requires_explicit_matching_port_review_in_one_atomic_candidate ... ok
|
||||||
|
test semantic_review::attachments::tests::parent_and_each_endpoint_candidate_preserve_other_fields_and_match_core_both_directions ... ok
|
||||||
|
test semantic_review::attachments::tests::raw_rejected_attachment_reference_survives_recovery_and_wrong_scope_is_rejected ... ok
|
||||||
|
test semantic_review::attachments::tests::source_only_absence_and_explicit_absent_endpoint_are_different ... ok
|
||||||
|
test semantic_review::attachments::tests::two_incident_endpoint_candidates_form_one_complete_record_and_recover_invalid_excluded_draft ... ok
|
||||||
|
test semantic_review::batch_tests::batch_apply_is_one_exact_source_and_history_undo_redo_roundtrip ... ok
|
||||||
|
test semantic_review::batch_tests::batch_candidate_conflict_keeps_both_raw_values_and_keep_is_a_real_constraint ... ok
|
||||||
|
test semantic_review::batch_tests::batch_complete_constructor_cannot_erase_another_rows_new_literal ... ok
|
||||||
|
test semantic_review::batch_tests::batch_constructor_retirement_conflicts_with_another_rows_kept_bound_in_both_orders ... ok
|
||||||
|
test semantic_review::batch_tests::batch_delayed_text_targets_its_original_row_and_facet_without_switching_focus ... ok
|
||||||
|
test semantic_review::batch_tests::batch_excluded_invalid_row_survives_focus_reopen_and_v2_recovery ... ok
|
||||||
|
test semantic_review::batch_tests::batch_first_equal_constructor_acknowledgement_allows_an_independent_bound ... ok
|
||||||
|
test semantic_review::batch_tests::batch_joint_bounds_use_one_candidate_and_match_an_independent_atomic_core_oracle ... ok
|
||||||
|
test semantic_review::batch_tests::batch_reverse_distinct_targets_work_and_reverse_convergence_is_explicit ... ok
|
||||||
|
test semantic_review::batch_tests::batch_v2_rejects_duplicate_included_sources_bad_addresses_and_stale_model ... ok
|
||||||
|
test semantic_review::batch_tests::category_family_and_members_are_independent_core_checked_facets_both_directions ... ok
|
||||||
|
test semantic_review::batch_tests::recovered_trace_picker_names_existing_trace_instead_of_deleted_reference ... ok
|
||||||
|
test semantic_review::batch_tests::rejected_direction_switch_at_row_limit_preserves_every_recoverable_draft ... ok
|
||||||
|
test semantic_review::compose::diagnostic_tests::distinct_review_conflict_keeps_trace_aliases_even_when_names_are_equal ... ok
|
||||||
|
test semantic_review::compose::diagnostic_tests::reserved_creation_conflict_uses_its_rows_seed_instead_of_a_deleted_reference ... ok
|
||||||
|
test semantic_review::compose::diagnostic_tests::same_review_presence_and_owner_conflict_names_both_facets_and_owners_and_retains_drafts ... ok
|
||||||
|
test semantic_review::compose::diagnostic_tests::typed_owner_display_does_not_reinterpret_uuid_shaped_artifact_text ... ok
|
||||||
|
test semantic_review::constructor_tests::closed_data_and_event_take_composition_matches_core_across_every_kind_pair_and_direction ... ok
|
||||||
|
test semantic_review::constructor_tests::data_group_candidates_cover_every_definition_and_companion_default_both_directions ... ok
|
||||||
|
test semantic_review::constructor_tests::data_group_retains_invalid_sibling_drafts_companion_default_and_variant_editor_buffers ... ok
|
||||||
|
test semantic_review::constructor_tests::exchange_constructor_takes_qualified_annotation_addresses_without_remapping_expression_text ... ok
|
||||||
|
test semantic_review::constructor_tests::existing_fragment_and_branch_group_candidates_edit_complete_owned_order_without_deletion ... ok
|
||||||
|
test semantic_review::constructor_tests::group_take_reference_payload_and_scalar_candidate_match_core_and_one_document_batch ... ok
|
||||||
|
test semantic_review::constructor_tests::historical_event_keep_retires_only_obsolete_branch_and_unchanged_kind_acknowledges_no_payload ... ok
|
||||||
|
test semantic_review::constructor_tests::historical_same_kind_take_preserves_target_only_literals_when_composed_with_candidate ... ok
|
||||||
|
test semantic_review::constructor_tests::occurrence_and_event_candidate_variants_cover_closed_families_without_touching_headers ... ok
|
||||||
|
test semantic_review::constructor_tests::outer_and_nested_constructor_candidates_require_explicit_resolution_and_retain_both_drafts ... ok
|
||||||
|
test semantic_review::constructor_tests::port_group_companions_typed_owner_context_and_direction_restrictions_are_explicit ... ok
|
||||||
|
test semantic_review::constructor_tests::reverse_existing_typed_port_reviews_keep_or_candidate_legacy_without_permitting_typed_oa_write ... ok
|
||||||
|
test semantic_review::constructor_tests::scenario_use_group_takes_typed_binding_references_and_preserves_source_text_both_directions ... ok
|
||||||
|
test semantic_review::keyed_rows_tests::annotation_address_browser_descends_qualified_fields_without_changing_rows ... ok
|
||||||
|
test semantic_review::keyed_rows_tests::annotation_observations_keep_uuid_shaped_expression_text_in_both_sides_and_history ... ok
|
||||||
|
test semantic_review::keyed_rows_tests::batch_keyed_rows_compare_exact_target_slots_and_retain_independent_values ... ok
|
||||||
|
test semantic_review::keyed_rows_tests::binding_choices_separate_reused_keys_from_local_lifelines ... ok
|
||||||
|
test semantic_review::keyed_rows_tests::binding_local_picker_follows_a_candidate_parent_before_the_review_is_valid ... ok
|
||||||
|
test semantic_review::keyed_rows_tests::binding_take_requires_local_correspondence_and_candidate_rejects_wrong_scenario ... ok
|
||||||
|
test semantic_review::keyed_rows_tests::independent_rows_keep_take_candidate_match_core_and_preserve_siblings_both_directions ... ok
|
||||||
|
test semantic_review::keyed_rows_tests::keyed_recovery_retains_raw_rows_and_staged_pairs_both_directions_without_applying ... ok
|
||||||
|
test semantic_review::keyed_rows_tests::keyed_row_drafts_retain_expression_local_and_presence_across_decisions_and_staging ... ok
|
||||||
|
test semantic_review::keyed_rows_tests::keyed_rows_distinguish_unpaired_source_from_explicit_absence_and_require_exact_reset ... ok
|
||||||
|
test semantic_review::keyed_rows_tests::multiple_new_rows_compose_in_empty_collections_using_destination_key_order ... ok
|
||||||
|
test semantic_review::keyed_rows_tests::row_review_apply_preserves_exact_source_and_semantic_history_through_undo_redo ... ok
|
||||||
|
test semantic_review::keyed_tests::deleted_member_source_observation_removes_only_mapped_membership_both_directions ... ok
|
||||||
|
test semantic_review::keyed_tests::exact_literal_new_rows_and_removals_commit_both_directions_without_default_loss ... ok
|
||||||
|
test semantic_review::keyed_tests::exact_reset_only_is_one_history_source_transaction_and_undo_redo_both_directions ... ok
|
||||||
|
test semantic_review::keyed_tests::function_port_members_use_existing_typed_choices_and_preserve_oa_legacy ... ok
|
||||||
|
test semantic_review::keyed_tests::historical_one_sided_pair_migration_requires_exact_reset_and_explicit_overlap_resolution ... ok
|
||||||
|
test semantic_review::keyed_tests::invalid_literal_removal_and_unselected_scalar_buffers_are_retained_and_repairable ... ok
|
||||||
|
test semantic_review::keyed_tests::member_identity_labels_and_new_tabs_preserve_exact_names_and_deleted_keys ... ok
|
||||||
|
test semantic_review::keyed_tests::reset_precedes_equal_constructor_candidate_and_preserves_independent_literal_draft ... ok
|
||||||
|
test semantic_review::keyed_tests::staging_removal_and_obsolete_reset_recovery_keep_other_decisions_and_raw_presence ... ok
|
||||||
|
test semantic_review::keyed_tests::stale_or_source_failed_reset_and_membership_apply_retain_exact_choices ... ok
|
||||||
|
test semantic_review::keyed_tests::unordered_members_keep_take_candidate_preserve_other_rows_both_directions ... ok
|
||||||
|
test semantic_review::keyed_tests::unsupported_independent_families_and_missing_identities_do_not_gain_edit_authority ... ok
|
||||||
|
test semantic_review::message_kind_tests::message_group_candidate_closed_kinds_are_core_validated_in_both_directions ... ok
|
||||||
|
test semantic_review::message_kind_tests::message_group_candidate_timer_switches_preserve_both_drafts_and_overlap_is_explicit ... ok
|
||||||
|
test semantic_review::message_kind_tests::message_group_initial_equal_take_acknowledges_only_kind_and_checks_authored_timer_agreement ... ok
|
||||||
|
test semantic_review::message_kind_tests::message_group_keep_historical_switch_retires_timer_and_completed_no_switch_rejects ... ok
|
||||||
|
test semantic_review::message_kind_tests::message_group_rejects_protected_edits_stale_plan_and_source_failure_without_losing_timer ... ok
|
||||||
|
test semantic_review::message_kind_tests::message_group_reply_and_reference_take_require_explicit_call_mapping_both_directions ... ok
|
||||||
|
test semantic_review::message_kind_tests::message_group_take_full_timer_and_scalar_candidate_are_one_source_history_change_both_directions ... ok
|
||||||
|
test semantic_review::message_kind_tests::message_group_timer_does_not_erase_exchange_without_its_own_selected_decision ... ok
|
||||||
|
test semantic_review::ordered_tests::ambiguous_order_preserves_local_member_and_requires_explicit_candidate_positions ... ok
|
||||||
|
test semantic_review::ordered_tests::historical_pair_restore_uses_exact_member_keys_and_never_zips_order_observations ... ok
|
||||||
|
test semantic_review::ordered_tests::order_take_preserves_destination_only_positions_and_order_alone_cannot_add_members ... ok
|
||||||
|
test semantic_review::ordered_tests::ordered_membership_choices_stage_exact_pairs_in_all_owner_shapes ... ok
|
||||||
|
test semantic_review::ordered_tests::ordered_presence_keep_take_candidate_remove_only_selected_entry_and_order_take_reorders_only ... ok
|
||||||
|
test semantic_review::ordered_tests::ordered_review_apply_is_exact_source_history_transaction_with_reopen_and_undo_redo ... ok
|
||||||
|
test semantic_review::ordered_tests::ordered_take_uses_unique_anchors_and_matches_core_with_unrelated_candidate_both_directions ... ok
|
||||||
|
test semantic_review::ordered_tests::raw_order_survives_membership_changes_decisions_and_recovery_until_explicit_reconcile ... ok
|
||||||
|
test semantic_review::ordered_tests::several_incoming_members_follow_source_order_despite_independent_identity_sorting ... ok
|
||||||
|
test semantic_review::recovery::tests::raw_scalar_and_closed_constructor_drafts_recover_against_exact_model_only ... ok
|
||||||
|
test semantic_review::recovery::tests::version_one_without_orders_restores_raw_intent_and_replans_without_execution ... ok
|
||||||
|
test semantic_review::source7_tests::contextual_incident_leaf_keep_allows_path_change_but_conflicts_with_changed_leaf_both_directions ... ok
|
||||||
|
test semantic_review::source7_tests::reverse_operation_omission_gui_requires_raw_rationale_and_matches_one_core_batch_after_recovery ... ok
|
||||||
|
test semantic_review::source7_tests::semantic_operation_virtual_none_candidate_uses_exact_allocation_and_preserves_accepted_bytes ... ok
|
||||||
|
test semantic_review::tests::candidate_mixed_with_reference_take_uses_typed_correspondence_not_text_guessing ... ok
|
||||||
|
test semantic_review::tests::deselected_invalid_candidate_is_retained_but_does_not_poison_another_selected_scalar ... ok
|
||||||
|
test semantic_review::tests::explicit_trace_selection_updates_only_that_history ... ok
|
||||||
|
test semantic_review::tests::first_equal_constructor_acknowledges_only_kind_and_allows_independent_leaves ... ok
|
||||||
|
test semantic_review::tests::independent_review_clear_bound_ignores_retained_invalid_other_facet ... ok
|
||||||
|
test semantic_review::tests::independent_review_keyed_fact_titles_keep_live_deleted_and_qualified_identity ... ok
|
||||||
|
test semantic_review::tests::inherited_annotation_impact_requires_exact_acceptance_and_edits_clear_approval ... ok
|
||||||
|
test semantic_review::tests::invalid_numeric_draft_and_protected_edits_retain_workflow_and_source ... ok
|
||||||
|
test semantic_review::tests::read_only_structured_facts_and_partial_rollup_are_honest ... ok
|
||||||
|
test semantic_review::tests::relation_candidates_preserve_endpoints_and_combine_selected_roles_and_bounds ... ok
|
||||||
|
test semantic_review::tests::scalar_keep_take_candidate_commit_exact_source_and_history_in_both_directions ... ok
|
||||||
|
test semantic_review::tests::scoped_literal_list_edits_preserve_unfinished_values_and_other_facet_buffers ... ok
|
||||||
|
test semantic_review::tests::stale_plan_and_source_writeback_failure_do_not_lose_decisions_or_history ... ok
|
||||||
|
test semantic_review::tests::state_kind_scalar_uses_typed_candidate_and_core_validation ... ok
|
||||||
|
test semantic_review::view::reserved_artifact_tests::reserved_artifact_facet_and_reference_labels_survive_recovery_without_calling_it_deleted ... ok
|
||||||
|
test source_navigation::interaction::tests::captured_find_click_invalidates_without_app_message_and_preserves_focus ... ok
|
||||||
|
test source_navigation::interaction::tests::focus_rechecks_clock_between_inspection_and_application_and_missing_target_is_inert ... ok
|
||||||
|
test source_navigation::interaction::tests::raw_navigation_inputs_advance_but_passive_geometry_does_not_and_exhaustion_refuses ... ok
|
||||||
|
test source_navigation::query::tests::comments_strings_and_comment_gap_are_not_navigation_hits ... ok
|
||||||
|
test source_navigation::query::tests::detached_alias_and_identity_collisions_never_auto_select ... ok
|
||||||
|
test source_navigation::query::tests::dirty_but_parseable_text_has_current_names_and_no_validated_fallback ... ok
|
||||||
|
test source_navigation::query::tests::exact_multifile_unicode_crlf_definition_and_repeated_lexical_references ... ok
|
||||||
|
test source_navigation::query::tests::exact_snapshot_readback_rejects_same_key_byte_membership_and_evidence_changes ... ok
|
||||||
|
test source_navigation::query::tests::include_cycle_depth_and_aggregate_edges_are_explicit_partial_outcomes ... ok
|
||||||
|
test source_navigation::query::tests::invalid_include_syntax_never_borrows_the_old_reachable_file_set ... ok
|
||||||
|
test source_navigation::query::tests::keyword_alias_and_loaded_path_case_collisions_use_reviewed_index_rules ... ok
|
||||||
|
test source_navigation::query::tests::large_display_name_cannot_escape_the_owned_row_string_budget ... ok
|
||||||
|
test source_navigation::query::tests::missing_and_noncanonical_authored_ids_remain_draft_spans_without_generated_anchors ... ok
|
||||||
|
test source_navigation::query::tests::missing_include_partial_scope_does_not_resurrect_witness_text ... ok
|
||||||
|
test source_navigation::query::tests::omitted_rows_are_counted_before_result_allocation_and_never_confer_uniqueness ... ok
|
||||||
|
test source_navigation::query::tests::origin_keeps_exact_hit_when_display_rows_are_omitted ... ok
|
||||||
|
test source_navigation::query::tests::owned_request_checks_raw_limits_immediately_and_extracts_only_on_worker ... ok
|
||||||
|
test source_navigation::query::tests::owned_request_moves_exact_text_into_worker_snapshot_and_matches_sync_results ... ok
|
||||||
|
test source_navigation::query::tests::owned_validation_proof_preserves_full_witness_count_and_partial_scope ... ok
|
||||||
|
test source_navigation::query::tests::raw_aggregate_limits_refuse_before_outline_or_copied_snapshot ... ok
|
||||||
|
test source_navigation::query::tests::sole_detached_candidate_and_unapplied_equal_bytes_require_choice ... ok
|
||||||
|
test source_navigation::query::tests::token_declaration_and_live_reference_limits_are_aggregate_not_per_file ... ok
|
||||||
|
test source_navigation::query::tests::validation_witness_must_match_entry_and_complete_included_file_set ... ok
|
||||||
|
test source_navigation::symbols::tests::admitted_unicode_path_budget_keeps_original_policy_after_single_fold ... ok
|
||||||
|
test source_navigation::symbols::tests::comment_separated_reference_keeps_crlf_unicode_and_disjoint_hit_spans ... ok
|
||||||
|
test source_navigation::symbols::tests::declaration_order_and_duplicate_roles_refuse_instead_of_corrupting_hit_search ... ok
|
||||||
|
test source_navigation::symbols::tests::detached_uuid_clone_disables_anchor_even_for_included_query ... ok
|
||||||
|
test source_navigation::symbols::tests::duplicate_aliases_are_candidates_without_false_reference_attribution ... ok
|
||||||
|
test source_navigation::symbols::tests::every_budget_admits_boundary_and_returns_no_index_one_below ... ok
|
||||||
|
test source_navigation::symbols::tests::header_metadata_must_match_current_token_boundaries_and_authored_id ... ok
|
||||||
|
test source_navigation::symbols::tests::incomplete_draft_is_lexical_and_error_token_does_not_leak_references ... ok
|
||||||
|
test source_navigation::symbols::tests::legal_keyword_classified_alias_is_not_discarded ... ok
|
||||||
|
test source_navigation::symbols::tests::missing_ids_produce_only_current_snapshot_locations_without_stabilization ... ok
|
||||||
|
test source_navigation::symbols::tests::nested_declaration_extents_do_not_turn_body_text_into_definition_hits ... ok
|
||||||
|
test source_navigation::symbols::tests::noncanonical_header_identity_cannot_enter_through_query_metadata ... ok
|
||||||
|
test source_navigation::symbols::tests::path_identity_rejects_normalization_and_case_collisions ... ok
|
||||||
|
test source_navigation::symbols::tests::query_header_admission_preserves_uppercase_and_json_escape_bytes ... ok
|
||||||
|
test source_navigation::symbols::tests::repeated_live_uses_are_distinct_and_strings_comments_history_are_excluded ... ok
|
||||||
|
test source_navigation::symbols::tests::reused_alias_cannot_steal_old_identity_and_old_locations_are_stale ... ok
|
||||||
|
test source_navigation::symbols::tests::scope_provenance_and_detached_alias_collision_are_explicit ... ok
|
||||||
|
test source_navigation::symbols::tests::stopped_outline_is_not_a_successful_empty_query ... ok
|
||||||
|
test source_navigation::symbols::tests::truncated_or_gapped_tokens_refuse_even_when_project_scope_is_partial ... ok
|
||||||
|
test source_navigation::symbols::tests::unicode_path_collisions_match_core_lowercase_policy ... ok
|
||||||
|
test source_navigation::tests::search_uses_utf8_columns_wraps_and_refreshes_after_edits ... ok
|
||||||
|
test source_rename::origin::tests::maps_last_repeated_reference_with_unicode_crlf_and_comment_separator ... ok
|
||||||
|
test source_rename::origin::tests::permits_identifier_keyword_transitions_in_alias_roles ... ok
|
||||||
|
test source_rename::origin::tests::preserves_final_same_line_occurrence_not_first_or_prose ... ok
|
||||||
|
test source_rename::origin::tests::rejects_changed_trivia_non_alias_words_and_wrong_marker ... ok
|
||||||
|
test source_rename::preview::tests::each_bound_is_exact_and_overflow_never_returns_a_partial_preview ... ok
|
||||||
|
test source_rename::preview::tests::first_and_last_lines_form_complete_separate_hunks_and_pages ... ok
|
||||||
|
test source_rename::preview::tests::limits_apply_to_the_whole_preview_not_each_file ... ok
|
||||||
|
test source_rename::preview::tests::long_unicode_lines_are_fully_reachable_as_bounded_fragments ... ok
|
||||||
|
test source_rename::preview::tests::nearby_changes_merge_and_all_changed_files_are_reachable ... ok
|
||||||
|
test source_rename::preview::tests::preserves_unicode_mixed_endings_and_counts_lines_not_repeated_uses ... ok
|
||||||
|
test source_rename::preview::tests::refuses_membership_entry_line_count_and_line_ending_changes ... ok
|
||||||
|
test source_rename::preview::tests::unchanged_and_empty_sources_have_no_preview ... ok
|
||||||
|
test source_tree::tests::active_scroll_offset_uses_the_visible_order_and_retains_ancestor_context ... ok
|
||||||
|
test source_tree::tests::collapsed_folders_retain_active_dirty_and_diagnostic_markers ... ok
|
||||||
|
test source_tree::tests::deep_paths_build_expand_and_drop_on_a_small_stack ... ok
|
||||||
|
test source_tree::tests::detached_buffers_keep_paths_and_only_clean_buffers_are_closable ... ok
|
||||||
|
test source_tree::tests::exact_unicode_spaces_and_file_folder_name_collisions_are_not_normalized ... ok
|
||||||
|
test source_tree::tests::folders_are_compact_and_sorted_before_files_without_losing_duplicate_basenames ... ok
|
||||||
|
test source_workspace::tests::draft_history_budget_covers_inactive_files_without_discarding_drafts ... ok
|
||||||
|
test source_workspace::tests::fresh_session_cannot_reuse_a_retained_buffer_generation ... ok
|
||||||
|
test source_workspace::tests::navigation_revision_wrap_cannot_reuse_an_old_workspace_key ... ok
|
||||||
|
test source_workspace::tests::navigation_scope_changes_invalidate_without_changing_unchanged_positions ... ok
|
||||||
|
test source_workspace::tests::navigation_versions_distinguish_reopened_recovered_and_changed_drafts ... ok
|
||||||
|
test source_workspace::tests::switching_retains_invalid_drafts_and_independent_history ... ok
|
||||||
|
test tests::actor_port_creation_updates_containment_and_locate_reveals_its_owner ... ok
|
||||||
|
test tests::adding_bend_between_close_ports_stays_outside_owner_clearance ... ok
|
||||||
|
test tests::behavior_and_data_authoring_do_not_place_nodes_in_unrelated_architecture_views ... ok
|
||||||
|
test tests::bidirectional_transition_ui_commits_once_and_preserves_other_diagrams ... ok
|
||||||
|
test tests::counterpart_creation_focuses_visible_target_and_reuse_keeps_views ... ok
|
||||||
|
test tests::creation_from_capabilities_routes_work_to_architecture_and_folded_allocation_inserts_below_existing_work ... ok
|
||||||
|
test tests::dragging_keeps_semantic_selection_and_same_node_remains_editable ... ok
|
||||||
|
test tests::escaped_string_mode_preserves_exact_control_characters ... ok
|
||||||
|
test tests::every_demo_record_has_a_lossless_graphical_draft ... ok
|
||||||
|
test tests::explicit_relationship_builder_never_mutates_on_preview ... ok
|
||||||
|
test tests::explorer_and_creation_selection_follow_their_own_placement ... ok
|
||||||
|
test tests::fit_adapts_to_canvas_returning_after_help_but_preserves_manual_navigation ... ok
|
||||||
|
test tests::fit_uses_measured_canvas_bounds_and_preserves_them_on_open ... ok
|
||||||
|
test tests::focused_explorer_follows_reparenting_without_changing_identity ... ok
|
||||||
|
test tests::graphical_rename_keeps_aliases_and_references_and_undo ... ok
|
||||||
|
test tests::identity_property_change_is_atomic_and_rewrites_all_live_references ... ok
|
||||||
|
test tests::invalid_numeric_draft_survives_navigation_save_and_help ... ok
|
||||||
|
test tests::invalid_save_and_continue_returns_to_repairable_draft ... ok
|
||||||
|
test tests::malformed_source_preserves_model_and_is_recoverable ... ok
|
||||||
|
test tests::manual_trace_requires_target_and_selection_normalizes_creation_kind ... ok
|
||||||
|
test tests::mission_capability_authoring_is_contextual_atomic_and_text_equivalent ... ok
|
||||||
|
test tests::modal_owns_background_commands_and_shortcuts ... ok
|
||||||
|
test tests::nested_allocation_insertion_reflows_sibling_subtrees_and_preserves_fold_state ... ok
|
||||||
|
test tests::opening_and_creating_models_preserve_the_actual_window_size_for_fit ... ok
|
||||||
|
test tests::opening_legacy_source_surfaces_report_without_modifying_original_bytes ... ok
|
||||||
|
test tests::pending_source_prevents_property_draft_collision_and_preserves_both_if_present ... ok
|
||||||
|
test tests::placement_identity_edit_then_drag_and_diagram_identity_then_arrange ... ok
|
||||||
|
test tests::placement_relocation_follows_cross_layer_traceability_view ... ok
|
||||||
|
test tests::property_enum_and_optional_reference_roundtrip ... ok
|
||||||
|
test tests::reopening_canvas_for_a_modal_preserves_viewport_after_route_edits ... ok
|
||||||
|
test tests::revealing_an_implicit_function_port_unfolds_its_visible_architecture_owner ... ok
|
||||||
|
test tests::routing_actions_are_atomic_guarded_and_fit_the_authored_detour ... ok
|
||||||
|
test tests::selecting_current_constructors_preserves_payloads ... ok
|
||||||
|
test tests::source_find_navigates_an_invalid_draft_without_applying_or_losing_it ... ok
|
||||||
|
test tests::source_navigation_waits_for_editor_layout_and_cancels_on_edit ... ok
|
||||||
|
test tests::system_only_models_open_the_populated_perspective ... ok
|
||||||
|
test tests::transition_resolutions_belong_to_the_effective_target_and_kind ... ok
|
||||||
|
test view_copy::tests::duplicate_retains_ports_routes_options_and_artifact_claims_with_exact_undo_redo ... ok
|
||||||
|
test view_copy::tests::duplicate_state_view_preserves_machine_nesting_and_collapse_with_unique_aliases ... ok
|
||||||
|
test view_copy::tests::missing_view_does_not_propose_an_empty_replacement ... ok
|
||||||
|
test views::source_symbols::tests::suffixes_distinguish_nested_duplicate_basenames_without_changing_unicode ... ok
|
||||||
|
test views::source_tests::source_editor_windows_menu_payload_is_inert_but_space_and_altgr_still_edit ... ok
|
||||||
|
test views::text_workspace::tests::drawer_clamps_to_actual_center_allocation_including_oversize_requests ... ok
|
||||||
|
test views::text_workspace::tests::five_slots_keep_editor_state_and_selection_through_explicit_and_passive_changes ... ok
|
||||||
|
test views::text_workspace::tests::highlighted_sensor_editor_retains_real_scrolled_buffer_across_panel_rebuilds ... ok
|
||||||
|
test views::text_workspace::tests::keyboard_resize_uses_effective_height_and_only_exact_open_drawer_shortcut ... ok
|
||||||
|
test views::traceability::tests::traceability_browsing_retains_invalid_property_draft_and_existing_select_guard ... ok
|
||||||
|
test views::traceability::tests::traceability_filter_reaches_artifacts_after_68_traces_and_searches_all_metadata ... ok
|
||||||
|
test workflow::communication::tests::communication_requires_two_explicit_ports_and_recovers_the_partial_choice ... ok
|
||||||
|
test workflow::port_authoring_tests::boundary_picker_matches_exact_commands_across_contracts_and_ownership ... ok
|
||||||
|
test workflow::port_authoring_tests::boundary_picker_recomputes_for_unoriented_reverse_endpoints_without_relaxing_contracts ... ok
|
||||||
|
test workflow::port_authoring_tests::duplicate_port_names_show_owner_contract_and_unique_alias ... ok
|
||||||
|
test workflow::port_authoring_tests::fresh_functions_are_actual_picker_targets_and_plan_enables_apply ... ok
|
||||||
|
test workflow::port_authoring_tests::generic_component_port_connection_keeps_its_endpoint_and_direction ... ok
|
||||||
|
test workflow::port_authoring_tests::ordinary_standard_connections_default_unoriented_and_new_roles_exclude_legacy ... ok
|
||||||
|
test workflow::recovery::tests::incomplete_relationship_and_trace_recover_raw_fields_and_reject_changed_model ... ok
|
||||||
|
test workflow::recovery::tests::transition_recovery_replans_typed_request_without_persisted_commands ... ok
|
||||||
|
test workflow::transition_tests::basic_transition_boundary_choice_is_required_without_an_inferred_system ... ok
|
||||||
|
test workflow::transition_tests::basic_transition_creates_overview_when_existing_views_cannot_show_result ... ok
|
||||||
|
test workflow::transition_tests::basic_transition_explicit_destination_appends_below_existing_bounds_and_is_one_source_edit ... ok
|
||||||
|
test workflow::transition_tests::basic_transition_invalid_explicit_destination_retains_choice_and_refuses ... ok
|
||||||
|
test workflow::transition_tests::basic_transition_reconcile_keeps_existing_selected_view_placement_and_route_exact ... ok
|
||||||
|
test workflow::transition_tests::basic_transition_skips_lowest_uuid_state_view_and_preserves_oa ... ok
|
||||||
|
|
||||||
|
failures:
|
||||||
|
|
||||||
|
---- app::text_workspace::tests::source_and_property_drafts_keep_find_and_text_undo_without_model_application stdout ----
|
||||||
|
|
||||||
|
thread 'app::text_workspace::tests::source_and_property_drafts_keep_find_and_text_undo_without_model_application' (5548) panicked at crates\oa-desktop\src\app\text_workspace\tests.rs:166:5:
|
||||||
|
assertion failed: app.source_dirty() && app.draft_dirty()
|
||||||
|
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
||||||
|
|
||||||
|
|
||||||
|
failures:
|
||||||
|
app::text_workspace::tests::source_and_property_drafts_keep_find_and_text_undo_without_model_application
|
||||||
|
|
||||||
|
test result: FAILED. 853 passed; 1 failed; 3 ignored; 0 measured; 0 filtered out; finished in 431.87s
|
||||||
|
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"command": [
|
||||||
|
"cargo",
|
||||||
|
"clippy",
|
||||||
|
"--locked",
|
||||||
|
"--offline",
|
||||||
|
"-p",
|
||||||
|
"oa-desktop",
|
||||||
|
"--all-targets",
|
||||||
|
"--",
|
||||||
|
"-D",
|
||||||
|
"warnings"
|
||||||
|
],
|
||||||
|
"started": "2026-09-13T02:17:18.545638+00:00",
|
||||||
|
"finished": "2026-09-13T02:18:27.557632+00:00",
|
||||||
|
"seconds": 69.0105631999977,
|
||||||
|
"exitCode": 0,
|
||||||
|
"inputsUnchanged": true,
|
||||||
|
"stdoutSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||||
|
"stderrSha256": "a70ed5d4d8190ebfd2181690bed4c5ae67c8f17f57c357299da9fa4848aa2940"
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
Checking oa-desktop v0.2.0 (C:\ar-text-9e8r6t\crates\oa-desktop)
|
||||||
|
Finished `dev` profile [unoptimized] target(s) in 1m 08s
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"atUtc": "2026-09-13T02:37:33.741745+00:00",
|
||||||
|
"inputsUnchanged": true,
|
||||||
|
"gates": [
|
||||||
|
"clippy",
|
||||||
|
"membership",
|
||||||
|
"focused",
|
||||||
|
"tests",
|
||||||
|
"timing",
|
||||||
|
"gui"
|
||||||
|
],
|
||||||
|
"scope": "Windows headless tests/lint/timing/build; no native acceptance"
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"atUtc": "2026-09-13T02:17:17.767526+00:00",
|
||||||
|
"versions": {
|
||||||
|
"rustc": "rustc 1.98.1 (48a229cea 2026-09-01)\nbinary: rustc\ncommit-hash: 48a229ceaefd4985c50990b14116b6d856af0985\ncommit-date: 2026-09-01\nhost: x86_64-pc-windows-gnullvm\nrelease: 1.98.1\nLLVM version: 22.1.8\n",
|
||||||
|
"cargo": "cargo 1.98.1 (797e8a9bc 2026-08-05)\n"
|
||||||
|
},
|
||||||
|
"variables": {
|
||||||
|
"RUSTUP_HOME": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\rustup",
|
||||||
|
"CARGO_HOME": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo",
|
||||||
|
"RUSTUP_TOOLCHAIN": "stable-x86_64-pc-windows-gnullvm",
|
||||||
|
"CARGO_TARGET_DIR": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm",
|
||||||
|
"CARGO_BUILD_JOBS": "1",
|
||||||
|
"CARGO_TARGET_X86_64_PC_WINDOWS_GNULLVM_LINKER": "clang.exe"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"command": [
|
||||||
|
"cargo",
|
||||||
|
"test",
|
||||||
|
"--locked",
|
||||||
|
"--offline",
|
||||||
|
"-p",
|
||||||
|
"oa-desktop",
|
||||||
|
"--bin",
|
||||||
|
"arcadia-studio",
|
||||||
|
"text_workspace",
|
||||||
|
"--",
|
||||||
|
"--nocapture",
|
||||||
|
"--test-threads=1"
|
||||||
|
],
|
||||||
|
"started": "2026-09-13T02:22:48.002488+00:00",
|
||||||
|
"finished": "2026-09-13T02:22:52.053266+00:00",
|
||||||
|
"seconds": 4.050904400002764,
|
||||||
|
"exitCode": 0,
|
||||||
|
"inputsUnchanged": true,
|
||||||
|
"stdoutSha256": "5235fac71aa2019ab00e65c44ef913bfbca5c31e3408ec9bac03d8d40c746ca9",
|
||||||
|
"stderrSha256": "8442ab6f086cd3bb91ffd65b426ccdcc1d64447ab51da47770be20e6cdcadb36"
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
Finished `test` profile [unoptimized] target(s) in 2.72s
|
||||||
|
Running unittests src\main.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\target-gnullvm\debug\deps\arcadia_studio-58e30cee1fd51a8b.exe)
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
|
||||||
|
running 26 tests
|
||||||
|
test app::text_workspace::lifecycle_tests::canceled_or_failed_open_that_installs_nothing_retains_current_presentation_and_diagnostics ... ok
|
||||||
|
test app::text_workspace::lifecycle_tests::invalid_repair_open_clears_prior_presentation_and_publishes_current_problems_preserving_worker ... ok
|
||||||
|
test app::text_workspace::lifecycle_tests::saved_new_destination_does_not_revalidate_already_stale_warning_locations ... ok
|
||||||
|
test app::text_workspace::lifecycle_tests::saved_new_destination_republishes_current_warning_and_refuses_old_primary_and_related ... ok
|
||||||
|
test app::text_workspace::tests::current_diagnostic_target_navigates_but_changed_source_or_clear_refuses_it ... ok
|
||||||
|
test app::text_workspace::tests::diagnostic_span_must_be_loaded_ordered_and_utf8_exact ... ok
|
||||||
|
test app::text_workspace::tests::disabled_entry_cannot_become_a_new_action_under_the_same_menu_token ... ok
|
||||||
|
test app::text_workspace::tests::document_reset_preserves_popup_token_sequence_and_drops_old_menu_authority ... ok
|
||||||
|
test app::text_workspace::tests::enabled_entry_is_readmitted_at_dispatch_and_blocked_by_busy ... ok
|
||||||
|
test app::text_workspace::tests::equal_diagnostic_republication_invalidates_primary_and_related_targets ... ok
|
||||||
|
test app::text_workspace::tests::menu_own_open_invalidation_does_not_stale_find_and_invoke_is_once ... ok
|
||||||
|
test app::text_workspace::tests::menu_source_caret_document_path_and_interaction_changes_refuse_stale_find ... ok
|
||||||
|
test app::text_workspace::tests::old_dismiss_and_invoke_do_not_consume_a_newer_menu ... ok
|
||||||
|
test app::text_workspace::tests::only_valid_explicit_group_and_resize_intent_cancel_pending_navigation ... ok
|
||||||
|
test app::text_workspace::tests::queued_group_toggle_cannot_mutate_a_reopened_or_rotated_visit ... ok
|
||||||
|
test app::text_workspace::tests::queued_toolbar_request_cannot_retarget_after_source_change ... ok
|
||||||
|
test app::text_workspace::tests::reference_groups_and_scroll_survive_tabs_and_reject_old_visits_and_queries ... ok
|
||||||
|
test app::text_workspace::tests::reset_removes_ui_and_publication_authority_and_resize_rejects_nan ... ok
|
||||||
|
test app::text_workspace::tests::retained_primary_and_related_targets_cannot_replay_after_hide_or_problems_references_problems ... ok
|
||||||
|
test app::text_workspace::tests::source_and_property_drafts_keep_find_and_text_undo_without_model_application ... ok
|
||||||
|
test app::text_workspace::tests::stale_retained_group_can_expand_without_navigating_or_applying_drafts ... ok
|
||||||
|
test views::text_workspace::summary_visibility_tests::all_reference_exceptions_fit_allocated_width_with_wide_alias_and_large_counts ... old alias-first summary width=840 alias="雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨": 0 missing/clipped flag-byte checks; first=None
|
||||||
|
old alias-first summary width=720 alias="雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨雨": 18 missing/clipped flag-byte checks; first=Some("flag Detached is clipped: glyph Rectangle { x: 724.93945, y: 0.0, width: 8.4140625, height: 15.599999 }, clip Rectangle { x: 0.0, y: 0.0, width: 720.0, height: 24.0 }")
|
||||||
|
old alias-first summary width=840 alias="WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW": 0 missing/clipped flag-byte checks; first=None
|
||||||
|
old alias-first summary width=720 alias="WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW": 15 missing/clipped flag-byte checks; first=Some("flag Detached is clipped: glyph Rectangle { x: 718.3828, y: 0.0, width: 6.1054688, height: 15.599999 }, clip Rectangle { x: 0.0, y: 0.0, width: 720.0, height: 24.0 }")
|
||||||
|
ok
|
||||||
|
test views::text_workspace::tests::drawer_clamps_to_actual_center_allocation_including_oversize_requests ... ok
|
||||||
|
test views::text_workspace::tests::five_slots_keep_editor_state_and_selection_through_explicit_and_passive_changes ... ok
|
||||||
|
test views::text_workspace::tests::highlighted_sensor_editor_retains_real_scrolled_buffer_across_panel_rebuilds ... ok
|
||||||
|
test views::text_workspace::tests::keyboard_resize_uses_effective_height_and_only_exact_open_drawer_shortcut ... ok
|
||||||
|
|
||||||
|
test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 833 filtered out; finished in 0.95s
|
||||||
|
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
{
|
||||||
|
"command": [
|
||||||
|
"cargo",
|
||||||
|
"build",
|
||||||
|
"--locked",
|
||||||
|
"--offline",
|
||||||
|
"-p",
|
||||||
|
"oa-desktop",
|
||||||
|
"--bin",
|
||||||
|
"arcadia-studio",
|
||||||
|
"--message-format=json-render-diagnostics"
|
||||||
|
],
|
||||||
|
"started": "2026-09-13T02:29:39.101134+00:00",
|
||||||
|
"finished": "2026-09-13T02:37:30.596393+00:00",
|
||||||
|
"seconds": 471.49644329999865,
|
||||||
|
"exitCode": 0,
|
||||||
|
"inputsUnchanged": true,
|
||||||
|
"stdoutSha256": "eaac6d2f4d1c9be7f05565c971507684b478fd1cc10d5b493e8649df8286dd60",
|
||||||
|
"stderrSha256": "c576662b0b760d89d5d7a05b44ef6bee34d30bd51ccbf96bc648ae92bb43f859",
|
||||||
|
"binary": {
|
||||||
|
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\arcadia-studio.exe",
|
||||||
|
"preserved": "C:\\ar-text-9e8r6t\\.local\\text-workspace-gates-20260912\\attempt-4\\arcadia-studio.exe",
|
||||||
|
"sha256": "666afa8747588bbd4e4d8e4059f443dedda1fc42244d467df8d953085707e796",
|
||||||
|
"bytes": 114164224,
|
||||||
|
"artifact": {
|
||||||
|
"reason": "compiler-artifact",
|
||||||
|
"package_id": "path+file:///C:/ar-text-9e8r6t/crates/oa-desktop#0.2.0",
|
||||||
|
"manifest_path": "C:\\ar-text-9e8r6t\\crates\\oa-desktop\\Cargo.toml",
|
||||||
|
"target": {
|
||||||
|
"kind": [
|
||||||
|
"bin"
|
||||||
|
],
|
||||||
|
"crate_types": [
|
||||||
|
"bin"
|
||||||
|
],
|
||||||
|
"name": "arcadia-studio",
|
||||||
|
"src_path": "C:\\ar-text-9e8r6t\\crates\\oa-desktop\\src\\main.rs",
|
||||||
|
"edition": "2024",
|
||||||
|
"doc": true,
|
||||||
|
"doctest": false,
|
||||||
|
"test": true
|
||||||
|
},
|
||||||
|
"profile": {
|
||||||
|
"opt_level": "0",
|
||||||
|
"debuginfo": 0,
|
||||||
|
"debug_assertions": true,
|
||||||
|
"overflow_checks": true,
|
||||||
|
"test": false
|
||||||
|
},
|
||||||
|
"features": [],
|
||||||
|
"filenames": [
|
||||||
|
"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\arcadia-studio.exe"
|
||||||
|
],
|
||||||
|
"executable": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\arcadia-studio.exe",
|
||||||
|
"fresh": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
Compiling oa-core v0.2.0 (C:\ar-text-9e8r6t\crates\oa-core)
|
||||||
|
Compiling oa-desktop v0.2.0 (C:\ar-text-9e8r6t\crates\oa-desktop)
|
||||||
|
Finished `dev` profile [unoptimized] target(s) in 7m 51s
|
||||||
@@ -0,0 +1,305 @@
|
|||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.107","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\proc-macro2-1.0.107\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\proc-macro2-1.0.107\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","proc-macro"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\proc-macro2-8bd275bc14efcc6d\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.107","linked_libs":[],"linked_paths":[],"cfgs":["wrap_proc_macro","proc_macro_span_location","proc_macro_span_file"],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\proc-macro2-678fa29727a3d951\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.24","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\unicode-ident-1.0.24\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"unicode_ident","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\unicode-ident-1.0.24\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libunicode_ident-37cacd323a49429c.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libunicode_ident-37cacd323a49429c.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#quote@1.0.47","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\quote-1.0.47\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\quote-1.0.47\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","proc-macro"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\quote-78b7b00c15767e2b\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#quote@1.0.47","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\quote-db749d68bbb2dbfe\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.107","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\proc-macro2-1.0.107\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"proc_macro2","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\proc-macro2-1.0.107\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","proc-macro"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libproc_macro2-80e9e45547beebf5.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libproc_macro2-80e9e45547beebf5.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#quote@1.0.47","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\quote-1.0.47\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"quote","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\quote-1.0.47\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","proc-macro"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libquote-b79aec363b458000.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libquote-b79aec363b458000.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#syn@3.0.5","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\syn-3.0.5\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"syn","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\syn-3.0.5\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["clone-impls","default","derive","extra-traits","full","parsing","printing","proc-macro"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libsyn-22fa9145a6fc82b1.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libsyn-22fa9145a6fc82b1.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#syn@2.0.119","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\syn-2.0.119\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"syn","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\syn-2.0.119\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["clone-impls","default","derive","extra-traits","fold","full","parsing","printing","proc-macro","visit","visit-mut"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libsyn-c437a38643e73e9b.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libsyn-c437a38643e73e9b.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#libm@0.2.16","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\libm-0.2.16\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\libm-0.2.16\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["arch","default"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\libm-b0989b04e4f0e7ae\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#libm@0.2.16","linked_libs":[],"linked_paths":[],"cfgs":["arch_enabled"],"env":[["CFG_CARGO_FEATURES","[\"arch\", \"default\"]"],["CFG_OPT_LEVEL","0"],["CFG_TARGET_FEATURES","[\"cmpxchg16b\", \"fxsr\", \"sse\", \"sse2\", \"sse3\"]"]],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\libm-72ced899e6c1d085\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#libm@0.2.16","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\libm-0.2.16\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"libm","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\libm-0.2.16\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["arch","default"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblibm-e719636fa88f224d.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblibm-e719636fa88f224d.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#windows-link@0.2.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows-link-0.2.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"windows_link","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows-link-0.2.1\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwindows_link-23f115c823619f71.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwindows_link-23f115c823619f71.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#autocfg@1.5.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\autocfg-1.5.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"autocfg","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\autocfg-1.5.1\\src\\lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libautocfg-58f70baf3de29c77.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libautocfg-58f70baf3de29c77.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#num-traits@0.2.19","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\num-traits-0.2.19\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\num-traits-0.2.19\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","libm","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\num-traits-518bf0fb0b57082a\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#num-traits@0.2.19","linked_libs":[],"linked_paths":[],"cfgs":["has_total_cmp"],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\num-traits-3270bf0174a1c854\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#bitflags@2.13.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\bitflags-2.13.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"bitflags","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\bitflags-2.13.1\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libbitflags-3f56d892d72d4301.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libbitflags-3f56d892d72d4301.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#num-traits@0.2.19","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\num-traits-0.2.19\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"num_traits","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\num-traits-0.2.19\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","libm","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libnum_traits-3f25760ad3d34848.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libnum_traits-3f25760ad3d34848.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#log@0.4.34","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\log-0.4.34\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"log","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\log-0.4.34\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblog-668dd0f53e95dee3.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblog-668dd0f53e95dee3.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#once_cell@1.21.4","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\once_cell-1.21.4\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"once_cell","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\once_cell-1.21.4\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","race","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libonce_cell-33f899677e2400c0.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libonce_cell-33f899677e2400c0.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#cfg-if@1.0.4","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\cfg-if-1.0.4\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"cfg_if","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\cfg-if-1.0.4\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libcfg_if-805b2ebc84d544f1.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libcfg_if-805b2ebc84d544f1.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#smallvec@1.16.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\smallvec-1.16.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"smallvec","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\smallvec-1.16.0\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["const_generics","const_new","union"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libsmallvec-03b374e5162cc6f4.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libsmallvec-03b374e5162cc6f4.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#windows-sys@0.61.2","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows-sys-0.61.2\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"windows_sys","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows-sys-0.61.2\\src\\lib.rs","edition":"2021","doc":true,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["Wdk","Wdk_Foundation","Wdk_Storage","Wdk_Storage_FileSystem","Wdk_System","Wdk_System_IO","Win32","Win32_Foundation","Win32_Networking","Win32_Networking_WinSock","Win32_Security","Win32_Storage","Win32_Storage_FileSystem","Win32_System","Win32_System_Console","Win32_System_IO","Win32_System_Pipes","Win32_System_SystemInformation","Win32_System_SystemServices","Win32_System_Threading","Win32_System_WindowsProgramming","default"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwindows_sys-ab7e56959c51c45e.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwindows_sys-ab7e56959c51c45e.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#bytemuck_derive@1.12.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\bytemuck_derive-1.12.0\\Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"bytemuck_derive","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\bytemuck_derive-1.12.0\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\bytemuck_derive-3880535b1429c51e.dll","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libbytemuck_derive-3880535b1429c51e.dll.a"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#pin-project-lite@0.2.17","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\pin-project-lite-0.2.17\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"pin_project_lite","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\pin-project-lite-0.2.17\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libpin_project_lite-0d6bdbd8d38ac50b.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libpin_project_lite-0d6bdbd8d38ac50b.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#bytemuck@1.25.2","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\bytemuck-1.25.2\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"bytemuck","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\bytemuck-1.25.2\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["bytemuck_derive","derive","extern_crate_alloc","min_const_generics"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libbytemuck-22539c4113ad2896.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libbytemuck-22539c4113ad2896.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#bytes@1.12.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\bytes-1.12.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"bytes","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\bytes-1.12.1\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libbytes-868dcb997d7e2ad2.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libbytes-868dcb997d7e2ad2.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#windows_x86_64_gnullvm@0.52.6","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows_x86_64_gnullvm-0.52.6\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows_x86_64_gnullvm-0.52.6\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\windows_x86_64_gnullvm-a1e9fcf11bce48ad\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#cfg_aliases@0.2.2","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\cfg_aliases-0.2.2\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"cfg_aliases","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\cfg_aliases-0.2.2\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libcfg_aliases-3229b5c013b12481.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libcfg_aliases-3229b5c013b12481.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#thiserror@2.0.20","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\thiserror-2.0.20\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\thiserror-2.0.20\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\thiserror-d9d1cecb0b9dfa9d\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#thiserror@2.0.20","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\thiserror-2e28320913ae6f8a\\out"}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#windows_x86_64_gnullvm@0.52.6","linked_libs":[],"linked_paths":["native=C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows_x86_64_gnullvm-0.52.6\\lib"],"cfgs":[],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\windows_x86_64_gnullvm-0c0e92ad7ccbaa67\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#thiserror-impl@2.0.20","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\thiserror-impl-2.0.20\\Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"thiserror_impl","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\thiserror-impl-2.0.20\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\thiserror_impl-5cb1483639bcc316.dll","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libthiserror_impl-5cb1483639bcc316.dll.a"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-core@0.3.34","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\futures-core-0.3.34\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures_core","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\futures-core-0.3.34\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfutures_core-a87c441f491169b1.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfutures_core-a87c441f491169b1.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#thiserror@2.0.20","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\thiserror-2.0.20\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"thiserror","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\thiserror-2.0.20\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libthiserror-464ee2be8b2a6d3a.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libthiserror-464ee2be8b2a6d3a.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#windows_x86_64_gnullvm@0.52.6","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows_x86_64_gnullvm-0.52.6\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"windows_x86_64_gnullvm","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows_x86_64_gnullvm-0.52.6\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwindows_x86_64_gnullvm-ecb751aa8d45dc2e.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwindows_x86_64_gnullvm-ecb751aa8d45dc2e.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#windows-targets@0.52.6","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows-targets-0.52.6\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"windows_targets","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows-targets-0.52.6\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwindows_targets-9dce04242e096695.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwindows_targets-9dce04242e096695.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-sink@0.3.34","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\futures-sink-0.3.34\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures_sink","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\futures-sink-0.3.34\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfutures_sink-6891c37ab9c1935f.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfutures_sink-6891c37ab9c1935f.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#memchr@2.8.3","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\memchr-2.8.3\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"memchr","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\memchr-2.8.3\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libmemchr-7db6cba96e96932f.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libmemchr-7db6cba96e96932f.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-channel@0.3.34","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\futures-channel-0.3.34\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures_channel","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\futures-channel-0.3.34\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","futures-sink","sink","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfutures_channel-f0d70c911fb49ec8.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfutures_channel-f0d70c911fb49ec8.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#socket2@0.6.5","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\socket2-0.6.5\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"socket2","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\socket2-0.6.5\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["all"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libsocket2-7bd46ba18d76d090.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libsocket2-7bd46ba18d76d090.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#mio@1.2.3","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\mio-1.2.3\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"mio","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\mio-1.2.3\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["net","os-ext","os-poll"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libmio-5aaf291c8a1a82a2.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libmio-5aaf291c8a1a82a2.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#synstructure@0.13.2","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\synstructure-0.13.2\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"synstructure","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\synstructure-0.13.2\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","proc-macro"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libsynstructure-cae49be1a07d73ae.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libsynstructure-cae49be1a07d73ae.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#arrayvec@0.7.8","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\arrayvec-0.7.8\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"arrayvec","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\arrayvec-0.7.8\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libarrayvec-92be7823c1701233.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libarrayvec-92be7823c1701233.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tokio@1.53.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tokio-1.53.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tokio","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tokio-1.53.1\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["bytes","default","io-util","libc","mio","net","rt","rt-multi-thread","socket2","sync","time","windows-sys"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtokio-32f8dc70905f1ae8.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtokio-32f8dc70905f1ae8.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-macro@0.3.34","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\futures-macro-0.3.34\\Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"futures_macro","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\futures-macro-0.3.34\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\futures_macro-d2473149f2f3e987.dll","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfutures_macro-d2473149f2f3e987.dll.a"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-task@0.3.34","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\futures-task-0.3.34\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures_task","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\futures-task-0.3.34\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfutures_task-c244bba7f8bc0ad1.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfutures_task-c244bba7f8bc0ad1.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-io@0.3.34","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\futures-io-0.3.34\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures_io","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\futures-io-0.3.34\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfutures_io-d1a66ee3ff559f69.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfutures_io-d1a66ee3ff559f69.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#slab@0.4.12","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\slab-0.4.12\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"slab","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\slab-0.4.12\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libslab-3db57bd04acfc5b7.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libslab-3db57bd04acfc5b7.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures-util@0.3.34","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\futures-util-0.3.34\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures_util","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\futures-util-0.3.34\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","async-await","async-await-macro","channel","futures-channel","futures-io","futures-macro","futures-sink","io","memchr","sink","slab","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfutures_util-954465db0beabc72.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfutures_util-954465db0beabc72.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zerofrom-derive@0.1.7","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\zerofrom-derive-0.1.7\\Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"zerofrom_derive","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\zerofrom-derive-0.1.7\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\zerofrom_derive-01e65160f8217db3.dll","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libzerofrom_derive-01e65160f8217db3.dll.a"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#raw-window-handle@0.6.2","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\raw-window-handle-0.6.2\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"raw_window_handle","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\raw-window-handle-0.6.2\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libraw_window_handle-1ab25a8146a57318.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libraw_window_handle-1ab25a8146a57318.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zerocopy@0.8.56","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\zerocopy-0.8.56\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\zerocopy-0.8.56\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["derive","simd","zerocopy-derive"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\zerocopy-f9af0aa8991f0608\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#zerocopy@0.8.56","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\zerocopy-1a18fc2a8b941ae6\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zerofrom@0.1.8","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\zerofrom-0.1.8\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"zerofrom","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\zerofrom-0.1.8\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["derive"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libzerofrom-731f79aa1e12a43c.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libzerofrom-731f79aa1e12a43c.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#yoke-derive@0.8.2","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\yoke-derive-0.8.2\\Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"yoke_derive","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\yoke-derive-0.8.2\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\yoke_derive-e418345d16272b3f.dll","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libyoke_derive-e418345d16272b3f.dll.a"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#euclid@0.22.14","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\euclid-0.22.14\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"euclid","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\euclid-0.22.14\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libeuclid-74b0633907068e70.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libeuclid-74b0633907068e70.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zerocopy-derive@0.8.56","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\zerocopy-derive-0.8.56\\Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"zerocopy_derive","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\zerocopy-derive-0.8.56\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\zerocopy_derive-820bbf35ab88899b.dll","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libzerocopy_derive-820bbf35ab88899b.dll.a"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#khronos_api@3.1.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\khronos_api-3.1.0\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\khronos_api-3.1.0\\build.rs","edition":"2015","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\khronos_api-62ac41aa33e653b1\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#libc@0.2.189","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\libc-0.2.189\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\libc-0.2.189\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\libc-93b6fd638f861315\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#stable_deref_trait@1.2.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\stable_deref_trait-1.2.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"stable_deref_trait","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\stable_deref_trait-1.2.1\\src\\lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libstable_deref_trait-40a01113b84b1f7b.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libstable_deref_trait-40a01113b84b1f7b.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#yoke@0.8.3","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\yoke-0.8.3\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"yoke","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\yoke-0.8.3\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["derive","zerofrom"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libyoke-8b1ba758d70a1f92.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libyoke-8b1ba758d70a1f92.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#libc@0.2.189","linked_libs":[],"linked_paths":[],"cfgs":["freebsd12"],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\libc-21e656859266df5d\\out"}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#khronos_api@3.1.0","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\khronos_api-ae92d05139a87721\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zerocopy@0.8.56","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\zerocopy-0.8.56\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"zerocopy","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\zerocopy-0.8.56\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["derive","simd","zerocopy-derive"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libzerocopy-979d2b49b0a33b61.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libzerocopy-979d2b49b0a33b61.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#core_maths@0.1.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\core_maths-0.1.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"core_maths","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\core_maths-0.1.1\\src\\lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libcore_maths-faef5eec3886da5e.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libcore_maths-faef5eec3886da5e.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#smol_str@0.2.2","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\smol_str-0.2.2\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"smol_str","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\smol_str-0.2.2\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libsmol_str-89539eaf055e63b0.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libsmol_str-89539eaf055e63b0.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rustc-hash@1.1.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\rustc-hash-1.1.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"rustc_hash","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\rustc-hash-1.1.0\\src\\lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\librustc_hash-71721ceb4e769227.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\librustc_hash-71721ceb4e769227.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#half@2.7.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\half-2.7.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"half","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\half-2.7.1\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","num-traits","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libhalf-2a21392ab329bf44.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libhalf-2a21392ab329bf44.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#khronos_api@3.1.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\khronos_api-3.1.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"khronos_api","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\khronos_api-3.1.0\\src\\lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libkhronos_api-51ea57bef08249c0.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libkhronos_api-51ea57bef08249c0.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#libc@0.2.189","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\libc-0.2.189\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"libc","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\libc-0.2.189\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblibc-5628ff8fc96b7c30.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblibc-5628ff8fc96b7c30.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#windows-result@0.2.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows-result-0.2.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"windows_result","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows-result-0.2.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwindows_result-f79db900493f52d7.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwindows_result-f79db900493f52d7.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zerovec-derive@0.11.6","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\zerovec-derive-0.11.6\\Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"zerovec_derive","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\zerovec-derive-0.11.6\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\zerovec_derive-14ef16735d953d8b.dll","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libzerovec_derive-14ef16735d953d8b.dll.a"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#version_check@0.9.5","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\version_check-0.9.5\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"version_check","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\version_check-0.9.5\\src\\lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libversion_check-94e2e789b2ec40fe.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libversion_check-94e2e789b2ec40fe.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#xml-rs@0.8.29","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\xml-rs-0.8.29\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"xml","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\xml-rs-0.8.29\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libxml-6ede0e7a10eccc13.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libxml-6ede0e7a10eccc13.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#gl_generator@0.14.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\gl_generator-0.14.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"gl_generator","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\gl_generator-0.14.0\\lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libgl_generator-ffe2d3197626bd71.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libgl_generator-ffe2d3197626bd71.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#slotmap@1.1.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\slotmap-1.1.1\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\slotmap-1.1.1\\build.rs","edition":"2018","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\slotmap-9a857dacf5e345da\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zerovec@0.11.8","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\zerovec-0.11.8\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"zerovec","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\zerovec-0.11.8\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["derive","yoke"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libzerovec-cff32bbd5e0c6b4f.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libzerovec-cff32bbd5e0c6b4f.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#windows-strings@0.1.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows-strings-0.1.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"windows_strings","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows-strings-0.1.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwindows_strings-c5d7342436cf8f6e.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwindows_strings-c5d7342436cf8f6e.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#font-types@0.12.4","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\font-types-0.12.4\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"font_types","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\font-types-0.12.4\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["bytemuck","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfont_types-fdb71694d8252b17.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfont_types-fdb71694d8252b17.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#font-types@0.10.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\font-types-0.10.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"font_types","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\font-types-0.10.1\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["bytemuck","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfont_types-99a99c3a996c3bd4.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfont_types-99a99c3a996c3bd4.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#windows-implement@0.58.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows-implement-0.58.0\\Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"windows_implement","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows-implement-0.58.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\windows_implement-ad433c4fe61e90ec.dll","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwindows_implement-ad433c4fe61e90ec.dll.a"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#windows-interface@0.58.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows-interface-0.58.0\\Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"windows_interface","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows-interface-0.58.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\windows_interface-628e8d305b9699ad.dll","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwindows_interface-628e8d305b9699ad.dll.a"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#displaydoc@0.2.7","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\displaydoc-0.2.7\\Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"displaydoc","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\displaydoc-0.2.7\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\displaydoc-1226de5024c55391.dll","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libdisplaydoc-1226de5024c55391.dll.a"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#thiserror@1.0.69","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\thiserror-1.0.69\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\thiserror-1.0.69\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\thiserror-b8b2ed9ad6989a0d\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rustc-hash@2.1.3","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\rustc-hash-2.1.3\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"rustc_hash","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\rustc-hash-2.1.3\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\librustc_hash-fd887c9fa238ccd0.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\librustc_hash-fd887c9fa238ccd0.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#web-time@1.1.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\web-time-1.1.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"web_time","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\web-time-1.1.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libweb_time-13eade3aab5c4fbd.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libweb_time-13eade3aab5c4fbd.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#parking_lot_core@0.9.12","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\parking_lot_core-0.9.12\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\parking_lot_core-0.9.12\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\parking_lot_core-8fc79042be25be2a\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#parking_lot_core@0.9.12","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\parking_lot_core-669516aeb1e25030\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#lilt@0.8.2","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\lilt-0.8.2\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"lilt","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\lilt-0.8.2\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblilt-17be362c2994bcfd.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblilt-17be362c2994bcfd.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#thiserror@1.0.69","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\thiserror-75915b6e0e2580c4\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#windows-core@0.58.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows-core-0.58.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"windows_core","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows-core-0.58.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwindows_core-4be59f50c7b0594f.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwindows_core-4be59f50c7b0594f.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#read-fonts@0.35.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\read-fonts-0.35.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"read_fonts","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\read-fonts-0.35.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["libm","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libread_fonts-8744340ce9121ebc.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libread_fonts-8744340ce9121ebc.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#read-fonts@0.41.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\read-fonts-0.41.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"read_fonts","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\read-fonts-0.41.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libread_fonts-ee796e672f6c2b6c.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libread_fonts-ee796e672f6c2b6c.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#slotmap@1.1.1","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\slotmap-a915444a17ae34b4\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#glutin_wgl_sys@0.6.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\glutin_wgl_sys-0.6.1\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\glutin_wgl_sys-0.6.1\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\glutin_wgl_sys-1b055a8fb19db387\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#lyon_geom@1.0.19","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\lyon_geom-1.0.19\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"lyon_geom","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\lyon_geom-1.0.19\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblyon_geom-d3918139893025c6.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblyon_geom-d3918139893025c6.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#naga@27.0.3","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\naga-27.0.3\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\naga-27.0.3\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","glsl-out","hlsl-out","spv-out","wgsl-in"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\naga-b2a452c6ec02a9c6\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#libloading@0.8.9","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\libloading-0.8.9\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"libloading","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\libloading-0.8.9\\src\\lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblibloading-caa2519b5fd816c1.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblibloading-caa2519b5fd816c1.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#thiserror-impl@1.0.69","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\thiserror-impl-1.0.69\\Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"thiserror_impl","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\thiserror-impl-1.0.69\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\thiserror_impl-4124e84e09596764.dll","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libthiserror_impl-4124e84e09596764.dll.a"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#hashbrown@0.17.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\hashbrown-0.17.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hashbrown","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\hashbrown-0.17.1\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libhashbrown-4523d7ebe1eb39bc.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libhashbrown-4523d7ebe1eb39bc.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#unicode-width@0.2.2","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\unicode-width-0.2.2\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"unicode_width","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\unicode-width-0.2.2\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["cjk","default"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libunicode_width-a4d3f1bb5e70cf28.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libunicode_width-a4d3f1bb5e70cf28.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#bit-vec@0.8.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\bit-vec-0.8.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"bit_vec","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\bit-vec-0.8.0\\src\\lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libbit_vec-7ce2332a32227516.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libbit_vec-7ce2332a32227516.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tinyvec_macros@0.1.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tinyvec_macros-0.1.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tinyvec_macros","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tinyvec_macros-0.1.1\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtinyvec_macros-a96fb20256beac97.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtinyvec_macros-a96fb20256beac97.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#foldhash@0.2.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\foldhash-0.2.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"foldhash","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\foldhash-0.2.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfoldhash-cd2bdaf593944293.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfoldhash-cd2bdaf593944293.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ash@0.38.0+1.3.281","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\ash-0.38.0+1.3.281\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\ash-0.38.0+1.3.281\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["debug","default","libloading","loaded","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\ash-8c4abbb13fad003b\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#khronos-egl@6.0.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\khronos-egl-6.0.0\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\khronos-egl-6.0.0\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["1_0","1_1","1_2","1_3","1_4","1_5","default","dynamic","libloading"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\khronos-egl-f697de1aa7755e37\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#itoa@1.0.18","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\itoa-1.0.18\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"itoa","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\itoa-1.0.18\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libitoa-971c3e13d32ffcf2.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libitoa-971c3e13d32ffcf2.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#foldhash@0.1.5","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\foldhash-0.1.5\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"foldhash","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\foldhash-0.1.5\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfoldhash-0826f3f04e1a5796.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfoldhash-0826f3f04e1a5796.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#scopeguard@1.2.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\scopeguard-1.2.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"scopeguard","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\scopeguard-1.2.0\\src\\lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libscopeguard-aa21239770b8fec6.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libscopeguard-aa21239770b8fec6.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#equivalent@1.0.2","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\equivalent-1.0.2\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"equivalent","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\equivalent-1.0.2\\src\\lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libequivalent-931efacfebdb5c9a.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libequivalent-931efacfebdb5c9a.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#glam@0.25.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\glam-0.25.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"glam","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\glam-0.25.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libglam-7b8723c7a526c9b6.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libglam-7b8723c7a526c9b6.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#iced_core@0.14.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\iced_core-0.14.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"iced_core","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\iced_core-0.14.0\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["advanced"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libiced_core-d7d27a7865d7d159.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libiced_core-d7d27a7865d7d159.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#indexmap@2.14.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\indexmap-2.14.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"indexmap","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\indexmap-2.14.1\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libindexmap-dc1dca82289f6c3a.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libindexmap-dc1dca82289f6c3a.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#lock_api@0.4.14","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\lock_api-0.4.14\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"lock_api","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\lock_api-0.4.14\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["atomic_usize","default"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblock_api-1876e768f77cff74.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblock_api-1876e768f77cff74.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#hashbrown@0.15.5","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\hashbrown-0.15.5\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hashbrown","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\hashbrown-0.15.5\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default-hasher"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libhashbrown-8a58f54845fd2497.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libhashbrown-8a58f54845fd2497.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#khronos-egl@6.0.0","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\khronos-egl-ea44436330bd63bd\\out"}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#ash@0.38.0+1.3.281","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\ash-f569a1921cf79800\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#hashbrown@0.16.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\hashbrown-0.16.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hashbrown","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\hashbrown-0.16.1\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default-hasher","inline-more"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libhashbrown-36be56b51a83d7b4.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libhashbrown-36be56b51a83d7b4.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tinyvec@1.13.2","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tinyvec-1.13.2\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tinyvec","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tinyvec-1.13.2\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","tinyvec_macros"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtinyvec-ed5725dd372cdbbb.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtinyvec-ed5725dd372cdbbb.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#bit-set@0.8.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\bit-set-0.8.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"bit_set","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\bit-set-0.8.0\\src\\lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libbit_set-da34d352eec872be.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libbit_set-da34d352eec872be.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#codespan-reporting@0.12.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\codespan-reporting-0.12.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"codespan_reporting","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\codespan-reporting-0.12.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libcodespan_reporting-c8463518e64796c8.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libcodespan_reporting-c8463518e64796c8.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#thiserror@1.0.69","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\thiserror-1.0.69\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"thiserror","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\thiserror-1.0.69\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libthiserror-a8562c576260b66e.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libthiserror-a8562c576260b66e.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#naga@27.0.3","linked_libs":[],"linked_paths":[],"cfgs":["glsl_out","hlsl_out","spv_out","std"],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\naga-6094431ea4850872\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#lyon_path@1.0.19","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\lyon_path-1.0.19\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"lyon_path","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\lyon_path-1.0.19\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblyon_path-d8e1b284e50a3fa5.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblyon_path-d8e1b284e50a3fa5.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#glutin_wgl_sys@0.6.1","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\glutin_wgl_sys-81c9503f6ec2fe44\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#slotmap@1.1.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\slotmap-1.1.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"slotmap","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\slotmap-1.1.1\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libslotmap-c71eec3eba975c2e.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libslotmap-c71eec3eba975c2e.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#skrifa@0.44.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\skrifa-0.44.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"skrifa","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\skrifa-0.44.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libskrifa-3194c161b5e53b8f.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libskrifa-3194c161b5e53b8f.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#windows@0.58.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows-0.58.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"windows","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows-0.58.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["Win32","Win32_Foundation","Win32_Graphics","Win32_Graphics_Direct3D","Win32_Graphics_Direct3D12","Win32_Graphics_Direct3D_Dxc","Win32_Graphics_Direct3D_Fxc","Win32_Graphics_DirectComposition","Win32_Graphics_Dxgi","Win32_Graphics_Dxgi_Common","Win32_Graphics_Gdi","Win32_Graphics_OpenGL","Win32_Security","Win32_System","Win32_System_Diagnostics","Win32_System_Diagnostics_Debug","Win32_System_Kernel","Win32_System_LibraryLoader","Win32_System_Performance","Win32_System_Threading","Win32_UI","Win32_UI_WindowsAndMessaging","default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwindows-014414f636af3fdb.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwindows-014414f636af3fdb.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#parking_lot_core@0.9.12","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\parking_lot_core-0.9.12\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"parking_lot_core","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\parking_lot_core-0.9.12\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libparking_lot_core-0302be869d537889.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libparking_lot_core-0302be869d537889.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ttf-parser@0.25.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\ttf-parser-0.25.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ttf_parser","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\ttf-parser-0.25.1\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["apple-layout","core_maths","glyph-names","no-std-float","opentype-layout","std","variable-fonts"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libttf_parser-8f55e332d9622b66.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libttf_parser-8f55e332d9622b66.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#futures@0.3.34","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\futures-0.3.34\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"futures","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\futures-0.3.34\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","async-await","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfutures-c8a4a2dd096fb063.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfutures-c8a4a2dd096fb063.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#wgpu-hal@27.0.4","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\wgpu-hal-27.0.4\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\wgpu-hal-27.0.4\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["dx12","gles","gpu-allocator","portable-atomic","renderdoc","vulkan"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\wgpu-hal-38f324ff8e66b122\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#gpu-alloc-types@0.3.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\gpu-alloc-types-0.3.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"gpu_alloc_types","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\gpu-alloc-types-0.3.1\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libgpu_alloc_types-6f4c59d95c6ccee0.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libgpu_alloc_types-6f4c59d95c6ccee0.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#gpu-descriptor-types@0.2.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\gpu-descriptor-types-0.2.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"gpu_descriptor_types","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\gpu-descriptor-types-0.2.0\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libgpu_descriptor_types-1858d8bdd15c74e0.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libgpu_descriptor_types-1858d8bdd15c74e0.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#spirv@0.3.0+sdk-1.3.268.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\spirv-0.3.0+sdk-1.3.268.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"spirv","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\spirv-0.3.0+sdk-1.3.268.0\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libspirv-3c846a010ac2043e.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libspirv-3c846a010ac2043e.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#find-msvc-tools@0.1.12","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\find-msvc-tools-0.1.12\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"find_msvc_tools","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\find-msvc-tools-0.1.12\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfind_msvc_tools-a77c25fd7cd1ef1b.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfind_msvc_tools-a77c25fd7cd1ef1b.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#memmap2@0.9.11","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\memmap2-0.9.11\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"memmap2","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\memmap2-0.9.11\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libmemmap2-841beeb0f1a629ed.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libmemmap2-841beeb0f1a629ed.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#hexf-parse@0.2.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\hexf-parse-0.2.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hexf_parse","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\hexf-parse-0.2.1\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libhexf_parse-279b990594c7bbce.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libhexf_parse-279b990594c7bbce.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zeno@0.3.3","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\zeno-0.3.3\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"zeno","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\zeno-0.3.3\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["eval","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libzeno-2fc787934e8a7cd6.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libzeno-2fc787934e8a7cd6.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#unicode-segmentation@1.13.3","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\unicode-segmentation-1.13.3\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"unicode_segmentation","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\unicode-segmentation-1.13.3\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libunicode_segmentation-85698043f7780858.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libunicode_segmentation-85698043f7780858.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#yazi@0.2.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\yazi-0.2.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"yazi","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\yazi-0.2.1\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libyazi-69dfa79524f14886.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libyazi-69dfa79524f14886.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#presser@0.3.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\presser-0.3.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"presser","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\presser-0.3.1\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libpresser-269e2291582457e5.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libpresser-269e2291582457e5.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#shlex@2.0.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\shlex-2.0.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"shlex","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\shlex-2.0.1\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libshlex-ad289e1bf218f668.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libshlex-ad289e1bf218f668.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#cc@1.4.5","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\cc-1.4.5\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"cc","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\cc-1.4.5\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libcc-d57b8105882e5fa0.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libcc-d57b8105882e5fa0.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#gpu-allocator@0.27.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\gpu-allocator-0.27.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"gpu_allocator","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\gpu-allocator-0.27.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["d3d12"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libgpu_allocator-967bbc1f342725e4.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libgpu_allocator-967bbc1f342725e4.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#swash@0.2.10","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\swash-0.2.10\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"swash","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\swash-0.2.10\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["render","scale","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libswash-0448d4a5d977af87.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libswash-0448d4a5d977af87.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#naga@27.0.3","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\naga-27.0.3\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"naga","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\naga-27.0.3\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","glsl-out","hlsl-out","spv-out","wgsl-in"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libnaga-1b010856f5c02c9b.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libnaga-1b010856f5c02c9b.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#fontdb@0.23.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\fontdb-0.23.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"fontdb","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\fontdb-0.23.0\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["fontconfig","fontconfig-parser","fs","memmap","memmap2","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfontdb-007e59f002fbf373.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfontdb-007e59f002fbf373.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#gpu-descriptor@0.3.2","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\gpu-descriptor-0.3.2\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"gpu_descriptor","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\gpu-descriptor-0.3.2\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libgpu_descriptor-fac3b710369873db.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libgpu_descriptor-fac3b710369873db.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#gpu-alloc@0.6.2","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\gpu-alloc-0.6.2\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"gpu_alloc","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\gpu-alloc-0.6.2\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libgpu_alloc-ae6066a9278dbce7.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libgpu_alloc-ae6066a9278dbce7.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#wgpu-hal@27.0.4","linked_libs":[],"linked_paths":[],"cfgs":["native","send_sync","dx12","gles","gles_with_std","vulkan","supports_64bit_atomics","supports_ptr_atomics"],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\wgpu-hal-08d2fc988c80c04d\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#iced_futures@0.14.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\iced_futures-0.14.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"iced_futures","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\iced_futures-0.14.0\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["tokio"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libiced_futures-99d68a19ee722d48.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libiced_futures-99d68a19ee722d48.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#parking_lot@0.12.5","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\parking_lot-0.12.5\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"parking_lot","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\parking_lot-0.12.5\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libparking_lot-27eddcbf60d1f561.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libparking_lot-27eddcbf60d1f561.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#glutin_wgl_sys@0.6.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\glutin_wgl_sys-0.6.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"glutin_wgl_sys","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\glutin_wgl_sys-0.6.1\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libglutin_wgl_sys-742d4309c6cfdd6a.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libglutin_wgl_sys-742d4309c6cfdd6a.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ash@0.38.0+1.3.281","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\ash-0.38.0+1.3.281\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ash","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\ash-0.38.0+1.3.281\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["debug","default","libloading","loaded","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libash-440c79a90c728602.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libash-440c79a90c728602.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#khronos-egl@6.0.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\khronos-egl-6.0.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"khronos_egl","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\khronos-egl-6.0.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["1_0","1_1","1_2","1_3","1_4","1_5","default","dynamic","libloading"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libkhronos_egl-5ee4edad52b1e3e3.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libkhronos_egl-5ee4edad52b1e3e3.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#harfrust@0.3.2","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\harfrust-0.3.2\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"harfrust","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\harfrust-0.3.2\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libharfrust-5c2b9978b0c967e5.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libharfrust-5c2b9978b0c967e5.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#skrifa@0.37.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\skrifa-0.37.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"skrifa","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\skrifa-0.37.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libskrifa-412ea6d4d11f2dc3.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libskrifa-412ea6d4d11f2dc3.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tinystr@0.8.4","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tinystr-0.8.4\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tinystr","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tinystr-0.8.4\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["zerovec"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtinystr-e88fa031f78d8437.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtinystr-e88fa031f78d8437.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#wgpu-types@27.0.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\wgpu-types-27.0.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"wgpu_types","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\wgpu-types-27.0.1\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std","thiserror","web"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwgpu_types-dc39388ab7fe1280.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwgpu_types-dc39388ab7fe1280.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ordered-float@5.5.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\ordered-float-5.5.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ordered_float","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\ordered-float-5.5.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libordered_float-d108d2bc85f12cf8.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libordered_float-d108d2bc85f12cf8.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#unicode-script@0.5.8","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\unicode-script-0.5.8\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"unicode_script","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\unicode-script-0.5.8\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libunicode_script-5e054be55af8e282.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libunicode_script-5e054be55af8e282.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rangemap@1.8.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\rangemap-1.8.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"rangemap","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\rangemap-1.8.0\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\librangemap-1d6e4809bfb9c681.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\librangemap-1d6e4809bfb9c681.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#writeable@0.6.4","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\writeable-0.6.4\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"writeable","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\writeable-0.6.4\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwriteable-46a7de9410bcb5f2.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwriteable-46a7de9410bcb5f2.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#renderdoc-sys@1.1.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\renderdoc-sys-1.1.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"renderdoc_sys","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\renderdoc-sys-1.1.0\\src\\lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\librenderdoc_sys-150f0489c8932654.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\librenderdoc_sys-150f0489c8932654.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#glow@0.16.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\glow-0.16.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"glow","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\glow-0.16.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libglow-cab264c6898aaf59.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libglow-cab264c6898aaf59.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#unicode-bidi@0.3.18","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\unicode-bidi-0.3.18\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"unicode_bidi","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\unicode-bidi-0.3.18\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["hardcoded-data","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libunicode_bidi-41a25178d914472d.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libunicode_bidi-41a25178d914472d.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#linebender_resource_handle@0.1.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\linebender_resource_handle-0.1.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"linebender_resource_handle","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\linebender_resource_handle-0.1.1\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblinebender_resource_handle-6eb3532b81e3dcc4.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblinebender_resource_handle-6eb3532b81e3dcc4.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#litemap@0.8.3","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\litemap-0.8.3\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"litemap","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\litemap-0.8.3\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblitemap-09d735fa86cca7ac.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblitemap-09d735fa86cca7ac.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#sys-locale@0.3.2","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\sys-locale-0.3.2\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"sys_locale","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\sys-locale-0.3.2\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libsys_locale-373ce1af6158101a.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libsys_locale-373ce1af6158101a.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#self_cell@1.3.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\self_cell-1.3.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"self_cell","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\self_cell-1.3.0\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libself_cell-d89d506b19b25665.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libself_cell-d89d506b19b25665.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#range-alloc@0.1.5","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\range-alloc-0.1.5\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"range_alloc","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\range-alloc-0.1.5\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\librange_alloc-a1b6caee1ada41b9.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\librange_alloc-a1b6caee1ada41b9.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#unicode-linebreak@0.1.5","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\unicode-linebreak-0.1.5\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"unicode_linebreak","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\unicode-linebreak-0.1.5\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libunicode_linebreak-e99548291833529e.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libunicode_linebreak-e99548291833529e.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#profiling@1.0.18","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\profiling-1.0.18\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"profiling","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\profiling-1.0.18\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libprofiling-bb4ce05fd7247125.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libprofiling-bb4ce05fd7247125.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#wgpu-hal@27.0.4","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\wgpu-hal-27.0.4\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"wgpu_hal","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\wgpu-hal-27.0.4\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["dx12","gles","gpu-allocator","portable-atomic","renderdoc","vulkan"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwgpu_hal-a743d888639ef685.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwgpu_hal-a743d888639ef685.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#cosmic-text@0.15.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\cosmic-text-0.15.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"cosmic_text","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\cosmic-text-0.15.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","fontconfig","std","swash","sys-locale"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libcosmic_text-07313aa6396fe119.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libcosmic_text-07313aa6396fe119.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#icu_locale_core@2.3.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\icu_locale_core-2.3.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"icu_locale_core","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\icu_locale_core-2.3.0\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["zerovec"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libicu_locale_core-4b506241af6d592b.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libicu_locale_core-4b506241af6d592b.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ring@0.17.14","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\ring-0.17.14\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\ring-0.17.14\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","dev_urandom_fallback"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\ring-662eaa51714da618\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zerotrie@0.2.5","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\zerotrie-0.2.5\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"zerotrie","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\zerotrie-0.2.5\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["yoke","zerofrom"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libzerotrie-29841486933b17fd.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libzerotrie-29841486933b17fd.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#potential_utf@0.1.6","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\potential_utf-0.1.6\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"potential_utf","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\potential_utf-0.1.6\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["zerovec"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libpotential_utf-5d5c86142dd78a68.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libpotential_utf-5d5c86142dd78a68.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#wgpu-core@27.0.3","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\wgpu-core-27.0.3\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\wgpu-core-27.0.3\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","dx12","gles","metal","portable-atomic","raw-window-handle","renderdoc","std","vulkan","wgpu-core-deps-windows-linux-android","wgsl"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\wgpu-core-457c3d767f877af2\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#utf8_iter@1.0.4","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\utf8_iter-1.0.4\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"utf8_iter","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\utf8_iter-1.0.4\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libutf8_iter-23877425cbbe33c4.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libutf8_iter-23877425cbbe33c4.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.229","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\serde_core-1.0.229\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\serde_core-1.0.229\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["result","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\serde_core-161b3ae2683262f1\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#litrs@1.0.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\litrs-1.0.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"litrs","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\litrs-1.0.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblitrs-5cf7e39503967d4f.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblitrs-5cf7e39503967d4f.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#icu_properties_data@2.3.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\icu_properties_data-2.3.0\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\icu_properties_data-2.3.0\\build.rs","edition":"2024","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\icu_properties_data-e71578c99c934cd3\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#icu_normalizer_data@2.3.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\icu_normalizer_data-2.3.0\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\icu_normalizer_data-2.3.0\\build.rs","edition":"2024","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\icu_normalizer_data-d3eca3773d389d92\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#icu_normalizer_data@2.3.0","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\icu_normalizer_data-c001693e7c4263ec\\out"}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#icu_properties_data@2.3.0","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\icu_properties_data-4b435d3927ffd8a7\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#document-features@0.2.12","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\document-features-0.2.12\\Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"document_features","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\document-features-0.2.12\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\document_features-34fc7797615e0364.dll","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libdocument_features-34fc7797615e0364.dll.a"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.229","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\serde_core-a1da37301c02ee2a\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#icu_collections@2.3.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\icu_collections-2.3.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"icu_collections","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\icu_collections-2.3.0\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libicu_collections-ac86742a9dd8c8f3.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libicu_collections-ac86742a9dd8c8f3.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#wgpu-core@27.0.3","linked_libs":[],"linked_paths":[],"cfgs":["windows_linux_android","send_sync","dx12","gles","vulkan","supports_64bit_atomics"],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\wgpu-core-32672e31d92304e1\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#icu_provider@2.3.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\icu_provider-2.3.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"icu_provider","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\icu_provider-2.3.1\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["baked"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libicu_provider-74f7f3fb4ccff39a.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libicu_provider-74f7f3fb4ccff39a.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#ring@0.17.14","linked_libs":["static=ring_core_0_17_14_","static=ring_core_0_17_14__test"],"linked_paths":["native=C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\ring-5f8d2d20440f09b4\\out"],"cfgs":[],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\ring-5f8d2d20440f09b4\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#wgpu-core-deps-windows-linux-android@27.0.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\wgpu-core-deps-windows-linux-android-27.0.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"wgpu_core_deps_windows_linux_android","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\wgpu-core-deps-windows-linux-android-27.0.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["dx12","gles","renderdoc","vulkan"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwgpu_core_deps_windows_linux_android-db4c47168a33fb44.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwgpu_core_deps_windows_linux_android-db4c47168a33fb44.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#http@1.5.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\http-1.5.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"http","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\http-1.5.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libhttp-47a7410cfc172b84.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libhttp-47a7410cfc172b84.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#wgpu@27.0.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\wgpu-27.0.1\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\wgpu-27.0.1\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","dx12","gles","metal","parking_lot","std","vulkan","web","webgpu","wgsl"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\wgpu-dffdc39599e5ad0e\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tracing-core@0.1.36","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tracing-core-0.1.36\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tracing_core","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tracing-core-0.1.36\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["once_cell","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtracing_core-2dc069dfba18ede6.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtracing_core-2dc069dfba18ede6.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tracing-attributes@0.1.31","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tracing-attributes-0.1.31\\Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"tracing_attributes","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tracing-attributes-0.1.31\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\tracing_attributes-fa36f052cc72e303.dll","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtracing_attributes-fa36f052cc72e303.dll.a"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#percent-encoding@2.3.2","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\percent-encoding-2.3.2\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"percent_encoding","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\percent-encoding-2.3.2\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libpercent_encoding-2c27496c68b2308e.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libpercent_encoding-2c27496c68b2308e.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#svg_fmt@0.4.5","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\svg_fmt-0.4.5\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"svg_fmt","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\svg_fmt-0.4.5\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libsvg_fmt-1f58261d1798c1e9.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libsvg_fmt-1f58261d1798c1e9.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zeroize@1.9.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\zeroize-1.9.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"zeroize","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\zeroize-1.9.0\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libzeroize-244976d554ece06f.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libzeroize-244976d554ece06f.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rustls-pki-types@1.15.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\rustls-pki-types-1.15.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"rustls_pki_types","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\rustls-pki-types-1.15.1\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\librustls_pki_types-1bd3655517871842.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\librustls_pki_types-1bd3655517871842.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tracing@0.1.44","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tracing-0.1.44\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tracing","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tracing-0.1.44\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["attributes","default","std","tracing-attributes"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtracing-a25988cc6932fd96.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtracing-a25988cc6932fd96.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#wgpu@27.0.1","linked_libs":[],"linked_paths":[],"cfgs":["native","send_sync","dx12","vulkan","gles","wgpu_core","supports_64bit_atomics","std"],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\wgpu-9d5b56fe8fcf3c6d\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#http-body@1.1.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\http-body-1.1.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"http_body","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\http-body-1.1.0\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libhttp_body-1e221e4b8f6ce076.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libhttp_body-1e221e4b8f6ce076.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#wgpu-core@27.0.3","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\wgpu-core-27.0.3\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"wgpu_core","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\wgpu-core-27.0.3\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","dx12","gles","metal","portable-atomic","raw-window-handle","renderdoc","std","vulkan","wgpu-core-deps-windows-linux-android","wgsl"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwgpu_core-bce128809e3bbd57.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwgpu_core-bce128809e3bbd57.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.229","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\serde_core-1.0.229\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"serde_core","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\serde_core-1.0.229\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["result","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libserde_core-f52ac0796dd4fc39.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libserde_core-f52ac0796dd4fc39.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#icu_properties_data@2.3.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\icu_properties_data-2.3.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"icu_properties_data","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\icu_properties_data-2.3.0\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libicu_properties_data-0a55d3110383d8cf.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libicu_properties_data-0a55d3110383d8cf.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#icu_normalizer_data@2.3.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\icu_normalizer_data-2.3.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"icu_normalizer_data","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\icu_normalizer_data-2.3.0\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libicu_normalizer_data-cc624475940b4280.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libicu_normalizer_data-cc624475940b4280.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#iced_graphics@0.14.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\iced_graphics-0.14.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"iced_graphics","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\iced_graphics-0.14.0\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["geometry","lyon_path"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libiced_graphics-624c1ad1d2dc2a19.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libiced_graphics-624c1ad1d2dc2a19.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#getrandom@0.2.17","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\getrandom-0.2.17\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"getrandom","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\getrandom-0.2.17\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libgetrandom-185bbb1050af4ba4.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libgetrandom-185bbb1050af4ba4.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#float_next_after@1.0.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\float_next_after-1.0.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"float_next_after","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\float_next_after-1.0.0\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfloat_next_after-f37d5e9e563fe7b6.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfloat_next_after-f37d5e9e563fe7b6.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#untrusted@0.9.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\untrusted-0.9.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"untrusted","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\untrusted-0.9.0\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libuntrusted-8ff786a1980b4b0a.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libuntrusted-8ff786a1980b4b0a.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#static_assertions@1.1.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\static_assertions-1.1.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"static_assertions","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\static_assertions-1.1.0\\src\\lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libstatic_assertions-e30c198504c77e70.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libstatic_assertions-e30c198504c77e70.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#httparse@1.10.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\httparse-1.10.1\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\httparse-1.10.1\\build.rs","edition":"2018","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\httparse-a2eedd5114971ddd\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#httparse@1.10.1","linked_libs":[],"linked_paths":[],"cfgs":["httparse_simd_neon_intrinsics","httparse_simd"],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\httparse-698f1875f21d9b15\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#wgpu@27.0.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\wgpu-27.0.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"wgpu","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\wgpu-27.0.1\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","dx12","gles","metal","parking_lot","std","vulkan","web","webgpu","wgsl"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwgpu-595090e3ab7ff771.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwgpu-595090e3ab7ff771.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ring@0.17.14","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\ring-0.17.14\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ring","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\ring-0.17.14\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","dev_urandom_fallback"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libring-738dab64282c6eef.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libring-738dab64282c6eef.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#lyon_tessellation@1.0.21","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\lyon_tessellation-1.0.21\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"lyon_tessellation","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\lyon_tessellation-1.0.21\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblyon_tessellation-c823cc7a711760b5.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblyon_tessellation-c823cc7a711760b5.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#icu_normalizer@2.3.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\icu_normalizer-2.3.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"icu_normalizer","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\icu_normalizer-2.3.0\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["compiled_data"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libicu_normalizer-59c6783bf6a5e835.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libicu_normalizer-59c6783bf6a5e835.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#icu_properties@2.3.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\icu_properties-2.3.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"icu_properties","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\icu_properties-2.3.0\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["compiled_data"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libicu_properties-5116ed65b0290f32.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libicu_properties-5116ed65b0290f32.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#etagere@0.2.15","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\etagere-0.2.15\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"etagere","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\etagere-0.2.15\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libetagere-11863a42386f547a.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libetagere-11863a42386f547a.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#iced_debug@0.14.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\iced_debug-0.14.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"iced_debug","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\iced_debug-0.14.0\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libiced_debug-fe62b2ca2b80c527.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libiced_debug-fe62b2ca2b80c527.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#lyon_algorithms@1.0.21","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\lyon_algorithms-1.0.21\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"lyon_algorithms","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\lyon_algorithms-1.0.21\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblyon_algorithms-edfce36ea52c6680.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblyon_algorithms-edfce36ea52c6680.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#try-lock@0.2.5","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\try-lock-0.2.5\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"try_lock","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\try-lock-0.2.5\\src\\lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtry_lock-9f27ccc0a055ed63.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtry_lock-9f27ccc0a055ed63.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tower-service@0.3.3","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tower-service-0.3.3\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tower_service","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tower-service-0.3.3\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtower_service-7458f32bbeb2d4e8.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtower_service-7458f32bbeb2d4e8.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#getrandom@0.4.3","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\getrandom-0.4.3\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\getrandom-0.4.3\\build.rs","edition":"2024","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\getrandom-168cb7f91c8645ca\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#lru@0.16.4","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\lru-0.16.4\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"lru","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\lru-0.16.4\\src\\lib.rs","edition":"2015","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblru-a0c556d4aa0be9d2.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblru-a0c556d4aa0be9d2.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde@1.0.229","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\serde-1.0.229\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\serde-1.0.229\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","derive","serde_derive","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\serde-c9911adbe87e85d2\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zmij@1.0.23","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\zmij-1.0.23\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\zmij-1.0.23\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\zmij-e8f67a20243f3063\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rustls@0.23.43","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\rustls-0.23.43\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\rustls-0.23.43\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["ring","std","tls12"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\rustls-4731cd7a4b08d473\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#rustls@0.23.43","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\rustls-2bbc978437ba46fb\\out"}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#zmij@1.0.23","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\zmij-c8f8f3187a72be14\\out"}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde@1.0.229","linked_libs":[],"linked_paths":[],"cfgs":["if_docsrs_then_no_serde_core"],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\serde-963672309bf9e4ba\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#cryoglyph@0.1.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\cryoglyph-0.1.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"cryoglyph","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\cryoglyph-0.1.0\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libcryoglyph-b2394e118b4d9376.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libcryoglyph-b2394e118b4d9376.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#getrandom@0.4.3","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\getrandom-4967b63cf7b288b8\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#want@0.3.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\want-0.3.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"want","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\want-0.3.1\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwant-32f9dd7f41c480ab.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwant-32f9dd7f41c480ab.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#lyon@1.0.19","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\lyon-1.0.19\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"lyon","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\lyon-1.0.19\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblyon-4cdc4fdcfb93f989.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liblyon-4cdc4fdcfb93f989.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#idna_adapter@1.2.2","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\idna_adapter-1.2.2\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"idna_adapter","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\idna_adapter-1.2.2\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["compiled_data"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libidna_adapter-8d8c45dfcc1fdf6e.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libidna_adapter-8d8c45dfcc1fdf6e.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rustls-webpki@0.103.15","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\rustls-webpki-0.103.15\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"webpki","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\rustls-webpki-0.103.15\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","ring","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwebpki-008d50ae9e845dae.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwebpki-008d50ae9e845dae.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#httparse@1.10.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\httparse-1.10.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"httparse","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\httparse-1.10.1\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libhttparse-9c77e151b8820051.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libhttparse-9c77e151b8820051.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#guillotiere@0.6.2","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\guillotiere-0.6.2\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"guillotiere","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\guillotiere-0.6.2\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libguillotiere-faf3950892ed8771.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libguillotiere-faf3950892ed8771.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#form_urlencoded@1.2.2","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\form_urlencoded-1.2.2\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"form_urlencoded","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\form_urlencoded-1.2.2\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libform_urlencoded-cc07c16f896fb577.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libform_urlencoded-cc07c16f896fb577.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#winit@0.30.13","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\winit-0.30.13\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\winit-0.30.13\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["ahash","bytemuck","memmap2","percent-encoding","rwh_06","sctk","sctk-adwaita","wayland","wayland-backend","wayland-client","wayland-csd-adwaita","wayland-dlopen","wayland-protocols","wayland-protocols-plasma","x11","x11-dl","x11rb"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\winit-83b21ae2c86d60b6\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_derive@1.0.229","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\serde_derive-1.0.229\\Cargo.toml","target":{"kind":["proc-macro"],"crate_types":["proc-macro"],"name":"serde_derive","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\serde_derive-1.0.229\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\serde_derive-85ba47d41ea85c8c.dll","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libserde_derive-85ba47d41ea85c8c.dll.a"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#atomic-waker@1.1.2","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\atomic-waker-1.1.2\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"atomic_waker","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\atomic-waker-1.1.2\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libatomic_waker-e967f7e415cea2c2.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libatomic_waker-e967f7e415cea2c2.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#error-code@3.4.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\error-code-3.4.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"error_code","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\error-code-3.4.0\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liberror_code-0cb8a5eb06ab8729.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liberror_code-0cb8a5eb06ab8729.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#subtle@2.6.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\subtle-2.6.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"subtle","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\subtle-2.6.1\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libsubtle-5343c5ccffb39419.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libsubtle-5343c5ccffb39419.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_json@1.0.151","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\serde_json-1.0.151\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\serde_json-1.0.151\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\serde_json-28521d5277e5c15b\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_json@1.0.151","linked_libs":[],"linked_paths":[],"cfgs":["fast_arithmetic=\"64\""],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\serde_json-908788f6700df5fb\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rustls@0.23.43","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\rustls-0.23.43\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"rustls","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\rustls-0.23.43\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["ring","std","tls12"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\librustls-b129a6e715773239.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\librustls-b129a6e715773239.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#clipboard-win@5.4.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\clipboard-win-5.4.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"clipboard_win","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\clipboard-win-5.4.1\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libclipboard_win-397533c2e2575812.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libclipboard_win-397533c2e2575812.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#hyper@1.11.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\hyper-1.11.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hyper","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\hyper-1.11.1\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["client","default","http1"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libhyper-e5ef4fb4f9b64063.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libhyper-e5ef4fb4f9b64063.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde@1.0.229","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\serde-1.0.229\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"serde","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\serde-1.0.229\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","derive","serde_derive","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libserde-698855389a914a01.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libserde-698855389a914a01.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#winit@0.30.13","linked_libs":[],"linked_paths":[],"cfgs":["windows_platform"],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\winit-4ccf486d7e382df9\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#iced_wgpu@0.14.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\iced_wgpu-0.14.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"iced_wgpu","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\iced_wgpu-0.14.0\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","geometry","lyon"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libiced_wgpu-c0f17b8f9b992dc8.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libiced_wgpu-c0f17b8f9b992dc8.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#idna@1.1.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\idna-1.1.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"idna","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\idna-1.1.0\\src\\lib.rs","edition":"2018","doc":true,"doctest":false,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","compiled_data","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libidna-bdd1376744228939.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libidna-bdd1376744228939.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#getrandom@0.4.3","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\getrandom-0.4.3\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"getrandom","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\getrandom-0.4.3\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libgetrandom-6e8efb5a01ff0cbb.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libgetrandom-6e8efb5a01ff0cbb.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#zmij@1.0.23","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\zmij-1.0.23\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"zmij","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\zmij-1.0.23\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libzmij-9f8770986f00ef15.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libzmij-9f8770986f00ef15.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#iced_runtime@0.14.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\iced_runtime-0.14.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"iced_runtime","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\iced_runtime-0.14.0\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libiced_runtime-93fe602e2dabe64d.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libiced_runtime-93fe602e2dabe64d.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#windows-sys@0.52.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows-sys-0.52.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"windows_sys","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows-sys-0.52.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["Win32","Win32_Devices","Win32_Devices_HumanInterfaceDevice","Win32_Foundation","Win32_Globalization","Win32_Graphics","Win32_Graphics_Dwm","Win32_Graphics_Gdi","Win32_Media","Win32_Security","Win32_System","Win32_System_Com","Win32_System_Com_StructuredStorage","Win32_System_LibraryLoader","Win32_System_Ole","Win32_System_SystemInformation","Win32_System_SystemServices","Win32_System_Threading","Win32_System_WindowsProgramming","Win32_UI","Win32_UI_Accessibility","Win32_UI_Controls","Win32_UI_HiDpi","Win32_UI_Input","Win32_UI_Input_Ime","Win32_UI_Input_KeyboardAndMouse","Win32_UI_Input_Pointer","Win32_UI_Input_Touch","Win32_UI_Shell","Win32_UI_TextServices","Win32_UI_WindowsAndMessaging","default"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwindows_sys-06c2af6f098f909f.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwindows_sys-06c2af6f098f909f.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#sync_wrapper@1.0.2","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\sync_wrapper-1.0.2\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"sync_wrapper","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\sync_wrapper-1.0.2\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["futures","futures-core"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libsync_wrapper-6990166b58a7374a.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libsync_wrapper-6990166b58a7374a.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#cursor-icon@1.2.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\cursor-icon-1.2.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"cursor_icon","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\cursor-icon-1.2.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libcursor_icon-ad27fa28bd28652d.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libcursor_icon-ad27fa28bd28652d.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#dpi@0.1.2","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\dpi-0.1.2\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"dpi","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\dpi-0.1.2\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libdpi-f5f7fb1c621a018e.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libdpi-f5f7fb1c621a018e.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#base64@0.22.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\base64-0.22.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"base64","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\base64-0.22.1\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libbase64-727bb2e9e77ea808.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libbase64-727bb2e9e77ea808.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ipnet@2.12.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\ipnet-2.12.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ipnet","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\ipnet-2.12.1\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libipnet-b58970b857bf6042.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libipnet-b58970b857bf6042.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tower-layer@0.3.3","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tower-layer-0.3.3\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tower_layer","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tower-layer-0.3.3\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtower_layer-f71a1751e33be8db.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtower_layer-f71a1751e33be8db.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tower@0.5.3","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tower-0.5.3\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tower","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tower-0.5.3\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["futures-core","futures-util","pin-project-lite","retry","sync_wrapper","timeout","tokio","util"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtower-ee71091376f45b24.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtower-ee71091376f45b24.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#hyper-util@0.1.20","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\hyper-util-0.1.20\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hyper_util","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\hyper-util-0.1.20\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["client","client-legacy","client-proxy","default","http1","tokio"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libhyper_util-b26eeba27e741a08.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libhyper_util-b26eeba27e741a08.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#winit@0.30.13","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\winit-0.30.13\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"winit","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\winit-0.30.13\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["ahash","bytemuck","memmap2","percent-encoding","rwh_06","sctk","sctk-adwaita","wayland","wayland-backend","wayland-client","wayland-csd-adwaita","wayland-dlopen","wayland-protocols","wayland-protocols-plasma","x11","x11-dl","x11rb"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwinit-ba7482330d748070.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwinit-ba7482330d748070.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#iced_program@0.14.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\iced_program-0.14.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"iced_program","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\iced_program-0.14.0\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libiced_program-ffcde4ddf0598e31.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libiced_program-ffcde4ddf0598e31.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_json@1.0.151","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\serde_json-1.0.151\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"serde_json","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\serde_json-1.0.151\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libserde_json-39fc764f03e68759.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libserde_json-39fc764f03e68759.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#url@2.5.8","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\url-2.5.8\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"url","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\url-2.5.8\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liburl-2d7487f095ea9231.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liburl-2d7487f095ea9231.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#iced_renderer@0.14.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\iced_renderer-0.14.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"iced_renderer","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\iced_renderer-0.14.0\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["geometry","iced_wgpu","wayland","wgpu","wgpu-bare","x11"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libiced_renderer-2573a9f65f468446.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libiced_renderer-2573a9f65f468446.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#window_clipboard@0.5.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\window_clipboard-0.5.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"window_clipboard","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\window_clipboard-0.5.1\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["clipboard_wayland","clipboard_x11","wayland","x11"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwindow_clipboard-51aae3cf7171c4ae.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwindow_clipboard-51aae3cf7171c4ae.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tokio-rustls@0.26.5","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tokio-rustls-0.26.5\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tokio_rustls","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tokio-rustls-0.26.5\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["ring","tls12"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtokio_rustls-71f10d02a9f9e4e6.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtokio_rustls-71f10d02a9f9e4e6.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#webpki-roots@1.0.9","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\webpki-roots-1.0.9\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"webpki_roots","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\webpki-roots-1.0.9\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwebpki_roots-3b25851f8e797647.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwebpki_roots-3b25851f8e797647.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#winapi-util@0.1.11","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\winapi-util-0.1.11\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"winapi_util","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\winapi-util-0.1.11\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwinapi_util-178409c37516f0da.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwinapi_util-178409c37516f0da.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"path+file:///C:/ar-text-9e8r6t/crates/oa-core#0.2.0","manifest_path":"C:\\ar-text-9e8r6t\\crates\\oa-core\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\ar-text-9e8r6t\\crates\\oa-core\\build.rs","edition":"2024","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\oa-core-6f46b396061b0e99\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#ryu@1.0.23","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\ryu-1.0.23\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"ryu","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\ryu-1.0.23\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libryu-28cfd08a9cfed0fa.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libryu-28cfd08a9cfed0fa.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#sha1_smol@1.0.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\sha1_smol-1.0.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"sha1_smol","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\sha1_smol-1.0.1\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libsha1_smol-c4b7e5ec8b41792e.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libsha1_smol-c4b7e5ec8b41792e.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#fastrand@2.5.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\fastrand-2.5.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"fastrand","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\fastrand-2.5.0\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["alloc","default","std"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfastrand-3df248e815d242e1.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libfastrand-3df248e815d242e1.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rfd@0.15.4","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\rfd-0.15.4\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\rfd-0.15.4\\build.rs","edition":"2021","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["ashpd","async-std","default","pollster","urlencoding","xdg-portal"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\rfd-8cedae2692909516\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"registry+https://github.com/rust-lang/crates.io-index#rfd@0.15.4","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\rfd-6a203449fa297c36\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tempfile@3.27.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tempfile-3.27.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tempfile","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tempfile-3.27.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","getrandom"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtempfile-86aac28d6be16d2f.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtempfile-86aac28d6be16d2f.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#uuid@1.26.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\uuid-1.26.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"uuid","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\uuid-1.26.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default","rng","serde","sha1","std","v4","v5"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libuuid-f7851e8936dae115.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libuuid-f7851e8936dae115.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#serde_urlencoded@0.7.1","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\serde_urlencoded-0.7.1\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"serde_urlencoded","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\serde_urlencoded-0.7.1\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libserde_urlencoded-ad8d1ce9366d3ed4.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libserde_urlencoded-ad8d1ce9366d3ed4.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"path+file:///C:/ar-text-9e8r6t/crates/oa-core#0.2.0","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\oa-core-08552b12a2cacda2\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#same-file@1.0.6","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\same-file-1.0.6\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"same_file","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\same-file-1.0.6\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libsame_file-e8a4d164978c7bf3.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libsame_file-e8a4d164978c7bf3.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#hyper-rustls@0.27.9","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\hyper-rustls-0.27.9\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"hyper_rustls","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\hyper-rustls-0.27.9\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["http1","ring","tls12","webpki-roots","webpki-tokio"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libhyper_rustls-c6aa16b733036ee9.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libhyper_rustls-c6aa16b733036ee9.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#iced_winit@0.14.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\iced_winit-0.14.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"iced_winit","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\iced_winit-0.14.0\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["wayland","x11"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libiced_winit-5aa41936858bc773.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libiced_winit-5aa41936858bc773.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#iced_widget@0.14.2","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\iced_widget-0.14.2\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"iced_widget","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\iced_widget-0.14.2\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["advanced","canvas","wgpu"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libiced_widget-8513284801154688.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libiced_widget-8513284801154688.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#tower-http@0.6.11","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tower-http-0.6.11\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"tower_http","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\tower-http-0.6.11\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["follow-redirect","futures-util","tower"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtower_http-92f42ef6b0d2c3ab.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libtower_http-92f42ef6b0d2c3ab.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#http-body-util@0.1.5","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\http-body-util-0.1.5\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"http_body_util","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\http-body-util-0.1.5\\src\\lib.rs","edition":"2018","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["default"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libhttp_body_util-70fa0b4576b964c7.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libhttp_body_util-70fa0b4576b964c7.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#windows-sys@0.59.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows-sys-0.59.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"windows_sys","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows-sys-0.59.0\\src\\lib.rs","edition":"2021","doc":true,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["Win32","Win32_Foundation","Win32_System","Win32_System_Com","Win32_UI","Win32_UI_Shell","Win32_UI_Shell_Common","Win32_UI_WindowsAndMessaging","default"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwindows_sys-c21bfdf36c33841c.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libwindows_sys-c21bfdf36c33841c.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"path+file:///C:/ar-text-9e8r6t/crates/oa-desktop#0.2.0","manifest_path":"C:\\ar-text-9e8r6t\\crates\\oa-desktop\\Cargo.toml","target":{"kind":["custom-build"],"crate_types":["bin"],"name":"build-script-build","src_path":"C:\\ar-text-9e8r6t\\crates\\oa-desktop\\build.rs","edition":"2024","doc":false,"doctest":false,"test":false},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\oa-desktop-64bfcb13993fdcf4\\build-script-build.exe"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"build-script-executed","package_id":"path+file:///C:/ar-text-9e8r6t/crates/oa-desktop#0.2.0","linked_libs":[],"linked_paths":[],"cfgs":[],"env":[],"out_dir":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\build\\oa-desktop-664d65ac5124e646\\out"}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#rfd@0.15.4","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\rfd-0.15.4\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"rfd","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\rfd-0.15.4\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["ashpd","async-std","default","pollster","urlencoding","xdg-portal"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\librfd-17cc7ba2db223d7b.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\librfd-17cc7ba2db223d7b.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#reqwest@0.12.28","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\reqwest-0.12.28\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"reqwest","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\reqwest-0.12.28\\src\\lib.rs","edition":"2021","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["__rustls","__rustls-ring","__tls","json","rustls-tls","rustls-tls-webpki-roots","rustls-tls-webpki-roots-no-provider"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libreqwest-b01c69cdcc184887.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libreqwest-b01c69cdcc184887.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"registry+https://github.com/rust-lang/crates.io-index#iced@0.14.0","manifest_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\iced-0.14.0\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"iced","src_path":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\iced-0.14.0\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":["advanced","canvas","tokio","wayland","wgpu","wgpu-bare","x11"],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libiced-a4e48b220c5d9711.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\libiced-a4e48b220c5d9711.rmeta"],"executable":null,"fresh":true}
|
||||||
|
{"reason":"compiler-artifact","package_id":"path+file:///C:/ar-text-9e8r6t/crates/oa-core#0.2.0","manifest_path":"C:\\ar-text-9e8r6t\\crates\\oa-core\\Cargo.toml","target":{"kind":["lib"],"crate_types":["lib"],"name":"oa_core","src_path":"C:\\ar-text-9e8r6t\\crates\\oa-core\\src\\lib.rs","edition":"2024","doc":true,"doctest":true,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liboa_core-3e81c616fea1d901.rlib","C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\deps\\liboa_core-3e81c616fea1d901.rmeta"],"executable":null,"fresh":false}
|
||||||
|
{"reason":"compiler-artifact","package_id":"path+file:///C:/ar-text-9e8r6t/crates/oa-desktop#0.2.0","manifest_path":"C:\\ar-text-9e8r6t\\crates\\oa-desktop\\Cargo.toml","target":{"kind":["bin"],"crate_types":["bin"],"name":"arcadia-studio","src_path":"C:\\ar-text-9e8r6t\\crates\\oa-desktop\\src\\main.rs","edition":"2024","doc":true,"doctest":false,"test":true},"profile":{"opt_level":"0","debuginfo":0,"debug_assertions":true,"overflow_checks":true,"test":false},"features":[],"filenames":["C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\arcadia-studio.exe"],"executable":"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\target-gnullvm\\debug\\arcadia-studio.exe","fresh":false}
|
||||||
|
{"reason":"build-finished","success":true}
|
||||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"command": [
|
||||||
|
"cargo",
|
||||||
|
"test",
|
||||||
|
"--locked",
|
||||||
|
"--offline",
|
||||||
|
"-p",
|
||||||
|
"oa-desktop",
|
||||||
|
"--bin",
|
||||||
|
"arcadia-studio",
|
||||||
|
"--",
|
||||||
|
"--list"
|
||||||
|
],
|
||||||
|
"started": "2026-09-13T02:18:28.501200+00:00",
|
||||||
|
"finished": "2026-09-13T02:22:47.122499+00:00",
|
||||||
|
"seconds": 258.62018909999824,
|
||||||
|
"exitCode": 0,
|
||||||
|
"inputsUnchanged": true,
|
||||||
|
"stdoutSha256": "a309cb73becffea6de10375deac7a9e30fc7c3d7a125aa10f30b5cd06b007cdd",
|
||||||
|
"stderrSha256": "a8db625d670cd4dce500735df31815f01e3089d9d84a949fd2bf6a3aecb1b3d0",
|
||||||
|
"testMembership": {
|
||||||
|
"listed": 859,
|
||||||
|
"required": [
|
||||||
|
"app::source_symbols::tests::retained_choices_cannot_replay_after_hide_or_references_problems_references",
|
||||||
|
"app::text_workspace::lifecycle_tests::invalid_repair_open_clears_prior_presentation_and_publishes_current_problems_preserving_worker",
|
||||||
|
"app::text_workspace::lifecycle_tests::saved_new_destination_republishes_current_warning_and_refuses_old_primary_and_related",
|
||||||
|
"app::text_workspace::tests::document_reset_preserves_popup_token_sequence_and_drops_old_menu_authority",
|
||||||
|
"app::text_workspace::tests::queued_group_toggle_cannot_mutate_a_reopened_or_rotated_visit",
|
||||||
|
"app::text_workspace::tests::stale_retained_group_can_expand_without_navigating_or_applying_drafts",
|
||||||
|
"diagnostic_input::tests::same_publication_new_visit_cancels_armed_rows_without_a_hidden_tree_frame",
|
||||||
|
"views::text_workspace::summary_visibility_tests::all_reference_exceptions_fit_allocated_width_with_wide_alias_and_large_counts",
|
||||||
|
"views::text_workspace::tests::drawer_clamps_to_actual_center_allocation_including_oversize_requests",
|
||||||
|
"views::text_workspace::tests::highlighted_sensor_editor_retains_real_scrolled_buffer_across_panel_rebuilds"
|
||||||
|
],
|
||||||
|
"missing": [],
|
||||||
|
"diagnosticGuardCount": 20
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
Compiling oa-desktop v0.2.0 (C:\ar-text-9e8r6t\crates\oa-desktop)
|
||||||
|
Finished `test` profile [unoptimized] target(s) in 4m 18s
|
||||||
|
Running unittests src\main.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\target-gnullvm\debug\deps\arcadia_studio-58e30cee1fd51a8b.exe)
|
||||||
@@ -0,0 +1,861 @@
|
|||||||
|
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_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::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_scroll_and_real_resize_invalidate_only_pointer_context: 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_scroll_resize_and_passive_geometry_keep_drafts_and_current_origin: 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::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_rename::alias_input::tests::effective_escape_reset_follows_child_after_early_returns: test
|
||||||
|
app::source_rename::alias_input::tests::held_paste_cache_contains_only_previously_admitted_text: test
|
||||||
|
app::source_rename::alias_input::tests::paste_refusal_matches_child_focus_enabled_and_stored_modifier_protocol: test
|
||||||
|
app::source_rename::editor_patch::tests::all_preflight_refusals_leave_text_cursor_and_selection_unchanged: test
|
||||||
|
app::source_rename::editor_patch::tests::already_laid_out_editor_notifies_highlighter_from_zero_after_later_line_patch: test
|
||||||
|
app::source_rename::editor_patch::tests::exact_text_matrix_and_reverse_preserve_endings: test
|
||||||
|
app::source_rename::editor_patch::tests::unchanged_content_preserves_selection_and_next_direct_edit_works: test
|
||||||
|
app::source_rename::tests::actual_alias_clipboard_rejects_controls_without_normalizing_or_moving_selection: test
|
||||||
|
app::source_rename::tests::actual_captured_escape_closes_only_its_priority_owner_and_retains_worker: test
|
||||||
|
app::source_rename::tests::actual_dialog_enter_requests_preview_even_when_confirm_is_available: test
|
||||||
|
app::source_rename::tests::actual_dialog_real_paragraph_geometry_keeps_input_preview_and_footer_reachable: test
|
||||||
|
app::source_rename::tests::alias_editor_sync_fallback_restores_accepted_display_and_preserves_model_history: test
|
||||||
|
app::source_rename::tests::close_and_reset_retain_worker_slot_until_exact_completion_without_reopening: test
|
||||||
|
app::source_rename::tests::complete_alias_change_preserves_literals_and_last_comment_separated_origin_and_undo: test
|
||||||
|
app::source_rename::tests::full_details_selection_survives_readonly_and_passive_messages_and_tracks_input: test
|
||||||
|
app::source_rename::tests::genuine_save_receipts_preserve_same_destination_preview_but_invalidate_save_as: test
|
||||||
|
app::source_rename::tests::invalid_open_retains_accepted_document_but_refuses_alias_rename: test
|
||||||
|
app::source_rename::tests::last_same_line_use_beyond_reference_row_limit_and_selection_boundaries: test
|
||||||
|
app::source_rename::tests::mounted_editor_f2_requires_focus_and_no_modifiers: test
|
||||||
|
app::source_rename::tests::paging_all_utf8_fragments_preserves_exact_preview_and_approval: test
|
||||||
|
app::source_rename::tests::preview_glyph_tests::actual_preview_source_glyphs_clear_scrollbar_and_all_long_fragments_are_reachable: test
|
||||||
|
app::source_rename::tests::preview_scroll_tests::delayed_page_and_approval_operations_cannot_reset_a_new_destination: test
|
||||||
|
app::source_rename::tests::preview_scroll_tests::explicit_navigation_resets_retained_scroll_but_id_change_alone_does_not: test
|
||||||
|
app::source_rename::tests::preview_scroll_tests::repeated_page_visits_filters_and_fast_preview_completion_have_distinct_destinations: test
|
||||||
|
app::source_rename::tests::property_draft_and_detached_buffer_refuse_without_hidden_apply: test
|
||||||
|
app::source_rename::tests::replacement_generation_aba_and_modal_shortcuts_cannot_commit_stale_preview: test
|
||||||
|
app::source_rename::tests::same_alias_invalid_and_cancel_keep_existing_redo_and_source_selection: test
|
||||||
|
app::source_rename::tests::source_edit_undo_and_recovery_invalidation_do_not_revive_approval: test
|
||||||
|
app::source_rename::tests::stale_dialog_envelopes_do_not_cancel_new_same_path_form_or_its_approval: test
|
||||||
|
app::source_rename::timing_tests::accepted_release1_prepare_commit_sync_and_confirm_timing: test
|
||||||
|
app::source_rename::timing_tests::layout_timing_tests::accepted_release1_constructor_vs_reuse_through_next_highlight: 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_retains_hidden_completion_without_reopening_or_navigation: test
|
||||||
|
app::source_symbols::tests::closed_results_stay_closed_on_exact_back_and_reopen_only_for_a_return_notice: test
|
||||||
|
app::source_symbols::tests::completion_retains_current_display_but_rejects_navigation_after_context_changes: test
|
||||||
|
app::source_symbols::tests::delayed_definition_after_hide_or_tab_change_retains_data_without_reopening_or_focus: 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_hides_results_and_cancels_navigation_but_retains_latest_display: 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::hidden_completion_checks_exact_bytes_even_when_snapshot_key_was_not_advanced: test
|
||||||
|
app::source_symbols::tests::invalid_unapplied_drafts_navigate_without_apply_or_losing_either_history: test
|
||||||
|
app::source_symbols::tests::matching_old_worker_cannot_replace_a_newer_display_owner: 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::popup_escape_has_no_duplicate_bridge_and_dismissal_preserves_underlying_find_and_drawer: test
|
||||||
|
app::source_symbols::tests::reset_retains_worker_slot_until_old_completion_then_admits_new_session_query: test
|
||||||
|
app::source_symbols::tests::retained_choices_cannot_replay_after_hide_or_references_problems_references: test
|
||||||
|
app::source_symbols::tests::same_worker_with_changed_request_envelope_cannot_publish_or_navigate: 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::text_workspace::lifecycle_tests::canceled_or_failed_open_that_installs_nothing_retains_current_presentation_and_diagnostics: test
|
||||||
|
app::text_workspace::lifecycle_tests::invalid_repair_open_clears_prior_presentation_and_publishes_current_problems_preserving_worker: test
|
||||||
|
app::text_workspace::lifecycle_tests::saved_new_destination_does_not_revalidate_already_stale_warning_locations: test
|
||||||
|
app::text_workspace::lifecycle_tests::saved_new_destination_republishes_current_warning_and_refuses_old_primary_and_related: test
|
||||||
|
app::text_workspace::tests::current_diagnostic_target_navigates_but_changed_source_or_clear_refuses_it: test
|
||||||
|
app::text_workspace::tests::diagnostic_span_must_be_loaded_ordered_and_utf8_exact: test
|
||||||
|
app::text_workspace::tests::disabled_entry_cannot_become_a_new_action_under_the_same_menu_token: test
|
||||||
|
app::text_workspace::tests::document_reset_preserves_popup_token_sequence_and_drops_old_menu_authority: test
|
||||||
|
app::text_workspace::tests::enabled_entry_is_readmitted_at_dispatch_and_blocked_by_busy: test
|
||||||
|
app::text_workspace::tests::equal_diagnostic_republication_invalidates_primary_and_related_targets: test
|
||||||
|
app::text_workspace::tests::menu_own_open_invalidation_does_not_stale_find_and_invoke_is_once: test
|
||||||
|
app::text_workspace::tests::menu_source_caret_document_path_and_interaction_changes_refuse_stale_find: test
|
||||||
|
app::text_workspace::tests::old_dismiss_and_invoke_do_not_consume_a_newer_menu: test
|
||||||
|
app::text_workspace::tests::only_valid_explicit_group_and_resize_intent_cancel_pending_navigation: test
|
||||||
|
app::text_workspace::tests::queued_group_toggle_cannot_mutate_a_reopened_or_rotated_visit: test
|
||||||
|
app::text_workspace::tests::queued_toolbar_request_cannot_retarget_after_source_change: test
|
||||||
|
app::text_workspace::tests::reference_groups_and_scroll_survive_tabs_and_reject_old_visits_and_queries: test
|
||||||
|
app::text_workspace::tests::reset_removes_ui_and_publication_authority_and_resize_rejects_nan: test
|
||||||
|
app::text_workspace::tests::retained_primary_and_related_targets_cannot_replay_after_hide_or_problems_references_problems: test
|
||||||
|
app::text_workspace::tests::source_and_property_drafts_keep_find_and_text_undo_without_model_application: test
|
||||||
|
app::text_workspace::tests::stale_retained_group_can_expand_without_navigating_or_applying_drafts: 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::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_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_old_empty_action_cannot_open_a_previous_owner_or_layer: 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_scroll_resize_and_bounds_changes_cancel_captured_slots: test
|
||||||
|
behavior::direct_canvas_tests::direct_scrolled_canvas_maps_raw_pointer_events_to_the_visible_slot: 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_observed_scroll_current_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::workspace::tests::scenario_workspace_allocates_remaining_height_and_pins_actions_at_minimum_and_wide_sizes: test
|
||||||
|
behavior::scenario::workspace::tests::scenario_workspace_caller_restores_actual_mounted_canvas_and_shelf_with_camera: test
|
||||||
|
behavior::scenario::workspace::tests::scenario_workspace_canvas_and_form_scroll_survive_disclosures_focus_width_and_resize: test
|
||||||
|
behavior::scenario::workspace::tests::scenario_workspace_choosing_tools_preserves_valid_and_invalid_pending_editors: test
|
||||||
|
behavior::scenario::workspace::tests::scenario_workspace_fit_reobserves_same_sized_owner_and_document_changes: 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_scroll_after_preselection: test
|
||||||
|
behavior::scenario::workspace::tests::scenario_workspace_scaled_and_scrolled_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::workspace::tests::scenario_workspace_whole_app_canvas_tree_survives_pending_shelves_and_focus: 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::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_pending_form_diff_retains_the_canvas_scroll_state: test
|
||||||
|
behavior::topology::direct_tests::direct_process_production_click_click_drag_insert_and_scroll_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_fit_canvas_selection_ignores_retained_ordered_page_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::view::layout_tests::direct_process_pending_editor_uses_available_height_and_keeps_actions_visible: test
|
||||||
|
behavior::topology::view::layout_tests::process_fit_layout_disclosures_and_pending_editor_keep_real_manual_canvas_scroll: test
|
||||||
|
behavior::topology::view::layout_tests::process_fit_layout_measures_remaining_canvas_with_details_forms_and_window_resize: test
|
||||||
|
behavior::topology::view::layout_tests::process_fit_whole_app_focus_and_disclosures_retain_canvas_tree_with_pending_raw_form: 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
|
||||||
|
diagnostic_input::tests::already_captured_terminal_cancels_child_without_activation_or_lingering_press: test
|
||||||
|
diagnostic_input::tests::captured_terminal_cancellation_preserves_same_publication_focusable_child_state: test
|
||||||
|
diagnostic_input::tests::current_primary_and_related_mouse_clicks_survive_same_publication_diff: test
|
||||||
|
diagnostic_input::tests::current_touch_activates_primary_and_related_and_cancel_does_not_activate: test
|
||||||
|
diagnostic_input::tests::fresh_mouse_press_after_missing_stale_release_can_activate_current_row: test
|
||||||
|
diagnostic_input::tests::hidden_zero_height_scroller_delivers_cancelled_mouse_and_touch_terminals_to_guard: test
|
||||||
|
diagnostic_input::tests::hidden_zero_size_list_consumes_release_outside_old_bounds_once: test
|
||||||
|
diagnostic_input::tests::missed_press_is_ignored_and_dragging_release_outside_does_not_activate: test
|
||||||
|
diagnostic_input::tests::negative_control_iced_button_retargets_a_press_after_plain_tree_diff: test
|
||||||
|
diagnostic_input::tests::negative_control_plain_focusable_row_migrates_activation_to_replacement: test
|
||||||
|
diagnostic_input::tests::negative_control_removing_unguarded_rows_exposes_background_release: test
|
||||||
|
diagnostic_input::tests::outer_scroll_offset_survives_same_and_changed_publications: test
|
||||||
|
diagnostic_input::tests::replaced_primary_and_related_rows_consume_stale_release_then_accept_new_click: test
|
||||||
|
diagnostic_input::tests::replaced_touch_consumes_lift_or_cancel_even_when_hidden: test
|
||||||
|
diagnostic_input::tests::same_publication_missing_terminal_recovers_on_fresh_mouse_or_touch_down: test
|
||||||
|
diagnostic_input::tests::same_publication_new_visit_cancels_armed_rows_without_a_hidden_tree_frame: test
|
||||||
|
diagnostic_input::tests::same_publication_preserves_focus_but_replacement_never_inherits_activation: test
|
||||||
|
diagnostic_input::tests::stale_release_does_not_bubble_to_real_background_controls: test
|
||||||
|
diagnostic_input::tests::stale_touch_release_does_not_disarm_a_new_current_gesture: test
|
||||||
|
diagnostic_input::tests::unrelated_finger_or_mouse_release_cannot_complete_another_fingers_press: 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
|
||||||
|
document::alias_rename::tests::each_identity_family_changes_only_authored_alias_roles_and_one_history_entry: test
|
||||||
|
document::alias_rename::tests::equal_bytes_undo_replay_cross_document_and_exhausted_revision_refuse: test
|
||||||
|
document::alias_rename::tests::exact_history_capacity_admits_immediate_undo_and_rejects_larger_candidate: test
|
||||||
|
document::alias_rename::tests::highlighted_keyword_alias_is_valid_without_normalizing_input: test
|
||||||
|
document::alias_rename::tests::invalid_and_identical_aliases_preserve_live_state_and_redo: test
|
||||||
|
document::alias_rename::tests::mint_and_commit_refuse_exhausted_or_inconsistent_live_history_estimate: test
|
||||||
|
document::alias_rename::tests::mutable_public_preview_copies_cannot_change_prepared_authority: test
|
||||||
|
document::alias_rename::tests::preview_retains_latest_saved_baseline_and_recovery_state: 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::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::origin_keeps_exact_hit_when_display_rows_are_omitted: 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_rename::origin::tests::maps_last_repeated_reference_with_unicode_crlf_and_comment_separator: test
|
||||||
|
source_rename::origin::tests::permits_identifier_keyword_transitions_in_alias_roles: test
|
||||||
|
source_rename::origin::tests::preserves_final_same_line_occurrence_not_first_or_prose: test
|
||||||
|
source_rename::origin::tests::rejects_changed_trivia_non_alias_words_and_wrong_marker: test
|
||||||
|
source_rename::preview::tests::each_bound_is_exact_and_overflow_never_returns_a_partial_preview: test
|
||||||
|
source_rename::preview::tests::first_and_last_lines_form_complete_separate_hunks_and_pages: test
|
||||||
|
source_rename::preview::tests::limits_apply_to_the_whole_preview_not_each_file: test
|
||||||
|
source_rename::preview::tests::long_unicode_lines_are_fully_reachable_as_bounded_fragments: test
|
||||||
|
source_rename::preview::tests::nearby_changes_merge_and_all_changed_files_are_reachable: test
|
||||||
|
source_rename::preview::tests::preserves_unicode_mixed_endings_and_counts_lines_not_repeated_uses: test
|
||||||
|
source_rename::preview::tests::refuses_membership_entry_line_count_and_line_ending_changes: test
|
||||||
|
source_rename::preview::tests::unchanged_and_empty_sources_have_no_preview: 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::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_symbols::tests::suffixes_distinguish_nested_duplicate_basenames_without_changing_unicode: test
|
||||||
|
views::source_tests::source_editor_windows_menu_payload_is_inert_but_space_and_altgr_still_edit: test
|
||||||
|
views::text_workspace::summary_visibility_tests::all_reference_exceptions_fit_allocated_width_with_wide_alias_and_large_counts: test
|
||||||
|
views::text_workspace::tests::drawer_clamps_to_actual_center_allocation_including_oversize_requests: test
|
||||||
|
views::text_workspace::tests::five_slots_keep_editor_state_and_selection_through_explicit_and_passive_changes: test
|
||||||
|
views::text_workspace::tests::highlighted_sensor_editor_retains_real_scrolled_buffer_across_panel_rebuilds: test
|
||||||
|
views::text_workspace::tests::keyboard_resize_uses_effective_height_and_only_exact_open_drawer_shortcut: 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
|
||||||
|
|
||||||
|
859 tests, 0 benchmarks
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"command": [
|
||||||
|
"cargo",
|
||||||
|
"test",
|
||||||
|
"--locked",
|
||||||
|
"--offline",
|
||||||
|
"-p",
|
||||||
|
"oa-desktop",
|
||||||
|
"--bin",
|
||||||
|
"arcadia-studio",
|
||||||
|
"--",
|
||||||
|
"--test-threads=1"
|
||||||
|
],
|
||||||
|
"started": "2026-09-13T02:22:52.927057+00:00",
|
||||||
|
"finished": "2026-09-13T02:29:07.021086+00:00",
|
||||||
|
"seconds": 374.08875499999704,
|
||||||
|
"exitCode": 0,
|
||||||
|
"inputsUnchanged": true,
|
||||||
|
"stdoutSha256": "49b6da231b96fcc5dfa0bd8ed2e4d105045c1efa6b8d198bd4350f1ee8e28818",
|
||||||
|
"stderrSha256": "4bc3b596e2cb08b0af0a4bcdeae80135ce14b0b9046215b4c2ccfeafe1d2317a"
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
Finished `test` profile [unoptimized] target(s) in 2.11s
|
||||||
|
Running unittests src\main.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\target-gnullvm\debug\deps\arcadia_studio-58e30cee1fd51a8b.exe)
|
||||||
@@ -0,0 +1,864 @@
|
|||||||
|
|
||||||
|
running 859 tests
|
||||||
|
test app::architecture_authoring::tests::architecture_allocated_work_is_root_owned_and_one_exact_history_change ... ok
|
||||||
|
test app::architecture_authoring::tests::architecture_blank_names_and_escape_never_accept_placeholder_or_rename ... ok
|
||||||
|
test app::architecture_authoring::tests::architecture_captured_escape_does_not_cancel_other_controls_or_placement ... ok
|
||||||
|
test app::architecture_authoring::tests::architecture_f2_routes_selected_node_to_inline_rename_and_exact_undo ... ok
|
||||||
|
test app::architecture_authoring::tests::architecture_first_focused_input_escape_cancels_create_and_rename ... ok
|
||||||
|
test app::architecture_authoring::tests::architecture_invalid_click_cannot_poison_inline_or_checkpoint_geometry ... ok
|
||||||
|
test app::architecture_authoring::tests::architecture_stale_submit_keeps_create_and_rename_visible_and_exact ... ok
|
||||||
|
test app::architecture_authoring_tests::architecture_cancelled_gesture_cannot_commit_a_later_named_draft ... ok
|
||||||
|
test app::architecture_authoring_tests::architecture_canvas_left_click_uses_world_coordinate_once_at_zoom_and_pan ... ok
|
||||||
|
test app::architecture_authoring_tests::architecture_checkpoint_retains_exact_name_point_and_fresh_binding_without_commands ... ok
|
||||||
|
test app::architecture_authoring_tests::architecture_context_choices_are_small_and_system_is_singleton ... ok
|
||||||
|
test app::architecture_authoring_tests::architecture_contextual_allocation_creates_work_relation_and_node_in_one_undo ... ok
|
||||||
|
test app::architecture_authoring_tests::architecture_creation_names_before_commit_preserves_camera_and_undoes_once ... ok
|
||||||
|
test app::architecture_authoring_tests::architecture_existing_inventory_is_contextual_and_placement_never_implies_allocation ... ok
|
||||||
|
test app::architecture_authoring_tests::architecture_f2_rename_preserves_identity_placement_and_atomic_history ... ok
|
||||||
|
test app::architecture_authoring_tests::architecture_name_survives_rejected_click_resize_navigation_and_escape_is_explicit ... ok
|
||||||
|
test app::architecture_authoring_tests::architecture_rejected_submission_keeps_inline_name_visible_and_invalid_click_is_ignored ... ok
|
||||||
|
test app::architecture_authoring_tests::basic_transition_explicit_overview_focus_wins_over_an_already_populated_architecture ... ok
|
||||||
|
test app::behavior_lifecycle_tests::incomplete_behavior_form_is_dirty_close_save_retains_it_and_cancel_allows_switching ... ok
|
||||||
|
test app::behavior_lifecycle_tests::passive_behavior_canvas_events_do_not_apply_property_drafts ... ok
|
||||||
|
test app::behavior_lifecycle_tests::pending_behavior_blocks_navigation_property_edits_and_model_history ... ok
|
||||||
|
test app::behavior_lifecycle_tests::pending_behavior_blocks_source_creation_and_source_history_replay ... ok
|
||||||
|
test app::behavior_lifecycle_tests::save_prepares_behavior_before_opening_destination_and_cancel_keeps_one_undo ... ok
|
||||||
|
test app::behavior_lifecycle_tests::source_writeback_failure_keeps_typed_behavior_form_for_repair_and_one_undo ... ok
|
||||||
|
test app::checkpoints::tests::checkpoint_completion_releases_the_writer_while_a_context_menu_is_open ... ok
|
||||||
|
test app::checkpoints::tests::checkpoint_inline_create_and_rename_restore_focus_without_changing_drafts_or_history ... ok
|
||||||
|
test app::checkpoints::tests::checkpoint_noninline_contexts_keep_other_focus_and_still_lint ... ok
|
||||||
|
test app::checkpoints::tests::discard_and_close_waits_for_the_late_checkpoint_then_retires_it ... ok
|
||||||
|
test app::checkpoints::tests::home_resume_keeps_state_view_while_explicit_architecture_remains_reachable ... ok
|
||||||
|
test app::checkpoints::tests::home_resume_retains_invalid_source_and_property_drafts ... ok
|
||||||
|
test app::checkpoints::tests::home_resume_returns_to_each_actual_workspace_without_model_edits ... ok
|
||||||
|
test app::checkpoints::tests::malformed_checkpoint_does_not_replace_the_current_model ... ok
|
||||||
|
test app::checkpoints::tests::recent_and_recovery_navigation_respect_unsaved_decision ... ok
|
||||||
|
test app::checkpoints::tests::restored_copy_keeps_raw_property_and_requires_save_without_local_or_hosted_binding ... ok
|
||||||
|
test app::checkpoints::tests::saving_an_older_snapshot_keeps_recovery_for_newer_unsaved_work ... ok
|
||||||
|
test app::checkpoints::tests::stale_write_completion_cannot_recover_a_discarded_document ... ok
|
||||||
|
test app::checkpoints::tests::walkthrough_request_keeps_unfinished_source_behind_the_normal_pending_guard ... ok
|
||||||
|
test app::data_paging_lifecycle_tests::paging_preserves_same_context_and_resets_on_layer_or_document_replacement ... ok
|
||||||
|
test app::diagram_selection_tests::changing_visible_view_follows_its_clean_inspector_without_a_model_edit ... ok
|
||||||
|
test app::diagram_selection_tests::diagram_switch_preserves_an_independent_semantic_inspection ... ok
|
||||||
|
test app::diagram_selection_tests::diagram_uuid_edit_follows_the_same_view_or_a_different_picker_target ... ok
|
||||||
|
test app::diagram_selection_tests::invalid_view_draft_blocks_the_switch_and_retains_raw_input ... ok
|
||||||
|
test app::diagram_selection_tests::stale_diagram_choice_never_applies_an_unrelated_valid_draft ... ok
|
||||||
|
test app::diagram_selection_tests::valid_pending_view_edit_applies_to_old_view_then_inspects_the_new_view ... ok
|
||||||
|
test app::direct_scenario_tests::direct_scenario_creation_and_reorder_preserve_selection_and_each_undo_once ... ok
|
||||||
|
test app::direct_scenario_tests::direct_scenario_rejects_every_stale_context_and_preserves_property_drafts ... ok
|
||||||
|
test app::direct_scenario_tests::direct_scenario_scroll_and_real_resize_invalidate_only_pointer_context ... ok
|
||||||
|
test app::direct_scenario_tests::direct_scenario_source_failure_and_navigation_keep_form_until_success ... ok
|
||||||
|
test app::hosted::tests::hosted_actual_app_tasks_publish_edit_conflict_correct_credentials_reload_and_open ... ok
|
||||||
|
test app::hosted::tests::hosted_catalog_invalidation_follows_service_writes_and_observed_revision_changes ... ok
|
||||||
|
test app::hosted::tests::hosted_catalog_search_credentials_and_failed_refresh_never_mix_result_scopes ... ok
|
||||||
|
test app::hosted::tests::hosted_changed_bound_head_does_not_invalidate_another_services_empty_filter ... ok
|
||||||
|
test app::hosted::tests::hosted_conflict_fetches_review_without_adoption_and_reload_is_undoable ... ok
|
||||||
|
test app::hosted::tests::hosted_detached_drafts_and_recovery_remain_available_after_rejected_publish ... ok
|
||||||
|
test app::hosted::tests::hosted_failed_cross_service_publication_checks_and_reloads_its_own_resource ... ok
|
||||||
|
test app::hosted::tests::hosted_failed_or_cancelled_local_open_keeps_the_existing_document_and_destination ... ok
|
||||||
|
test app::hosted::tests::hosted_invalid_and_detached_source_drafts_never_start_network_writes ... ok
|
||||||
|
test app::hosted::tests::hosted_invalid_local_open_repair_saves_locally_and_never_replaces_old_resource ... ok
|
||||||
|
test app::hosted::tests::hosted_modal_blocks_underlying_edits_and_credentials_are_redacted ... ok
|
||||||
|
test app::hosted::tests::hosted_new_revision_invalidates_filtered_catalog_even_without_a_displayed_row ... ok
|
||||||
|
test app::hosted::tests::hosted_only_successful_source_save_as_changes_the_active_destination ... ok
|
||||||
|
test app::hosted::tests::hosted_open_waits_for_unsaved_guard_and_failed_open_preserves_current_document ... ok
|
||||||
|
test app::hosted::tests::hosted_publish_acknowledges_only_the_sent_snapshot_and_retains_undo ... ok
|
||||||
|
test app::hosted::tests::hosted_stale_completions_do_not_clear_current_busy_or_adopt_another_document ... ok
|
||||||
|
test app::hosted::tests::hosted_unknown_save_is_acknowledged_by_exact_readback_without_retry ... ok
|
||||||
|
test app::lint_tests::committed_check_cache_follows_edit_and_undo_while_drafts_stay_separate ... ok
|
||||||
|
test app::lint_tests::lint_coalesces_work_and_rejects_obsolete_results ... ok
|
||||||
|
test app::lint_tests::prior_document_lint_cannot_enter_reopened_model_or_block_next_checks ... ok
|
||||||
|
test app::port_view_tests::catalog_creation_follows_the_new_port_and_keeps_group_browsing_explicit ... ok
|
||||||
|
test app::port_view_tests::filtered_active_view_cannot_hide_a_created_port_when_eligible_owner_view_is_folded ... ok
|
||||||
|
test app::process_canvas::direct_process_dirty_source_blocks_canvas_creation_without_losing_text ... ok
|
||||||
|
test app::process_canvas::tests::direct_process_app_open_source_and_back_preserve_local_reference_identity ... ok
|
||||||
|
test app::process_canvas::tests::direct_process_app_same_owner_selection_preserves_tool_but_owner_change_resets_it ... ok
|
||||||
|
test app::process_canvas::tests::direct_process_app_save_scroll_resize_and_passive_geometry_keep_drafts_and_current_origin ... ok
|
||||||
|
test app::process_canvas::tests::direct_process_app_source_failure_retains_form_then_commits_once_and_selects_occurrence ... ok
|
||||||
|
test app::process_canvas::tests::direct_process_app_stale_context_dirty_source_and_properties_never_mutate ... ok
|
||||||
|
test app::process_canvas::tests::direct_process_append_empty_first_second_exchange_has_exact_source_history ... ok
|
||||||
|
test app::process_canvas::tests::process_focus_retains_rejected_draft_and_guards_selection_until_panels_restore ... ok
|
||||||
|
test app::repair_save_state_tests::recovering_applied_repair_rebinds_rolled_back_disk_bytes_without_changing_model ... ok
|
||||||
|
test app::repair_save_state_tests::recovery_missing_entry_or_failed_reload_preserves_current_destination_save_authority ... ok
|
||||||
|
test app::repair_save_state_tests::repair_history_compares_to_new_disk_baseline_and_then_successful_save ... ok
|
||||||
|
test app::repair_save_state_tests::repair_to_previous_saved_bytes_requires_save_at_new_destination_and_guards_close ... ok
|
||||||
|
test app::repair_save_state_tests::valid_equal_content_at_distinct_destinations_stays_clean ... ok
|
||||||
|
test app::review_navigation_tests::rejected_semantic_source_writeback_retains_review_camera_and_original_navigation ... ok
|
||||||
|
test app::review_navigation_tests::review_already_showing_the_target_keeps_its_camera_and_query ... ok
|
||||||
|
test app::review_navigation_tests::semantic_name_take_selects_the_counterpart_view_in_both_directions_with_one_exact_history_entry ... ok
|
||||||
|
test app::review_navigation_tests::semantic_review_without_a_destination_view_clears_the_old_layer_canvas_without_creating_a_view ... ok
|
||||||
|
test app::save_as_tests::save_as_late_receipt_preserves_newer_raw_source_draft_and_destination ... ok
|
||||||
|
test app::save_as_tests::save_as_preflight_rejects_historical_collision_before_starting_io ... ok
|
||||||
|
test app::save_as_tests::save_as_receipt_then_one_undo_restores_meaning_and_saving_preserves_redo ... ok
|
||||||
|
test app::source_project_tests::closed_detached_file_keeps_first_save_conflict_then_can_be_reloaded_fresh ... ok
|
||||||
|
test app::source_project_tests::inactive_invalid_draft_blocks_graphical_changes_and_diagnostic_switches_files ... ok
|
||||||
|
test app::source_project_tests::json_export_and_rejected_save_as_preserve_source_location_history_and_bytes ... ok
|
||||||
|
test app::source_project_tests::missing_include_open_keeps_old_model_and_can_be_repaired_and_saved ... ok
|
||||||
|
test app::source_project_tests::recovery_after_first_save_failure_retains_target_then_retries_without_reentering_path ... ok
|
||||||
|
test app::source_project_tests::recovery_of_previous_save_as_target_does_not_redirect_current_project ... ok
|
||||||
|
test app::source_project_tests::recovery_open_finds_first_save_journal_without_an_entry_file ... ok
|
||||||
|
test app::source_project_tests::recovery_target_survives_edit_lint_apply_and_rejected_recovery_until_success ... ok
|
||||||
|
test app::source_project_tests::source3_native_open_preserves_report_comments_nesting_and_save_reopen ... ok
|
||||||
|
test app::source_project_tests::two_file_apply_graphical_edit_exact_undo_save_as_and_reopen ... ok
|
||||||
|
test app::source_rename::alias_input::tests::effective_escape_reset_follows_child_after_early_returns ... ok
|
||||||
|
test app::source_rename::alias_input::tests::held_paste_cache_contains_only_previously_admitted_text ... ok
|
||||||
|
test app::source_rename::alias_input::tests::paste_refusal_matches_child_focus_enabled_and_stored_modifier_protocol ... ok
|
||||||
|
test app::source_rename::editor_patch::tests::all_preflight_refusals_leave_text_cursor_and_selection_unchanged ... ok
|
||||||
|
test app::source_rename::editor_patch::tests::already_laid_out_editor_notifies_highlighter_from_zero_after_later_line_patch ... ok
|
||||||
|
test app::source_rename::editor_patch::tests::exact_text_matrix_and_reverse_preserve_endings ... ok
|
||||||
|
test app::source_rename::editor_patch::tests::unchanged_content_preserves_selection_and_next_direct_edit_works ... ok
|
||||||
|
test app::source_rename::tests::actual_alias_clipboard_rejects_controls_without_normalizing_or_moving_selection ... ok
|
||||||
|
test app::source_rename::tests::actual_captured_escape_closes_only_its_priority_owner_and_retains_worker ... ok
|
||||||
|
test app::source_rename::tests::actual_dialog_enter_requests_preview_even_when_confirm_is_available ... ok
|
||||||
|
test app::source_rename::tests::actual_dialog_real_paragraph_geometry_keeps_input_preview_and_footer_reachable ... ok
|
||||||
|
test app::source_rename::tests::alias_editor_sync_fallback_restores_accepted_display_and_preserves_model_history ... ok
|
||||||
|
test app::source_rename::tests::close_and_reset_retain_worker_slot_until_exact_completion_without_reopening ... ok
|
||||||
|
test app::source_rename::tests::complete_alias_change_preserves_literals_and_last_comment_separated_origin_and_undo ... ok
|
||||||
|
test app::source_rename::tests::full_details_selection_survives_readonly_and_passive_messages_and_tracks_input ... ok
|
||||||
|
test app::source_rename::tests::genuine_save_receipts_preserve_same_destination_preview_but_invalidate_save_as ... ok
|
||||||
|
test app::source_rename::tests::invalid_open_retains_accepted_document_but_refuses_alias_rename ... ok
|
||||||
|
test app::source_rename::tests::last_same_line_use_beyond_reference_row_limit_and_selection_boundaries ... ok
|
||||||
|
test app::source_rename::tests::mounted_editor_f2_requires_focus_and_no_modifiers ... ok
|
||||||
|
test app::source_rename::tests::paging_all_utf8_fragments_preserves_exact_preview_and_approval ... ok
|
||||||
|
test app::source_rename::tests::preview_glyph_tests::actual_preview_source_glyphs_clear_scrollbar_and_all_long_fragments_are_reachable ... ok
|
||||||
|
test app::source_rename::tests::preview_scroll_tests::delayed_page_and_approval_operations_cannot_reset_a_new_destination ... ok
|
||||||
|
test app::source_rename::tests::preview_scroll_tests::explicit_navigation_resets_retained_scroll_but_id_change_alone_does_not ... ok
|
||||||
|
test app::source_rename::tests::preview_scroll_tests::repeated_page_visits_filters_and_fast_preview_completion_have_distinct_destinations ... ok
|
||||||
|
test app::source_rename::tests::property_draft_and_detached_buffer_refuse_without_hidden_apply ... ok
|
||||||
|
test app::source_rename::tests::replacement_generation_aba_and_modal_shortcuts_cannot_commit_stale_preview ... ok
|
||||||
|
test app::source_rename::tests::same_alias_invalid_and_cancel_keep_existing_redo_and_source_selection ... ok
|
||||||
|
test app::source_rename::tests::source_edit_undo_and_recovery_invalidation_do_not_revive_approval ... ok
|
||||||
|
test app::source_rename::tests::stale_dialog_envelopes_do_not_cancel_new_same_path_form_or_its_approval ... ok
|
||||||
|
test app::source_rename::timing_tests::accepted_release1_prepare_commit_sync_and_confirm_timing ... ignored, manual Windows dev/debug rename latency trial; run alone with --ignored --nocapture --test-threads=1
|
||||||
|
test app::source_rename::timing_tests::layout_timing_tests::accepted_release1_constructor_vs_reuse_through_next_highlight ... ignored, manual Windows dev/debug editor replacement + layout/highlight trial; run alone with --ignored --nocapture --test-threads=1
|
||||||
|
test app::source_symbols::tests::back_after_origin_edit_uses_its_current_cursor_instead_of_the_old_range ... ok
|
||||||
|
test app::source_symbols::tests::back_keeps_the_latest_64_actual_locations_without_reusing_dropped_history ... ok
|
||||||
|
test app::source_symbols::tests::back_restores_exact_reversed_utf8_selection_and_crlf_source ... ok
|
||||||
|
test app::source_symbols::tests::captured_find_and_modal_escape_use_one_actual_subscription_and_preserve_pending_work ... ok
|
||||||
|
test app::source_symbols::tests::captured_subscription_does_not_duplicate_existing_behavior_or_architecture_routes ... ok
|
||||||
|
test app::source_symbols::tests::close_during_busy_retains_hidden_completion_without_reopening_or_navigation ... ok
|
||||||
|
test app::source_symbols::tests::closed_results_stay_closed_on_exact_back_and_reopen_only_for_a_return_notice ... ok
|
||||||
|
test app::source_symbols::tests::completion_retains_current_display_but_rejects_navigation_after_context_changes ... ok
|
||||||
|
test app::source_symbols::tests::delayed_definition_after_hide_or_tab_change_retains_data_without_reopening_or_focus ... ok
|
||||||
|
test app::source_symbols::tests::detached_duplicate_requires_an_explicit_choice_even_when_included_source_is_validated ... ok
|
||||||
|
test app::source_symbols::tests::escape_dismisses_modal_before_underlying_source_results ... ok
|
||||||
|
test app::source_symbols::tests::escape_hides_results_and_cancels_navigation_but_retains_latest_display ... ok
|
||||||
|
test app::source_symbols::tests::find_close_releases_removed_input_and_guarded_focus_respects_later_input ... ok
|
||||||
|
test app::source_symbols::tests::find_only_captured_escape_closes_once_and_preserves_raw_query_and_selection ... ok
|
||||||
|
test app::source_symbols::tests::hidden_completion_checks_exact_bytes_even_when_snapshot_key_was_not_advanced ... ok
|
||||||
|
test app::source_symbols::tests::invalid_unapplied_drafts_navigate_without_apply_or_losing_either_history ... ok
|
||||||
|
test app::source_symbols::tests::matching_old_worker_cannot_replace_a_newer_display_owner ... ok
|
||||||
|
test app::source_symbols::tests::matching_reveal_ticket_is_required_and_raw_input_invalidates_pending_reveal ... ok
|
||||||
|
test app::source_symbols::tests::old_find_close_cannot_cancel_a_new_file_session_or_reopened_find_intent ... ok
|
||||||
|
test app::source_symbols::tests::old_symbol_widget_envelopes_after_file_switch_preserve_same_session_intent ... ok
|
||||||
|
test app::source_symbols::tests::old_symbol_widget_envelopes_after_reset_preserve_new_same_path_intent ... ok
|
||||||
|
test app::source_symbols::tests::popup_escape_has_no_duplicate_bridge_and_dismissal_preserves_underlying_find_and_drawer ... ok
|
||||||
|
test app::source_symbols::tests::reset_retains_worker_slot_until_old_completion_then_admits_new_session_query ... ok
|
||||||
|
test app::source_symbols::tests::retained_choices_cannot_replay_after_hide_or_references_problems_references ... ok
|
||||||
|
test app::source_symbols::tests::same_worker_with_changed_request_envelope_cannot_publish_or_navigate ... ok
|
||||||
|
test app::source_symbols::tests::saturated_raw_clock_never_authorizes_completion_or_reveal ... ok
|
||||||
|
test app::source_symbols::tests::source_symbols_100_modules_1000_definitions_10000_uses ... ignored, manual 100-module latency/process-memory trial; run alone with --ignored --nocapture --test-threads=1
|
||||||
|
test app::source_symbols::tests::unknown_job_cannot_release_current_worker_and_old_duplicate_cannot_replace_new_results ... ok
|
||||||
|
test app::source_symbols::tests::valid_definition_and_reference_choice_keep_whole_model_and_source_unchanged ... ok
|
||||||
|
test app::state_diagram_tests::all_context_dimensions_reject_stale_selection_camera_and_model_messages ... ok
|
||||||
|
test app::state_diagram_tests::create_view_places_only_its_machine_and_restores_exact_source_in_one_undo ... ok
|
||||||
|
test app::state_diagram_tests::direct_create_connect_select_and_move_keep_semantic_identity_and_atomic_history ... ok
|
||||||
|
test app::state_diagram_tests::fallback_owner_first_selection_keeps_the_captured_context_for_its_first_move ... ok
|
||||||
|
test app::state_diagram_tests::pending_drafts_block_every_direct_mutation_and_passive_camera_preserves_inputs ... ok
|
||||||
|
test app::state_diagram_tests::real_view_tool_and_history_changes_invalidate_old_release_events ... ok
|
||||||
|
test app::state_diagram_tests::rejected_creation_keeps_source_and_selection_then_valid_owner_can_retry ... ok
|
||||||
|
test app::state_diagram_tests::same_size_viewport_after_revision_or_tool_epoch_does_not_refit_the_camera ... ok
|
||||||
|
test app::state_diagram_tests::shared_semantic_states_keep_architecture_and_behavior_placements_independent ... ok
|
||||||
|
test app::state_diagram_tests::state_diagram_routes_constructor_and_source_open_to_the_existing_workspace_without_edits ... ok
|
||||||
|
test app::state_diagram_tests::state_diagram_routes_picker_and_reveal_but_explicit_architecture_does_not_bounce ... ok
|
||||||
|
test app::state_diagram_tests::state_diagram_routes_preserve_selected_raw_properties_and_pending_behavior_guards ... ok
|
||||||
|
test app::state_diagram_tests::state_navigation_catalog_selection_across_layers_resets_camera_and_tool ... ok
|
||||||
|
test app::state_diagram_tests::state_navigation_catalog_selection_of_another_machine_resets_camera_and_tool ... ok
|
||||||
|
test app::state_diagram_tests::state_navigation_layer_change_resets_the_new_machine_at_the_same_viewport_size ... ok
|
||||||
|
test app::state_diagram_tests::state_navigation_return_to_the_same_view_preserves_camera_tool_and_fit_mode ... ok
|
||||||
|
test app::state_diagram_tests::state_navigation_root_event_and_same_layer_keep_the_current_camera_and_tool ... ok
|
||||||
|
test app::text_workspace::lifecycle_tests::canceled_or_failed_open_that_installs_nothing_retains_current_presentation_and_diagnostics ... ok
|
||||||
|
test app::text_workspace::lifecycle_tests::invalid_repair_open_clears_prior_presentation_and_publishes_current_problems_preserving_worker ... ok
|
||||||
|
test app::text_workspace::lifecycle_tests::saved_new_destination_does_not_revalidate_already_stale_warning_locations ... ok
|
||||||
|
test app::text_workspace::lifecycle_tests::saved_new_destination_republishes_current_warning_and_refuses_old_primary_and_related ... ok
|
||||||
|
test app::text_workspace::tests::current_diagnostic_target_navigates_but_changed_source_or_clear_refuses_it ... ok
|
||||||
|
test app::text_workspace::tests::diagnostic_span_must_be_loaded_ordered_and_utf8_exact ... ok
|
||||||
|
test app::text_workspace::tests::disabled_entry_cannot_become_a_new_action_under_the_same_menu_token ... ok
|
||||||
|
test app::text_workspace::tests::document_reset_preserves_popup_token_sequence_and_drops_old_menu_authority ... ok
|
||||||
|
test app::text_workspace::tests::enabled_entry_is_readmitted_at_dispatch_and_blocked_by_busy ... ok
|
||||||
|
test app::text_workspace::tests::equal_diagnostic_republication_invalidates_primary_and_related_targets ... ok
|
||||||
|
test app::text_workspace::tests::menu_own_open_invalidation_does_not_stale_find_and_invoke_is_once ... ok
|
||||||
|
test app::text_workspace::tests::menu_source_caret_document_path_and_interaction_changes_refuse_stale_find ... ok
|
||||||
|
test app::text_workspace::tests::old_dismiss_and_invoke_do_not_consume_a_newer_menu ... ok
|
||||||
|
test app::text_workspace::tests::only_valid_explicit_group_and_resize_intent_cancel_pending_navigation ... ok
|
||||||
|
test app::text_workspace::tests::queued_group_toggle_cannot_mutate_a_reopened_or_rotated_visit ... ok
|
||||||
|
test app::text_workspace::tests::queued_toolbar_request_cannot_retarget_after_source_change ... ok
|
||||||
|
test app::text_workspace::tests::reference_groups_and_scroll_survive_tabs_and_reject_old_visits_and_queries ... ok
|
||||||
|
test app::text_workspace::tests::reset_removes_ui_and_publication_authority_and_resize_rejects_nan ... ok
|
||||||
|
test app::text_workspace::tests::retained_primary_and_related_targets_cannot_replay_after_hide_or_problems_references_problems ... ok
|
||||||
|
test app::text_workspace::tests::source_and_property_drafts_keep_find_and_text_undo_without_model_application ... ok
|
||||||
|
test app::text_workspace::tests::stale_retained_group_can_expand_without_navigating_or_applying_drafts ... ok
|
||||||
|
test app::transition_context_tests::explicit_behavior_internal_and_process_roots_keep_their_workspace_without_creating_a_view ... ok
|
||||||
|
test app::transition_context_tests::explicit_destination_is_honored_and_ordinary_work_transition_still_places_in_architecture ... ok
|
||||||
|
test app::transition_context_tests::machine_and_typed_action_transitions_resolve_the_owner_and_reusing_that_context_retains_camera ... ok
|
||||||
|
test app::transition_context_tests::rejected_source_writeback_keeps_review_and_navigation_and_invalid_draft_still_blocks_start ... ok
|
||||||
|
test app::transition_context_tests::scenario_transition_focuses_requested_counterpart_and_preserves_unrelated_views_in_both_directions ... ok
|
||||||
|
test app::view_copy_tests::copying_architecture_keeps_architecture_even_with_a_retained_state_view ... ok
|
||||||
|
test app::view_copy_tests::copying_the_current_state_view_uses_its_own_identity_and_is_one_source_undo ... ok
|
||||||
|
test app::view_copy_tests::duplicate_rejection_preserves_an_incomplete_source_buffer ... ok
|
||||||
|
test app::view_copy_tests::duplicate_rejection_preserves_invalid_property_and_pending_behavior_drafts ... ok
|
||||||
|
test app::view_copy_tests::stale_copy_does_not_apply_an_unrelated_valid_property_draft ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_app_checkpoint_restores_inner_raw_draft_without_model_adoption ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_app_empty_actions_and_child_open_refuse_other_raw_editors ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_app_modal_escape_then_child_back_then_parent_cancel_preserve_accepted_source ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_back_remains_available_after_owner_deletion_and_with_dirty_editors ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_back_retains_parent_and_rejects_late_child_event ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_default_consumer_name_has_stable_alias_and_correlated_selection ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_deleted_owner_view_retains_draft_instead_of_panicking_or_using_fallback ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_empty_history_reports_no_change_and_success_requires_a_real_history_step ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_existing_choice_prunes_staged_dependency ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_failed_source_budget_preserves_both_drafts_and_accepted_bytes ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_incomplete_recovered_kind_reports_error_without_panicking ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_inserts_work_on_the_exact_guarded_link_and_refuses_exchange_identity_conflict ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_lifelines_stage_exact_separate_records_and_one_history_entry ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_machine_before_any_owner_creates_optional_view_atomically ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_mounted_small_editor_keeps_back_and_use_outside_field_scroll ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_nested_semantic_parent_is_explicit_and_revalidated ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_new_callee_lifeline_preserves_caller_bindings_as_an_explicit_warning ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_old_empty_action_cannot_open_a_previous_owner_or_layer ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_original_document_remains_bound_after_back_or_choosing_existing ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_owner_first_can_return_to_an_unnamed_machine_without_losing_source ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_recovery_keeps_inner_raw_fields_and_refuses_deleted_or_changed_owner ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_second_system_and_role_machine_owner_refuse_without_fallback ... ok
|
||||||
|
test behavior::contextual_source_tests::contextual_source_work_uses_reserved_contribution_and_link_ids_and_one_undo ... ok
|
||||||
|
test behavior::creation::app_tests::app_choosing_another_behavior_or_layer_cannot_commit_a_creation_draft ... ok
|
||||||
|
test behavior::creation::app_tests::app_creation_opens_the_actual_new_owner_instead_of_first_or_previously_active_behavior ... ok
|
||||||
|
test behavior::creation::app_tests::app_first_captured_escape_dismisses_file_or_pending_overlay_before_creation ... ok
|
||||||
|
test behavior::creation::app_tests::app_lesson_request_cancel_retains_creation_then_escape_discards_only_the_draft ... ok
|
||||||
|
test behavior::creation::app_tests::app_machine_behavior_submit_opens_its_opted_in_view_as_one_undoable_transaction ... ok
|
||||||
|
test behavior::creation::app_tests::app_new_never_auto_applies_valid_or_invalid_property_and_source_drafts ... ok
|
||||||
|
test behavior::creation::app_tests::app_recovered_rootless_sa_creation_retains_layer_ids_and_other_raw_drafts ... ok
|
||||||
|
test behavior::creation::app_tests::app_stale_layer_open_never_starts_or_replaces_a_draft ... ok
|
||||||
|
test behavior::creation::tests::all_four_viewpoints_are_explicit_and_survive_source_history_reopen ... ok
|
||||||
|
test behavior::creation::tests::cancel_and_illegal_family_layer_switches_never_create_model_objects ... ok
|
||||||
|
test behavior::creation::tests::corrupted_recovery_and_reserved_identity_collision_refuse_without_repairing_raw_values ... ok
|
||||||
|
test behavior::creation::tests::creation_selection_rejects_changed_scenario_body_and_post_creation_operations ... ok
|
||||||
|
test behavior::creation::tests::machine_requires_valid_owner_and_first_view_adds_no_region_or_state ... ok
|
||||||
|
test behavior::creation::tests::mounted_creation_keeps_actions_visible_and_renders_only_six_owner_candidates ... ok
|
||||||
|
test behavior::creation::tests::oa_process_and_sa_chain_keep_exact_names_root_ownership_and_one_history_entry ... ok
|
||||||
|
test behavior::creation::tests::optional_context_collapses_without_losing_authored_reference_or_raw_search ... ok
|
||||||
|
test behavior::creation::tests::owner_search_is_name_ordered_filtered_and_page_sized_not_a_catalog ... ok
|
||||||
|
test behavior::creation::tests::post_commit_selection_is_correlated_with_exact_created_behavior_and_view ... ok
|
||||||
|
test behavior::creation::tests::recovery_preserves_exact_raw_inputs_reserved_ids_and_revalidates_stale_owner ... ok
|
||||||
|
test behavior::creation::tests::rejected_source_transaction_keeps_draft_and_every_accepted_source_byte ... ok
|
||||||
|
test behavior::creation::tests::repeated_owner_names_remain_distinguishable_by_searchable_parent_context_and_alias ... ok
|
||||||
|
test behavior::direct_canvas_tests::direct_alt_execution_stops_each_operand_at_its_reply_and_marks_open_operand ... ok
|
||||||
|
test behavior::direct_canvas_tests::direct_bounds_change_during_held_drag_never_commits_old_slot ... ok
|
||||||
|
test behavior::direct_canvas_tests::direct_clicked_occurrence_capture_cancels_on_view_and_context_changes ... ok
|
||||||
|
test behavior::direct_canvas_tests::direct_context_escape_unfocus_and_pending_form_cancel_gestures ... ok
|
||||||
|
test behavior::direct_canvas_tests::direct_drag_and_click_click_use_ordered_sources_and_publish_once ... ok
|
||||||
|
test behavior::direct_canvas_tests::direct_execution_span_ends_at_its_correlated_reply_and_marks_an_open_call ... ok
|
||||||
|
test behavior::direct_canvas_tests::direct_scroll_resize_and_bounds_changes_cancel_captured_slots ... ok
|
||||||
|
test behavior::direct_canvas_tests::direct_scrolled_canvas_maps_raw_pointer_events_to_the_visible_slot ... ok
|
||||||
|
test behavior::direct_canvas_tests::direct_selected_handle_reorders_and_hits_keep_semantic_identity ... ok
|
||||||
|
test behavior::direct_canvas_tests::reused_exchange_messages_display_their_distinct_occurrence_names ... ok
|
||||||
|
test behavior::scenario::data_contract_tests::large_payload_has_one_editor_with_reachable_field_and_authored_pages ... ok
|
||||||
|
test behavior::scenario::data_contract_tests::recursive_browsing_up_and_root_keep_values_and_report_the_depth_limit ... ok
|
||||||
|
test behavior::scenario::data_contract_tests::recursive_value_focus_exposes_authored_leaf_and_phase_changes_retain_surviving_keys ... ok
|
||||||
|
test behavior::scenario::data_contract_tests::reply_call_picker_previews_the_same_value_reset_as_selecting_another_exchange ... ok
|
||||||
|
test behavior::scenario::data_contract_tests::scenario_form_commits_two_reused_record_values_and_correlated_reply_atomically ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_busy_save_keeps_observed_scroll_current_for_the_next_pointer_gesture ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_clicked_occurrence_rejects_stale_slots_and_retains_recoverable_drafts ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_clicked_occurrences_use_root_and_operand_slots_with_exact_source_history ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_exchange_compatibility_browsing_preserves_final_slot_validation ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_exchange_picker_is_bounded_and_browsing_keeps_pending_values ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_five_hundred_exchange_choice_render_probe ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_form_keeps_the_same_canvas_in_the_widget_tree ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_middle_pair_insertion_is_one_exact_source_and_model_undo ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_operand_pair_keeps_parent_sequence_and_cannot_reorder_across_operands ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_reply_choices_cache_keeps_typing_fast_and_revalidates_changed_contexts ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_reply_choices_validate_the_actual_slot_and_reorder_rejects_reverse_order ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_scenario_reference_navigation_blocks_pending_drafts_and_stale_contexts ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_scenario_reference_navigation_retains_each_exact_caller_without_history ... ok
|
||||||
|
test behavior::scenario::direct_tests::direct_scenario_reference_return_survives_rename_and_rejects_deleted_or_changed_use ... ok
|
||||||
|
test behavior::scenario::operation_tests::operation_gui_async_picker_uses_request_root_and_nested_directions_without_erasing_rejected_values ... ok
|
||||||
|
test behavior::scenario::operation_tests::operation_gui_selects_two_parameterless_allocations_without_inventing_refinement_and_reply_derives_call ... ok
|
||||||
|
test behavior::scenario::operation_tests::operation_gui_unresolved_and_disabled_selection_recovery_preserves_rejected_raw_values ... ok
|
||||||
|
test behavior::scenario::tests::fragment_operands_accept_paired_messages_through_normal_destination_picker ... ok
|
||||||
|
test behavior::scenario::tests::graphical_call_reply_is_atomic_correlated_and_source_equivalent ... ok
|
||||||
|
test behavior::scenario::tests::invalid_lifecycle_edit_keeps_draft_and_timer_has_no_global_exchange ... ok
|
||||||
|
test behavior::scenario::tests::lifeline_picker_uses_core_viewpoint_contract ... ok
|
||||||
|
test behavior::scenario::tests::reverse_communication_canvas_choices_and_correlated_reply_share_core_direction ... ok
|
||||||
|
test behavior::scenario::tests::scenario_reuse_requires_explicit_compatible_bindings ... ok
|
||||||
|
test behavior::scenario::tests::tagged_scenario_commit_is_not_redirected_by_other_editor_events ... ok
|
||||||
|
test behavior::scenario::workspace::tests::scenario_workspace_allocates_remaining_height_and_pins_actions_at_minimum_and_wide_sizes ... ok
|
||||||
|
test behavior::scenario::workspace::tests::scenario_workspace_caller_restores_actual_mounted_canvas_and_shelf_with_camera ... ok
|
||||||
|
test behavior::scenario::workspace::tests::scenario_workspace_canvas_and_form_scroll_survive_disclosures_focus_width_and_resize ... ok
|
||||||
|
test behavior::scenario::workspace::tests::scenario_workspace_choosing_tools_preserves_valid_and_invalid_pending_editors ... ok
|
||||||
|
test behavior::scenario::workspace::tests::scenario_workspace_fit_reobserves_same_sized_owner_and_document_changes ... ok
|
||||||
|
test behavior::scenario::workspace::tests::scenario_workspace_fit_uses_measured_inner_viewport_and_rejects_nonfinite_inputs ... ok
|
||||||
|
test behavior::scenario::workspace::tests::scenario_workspace_open_and_back_restore_owner_and_mounted_scroll_after_preselection ... ok
|
||||||
|
test behavior::scenario::workspace::tests::scenario_workspace_scaled_and_scrolled_scene_keeps_clicked_slots_and_message_endpoints ... ok
|
||||||
|
test behavior::scenario::workspace::tests::scenario_workspace_scaled_nested_occurrences_and_reorder_keep_exact_sequence_identity ... ok
|
||||||
|
test behavior::scenario::workspace::tests::scenario_workspace_viewport_events_are_passive_guarded_and_do_not_apply_raw_forms ... ok
|
||||||
|
test behavior::scenario::workspace::tests::scenario_workspace_whole_app_canvas_tree_survives_pending_shelves_and_focus ... ok
|
||||||
|
test behavior::scenario_scroll::tests::direct_scenario_caller_restores_mounted_scroll_once_with_clamping_and_app_receipt ... ok
|
||||||
|
test behavior::scenario_scroll::tests::direct_scenario_restore_cannot_scroll_another_document_owner_or_process_view ... ok
|
||||||
|
test behavior::scenario_scroll::tests::direct_scroll_mounted_identity_resets_navigation_but_preserves_edits_before_first_report ... ok
|
||||||
|
test behavior::scenario_scroll::tests::direct_scroll_observer_reports_actual_initial_clamped_and_remounted_offsets_once ... ok
|
||||||
|
test behavior::scenario_scroll::tests::independent_process_owner_change_resets_actual_scroll_offsets ... ok
|
||||||
|
test behavior::source_draft::layout_tests::contextual_source_layout_initial_essentials_fit_short_composed_host_with_real_paragraphs ... ok
|
||||||
|
test behavior::source_draft::layout_tests::contextual_source_layout_long_parent_wraps_after_visible_name_without_losing_raw_data ... ok
|
||||||
|
test behavior::source_draft::layout_tests::contextual_source_layout_visible_kind_click_keeps_choice_explicit_and_name_input_works ... ok
|
||||||
|
test behavior::state_canvas::tests::context_menu_keeps_window_anchor_and_explicit_placement_identity ... ok
|
||||||
|
test behavior::state_canvas::tests::context_tool_and_pending_form_changes_cancel_mutating_gestures ... ok
|
||||||
|
test behavior::state_canvas::tests::creation_uses_the_explicit_deepest_owner_and_never_a_fallback_ancestor ... ok
|
||||||
|
test behavior::state_canvas::tests::drag_uses_ordered_release_at_each_zoom_and_moves_descendants_in_one_undo ... ok
|
||||||
|
test behavior::state_canvas::tests::escape_and_view_switch_discard_the_armed_transition_source ... ok
|
||||||
|
test behavior::state_canvas::tests::internal_rows_and_pseudostate_hits_use_shared_persisted_geometry ... ok
|
||||||
|
test behavior::state_canvas::tests::ordered_stationary_click_does_not_move_on_later_motion_in_the_same_batch ... ok
|
||||||
|
test behavior::state_canvas::tests::pan_is_button_scoped_read_only_and_hover_does_not_reproject_the_scene ... ok
|
||||||
|
test behavior::state_canvas::tests::pseudostate_names_avoid_rightward_and_downward_routes_and_share_hit_bounds ... ok
|
||||||
|
test behavior::state_canvas::tests::relayout_does_not_turn_a_transition_click_into_a_drag_or_pan ... ok
|
||||||
|
test behavior::state_canvas::tests::selected_endpoint_reconnect_preserves_identity_and_requires_handle_motion ... ok
|
||||||
|
test behavior::state_canvas::tests::selection_relayout_does_not_move_nodes_or_change_drag_distance ... ok
|
||||||
|
test behavior::state_canvas::tests::stacked_symbol_names_avoid_each_other_and_are_independent_of_input_order ... ok
|
||||||
|
test behavior::state_canvas::tests::transition_supports_click_click_and_drag_without_coalesced_accidental_edges ... ok
|
||||||
|
test behavior::state_canvas::tests::typed_state_actions_are_named_selectable_rows_before_internal_transitions_and_regions ... ok
|
||||||
|
test behavior::state_canvas::tests::viewport_uses_full_canvas_coordinates_and_republishes_for_a_new_context ... ok
|
||||||
|
test behavior::state_edit::tests::an_empty_machine_has_an_explicit_visible_owner_for_first_region_creation ... ok
|
||||||
|
test behavior::state_edit::tests::connect_preserves_self_loops_and_rejects_hidden_or_incompatible_vertices ... ok
|
||||||
|
test behavior::state_edit::tests::creation_places_missing_ancestry_and_unfolds_existing_owners_atomically ... ok
|
||||||
|
test behavior::state_edit::tests::every_context_component_and_invalid_ownership_are_checked_before_planning ... ok
|
||||||
|
test behavior::state_edit::tests::placing_existing_content_and_moving_a_folded_group_preserve_other_views_and_semantics ... ok
|
||||||
|
test behavior::state_edit::tests::reconnect_preserves_the_complete_record_and_replaces_cardinality_in_place ... ok
|
||||||
|
test behavior::state_edit::tests::view_initializes_only_its_machine_in_one_source_and_model_history_entry ... ok
|
||||||
|
test behavior::states::tests::internal_choice_targets_self_and_edit_preserves_identity_and_description ... ok
|
||||||
|
test behavior::states::tests::invalid_pseudo_trigger_keeps_draft_and_does_not_create_orphan_event ... ok
|
||||||
|
test behavior::states::tests::selected_composite_owns_new_region_and_history_uses_selected_region ... ok
|
||||||
|
test behavior::states::tests::timeout_and_work_trigger_commit_together_roundtrip_and_undo ... ok
|
||||||
|
test behavior::tests::failed_document_commit_retains_typed_transition_and_time_event_for_repair ... ok
|
||||||
|
test behavior::tests::legacy_process_and_chain_keep_their_ordered_exchange_scene ... ok
|
||||||
|
test behavior::tests::one_behavior_form_survives_start_edit_and_unrelated_cancel_until_commit ... ok
|
||||||
|
test behavior::tests::recovery_preserves_distinct_qualified_value_paths_and_rejects_invalid_payload_atomically ... ok
|
||||||
|
test behavior::tests::recovery_retains_each_incomplete_behavior_form_without_executing_it ... ok
|
||||||
|
test behavior::tests::selecting_state_transition_keeps_its_behavior_context ... ok
|
||||||
|
test behavior::topology::contextual::tests::qualified_link_gui_deleted_transient_selection_does_not_seed_or_hide_retained_authored_endpoint ... ok
|
||||||
|
test behavior::topology::contextual::tests::qualified_link_gui_nested_preview_folds_only_the_exact_reference_instance ... ok
|
||||||
|
test behavior::topology::contextual::tests::qualified_link_gui_rejected_endpoint_keeps_exact_raw_intent_after_recovery ... ok
|
||||||
|
test behavior::topology::contextual::tests::qualified_link_gui_repeated_sources_remain_distinct_and_apply_has_exact_source_history ... ok
|
||||||
|
test behavior::topology::contextual::tests::qualified_link_gui_scope_paging_and_search_reach_tail_beyond_512_without_losing_endpoints ... ok
|
||||||
|
test behavior::topology::contextual_routing::tests::contextual_route_native_x_to_first_b_keeps_visible_arrow_above_background_and_clear_of_other_references ... ok
|
||||||
|
test behavior::topology::contextual_routing::tests::contextual_route_nested_visible_hidden_and_parallel_paths_keep_exact_addresses_and_legacy_routes ... ok
|
||||||
|
test behavior::topology::contextual_routing::tests::contextual_route_shared_anchor_preserves_selected_direct_reconnect_at_fit_and_full_scale ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_append_preserves_existing_order_and_rejects_incompatible_exchange ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_controls_allow_incomplete_work_and_preserve_branch_semantics ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_empty_first_and_second_exchange_keep_the_same_interactive_renderer ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_imported_order_is_projected_without_mutation_and_first_canvas_edit_is_atomic ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_incompatible_imported_order_rejects_conversion_without_losing_draft ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_nested_source_reopen_and_api_command_use_one_transaction ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_oa_sa_repeated_occurrences_share_sources_and_split_one_guarded_link ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_palette_preserves_fit_and_manual_camera ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_pending_form_diff_retains_the_canvas_scroll_state ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_production_click_click_drag_insert_and_scroll_coordinates ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_production_endpoint_and_peer_reorder_handles_publish_exact_identity ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_production_stale_focus_scroll_bounds_and_pending_cancel ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_readable_default_fit_expansion_and_bounded_choices ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_real_picker_stays_bounded_and_search_keeps_selection ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_reconnect_delete_and_reorder_preserve_other_paths_and_sources ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_reuse_preview_is_local_expandable_and_recursive_sources_are_rejected ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_scaled_control_and_link_gestures_use_visible_positions ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_specific_parallel_link_and_incompatible_adjacency ... ok
|
||||||
|
test behavior::topology::direct_tests::direct_process_three_ordered_exchanges_preserve_outer_paths_on_insertion ... ok
|
||||||
|
test behavior::topology::tests::cycle_projection_terminates_and_retains_actual_links ... ok
|
||||||
|
test behavior::topology::tests::empty_process_can_start_through_normal_authoring_events ... ok
|
||||||
|
test behavior::topology::tests::fitting_a_branch_keeps_all_nodes_visible_and_selection_uses_scaled_coordinates ... ok
|
||||||
|
test behavior::topology::tests::guarded_branch_is_one_transaction_with_distinct_source_identities ... ok
|
||||||
|
test behavior::topology::tests::insertion_picker_only_offers_work_matching_adjacent_exchanges ... ok
|
||||||
|
test behavior::topology::tests::legacy_branch_insertion_replaces_only_the_selected_implied_link ... ok
|
||||||
|
test behavior::topology::tests::legacy_edit_preserves_order_and_new_work_in_one_undo ... ok
|
||||||
|
test behavior::topology::tests::long_engineering_identifiers_stay_inside_label_width ... ok
|
||||||
|
test behavior::topology::tests::process_fit_canvas_selection_ignores_retained_ordered_page_scroll ... ok
|
||||||
|
test behavior::topology::tests::process_fit_disclosures_and_focus_preserve_rejected_raw_draft_and_accepted_source ... ok
|
||||||
|
test behavior::topology::tests::process_fit_uses_measured_height_and_reports_minimum_without_changing_manual_zoom ... ok
|
||||||
|
test behavior::topology::tests::reusable_preview_preserves_identity_and_filters_recursive_sources ... ok
|
||||||
|
test behavior::topology::tests::stale_or_invalid_submit_preserves_inputs_and_creates_nothing ... ok
|
||||||
|
test behavior::topology::tests::unlinked_contributions_do_not_gain_fictional_edges ... ok
|
||||||
|
test behavior::topology::view::layout_tests::direct_process_pending_editor_uses_available_height_and_keeps_actions_visible ... ok
|
||||||
|
test behavior::topology::view::layout_tests::process_fit_layout_disclosures_and_pending_editor_keep_real_manual_canvas_scroll ... ok
|
||||||
|
test behavior::topology::view::layout_tests::process_fit_layout_measures_remaining_canvas_with_details_forms_and_window_resize ... ok
|
||||||
|
test behavior::topology::view::layout_tests::process_fit_whole_app_focus_and_disclosures_retain_canvas_tree_with_pending_raw_form ... ok
|
||||||
|
test connection_edit::tests::cancel_navigation_revision_and_dirty_drafts_cannot_commit_a_stale_connection ... ok
|
||||||
|
test connection_edit::tests::visible_endpoint_drawing_commits_ports_and_exchange_once_with_exact_history ... ok
|
||||||
|
test connection_tool::tests::boundary_candidates_match_core_orientation_and_reject_same_owner_or_mixed_kind ... ok
|
||||||
|
test connection_tool::tests::boundary_feasibility_keeps_interface_warnings_and_final_carried_item_checks ... ok
|
||||||
|
test connection_tool::tests::boundary_feasibility_rejects_dangling_identity_in_a_malformed_element_map ... ok
|
||||||
|
test connection_tool::tests::direct_connections_share_exact_source_history_and_model_parity ... ok
|
||||||
|
test connection_tool::tests::explicit_function_ports_keep_owners_contracts_and_do_not_invent_carried_items ... ok
|
||||||
|
test connection_tool::tests::final_command_validation_rejects_invalid_models_without_mutation ... ok
|
||||||
|
test connection_tool::tests::function_cards_use_unique_reuse_and_atomic_generation_when_ambiguous ... ok
|
||||||
|
test connection_tool::tests::mismatched_port_owners_layers_and_contract_kinds_are_not_candidates ... ok
|
||||||
|
test connection_tool::tests::operational_communication_uses_participants_without_creating_ports ... ok
|
||||||
|
test connection_tool::tests::operational_interaction_targets_only_distinct_oa_activities ... ok
|
||||||
|
test context_menu::tests::a_new_context_token_cannot_reuse_the_previous_mouse_press_or_scroll ... ok
|
||||||
|
test context_menu::tests::actions_area_does_not_swallow_first_independent_click_after_overlay_consumed_its_release ... ok
|
||||||
|
test context_menu::tests::anchors_outside_the_window_and_nonfinite_input_stay_bounded ... ok
|
||||||
|
test context_menu::tests::clicking_disabled_or_dragging_off_an_action_never_executes_it ... ok
|
||||||
|
test context_menu::tests::coalesced_dismissal_release_does_not_swallow_the_next_independent_click ... ok
|
||||||
|
test context_menu::tests::empty_and_disabled_only_menus_still_capture_keys_and_escape_closes ... ok
|
||||||
|
test context_menu::tests::keyboard_skips_headers_separators_and_disabled_actions_and_invokes_once ... ok
|
||||||
|
test context_menu::tests::outside_dismissal_consumes_press_and_release_across_controlled_close ... ok
|
||||||
|
test context_menu::tests::reconstructed_overlay_uses_retained_layout_for_rows_and_hit_testing ... ok
|
||||||
|
test context_menu::tests::retained_overlay_layout_keeps_measured_width_and_scrollbar_after_reconstruction ... ok
|
||||||
|
test context_menu::tests::tall_menu_clamps_to_viewport_and_keyboard_wheel_and_scrollbar_reach_the_end ... ok
|
||||||
|
test data_values::tests::phase_choices_keep_reused_record_addresses_distinct ... ok
|
||||||
|
test data_values::tests::recursive_picker_starts_with_distinct_leaf_names_and_sorts_them ... ok
|
||||||
|
test data_values::tests::recursive_records_can_be_drilled_into_and_valid_imported_paths_resolve ... ok
|
||||||
|
test data_values::tests::reference_parameter_stops_descent_and_unspecified_direction_remains_visible ... ok
|
||||||
|
test data_values::tests::roots_and_one_hop_children_do_not_expand_unrelated_payload_branches ... ok
|
||||||
|
test data_view::tests::allocation_rows_edit_relationship_identity_and_remove_only_that_allocation ... ok
|
||||||
|
test data_view::tests::association_creation_is_a_separate_relation_with_editable_end_contracts ... ok
|
||||||
|
test data_view::tests::browsing_pages_preserves_invalid_numeric_draft_and_inherited_allocation_identity ... ok
|
||||||
|
test data_view::tests::contextual_data_actions_use_typed_defaults_and_one_undo ... ok
|
||||||
|
test data_view::tests::large_inherited_dictionary_has_bounded_widgets_and_every_original_field_is_reachable ... ok
|
||||||
|
test diagnostic_input::tests::already_captured_terminal_cancels_child_without_activation_or_lingering_press ... ok
|
||||||
|
test diagnostic_input::tests::captured_terminal_cancellation_preserves_same_publication_focusable_child_state ... ok
|
||||||
|
test diagnostic_input::tests::current_primary_and_related_mouse_clicks_survive_same_publication_diff ... ok
|
||||||
|
test diagnostic_input::tests::current_touch_activates_primary_and_related_and_cancel_does_not_activate ... ok
|
||||||
|
test diagnostic_input::tests::fresh_mouse_press_after_missing_stale_release_can_activate_current_row ... ok
|
||||||
|
test diagnostic_input::tests::hidden_zero_height_scroller_delivers_cancelled_mouse_and_touch_terminals_to_guard ... ok
|
||||||
|
test diagnostic_input::tests::hidden_zero_size_list_consumes_release_outside_old_bounds_once ... ok
|
||||||
|
test diagnostic_input::tests::missed_press_is_ignored_and_dragging_release_outside_does_not_activate ... ok
|
||||||
|
test diagnostic_input::tests::negative_control_iced_button_retargets_a_press_after_plain_tree_diff ... ok
|
||||||
|
test diagnostic_input::tests::negative_control_plain_focusable_row_migrates_activation_to_replacement ... ok
|
||||||
|
test diagnostic_input::tests::negative_control_removing_unguarded_rows_exposes_background_release ... ok
|
||||||
|
test diagnostic_input::tests::outer_scroll_offset_survives_same_and_changed_publications ... ok
|
||||||
|
test diagnostic_input::tests::replaced_primary_and_related_rows_consume_stale_release_then_accept_new_click ... ok
|
||||||
|
test diagnostic_input::tests::replaced_touch_consumes_lift_or_cancel_even_when_hidden ... ok
|
||||||
|
test diagnostic_input::tests::same_publication_missing_terminal_recovers_on_fresh_mouse_or_touch_down ... ok
|
||||||
|
test diagnostic_input::tests::same_publication_new_visit_cancels_armed_rows_without_a_hidden_tree_frame ... ok
|
||||||
|
test diagnostic_input::tests::same_publication_preserves_focus_but_replacement_never_inherits_activation ... ok
|
||||||
|
test diagnostic_input::tests::stale_release_does_not_bubble_to_real_background_controls ... ok
|
||||||
|
test diagnostic_input::tests::stale_touch_release_does_not_disarm_a_new_current_gesture ... ok
|
||||||
|
test diagnostic_input::tests::unrelated_finger_or_mouse_release_cannot_complete_another_fingers_press ... ok
|
||||||
|
test diagram::lifecycle_tests::menu_reset_and_draw_use_fresh_open_context ... ok
|
||||||
|
test diagram::lifecycle_tests::middle_and_arrow_panning_preserve_source_and_history ... ok
|
||||||
|
test diagram::lifecycle_tests::motion_after_release_must_not_move_clicked_port ... ok
|
||||||
|
test diagram::lifecycle_tests::motion_after_source_click_release_must_not_create_connection ... ok
|
||||||
|
test diagram::pointer_tests::coalesced_fe_ports_commit_once_through_app_and_source_history ... ok
|
||||||
|
test diagram::pointer_tests::coalesced_port_drag_commits_once_through_app_and_source_history ... ok
|
||||||
|
test diagram::pointer_tests::drag_from_already_selected_stationary_port_keeps_source_between_batches ... ok
|
||||||
|
test diagram::pointer_tests::menu_captured_motion_must_not_turn_following_click_into_old_port_drag ... ok
|
||||||
|
test diagram::pointer_tests::modal_and_stale_epoch_block_queued_connection_and_port_commits ... ok
|
||||||
|
test diagram::port_hit_tests::coincident_ports_keep_selection_then_use_stable_identity ... ok
|
||||||
|
test diagram::port_hit_tests::nearest_port_center_wins_on_all_borders_and_zoom_levels ... ok
|
||||||
|
test diagram::port_hit_tests::nested_owner_palette_selection_drag_and_context_menu_pick_the_same_port ... ok
|
||||||
|
test diagram::port_labels::tests::leaving_and_reentering_keeps_suppression_until_each_held_button_releases ... ok
|
||||||
|
test diagram::port_labels::tests::menu_epoch_clears_suppression_when_the_overlay_consumes_release ... ok
|
||||||
|
test diagram::port_labels::tests::outside_presses_do_not_suppress_and_cancel_or_focus_loss_clear_held_buttons ... ok
|
||||||
|
test diagram::port_labels::tests::passive_layer_leaves_port_drag_selection_and_commit_with_the_interactive_canvas ... ok
|
||||||
|
test diagram::tests::association_end_contracts_share_svg_geometry_and_select_without_moving_name_label ... ok
|
||||||
|
test diagram::tests::bend_gestures_use_screen_hit_radius_and_commit_one_undo_at_three_zooms ... ok
|
||||||
|
test diagram::tests::coincident_line_hit_retains_the_selected_connection ... ok
|
||||||
|
test diagram::tests::connection_gestures_pick_real_ports_and_commit_coalesced_drag_at_every_zoom ... ok
|
||||||
|
test diagram::tests::detached_label_selects_connection_and_occluding_card_owns_its_hit ... ok
|
||||||
|
test diagram::tests::dragging_a_child_previews_the_same_enclosure_and_ports_as_commit ... ok
|
||||||
|
test diagram::tests::fast_drags_commit_the_release_cursor_without_a_final_motion_event ... ok
|
||||||
|
test diagram::tests::implicit_port_click_selects_semantics_and_drag_preview_svg_share_anchors ... ok
|
||||||
|
test diagram::tests::route_cache_ignores_pan_zoom_and_cancelled_drag_cannot_commit ... ok
|
||||||
|
test diagram::tests::routed_svg_has_same_polyline_label_and_bounds_as_canvas_scene ... ok
|
||||||
|
test diagram::tests::svg_distinguishes_inferred_work_allocation_from_direct_allocation ... ok
|
||||||
|
test diagram::tests::svg_preserves_visible_exchange_labels_and_capability_stereotypes ... ok
|
||||||
|
test diagram::tests::typed_function_glyphs_and_unoriented_standard_connections_have_distinct_svg ... ok
|
||||||
|
test diagram::view_options_tests::communication_svg_uses_saved_visibility_labels_and_direction ... ok
|
||||||
|
test document::alias_rename::tests::each_identity_family_changes_only_authored_alias_roles_and_one_history_entry ... ok
|
||||||
|
test document::alias_rename::tests::equal_bytes_undo_replay_cross_document_and_exhausted_revision_refuse ... ok
|
||||||
|
test document::alias_rename::tests::exact_history_capacity_admits_immediate_undo_and_rejects_larger_candidate ... ok
|
||||||
|
test document::alias_rename::tests::highlighted_keyword_alias_is_valid_without_normalizing_input ... ok
|
||||||
|
test document::alias_rename::tests::invalid_and_identical_aliases_preserve_live_state_and_redo ... ok
|
||||||
|
test document::alias_rename::tests::mint_and_commit_refuse_exhausted_or_inconsistent_live_history_estimate ... ok
|
||||||
|
test document::alias_rename::tests::mutable_public_preview_copies_cannot_change_prepared_authority ... ok
|
||||||
|
test document::alias_rename::tests::preview_retains_latest_saved_baseline_and_recovery_state ... ok
|
||||||
|
test document::save_as_tests::save_as_preserves_explicit_source_entry_changes_in_history ... ok
|
||||||
|
test document::save_as_tests::save_as_rebases_uniform_history_without_an_undo_step_or_lost_redo ... ok
|
||||||
|
test document::save_as_tests::save_as_rejects_included_filename_collisions_in_past_and_future_without_mutation ... ok
|
||||||
|
test document::save_as_tests::save_as_rejects_stale_or_content_changing_receipt_atomically ... ok
|
||||||
|
test document::tests::accepted_history_keeps_the_latest_hundred_complete_snapshots ... ok
|
||||||
|
test document::tests::altered_compiled_model_or_index_is_rejected_without_mutation ... ok
|
||||||
|
test document::tests::asynchronous_save_marks_its_snapshot_without_cleaning_later_edits ... ok
|
||||||
|
test document::tests::byte_budget_trims_oldest_history_without_discarding_a_large_current ... ok
|
||||||
|
test document::tests::cached_view_index_tracks_accepted_creation_undo_and_redo ... ok
|
||||||
|
test document::tests::comment_and_semantic_history_restore_exact_bytes_and_branch_together ... ok
|
||||||
|
test document::tests::creation_selects_the_single_uuid_persisted_in_source ... ok
|
||||||
|
test document::tests::invalid_project_is_rejected_before_format_can_normalize_it ... ok
|
||||||
|
test document::tests::nested_cross_file_reparent_and_source_edit_share_exact_history ... ok
|
||||||
|
test document::tests::no_op_command_or_source_apply_preserves_history_revision_and_redo ... ok
|
||||||
|
test document::tests::omitted_id_stabilization_remains_dirty_until_exact_source_is_saved ... ok
|
||||||
|
test document::tests::recreated_equal_record_does_not_inherit_deleted_source_ownership ... ok
|
||||||
|
test document::tests::rejected_compile_command_and_writeback_preserve_state_and_redo ... ok
|
||||||
|
test explorer::tests::collapse_and_search_retain_context_without_changing_collapse_state ... ok
|
||||||
|
test explorer::tests::deep_containment_and_search_keep_the_full_path_without_recursion ... ok
|
||||||
|
test explorer::tests::equal_names_have_stable_alias_and_identity_tie_breakers ... ok
|
||||||
|
test explorer::tests::perspective_isolation_and_allocations_do_not_change_containment ... ok
|
||||||
|
test explorer::tests::prefix_names_cannot_separate_a_parent_from_its_children ... ok
|
||||||
|
test forms::data_fields::tests::defaults_distinguish_absent_empty_and_typed_literals_with_escaped_unicode ... ok
|
||||||
|
test forms::data_fields::tests::field_browser_pages_every_direct_field_without_flattening_other_records ... ok
|
||||||
|
test forms::data_fields::tests::independent_review_combined_take_type_informs_actual_default_form_in_both_directions ... ok
|
||||||
|
test forms::data_fields::tests::numeric_bound_drafts_keep_partial_and_full_precision_values_out_of_accepted_state ... ok
|
||||||
|
test forms::data_fields::tests::selecting_qualified_path_preserves_expression_typed_before_the_next_render ... ok
|
||||||
|
test forms::data_fields::tests::semantic_reference_choices_follow_selected_mechanism_and_revert_on_keep ... ok
|
||||||
|
test forms::data_fields::tests::supertype_picker_excludes_descendants_and_keeps_original_inherited_field_identity ... ok
|
||||||
|
test forms::history_fields::tests::history_absent_baseline_and_empty_history_use_explicit_facts_and_exact_document_history ... ok
|
||||||
|
test forms::history_fields::tests::history_clear_discards_inactive_invalid_constructors_before_reusing_the_same_row ... ok
|
||||||
|
test forms::history_fields::tests::history_compound_value_and_constructor_variants_are_editable_without_live_context ... ok
|
||||||
|
test forms::history_fields::tests::history_deleted_keys_and_observation_uuids_remain_exact_and_duplicate_history_rejects ... ok
|
||||||
|
test forms::history_fields::tests::history_every_descriptor_fact_choice_matches_actual_closed_types_and_source_contract ... ok
|
||||||
|
test forms::history_fields::tests::history_exact_strings_do_not_confuse_uuid_shaped_prose_or_literal_keys_with_references ... ok
|
||||||
|
test forms::history_fields::tests::history_invalid_numbers_survive_constructor_switch_reorder_removal_and_recovery ... ok
|
||||||
|
test forms::history_fields::tests::history_missing_semantic_field_can_be_added_and_removed_without_touching_prose_or_live_objects ... ok
|
||||||
|
test forms::history_fields::tests::history_nested_optional_number_events_switch_absent_present_and_recover_invalid_raw ... ok
|
||||||
|
test forms::history_fields::tests::history_nested_uuid_and_list_events_preserve_present_values_and_tagged_item_branches ... ok
|
||||||
|
test forms::history_fields::tests::history_optional_uuid_and_text_seed_absence_without_inventing_observations ... ok
|
||||||
|
test forms::history_fields::tests::history_primitive_type_choices_remain_visible_inside_the_tagged_union ... ok
|
||||||
|
test forms::history_fields::tests::history_retained_text_constructors_follow_exact_mode_without_changing_the_observation ... ok
|
||||||
|
test forms::port_fields::tests::all_demo_records_roundtrip_through_graphical_and_escaped_string_drafts ... ok
|
||||||
|
test forms::port_fields::tests::boundary_choices_honor_draft_direction_same_kind_and_direct_interface_items ... ok
|
||||||
|
test forms::port_fields::tests::contract_choices_follow_owner_and_never_offer_legacy_or_oa_typed_ports ... ok
|
||||||
|
test forms::port_fields::tests::failed_shape_keeps_incomplete_text_and_saved_contract_payloads ... ok
|
||||||
|
test forms::port_fields::tests::functional_endpoints_require_owner_direction_and_items_but_retain_bad_current_choice ... ok
|
||||||
|
test forms::port_fields::tests::interface_roles_offer_participants_and_component_ports_independent_of_orientation ... ok
|
||||||
|
test forms::port_fields::tests::port_allocation_choices_use_actual_owner_direction_and_ignore_edited_relation ... ok
|
||||||
|
test forms::port_fields::tests::standard_switch_retains_incompatible_orientation_until_explicit_repair ... ok
|
||||||
|
test forms::port_fields::tests::switching_function_direction_preserves_invalid_items_and_each_authored_payload ... ok
|
||||||
|
test forms::tests::data_and_port_choices_are_typed_but_retain_invalid_current_values ... ok
|
||||||
|
test forms::tests::editing_allocation_offers_other_performers_without_counting_itself_twice ... ok
|
||||||
|
test forms::tests::moving_placement_and_changing_identity_is_one_lossless_undoable_edit ... ok
|
||||||
|
test forms::tests::parent_choices_reject_cycles_without_removing_clear_or_current_choice ... ok
|
||||||
|
test forms::tests::reply_and_reuse_forms_offer_semantically_compatible_references ... ok
|
||||||
|
test forms::tests::scenario_choices_respect_owner_and_exchange_layer ... ok
|
||||||
|
test forms::tests::semantic_port_group_choices_use_combined_owner_and_retain_invalid_transferred_items ... ok
|
||||||
|
test forms::tests::shared_perspective_change_keeps_payload_and_rejects_incompatible_dependencies ... ok
|
||||||
|
test forms::tests::state_observation_picker_keeps_work_lifelines_allocated_to_machine_owner ... ok
|
||||||
|
test forms::tests::state_placement_form_uses_draft_destination_membership_without_changing_other_views ... ok
|
||||||
|
test forms::tests::state_projection_form_keeps_string_variants_and_requires_a_typed_context ... ok
|
||||||
|
test forms::view_fields::tests::category_family_change_retains_members_until_explicit_correction ... ok
|
||||||
|
test forms::view_fields::tests::selective_view_property_apply_recovery_and_undo_preserve_semantics_and_empty_choices ... ok
|
||||||
|
test guide::tests::filtering_and_related_navigation_keep_selection_visible ... ok
|
||||||
|
test guide::tests::guide_topic_navigation_resets_only_article_and_same_topic_search_keeps_scroll ... ok
|
||||||
|
test guide::tests::search_finds_concepts_in_walkthroughs_and_api_reference ... ok
|
||||||
|
test home::tests::corrupt_future_and_oversized_history_are_preserved_with_usable_session_history ... ok
|
||||||
|
test home::tests::failed_metadata_replace_keeps_previous_history_and_reports_memory_only_entry ... ok
|
||||||
|
test home::tests::first_and_replaced_metadata_are_parseable_and_contain_no_model_bytes ... ok
|
||||||
|
test home::tests::forgotten_and_missing_files_never_change_the_model_or_other_entries ... ok
|
||||||
|
test home::tests::loading_missing_history_does_not_create_files_or_directories ... ok
|
||||||
|
test home::tests::malformed_entries_and_unknown_fields_never_become_open_requests ... ok
|
||||||
|
test home::tests::successful_local_history_is_bounded_ordered_deduplicated_and_durable ... ok
|
||||||
|
test home::tests::unavailable_location_can_reappear_on_refresh_without_losing_identity ... ok
|
||||||
|
test home::tests::walkthrough_uses_packaged_bundle_before_development_and_reports_missing_assets ... ok
|
||||||
|
test hosted::client::tests::hosted_endpoint_validation_redacts_secrets_and_preserves_proxy_paths ... ok
|
||||||
|
test hosted::client::tests::hosted_lost_publication_response_is_uncertain_without_retry ... ok
|
||||||
|
test hosted::client::tests::hosted_open_rejects_incoherent_envelopes_missing_etags_and_unstable_ids ... ok
|
||||||
|
test hosted::client::tests::hosted_oversized_local_bundle_is_rejected_before_network_admission ... ok
|
||||||
|
test hosted::client::tests::hosted_production_auth_proxy_prefix_and_located_rejection ... ok
|
||||||
|
test hosted::client::tests::hosted_production_roundtrip_preserves_comments_noops_and_conflicts ... ok
|
||||||
|
test hosted::client::tests::hosted_publication_race_keeps_receipt_identity_for_review ... ok
|
||||||
|
test hosted::client::tests::hosted_publication_retains_known_resource_after_failed_followup ... ok
|
||||||
|
test hosted::client::tests::hosted_put_preserves_an_opaque_etag_and_compiles_the_accepted_bundle ... ok
|
||||||
|
test hosted::client::tests::hosted_redirect_is_not_followed_or_retried_and_problem_tokens_are_redacted ... ok
|
||||||
|
test hosted::client::tests::hosted_response_limits_cover_declared_and_chunked_bodies ... ok
|
||||||
|
test hosted::client::tests::hosted_structured_mutation_failures_distinguish_precommit_rejections ... ok
|
||||||
|
test hosted::client::tests::hosted_timeout_and_disconnect_leave_mutation_outcomes_explicit ... ok
|
||||||
|
test model_menu::tests::add_bend_here_uses_context_point_and_one_source_aware_history_change ... ok
|
||||||
|
test model_menu::tests::late_menu_actions_do_not_dismiss_new_menu_or_cross_view_context ... ok
|
||||||
|
test model_menu::tests::menu_preserves_pending_properties_and_rejects_delayed_mutations ... ok
|
||||||
|
test model_menu::tests::pending_source_allows_file_navigation_but_disables_model_actions ... ok
|
||||||
|
test model_menu::tests::right_click_targets_actor_without_changing_selection_until_action ... ok
|
||||||
|
test model_menu::tests::show_from_explorer_places_unfolds_and_keeps_semantic_selection ... ok
|
||||||
|
test model_menu::tests::state_menu_folds_and_hides_only_its_captured_placement_and_rejects_stale_views ... ok
|
||||||
|
test model_menu::tests::state_menu_keeps_typed_creation_reachable_and_preserves_pending_properties ... ok
|
||||||
|
test navigation::tests::semantic_browser_finds_behavior_users_without_confusing_containment ... ok
|
||||||
|
test port_edit::tests::all_border_drags_commit_exact_preview_and_restore_automatic_anchors_in_history ... ok
|
||||||
|
test port_edit::tests::graphical_port_reparent_clears_old_anchors_in_the_same_history_operation ... ok
|
||||||
|
test port_preview::tests::functional_creation_identifies_new_and_reused_endpoints_and_owners ... ok
|
||||||
|
test port_preview::tests::legacy_split_discloses_endpoint_routing_item_origins_and_retained_evidence ... ok
|
||||||
|
test port_preview::tests::reused_boundary_shows_item_union_and_existing_allocating_facts ... ok
|
||||||
|
test port_preview::tests::synchronization_preview_exposes_contract_shrinkage_and_current_declaration_origin ... ok
|
||||||
|
test port_workflow::recovery_tests::port_recovery_retains_authored_contract_and_identity_but_rebuilds_preview ... ok
|
||||||
|
test port_workflow::tests::creating_typed_port_and_rejecting_stale_preview_preserve_drafts_and_identity ... ok
|
||||||
|
test port_workflow::tests::graphical_function_exchange_and_component_generation_commit_and_undo_whole_contracts ... ok
|
||||||
|
test port_workflow::tests::legacy_resolution_preserves_original_record_and_applies_as_one_undo ... ok
|
||||||
|
test port_workflow::tests::port_creation_keeps_owner_diagram_and_unfolds_in_the_same_undo ... ok
|
||||||
|
test port_workflow::tests::synchronization_uses_active_contract_instead_of_preserved_direction ... ok
|
||||||
|
test recovery::source5::tests::source5_fingerprint_preserves_historical_field_order_and_diagram_shape ... ok
|
||||||
|
test recovery::source5_tests::source4_checkpoint_remains_explicitly_unsupported_without_touching_disk ... ok
|
||||||
|
test recovery::source5_tests::source5_checkpoint_does_not_refresh_unrelated_clean_buffer_baseline ... ok
|
||||||
|
test recovery::source5_tests::source5_checkpoint_missing_identity_is_not_a_lossless_upgrade ... ok
|
||||||
|
test recovery::source5_tests::source5_checkpoint_old_diagram_property_shape_remains_editable ... ok
|
||||||
|
test recovery::source5_tests::source5_checkpoint_port_draft_replans_and_rejects_stale_base ... ok
|
||||||
|
test recovery::source5_tests::source5_checkpoint_preserves_dirty_invalid_text_and_baseline_exactly ... ok
|
||||||
|
test recovery::source5_tests::source5_checkpoint_preserves_distinct_unapplied_open_workspace ... ok
|
||||||
|
test recovery::source5_tests::source5_checkpoint_property_preserves_invalid_raw_input ... ok
|
||||||
|
test recovery::source5_tests::source5_checkpoint_upgrade_never_rewrites_checkpoint_or_origin ... ok
|
||||||
|
test recovery::source5_tests::source5_checkpoint_upgrades_only_header_and_clean_editor_baseline ... ok
|
||||||
|
test recovery::source5_tests::source5_checkpoint_workflow_rebinds_only_the_proven_old_revision ... ok
|
||||||
|
test recovery::source7_tests::source7_current_combined_contextual_and_operation_drafts_survive_without_execution ... ok
|
||||||
|
test recovery::source7_tests::source7_explicit_new_fields_cannot_enter_frozen_old_model_profiles ... ok
|
||||||
|
test recovery::source7_tests::source7_legacy_inactive_constructor_path_is_structural_but_raw_prose_is_not ... ok
|
||||||
|
test recovery::source7_tests::source7_legacy_profile_workflow_and_semantic_drafts_replan_with_exact_base ... ok
|
||||||
|
test recovery::source7_tests::source7_legacy_profiles_preserve_dirty_source_property_and_behavior_raw_fields ... ok
|
||||||
|
test recovery::source7_tests::source7_legacy_structural_intent_rejects_even_null_but_never_scans_raw_strings ... ok
|
||||||
|
test recovery::source7_tests::source7_legacy_view_selector_refuses_new_relation_kind_without_rewriting_checkpoint ... ok
|
||||||
|
test recovery::source7_tests::source7_recovers_nonempty_frozen_5_and_6_profiles_with_exact_historical_binding ... ok
|
||||||
|
test recovery::tests::altered_accepted_identity_and_unrecognized_raw_property_fields_reject ... ok
|
||||||
|
test recovery::tests::exact_source_and_unfinished_invalid_buffers_restore_without_model_overwrite ... ok
|
||||||
|
test recovery::tests::excess_retained_buffers_cannot_replace_the_last_recoverable_checkpoint ... ok
|
||||||
|
test recovery::tests::invalid_open_retains_distinct_accepted_model_and_repair_workspace ... ok
|
||||||
|
test recovery::tests::missing_includes_remain_reachable_repair_targets_without_fabricated_buffers ... ok
|
||||||
|
test recovery::tests::multiple_sessions_replace_only_their_own_checkpoint_and_corruption_is_retained ... ok
|
||||||
|
test recovery::tests::raw_invalid_property_number_survives_and_stays_rejected_until_repaired ... ok
|
||||||
|
test semantic_review::artifacts_recovery_falsifier_tests::forged_artifact_draft_cannot_target_an_unreserved_or_non_artifact_identity ... ok
|
||||||
|
test semantic_review::artifacts_recovery_falsifier_tests::forged_artifact_raw_variants_duplicate_addresses_and_unknown_fields_are_refused ... ok
|
||||||
|
test semantic_review::artifacts_recovery_falsifier_tests::forged_artifact_reservations_cannot_duplicate_or_claim_an_existing_identity_or_another_owner ... ok
|
||||||
|
test semantic_review::artifacts_recovery_falsifier_tests::legitimate_invalid_artifact_checkpoint_round_trips_and_prepares_only_after_explicit_repair ... ok
|
||||||
|
test semantic_review::artifacts_tests::artifact_candidate_is_a_complete_record_not_a_tombstone_or_unattached_creation_shortcut ... ok
|
||||||
|
test semantic_review::artifacts_tests::artifact_creation_and_identified_source_deletion_follow_core_metadata_and_history_boundary_both_directions ... ok
|
||||||
|
test semantic_review::artifacts_tests::artifact_gui_reserves_recovers_and_creates_only_after_all_seven_metadata_reviews_both_directions ... ok
|
||||||
|
test semantic_review::artifacts_tests::artifact_metadata_apply_and_exact_history_reset_are_one_source_preserving_undo_redo ... ok
|
||||||
|
test semantic_review::artifacts_tests::artifact_move_metadata_none_empty_and_invalid_raw_recovery_are_independent_both_directions ... ok
|
||||||
|
test semantic_review::artifacts_tests::artifact_moved_source_absence_deletes_but_destination_only_take_retains_both_directions ... ok
|
||||||
|
test semantic_review::attachments::tests::absent_attachment_payloads_migrate_v1_and_v2_and_source5_upgrade_requires_exact_legacy_base ... ok
|
||||||
|
test semantic_review::attachments::tests::addressed_attachment_candidates_equal_direct_core_oracle_both_directions ... ok
|
||||||
|
test semantic_review::attachments::tests::attachment_apply_is_one_exact_source_and_history_undo_redo ... ok
|
||||||
|
test semantic_review::attachments::tests::attachment_candidate_and_direct_record_keep_conflict_on_actual_slot_without_losing_drafts ... ok
|
||||||
|
test semantic_review::attachments::tests::attachment_pair_drafts_survive_family_switch_and_restore_without_mutating_model ... ok
|
||||||
|
test semantic_review::attachments::tests::functional_incident_source_requires_explicit_matching_port_review_in_one_atomic_candidate ... ok
|
||||||
|
test semantic_review::attachments::tests::parent_and_each_endpoint_candidate_preserve_other_fields_and_match_core_both_directions ... ok
|
||||||
|
test semantic_review::attachments::tests::raw_rejected_attachment_reference_survives_recovery_and_wrong_scope_is_rejected ... ok
|
||||||
|
test semantic_review::attachments::tests::source_only_absence_and_explicit_absent_endpoint_are_different ... ok
|
||||||
|
test semantic_review::attachments::tests::two_incident_endpoint_candidates_form_one_complete_record_and_recover_invalid_excluded_draft ... ok
|
||||||
|
test semantic_review::batch_tests::batch_apply_is_one_exact_source_and_history_undo_redo_roundtrip ... ok
|
||||||
|
test semantic_review::batch_tests::batch_candidate_conflict_keeps_both_raw_values_and_keep_is_a_real_constraint ... ok
|
||||||
|
test semantic_review::batch_tests::batch_complete_constructor_cannot_erase_another_rows_new_literal ... ok
|
||||||
|
test semantic_review::batch_tests::batch_constructor_retirement_conflicts_with_another_rows_kept_bound_in_both_orders ... ok
|
||||||
|
test semantic_review::batch_tests::batch_delayed_text_targets_its_original_row_and_facet_without_switching_focus ... ok
|
||||||
|
test semantic_review::batch_tests::batch_excluded_invalid_row_survives_focus_reopen_and_v2_recovery ... ok
|
||||||
|
test semantic_review::batch_tests::batch_first_equal_constructor_acknowledgement_allows_an_independent_bound ... ok
|
||||||
|
test semantic_review::batch_tests::batch_joint_bounds_use_one_candidate_and_match_an_independent_atomic_core_oracle ... ok
|
||||||
|
test semantic_review::batch_tests::batch_reverse_distinct_targets_work_and_reverse_convergence_is_explicit ... ok
|
||||||
|
test semantic_review::batch_tests::batch_v2_rejects_duplicate_included_sources_bad_addresses_and_stale_model ... ok
|
||||||
|
test semantic_review::batch_tests::category_family_and_members_are_independent_core_checked_facets_both_directions ... ok
|
||||||
|
test semantic_review::batch_tests::recovered_trace_picker_names_existing_trace_instead_of_deleted_reference ... ok
|
||||||
|
test semantic_review::batch_tests::rejected_direction_switch_at_row_limit_preserves_every_recoverable_draft ... ok
|
||||||
|
test semantic_review::compose::diagnostic_tests::distinct_review_conflict_keeps_trace_aliases_even_when_names_are_equal ... ok
|
||||||
|
test semantic_review::compose::diagnostic_tests::reserved_creation_conflict_uses_its_rows_seed_instead_of_a_deleted_reference ... ok
|
||||||
|
test semantic_review::compose::diagnostic_tests::same_review_presence_and_owner_conflict_names_both_facets_and_owners_and_retains_drafts ... ok
|
||||||
|
test semantic_review::compose::diagnostic_tests::typed_owner_display_does_not_reinterpret_uuid_shaped_artifact_text ... ok
|
||||||
|
test semantic_review::constructor_tests::closed_data_and_event_take_composition_matches_core_across_every_kind_pair_and_direction ... ok
|
||||||
|
test semantic_review::constructor_tests::data_group_candidates_cover_every_definition_and_companion_default_both_directions ... ok
|
||||||
|
test semantic_review::constructor_tests::data_group_retains_invalid_sibling_drafts_companion_default_and_variant_editor_buffers ... ok
|
||||||
|
test semantic_review::constructor_tests::exchange_constructor_takes_qualified_annotation_addresses_without_remapping_expression_text ... ok
|
||||||
|
test semantic_review::constructor_tests::existing_fragment_and_branch_group_candidates_edit_complete_owned_order_without_deletion ... ok
|
||||||
|
test semantic_review::constructor_tests::group_take_reference_payload_and_scalar_candidate_match_core_and_one_document_batch ... ok
|
||||||
|
test semantic_review::constructor_tests::historical_event_keep_retires_only_obsolete_branch_and_unchanged_kind_acknowledges_no_payload ... ok
|
||||||
|
test semantic_review::constructor_tests::historical_same_kind_take_preserves_target_only_literals_when_composed_with_candidate ... ok
|
||||||
|
test semantic_review::constructor_tests::occurrence_and_event_candidate_variants_cover_closed_families_without_touching_headers ... ok
|
||||||
|
test semantic_review::constructor_tests::outer_and_nested_constructor_candidates_require_explicit_resolution_and_retain_both_drafts ... ok
|
||||||
|
test semantic_review::constructor_tests::port_group_companions_typed_owner_context_and_direction_restrictions_are_explicit ... ok
|
||||||
|
test semantic_review::constructor_tests::reverse_existing_typed_port_reviews_keep_or_candidate_legacy_without_permitting_typed_oa_write ... ok
|
||||||
|
test semantic_review::constructor_tests::scenario_use_group_takes_typed_binding_references_and_preserves_source_text_both_directions ... ok
|
||||||
|
test semantic_review::keyed_rows_tests::annotation_address_browser_descends_qualified_fields_without_changing_rows ... ok
|
||||||
|
test semantic_review::keyed_rows_tests::annotation_observations_keep_uuid_shaped_expression_text_in_both_sides_and_history ... ok
|
||||||
|
test semantic_review::keyed_rows_tests::batch_keyed_rows_compare_exact_target_slots_and_retain_independent_values ... ok
|
||||||
|
test semantic_review::keyed_rows_tests::binding_choices_separate_reused_keys_from_local_lifelines ... ok
|
||||||
|
test semantic_review::keyed_rows_tests::binding_local_picker_follows_a_candidate_parent_before_the_review_is_valid ... ok
|
||||||
|
test semantic_review::keyed_rows_tests::binding_take_requires_local_correspondence_and_candidate_rejects_wrong_scenario ... ok
|
||||||
|
test semantic_review::keyed_rows_tests::independent_rows_keep_take_candidate_match_core_and_preserve_siblings_both_directions ... ok
|
||||||
|
test semantic_review::keyed_rows_tests::keyed_recovery_retains_raw_rows_and_staged_pairs_both_directions_without_applying ... ok
|
||||||
|
test semantic_review::keyed_rows_tests::keyed_row_drafts_retain_expression_local_and_presence_across_decisions_and_staging ... ok
|
||||||
|
test semantic_review::keyed_rows_tests::keyed_rows_distinguish_unpaired_source_from_explicit_absence_and_require_exact_reset ... ok
|
||||||
|
test semantic_review::keyed_rows_tests::multiple_new_rows_compose_in_empty_collections_using_destination_key_order ... ok
|
||||||
|
test semantic_review::keyed_rows_tests::row_review_apply_preserves_exact_source_and_semantic_history_through_undo_redo ... ok
|
||||||
|
test semantic_review::keyed_tests::deleted_member_source_observation_removes_only_mapped_membership_both_directions ... ok
|
||||||
|
test semantic_review::keyed_tests::exact_literal_new_rows_and_removals_commit_both_directions_without_default_loss ... ok
|
||||||
|
test semantic_review::keyed_tests::exact_reset_only_is_one_history_source_transaction_and_undo_redo_both_directions ... ok
|
||||||
|
test semantic_review::keyed_tests::function_port_members_use_existing_typed_choices_and_preserve_oa_legacy ... ok
|
||||||
|
test semantic_review::keyed_tests::historical_one_sided_pair_migration_requires_exact_reset_and_explicit_overlap_resolution ... ok
|
||||||
|
test semantic_review::keyed_tests::invalid_literal_removal_and_unselected_scalar_buffers_are_retained_and_repairable ... ok
|
||||||
|
test semantic_review::keyed_tests::member_identity_labels_and_new_tabs_preserve_exact_names_and_deleted_keys ... ok
|
||||||
|
test semantic_review::keyed_tests::reset_precedes_equal_constructor_candidate_and_preserves_independent_literal_draft ... ok
|
||||||
|
test semantic_review::keyed_tests::staging_removal_and_obsolete_reset_recovery_keep_other_decisions_and_raw_presence ... ok
|
||||||
|
test semantic_review::keyed_tests::stale_or_source_failed_reset_and_membership_apply_retain_exact_choices ... ok
|
||||||
|
test semantic_review::keyed_tests::unordered_members_keep_take_candidate_preserve_other_rows_both_directions ... ok
|
||||||
|
test semantic_review::keyed_tests::unsupported_independent_families_and_missing_identities_do_not_gain_edit_authority ... ok
|
||||||
|
test semantic_review::message_kind_tests::message_group_candidate_closed_kinds_are_core_validated_in_both_directions ... ok
|
||||||
|
test semantic_review::message_kind_tests::message_group_candidate_timer_switches_preserve_both_drafts_and_overlap_is_explicit ... ok
|
||||||
|
test semantic_review::message_kind_tests::message_group_initial_equal_take_acknowledges_only_kind_and_checks_authored_timer_agreement ... ok
|
||||||
|
test semantic_review::message_kind_tests::message_group_keep_historical_switch_retires_timer_and_completed_no_switch_rejects ... ok
|
||||||
|
test semantic_review::message_kind_tests::message_group_rejects_protected_edits_stale_plan_and_source_failure_without_losing_timer ... ok
|
||||||
|
test semantic_review::message_kind_tests::message_group_reply_and_reference_take_require_explicit_call_mapping_both_directions ... ok
|
||||||
|
test semantic_review::message_kind_tests::message_group_take_full_timer_and_scalar_candidate_are_one_source_history_change_both_directions ... ok
|
||||||
|
test semantic_review::message_kind_tests::message_group_timer_does_not_erase_exchange_without_its_own_selected_decision ... ok
|
||||||
|
test semantic_review::ordered_tests::ambiguous_order_preserves_local_member_and_requires_explicit_candidate_positions ... ok
|
||||||
|
test semantic_review::ordered_tests::historical_pair_restore_uses_exact_member_keys_and_never_zips_order_observations ... ok
|
||||||
|
test semantic_review::ordered_tests::order_take_preserves_destination_only_positions_and_order_alone_cannot_add_members ... ok
|
||||||
|
test semantic_review::ordered_tests::ordered_membership_choices_stage_exact_pairs_in_all_owner_shapes ... ok
|
||||||
|
test semantic_review::ordered_tests::ordered_presence_keep_take_candidate_remove_only_selected_entry_and_order_take_reorders_only ... ok
|
||||||
|
test semantic_review::ordered_tests::ordered_review_apply_is_exact_source_history_transaction_with_reopen_and_undo_redo ... ok
|
||||||
|
test semantic_review::ordered_tests::ordered_take_uses_unique_anchors_and_matches_core_with_unrelated_candidate_both_directions ... ok
|
||||||
|
test semantic_review::ordered_tests::raw_order_survives_membership_changes_decisions_and_recovery_until_explicit_reconcile ... ok
|
||||||
|
test semantic_review::ordered_tests::several_incoming_members_follow_source_order_despite_independent_identity_sorting ... ok
|
||||||
|
test semantic_review::recovery::tests::raw_scalar_and_closed_constructor_drafts_recover_against_exact_model_only ... ok
|
||||||
|
test semantic_review::recovery::tests::version_one_without_orders_restores_raw_intent_and_replans_without_execution ... ok
|
||||||
|
test semantic_review::source7_tests::contextual_incident_leaf_keep_allows_path_change_but_conflicts_with_changed_leaf_both_directions ... ok
|
||||||
|
test semantic_review::source7_tests::reverse_operation_omission_gui_requires_raw_rationale_and_matches_one_core_batch_after_recovery ... ok
|
||||||
|
test semantic_review::source7_tests::semantic_operation_virtual_none_candidate_uses_exact_allocation_and_preserves_accepted_bytes ... ok
|
||||||
|
test semantic_review::tests::candidate_mixed_with_reference_take_uses_typed_correspondence_not_text_guessing ... ok
|
||||||
|
test semantic_review::tests::deselected_invalid_candidate_is_retained_but_does_not_poison_another_selected_scalar ... ok
|
||||||
|
test semantic_review::tests::explicit_trace_selection_updates_only_that_history ... ok
|
||||||
|
test semantic_review::tests::first_equal_constructor_acknowledges_only_kind_and_allows_independent_leaves ... ok
|
||||||
|
test semantic_review::tests::independent_review_clear_bound_ignores_retained_invalid_other_facet ... ok
|
||||||
|
test semantic_review::tests::independent_review_keyed_fact_titles_keep_live_deleted_and_qualified_identity ... ok
|
||||||
|
test semantic_review::tests::inherited_annotation_impact_requires_exact_acceptance_and_edits_clear_approval ... ok
|
||||||
|
test semantic_review::tests::invalid_numeric_draft_and_protected_edits_retain_workflow_and_source ... ok
|
||||||
|
test semantic_review::tests::read_only_structured_facts_and_partial_rollup_are_honest ... ok
|
||||||
|
test semantic_review::tests::relation_candidates_preserve_endpoints_and_combine_selected_roles_and_bounds ... ok
|
||||||
|
test semantic_review::tests::scalar_keep_take_candidate_commit_exact_source_and_history_in_both_directions ... ok
|
||||||
|
test semantic_review::tests::scoped_literal_list_edits_preserve_unfinished_values_and_other_facet_buffers ... ok
|
||||||
|
test semantic_review::tests::stale_plan_and_source_writeback_failure_do_not_lose_decisions_or_history ... ok
|
||||||
|
test semantic_review::tests::state_kind_scalar_uses_typed_candidate_and_core_validation ... ok
|
||||||
|
test semantic_review::view::reserved_artifact_tests::reserved_artifact_facet_and_reference_labels_survive_recovery_without_calling_it_deleted ... ok
|
||||||
|
test source_navigation::interaction::tests::captured_find_click_invalidates_without_app_message_and_preserves_focus ... ok
|
||||||
|
test source_navigation::interaction::tests::focus_rechecks_clock_between_inspection_and_application_and_missing_target_is_inert ... ok
|
||||||
|
test source_navigation::interaction::tests::raw_navigation_inputs_advance_but_passive_geometry_does_not_and_exhaustion_refuses ... ok
|
||||||
|
test source_navigation::query::tests::comments_strings_and_comment_gap_are_not_navigation_hits ... ok
|
||||||
|
test source_navigation::query::tests::detached_alias_and_identity_collisions_never_auto_select ... ok
|
||||||
|
test source_navigation::query::tests::dirty_but_parseable_text_has_current_names_and_no_validated_fallback ... ok
|
||||||
|
test source_navigation::query::tests::exact_multifile_unicode_crlf_definition_and_repeated_lexical_references ... ok
|
||||||
|
test source_navigation::query::tests::exact_snapshot_readback_rejects_same_key_byte_membership_and_evidence_changes ... ok
|
||||||
|
test source_navigation::query::tests::include_cycle_depth_and_aggregate_edges_are_explicit_partial_outcomes ... ok
|
||||||
|
test source_navigation::query::tests::invalid_include_syntax_never_borrows_the_old_reachable_file_set ... ok
|
||||||
|
test source_navigation::query::tests::keyword_alias_and_loaded_path_case_collisions_use_reviewed_index_rules ... ok
|
||||||
|
test source_navigation::query::tests::large_display_name_cannot_escape_the_owned_row_string_budget ... ok
|
||||||
|
test source_navigation::query::tests::missing_and_noncanonical_authored_ids_remain_draft_spans_without_generated_anchors ... ok
|
||||||
|
test source_navigation::query::tests::missing_include_partial_scope_does_not_resurrect_witness_text ... ok
|
||||||
|
test source_navigation::query::tests::omitted_rows_are_counted_before_result_allocation_and_never_confer_uniqueness ... ok
|
||||||
|
test source_navigation::query::tests::origin_keeps_exact_hit_when_display_rows_are_omitted ... ok
|
||||||
|
test source_navigation::query::tests::owned_request_checks_raw_limits_immediately_and_extracts_only_on_worker ... ok
|
||||||
|
test source_navigation::query::tests::owned_request_moves_exact_text_into_worker_snapshot_and_matches_sync_results ... ok
|
||||||
|
test source_navigation::query::tests::owned_validation_proof_preserves_full_witness_count_and_partial_scope ... ok
|
||||||
|
test source_navigation::query::tests::raw_aggregate_limits_refuse_before_outline_or_copied_snapshot ... ok
|
||||||
|
test source_navigation::query::tests::sole_detached_candidate_and_unapplied_equal_bytes_require_choice ... ok
|
||||||
|
test source_navigation::query::tests::token_declaration_and_live_reference_limits_are_aggregate_not_per_file ... ok
|
||||||
|
test source_navigation::query::tests::validation_witness_must_match_entry_and_complete_included_file_set ... ok
|
||||||
|
test source_navigation::symbols::tests::admitted_unicode_path_budget_keeps_original_policy_after_single_fold ... ok
|
||||||
|
test source_navigation::symbols::tests::comment_separated_reference_keeps_crlf_unicode_and_disjoint_hit_spans ... ok
|
||||||
|
test source_navigation::symbols::tests::declaration_order_and_duplicate_roles_refuse_instead_of_corrupting_hit_search ... ok
|
||||||
|
test source_navigation::symbols::tests::detached_uuid_clone_disables_anchor_even_for_included_query ... ok
|
||||||
|
test source_navigation::symbols::tests::duplicate_aliases_are_candidates_without_false_reference_attribution ... ok
|
||||||
|
test source_navigation::symbols::tests::every_budget_admits_boundary_and_returns_no_index_one_below ... ok
|
||||||
|
test source_navigation::symbols::tests::header_metadata_must_match_current_token_boundaries_and_authored_id ... ok
|
||||||
|
test source_navigation::symbols::tests::incomplete_draft_is_lexical_and_error_token_does_not_leak_references ... ok
|
||||||
|
test source_navigation::symbols::tests::legal_keyword_classified_alias_is_not_discarded ... ok
|
||||||
|
test source_navigation::symbols::tests::missing_ids_produce_only_current_snapshot_locations_without_stabilization ... ok
|
||||||
|
test source_navigation::symbols::tests::nested_declaration_extents_do_not_turn_body_text_into_definition_hits ... ok
|
||||||
|
test source_navigation::symbols::tests::noncanonical_header_identity_cannot_enter_through_query_metadata ... ok
|
||||||
|
test source_navigation::symbols::tests::path_identity_rejects_normalization_and_case_collisions ... ok
|
||||||
|
test source_navigation::symbols::tests::query_header_admission_preserves_uppercase_and_json_escape_bytes ... ok
|
||||||
|
test source_navigation::symbols::tests::repeated_live_uses_are_distinct_and_strings_comments_history_are_excluded ... ok
|
||||||
|
test source_navigation::symbols::tests::reused_alias_cannot_steal_old_identity_and_old_locations_are_stale ... ok
|
||||||
|
test source_navigation::symbols::tests::scope_provenance_and_detached_alias_collision_are_explicit ... ok
|
||||||
|
test source_navigation::symbols::tests::stopped_outline_is_not_a_successful_empty_query ... ok
|
||||||
|
test source_navigation::symbols::tests::truncated_or_gapped_tokens_refuse_even_when_project_scope_is_partial ... ok
|
||||||
|
test source_navigation::symbols::tests::unicode_path_collisions_match_core_lowercase_policy ... ok
|
||||||
|
test source_navigation::tests::search_uses_utf8_columns_wraps_and_refreshes_after_edits ... ok
|
||||||
|
test source_rename::origin::tests::maps_last_repeated_reference_with_unicode_crlf_and_comment_separator ... ok
|
||||||
|
test source_rename::origin::tests::permits_identifier_keyword_transitions_in_alias_roles ... ok
|
||||||
|
test source_rename::origin::tests::preserves_final_same_line_occurrence_not_first_or_prose ... ok
|
||||||
|
test source_rename::origin::tests::rejects_changed_trivia_non_alias_words_and_wrong_marker ... ok
|
||||||
|
test source_rename::preview::tests::each_bound_is_exact_and_overflow_never_returns_a_partial_preview ... ok
|
||||||
|
test source_rename::preview::tests::first_and_last_lines_form_complete_separate_hunks_and_pages ... ok
|
||||||
|
test source_rename::preview::tests::limits_apply_to_the_whole_preview_not_each_file ... ok
|
||||||
|
test source_rename::preview::tests::long_unicode_lines_are_fully_reachable_as_bounded_fragments ... ok
|
||||||
|
test source_rename::preview::tests::nearby_changes_merge_and_all_changed_files_are_reachable ... ok
|
||||||
|
test source_rename::preview::tests::preserves_unicode_mixed_endings_and_counts_lines_not_repeated_uses ... ok
|
||||||
|
test source_rename::preview::tests::refuses_membership_entry_line_count_and_line_ending_changes ... ok
|
||||||
|
test source_rename::preview::tests::unchanged_and_empty_sources_have_no_preview ... ok
|
||||||
|
test source_tree::tests::active_scroll_offset_uses_the_visible_order_and_retains_ancestor_context ... ok
|
||||||
|
test source_tree::tests::collapsed_folders_retain_active_dirty_and_diagnostic_markers ... ok
|
||||||
|
test source_tree::tests::deep_paths_build_expand_and_drop_on_a_small_stack ... ok
|
||||||
|
test source_tree::tests::detached_buffers_keep_paths_and_only_clean_buffers_are_closable ... ok
|
||||||
|
test source_tree::tests::exact_unicode_spaces_and_file_folder_name_collisions_are_not_normalized ... ok
|
||||||
|
test source_tree::tests::folders_are_compact_and_sorted_before_files_without_losing_duplicate_basenames ... ok
|
||||||
|
test source_workspace::tests::draft_history_budget_covers_inactive_files_without_discarding_drafts ... ok
|
||||||
|
test source_workspace::tests::fresh_session_cannot_reuse_a_retained_buffer_generation ... ok
|
||||||
|
test source_workspace::tests::navigation_revision_wrap_cannot_reuse_an_old_workspace_key ... ok
|
||||||
|
test source_workspace::tests::navigation_scope_changes_invalidate_without_changing_unchanged_positions ... ok
|
||||||
|
test source_workspace::tests::navigation_versions_distinguish_reopened_recovered_and_changed_drafts ... ok
|
||||||
|
test source_workspace::tests::switching_retains_invalid_drafts_and_independent_history ... ok
|
||||||
|
test tests::actor_port_creation_updates_containment_and_locate_reveals_its_owner ... ok
|
||||||
|
test tests::adding_bend_between_close_ports_stays_outside_owner_clearance ... ok
|
||||||
|
test tests::behavior_and_data_authoring_do_not_place_nodes_in_unrelated_architecture_views ... ok
|
||||||
|
test tests::bidirectional_transition_ui_commits_once_and_preserves_other_diagrams ... ok
|
||||||
|
test tests::counterpart_creation_focuses_visible_target_and_reuse_keeps_views ... ok
|
||||||
|
test tests::creation_from_capabilities_routes_work_to_architecture_and_folded_allocation_inserts_below_existing_work ... ok
|
||||||
|
test tests::dragging_keeps_semantic_selection_and_same_node_remains_editable ... ok
|
||||||
|
test tests::escaped_string_mode_preserves_exact_control_characters ... ok
|
||||||
|
test tests::every_demo_record_has_a_lossless_graphical_draft ... ok
|
||||||
|
test tests::explicit_relationship_builder_never_mutates_on_preview ... ok
|
||||||
|
test tests::explorer_and_creation_selection_follow_their_own_placement ... ok
|
||||||
|
test tests::fit_adapts_to_canvas_returning_after_help_but_preserves_manual_navigation ... ok
|
||||||
|
test tests::fit_uses_measured_canvas_bounds_and_preserves_them_on_open ... ok
|
||||||
|
test tests::focused_explorer_follows_reparenting_without_changing_identity ... ok
|
||||||
|
test tests::graphical_rename_keeps_aliases_and_references_and_undo ... ok
|
||||||
|
test tests::identity_property_change_is_atomic_and_rewrites_all_live_references ... ok
|
||||||
|
test tests::invalid_numeric_draft_survives_navigation_save_and_help ... ok
|
||||||
|
test tests::invalid_save_and_continue_returns_to_repairable_draft ... ok
|
||||||
|
test tests::malformed_source_preserves_model_and_is_recoverable ... ok
|
||||||
|
test tests::manual_trace_requires_target_and_selection_normalizes_creation_kind ... ok
|
||||||
|
test tests::mission_capability_authoring_is_contextual_atomic_and_text_equivalent ... ok
|
||||||
|
test tests::modal_owns_background_commands_and_shortcuts ... ok
|
||||||
|
test tests::nested_allocation_insertion_reflows_sibling_subtrees_and_preserves_fold_state ... ok
|
||||||
|
test tests::opening_and_creating_models_preserve_the_actual_window_size_for_fit ... ok
|
||||||
|
test tests::opening_legacy_source_surfaces_report_without_modifying_original_bytes ... ok
|
||||||
|
test tests::pending_source_prevents_property_draft_collision_and_preserves_both_if_present ... ok
|
||||||
|
test tests::placement_identity_edit_then_drag_and_diagram_identity_then_arrange ... ok
|
||||||
|
test tests::placement_relocation_follows_cross_layer_traceability_view ... ok
|
||||||
|
test tests::property_enum_and_optional_reference_roundtrip ... ok
|
||||||
|
test tests::reopening_canvas_for_a_modal_preserves_viewport_after_route_edits ... ok
|
||||||
|
test tests::revealing_an_implicit_function_port_unfolds_its_visible_architecture_owner ... ok
|
||||||
|
test tests::routing_actions_are_atomic_guarded_and_fit_the_authored_detour ... ok
|
||||||
|
test tests::selecting_current_constructors_preserves_payloads ... ok
|
||||||
|
test tests::source_find_navigates_an_invalid_draft_without_applying_or_losing_it ... ok
|
||||||
|
test tests::source_navigation_waits_for_editor_layout_and_cancels_on_edit ... ok
|
||||||
|
test tests::system_only_models_open_the_populated_perspective ... ok
|
||||||
|
test tests::transition_resolutions_belong_to_the_effective_target_and_kind ... ok
|
||||||
|
test view_copy::tests::duplicate_retains_ports_routes_options_and_artifact_claims_with_exact_undo_redo ... ok
|
||||||
|
test view_copy::tests::duplicate_state_view_preserves_machine_nesting_and_collapse_with_unique_aliases ... ok
|
||||||
|
test view_copy::tests::missing_view_does_not_propose_an_empty_replacement ... ok
|
||||||
|
test views::source_symbols::tests::suffixes_distinguish_nested_duplicate_basenames_without_changing_unicode ... ok
|
||||||
|
test views::source_tests::source_editor_windows_menu_payload_is_inert_but_space_and_altgr_still_edit ... ok
|
||||||
|
test views::text_workspace::summary_visibility_tests::all_reference_exceptions_fit_allocated_width_with_wide_alias_and_large_counts ... ok
|
||||||
|
test views::text_workspace::tests::drawer_clamps_to_actual_center_allocation_including_oversize_requests ... ok
|
||||||
|
test views::text_workspace::tests::five_slots_keep_editor_state_and_selection_through_explicit_and_passive_changes ... ok
|
||||||
|
test views::text_workspace::tests::highlighted_sensor_editor_retains_real_scrolled_buffer_across_panel_rebuilds ... ok
|
||||||
|
test views::text_workspace::tests::keyboard_resize_uses_effective_height_and_only_exact_open_drawer_shortcut ... ok
|
||||||
|
test views::traceability::tests::traceability_browsing_retains_invalid_property_draft_and_existing_select_guard ... ok
|
||||||
|
test views::traceability::tests::traceability_filter_reaches_artifacts_after_68_traces_and_searches_all_metadata ... ok
|
||||||
|
test workflow::communication::tests::communication_requires_two_explicit_ports_and_recovers_the_partial_choice ... ok
|
||||||
|
test workflow::port_authoring_tests::boundary_picker_matches_exact_commands_across_contracts_and_ownership ... ok
|
||||||
|
test workflow::port_authoring_tests::boundary_picker_recomputes_for_unoriented_reverse_endpoints_without_relaxing_contracts ... ok
|
||||||
|
test workflow::port_authoring_tests::duplicate_port_names_show_owner_contract_and_unique_alias ... ok
|
||||||
|
test workflow::port_authoring_tests::fresh_functions_are_actual_picker_targets_and_plan_enables_apply ... ok
|
||||||
|
test workflow::port_authoring_tests::generic_component_port_connection_keeps_its_endpoint_and_direction ... ok
|
||||||
|
test workflow::port_authoring_tests::ordinary_standard_connections_default_unoriented_and_new_roles_exclude_legacy ... ok
|
||||||
|
test workflow::recovery::tests::incomplete_relationship_and_trace_recover_raw_fields_and_reject_changed_model ... ok
|
||||||
|
test workflow::recovery::tests::transition_recovery_replans_typed_request_without_persisted_commands ... ok
|
||||||
|
test workflow::transition_tests::basic_transition_boundary_choice_is_required_without_an_inferred_system ... ok
|
||||||
|
test workflow::transition_tests::basic_transition_creates_overview_when_existing_views_cannot_show_result ... ok
|
||||||
|
test workflow::transition_tests::basic_transition_explicit_destination_appends_below_existing_bounds_and_is_one_source_edit ... ok
|
||||||
|
test workflow::transition_tests::basic_transition_invalid_explicit_destination_retains_choice_and_refuses ... ok
|
||||||
|
test workflow::transition_tests::basic_transition_reconcile_keeps_existing_selected_view_placement_and_route_exact ... ok
|
||||||
|
test workflow::transition_tests::basic_transition_skips_lowest_uuid_state_view_and_preserves_oa ... ok
|
||||||
|
|
||||||
|
test result: ok. 856 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 371.63s
|
||||||
|
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"command": [
|
||||||
|
"cargo",
|
||||||
|
"test",
|
||||||
|
"--locked",
|
||||||
|
"--offline",
|
||||||
|
"-p",
|
||||||
|
"oa-desktop",
|
||||||
|
"--bin",
|
||||||
|
"arcadia-studio",
|
||||||
|
"app::source_rename::timing_tests::accepted_release1_prepare_commit_sync_and_confirm_timing",
|
||||||
|
"--",
|
||||||
|
"--ignored",
|
||||||
|
"--nocapture",
|
||||||
|
"--test-threads=1"
|
||||||
|
],
|
||||||
|
"started": "2026-09-13T02:29:07.844975+00:00",
|
||||||
|
"finished": "2026-09-13T02:29:38.038485+00:00",
|
||||||
|
"seconds": 30.192618299999594,
|
||||||
|
"exitCode": 0,
|
||||||
|
"inputsUnchanged": true,
|
||||||
|
"stdoutSha256": "5ae357431fa8d99f76e193aa08f1192fb7ed99d8c3667966ce97790eca8d98fe",
|
||||||
|
"stderrSha256": "041742f3b57dd07321bea988d47f853785d4f4679c0e9e9076cc605904a5d67e"
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
Finished `test` profile [unoptimized] target(s) in 3.55s
|
||||||
|
Running unittests src\main.rs (C:\Users\User\Documents\Git\ARCADIA-Studio\.local\target-gnullvm\debug\deps\arcadia_studio-58e30cee1fd51a8b.exe)
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
|
||||||
|
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:\\ar-text-9e8r6t\\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.1031,"elapsed_ns":"103100","phase":"document_request_mint","record":"timing","trial":0,"warmup":true}
|
||||||
|
{"elapsed_ms":437.2302,"elapsed_ns":"437230200","phase":"worker_document_prepare","record":"timing","trial":0,"warmup":true}
|
||||||
|
{"elapsed_ms":27.055699999999998,"elapsed_ns":"27055700","phase":"worker_preview_and_origin","record":"timing","trial":0,"warmup":true}
|
||||||
|
{"elapsed_ms":0.039,"elapsed_ns":"39000","phase":"document_guarded_commit","record":"timing","trial":0,"warmup":true}
|
||||||
|
{"elapsed_ms":895.5259,"elapsed_ns":"895525900","phase":"app_sync","record":"timing","trial":0,"warmup":true}
|
||||||
|
{"elapsed_ms":88.3319,"elapsed_ns":"88331900","phase":"app_confirm_update","record":"timing","trial":0,"warmup":true}
|
||||||
|
{"elapsed_ms":0.0014,"elapsed_ns":"1400","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":36.0154,"elapsed_ns":"36015400","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.0976,"elapsed_ns":"97600","phase":"document_request_mint","record":"timing","trial":1,"warmup":false}
|
||||||
|
{"elapsed_ms":318.975,"elapsed_ns":"318975000","phase":"worker_document_prepare","record":"timing","trial":1,"warmup":false}
|
||||||
|
{"elapsed_ms":24.8242,"elapsed_ns":"24824200","phase":"worker_preview_and_origin","record":"timing","trial":1,"warmup":false}
|
||||||
|
{"elapsed_ms":0.008,"elapsed_ns":"8000","phase":"document_guarded_commit","record":"timing","trial":1,"warmup":false}
|
||||||
|
{"elapsed_ms":702.3933,"elapsed_ns":"702393300","phase":"app_sync","record":"timing","trial":1,"warmup":false}
|
||||||
|
{"record":"order","separate_phases_first":true,"trial":2,"warmup":false}
|
||||||
|
{"elapsed_ms":0.0309,"elapsed_ns":"30900","phase":"document_request_mint","record":"timing","trial":2,"warmup":false}
|
||||||
|
{"elapsed_ms":376.1622,"elapsed_ns":"376162200","phase":"worker_document_prepare","record":"timing","trial":2,"warmup":false}
|
||||||
|
{"elapsed_ms":22.912499999999998,"elapsed_ns":"22912500","phase":"worker_preview_and_origin","record":"timing","trial":2,"warmup":false}
|
||||||
|
{"elapsed_ms":0.0333,"elapsed_ns":"33300","phase":"document_guarded_commit","record":"timing","trial":2,"warmup":false}
|
||||||
|
{"elapsed_ms":736.6559,"elapsed_ns":"736655900","phase":"app_sync","record":"timing","trial":2,"warmup":false}
|
||||||
|
{"elapsed_ms":108.6872,"elapsed_ns":"108687200","phase":"app_confirm_update","record":"timing","trial":2,"warmup":false}
|
||||||
|
{"elapsed_ms":0.0013,"elapsed_ns":"1300","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":36.039300000000004,"elapsed_ns":"36039300","phase":"app_confirm_update","record":"timing","trial":3,"warmup":false}
|
||||||
|
{"elapsed_ms":0.0006,"elapsed_ns":"600","phase":"confirm_returned_task_drop_without_polling","record":"timing","trial":3,"warmup":false}
|
||||||
|
{"elapsed_ms":0.1134,"elapsed_ns":"113400","phase":"document_request_mint","record":"timing","trial":3,"warmup":false}
|
||||||
|
{"elapsed_ms":391.56239999999997,"elapsed_ns":"391562400","phase":"worker_document_prepare","record":"timing","trial":3,"warmup":false}
|
||||||
|
{"elapsed_ms":9.941500000000001,"elapsed_ns":"9941500","phase":"worker_preview_and_origin","record":"timing","trial":3,"warmup":false}
|
||||||
|
{"elapsed_ms":0.0095,"elapsed_ns":"9500","phase":"document_guarded_commit","record":"timing","trial":3,"warmup":false}
|
||||||
|
{"elapsed_ms":974.0557,"elapsed_ns":"974055700","phase":"app_sync","record":"timing","trial":3,"warmup":false}
|
||||||
|
{"record":"order","separate_phases_first":true,"trial":4,"warmup":false}
|
||||||
|
{"elapsed_ms":0.0467,"elapsed_ns":"46700","phase":"document_request_mint","record":"timing","trial":4,"warmup":false}
|
||||||
|
{"elapsed_ms":401.9974,"elapsed_ns":"401997400","phase":"worker_document_prepare","record":"timing","trial":4,"warmup":false}
|
||||||
|
{"elapsed_ms":17.1722,"elapsed_ns":"17172200","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":865.3566999999999,"elapsed_ns":"865356700","phase":"app_sync","record":"timing","trial":4,"warmup":false}
|
||||||
|
{"elapsed_ms":60.0406,"elapsed_ns":"60040600","phase":"app_confirm_update","record":"timing","trial":4,"warmup":false}
|
||||||
|
{"elapsed_ms":0.0015,"elapsed_ns":"1500","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":61.8057,"elapsed_ns":"61805700","phase":"app_confirm_update","record":"timing","trial":5,"warmup":false}
|
||||||
|
{"elapsed_ms":0.0006,"elapsed_ns":"600","phase":"confirm_returned_task_drop_without_polling","record":"timing","trial":5,"warmup":false}
|
||||||
|
{"elapsed_ms":0.0451,"elapsed_ns":"45100","phase":"document_request_mint","record":"timing","trial":5,"warmup":false}
|
||||||
|
{"elapsed_ms":751.2613,"elapsed_ns":"751261300","phase":"worker_document_prepare","record":"timing","trial":5,"warmup":false}
|
||||||
|
{"elapsed_ms":68.5379,"elapsed_ns":"68537900","phase":"worker_preview_and_origin","record":"timing","trial":5,"warmup":false}
|
||||||
|
{"elapsed_ms":0.014199999999999999,"elapsed_ns":"14200","phase":"document_guarded_commit","record":"timing","trial":5,"warmup":false}
|
||||||
|
{"elapsed_ms":1538.5520999999999,"elapsed_ns":"1538552100","phase":"app_sync","record":"timing","trial":5,"warmup":false}
|
||||||
|
{"max_ms":108.6872,"median_ms":60.0406,"min_ms":36.0154,"phase":"app_confirm_update","record":"summary","samples":5}
|
||||||
|
{"max_ms":1538.5520999999999,"median_ms":865.3566999999999,"min_ms":702.3933,"phase":"app_sync","record":"summary","samples":5}
|
||||||
|
{"max_ms":0.0015,"median_ms":0.0006,"min_ms":0.0005,"phase":"confirm_returned_task_drop_without_polling","record":"summary","samples":5}
|
||||||
|
{"max_ms":0.0333,"median_ms":0.0095,"min_ms":0.008,"phase":"document_guarded_commit","record":"summary","samples":5}
|
||||||
|
{"max_ms":0.1134,"median_ms":0.0467,"min_ms":0.0309,"phase":"document_request_mint","record":"summary","samples":5}
|
||||||
|
{"max_ms":751.2613,"median_ms":391.56239999999997,"min_ms":318.975,"phase":"worker_document_prepare","record":"summary","samples":5}
|
||||||
|
{"max_ms":68.5379,"median_ms":22.912499999999998,"min_ms":9.941500000000001,"phase":"worker_preview_and_origin","record":"summary","samples":5}
|
||||||
|
ok
|
||||||
|
|
||||||
|
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 858 filtered out; finished in 26.23s
|
||||||
|
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
"""Preserve original trial evidence and exact gate capture without runtime binaries."""
|
||||||
|
from pathlib import Path
|
||||||
|
import hashlib
|
||||||
|
import json
|
||||||
|
import shutil
|
||||||
|
|
||||||
|
base = Path(__file__).resolve().parent
|
||||||
|
root = Path('C:/ar-text-9e8r6t')
|
||||||
|
dest = root / 'harness/experiments/text-workspace-initial-20260913'
|
||||||
|
dest.mkdir()
|
||||||
|
records = []
|
||||||
|
|
||||||
|
def keep(source, relative):
|
||||||
|
target = dest / relative
|
||||||
|
target.parent.mkdir(parents=True, exist_ok=True)
|
||||||
|
assert not target.exists()
|
||||||
|
shutil.copyfile(source, target)
|
||||||
|
raw = source.read_bytes()
|
||||||
|
assert target.read_bytes() == raw
|
||||||
|
records.append({'path': relative, 'bytes': len(raw), 'sha256': hashlib.sha256(raw).hexdigest()})
|
||||||
|
|
||||||
|
trial = base / 'trial-text-1'
|
||||||
|
for source in sorted(trial.rglob('*')):
|
||||||
|
rel = source.relative_to(trial)
|
||||||
|
if source.is_file() and (len(rel.parts) == 1 or rel.parts[0] == 'screenshots' or rel.parts[0].startswith('verification-')):
|
||||||
|
keep(source, 'trial-text-1/' + rel.as_posix())
|
||||||
|
gate = root / '.local/text-workspace-gates-20260912'
|
||||||
|
for attempt in ['attempt-3', 'attempt-4']:
|
||||||
|
for source in sorted((gate / attempt).iterdir()):
|
||||||
|
if source.is_file() and source.suffix in ['.json', '.log', '.zip']:
|
||||||
|
keep(source, attempt + '/' + source.name)
|
||||||
|
for name in ['fixture-manifest.json', 'launch.py', 'verify_saved.py', 'bind_gates.py']:
|
||||||
|
keep(base / name, 'helpers/' + name)
|
||||||
|
keep(gate / 'gate.py', 'helpers/gate.py')
|
||||||
|
keep(Path(__file__), 'helpers/archive_initial.py')
|
||||||
|
with (dest / 'manifest.json').open('x', encoding='utf-8', newline='\n') as stream:
|
||||||
|
json.dump({'scope': 'Original failed native trial and passing attempt4 gates; runtime binaries remain locally preserved by SHA, no native acceptance.', 'files': records}, stream, indent=2)
|
||||||
|
stream.write('\n')
|
||||||
|
print(json.dumps({'directory': str(dest), 'files': len(records), 'bytes': sum(r['bytes'] for r in records), 'manifestSha256': hashlib.sha256((dest / 'manifest.json').read_bytes()).hexdigest()}))
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
"""Bind completed Windows gate inputs and preserved GUI for a development trial."""
|
||||||
|
from pathlib import Path
|
||||||
|
from datetime import datetime, timezone
|
||||||
|
import hashlib
|
||||||
|
import json
|
||||||
|
import re
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
|
||||||
|
BASE = Path(__file__).resolve().parent
|
||||||
|
ROOT = Path('C:/ar-text-9e8r6t')
|
||||||
|
attempt = sys.argv[1]
|
||||||
|
assert re.fullmatch(r'attempt-[0-9]+', attempt)
|
||||||
|
gate = ROOT / '.local/text-workspace-gates-20260912' / attempt
|
||||||
|
destination = BASE / (attempt + '-launch-manifest.json')
|
||||||
|
assert not destination.exists()
|
||||||
|
|
||||||
|
def identity(path):
|
||||||
|
raw = path.read_bytes()
|
||||||
|
return {'path': str(path.resolve()), 'bytes': len(raw), 'sha256': hashlib.sha256(raw).hexdigest()}
|
||||||
|
|
||||||
|
def read(name):
|
||||||
|
return json.loads((gate / name).read_text(encoding='utf-8'))
|
||||||
|
|
||||||
|
names = ['clippy', 'membership', 'focused', 'tests', 'timing', 'gui']
|
||||||
|
complete = read('complete.json')
|
||||||
|
assert complete['inputsUnchanged'] is True and complete['gates'] == names
|
||||||
|
inputs = read('inputs.json')
|
||||||
|
assert identity(gate / 'inputs.zip')['sha256'] == inputs['archiveSha256']
|
||||||
|
assert subprocess.check_output(['git', 'rev-parse', 'HEAD'], cwd=ROOT).decode().strip() == inputs['baseCommit']
|
||||||
|
scopes = ['Cargo.toml', 'Cargo.lock', 'crates', 'build', '.cargo', 'docs', 'examples', 'harness/fixtures']
|
||||||
|
raw_names = subprocess.check_output(['git', 'ls-files', '-z', '--cached', '--others', '--exclude-standard', '--', *scopes], cwd=ROOT)
|
||||||
|
current_names = sorted(set(name.decode() for name in raw_names.split(b'\0') if name))
|
||||||
|
assert current_names == [item['path'] for item in inputs['files']]
|
||||||
|
for item in inputs['files']:
|
||||||
|
path = (ROOT / item['path']).resolve()
|
||||||
|
assert path.is_relative_to(ROOT.resolve())
|
||||||
|
measured = identity(path)
|
||||||
|
assert all(measured[key] == item[key] for key in ['bytes', 'sha256'])
|
||||||
|
|
||||||
|
evidence = [identity(gate / name) for name in ['inputs.json', 'inputs.zip', 'environment.json', 'complete.json']]
|
||||||
|
receipts = {}
|
||||||
|
for name in names:
|
||||||
|
receipt = read(name + '-result.json')
|
||||||
|
assert receipt['exitCode'] == 0 and receipt['inputsUnchanged'] is True
|
||||||
|
for stream in ['stdout', 'stderr']:
|
||||||
|
log = identity(gate / (name + '-' + stream + '.log'))
|
||||||
|
assert log['sha256'] == receipt[stream + 'Sha256']
|
||||||
|
evidence.append(log)
|
||||||
|
evidence.append(identity(gate / (name + '-result.json')))
|
||||||
|
receipts[name] = receipt
|
||||||
|
|
||||||
|
membership = receipts['membership']['testMembership']
|
||||||
|
assert not membership['missing'] and membership['diagnosticGuardCount'] == 20
|
||||||
|
assert any('queued_group_toggle_cannot_mutate' in name for name in membership['required'])
|
||||||
|
assert any('all_reference_exceptions_fit_allocated_width' in name for name in membership['required'])
|
||||||
|
test_output = (gate / 'tests-stdout.log').read_text(encoding='utf-8')
|
||||||
|
result = re.search(r'test result: ok\. (\d+) passed; 0 failed; (\d+) ignored;', test_output)
|
||||||
|
assert result and sum(map(int, result.groups())) == membership['listed']
|
||||||
|
timing_output = (gate / 'timing-stdout.log').read_text(encoding='utf-8')
|
||||||
|
assert 'test result: ok. 1 passed; 0 failed;' in timing_output
|
||||||
|
binary_record = receipts['gui']['binary']
|
||||||
|
binary = identity(Path(binary_record['preserved']))
|
||||||
|
assert all(binary[key] == binary_record[key] for key in ['bytes', 'sha256'])
|
||||||
|
artifact = binary_record['artifact']
|
||||||
|
assert Path(artifact['manifest_path']).resolve() == ROOT / 'crates/oa-desktop/Cargo.toml'
|
||||||
|
assert artifact['target']['name'] == 'arcadia-studio'
|
||||||
|
assert artifact['executable'] == binary_record['path']
|
||||||
|
|
||||||
|
manifest = {
|
||||||
|
'atUtc': datetime.now(timezone.utc).isoformat(),
|
||||||
|
'nativeReady': True,
|
||||||
|
'scope': 'Completed Windows source gates authorize development GUI evaluation; native and packaged acceptance remain pending.',
|
||||||
|
'target': 'x86_64-pc-windows-gnullvm',
|
||||||
|
'baseCommit': inputs['baseCommit'],
|
||||||
|
'sourceFiles': len(inputs['files']),
|
||||||
|
'sourceArchiveSha256': inputs['archiveSha256'],
|
||||||
|
'membership': membership,
|
||||||
|
'binary': binary,
|
||||||
|
'evidence': evidence,
|
||||||
|
'helper': identity(Path(__file__)),
|
||||||
|
}
|
||||||
|
with destination.open('x', encoding='utf-8', newline='\n') as output:
|
||||||
|
json.dump(manifest, output, indent=2)
|
||||||
|
output.write('\n')
|
||||||
|
print(json.dumps(identity(destination)), flush=True)
|
||||||
@@ -0,0 +1,435 @@
|
|||||||
|
{
|
||||||
|
"preparedAtUtc": "2026-09-12T11:17:21.035184+00:00",
|
||||||
|
"oracle_sha256": "967d9ba3c6fb3a7efb410833903ec94556ca2d48a67d5072c8bb160f40a00f9c",
|
||||||
|
"dll_sha256": "f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4",
|
||||||
|
"cases": {
|
||||||
|
"simple": {
|
||||||
|
"original": "valid-baseline",
|
||||||
|
"original_files": {
|
||||||
|
"links.arcadia": {
|
||||||
|
"sha256": "d3229ecf6300804103eb7f85bd5891c022f6f6c194dbdbbdcb54e9550338dc3b",
|
||||||
|
"bytes": 211
|
||||||
|
},
|
||||||
|
"project.arcadia": {
|
||||||
|
"sha256": "79e26836c048a35aaf98b21ff006ae8ac931160abd9913b9e67b542303215414",
|
||||||
|
"bytes": 277
|
||||||
|
},
|
||||||
|
"救援/assess.arcadia": {
|
||||||
|
"sha256": "d99593537e67b2dfd293623f467ffbd46af4ea259dffae55d1fe9995c86e6992",
|
||||||
|
"bytes": 192
|
||||||
|
},
|
||||||
|
"救援/confirm.arcadia": {
|
||||||
|
"sha256": "591b32db3b1282825750d002d9293cfc450d55252506623302ce36c949fe9919",
|
||||||
|
"bytes": 92
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"literal_edits": [
|
||||||
|
{
|
||||||
|
"path": "救援/assess.arcadia",
|
||||||
|
"before": "oa_activity assess \"Assess 救援 request\"",
|
||||||
|
"after": "oa_activity assess_damage \"Assess 救援 request\"",
|
||||||
|
"count": 1,
|
||||||
|
"before_snippet_spans_at_edit": [
|
||||||
|
{
|
||||||
|
"start": 47,
|
||||||
|
"end": 89
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "links.arcadia",
|
||||||
|
"before": "; source @assess; target @confirm;",
|
||||||
|
"after": "; source @assess_damage; target @confirm;",
|
||||||
|
"count": 1,
|
||||||
|
"before_snippet_spans_at_edit": [
|
||||||
|
{
|
||||||
|
"start": 127,
|
||||||
|
"end": 161
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"expected_files": {
|
||||||
|
"links.arcadia": {
|
||||||
|
"sha256": "c056d46011b3b86ae05dc49b8e6d69cba903f8e7379b06c6d0c5d93639768a09",
|
||||||
|
"bytes": 218
|
||||||
|
},
|
||||||
|
"project.arcadia": {
|
||||||
|
"sha256": "79e26836c048a35aaf98b21ff006ae8ac931160abd9913b9e67b542303215414",
|
||||||
|
"bytes": 277
|
||||||
|
},
|
||||||
|
"救援/assess.arcadia": {
|
||||||
|
"sha256": "8d326ec33370b8ecf73f6d611904875994888baa3495f7c1df4613866e645d03",
|
||||||
|
"bytes": 199
|
||||||
|
},
|
||||||
|
"救援/confirm.arcadia": {
|
||||||
|
"sha256": "591b32db3b1282825750d002d9293cfc450d55252506623302ce36c949fe9919",
|
||||||
|
"bytes": 92
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"changed_files": [
|
||||||
|
"links.arcadia",
|
||||||
|
"救援/assess.arcadia"
|
||||||
|
],
|
||||||
|
"arcadia_files": 4
|
||||||
|
},
|
||||||
|
"representative": {
|
||||||
|
"original": "release1-baseline",
|
||||||
|
"original_files": {
|
||||||
|
"evidence/repair-check.md": {
|
||||||
|
"sha256": "f4db17bdca4ecbb1bf0caef01b2da5f1f7f798ab3152b648ce6dd8696a6a68e5",
|
||||||
|
"bytes": 1419
|
||||||
|
},
|
||||||
|
"expected-diagnostics.json": {
|
||||||
|
"sha256": "3700393d76b940cfc076bf52861bd7b1f43370f8eabce3594531bd0bf1fc851e",
|
||||||
|
"bytes": 288
|
||||||
|
},
|
||||||
|
"model.json": {
|
||||||
|
"sha256": "ef0ef4006c3e09d5db6e1b621256b3f7d6642f3a7b09cc34607cfbcca830c727",
|
||||||
|
"bytes": 134520
|
||||||
|
},
|
||||||
|
"model.rs": {
|
||||||
|
"sha256": "15f30f6bde655808fe754665c26d560e36f2a9bad340f346b09137d0d05045f5",
|
||||||
|
"bytes": 28762
|
||||||
|
},
|
||||||
|
"oa/activities/activity_oa_restore_work.arcadia": {
|
||||||
|
"sha256": "83e73d0a013d5c3e1a4af0d9139ab0cfa362d25a846671fc2dac59181061a9d4",
|
||||||
|
"bytes": 1307
|
||||||
|
},
|
||||||
|
"oa/behavior/process_oa_assessment_procedure.arcadia": {
|
||||||
|
"sha256": "172c32c044ef4b5bc58a1f4635cc81f48dabb4014479b47dce7b25fedf2dbd0d",
|
||||||
|
"bytes": 697
|
||||||
|
},
|
||||||
|
"oa/behavior/process_oa_field_procedure.arcadia": {
|
||||||
|
"sha256": "d2552dc5383e2e91cb302a790364e197f663c2edc013a2ab1978789825c9c324",
|
||||||
|
"bytes": 1781
|
||||||
|
},
|
||||||
|
"oa/behavior/process_oa_response.arcadia": {
|
||||||
|
"sha256": "cf86f46fa5c5d70592ef43f1bc1cb4d968efd8add384ba88036bef6b88aa4abc",
|
||||||
|
"bytes": 3225
|
||||||
|
},
|
||||||
|
"oa/behavior/scenario_oa_conversation.arcadia": {
|
||||||
|
"sha256": "b25be524e98a35ebac5e4481b7609c027b32baf9605e8097f807560f94a77ca6",
|
||||||
|
"bytes": 1795
|
||||||
|
},
|
||||||
|
"oa/behavior/scenario_oa_full_scenario.arcadia": {
|
||||||
|
"sha256": "00a1edf2c9707a0eb62ac070c2d02467874f2c9c1f273cc6ddb53d6d65999a1c",
|
||||||
|
"bytes": 1261
|
||||||
|
},
|
||||||
|
"oa/behavior/state_machine_oa_monitor.arcadia": {
|
||||||
|
"sha256": "447c9ad1359f4a31ecf975ad07c0b08d8e7e03191fb0858e2fc56f377b223cd5",
|
||||||
|
"bytes": 2022
|
||||||
|
},
|
||||||
|
"oa/capabilities.arcadia": {
|
||||||
|
"sha256": "fc8012e5554350b12e1cb80080f8feab80d933c9b33c0f2a7bb500cb7d609936",
|
||||||
|
"bytes": 781
|
||||||
|
},
|
||||||
|
"oa/model.arcadia": {
|
||||||
|
"sha256": "f7cf914766ea73ec53b85e32d117ea9a9dba52d3e038246863541ae7069b1a15",
|
||||||
|
"bytes": 661
|
||||||
|
},
|
||||||
|
"oa/participants.arcadia": {
|
||||||
|
"sha256": "951764c14179f27c10e315acf2ea37d1fff54c77b8441e23addd239e8c715ce3",
|
||||||
|
"bytes": 1834
|
||||||
|
},
|
||||||
|
"oa/types.arcadia": {
|
||||||
|
"sha256": "9d0396fb82dd5733edd8d1cf52f968ca84906927c704f9cf0944a7fae215cf49",
|
||||||
|
"bytes": 788
|
||||||
|
},
|
||||||
|
"project.arcadia": {
|
||||||
|
"sha256": "b2674e6bf77cfe0f6f0ba79c81d2e96d92f39c02ca2c6266d80e91723bfb9fda",
|
||||||
|
"bytes": 1958
|
||||||
|
},
|
||||||
|
"README.md": {
|
||||||
|
"sha256": "113cfb1cf38a98b51bff60442d86a35d636a3d80ef206bece7d53d0aae67f2d5",
|
||||||
|
"bytes": 11137
|
||||||
|
},
|
||||||
|
"sa/behavior/process_sa_assessment_procedure.arcadia": {
|
||||||
|
"sha256": "73928ced61c06cbc08728d7956676a50fd4c05aa5b7f1ff4f29ce27a0b0f2088",
|
||||||
|
"bytes": 706
|
||||||
|
},
|
||||||
|
"sa/behavior/process_sa_field_procedure.arcadia": {
|
||||||
|
"sha256": "886d462af83110cbfa55dd232a667ea1446761234471357cbb878794e98e8768",
|
||||||
|
"bytes": 1790
|
||||||
|
},
|
||||||
|
"sa/behavior/process_sa_response.arcadia": {
|
||||||
|
"sha256": "041785fc22842423822431bd5e6e8d16094ebd0716965e7c765fb8c1d7549e8a",
|
||||||
|
"bytes": 3234
|
||||||
|
},
|
||||||
|
"sa/behavior/scenario_sa_conversation.arcadia": {
|
||||||
|
"sha256": "97276f5757ee9aa12a0dbd9d3ccd58174b3091162bb8bcce357cec20a45f5d85",
|
||||||
|
"bytes": 2127
|
||||||
|
},
|
||||||
|
"sa/behavior/scenario_sa_full_scenario.arcadia": {
|
||||||
|
"sha256": "e12fc406b99d60a2f7768aaa0b25ba560e8605f0b8e37f3a7cdd3b8443562b74",
|
||||||
|
"bytes": 1256
|
||||||
|
},
|
||||||
|
"sa/behavior/state_machine_sa_monitor.arcadia": {
|
||||||
|
"sha256": "05ce29af99424c491c47fe2450dc6f5f8ce995511c01ec7e17bb5855be3c9736",
|
||||||
|
"bytes": 2022
|
||||||
|
},
|
||||||
|
"sa/capabilities.arcadia": {
|
||||||
|
"sha256": "b6912fb3ece439912345fa71724acd462e716a1e5a88203a1058a5c3b2c20a4f",
|
||||||
|
"bytes": 781
|
||||||
|
},
|
||||||
|
"sa/functions/function_sa_audit_thresholds.arcadia": {
|
||||||
|
"sha256": "e5a04325d52183956dca814dd90f4e56c96c6b7db0f4f202f203ecb49c3e0f4f",
|
||||||
|
"bytes": 297
|
||||||
|
},
|
||||||
|
"sa/functions/function_sa_restore_work.arcadia": {
|
||||||
|
"sha256": "fddeb67308051325041fee641fe758ddf43345b7c47b66d433616ad07fdccdd6",
|
||||||
|
"bytes": 2576
|
||||||
|
},
|
||||||
|
"sa/model.arcadia": {
|
||||||
|
"sha256": "d431509251acb859fbb98733b6d18add952495e10a78703fbe8f31e40bc083c4",
|
||||||
|
"bytes": 661
|
||||||
|
},
|
||||||
|
"sa/participants.arcadia": {
|
||||||
|
"sha256": "780d2eb08b217b67b55febb3d34846f727b8ee9018df6c5741748647e36b2ff8",
|
||||||
|
"bytes": 4012
|
||||||
|
},
|
||||||
|
"sa/types.arcadia": {
|
||||||
|
"sha256": "101fc0fbd99f1101514aa7b6da4f8e535aae0bb94c9e2b9e7e6c151135b28660",
|
||||||
|
"bytes": 1227
|
||||||
|
},
|
||||||
|
"traceability.arcadia": {
|
||||||
|
"sha256": "48a96f543456c9b5a5798fc795594e4119147fe45f11a6f109f141b7f514560f",
|
||||||
|
"bytes": 29506
|
||||||
|
},
|
||||||
|
"transition-before.json": {
|
||||||
|
"sha256": "2253e6434f741687e22327c37d520ed15c043bc36025498650bc2366bb6a874d",
|
||||||
|
"bytes": 35801
|
||||||
|
},
|
||||||
|
"transition-request.json": {
|
||||||
|
"sha256": "43b9a22e5f95ad3bc0ebd2478ead0e14406854abc989ae94ded9367b013d812a",
|
||||||
|
"bytes": 4276
|
||||||
|
},
|
||||||
|
"views/diagram_oa_allocation_view.arcadia": {
|
||||||
|
"sha256": "dfc0eb61e0e2aa5bda45524571fbfa3494f44ce19696f3e15e07438074a07bc7",
|
||||||
|
"bytes": 2176
|
||||||
|
},
|
||||||
|
"views/diagram_sa_allocation_view.arcadia": {
|
||||||
|
"sha256": "b78b43a26a82efb8fbd5374b09c329fa341f57b29f635d397b9ef8aede71d389",
|
||||||
|
"bytes": 2173
|
||||||
|
},
|
||||||
|
"views/diagram_sa_capability_view.arcadia": {
|
||||||
|
"sha256": "75e8dc9fb30f25d6f8fd3c6b595593ab4f98958a25798f961e336e0fac557649",
|
||||||
|
"bytes": 1620
|
||||||
|
},
|
||||||
|
"views/diagram_sa_service_view.arcadia": {
|
||||||
|
"sha256": "b08c84f3ea633e7c78dfdad3272f75415f6256cf3614b6d99bfd4f0269076c9b",
|
||||||
|
"bytes": 2209
|
||||||
|
},
|
||||||
|
"views/diagram_sa_state_view.arcadia": {
|
||||||
|
"sha256": "5f42f4c605e57b817d8400ed21f2b14bfc4e1592aebe941ff113767504c2b869",
|
||||||
|
"bytes": 1931
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"literal_edits": [
|
||||||
|
{
|
||||||
|
"path": "oa/activities/activity_oa_restore_work.arcadia",
|
||||||
|
"before": "oa_activity oa_restore_work \"Restore safe pressure\"",
|
||||||
|
"after": "oa_activity oa_restore_pressure \"Restore safe pressure\"",
|
||||||
|
"count": 1,
|
||||||
|
"before_snippet_spans_at_edit": [
|
||||||
|
{
|
||||||
|
"start": 0,
|
||||||
|
"end": 51
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "oa/activities/activity_oa_restore_work.arcadia",
|
||||||
|
"before": " parent @oa_restore_work;",
|
||||||
|
"after": " parent @oa_restore_pressure;",
|
||||||
|
"count": 4,
|
||||||
|
"before_snippet_spans_at_edit": [
|
||||||
|
{
|
||||||
|
"start": 250,
|
||||||
|
"end": 278
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"start": 393,
|
||||||
|
"end": 421
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"start": 539,
|
||||||
|
"end": 567
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"start": 679,
|
||||||
|
"end": 707
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "traceability.arcadia",
|
||||||
|
"before": " oa @oa_restore_work;",
|
||||||
|
"after": " oa @oa_restore_pressure;",
|
||||||
|
"count": 1,
|
||||||
|
"before_snippet_spans_at_edit": [
|
||||||
|
{
|
||||||
|
"start": 26877,
|
||||||
|
"end": 26901
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"expected_files": {
|
||||||
|
"evidence/repair-check.md": {
|
||||||
|
"sha256": "f4db17bdca4ecbb1bf0caef01b2da5f1f7f798ab3152b648ce6dd8696a6a68e5",
|
||||||
|
"bytes": 1419
|
||||||
|
},
|
||||||
|
"expected-diagnostics.json": {
|
||||||
|
"sha256": "3700393d76b940cfc076bf52861bd7b1f43370f8eabce3594531bd0bf1fc851e",
|
||||||
|
"bytes": 288
|
||||||
|
},
|
||||||
|
"model.json": {
|
||||||
|
"sha256": "ef0ef4006c3e09d5db6e1b621256b3f7d6642f3a7b09cc34607cfbcca830c727",
|
||||||
|
"bytes": 134520
|
||||||
|
},
|
||||||
|
"model.rs": {
|
||||||
|
"sha256": "15f30f6bde655808fe754665c26d560e36f2a9bad340f346b09137d0d05045f5",
|
||||||
|
"bytes": 28762
|
||||||
|
},
|
||||||
|
"oa/activities/activity_oa_restore_work.arcadia": {
|
||||||
|
"sha256": "8c6cf1e9b6fdd118602659b6fb3ad0f1988ae700fcd548abede259da2c3a29e5",
|
||||||
|
"bytes": 1327
|
||||||
|
},
|
||||||
|
"oa/behavior/process_oa_assessment_procedure.arcadia": {
|
||||||
|
"sha256": "172c32c044ef4b5bc58a1f4635cc81f48dabb4014479b47dce7b25fedf2dbd0d",
|
||||||
|
"bytes": 697
|
||||||
|
},
|
||||||
|
"oa/behavior/process_oa_field_procedure.arcadia": {
|
||||||
|
"sha256": "d2552dc5383e2e91cb302a790364e197f663c2edc013a2ab1978789825c9c324",
|
||||||
|
"bytes": 1781
|
||||||
|
},
|
||||||
|
"oa/behavior/process_oa_response.arcadia": {
|
||||||
|
"sha256": "cf86f46fa5c5d70592ef43f1bc1cb4d968efd8add384ba88036bef6b88aa4abc",
|
||||||
|
"bytes": 3225
|
||||||
|
},
|
||||||
|
"oa/behavior/scenario_oa_conversation.arcadia": {
|
||||||
|
"sha256": "b25be524e98a35ebac5e4481b7609c027b32baf9605e8097f807560f94a77ca6",
|
||||||
|
"bytes": 1795
|
||||||
|
},
|
||||||
|
"oa/behavior/scenario_oa_full_scenario.arcadia": {
|
||||||
|
"sha256": "00a1edf2c9707a0eb62ac070c2d02467874f2c9c1f273cc6ddb53d6d65999a1c",
|
||||||
|
"bytes": 1261
|
||||||
|
},
|
||||||
|
"oa/behavior/state_machine_oa_monitor.arcadia": {
|
||||||
|
"sha256": "447c9ad1359f4a31ecf975ad07c0b08d8e7e03191fb0858e2fc56f377b223cd5",
|
||||||
|
"bytes": 2022
|
||||||
|
},
|
||||||
|
"oa/capabilities.arcadia": {
|
||||||
|
"sha256": "fc8012e5554350b12e1cb80080f8feab80d933c9b33c0f2a7bb500cb7d609936",
|
||||||
|
"bytes": 781
|
||||||
|
},
|
||||||
|
"oa/model.arcadia": {
|
||||||
|
"sha256": "f7cf914766ea73ec53b85e32d117ea9a9dba52d3e038246863541ae7069b1a15",
|
||||||
|
"bytes": 661
|
||||||
|
},
|
||||||
|
"oa/participants.arcadia": {
|
||||||
|
"sha256": "951764c14179f27c10e315acf2ea37d1fff54c77b8441e23addd239e8c715ce3",
|
||||||
|
"bytes": 1834
|
||||||
|
},
|
||||||
|
"oa/types.arcadia": {
|
||||||
|
"sha256": "9d0396fb82dd5733edd8d1cf52f968ca84906927c704f9cf0944a7fae215cf49",
|
||||||
|
"bytes": 788
|
||||||
|
},
|
||||||
|
"project.arcadia": {
|
||||||
|
"sha256": "b2674e6bf77cfe0f6f0ba79c81d2e96d92f39c02ca2c6266d80e91723bfb9fda",
|
||||||
|
"bytes": 1958
|
||||||
|
},
|
||||||
|
"README.md": {
|
||||||
|
"sha256": "113cfb1cf38a98b51bff60442d86a35d636a3d80ef206bece7d53d0aae67f2d5",
|
||||||
|
"bytes": 11137
|
||||||
|
},
|
||||||
|
"sa/behavior/process_sa_assessment_procedure.arcadia": {
|
||||||
|
"sha256": "73928ced61c06cbc08728d7956676a50fd4c05aa5b7f1ff4f29ce27a0b0f2088",
|
||||||
|
"bytes": 706
|
||||||
|
},
|
||||||
|
"sa/behavior/process_sa_field_procedure.arcadia": {
|
||||||
|
"sha256": "886d462af83110cbfa55dd232a667ea1446761234471357cbb878794e98e8768",
|
||||||
|
"bytes": 1790
|
||||||
|
},
|
||||||
|
"sa/behavior/process_sa_response.arcadia": {
|
||||||
|
"sha256": "041785fc22842423822431bd5e6e8d16094ebd0716965e7c765fb8c1d7549e8a",
|
||||||
|
"bytes": 3234
|
||||||
|
},
|
||||||
|
"sa/behavior/scenario_sa_conversation.arcadia": {
|
||||||
|
"sha256": "97276f5757ee9aa12a0dbd9d3ccd58174b3091162bb8bcce357cec20a45f5d85",
|
||||||
|
"bytes": 2127
|
||||||
|
},
|
||||||
|
"sa/behavior/scenario_sa_full_scenario.arcadia": {
|
||||||
|
"sha256": "e12fc406b99d60a2f7768aaa0b25ba560e8605f0b8e37f3a7cdd3b8443562b74",
|
||||||
|
"bytes": 1256
|
||||||
|
},
|
||||||
|
"sa/behavior/state_machine_sa_monitor.arcadia": {
|
||||||
|
"sha256": "05ce29af99424c491c47fe2450dc6f5f8ce995511c01ec7e17bb5855be3c9736",
|
||||||
|
"bytes": 2022
|
||||||
|
},
|
||||||
|
"sa/capabilities.arcadia": {
|
||||||
|
"sha256": "b6912fb3ece439912345fa71724acd462e716a1e5a88203a1058a5c3b2c20a4f",
|
||||||
|
"bytes": 781
|
||||||
|
},
|
||||||
|
"sa/functions/function_sa_audit_thresholds.arcadia": {
|
||||||
|
"sha256": "e5a04325d52183956dca814dd90f4e56c96c6b7db0f4f202f203ecb49c3e0f4f",
|
||||||
|
"bytes": 297
|
||||||
|
},
|
||||||
|
"sa/functions/function_sa_restore_work.arcadia": {
|
||||||
|
"sha256": "fddeb67308051325041fee641fe758ddf43345b7c47b66d433616ad07fdccdd6",
|
||||||
|
"bytes": 2576
|
||||||
|
},
|
||||||
|
"sa/model.arcadia": {
|
||||||
|
"sha256": "d431509251acb859fbb98733b6d18add952495e10a78703fbe8f31e40bc083c4",
|
||||||
|
"bytes": 661
|
||||||
|
},
|
||||||
|
"sa/participants.arcadia": {
|
||||||
|
"sha256": "780d2eb08b217b67b55febb3d34846f727b8ee9018df6c5741748647e36b2ff8",
|
||||||
|
"bytes": 4012
|
||||||
|
},
|
||||||
|
"sa/types.arcadia": {
|
||||||
|
"sha256": "101fc0fbd99f1101514aa7b6da4f8e535aae0bb94c9e2b9e7e6c151135b28660",
|
||||||
|
"bytes": 1227
|
||||||
|
},
|
||||||
|
"traceability.arcadia": {
|
||||||
|
"sha256": "cd3d7ebaf7d6aedf1eaa739afaf0268c487b05cc2685233568425ce0498cf338",
|
||||||
|
"bytes": 29510
|
||||||
|
},
|
||||||
|
"transition-before.json": {
|
||||||
|
"sha256": "2253e6434f741687e22327c37d520ed15c043bc36025498650bc2366bb6a874d",
|
||||||
|
"bytes": 35801
|
||||||
|
},
|
||||||
|
"transition-request.json": {
|
||||||
|
"sha256": "43b9a22e5f95ad3bc0ebd2478ead0e14406854abc989ae94ded9367b013d812a",
|
||||||
|
"bytes": 4276
|
||||||
|
},
|
||||||
|
"views/diagram_oa_allocation_view.arcadia": {
|
||||||
|
"sha256": "dfc0eb61e0e2aa5bda45524571fbfa3494f44ce19696f3e15e07438074a07bc7",
|
||||||
|
"bytes": 2176
|
||||||
|
},
|
||||||
|
"views/diagram_sa_allocation_view.arcadia": {
|
||||||
|
"sha256": "b78b43a26a82efb8fbd5374b09c329fa341f57b29f635d397b9ef8aede71d389",
|
||||||
|
"bytes": 2173
|
||||||
|
},
|
||||||
|
"views/diagram_sa_capability_view.arcadia": {
|
||||||
|
"sha256": "75e8dc9fb30f25d6f8fd3c6b595593ab4f98958a25798f961e336e0fac557649",
|
||||||
|
"bytes": 1620
|
||||||
|
},
|
||||||
|
"views/diagram_sa_service_view.arcadia": {
|
||||||
|
"sha256": "b08c84f3ea633e7c78dfdad3272f75415f6256cf3614b6d99bfd4f0269076c9b",
|
||||||
|
"bytes": 2209
|
||||||
|
},
|
||||||
|
"views/diagram_sa_state_view.arcadia": {
|
||||||
|
"sha256": "5f42f4c605e57b817d8400ed21f2b14bfc4e1592aebe941ff113767504c2b869",
|
||||||
|
"bytes": 1931
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"changed_files": [
|
||||||
|
"oa/activities/activity_oa_restore_work.arcadia",
|
||||||
|
"traceability.arcadia"
|
||||||
|
],
|
||||||
|
"arcadia_files": 30
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
"""Capture exact working inputs and run one serial Windows acceptance attempt."""
|
||||||
|
import datetime
|
||||||
|
import hashlib
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
from pathlib import Path
|
||||||
|
import re
|
||||||
|
import shutil
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
import zipfile
|
||||||
|
|
||||||
|
ROOT = Path(__file__).resolve().parents[2]
|
||||||
|
BASE = Path(__file__).resolve().parent
|
||||||
|
label = sys.argv[1]
|
||||||
|
if not re.fullmatch(r'attempt-[0-9]+', label):
|
||||||
|
raise RuntimeError('Invalid attempt label')
|
||||||
|
DEST = BASE / label
|
||||||
|
DEST.mkdir()
|
||||||
|
if os.environ.get('CARGO_BUILD_JOBS') != '1':
|
||||||
|
raise RuntimeError('One Windows compiler job required')
|
||||||
|
SCOPES = ['Cargo.toml', 'Cargo.lock', 'crates', 'build', '.cargo', 'docs', 'examples', 'harness/fixtures']
|
||||||
|
def now():
|
||||||
|
return datetime.datetime.now(datetime.timezone.utc).isoformat()
|
||||||
|
def sha(path):
|
||||||
|
return hashlib.sha256(path.read_bytes()).hexdigest()
|
||||||
|
def names():
|
||||||
|
data = subprocess.check_output(['git', 'ls-files', '-z', '--cached', '--others', '--exclude-standard', '--', *SCOPES], cwd=ROOT)
|
||||||
|
return sorted(set(p.decode() for p in data.split(b'\0') if p))
|
||||||
|
def write(name, value):
|
||||||
|
with (DEST / name).open('x', encoding='utf-8', newline='\n') as output:
|
||||||
|
json.dump(value, output, indent=2)
|
||||||
|
output.write('\n')
|
||||||
|
inputs = []
|
||||||
|
with zipfile.ZipFile(DEST / 'inputs.zip', 'x', zipfile.ZIP_DEFLATED) as archive:
|
||||||
|
for name in names():
|
||||||
|
raw = (ROOT / name).read_bytes()
|
||||||
|
archive.writestr(name, raw)
|
||||||
|
inputs.append({'path': name, 'bytes': len(raw), 'sha256': hashlib.sha256(raw).hexdigest()})
|
||||||
|
def verify():
|
||||||
|
return names() == [row['path'] for row in inputs] and all(sha(ROOT / row['path']) == row['sha256'] for row in inputs)
|
||||||
|
write('inputs.json', {'atUtc': now(), 'baseCommit': subprocess.check_output(['git', 'rev-parse', 'HEAD'], cwd=ROOT).decode().strip(), 'archiveSha256': sha(DEST / 'inputs.zip'), 'files': inputs})
|
||||||
|
write('environment.json', {'atUtc': now(), 'versions': {name: subprocess.check_output(command, cwd=ROOT).decode() for name, command in [('rustc', ['rustc', '-vV']), ('cargo', ['cargo', '-V'])]}, 'variables': {key: os.environ.get(key) for key in ['RUSTUP_HOME', 'CARGO_HOME', 'RUSTUP_TOOLCHAIN', 'CARGO_TARGET_DIR', 'CARGO_BUILD_JOBS', 'CARGO_TARGET_X86_64_PC_WINDOWS_GNULLVM_LINKER']}})
|
||||||
|
gates = [
|
||||||
|
('clippy', ['cargo', 'clippy', '--locked', '--offline', '-p', 'oa-desktop', '--all-targets', '--', '-D', 'warnings']),
|
||||||
|
('membership', ['cargo', 'test', '--locked', '--offline', '-p', 'oa-desktop', '--bin', 'arcadia-studio', '--', '--list']),
|
||||||
|
('focused', ['cargo', 'test', '--locked', '--offline', '-p', 'oa-desktop', '--bin', 'arcadia-studio', 'text_workspace', '--', '--nocapture', '--test-threads=1']),
|
||||||
|
('tests', ['cargo', 'test', '--locked', '--offline', '-p', 'oa-desktop', '--bin', 'arcadia-studio', '--', '--test-threads=1']),
|
||||||
|
('timing', ['cargo', 'test', '--locked', '--offline', '-p', 'oa-desktop', '--bin', 'arcadia-studio', 'app::source_rename::timing_tests::accepted_release1_prepare_commit_sync_and_confirm_timing', '--', '--ignored', '--nocapture', '--test-threads=1']),
|
||||||
|
('gui', ['cargo', 'build', '--locked', '--offline', '-p', 'oa-desktop', '--bin', 'arcadia-studio', '--message-format=json-render-diagnostics']),
|
||||||
|
]
|
||||||
|
for name, command in gates:
|
||||||
|
if not verify():
|
||||||
|
raise RuntimeError('Source inputs changed before gate')
|
||||||
|
print(json.dumps({'starting': name, 'command': command}), flush=True)
|
||||||
|
start, clock = now(), time.perf_counter()
|
||||||
|
with (DEST / (name + '-stdout.log')).open('xb') as out, (DEST / (name + '-stderr.log')).open('xb') as err:
|
||||||
|
result = subprocess.run(command, cwd=ROOT, stdout=out, stderr=err)
|
||||||
|
receipt = {'command': command, 'started': start, 'finished': now(), 'seconds': time.perf_counter() - clock, 'exitCode': result.returncode, 'inputsUnchanged': verify(), 'stdoutSha256': sha(DEST / (name + '-stdout.log')), 'stderrSha256': sha(DEST / (name + '-stderr.log'))}
|
||||||
|
if name == 'membership' and result.returncode == 0:
|
||||||
|
listed = {line.removesuffix(': test') for line in (DEST / 'membership-stdout.log').read_text(encoding='utf-8').splitlines() if line.endswith(': test')}
|
||||||
|
required = {
|
||||||
|
'app::text_workspace::tests::document_reset_preserves_popup_token_sequence_and_drops_old_menu_authority',
|
||||||
|
'app::text_workspace::tests::stale_retained_group_can_expand_without_navigating_or_applying_drafts',
|
||||||
|
'app::text_workspace::lifecycle_tests::saved_new_destination_republishes_current_warning_and_refuses_old_primary_and_related',
|
||||||
|
'app::text_workspace::lifecycle_tests::invalid_repair_open_clears_prior_presentation_and_publishes_current_problems_preserving_worker',
|
||||||
|
'views::text_workspace::tests::highlighted_sensor_editor_retains_real_scrolled_buffer_across_panel_rebuilds',
|
||||||
|
'views::text_workspace::tests::drawer_clamps_to_actual_center_allocation_including_oversize_requests',
|
||||||
|
'diagnostic_input::tests::same_publication_new_visit_cancels_armed_rows_without_a_hidden_tree_frame',
|
||||||
|
'app::source_symbols::tests::retained_choices_cannot_replay_after_hide_or_references_problems_references',
|
||||||
|
'app::text_workspace::tests::queued_group_toggle_cannot_mutate_a_reopened_or_rotated_visit',
|
||||||
|
'views::text_workspace::summary_visibility_tests::all_reference_exceptions_fit_allocated_width_with_wide_alias_and_large_counts',
|
||||||
|
}
|
||||||
|
receipt['testMembership'] = {'listed': len(listed), 'required': sorted(required), 'missing': sorted(required - listed), 'diagnosticGuardCount': sum(name.startswith('diagnostic_input::tests::') for name in listed)}
|
||||||
|
if required - listed or receipt['testMembership']['diagnosticGuardCount'] != 20:
|
||||||
|
write(name + '-result.json', receipt)
|
||||||
|
raise RuntimeError('New Text workspace test membership differs; shared-target cache output is not accepted')
|
||||||
|
if name == 'gui' and result.returncode == 0:
|
||||||
|
records = [json.loads(line) for line in (DEST / 'gui-stdout.log').read_text(encoding='utf-8').splitlines() if line.startswith('{')]
|
||||||
|
artifacts = [record for record in records if record.get('reason') == 'compiler-artifact' and record.get('target', {}).get('name') == 'arcadia-studio' and record.get('executable')]
|
||||||
|
if len(artifacts) != 1:
|
||||||
|
raise RuntimeError('Expected exactly one desktop artifact')
|
||||||
|
binary = Path(artifacts[0]['executable'])
|
||||||
|
shutil.copyfile(binary, DEST / 'arcadia-studio.exe')
|
||||||
|
if sha(binary) != sha(DEST / 'arcadia-studio.exe'):
|
||||||
|
raise RuntimeError('Desktop preservation differs')
|
||||||
|
receipt['binary'] = {'path': str(binary), 'preserved': str(DEST / 'arcadia-studio.exe'), 'sha256': sha(binary), 'bytes': binary.stat().st_size, 'artifact': artifacts[0]}
|
||||||
|
write(name + '-result.json', receipt)
|
||||||
|
print(json.dumps(receipt), flush=True)
|
||||||
|
if result.returncode or not receipt['inputsUnchanged']:
|
||||||
|
raise SystemExit(result.returncode or 1)
|
||||||
|
write('complete.json', {'atUtc': now(), 'inputsUnchanged': verify(), 'gates': [name for name, _ in gates], 'scope': 'Windows headless tests/lint/timing/build; no native acceptance'})
|
||||||
@@ -0,0 +1,79 @@
|
|||||||
|
"""Launch a gate-bound development GUI in a fresh private profile; retain child."""
|
||||||
|
from pathlib import Path
|
||||||
|
from datetime import datetime, timezone
|
||||||
|
import hashlib
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import shutil
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
|
||||||
|
BASE = Path(__file__).resolve().parent
|
||||||
|
|
||||||
|
def now():
|
||||||
|
return datetime.now(timezone.utc).isoformat()
|
||||||
|
|
||||||
|
def identity(path):
|
||||||
|
raw = path.read_bytes()
|
||||||
|
return {'bytes': len(raw), 'sha256': hashlib.sha256(raw).hexdigest()}
|
||||||
|
|
||||||
|
manifest_path, manifest_hash, label = sys.argv[1:]
|
||||||
|
manifest_path = Path(manifest_path)
|
||||||
|
assert manifest_path.is_absolute() and identity(manifest_path)['sha256'] == manifest_hash
|
||||||
|
manifest = json.loads(manifest_path.read_text(encoding='utf-8'))
|
||||||
|
assert manifest['nativeReady'] is True and re.fullmatch('trial-text-[0-9]+', label)
|
||||||
|
assert manifest['target'] == 'x86_64-pc-windows-gnullvm'
|
||||||
|
for item in [manifest['binary'], *manifest['evidence']]:
|
||||||
|
path = Path(item['path'])
|
||||||
|
assert path.is_absolute() and identity(path) == {key: item[key] for key in ['bytes', 'sha256']}
|
||||||
|
dll = BASE / 'runtime/libunwind.dll'
|
||||||
|
assert identity(dll)['sha256'] == 'f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4'
|
||||||
|
trial = BASE / label
|
||||||
|
trial.mkdir()
|
||||||
|
for name in ['bin', 'profile/roaming', 'profile/local', 'profile/Desktop', 'tmp', 'cwd', 'screenshots']:
|
||||||
|
(trial / name).mkdir(parents=True, exist_ok=True)
|
||||||
|
executable = trial / 'bin/arcadia-studio.exe'
|
||||||
|
shutil.copyfile(manifest['binary']['path'], executable)
|
||||||
|
shutil.copyfile(dll, trial / 'bin/libunwind.dll')
|
||||||
|
assert identity(executable) == {key: manifest['binary'][key] for key in ['bytes', 'sha256']}
|
||||||
|
assert identity(dll) == identity(trial / 'bin/libunwind.dll')
|
||||||
|
shutil.copyfile(manifest_path, trial / 'launch-manifest.json')
|
||||||
|
|
||||||
|
def record(name, value):
|
||||||
|
with (trial / name).open('x', encoding='utf-8', newline='\n') as output:
|
||||||
|
json.dump(value, output, indent=2)
|
||||||
|
output.write('\n')
|
||||||
|
|
||||||
|
inherited = {key.upper(): value for key, value in os.environ.items()}
|
||||||
|
env = {key: inherited[key.upper()] for key in ['SystemRoot', 'SystemDrive', 'ProgramData', 'ALLUSERSPROFILE', 'PUBLIC']}
|
||||||
|
system = env['SystemRoot']
|
||||||
|
env.update({'WINDIR': system, 'PATH': system + '\\System32;' + system,
|
||||||
|
'USERPROFILE': str(trial / 'profile'), 'APPDATA': str(trial / 'profile/roaming'),
|
||||||
|
'LOCALAPPDATA': str(trial / 'profile/local'),
|
||||||
|
'TEMP': str(trial / 'tmp'), 'TMP': str(trial / 'tmp')})
|
||||||
|
with (trial / 'stdout.log').open('xb') as out, (trial / 'stderr.log').open('xb') as err:
|
||||||
|
start = now()
|
||||||
|
child = subprocess.Popen([str(executable)], cwd=trial / 'cwd', env=env, stdout=out, stderr=err,
|
||||||
|
creationflags=subprocess.CREATE_NO_WINDOW)
|
||||||
|
receipt_error = None
|
||||||
|
try:
|
||||||
|
receipt = {'started': start, 'pid': child.pid, 'executable': str(executable),
|
||||||
|
'binary': identity(executable), 'environment': env, 'cwd': str(trial / 'cwd'),
|
||||||
|
'manifestSha256': manifest_hash, 'helper': identity(Path(__file__)),
|
||||||
|
'scope': 'Development GUI launch, not packaged release acceptance.'}
|
||||||
|
record('launch.json', receipt)
|
||||||
|
print(json.dumps(receipt), flush=True)
|
||||||
|
except Exception as error:
|
||||||
|
receipt_error = repr(error)
|
||||||
|
finally:
|
||||||
|
code = child.wait()
|
||||||
|
finished = now()
|
||||||
|
closure = {'finished': finished, 'pid': child.pid, 'exitCode': code,
|
||||||
|
'stdout': identity(trial / 'stdout.log'), 'stderr': identity(trial / 'stderr.log'),
|
||||||
|
'binaryUnchanged': identity(executable) == {key: manifest['binary'][key] for key in ['bytes', 'sha256']},
|
||||||
|
'dllUnchanged': identity(dll) == identity(trial / 'bin/libunwind.dll'),
|
||||||
|
'launchReceiptError': receipt_error}
|
||||||
|
record('closed.json', closure)
|
||||||
|
print(json.dumps(closure), flush=True)
|
||||||
|
sys.exit(0 if code == 0 and receipt_error is None and closure['binaryUnchanged'] and closure['dllUnchanged'] else 1)
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
"""Read-only full saved-model/source and physical-byte comparison after a GUI step."""
|
||||||
|
from datetime import datetime, timezone
|
||||||
|
import hashlib
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
from pathlib import Path
|
||||||
|
import re
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
|
||||||
|
BASE = Path(__file__).resolve().parent
|
||||||
|
ROOT = BASE.parents[1]
|
||||||
|
trial, case, expected, step = sys.argv[1:]
|
||||||
|
if not re.fullmatch(r'trial-text-[0-9]+', trial):
|
||||||
|
raise RuntimeError('Invalid trial')
|
||||||
|
if case not in ['simple', 'representative'] or expected not in ['baseline', 'expected']:
|
||||||
|
raise RuntimeError('Invalid fixture or expectation')
|
||||||
|
if not re.fullmatch(r'[a-z0-9-]+', step):
|
||||||
|
raise RuntimeError('Invalid step')
|
||||||
|
TRIAL = BASE / trial
|
||||||
|
launch = json.loads((TRIAL / 'launch.json').read_text(encoding='utf-8'))
|
||||||
|
|
||||||
|
def sha(path):
|
||||||
|
return hashlib.sha256(path.read_bytes()).hexdigest()
|
||||||
|
|
||||||
|
def inventory(folder):
|
||||||
|
return {p.relative_to(folder).as_posix(): {'sha256': sha(p), 'bytes': p.stat().st_size}
|
||||||
|
for p in sorted(folder.rglob('*')) if p.is_file()}
|
||||||
|
|
||||||
|
def now():
|
||||||
|
return datetime.now(timezone.utc).isoformat()
|
||||||
|
|
||||||
|
manifest_path = BASE / 'fixture-manifest.json'
|
||||||
|
if sha(manifest_path) != 'a25651305b23da985eb6d8c637a687a0c4261b5a8c0d8ef84dda95a51fbed931':
|
||||||
|
raise RuntimeError('Authored fixture manifest changed')
|
||||||
|
manifest = json.loads(manifest_path.read_text(encoding='utf-8'))
|
||||||
|
for label, record in manifest['cases'].items():
|
||||||
|
for variant, key in [('baseline', 'original_files'), ('expected', 'expected_files')]:
|
||||||
|
if inventory(BASE / label / variant) != record[key]:
|
||||||
|
raise RuntimeError('Authored expectation changed')
|
||||||
|
oracle = ROOT / '.local/staged-source-oracle-20260911/staged-source-authoring-contract.exe'
|
||||||
|
dll = BASE / 'runtime/libunwind.dll'
|
||||||
|
if sha(oracle) != manifest['oracle_sha256'] or sha(dll) != manifest['dll_sha256']:
|
||||||
|
raise RuntimeError('Oracle or DLL changed')
|
||||||
|
if sha(Path(launch['executable'])) != launch['binary']['sha256']:
|
||||||
|
raise RuntimeError('Native executable changed')
|
||||||
|
|
||||||
|
destination = TRIAL / ('verification-' + case + '-' + step)
|
||||||
|
destination.mkdir()
|
||||||
|
actual = BASE / case / 'work'
|
||||||
|
before = inventory(actual)
|
||||||
|
expectation = manifest['cases'][case]['original_files' if expected == 'baseline' else 'expected_files']
|
||||||
|
system = os.environ['SystemRoot']
|
||||||
|
env = {'SystemRoot': system, 'SystemDrive': os.environ['SystemDrive'], 'WINDIR': system,
|
||||||
|
'PATH': str(dll.parent) + ';' + system + '\\System32;' + system, 'RUST_BACKTRACE': '0'}
|
||||||
|
command = [str(oracle), 'same', str(BASE / case / expected / 'project.arcadia'), str(actual / 'project.arcadia')]
|
||||||
|
started, timer = now(), time.perf_counter()
|
||||||
|
failure = None
|
||||||
|
code = None
|
||||||
|
with (destination / 'stdout.log').open('xb') as out, (destination / 'stderr.log').open('xb') as err:
|
||||||
|
try:
|
||||||
|
result = subprocess.run(command, cwd=BASE, env=env, stdout=out, stderr=err, timeout=55)
|
||||||
|
code = result.returncode
|
||||||
|
except (subprocess.TimeoutExpired, OSError) as error:
|
||||||
|
failure = {'type': type(error).__name__, 'message': str(error)}
|
||||||
|
after = inventory(actual)
|
||||||
|
receipt = {'startedUtc': started, 'finishedUtc': now(), 'seconds': time.perf_counter() - timer,
|
||||||
|
'command': command, 'environment': env, 'exitCode': code, 'failure': failure,
|
||||||
|
'scope': 'Saved disk state only; does not inspect the live unsaved GUI model.',
|
||||||
|
'binarySha256': launch['binary']['sha256'], 'oracleSha256': sha(oracle), 'dllSha256': sha(dll),
|
||||||
|
'expectedVariant': expected, 'actualFiles': after, 'physicalBytesMatch': before == expectation,
|
||||||
|
'actualUnchangedByOracle': before == after,
|
||||||
|
'stdoutSha256': sha(destination / 'stdout.log'), 'stderrSha256': sha(destination / 'stderr.log')}
|
||||||
|
receipt['passed'] = code == 0 and failure is None and before == expectation and after == before
|
||||||
|
(destination / 'result.json').write_text(json.dumps(receipt, indent=2) + '\n', encoding='utf-8')
|
||||||
|
print(json.dumps({'passed': receipt['passed'], 'receipt': str(destination / 'result.json'),
|
||||||
|
'stdout': (destination / 'stdout.log').read_text(encoding='utf-8', errors='replace')}), flush=True)
|
||||||
|
if not receipt['passed']:
|
||||||
|
raise SystemExit(1)
|
||||||
@@ -0,0 +1,535 @@
|
|||||||
|
{
|
||||||
|
"scope": "Original failed native trial and passing attempt4 gates; runtime binaries remain locally preserved by SHA, no native acceptance.",
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/closed.json",
|
||||||
|
"bytes": 398,
|
||||||
|
"sha256": "a1df27edfe0349bbb596e09fc2907e330eb3f1165646cfe4c5d1b2266b502df1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/launch-manifest.json",
|
||||||
|
"bytes": 7063,
|
||||||
|
"sha256": "b4a1ca67d41bbb17b4e367304b60d23cdd62352dc91c18e63b62379d6ce7da9b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/launch.json",
|
||||||
|
"bytes": 1663,
|
||||||
|
"sha256": "91e989fd914f9a6de564752e62e67778bf9827039bf0895579b2cb753b4c4289"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/001-fresh-home-0.jpg",
|
||||||
|
"bytes": 99102,
|
||||||
|
"sha256": "12880f15d89c0124f3c8ac658c0ba62b8f50631eefc6af163f6543d107f54b60"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/001-fresh-home.json",
|
||||||
|
"bytes": 1048,
|
||||||
|
"sha256": "31becead4c5be2cea0ad79d4624a31b98c0063a69d99f76dff9f85063e719415"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/002-open-dialog-0.jpg",
|
||||||
|
"bytes": 97362,
|
||||||
|
"sha256": "032dacd1c87b6785ebc7b4fad41c1282b1f1ae429110f7bccdfc1ff4a05ed532"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/002-open-dialog.json",
|
||||||
|
"bytes": 1050,
|
||||||
|
"sha256": "bb495a706903733ee667c63612aa57ee8e08df00ce3d7e24915de54399af0498"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/003-native-open-dialog-ready-0.jpg",
|
||||||
|
"bytes": 674,
|
||||||
|
"sha256": "5a2387a1a593a32ea169b56b9a3e59333936ee1da95164564e4d9be61bf5a24b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/003-native-open-dialog-ready-1.jpg",
|
||||||
|
"bytes": 67175,
|
||||||
|
"sha256": "9cd5bb9a97715d990046e6c96584593aa1bedeff8ef71a54ab3b566295acd3a6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/003-native-open-dialog-ready.json",
|
||||||
|
"bytes": 6897,
|
||||||
|
"sha256": "4fe5c3b32551d591f7bc3b13da14214901613723b4a4e460700d9bffee5addd6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/004-representative-path-entered-0.jpg",
|
||||||
|
"bytes": 674,
|
||||||
|
"sha256": "5a2387a1a593a32ea169b56b9a3e59333936ee1da95164564e4d9be61bf5a24b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/004-representative-path-entered-1.jpg",
|
||||||
|
"bytes": 72197,
|
||||||
|
"sha256": "5927c38f7089becfb76f36b677b9f14c4ad6c4a9399a8b485c37f03770bc6ee9"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/004-representative-path-entered.json",
|
||||||
|
"bytes": 6906,
|
||||||
|
"sha256": "3586ed2f6a6d1d080878f5112938c370c6c86ec7f3afc000cad03a53ec781fe0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/005-representative-open-request-0.jpg",
|
||||||
|
"bytes": 99101,
|
||||||
|
"sha256": "9caaca0d6fa38dae3b574d922cc41e42ea5de30a2f780082e40c19779d9502e7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/005-representative-open-request.json",
|
||||||
|
"bytes": 1082,
|
||||||
|
"sha256": "60b5a870006217970effd302ecd5e579a0636a28c22a3b05cb6046fb689781f7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/006-representative-loaded-0.jpg",
|
||||||
|
"bytes": 134092,
|
||||||
|
"sha256": "12588dd83c2321571fd1d09c82e235a927e91522599f37e6c513f122934edd9f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/006-representative-loaded.json",
|
||||||
|
"bytes": 1255,
|
||||||
|
"sha256": "5bf03904b37e01c2b0244e11ac2ac3b791754bb572543f4cb02ed69f46b849fd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/007-text-wide-initial-0.jpg",
|
||||||
|
"bytes": 168850,
|
||||||
|
"sha256": "b6f36cee8374a8aca58d8cadb9b210fc7e3e2f407b57a74a753cafaa64881a0a"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/007-text-wide-initial.json",
|
||||||
|
"bytes": 1247,
|
||||||
|
"sha256": "6a5bad5fca254826287a31174557830500f603867d597cfbfd12ddf6d2bb7b6b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/008-text-minimum-initial-0.jpg",
|
||||||
|
"bytes": 170203,
|
||||||
|
"sha256": "30abc547e567c98806c9534219273e9f61e4729e5ee96ff99fc89eff25fae8e8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/008-text-minimum-initial.json",
|
||||||
|
"bytes": 1253,
|
||||||
|
"sha256": "078fa7a2bf690a05985149474d412e7ce92fb925e17a2299bb773ac784f9a65c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/009-text-actual-minimum-0.jpg",
|
||||||
|
"bytes": 134807,
|
||||||
|
"sha256": "69b9840ac89bc76a1fcbddae90049d068a903d271a5b961e37b3225982a18604"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/009-text-actual-minimum.json",
|
||||||
|
"bytes": 1251,
|
||||||
|
"sha256": "f83a32b6009bd73102308aad2426dee47a181e480750b5ef77a15af4dc462092"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/010-minimum-oa-files-0.jpg",
|
||||||
|
"bytes": 136529,
|
||||||
|
"sha256": "76666b7e3cee54283751c2e8240b7f88a56ab219beaf24fdf10d2a7b45471d28"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/010-minimum-oa-files.json",
|
||||||
|
"bytes": 1245,
|
||||||
|
"sha256": "62f7cf4eec0415f22eb9397d834569f2b90e27c0ebecf33b4c6724b3bddce74a"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/011-minimum-participants-0.jpg",
|
||||||
|
"bytes": 98798,
|
||||||
|
"sha256": "3a93271b5418eb94c3bde5a5d424956ea6a38fa6fcd91cc3f2353828beb0315f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/011-minimum-participants.json",
|
||||||
|
"bytes": 1253,
|
||||||
|
"sha256": "6dc03f3dad8f255f9a3c3a38d21bd474c58a7c6c846da2cd06fbb4aa17f3b470"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/012-control-alias-selected-0.jpg",
|
||||||
|
"bytes": 98794,
|
||||||
|
"sha256": "9344b532ff0038cce400145ca665f4810a0a299a79ad658a1a7a936fa6f25724"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/012-control-alias-selected.json",
|
||||||
|
"bytes": 1257,
|
||||||
|
"sha256": "dc43126f790a1a29e72f76226afad2826e13e57d4d2765b662afbd0aee0554ba"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/013-minimum-reference-query-0.jpg",
|
||||||
|
"bytes": 104528,
|
||||||
|
"sha256": "3bc150e24ea51491267d64c66e6bd38cec486bdb6e7fc550f359b586a3516652"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/013-minimum-reference-query.json",
|
||||||
|
"bytes": 1259,
|
||||||
|
"sha256": "a8981988b1d341c0f982929bc1e2cdde08d70e15f42b96c2553cf09f684cea94"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/014-reference-confirm-allocation-0.jpg",
|
||||||
|
"bytes": 108378,
|
||||||
|
"sha256": "9376695a3b75b40527015516cb9939bb61593152ad60dba87252cf4c8ab1a8bc"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/014-reference-confirm-allocation.json",
|
||||||
|
"bytes": 1269,
|
||||||
|
"sha256": "7c9699341bd0f25601902ad41791381be7fe0815d2a5175400f4acb61fbd7dd6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/015-reference-back-origin-0.jpg",
|
||||||
|
"bytes": 109441,
|
||||||
|
"sha256": "687166c81540601f4a84cd29cb08567b84cb31884192ca9fa15c54e349331abd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/015-reference-back-origin.json",
|
||||||
|
"bytes": 1255,
|
||||||
|
"sha256": "34266f3d08e2a6e2c277ff629f0c42ae0c00251d8d04306247d4d9c2c7aa5245"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/016-drawer-larger-0.jpg",
|
||||||
|
"bytes": 110912,
|
||||||
|
"sha256": "d3fa2a03e4e5b7206d104ea9ad68ad9cada7de7c662a6979898d5e6f7d2ab284"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/016-drawer-larger.json",
|
||||||
|
"bytes": 1239,
|
||||||
|
"sha256": "fc28f5c3820a3bb0b06297ac105864ebd36f37c45bdeec9b6c03059aeee92eac"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/017-drawer-smaller-0.jpg",
|
||||||
|
"bytes": 104569,
|
||||||
|
"sha256": "6ba110b23a6c149e69477ae863c54756bc1213db9662b64762f1782ad9d2f7ff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/017-drawer-smaller.json",
|
||||||
|
"bytes": 1241,
|
||||||
|
"sha256": "fda3501d57aade5908a43e2f634d4d2b8119235e2825d85bea4ff9c35c0e6ad0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/018-drawer-keyboard-larger-0.jpg",
|
||||||
|
"bytes": 111089,
|
||||||
|
"sha256": "edeefc7d0355120f76bdbb4ec800eaf9179fab7871bd5ca804bda473772a6ae6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/018-drawer-keyboard-larger.json",
|
||||||
|
"bytes": 1257,
|
||||||
|
"sha256": "d341351df357fa52fe231c27ebee8b8b53df11d90ae7a6992b29456eebfdbbdd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/019-drawer-keyboard-smaller-0.jpg",
|
||||||
|
"bytes": 104573,
|
||||||
|
"sha256": "f542ce37675dd5b3c3c726dc363117b1718f2867870fc11d28a8f45471153a09"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/019-drawer-keyboard-smaller.json",
|
||||||
|
"bytes": 1259,
|
||||||
|
"sha256": "2416d36cda729bba15e16e7257ea4a742dde5aebc8f23589fd6b9c3edad80d5d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/020-editor-scrolled-with-results-0.jpg",
|
||||||
|
"bytes": 103839,
|
||||||
|
"sha256": "5259abcd680cd52d773d5acc22f04f4c55b9162651801362e56ce2d701968017"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/020-editor-scrolled-with-results.json",
|
||||||
|
"bytes": 1269,
|
||||||
|
"sha256": "bb0905a308dbb02dfdf10d54303c6354e30788120a76cae7dbf2f8f8174dfde8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/021-scrolled-contact-selection-0.jpg",
|
||||||
|
"bytes": 103751,
|
||||||
|
"sha256": "5fa285c0bbdf1b6a949f6bc500e5a824928991726dff96098dfa2c2992ef006c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/021-scrolled-contact-selection.json",
|
||||||
|
"bytes": 1265,
|
||||||
|
"sha256": "214bf3a06fc31308c037a9137e91675793256da11d383fe4f60b3b273fed111d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/022-find-open-scrolled-selection-0.jpg",
|
||||||
|
"bytes": 107862,
|
||||||
|
"sha256": "01c6a4bbc022dea6708b19a10a655992b0a47e577dfdf0e674c43f8e6e2f8ab6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/022-find-open-scrolled-selection.json",
|
||||||
|
"bytes": 1269,
|
||||||
|
"sha256": "ed94edce130cf66e99e214a0331bf0b778990b690b7ef33d515ac1bb8d236199"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/023-find-close-restored-scrolled-selection-0.jpg",
|
||||||
|
"bytes": 103856,
|
||||||
|
"sha256": "820d0b0607f8b3e85bb2176c628b34f90738dd5766aff34206143c3801d0a6cd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/023-find-close-restored-scrolled-selection.json",
|
||||||
|
"bytes": 1289,
|
||||||
|
"sha256": "32ba7ec28f1f8fdef7c6f2150b5aba1ccf0c2c82cf86b32e25f0afc3d84f27b4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/024-edit-after-find-close-0.jpg",
|
||||||
|
"bytes": 99706,
|
||||||
|
"sha256": "2926e48c7b2aad9b6df09d28d7fbdb8dac2bd84633e1187613cd080b840fe71b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/024-edit-after-find-close.json",
|
||||||
|
"bytes": 1265,
|
||||||
|
"sha256": "bcc163db906039bbfb0657652ee385ba5cad9b472ea63ef3c7abbe27b2b8ba0d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/025-undo-after-find-selection-probe-0.jpg",
|
||||||
|
"bytes": 103973,
|
||||||
|
"sha256": "cb75d01b0c5066d17576a46739534111d59c9734f382dfcdb3957afbb81defa6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/025-undo-after-find-selection-probe.json",
|
||||||
|
"bytes": 1275,
|
||||||
|
"sha256": "26b6cddca70085084be2b38da5e95feace5aab3ee73eaf8999a615686d336068"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/026-direct-edit-control-selection-0.jpg",
|
||||||
|
"bytes": 103805,
|
||||||
|
"sha256": "025d9a89ab49c0512ecc147237e0d0934493ee3f44fac2f1b270a2d02e60182f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/026-direct-edit-control-selection.json",
|
||||||
|
"bytes": 1271,
|
||||||
|
"sha256": "5d4675860462e8bbaa2d4f22396391a9fcec2353e533e7c42655f8dfe8949573"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/027-direct-edit-control-result-0.jpg",
|
||||||
|
"bytes": 104438,
|
||||||
|
"sha256": "d0bcd2af2ac345cdeb38e0f2668f224ccd219e43ca0d9327e0a589a1dd021ef3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/027-direct-edit-control-result.json",
|
||||||
|
"bytes": 1275,
|
||||||
|
"sha256": "53833b7fe55099faa01cac6e118814f2a4786ef48f6e531fe53c7971bec0acce"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/028-undo-direct-control-baseline-0.jpg",
|
||||||
|
"bytes": 103776,
|
||||||
|
"sha256": "5922ec1eb5f3e333a994dbba20c8a206e3382fa355f5cdd9775ee52abde85985"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/screenshots/028-undo-direct-control-baseline.json",
|
||||||
|
"bytes": 1269,
|
||||||
|
"sha256": "5ecdba3cba320c7542baae2e04b21e6ac34e791eebeda2e32b7c69bcbdcc378b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/stderr.log",
|
||||||
|
"bytes": 0,
|
||||||
|
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/stdout.log",
|
||||||
|
"bytes": 0,
|
||||||
|
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/verification-representative-selection-probes-closed/result.json",
|
||||||
|
"bytes": 7378,
|
||||||
|
"sha256": "257c67421d0efd459ec13aa9ee2ce017e904a1486f8db338ea9ac29cbc351907"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/verification-representative-selection-probes-closed/stderr.log",
|
||||||
|
"bytes": 0,
|
||||||
|
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "trial-text-1/verification-representative-selection-probes-closed/stdout.log",
|
||||||
|
"bytes": 88,
|
||||||
|
"sha256": "61b58865f8e6253e9fff5bfe7d7a812a3ea455df84edd503323b3741b36dadba"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-3/clippy-result.json",
|
||||||
|
"bytes": 515,
|
||||||
|
"sha256": "b34c12f07212442579c5772117ebdfbd1f438d9876e379bf3ef1df50c7f861e6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-3/clippy-stderr.log",
|
||||||
|
"bytes": 130,
|
||||||
|
"sha256": "1528c8ddc7b7275a08f859d245b31b33e151e5ab2619f7258c815e51ec33144c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-3/clippy-stdout.log",
|
||||||
|
"bytes": 0,
|
||||||
|
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-3/environment.json",
|
||||||
|
"bytes": 812,
|
||||||
|
"sha256": "f143978a228f5d3be1c8d6bf0240c971b1de191df313b4d553151b0a320f4c1b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-3/inputs.json",
|
||||||
|
"bytes": 97606,
|
||||||
|
"sha256": "0dba59284f272c2408b04b944f84c2d16c39ca0d507673beade78b4e995bf924"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-3/inputs.zip",
|
||||||
|
"bytes": 2183803,
|
||||||
|
"sha256": "43c0d4b973ffebaed5f13d991bebfae8a24f9f9cf63f2ee36e08a0204a8db93f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-3/membership-result.json",
|
||||||
|
"bytes": 1574,
|
||||||
|
"sha256": "3e0559a2d4d9826d7305fb5183945845d74abb2b424d388c7704b8210be4f985"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-3/membership-stderr.log",
|
||||||
|
"bytes": 411,
|
||||||
|
"sha256": "e760e45395cb4f5c0f101d8edddcc9ec1040d792fe8de6baf5dc58e3c40bf98b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-3/membership-stdout.log",
|
||||||
|
"bytes": 90966,
|
||||||
|
"sha256": "45a54d47fdd9a87fd6d55e13a6f0ee4f19f4253e099a6efa367704d50d77cf76"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-3/tests-result.json",
|
||||||
|
"bytes": 527,
|
||||||
|
"sha256": "33e4f57221f073bb6ce3c296a59855545a4838a7c1ed23958bc86fb1e0b9e6a2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-3/tests-stderr.log",
|
||||||
|
"bytes": 281,
|
||||||
|
"sha256": "b01b054ef4d002426be823d05362d121ae494bcad224a4d457aba266f013ff8a"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-3/tests-stdout.log",
|
||||||
|
"bytes": 97137,
|
||||||
|
"sha256": "6fdccf0a6c302f9b04ff6a64d38eb9cbc010d56f978349086055937c6e86333f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-4/clippy-result.json",
|
||||||
|
"bytes": 513,
|
||||||
|
"sha256": "95fb9e2cf232c828b29d943f8c7abd0d841c88c116454ba0210bac22c195562b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-4/clippy-stderr.log",
|
||||||
|
"bytes": 130,
|
||||||
|
"sha256": "a70ed5d4d8190ebfd2181690bed4c5ae67c8f17f57c357299da9fa4848aa2940"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-4/clippy-stdout.log",
|
||||||
|
"bytes": 0,
|
||||||
|
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-4/complete.json",
|
||||||
|
"bytes": 256,
|
||||||
|
"sha256": "268f46d4b072c039bafaed211eb311a36f55fdae3f26976b62e2827262417690"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-4/environment.json",
|
||||||
|
"bytes": 812,
|
||||||
|
"sha256": "2ae98030165872a5e46ea6ca24732b5c9b7568f30fdfdb95a8ddd2b54969a512"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-4/focused-result.json",
|
||||||
|
"bytes": 565,
|
||||||
|
"sha256": "33393d1b3b17edb7e5e808b34bd20ab1faf842571a14b5f175aa7ab09444022a"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-4/focused-stderr.log",
|
||||||
|
"bytes": 210,
|
||||||
|
"sha256": "8442ab6f086cd3bb91ffd65b426ccdcc1d64447ab51da47770be20e6cdcadb36"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-4/focused-stdout.log",
|
||||||
|
"bytes": 4079,
|
||||||
|
"sha256": "5235fac71aa2019ab00e65c44ef913bfbca5c31e3408ec9bac03d8d40c746ca9"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-4/gui-result.json",
|
||||||
|
"bytes": 1904,
|
||||||
|
"sha256": "9f98aa0b0a363b38aad811f3d5068e1f74e7890a30ebaf4c45d7d2c50c8a8ef8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-4/gui-stderr.log",
|
||||||
|
"bytes": 193,
|
||||||
|
"sha256": "c576662b0b760d89d5d7a05b44ef6bee34d30bd51ccbf96bc648ae92bb43f859"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-4/gui-stdout.log",
|
||||||
|
"bytes": 282224,
|
||||||
|
"sha256": "eaac6d2f4d1c9be7f05565c971507684b478fd1cc10d5b493e8649df8286dd60"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-4/inputs.json",
|
||||||
|
"bytes": 97811,
|
||||||
|
"sha256": "83ec5a331d807767ee34441ad49e30cc5a5990c79432f664ce044eb869016875"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-4/inputs.zip",
|
||||||
|
"bytes": 2187961,
|
||||||
|
"sha256": "e1e566295bbbd6c1d571f7c8908b7344397293496481790f0f8dacab7eba5366"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-4/membership-result.json",
|
||||||
|
"bytes": 1810,
|
||||||
|
"sha256": "7e661272bc558c3dc24ec663654e74b0234d287f2bc61ef10ca5a9d78371070b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-4/membership-stderr.log",
|
||||||
|
"bytes": 280,
|
||||||
|
"sha256": "a8db625d670cd4dce500735df31815f01e3089d9d84a949fd2bf6a3aecb1b3d0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-4/membership-stdout.log",
|
||||||
|
"bytes": 91195,
|
||||||
|
"sha256": "a309cb73becffea6de10375deac7a9e30fc7c3d7a125aa10f30b5cd06b007cdd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-4/tests-result.json",
|
||||||
|
"bytes": 525,
|
||||||
|
"sha256": "6d0aba6750748d6b85d4ac4b4d4b15803c88f7e17f2e35857ba21a2f7a3483f1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-4/tests-stderr.log",
|
||||||
|
"bytes": 210,
|
||||||
|
"sha256": "4bc3b596e2cb08b0af0a4bcdeae80135ce14b0b9046215b4c2ccfeafe1d2317a"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-4/tests-stdout.log",
|
||||||
|
"bytes": 96788,
|
||||||
|
"sha256": "49b6da231b96fcc5dfa0bd8ed2e4d105045c1efa6b8d198bd4350f1ee8e28818"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-4/timing-result.json",
|
||||||
|
"bytes": 659,
|
||||||
|
"sha256": "c101b38024d6707be56588a8a90283fd952206c3f39188f6ee94eb40193a4158"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-4/timing-stderr.log",
|
||||||
|
"bytes": 210,
|
||||||
|
"sha256": "041742f3b57dd07321bea988d47f853785d4f4679c0e9e9076cc605904a5d67e"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "attempt-4/timing-stdout.log",
|
||||||
|
"bytes": 7226,
|
||||||
|
"sha256": "5ae357431fa8d99f76e193aa08f1192fb7ed99d8c3667966ce97790eca8d98fe"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "helpers/fixture-manifest.json",
|
||||||
|
"bytes": 16594,
|
||||||
|
"sha256": "a25651305b23da985eb6d8c637a687a0c4261b5a8c0d8ef84dda95a51fbed931"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "helpers/launch.py",
|
||||||
|
"bytes": 3911,
|
||||||
|
"sha256": "8f56bfb4c87cf96203cd8848a726da3a3bc88acf8f3c27b2b44bd364a3e7893d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "helpers/verify_saved.py",
|
||||||
|
"bytes": 4124,
|
||||||
|
"sha256": "45447a842e4e3b64cfcb8d7f2dff4a725fb917775ef09dbf4ba534cd25a14434"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "helpers/bind_gates.py",
|
||||||
|
"bytes": 4113,
|
||||||
|
"sha256": "bba92ead0f3c54e459f5c876308498f84bc443a1a66c53bb8f9c0402b47b4e10"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "helpers/gate.py",
|
||||||
|
"bytes": 7125,
|
||||||
|
"sha256": "c9d11e9a2791aa9588fe959da9442686a8fd60e5b714cf43da0b793834809972"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "helpers/archive_initial.py",
|
||||||
|
"bytes": 1954,
|
||||||
|
"sha256": "68e8af9f12fb513287e9687529c22bed50ac17769cadb65061ecf44f4957d998"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"finished": "2026-09-13T02:55:30.057373+00:00",
|
||||||
|
"pid": 2272,
|
||||||
|
"exitCode": 0,
|
||||||
|
"stdout": {
|
||||||
|
"bytes": 0,
|
||||||
|
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||||
|
},
|
||||||
|
"stderr": {
|
||||||
|
"bytes": 0,
|
||||||
|
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||||
|
},
|
||||||
|
"binaryUnchanged": true,
|
||||||
|
"dllUnchanged": true,
|
||||||
|
"launchReceiptError": null
|
||||||
|
}
|
||||||
+148
@@ -0,0 +1,148 @@
|
|||||||
|
{
|
||||||
|
"atUtc": "2026-09-13T02:37:51.659949+00:00",
|
||||||
|
"nativeReady": true,
|
||||||
|
"scope": "Completed Windows source gates authorize development GUI evaluation; native and packaged acceptance remain pending.",
|
||||||
|
"target": "x86_64-pc-windows-gnullvm",
|
||||||
|
"baseCommit": "cbc49a7802fb1bba0dd284fd904c700a0703ae70",
|
||||||
|
"sourceFiles": 524,
|
||||||
|
"sourceArchiveSha256": "e1e566295bbbd6c1d571f7c8908b7344397293496481790f0f8dacab7eba5366",
|
||||||
|
"membership": {
|
||||||
|
"listed": 859,
|
||||||
|
"required": [
|
||||||
|
"app::source_symbols::tests::retained_choices_cannot_replay_after_hide_or_references_problems_references",
|
||||||
|
"app::text_workspace::lifecycle_tests::invalid_repair_open_clears_prior_presentation_and_publishes_current_problems_preserving_worker",
|
||||||
|
"app::text_workspace::lifecycle_tests::saved_new_destination_republishes_current_warning_and_refuses_old_primary_and_related",
|
||||||
|
"app::text_workspace::tests::document_reset_preserves_popup_token_sequence_and_drops_old_menu_authority",
|
||||||
|
"app::text_workspace::tests::queued_group_toggle_cannot_mutate_a_reopened_or_rotated_visit",
|
||||||
|
"app::text_workspace::tests::stale_retained_group_can_expand_without_navigating_or_applying_drafts",
|
||||||
|
"diagnostic_input::tests::same_publication_new_visit_cancels_armed_rows_without_a_hidden_tree_frame",
|
||||||
|
"views::text_workspace::summary_visibility_tests::all_reference_exceptions_fit_allocated_width_with_wide_alias_and_large_counts",
|
||||||
|
"views::text_workspace::tests::drawer_clamps_to_actual_center_allocation_including_oversize_requests",
|
||||||
|
"views::text_workspace::tests::highlighted_sensor_editor_retains_real_scrolled_buffer_across_panel_rebuilds"
|
||||||
|
],
|
||||||
|
"missing": [],
|
||||||
|
"diagnosticGuardCount": 20
|
||||||
|
},
|
||||||
|
"binary": {
|
||||||
|
"path": "C:\\ar-text-9e8r6t\\.local\\text-workspace-gates-20260912\\attempt-4\\arcadia-studio.exe",
|
||||||
|
"bytes": 114164224,
|
||||||
|
"sha256": "666afa8747588bbd4e4d8e4059f443dedda1fc42244d467df8d953085707e796"
|
||||||
|
},
|
||||||
|
"evidence": [
|
||||||
|
{
|
||||||
|
"path": "C:\\ar-text-9e8r6t\\.local\\text-workspace-gates-20260912\\attempt-4\\inputs.json",
|
||||||
|
"bytes": 97811,
|
||||||
|
"sha256": "83ec5a331d807767ee34441ad49e30cc5a5990c79432f664ce044eb869016875"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "C:\\ar-text-9e8r6t\\.local\\text-workspace-gates-20260912\\attempt-4\\inputs.zip",
|
||||||
|
"bytes": 2187961,
|
||||||
|
"sha256": "e1e566295bbbd6c1d571f7c8908b7344397293496481790f0f8dacab7eba5366"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "C:\\ar-text-9e8r6t\\.local\\text-workspace-gates-20260912\\attempt-4\\environment.json",
|
||||||
|
"bytes": 812,
|
||||||
|
"sha256": "2ae98030165872a5e46ea6ca24732b5c9b7568f30fdfdb95a8ddd2b54969a512"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "C:\\ar-text-9e8r6t\\.local\\text-workspace-gates-20260912\\attempt-4\\complete.json",
|
||||||
|
"bytes": 256,
|
||||||
|
"sha256": "268f46d4b072c039bafaed211eb311a36f55fdae3f26976b62e2827262417690"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "C:\\ar-text-9e8r6t\\.local\\text-workspace-gates-20260912\\attempt-4\\clippy-stdout.log",
|
||||||
|
"bytes": 0,
|
||||||
|
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "C:\\ar-text-9e8r6t\\.local\\text-workspace-gates-20260912\\attempt-4\\clippy-stderr.log",
|
||||||
|
"bytes": 130,
|
||||||
|
"sha256": "a70ed5d4d8190ebfd2181690bed4c5ae67c8f17f57c357299da9fa4848aa2940"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "C:\\ar-text-9e8r6t\\.local\\text-workspace-gates-20260912\\attempt-4\\clippy-result.json",
|
||||||
|
"bytes": 513,
|
||||||
|
"sha256": "95fb9e2cf232c828b29d943f8c7abd0d841c88c116454ba0210bac22c195562b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "C:\\ar-text-9e8r6t\\.local\\text-workspace-gates-20260912\\attempt-4\\membership-stdout.log",
|
||||||
|
"bytes": 91195,
|
||||||
|
"sha256": "a309cb73becffea6de10375deac7a9e30fc7c3d7a125aa10f30b5cd06b007cdd"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "C:\\ar-text-9e8r6t\\.local\\text-workspace-gates-20260912\\attempt-4\\membership-stderr.log",
|
||||||
|
"bytes": 280,
|
||||||
|
"sha256": "a8db625d670cd4dce500735df31815f01e3089d9d84a949fd2bf6a3aecb1b3d0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "C:\\ar-text-9e8r6t\\.local\\text-workspace-gates-20260912\\attempt-4\\membership-result.json",
|
||||||
|
"bytes": 1810,
|
||||||
|
"sha256": "7e661272bc558c3dc24ec663654e74b0234d287f2bc61ef10ca5a9d78371070b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "C:\\ar-text-9e8r6t\\.local\\text-workspace-gates-20260912\\attempt-4\\focused-stdout.log",
|
||||||
|
"bytes": 4079,
|
||||||
|
"sha256": "5235fac71aa2019ab00e65c44ef913bfbca5c31e3408ec9bac03d8d40c746ca9"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "C:\\ar-text-9e8r6t\\.local\\text-workspace-gates-20260912\\attempt-4\\focused-stderr.log",
|
||||||
|
"bytes": 210,
|
||||||
|
"sha256": "8442ab6f086cd3bb91ffd65b426ccdcc1d64447ab51da47770be20e6cdcadb36"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "C:\\ar-text-9e8r6t\\.local\\text-workspace-gates-20260912\\attempt-4\\focused-result.json",
|
||||||
|
"bytes": 565,
|
||||||
|
"sha256": "33393d1b3b17edb7e5e808b34bd20ab1faf842571a14b5f175aa7ab09444022a"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "C:\\ar-text-9e8r6t\\.local\\text-workspace-gates-20260912\\attempt-4\\tests-stdout.log",
|
||||||
|
"bytes": 96788,
|
||||||
|
"sha256": "49b6da231b96fcc5dfa0bd8ed2e4d105045c1efa6b8d198bd4350f1ee8e28818"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "C:\\ar-text-9e8r6t\\.local\\text-workspace-gates-20260912\\attempt-4\\tests-stderr.log",
|
||||||
|
"bytes": 210,
|
||||||
|
"sha256": "4bc3b596e2cb08b0af0a4bcdeae80135ce14b0b9046215b4c2ccfeafe1d2317a"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "C:\\ar-text-9e8r6t\\.local\\text-workspace-gates-20260912\\attempt-4\\tests-result.json",
|
||||||
|
"bytes": 525,
|
||||||
|
"sha256": "6d0aba6750748d6b85d4ac4b4d4b15803c88f7e17f2e35857ba21a2f7a3483f1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "C:\\ar-text-9e8r6t\\.local\\text-workspace-gates-20260912\\attempt-4\\timing-stdout.log",
|
||||||
|
"bytes": 7226,
|
||||||
|
"sha256": "5ae357431fa8d99f76e193aa08f1192fb7ed99d8c3667966ce97790eca8d98fe"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "C:\\ar-text-9e8r6t\\.local\\text-workspace-gates-20260912\\attempt-4\\timing-stderr.log",
|
||||||
|
"bytes": 210,
|
||||||
|
"sha256": "041742f3b57dd07321bea988d47f853785d4f4679c0e9e9076cc605904a5d67e"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "C:\\ar-text-9e8r6t\\.local\\text-workspace-gates-20260912\\attempt-4\\timing-result.json",
|
||||||
|
"bytes": 659,
|
||||||
|
"sha256": "c101b38024d6707be56588a8a90283fd952206c3f39188f6ee94eb40193a4158"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "C:\\ar-text-9e8r6t\\.local\\text-workspace-gates-20260912\\attempt-4\\gui-stdout.log",
|
||||||
|
"bytes": 282224,
|
||||||
|
"sha256": "eaac6d2f4d1c9be7f05565c971507684b478fd1cc10d5b493e8649df8286dd60"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "C:\\ar-text-9e8r6t\\.local\\text-workspace-gates-20260912\\attempt-4\\gui-stderr.log",
|
||||||
|
"bytes": 193,
|
||||||
|
"sha256": "c576662b0b760d89d5d7a05b44ef6bee34d30bd51ccbf96bc648ae92bb43f859"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "C:\\ar-text-9e8r6t\\.local\\text-workspace-gates-20260912\\attempt-4\\gui-result.json",
|
||||||
|
"bytes": 1904,
|
||||||
|
"sha256": "9f98aa0b0a363b38aad811f3d5068e1f74e7890a30ebaf4c45d7d2c50c8a8ef8"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"helper": {
|
||||||
|
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\text-workspace-native-20260912\\bind_gates.py",
|
||||||
|
"bytes": 4113,
|
||||||
|
"sha256": "bba92ead0f3c54e459f5c876308498f84bc443a1a66c53bb8f9c0402b47b4e10"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"started": "2026-09-13T02:38:06.847206+00:00",
|
||||||
|
"pid": 2272,
|
||||||
|
"executable": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\text-workspace-native-20260912\\trial-text-1\\bin\\arcadia-studio.exe",
|
||||||
|
"binary": {
|
||||||
|
"bytes": 114164224,
|
||||||
|
"sha256": "666afa8747588bbd4e4d8e4059f443dedda1fc42244d467df8d953085707e796"
|
||||||
|
},
|
||||||
|
"environment": {
|
||||||
|
"SystemRoot": "C:\\Windows",
|
||||||
|
"SystemDrive": "C:",
|
||||||
|
"ProgramData": "C:\\ProgramData",
|
||||||
|
"ALLUSERSPROFILE": "C:\\ProgramData",
|
||||||
|
"PUBLIC": "C:\\Users\\Public",
|
||||||
|
"WINDIR": "C:\\Windows",
|
||||||
|
"PATH": "C:\\Windows\\System32;C:\\Windows",
|
||||||
|
"USERPROFILE": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\text-workspace-native-20260912\\trial-text-1\\profile",
|
||||||
|
"APPDATA": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\text-workspace-native-20260912\\trial-text-1\\profile\\roaming",
|
||||||
|
"LOCALAPPDATA": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\text-workspace-native-20260912\\trial-text-1\\profile\\local",
|
||||||
|
"TEMP": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\text-workspace-native-20260912\\trial-text-1\\tmp",
|
||||||
|
"TMP": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\text-workspace-native-20260912\\trial-text-1\\tmp"
|
||||||
|
},
|
||||||
|
"cwd": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\text-workspace-native-20260912\\trial-text-1\\cwd",
|
||||||
|
"manifestSha256": "b4a1ca67d41bbb17b4e367304b60d23cdd62352dc91c18e63b62379d6ce7da9b",
|
||||||
|
"helper": {
|
||||||
|
"bytes": 3911,
|
||||||
|
"sha256": "8f56bfb4c87cf96203cd8848a726da3a3bc88acf8f3c27b2b44bd364a3e7893d"
|
||||||
|
},
|
||||||
|
"scope": "Development GUI launch, not packaged release acceptance."
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user