Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f5b4316c4b | ||
|
|
eea610eaf9 | ||
|
|
cb1c69ea7a | ||
|
|
c4507b4d5b | ||
|
|
34ca0118c1 | ||
|
|
d5650309a9 |
@@ -65,26 +65,16 @@ harness/experiments/contextual-source-machine-v2-20260911/**/*.arcadia whitespac
|
|||||||
harness/experiments/contextual-source-reopen-20260911/launch-method.ps1 whitespace=-blank-at-eof,cr-at-eol
|
harness/experiments/contextual-source-reopen-20260911/launch-method.ps1 whitespace=-blank-at-eof,cr-at-eol
|
||||||
# Raw compact.exe output includes CR-CR-LF and incidental trailing spaces.
|
# Raw compact.exe output includes CR-CR-LF and incidental trailing spaces.
|
||||||
harness/experiments/wsl-capacity-20260911/*.log -whitespace
|
harness/experiments/wsl-capacity-20260911/*.log -whitespace
|
||||||
harness/experiments/contextual-prerelease-20260911/** -text whitespace=cr-at-eol
|
|
||||||
harness/experiments/contextual-prerelease-publication-20260911/** -text whitespace=cr-at-eol
|
|
||||||
harness/history/2026-09-11-state-before-gitea-migration/** -text whitespace=cr-at-eol
|
|
||||||
harness/experiments/contextual-prerelease-20260911/native/**/*.arcadia whitespace=-blank-at-eol,-blank-at-eof,cr-at-eol
|
|
||||||
harness/experiments/contextual-prerelease-20260911/producer/package*.log whitespace=-blank-at-eof,cr-at-eol
|
|
||||||
harness/experiments/contextual-prerelease-20260911/producer/source-push.log -whitespace
|
|
||||||
|
|
||||||
# Exact frozen navigation GUI input bytes; historical server source is separate.
|
# Preserve exact frozen GUI5657 contextual milestone input bytes.
|
||||||
crates/oa-desktop/src/behavior/creation.rs -text
|
crates/oa-desktop/src/behavior/creation.rs -text
|
||||||
crates/oa-desktop/src/behavior/scenario/workspace.rs -text
|
crates/oa-desktop/src/behavior/scenario/workspace.rs -text
|
||||||
crates/oa-desktop/src/behavior/topology/contextual.rs -text
|
crates/oa-desktop/src/behavior/topology/contextual.rs -text
|
||||||
crates/oa-desktop/src/guide.rs -text
|
crates/oa-desktop/src/guide.rs -text
|
||||||
crates/oa-desktop/src/semantic_review/artifacts_view.rs -text
|
crates/oa-desktop/src/semantic_review/artifacts_view.rs -text
|
||||||
crates/oa-desktop/src/semantic_review/attachments_view.rs -text
|
crates/oa-desktop/src/semantic_review/attachments_view.rs -text
|
||||||
crates/oa-desktop/src/semantic_review/keyed.rs -text
|
|
||||||
crates/oa-desktop/src/semantic_review/keyed_rows.rs -text
|
crates/oa-desktop/src/semantic_review/keyed_rows.rs -text
|
||||||
crates/oa-desktop/src/semantic_review/keyed_tests.rs -text
|
crates/oa-desktop/src/semantic_review/keyed_tests.rs -text
|
||||||
|
crates/oa-desktop/src/semantic_review/keyed.rs -text
|
||||||
crates/oa-desktop/src/semantic_review/ordered.rs -text
|
crates/oa-desktop/src/semantic_review/ordered.rs -text
|
||||||
docs/api.html -text
|
|
||||||
docs/api.rst -text
|
|
||||||
docs/language.html -text
|
|
||||||
docs/openapi.json -text
|
docs/openapi.json -text
|
||||||
harness/fixtures/rest-coverage/coverage-probe.json -text
|
|
||||||
|
|||||||
@@ -35,20 +35,28 @@ Use Gitea for live coordination and the relevant code version for implementation
|
|||||||
|
|
||||||
## Coordination and integration
|
## Coordination and integration
|
||||||
|
|
||||||
|
All independent agents coordinating through Gitea run on completely separate machines, each with its own clone, filesystem, tools, processes, and runtime. Gitea and pushed Git history are the shared communication and delivery channels. Local files (including `harness`), unpushed commits, worktrees, test results, and localhost services are not accessible to peers. Matching branch names or paths do not imply synchronized contents.
|
||||||
|
|
||||||
1. On starting or resuming, including after compaction, inspect the working branch, local changes, applicable instructions, relevant shared records, and existing implementation. Recover context from authoritative records. Check for newer shared instructions on the actual remote default branch without overwriting local work. Read what is relevant; avoid repeated full-history scans and constant polling.
|
1. On starting or resuming, including after compaction, inspect the working branch, local changes, applicable instructions, relevant shared records, and existing implementation. Recover context from authoritative records. Check for newer shared instructions on the actual remote default branch without overwriting local work. Read what is relevant; avoid repeated full-history scans and constant polling.
|
||||||
2. Search before creating tasks. Claim a meaningful outcome in its Gitea issue with a stable session identity, scope, branch/worktree, and acceptance criteria. Keep small steps within that task. Recheck after claiming; comments are not atomic locks. Respect existing ownership and resolve overlapping claims before overlapping work.
|
2. Search before creating tasks. Claim a meaningful outcome in its Gitea issue with a stable session identity, scope, remote repository/branch, and acceptance criteria. Keep small steps within that task. Recheck after claiming; comments are not atomic locks. Respect existing ownership and resolve overlapping claims before overlapping work.
|
||||||
3. Independent sessions are peers. Each owns its contribution and delegated work. Record one integration/release owner when a milestone needs shared coordination. Use separate worktrees or checkouts, partition files/interfaces, and coordinate changes to shared specifications and documents.
|
3. Independent sessions are peers. Each owns its contribution and delegated work on its own machine. Record one integration/release owner when a milestone needs shared coordination. Use distinct remote work branches, partition files/interfaces, and coordinate changes to shared specifications and documents. Worktrees provide local isolation only; they do not share work between machines.
|
||||||
4. At meaningful checkpoints or handoffs, record changed results, commit/PR links, verification commands and environment, blockers, and next actions. Identify the tested code version and uncommitted or unpublished work; make required artifacts accessible to other sessions. Do not assume another agent is running or has read a message; silence alone does not establish abandonment. Record evidence and preserve existing work when reassigning a task.
|
4. At meaningful checkpoints or handoffs, record changed results, commit/PR links, verification commands and environment, blockers, and next actions. Identify the tested code version and label uncommitted or unpublished work as local-only. Before asking peers to consume results, push the required code and versioned documentation, including relevant `harness` updates; publish other required artifacts in Gitea and link them. Use repository-relative paths with commit references, reproducible commands, and necessary environment details; local paths and localhost URLs alone are not handoffs. Do not assume another agent is running or has read a message; silence alone does not establish abandonment. Record evidence and preserve existing work when reassigning a task.
|
||||||
5. Follow project review and merge conventions. Inspect upstream changes, resolve conflicts while preserving others' edits, and verify the combined result. Do not overwrite others' work or force-push shared history to resolve coordination problems.
|
5. Follow project review and merge conventions. Fetch the relevant remote branches and inspect the identified commits before reviewing or integrating another machine's work. Resolve conflicts while preserving others' edits, and verify the combined result locally; report material environment differences. Local instruction-file edits reach peers only after publication and retrieval. Do not overwrite others' work or force-push shared history to resolve coordination problems.
|
||||||
6. Close work when its acceptance criteria are met and the result is integrated or delivered as appropriate. Mark duplicates and superseded tasks explicitly with replacement links. Then choose further useful unowned work while the requested objective remains incomplete.
|
6. Close work when its acceptance criteria are met and the result is integrated or delivered as appropriate. Mark duplicates and superseded tasks explicitly with replacement links. Then choose further useful unowned work while the requested objective remains incomplete.
|
||||||
|
|
||||||
Use Gitea MCP for shared coordination. If unavailable, report the failure, buffer necessary handoff information locally, and continue already-owned or clearly non-overlapping work. Reconcile with current Gitea state when access returns; do not claim an ownership update, review, or publication succeeded without confirmation.
|
Use Gitea MCP for shared coordination. If unavailable, report the failure, buffer necessary handoff information locally, and continue already-owned or clearly non-overlapping work. Reconcile with current Gitea state when access returns; do not claim an ownership update, review, or publication succeeded without confirmation.
|
||||||
|
|
||||||
## Delegation and reasoning
|
## Delegation and reasoning
|
||||||
|
|
||||||
Use GPT-6 Astra exclusively. Delegate bounded independent research, design, implementation, or review when it improves progress, judgment, or preserves the parent's context. Give subagents the relevant context, ownership boundaries, result format, and evidence requirements. Use fresh critics when practical. The parent owns synthesis and integration and normally consolidates results into Gitea. Choose concurrency according to useful independent work and available resources, including other sessions; there is no agent-count quota.
|
Use GPT-6 Astra exclusively. Gitea peers are independent remote sessions, not subagents controlled by this session. Spawned subagents use the execution environment actually provided by the agent tools; do not assume they share files, and publish their results before Gitea peers need them. Delegate bounded independent research, design, implementation, or review when it improves progress, judgment, or preserves the parent's context. Give subagents the relevant context, ownership boundaries, result format, and evidence requirements. Use fresh critics when practical. The parent owns synthesis and integration and normally consolidates results into Gitea. Choose concurrency according to useful independent work and available resources, including other sessions; there is no agent-count quota.
|
||||||
|
|
||||||
Use the highest available reasoning effort for orchestration and foundational semantic, methodological, formal, or cross-domain decisions. For subagents, use extra-high for difficult design, adversarial review, or unusually hard implementation; high for normal implementation, targeted research, correctness review, debugging, and runtime evaluation; medium for routine exploration, mechanical changes, builds, and tests; and lower for trivial work. Allocate by difficulty, not length, using supported controls; do not claim an unapplied change or alter global configuration merely to enforce these preferences.
|
Optimize reasoning effort for verified outcomes per cost, including review, retries, and repair:
|
||||||
|
|
||||||
|
- Main agent: default to high for planning, synthesis, integration, and acceptance decisions; medium for dispatching a settled plan and routine coordination.
|
||||||
|
- Subagents: default to medium for bounded implementation and targeted research; low for straightforward retrieval, mechanical edits, and running established checks; high for complex debugging, correctness review, adversarial analysis, or ambiguous design.
|
||||||
|
- Use extra-high selectively for difficult foundational semantic, methodological, formal, or cross-domain decisions. Reserve max for exceptional unresolved problems where additional reasoning is likely to justify its cost. Retain higher settings when evidence supports their value.
|
||||||
|
|
||||||
|
Allocate by task difficulty and consequences, not role or length alone. Start higher when a clearly difficult decision has expensive downstream consequences. Escalate for concrete reasoning difficulties; resolve missing evidence or unclear requirements at their source. Set subagent effort explicitly through supported controls to avoid unintended inheritance. Do not claim an unapplied change or alter global configuration merely to enforce these preferences.
|
||||||
|
|
||||||
## Memory and maintenance
|
## Memory and maintenance
|
||||||
|
|
||||||
|
|||||||
@@ -142,87 +142,12 @@ pub struct Analysis {
|
|||||||
pub declarations: Vec<DeclarationSpan>,
|
pub declarations: Vec<DeclarationSpan>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Check the decoded spelling required by declaration-header UUID clauses.
|
|
||||||
/// This is the shared 36-byte/hyphen shape rule, not a hexadecimal parser:
|
|
||||||
/// callers must additionally parse the UUID. Uppercase hex and JSON escapes
|
|
||||||
/// that decode to this spelling remain accepted. URN/braced/compact forms do not.
|
|
||||||
pub fn has_uuid_header_shape(decoded: &str) -> bool {
|
|
||||||
decoded.len() == 36
|
|
||||||
&& [8, 13, 18, 23]
|
|
||||||
.into_iter()
|
|
||||||
.all(|index| decoded.as_bytes()[index] == b'-')
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Budgets for one original source buffer. Policy is caller-owned; these
|
|
||||||
/// limits do not change the grammar or perform model admission.
|
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
|
||||||
pub struct OutlineLimits {
|
|
||||||
pub max_source_bytes: usize,
|
|
||||||
pub max_tokens: usize,
|
|
||||||
pub max_declarations: usize,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
|
||||||
pub enum OutlineResource {
|
|
||||||
SourceBytes,
|
|
||||||
Tokens,
|
|
||||||
Declarations,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
|
||||||
pub struct OutlineLimit {
|
|
||||||
pub resource: OutlineResource,
|
|
||||||
pub limit: usize,
|
|
||||||
pub observed_at_least: usize,
|
|
||||||
/// Original byte offset where admission stopped; never a rewritten offset.
|
|
||||||
pub offset: usize,
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Roles discovered by the existing tolerant declaration walk. Keeping the
|
|
||||||
/// wrapper preserves DeclarationSpan and Analysis as existing public APIs.
|
|
||||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
|
||||||
pub struct OutlineDeclaration {
|
|
||||||
pub declaration: DeclarationSpan,
|
|
||||||
pub kind_span: Span,
|
|
||||||
pub alias_span: Span,
|
|
||||||
/// Whole quoted header ID token, even if it is not a valid UUID. In that
|
|
||||||
/// case declaration.id is None. Missing/non-string ID values have no span.
|
|
||||||
pub id_literal_span: Option<Span>,
|
|
||||||
}
|
|
||||||
|
|
||||||
/// A full-file tolerant scan, not a successful parse or validated model. Invalid
|
|
||||||
/// text remains available. Lexical errors and unmatched braces are facts only:
|
|
||||||
/// their absence does not establish syntactic or semantic validity.
|
|
||||||
///
|
|
||||||
/// A budget failure returns Err and no partial Outline. Include reachability,
|
|
||||||
/// project completeness and editor revision are intentionally not inferred here.
|
|
||||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
|
||||||
pub struct Outline<'a> {
|
|
||||||
pub source: &'a str,
|
|
||||||
pub tokens: Vec<TokenSpan>,
|
|
||||||
pub declarations: Vec<OutlineDeclaration>,
|
|
||||||
pub has_lexical_errors: bool,
|
|
||||||
pub has_unmatched_braces: bool,
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Tolerant highlighting tokens cover the whole input, including incomplete
|
/// Tolerant highlighting tokens cover the whole input, including incomplete
|
||||||
/// strings and unexpected characters. No model is created or modified.
|
/// strings and unexpected characters. No model is created or modified.
|
||||||
pub fn tokenize(source: &str) -> Vec<TokenSpan> {
|
pub fn tokenize(source: &str) -> Vec<TokenSpan> {
|
||||||
tokenize_with_limit(source, usize::MAX).expect("unlimited token scan")
|
|
||||||
}
|
|
||||||
|
|
||||||
fn tokenize_with_limit(source: &str, max_tokens: usize) -> Result<Vec<TokenSpan>, OutlineLimit> {
|
|
||||||
let mut tokens = Vec::new();
|
let mut tokens = Vec::new();
|
||||||
let mut cursor = 0;
|
let mut cursor = 0;
|
||||||
while cursor < source.len() {
|
while cursor < source.len() {
|
||||||
if tokens.len() == max_tokens {
|
|
||||||
return Err(OutlineLimit {
|
|
||||||
resource: OutlineResource::Tokens,
|
|
||||||
limit: max_tokens,
|
|
||||||
observed_at_least: tokens.len().saturating_add(1),
|
|
||||||
offset: cursor,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
let start = cursor;
|
let start = cursor;
|
||||||
let ch = source[cursor..].chars().next().expect("in bounds");
|
let ch = source[cursor..].chars().next().expect("in bounds");
|
||||||
let class = if matches!(ch, ' ' | '\t' | '\r' | '\n') {
|
let class = if matches!(ch, ' ' | '\t' | '\r' | '\n') {
|
||||||
@@ -299,7 +224,7 @@ fn tokenize_with_limit(source: &str, max_tokens: usize) -> Result<Vec<TokenSpan>
|
|||||||
span: Span { start, end: cursor },
|
span: Span { start, end: cursor },
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
Ok(tokens)
|
tokens
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn lint(source: &str) -> Vec<Diagnostic> {
|
pub fn lint(source: &str) -> Vec<Diagnostic> {
|
||||||
@@ -1305,7 +1230,11 @@ impl Parser<'_> {
|
|||||||
self.cursor += 1;
|
self.cursor += 1;
|
||||||
let offset = self.current().span.start;
|
let offset = self.current().span.start;
|
||||||
let value = self.quoted()?;
|
let value = self.quoted()?;
|
||||||
if !has_uuid_header_shape(&value) {
|
if value.len() != 36
|
||||||
|
|| ![8, 13, 18, 23]
|
||||||
|
.into_iter()
|
||||||
|
.all(|i| value.as_bytes()[i] == b'-')
|
||||||
|
{
|
||||||
return Err(Error {
|
return Err(Error {
|
||||||
code: "invalid_source",
|
code: "invalid_source",
|
||||||
offset,
|
offset,
|
||||||
@@ -2033,49 +1962,8 @@ fn take_required_id(fields: &mut Map<String, Value>, key: &str) -> Result<Id, St
|
|||||||
|
|
||||||
/// Analyze an incomplete source buffer without adopting a candidate. Declaration
|
/// Analyze an incomplete source buffer without adopting a candidate. Declaration
|
||||||
/// spans remain available even when a later declaration contains errors.
|
/// spans remain available even when a later declaration contains errors.
|
||||||
/// Invalid compact/braced/URN header IDs retain no authored identity, matching
|
|
||||||
/// the declaration parser rather than the UUID crate's broader accepted forms.
|
|
||||||
pub fn analyze(source: &str) -> Analysis {
|
pub fn analyze(source: &str) -> Analysis {
|
||||||
let tokens = tokenize(source);
|
let tokens = tokenize(source);
|
||||||
let (declarations, _) =
|
|
||||||
declaration_outline(source, &tokens, usize::MAX).expect("unlimited declaration walk");
|
|
||||||
Analysis {
|
|
||||||
tokens,
|
|
||||||
diagnostics: lint(source),
|
|
||||||
declarations: declarations.into_iter().map(|d| d.declaration).collect(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Read exact current text without lint, parsing a model, stabilization or I/O.
|
|
||||||
/// Source bytes are admitted before token allocation; token/declaration limits
|
|
||||||
/// are checked before lexing the next token or materializing the next record.
|
|
||||||
pub fn outline(source: &str, limits: OutlineLimits) -> Result<Outline<'_>, OutlineLimit> {
|
|
||||||
if source.len() > limits.max_source_bytes {
|
|
||||||
return Err(OutlineLimit {
|
|
||||||
resource: OutlineResource::SourceBytes,
|
|
||||||
limit: limits.max_source_bytes,
|
|
||||||
observed_at_least: source.len(),
|
|
||||||
offset: 0,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
let tokens = tokenize_with_limit(source, limits.max_tokens)?;
|
|
||||||
let has_lexical_errors = tokens.iter().any(|token| token.class == TokenClass::Error);
|
|
||||||
let (declarations, has_unmatched_braces) =
|
|
||||||
declaration_outline(source, &tokens, limits.max_declarations)?;
|
|
||||||
Ok(Outline {
|
|
||||||
source,
|
|
||||||
tokens,
|
|
||||||
declarations,
|
|
||||||
has_lexical_errors,
|
|
||||||
has_unmatched_braces,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
fn declaration_outline(
|
|
||||||
source: &str,
|
|
||||||
tokens: &[TokenSpan],
|
|
||||||
max_declarations: usize,
|
|
||||||
) -> Result<(Vec<OutlineDeclaration>, bool), OutlineLimit> {
|
|
||||||
let significant = tokens
|
let significant = tokens
|
||||||
.iter()
|
.iter()
|
||||||
.filter(|t| !matches!(t.class, TokenClass::Whitespace | TokenClass::Comment))
|
.filter(|t| !matches!(t.class, TokenClass::Whitespace | TokenClass::Comment))
|
||||||
@@ -2084,21 +1972,17 @@ fn declaration_outline(
|
|||||||
// again would make tolerant navigation quadratic on deeply nested drafts.
|
// again would make tolerant navigation quadratic on deeply nested drafts.
|
||||||
let mut body_ends = vec![None; significant.len()];
|
let mut body_ends = vec![None; significant.len()];
|
||||||
let mut bodies = Vec::new();
|
let mut bodies = Vec::new();
|
||||||
let mut unmatched_close = false;
|
|
||||||
for (index, token) in significant.iter().enumerate() {
|
for (index, token) in significant.iter().enumerate() {
|
||||||
match &source[token.span.start..token.span.end] {
|
match &source[token.span.start..token.span.end] {
|
||||||
"{" => bodies.push(index),
|
"{" => bodies.push(index),
|
||||||
"}" => {
|
"}" => {
|
||||||
if let Some(open) = bodies.pop() {
|
if let Some(open) = bodies.pop() {
|
||||||
body_ends[open] = Some(token.span.end);
|
body_ends[open] = Some(token.span.end);
|
||||||
} else {
|
|
||||||
unmatched_close = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let has_unmatched_braces = unmatched_close || !bodies.is_empty();
|
|
||||||
let mut declarations = Vec::new();
|
let mut declarations = Vec::new();
|
||||||
for (i, t) in significant.iter().enumerate() {
|
for (i, t) in significant.iter().enumerate() {
|
||||||
let word = &source[t.span.start..t.span.end];
|
let word = &source[t.span.start..t.span.end];
|
||||||
@@ -2123,16 +2007,7 @@ fn declaration_outline(
|
|||||||
}
|
}
|
||||||
j += 1;
|
j += 1;
|
||||||
}
|
}
|
||||||
if declarations.len() == max_declarations {
|
|
||||||
return Err(OutlineLimit {
|
|
||||||
resource: OutlineResource::Declarations,
|
|
||||||
limit: max_declarations,
|
|
||||||
observed_at_least: declarations.len().saturating_add(1),
|
|
||||||
offset: t.span.start,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
let mut id = None;
|
let mut id = None;
|
||||||
let mut id_literal_span = None;
|
|
||||||
if significant
|
if significant
|
||||||
.get(j)
|
.get(j)
|
||||||
.is_some_and(|t| &source[t.span.start..t.span.end] == "id")
|
.is_some_and(|t| &source[t.span.start..t.span.end] == "id")
|
||||||
@@ -2140,31 +2015,23 @@ fn declaration_outline(
|
|||||||
if let Some(value) = significant.get(j + 1)
|
if let Some(value) = significant.get(j + 1)
|
||||||
&& value.class == TokenClass::String
|
&& value.class == TokenClass::String
|
||||||
{
|
{
|
||||||
id_literal_span = Some(value.span);
|
|
||||||
let text =
|
let text =
|
||||||
serde_json::from_str::<String>(&source[value.span.start..value.span.end])
|
serde_json::from_str::<String>(&source[value.span.start..value.span.end])
|
||||||
.unwrap();
|
.unwrap();
|
||||||
if has_uuid_header_shape(&text) {
|
|
||||||
id = Id::parse_str(&text).ok();
|
id = Id::parse_str(&text).ok();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
j += 2;
|
j += 2;
|
||||||
}
|
}
|
||||||
// A recognized header ID at EOF must remain inside the whole span.
|
let mut end = significant
|
||||||
// Keep the old next-token/body behavior; only the EOF fallback changes.
|
.get(j)
|
||||||
let header_end = significant
|
.map_or(alias_token.span.end, |t| t.span.end);
|
||||||
.get(j.saturating_sub(1))
|
|
||||||
.or_else(|| significant.last())
|
|
||||||
.map_or(alias_token.span.end, |token| token.span.end);
|
|
||||||
let mut end = significant.get(j).map_or(header_end, |t| t.span.end);
|
|
||||||
if significant
|
if significant
|
||||||
.get(j)
|
.get(j)
|
||||||
.is_some_and(|t| &source[t.span.start..t.span.end] == "{")
|
.is_some_and(|t| &source[t.span.start..t.span.end] == "{")
|
||||||
{
|
{
|
||||||
end = body_ends[j].unwrap_or(source.len());
|
end = body_ends[j].unwrap_or(source.len());
|
||||||
}
|
}
|
||||||
declarations.push(OutlineDeclaration {
|
declarations.push(DeclarationSpan {
|
||||||
declaration: DeclarationSpan {
|
|
||||||
alias: alias.into(),
|
alias: alias.into(),
|
||||||
id,
|
id,
|
||||||
kind: word.into(),
|
kind: word.into(),
|
||||||
@@ -2172,18 +2039,14 @@ fn declaration_outline(
|
|||||||
start: t.span.start,
|
start: t.span.start,
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
},
|
|
||||||
kind_span: t.span,
|
|
||||||
alias_span: alias_token.span,
|
|
||||||
id_literal_span,
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
Ok((declarations, has_unmatched_braces))
|
Analysis {
|
||||||
|
tokens,
|
||||||
|
diagnostics: lint(source),
|
||||||
|
declarations,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
#[path = "language_outline_tests.rs"]
|
|
||||||
mod outline_tests;
|
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
#[path = "language_nesting_tests.rs"]
|
#[path = "language_nesting_tests.rs"]
|
||||||
@@ -2579,7 +2442,11 @@ pub(crate) mod legacy {
|
|||||||
let value = self.quoted()?;
|
let value = self.quoted()?;
|
||||||
// Require the portable 8-4-4-4-12 spelling, not the UUID crate's URN,
|
// Require the portable 8-4-4-4-12 spelling, not the UUID crate's URN,
|
||||||
// braces, or compact alternatives. Uppercase hexadecimal is accepted.
|
// braces, or compact alternatives. Uppercase hexadecimal is accepted.
|
||||||
if !super::has_uuid_header_shape(&value) {
|
if value.len() != 36
|
||||||
|
|| ![8, 13, 18, 23]
|
||||||
|
.into_iter()
|
||||||
|
.all(|index| value.as_bytes()[index] == b'-')
|
||||||
|
{
|
||||||
return Err(Error {
|
return Err(Error {
|
||||||
code: "invalid_source",
|
code: "invalid_source",
|
||||||
offset,
|
offset,
|
||||||
|
|||||||
@@ -1,386 +0,0 @@
|
|||||||
//! Prepared outline tests. Explicit compatibility tests additionally exercise
|
|
||||||
//! the existing parsers/analyze; the outline entry itself never calls them.
|
|
||||||
use super::*;
|
|
||||||
|
|
||||||
fn limits() -> OutlineLimits {
|
|
||||||
OutlineLimits {
|
|
||||||
max_source_bytes: 1024 * 1024,
|
|
||||||
max_tokens: 100_000,
|
|
||||||
max_declarations: 1_000,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn declaration<'a>(result: &'a Outline<'_>, alias: &str) -> &'a OutlineDeclaration {
|
|
||||||
result
|
|
||||||
.declarations
|
|
||||||
.iter()
|
|
||||||
.find(|d| d.declaration.alias == alias)
|
|
||||||
.unwrap()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn text(source: &str, span: Span) -> &str {
|
|
||||||
&source[span.start..span.end]
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn outline_roles_preserve_unicode_crlf_and_exact_escaped_uuid_literal() {
|
|
||||||
let source = "// 検査 🚒\r\noa_actor responder \"救助\" id \"\\u00300000000-0000-0000-0000-000000000001\" {}\r\nsource @ // 使用\r\n responder;";
|
|
||||||
let before = source.as_bytes().to_vec();
|
|
||||||
let result = outline(source, limits()).unwrap();
|
|
||||||
assert_eq!(result.source.as_bytes(), before);
|
|
||||||
assert_eq!(result.source.as_ptr(), source.as_ptr());
|
|
||||||
let d = declaration(&result, "responder");
|
|
||||||
assert_eq!(text(source, d.kind_span), "oa_actor");
|
|
||||||
assert_eq!(text(source, d.alias_span), "responder");
|
|
||||||
assert_eq!(
|
|
||||||
text(source, d.id_literal_span.unwrap()),
|
|
||||||
"\"\\u00300000000-0000-0000-0000-000000000001\""
|
|
||||||
);
|
|
||||||
assert_eq!(d.declaration.id, Some(Id::from_u128(1)));
|
|
||||||
assert_eq!(d.declaration.span.start, source.find("oa_actor").unwrap());
|
|
||||||
assert_eq!(d.declaration.span.end, source.find("{}\r\n").unwrap() + 2);
|
|
||||||
let mut end = 0;
|
|
||||||
for token in &result.tokens {
|
|
||||||
assert_eq!(token.span.start, end);
|
|
||||||
assert!(token.span.start < token.span.end);
|
|
||||||
assert!(source.is_char_boundary(token.span.start));
|
|
||||||
assert!(source.is_char_boundary(token.span.end));
|
|
||||||
end = token.span.end;
|
|
||||||
}
|
|
||||||
assert_eq!(end, source.len());
|
|
||||||
assert!(!result.has_lexical_errors);
|
|
||||||
assert!(!result.has_unmatched_braces);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn closed_id_at_eof_is_inside_the_declaration_extent() {
|
|
||||||
for source in [
|
|
||||||
"oa_actor a \"Actor\" id \"00000000-0000-0000-0000-000000000001\"",
|
|
||||||
"node placed id \"00000000-0000-0000-0000-000000000001\"",
|
|
||||||
] {
|
|
||||||
let result = outline(source, limits()).unwrap();
|
|
||||||
let d = &result.declarations[0];
|
|
||||||
let literal = d.id_literal_span.unwrap();
|
|
||||||
assert_eq!(d.declaration.id, Some(Id::from_u128(1)));
|
|
||||||
assert_eq!(d.declaration.span.end, source.len());
|
|
||||||
assert!(d.declaration.span.start <= literal.start);
|
|
||||||
assert!(literal.end <= d.declaration.span.end);
|
|
||||||
}
|
|
||||||
for source in ["oa_actor a \"Actor\"", "oa_actor a \"Actor\" id"] {
|
|
||||||
let result = outline(source, limits()).unwrap();
|
|
||||||
let d = &result.declarations[0];
|
|
||||||
assert_eq!(d.declaration.span.end, source.len());
|
|
||||||
assert_eq!(d.declaration.id, None);
|
|
||||||
assert_eq!(d.id_literal_span, None);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn missing_bad_and_historical_ids_never_allocate_authored_identity() {
|
|
||||||
let source = "oa_actor missing \"No ID\" {}\noa_actor bad \"Bad ID\" id \"not-a-uuid\" {}\noa_actor historical \"00000000-0000-0000-0000-000000000001\" { history uuid \"00000000-0000-0000-0000-000000000001\"; }";
|
|
||||||
let first = outline(source, limits()).unwrap();
|
|
||||||
let second = outline(source, limits()).unwrap();
|
|
||||||
assert_eq!(first, second);
|
|
||||||
assert!(
|
|
||||||
first
|
|
||||||
.declarations
|
|
||||||
.iter()
|
|
||||||
.all(|d| d.declaration.id.is_none())
|
|
||||||
);
|
|
||||||
assert_eq!(declaration(&first, "missing").id_literal_span, None);
|
|
||||||
assert_eq!(declaration(&first, "historical").id_literal_span, None);
|
|
||||||
assert_eq!(
|
|
||||||
text(source, declaration(&first, "bad").id_literal_span.unwrap()),
|
|
||||||
"\"not-a-uuid\""
|
|
||||||
);
|
|
||||||
// Balanced tokens are not a successful syntax/semantic validation claim.
|
|
||||||
assert!(!first.has_lexical_errors);
|
|
||||||
assert!(!first.has_unmatched_braces);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn invalid_full_scan_keeps_closed_children_and_reports_lexical_body_facts() {
|
|
||||||
let source = "oa_entity outer \"Outer\" {\n oa_actor ready \"Ready\" { description \"} stays text\"; }\n oa_actor pending \"Pending\" { description \"unfinished 🌊";
|
|
||||||
let result = outline(source, limits()).unwrap();
|
|
||||||
assert_eq!(result.source, source);
|
|
||||||
assert_eq!(result.tokens.last().unwrap().span.end, source.len());
|
|
||||||
assert!(result.has_lexical_errors);
|
|
||||||
assert!(result.has_unmatched_braces);
|
|
||||||
let ready = declaration(&result, "ready");
|
|
||||||
assert_eq!(
|
|
||||||
text(source, ready.declaration.span),
|
|
||||||
"oa_actor ready \"Ready\" { description \"} stays text\"; }"
|
|
||||||
);
|
|
||||||
assert_eq!(
|
|
||||||
declaration(&result, "outer").declaration.span.end,
|
|
||||||
source.len()
|
|
||||||
);
|
|
||||||
assert_eq!(
|
|
||||||
declaration(&result, "pending").declaration.span.end,
|
|
||||||
source.len()
|
|
||||||
);
|
|
||||||
let unmatched_close = outline("}\n// brace in comment {\n", limits()).unwrap();
|
|
||||||
assert!(unmatched_close.has_unmatched_braces);
|
|
||||||
assert!(!unmatched_close.has_lexical_errors);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn missing_body_syntax_is_unchecked_even_when_known_error_flags_are_clear() {
|
|
||||||
let source = "oa_actor a \"A\" id \"00000000-0000-0000-0000-000000000001\"";
|
|
||||||
let result = outline(source, limits()).unwrap();
|
|
||||||
assert_eq!(result.declarations.len(), 1);
|
|
||||||
assert!(!result.has_lexical_errors);
|
|
||||||
assert!(!result.has_unmatched_braces);
|
|
||||||
// There is deliberately no `valid` flag: the known-complete fact is scanning
|
|
||||||
// these bytes, not the missing body becoming legal or the draft being applied.
|
|
||||||
assert_eq!(result.source, source);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn keyword_alias_and_collisions_keep_every_source_ordered_header() {
|
|
||||||
let source = "project root_model \"Model\" {\n oa_actor oa_activity \"First\" id \"00000000-0000-0000-0000-000000000001\" {}\n oa_actor oa_activity \"Second\" id \"00000000-0000-0000-0000-000000000001\" {}\n diagram view_one \"View\" {}\n node placement { diagram @view_one; }\n}";
|
|
||||||
let result = outline(source, limits()).unwrap();
|
|
||||||
assert_eq!(result.declarations.len(), 5);
|
|
||||||
let duplicates: Vec<_> = result
|
|
||||||
.declarations
|
|
||||||
.iter()
|
|
||||||
.filter(|d| d.declaration.alias == "oa_activity")
|
|
||||||
.collect();
|
|
||||||
assert_eq!(duplicates.len(), 2);
|
|
||||||
assert!(duplicates[0].alias_span.start < duplicates[1].alias_span.start);
|
|
||||||
assert_eq!(duplicates[0].declaration.id, duplicates[1].declaration.id);
|
|
||||||
assert!(
|
|
||||||
result
|
|
||||||
.tokens
|
|
||||||
.iter()
|
|
||||||
.any(|t| t.span == duplicates[0].alias_span && t.class == TokenClass::Keyword)
|
|
||||||
);
|
|
||||||
assert_eq!(
|
|
||||||
text(source, declaration(&result, "placement").kind_span),
|
|
||||||
"node"
|
|
||||||
);
|
|
||||||
assert_eq!(declaration(&result, "placement").declaration.id, None);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn bounds_refuse_before_returning_a_partial_outline() {
|
|
||||||
let source = "oa_actor a \"A\" {}\noa_actor b \"B\" {}";
|
|
||||||
let admitted = outline(source, limits()).unwrap();
|
|
||||||
let exact = OutlineLimits {
|
|
||||||
max_source_bytes: source.len(),
|
|
||||||
max_tokens: admitted.tokens.len(),
|
|
||||||
max_declarations: 2,
|
|
||||||
};
|
|
||||||
assert_eq!(outline(source, exact).unwrap(), admitted);
|
|
||||||
for resource in [
|
|
||||||
OutlineResource::SourceBytes,
|
|
||||||
OutlineResource::Tokens,
|
|
||||||
OutlineResource::Declarations,
|
|
||||||
] {
|
|
||||||
let mut lower = exact;
|
|
||||||
match resource {
|
|
||||||
OutlineResource::SourceBytes => lower.max_source_bytes -= 1,
|
|
||||||
OutlineResource::Tokens => lower.max_tokens -= 1,
|
|
||||||
OutlineResource::Declarations => lower.max_declarations -= 1,
|
|
||||||
}
|
|
||||||
let error = outline(source, lower).unwrap_err();
|
|
||||||
assert_eq!(error.resource, resource);
|
|
||||||
assert!(error.observed_at_least > error.limit);
|
|
||||||
assert!(source.is_char_boundary(error.offset));
|
|
||||||
if resource == OutlineResource::Declarations {
|
|
||||||
assert_eq!(error.offset, source.find("oa_actor b").unwrap());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
let empty = outline(
|
|
||||||
"",
|
|
||||||
OutlineLimits {
|
|
||||||
max_source_bytes: 0,
|
|
||||||
max_tokens: 0,
|
|
||||||
max_declarations: 0,
|
|
||||||
},
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
assert!(empty.tokens.is_empty() && empty.declarations.is_empty());
|
|
||||||
let unicode = "// 🌊\r\noa_actor a \"A\" {}";
|
|
||||||
let error = outline(
|
|
||||||
unicode,
|
|
||||||
OutlineLimits {
|
|
||||||
max_source_bytes: 4,
|
|
||||||
..limits()
|
|
||||||
},
|
|
||||||
)
|
|
||||||
.unwrap_err();
|
|
||||||
assert_eq!(error.resource, OutlineResource::SourceBytes);
|
|
||||||
assert_eq!(error.offset, 0);
|
|
||||||
let error = outline(
|
|
||||||
unicode,
|
|
||||||
OutlineLimits {
|
|
||||||
max_tokens: 1,
|
|
||||||
..limits()
|
|
||||||
},
|
|
||||||
)
|
|
||||||
.unwrap_err();
|
|
||||||
assert_eq!(error.resource, OutlineResource::Tokens);
|
|
||||||
assert_eq!(error.offset, unicode.find('\n').unwrap());
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn outline_ranges_follow_current_bytes_without_identity_stabilization() {
|
|
||||||
let old = "oa_actor a \"A\" {}\nsource @a;";
|
|
||||||
let current = format!("// 航海 🚒\r\n{old}");
|
|
||||||
let old_outline = outline(old, limits()).unwrap();
|
|
||||||
let current_outline = outline(¤t, limits()).unwrap();
|
|
||||||
let shift = current.len() - old.len();
|
|
||||||
let old_role = &old_outline.declarations[0];
|
|
||||||
let current_role = ¤t_outline.declarations[0];
|
|
||||||
assert_eq!(
|
|
||||||
current_role.alias_span.start,
|
|
||||||
old_role.alias_span.start + shift
|
|
||||||
);
|
|
||||||
assert_eq!(
|
|
||||||
current_role.kind_span.start,
|
|
||||||
old_role.kind_span.start + shift
|
|
||||||
);
|
|
||||||
assert_eq!(
|
|
||||||
current_role.declaration.span.end,
|
|
||||||
old_role.declaration.span.end + shift
|
|
||||||
);
|
|
||||||
assert_eq!(current_outline.source, current);
|
|
||||||
assert_eq!(old_outline.source, old);
|
|
||||||
assert_eq!(current_role.declaration.id, None);
|
|
||||||
assert!(!current_outline.source.contains(" id "));
|
|
||||||
// Workspace revision/stale-handle rejection belongs to the query/adapter,
|
|
||||||
// not a claim that an old owned span can be applied to any other string.
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn deeply_nested_bounds_use_the_same_iterative_walk_and_declaration_budget() {
|
|
||||||
let mut source = String::new();
|
|
||||||
for index in 0..600 {
|
|
||||||
source.push_str(&format!("oa_activity work_{index} \"Work\" {{\n"));
|
|
||||||
}
|
|
||||||
source.push_str(&"}\n".repeat(600));
|
|
||||||
let result = outline(&source, limits()).unwrap();
|
|
||||||
assert_eq!(result.declarations.len(), 600);
|
|
||||||
assert!(!result.has_unmatched_braces);
|
|
||||||
assert_eq!(
|
|
||||||
result.declarations[0].declaration.span.end,
|
|
||||||
source.len() - 1
|
|
||||||
);
|
|
||||||
let error = outline(
|
|
||||||
&source,
|
|
||||||
OutlineLimits {
|
|
||||||
max_declarations: 599,
|
|
||||||
..limits()
|
|
||||||
},
|
|
||||||
)
|
|
||||||
.unwrap_err();
|
|
||||||
assert_eq!(error.resource, OutlineResource::Declarations);
|
|
||||||
assert_eq!(error.observed_at_least, 600);
|
|
||||||
assert_eq!(error.offset, source.find("oa_activity work_599").unwrap());
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn noncanonical_uuid_spellings_have_no_outline_or_analysis_identity() {
|
|
||||||
for raw in [
|
|
||||||
"00000000000000000000000000000001",
|
|
||||||
"{00000000-0000-0000-0000-000000000001}",
|
|
||||||
"urn:uuid:00000000-0000-0000-0000-000000000001",
|
|
||||||
] {
|
|
||||||
assert!(
|
|
||||||
Id::parse_str(raw).is_ok(),
|
|
||||||
"The UUID crate alone is too permissive"
|
|
||||||
);
|
|
||||||
assert!(!has_uuid_header_shape(raw));
|
|
||||||
let literal = format!("\"{raw}\"");
|
|
||||||
let modern = format!("arcadia 7; project model \"Model\" id {literal} {{}}");
|
|
||||||
let before = modern.clone();
|
|
||||||
let result = outline(&modern, limits()).unwrap();
|
|
||||||
let d = declaration(&result, "model");
|
|
||||||
assert_eq!(d.declaration.id, None);
|
|
||||||
assert_eq!(text(&modern, d.id_literal_span.unwrap()), literal);
|
|
||||||
assert_eq!(modern, before);
|
|
||||||
let errors = parse(&modern).unwrap_err();
|
|
||||||
assert!(
|
|
||||||
errors
|
|
||||||
.iter()
|
|
||||||
.any(|error| error.message.contains("8-4-4-4-12")
|
|
||||||
&& error.span.start == modern.find(&literal).unwrap())
|
|
||||||
);
|
|
||||||
// Intentional compatibility correction: old analyze yielded Some(Id(1))
|
|
||||||
// here despite lint rejecting the header. It now shares outline's None.
|
|
||||||
let analysis = analyze(&modern);
|
|
||||||
assert_eq!(
|
|
||||||
analysis
|
|
||||||
.declarations
|
|
||||||
.iter()
|
|
||||||
.find(|d| d.alias == "model")
|
|
||||||
.unwrap()
|
|
||||||
.id,
|
|
||||||
None
|
|
||||||
);
|
|
||||||
assert!(
|
|
||||||
analysis
|
|
||||||
.diagnostics
|
|
||||||
.iter()
|
|
||||||
.any(|error| error.message.contains("8-4-4-4-12"))
|
|
||||||
);
|
|
||||||
let legacy_source = format!("arcadia 1; project \"Legacy\" id {literal} {{}}");
|
|
||||||
let legacy_errors = legacy::parse(&legacy_source).unwrap_err();
|
|
||||||
assert!(
|
|
||||||
legacy_errors
|
|
||||||
.iter()
|
|
||||||
.any(|error| error.message.contains("8-4-4-4-12"))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn uppercase_and_json_escaped_header_ids_survive_both_parsers_and_outline() {
|
|
||||||
let expected = Id::from_u128(0xabcdef);
|
|
||||||
let canonical = expected.to_string();
|
|
||||||
let uppercase = canonical.to_uppercase();
|
|
||||||
assert_ne!(uppercase, canonical);
|
|
||||||
for raw in [uppercase.clone(), format!("\\u0030{}", &uppercase[1..])] {
|
|
||||||
let literal = format!("\"{raw}\"");
|
|
||||||
let decoded: String = serde_json::from_str(&literal).unwrap();
|
|
||||||
assert!(has_uuid_header_shape(&decoded));
|
|
||||||
let modern = format!("arcadia 7; project model \"Model\" id {literal} {{}}");
|
|
||||||
let result = outline(&modern, limits()).unwrap();
|
|
||||||
let d = declaration(&result, "model");
|
|
||||||
assert_eq!(d.declaration.id, Some(expected));
|
|
||||||
assert_eq!(text(&modern, d.id_literal_span.unwrap()), literal);
|
|
||||||
assert_eq!(result.source.as_bytes(), modern.as_bytes());
|
|
||||||
assert_eq!(parse(&modern).unwrap().id, expected);
|
|
||||||
let analysis = analyze(&modern);
|
|
||||||
assert_eq!(analysis.declarations[0].id, Some(expected));
|
|
||||||
assert!(
|
|
||||||
!analysis
|
|
||||||
.diagnostics
|
|
||||||
.iter()
|
|
||||||
.any(|error| error.severity == crate::validation::Severity::Error)
|
|
||||||
);
|
|
||||||
let legacy_source = format!("arcadia 1; project \"Legacy\" id {literal} {{}}");
|
|
||||||
assert_eq!(legacy::parse(&legacy_source).unwrap().id, expected);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn header_shape_still_requires_valid_hexadecimal_uuid_data() {
|
|
||||||
let raw = "00000000-0000-0000-0000-00000000000Z";
|
|
||||||
assert!(has_uuid_header_shape(raw));
|
|
||||||
assert!(Id::parse_str(raw).is_err());
|
|
||||||
let literal = format!("\"{raw}\"");
|
|
||||||
let source = format!("arcadia 7; project model \"Model\" id {literal} {{}}");
|
|
||||||
let result = outline(&source, limits()).unwrap();
|
|
||||||
let d = declaration(&result, "model");
|
|
||||||
assert_eq!(d.declaration.id, None);
|
|
||||||
assert_eq!(text(&source, d.id_literal_span.unwrap()), literal);
|
|
||||||
assert!(
|
|
||||||
parse(&source)
|
|
||||||
.unwrap_err()
|
|
||||||
.iter()
|
|
||||||
.any(|error| error.message == "Invalid UUID identity.")
|
|
||||||
);
|
|
||||||
assert_eq!(analyze(&source).declarations[0].id, None);
|
|
||||||
}
|
|
||||||
@@ -7,7 +7,6 @@ mod diagram_selection_tests;
|
|||||||
mod hosted;
|
mod hosted;
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod review_navigation_tests;
|
mod review_navigation_tests;
|
||||||
mod source_symbols;
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod transition_context_tests;
|
mod transition_context_tests;
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
@@ -416,15 +415,9 @@ pub enum Message {
|
|||||||
Linted(u64, Result<Vec<SourceDiagnostic>, String>),
|
Linted(u64, Result<Vec<SourceDiagnostic>, String>),
|
||||||
SourceDiagnostic(usize),
|
SourceDiagnostic(usize),
|
||||||
SourceRelated(SourceLocation),
|
SourceRelated(SourceLocation),
|
||||||
SourceViewport(Option<Id>),
|
SourceViewport,
|
||||||
SourceSymbols(
|
|
||||||
crate::source_navigation::SymbolContext,
|
|
||||||
crate::source_navigation::SymbolEvent,
|
|
||||||
),
|
|
||||||
SourceSymbolsReady(crate::source_navigation::Completion),
|
|
||||||
SourceForSelection,
|
SourceForSelection,
|
||||||
SourceNavigation(crate::source_navigation::Event),
|
SourceNavigation(crate::source_navigation::Event),
|
||||||
SourceFindClose(crate::source_navigation::SymbolContext, Id),
|
|
||||||
Save(bool),
|
Save(bool),
|
||||||
SavePath(Option<PathBuf>),
|
SavePath(Option<PathBuf>),
|
||||||
Saved(Result<Option<FileSnapshot>, SaveFailure>),
|
Saved(Result<Option<FileSnapshot>, SaveFailure>),
|
||||||
@@ -498,8 +491,6 @@ pub struct App {
|
|||||||
pub source_jump: Option<text_editor::Cursor>,
|
pub source_jump: Option<text_editor::Cursor>,
|
||||||
source_select_line: bool,
|
source_select_line: bool,
|
||||||
pub source_navigation: crate::source_navigation::State,
|
pub source_navigation: crate::source_navigation::State,
|
||||||
source_find_instance: Id,
|
|
||||||
pub source_symbols: crate::source_navigation::SymbolState,
|
|
||||||
pub model_issues: Vec<validation::Issue>,
|
pub model_issues: Vec<validation::Issue>,
|
||||||
pub migration: Option<persistence::MigrationReport>,
|
pub migration: Option<persistence::MigrationReport>,
|
||||||
source_version: u64,
|
source_version: u64,
|
||||||
@@ -605,8 +596,6 @@ impl App {
|
|||||||
source_jump: None,
|
source_jump: None,
|
||||||
source_select_line: false,
|
source_select_line: false,
|
||||||
source_navigation: crate::source_navigation::State::default(),
|
source_navigation: crate::source_navigation::State::default(),
|
||||||
source_find_instance: Id::new_v4(),
|
|
||||||
source_symbols: crate::source_navigation::SymbolState::default(),
|
|
||||||
model_issues,
|
model_issues,
|
||||||
migration: None,
|
migration: None,
|
||||||
source_version: 0,
|
source_version: 0,
|
||||||
@@ -660,7 +649,6 @@ impl App {
|
|||||||
self.lint_requested = None;
|
self.lint_requested = None;
|
||||||
}
|
}
|
||||||
fn show_source_file(&mut self, restore_cursor: bool) {
|
fn show_source_file(&mut self, restore_cursor: bool) {
|
||||||
self.source_symbols.reveal = None;
|
|
||||||
self.source_tree.reveal(&self.source_workspace.active);
|
self.source_tree.reveal(&self.source_workspace.active);
|
||||||
self.source_select_line = false;
|
self.source_select_line = false;
|
||||||
let source = self.source_workspace.text().to_owned();
|
let source = self.source_workspace.text().to_owned();
|
||||||
@@ -675,9 +663,6 @@ impl App {
|
|||||||
.map(|b| b.cursor)
|
.map(|b| b.cursor)
|
||||||
})
|
})
|
||||||
.flatten();
|
.flatten();
|
||||||
if let Some(cursor) = self.source_jump {
|
|
||||||
self.queue_source_reveal(cursor, false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
fn selected_architecture_placement(&self) -> Option<Id> {
|
fn selected_architecture_placement(&self) -> Option<Id> {
|
||||||
self.active_diagram
|
self.active_diagram
|
||||||
@@ -931,7 +916,6 @@ impl App {
|
|||||||
let canvas_size = self.canvas_size;
|
let canvas_size = self.canvas_size;
|
||||||
let source_version = self.source_version + 1;
|
let source_version = self.source_version + 1;
|
||||||
let lint_running = self.lint_running;
|
let lint_running = self.lint_running;
|
||||||
let navigation_in_flight = self.source_symbols.in_flight;
|
|
||||||
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();
|
||||||
@@ -943,7 +927,6 @@ impl App {
|
|||||||
self.canvas_size = canvas_size;
|
self.canvas_size = canvas_size;
|
||||||
self.source_version = source_version;
|
self.source_version = source_version;
|
||||||
self.lint_running = lint_running;
|
self.lint_running = lint_running;
|
||||||
self.source_symbols.in_flight = navigation_in_flight;
|
|
||||||
self.guide = guide;
|
self.guide = guide;
|
||||||
self.path = path;
|
self.path = path;
|
||||||
self.status = "Project ready".into();
|
self.status = "Project ready".into();
|
||||||
@@ -1044,10 +1027,7 @@ impl App {
|
|||||||
crate::model_menu::popup(self),
|
crate::model_menu::popup(self),
|
||||||
)
|
)
|
||||||
.into();
|
.into();
|
||||||
crate::source_navigation::interaction::observe(
|
crate::hosted::view::overlay(self, base)
|
||||||
crate::hosted::view::overlay(self, base),
|
|
||||||
self.source_symbols.raw_interaction.clone(),
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
pub fn subscription(&self) -> Subscription<Message> {
|
pub fn subscription(&self) -> Subscription<Message> {
|
||||||
Subscription::batch([
|
Subscription::batch([
|
||||||
@@ -1055,14 +1035,8 @@ impl App {
|
|||||||
window::close_requests().map(|id| Message::Request(Pending::Close(id))),
|
window::close_requests().map(|id| Message::Request(Pending::Close(id))),
|
||||||
window::resize_events().map(|(_, size)| Message::WindowResized(size)),
|
window::resize_events().map(|(_, size)| Message::WindowResized(size)),
|
||||||
architecture_authoring::subscription(self),
|
architecture_authoring::subscription(self),
|
||||||
// Use one captured-Escape bridge: a focused Find input consumes
|
|
||||||
// Escape, while modal priority remains in the ordinary handler.
|
|
||||||
behavior::creation::subscription(
|
behavior::creation::subscription(
|
||||||
self.behavior.creation.has_pending()
|
self.behavior.creation.has_pending() || self.behavior.source_active(),
|
||||||
|| self.behavior.source_active()
|
|
||||||
|| (self.page == Page::Text
|
|
||||||
&& (self.source_symbols.open || self.source_navigation.open)
|
|
||||||
&& self.architecture.is_none()),
|
|
||||||
)
|
)
|
||||||
.map(|()| Message::Escape),
|
.map(|()| Message::Escape),
|
||||||
iced::event::listen_with(|event, status, _| {
|
iced::event::listen_with(|event, status, _| {
|
||||||
@@ -1109,47 +1083,6 @@ impl App {
|
|||||||
])
|
])
|
||||||
}
|
}
|
||||||
pub fn update(&mut self, message: Message) -> Task<Message> {
|
pub fn update(&mut self, message: Message) -> Task<Message> {
|
||||||
let message = match message {
|
|
||||||
Message::SourceFindClose(context, instance) => {
|
|
||||||
if context != self.source_symbol_context()
|
|
||||||
|| instance != self.source_find_instance
|
|
||||||
|| !self.source_navigation.open
|
|
||||||
|| !self.source_navigation_available()
|
|
||||||
{
|
|
||||||
return Task::none();
|
|
||||||
}
|
|
||||||
// Only the checked envelope may enter the legacy Close handler.
|
|
||||||
Message::SourceNavigation(crate::source_navigation::Event::Close)
|
|
||||||
}
|
|
||||||
Message::SourceNavigation(crate::source_navigation::Event::Close) => {
|
|
||||||
return Task::none();
|
|
||||||
}
|
|
||||||
message => message,
|
|
||||||
};
|
|
||||||
if let Message::SourceSymbols(context, _) = &message
|
|
||||||
&& (context.session != self.source_workspace.session()
|
|
||||||
|| context.path != self.source_workspace.active)
|
|
||||||
{
|
|
||||||
return Task::none();
|
|
||||||
}
|
|
||||||
// Internal results and geometry do not constitute a new user intent.
|
|
||||||
// Process query completion even behind a modal to release its worker slot;
|
|
||||||
// its handler independently refuses navigation outside the live editor.
|
|
||||||
if let Message::SourceSymbolsReady(completion) = message {
|
|
||||||
return self.source_symbols_ready(completion);
|
|
||||||
}
|
|
||||||
if !matches!(
|
|
||||||
&message,
|
|
||||||
Message::CheckpointTick
|
|
||||||
| Message::CheckpointWritten(..)
|
|
||||||
| Message::Lint(_)
|
|
||||||
| Message::Linted(..)
|
|
||||||
| Message::SourceViewport(_)
|
|
||||||
| Message::WindowResized(_)
|
|
||||||
| Message::CanvasResized(_)
|
|
||||||
) {
|
|
||||||
self.source_interaction();
|
|
||||||
}
|
|
||||||
if matches!(&message, Message::Connection(_))
|
if matches!(&message, Message::Connection(_))
|
||||||
&& self
|
&& self
|
||||||
.architecture
|
.architecture
|
||||||
@@ -1214,7 +1147,7 @@ impl App {
|
|||||||
| Message::CanvasResized(_)
|
| Message::CanvasResized(_)
|
||||||
| Message::Lint(_)
|
| Message::Lint(_)
|
||||||
| Message::Linted(_, _)
|
| Message::Linted(_, _)
|
||||||
| Message::SourceViewport(_)
|
| Message::SourceViewport
|
||||||
| Message::Request(Pending::Close(_))
|
| Message::Request(Pending::Close(_))
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@@ -1260,7 +1193,7 @@ impl App {
|
|||||||
| Message::Exported(_)
|
| Message::Exported(_)
|
||||||
| Message::WindowResized(_)
|
| Message::WindowResized(_)
|
||||||
| Message::CanvasResized(_)
|
| Message::CanvasResized(_)
|
||||||
| Message::SourceViewport(_)
|
| Message::SourceViewport
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return Task::none();
|
return Task::none();
|
||||||
@@ -1298,7 +1231,7 @@ impl App {
|
|||||||
| Message::CheckpointLoaded(..)
|
| Message::CheckpointLoaded(..)
|
||||||
| Message::WindowResized(_)
|
| Message::WindowResized(_)
|
||||||
| Message::CanvasResized(_)
|
| Message::CanvasResized(_)
|
||||||
| Message::SourceViewport(_)
|
| Message::SourceViewport
|
||||||
| Message::Lint(_)
|
| Message::Lint(_)
|
||||||
| Message::Linted(_, _)
|
| Message::Linted(_, _)
|
||||||
| Message::Saved(_)
|
| Message::Saved(_)
|
||||||
@@ -1858,8 +1791,6 @@ impl App {
|
|||||||
return self.update(Message::Add(child));
|
return self.update(Message::Add(child));
|
||||||
}
|
}
|
||||||
Message::Escape => {
|
Message::Escape => {
|
||||||
let restore_source_focus = self.source_navigation_available()
|
|
||||||
&& (self.source_navigation.open || self.source_symbols.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();
|
||||||
@@ -1876,12 +1807,6 @@ 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;
|
|
||||||
self.source_symbols.results = None;
|
|
||||||
self.source_symbols.notice = None;
|
|
||||||
if restore_source_focus {
|
|
||||||
self.restore_source_editor_focus();
|
|
||||||
}
|
|
||||||
self.canvas_epoch = self.canvas_epoch.wrapping_add(1);
|
self.canvas_epoch = self.canvas_epoch.wrapping_add(1);
|
||||||
self.selected_bend = None;
|
self.selected_bend = None;
|
||||||
}
|
}
|
||||||
@@ -2930,21 +2855,12 @@ impl App {
|
|||||||
if self.path.is_none()
|
if self.path.is_none()
|
||||||
|| self.path.as_ref() == Some(&receipt.target)
|
|| self.path.as_ref() == Some(&receipt.target)
|
||||||
{
|
{
|
||||||
if self.path.as_ref() != Some(&receipt.target) {
|
|
||||||
self.source_workspace.reset_navigation_session();
|
|
||||||
}
|
|
||||||
self.path = Some(receipt.target);
|
self.path = Some(receipt.target);
|
||||||
self.document.bind_repair_baseline(disk.reachable_bundle());
|
|
||||||
self.disk_project = Some(disk);
|
self.disk_project = Some(disk);
|
||||||
}
|
}
|
||||||
self.status = "Interrupted disk save recovered. Current model and drafts are retained; Save all can be retried.".into();
|
self.status = "Interrupted disk save recovered. Current model and drafts are retained; Save all can be retried.".into();
|
||||||
}
|
}
|
||||||
Err(error) => {
|
Err(error) => {
|
||||||
if self.path.is_none()
|
|
||||||
|| self.path.as_ref() == Some(&receipt.target)
|
|
||||||
{
|
|
||||||
self.document.invalidate_saved_baseline();
|
|
||||||
}
|
|
||||||
self.status = format!(
|
self.status = format!(
|
||||||
"Disk recovery completed; files could not be reloaded: {error}"
|
"Disk recovery completed; files could not be reloaded: {error}"
|
||||||
)
|
)
|
||||||
@@ -3001,11 +2917,14 @@ impl App {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Message::SourceRelated(location) => self.jump_to_source(location),
|
Message::SourceRelated(location) => self.jump_to_source(location),
|
||||||
Message::SourceViewport(ticket) => return self.source_viewport(ticket),
|
Message::SourceViewport => {
|
||||||
Message::SourceFindClose(..) => return Task::none(), // update checks and unwraps it
|
if let Some(cursor) = self.source_jump.take() {
|
||||||
Message::SourceSymbols(_, event) => return self.source_symbol_event(event),
|
self.source_editor.move_to(cursor);
|
||||||
Message::SourceSymbolsReady(completion) => {
|
if self.source_select_line && cursor.selection.is_none() {
|
||||||
return self.source_symbols_ready(completion);
|
self.source_editor.perform(text_editor::Action::SelectLine);
|
||||||
|
}
|
||||||
|
return iced::widget::operation::focus("source-editor");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Message::ApplySource => {
|
Message::ApplySource => {
|
||||||
self.apply_source();
|
self.apply_source();
|
||||||
@@ -3051,7 +2970,6 @@ impl App {
|
|||||||
return Task::none();
|
return Task::none();
|
||||||
}
|
}
|
||||||
self.page = Page::Text;
|
self.page = Page::Text;
|
||||||
self.source_find_instance = Id::new_v4();
|
|
||||||
self.source_navigation.open = true;
|
self.source_navigation.open = true;
|
||||||
self.source_navigation.refresh(&self.source_editor.text());
|
self.source_navigation.refresh(&self.source_editor.text());
|
||||||
return iced::widget::operation::focus(if go_to_line {
|
return iced::widget::operation::focus(if go_to_line {
|
||||||
@@ -3060,22 +2978,13 @@ impl App {
|
|||||||
"source-find"
|
"source-find"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
Event::Close => {
|
Event::Close => self.source_navigation.open = false,
|
||||||
let was_open = self.source_navigation.open;
|
|
||||||
self.source_navigation.open = false;
|
|
||||||
if was_open {
|
|
||||||
self.restore_source_editor_focus();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Event::Query(query) => {
|
Event::Query(query) => {
|
||||||
self.source_navigation.query = query;
|
self.source_navigation.query = query;
|
||||||
self.source_navigation.refresh(&self.source_editor.text());
|
self.source_navigation.refresh(&self.source_editor.text());
|
||||||
}
|
}
|
||||||
Event::Next(backwards) if self.page == Page::Text => {
|
Event::Next(backwards) if self.page == Page::Text => {
|
||||||
self.source_jump = self.source_navigation.next(backwards);
|
self.source_jump = self.source_navigation.next(backwards);
|
||||||
if let Some(cursor) = self.source_jump {
|
|
||||||
self.queue_source_reveal(cursor, false);
|
|
||||||
}
|
|
||||||
if self.source_jump.is_none() {
|
if self.source_jump.is_none() {
|
||||||
self.status = "No matching source text.".into();
|
self.status = "No matching source text.".into();
|
||||||
}
|
}
|
||||||
@@ -3086,7 +2995,8 @@ impl App {
|
|||||||
.destination(self.source_editor.line_count())
|
.destination(self.source_editor.line_count())
|
||||||
{
|
{
|
||||||
Ok(cursor) => {
|
Ok(cursor) => {
|
||||||
self.queue_source_reveal(cursor, true);
|
self.source_jump = Some(cursor);
|
||||||
|
self.source_select_line = true;
|
||||||
}
|
}
|
||||||
Err(error) => self.status = error,
|
Err(error) => self.status = error,
|
||||||
},
|
},
|
||||||
@@ -3169,9 +3079,6 @@ impl App {
|
|||||||
}
|
}
|
||||||
self.sync_source();
|
self.sync_source();
|
||||||
}
|
}
|
||||||
if self.path.as_ref() != Some(&receipt.path) {
|
|
||||||
self.source_workspace.reset_navigation_session();
|
|
||||||
}
|
|
||||||
self.disk_project = Some(disk);
|
self.disk_project = Some(disk);
|
||||||
self.path = Some(receipt.path);
|
self.path = Some(receipt.path);
|
||||||
self.hosted.session = None;
|
self.hosted.session = None;
|
||||||
@@ -3730,9 +3637,8 @@ impl App {
|
|||||||
self.canvas_document = Id::new_v4();
|
self.canvas_document = Id::new_v4();
|
||||||
self.canvas_epoch = self.canvas_epoch.wrapping_add(1);
|
self.canvas_epoch = self.canvas_epoch.wrapping_add(1);
|
||||||
self.path = Some(path);
|
self.path = Some(path);
|
||||||
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.source_workspace.set_reachable(disk.reachable.clone());
|
self.source_workspace.reachable = disk.reachable.clone();
|
||||||
self.show_source_file(false);
|
self.show_source_file(false);
|
||||||
self.source_diagnostics = error.diagnostics().to_vec();
|
self.source_diagnostics = error.diagnostics().to_vec();
|
||||||
self.source_version += 1;
|
self.source_version += 1;
|
||||||
@@ -3784,13 +3690,11 @@ 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);
|
||||||
self.queue_source_reveal(
|
self.source_jump = Some(text_editor::Cursor {
|
||||||
text_editor::Cursor {
|
|
||||||
position: text_editor::Position { line, column },
|
position: text_editor::Position { line, column },
|
||||||
selection: None,
|
selection: None,
|
||||||
},
|
});
|
||||||
true,
|
self.source_select_line = true;
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn create_source_file(&mut self) -> Result<(), String> {
|
fn create_source_file(&mut self) -> Result<(), String> {
|
||||||
@@ -4400,10 +4304,6 @@ fn read_snapshot(path: PathBuf) -> Result<LoadedSnapshot, String> {
|
|||||||
#[path = "app/save_as_tests.rs"]
|
#[path = "app/save_as_tests.rs"]
|
||||||
mod save_as_tests;
|
mod save_as_tests;
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
#[path = "app/repair_save_state_tests.rs"]
|
|
||||||
mod repair_save_state_tests;
|
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod source_project_tests {
|
mod source_project_tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|||||||
@@ -213,14 +213,6 @@ impl App {
|
|||||||
self.pending = None;
|
self.pending = None;
|
||||||
return Task::none();
|
return Task::none();
|
||||||
}
|
}
|
||||||
if self.path.is_some()
|
|
||||||
|| self.hosted.session.as_ref().is_none_or(|session| {
|
|
||||||
session.resource_id != remote.resource_id
|
|
||||||
|| session.connection.base() != request.connection.base()
|
|
||||||
})
|
|
||||||
{
|
|
||||||
self.source_workspace.reset_navigation_session();
|
|
||||||
}
|
|
||||||
self.hosted.session = Some(Session {
|
self.hosted.session = Some(Session {
|
||||||
connection: request.connection.clone(),
|
connection: request.connection.clone(),
|
||||||
resource_id: remote.resource_id,
|
resource_id: remote.resource_id,
|
||||||
@@ -353,14 +345,6 @@ impl App {
|
|||||||
match self.document.apply_compiled((*remote.compiled).clone()) {
|
match self.document.apply_compiled((*remote.compiled).clone()) {
|
||||||
Ok(_) => {
|
Ok(_) => {
|
||||||
self.document.mark_saved(remote.compiled.clone());
|
self.document.mark_saved(remote.compiled.clone());
|
||||||
if self.path.is_some()
|
|
||||||
|| self.hosted.session.as_ref().is_none_or(|session| {
|
|
||||||
session.resource_id != remote.resource_id
|
|
||||||
|| session.connection.base() != connection.base()
|
|
||||||
})
|
|
||||||
{
|
|
||||||
self.source_workspace.reset_navigation_session();
|
|
||||||
}
|
|
||||||
self.hosted.session = Some(Session {
|
self.hosted.session = Some(Session {
|
||||||
connection,
|
connection,
|
||||||
resource_id: remote.resource_id,
|
resource_id: remote.resource_id,
|
||||||
|
|||||||
@@ -1,263 +0,0 @@
|
|||||||
use super::*;
|
|
||||||
|
|
||||||
const VALID: &str = concat!(
|
|
||||||
"arcadia 7;\r\n",
|
|
||||||
"project repair \"Repair 救援\" id \"9e8f0000-0000-4000-8000-000000000001\" {\r\n",
|
|
||||||
" oa_activity assess \"Assess\" id \"9e8f0000-0000-4000-8000-000000000002\" {}\r\n",
|
|
||||||
"}\r\n",
|
|
||||||
);
|
|
||||||
|
|
||||||
fn open(app: &mut App, path: &std::path::Path) {
|
|
||||||
let _ = app.update(Message::Loaded(Ok(Some(
|
|
||||||
read_snapshot(path.to_owned()).unwrap(),
|
|
||||||
))));
|
|
||||||
}
|
|
||||||
|
|
||||||
fn edit(app: &mut App, text: &str) {
|
|
||||||
let _ = app.update(Message::SourceEdit(text_editor::Action::SelectAll));
|
|
||||||
let _ = app.update(Message::SourceEdit(text_editor::Action::Edit(
|
|
||||||
text_editor::Edit::Paste(Arc::new(text.into())),
|
|
||||||
)));
|
|
||||||
}
|
|
||||||
|
|
||||||
fn save(app: &mut App, path: &std::path::Path) {
|
|
||||||
let receipt = write_snapshot(
|
|
||||||
app.canvas_document,
|
|
||||||
app.document.revision(),
|
|
||||||
app.document.snapshot(),
|
|
||||||
path.to_owned(),
|
|
||||||
app.disk_project.clone(),
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
let _ = app.update(Message::Saved(Ok(Some(receipt))));
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn repair_to_previous_saved_bytes_requires_save_at_new_destination_and_guards_close() {
|
|
||||||
for extra in [
|
|
||||||
" include \"missing.arcadia\";\r\n",
|
|
||||||
" oa_activity assess \"Duplicate\" id \"9e8f0000-0000-4000-8000-000000000003\" {}\r\n",
|
|
||||||
] {
|
|
||||||
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 invalid = VALID.strip_suffix("}\r\n").unwrap().to_owned() + extra + "}\r\n";
|
|
||||||
std::fs::write(&first_path, VALID).unwrap();
|
|
||||||
std::fs::write(&second_path, &invalid).unwrap();
|
|
||||||
let mut app = App::with_project(Project::empty());
|
|
||||||
open(&mut app, &first_path);
|
|
||||||
assert!(!app.dirty());
|
|
||||||
let before = app.document.snapshot();
|
|
||||||
let revision = app.document.revision();
|
|
||||||
open(&mut app, &second_path);
|
|
||||||
assert!(!app.source_workspace.applied);
|
|
||||||
assert!(Arc::ptr_eq(&before, &app.document.snapshot()));
|
|
||||||
edit(&mut app, VALID);
|
|
||||||
assert!(app.apply_source(), "{}", app.status);
|
|
||||||
assert!(app.source_workspace.applied);
|
|
||||||
assert!(!app.source_dirty());
|
|
||||||
assert_eq!(app.document.bundle(), &before.bundle);
|
|
||||||
assert_eq!(app.project(), &before.decoded.project);
|
|
||||||
assert_eq!(app.document.revision(), revision);
|
|
||||||
assert!(
|
|
||||||
!app.document.can_undo(),
|
|
||||||
"Equal content creates no history step"
|
|
||||||
);
|
|
||||||
assert!(app.document.dirty());
|
|
||||||
assert_eq!(app.hosted_label(), "Unsaved changes");
|
|
||||||
assert_eq!(std::fs::read(&second_path).unwrap(), invalid.as_bytes());
|
|
||||||
assert_eq!(std::fs::read(&first_path).unwrap(), VALID.as_bytes());
|
|
||||||
let close = window::Id::unique();
|
|
||||||
let task = app.update(Message::Request(Pending::Close(close)));
|
|
||||||
assert!(iced_runtime::task::into_stream(task).is_none());
|
|
||||||
assert!(matches!(app.pending, Some(Pending::Close(id)) if id == close));
|
|
||||||
let _ = app.update(Message::Cancel);
|
|
||||||
save(&mut app, &second_path);
|
|
||||||
assert!(!app.dirty());
|
|
||||||
assert_eq!(app.hosted_label(), "All changes saved");
|
|
||||||
assert_eq!(std::fs::read(&second_path).unwrap(), VALID.as_bytes());
|
|
||||||
assert_eq!(std::fs::read(&first_path).unwrap(), VALID.as_bytes());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn repair_history_compares_to_new_disk_baseline_and_then_successful_save() {
|
|
||||||
let directory = tempfile::tempdir().unwrap();
|
|
||||||
let path = directory
|
|
||||||
.path()
|
|
||||||
.canonicalize()
|
|
||||||
.unwrap()
|
|
||||||
.join("project.arcadia");
|
|
||||||
std::fs::write(&path, VALID).unwrap();
|
|
||||||
let mut app = App::with_project(Project::empty());
|
|
||||||
open(&mut app, &path);
|
|
||||||
let before = app.document.snapshot();
|
|
||||||
let invalid = format!("{VALID} unfinished {{");
|
|
||||||
std::fs::write(&path, &invalid).unwrap();
|
|
||||||
open(&mut app, &path);
|
|
||||||
let repaired = format!("{VALID}// Repaired rationale\r\n");
|
|
||||||
edit(&mut app, &repaired);
|
|
||||||
assert!(app.apply_source());
|
|
||||||
assert!(app.dirty());
|
|
||||||
let _ = app.update(Message::Undo);
|
|
||||||
assert_eq!(app.document.bundle(), &before.bundle);
|
|
||||||
assert!(
|
|
||||||
app.dirty(),
|
|
||||||
"Old saved bytes are not saved at the repair destination"
|
|
||||||
);
|
|
||||||
let _ = app.update(Message::Redo);
|
|
||||||
assert!(app.dirty());
|
|
||||||
assert_eq!(std::fs::read(&path).unwrap(), invalid.as_bytes());
|
|
||||||
|
|
||||||
std::fs::write(&path, "external edit").unwrap();
|
|
||||||
let failed = write_snapshot(
|
|
||||||
app.canvas_document,
|
|
||||||
app.document.revision(),
|
|
||||||
app.document.snapshot(),
|
|
||||||
path.clone(),
|
|
||||||
app.disk_project.clone(),
|
|
||||||
)
|
|
||||||
.unwrap_err();
|
|
||||||
let _ = app.update(Message::Saved(Err(failed)));
|
|
||||||
assert!(app.dirty());
|
|
||||||
assert_eq!(std::fs::read(&path).unwrap(), b"external edit");
|
|
||||||
std::fs::write(&path, &invalid).unwrap();
|
|
||||||
save(&mut app, &path);
|
|
||||||
assert!(!app.dirty());
|
|
||||||
let _ = app.update(Message::Undo);
|
|
||||||
assert!(app.dirty());
|
|
||||||
assert_eq!(app.document.bundle(), &before.bundle);
|
|
||||||
let _ = app.update(Message::Redo);
|
|
||||||
assert!(!app.dirty(), "Redo to the new saved snapshot is clean");
|
|
||||||
assert_eq!(std::fs::read(&path).unwrap(), repaired.as_bytes());
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn valid_equal_content_at_distinct_destinations_stays_clean() {
|
|
||||||
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");
|
|
||||||
std::fs::write(&first_path, VALID).unwrap();
|
|
||||||
std::fs::write(&second_path, VALID).unwrap();
|
|
||||||
let mut app = App::with_project(Project::empty());
|
|
||||||
open(&mut app, &first_path);
|
|
||||||
let before = app.document.bundle().clone();
|
|
||||||
open(&mut app, &second_path);
|
|
||||||
assert_eq!(app.document.bundle(), &before);
|
|
||||||
assert_eq!(app.path.as_ref(), Some(&second_path));
|
|
||||||
assert!(!app.dirty());
|
|
||||||
assert_eq!(app.hosted_label(), "All changes saved");
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn recovering_applied_repair_rebinds_rolled_back_disk_bytes_without_changing_model() {
|
|
||||||
let first = tempfile::tempdir().unwrap();
|
|
||||||
let second = tempfile::tempdir().unwrap();
|
|
||||||
let first_path = first.path().canonicalize().unwrap().join("project.arcadia");
|
|
||||||
let root = second.path().canonicalize().unwrap();
|
|
||||||
let path = root.join("project.arcadia");
|
|
||||||
let before = VALID.replace("Repair 救援", "Before 救援");
|
|
||||||
std::fs::write(&first_path, VALID).unwrap();
|
|
||||||
std::fs::write(&path, VALID).unwrap();
|
|
||||||
let journal = root.join(".arcadia-save-project.arcadia.journal");
|
|
||||||
std::fs::create_dir(&journal).unwrap();
|
|
||||||
std::fs::write(
|
|
||||||
journal.join("journal.json"),
|
|
||||||
br#"{"version":1,"entry":"project.arcadia","files":[{"path":"project.arcadia","before":true,"write":true}]}"#,
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
std::fs::write(journal.join("0.before"), &before).unwrap();
|
|
||||||
std::fs::write(journal.join("0.after"), VALID).unwrap();
|
|
||||||
let mut app = App::with_project(Project::empty());
|
|
||||||
open(&mut app, &first_path);
|
|
||||||
let accepted = app.document.snapshot();
|
|
||||||
open(&mut app, &path);
|
|
||||||
assert_eq!(app.pending_recovery.as_ref(), Some(&path));
|
|
||||||
assert!(!app.source_workspace.applied);
|
|
||||||
assert!(app.apply_source());
|
|
||||||
assert!(
|
|
||||||
!app.dirty(),
|
|
||||||
"Current bytes still match disk before rollback"
|
|
||||||
);
|
|
||||||
let _ = app.update(Message::SourceRecovered(recover_snapshot(path.clone())));
|
|
||||||
assert!(app.pending_recovery.is_none());
|
|
||||||
assert!(!journal.exists());
|
|
||||||
assert_eq!(std::fs::read(&path).unwrap(), before.as_bytes());
|
|
||||||
assert!(Arc::ptr_eq(&accepted, &app.document.snapshot()));
|
|
||||||
assert!(!app.source_dirty());
|
|
||||||
assert!(app.dirty(), "Recovery changed disk, not the accepted model");
|
|
||||||
assert_eq!(app.hosted_label(), "Unsaved changes");
|
|
||||||
save(&mut app, &path);
|
|
||||||
assert!(!app.dirty());
|
|
||||||
assert_eq!(std::fs::read(&path).unwrap(), VALID.as_bytes());
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn recovery_missing_entry_or_failed_reload_preserves_current_destination_save_authority() {
|
|
||||||
for (current_destination, failed_reload) in
|
|
||||||
[(true, false), (false, false), (true, true), (false, true)]
|
|
||||||
{
|
|
||||||
let directory = tempfile::tempdir().unwrap();
|
|
||||||
let root = directory.path().canonicalize().unwrap();
|
|
||||||
let path = root.join("project.arcadia");
|
|
||||||
std::fs::write(&path, VALID).unwrap();
|
|
||||||
let mut app = App::with_project(Project::empty());
|
|
||||||
open(&mut app, &path);
|
|
||||||
let accepted = app.document.snapshot();
|
|
||||||
let journal = root.join(".arcadia-save-project.arcadia.journal");
|
|
||||||
std::fs::create_dir(&journal).unwrap();
|
|
||||||
std::fs::write(
|
|
||||||
journal.join("journal.json"),
|
|
||||||
br#"{"version":1,"entry":"project.arcadia","files":[{"path":"project.arcadia","before":false,"write":true}]}"#,
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
std::fs::write(journal.join("0.after"), VALID).unwrap();
|
|
||||||
open(&mut app, &path);
|
|
||||||
assert!(app.apply_source());
|
|
||||||
assert!(!app.dirty());
|
|
||||||
let destination = tempfile::tempdir().unwrap();
|
|
||||||
let saved_elsewhere = destination
|
|
||||||
.path()
|
|
||||||
.canonicalize()
|
|
||||||
.unwrap()
|
|
||||||
.join("project.arcadia");
|
|
||||||
if !current_destination {
|
|
||||||
save(&mut app, &saved_elsewhere);
|
|
||||||
assert_eq!(app.path.as_ref(), Some(&saved_elsewhere));
|
|
||||||
assert_eq!(app.pending_recovery.as_ref(), Some(&path));
|
|
||||||
}
|
|
||||||
let mut receipt = recover_snapshot(path.clone()).unwrap();
|
|
||||||
assert!(
|
|
||||||
receipt.disk.as_ref().unwrap().bundle.files.is_empty(),
|
|
||||||
"Missing entry reloads as an empty repair workspace"
|
|
||||||
);
|
|
||||||
if failed_reload {
|
|
||||||
// Separately exercise the adapter's successful-recovery/failed-read
|
|
||||||
// boundary; first-save rollback itself does not cause a read error.
|
|
||||||
receipt.disk = Err("Injected post-recovery reload failure".into());
|
|
||||||
}
|
|
||||||
let _ = app.update(Message::SourceRecovered(Ok(receipt)));
|
|
||||||
assert!(!path.exists());
|
|
||||||
assert!(!journal.exists());
|
|
||||||
assert!(app.pending_recovery.is_none());
|
|
||||||
assert!(Arc::ptr_eq(&accepted, &app.document.snapshot()));
|
|
||||||
assert_eq!(app.dirty(), current_destination);
|
|
||||||
if current_destination {
|
|
||||||
let _ = app.update(Message::Request(Pending::New));
|
|
||||||
assert!(matches!(app.pending, Some(Pending::New)));
|
|
||||||
} else {
|
|
||||||
assert_eq!(app.path.as_ref(), Some(&saved_elsewhere));
|
|
||||||
assert_eq!(std::fs::read(&saved_elsewhere).unwrap(), VALID.as_bytes());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,463 +0,0 @@
|
|||||||
//! 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(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
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,
|
|
||||||
}),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
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.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.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
|
|
||||||
))
|
|
||||||
}
|
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
return nav::interaction::guarded_focus(
|
|
||||||
self.source_editor_id(),
|
|
||||||
self.source_symbols.raw_interaction.clone(),
|
|
||||||
raw_interaction,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
Task::none()
|
|
||||||
}
|
|
||||||
|
|
||||||
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 => {
|
|
||||||
self.source_symbols.open = false;
|
|
||||||
self.source_symbols.results = None;
|
|
||||||
self.source_symbols.notice = 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.
|
|
||||||
self.source_symbols.open |= self.source_symbols.notice.is_some();
|
|
||||||
}
|
|
||||||
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.source_symbols.open = true;
|
|
||||||
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.source_workspace.reset_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.results = None;
|
|
||||||
self.source_symbols.notice = None;
|
|
||||||
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,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
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 = self
|
|
||||||
.source_symbols
|
|
||||||
.request
|
|
||||||
.take()
|
|
||||||
.is_some_and(|current| current.job == request.job)
|
|
||||||
&& 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();
|
|
||||||
if !wanted {
|
|
||||||
return Task::none();
|
|
||||||
}
|
|
||||||
match completion.result {
|
|
||||||
Ok((snapshot, results)) if self.source_snapshot_matches(&snapshot) => {
|
|
||||||
self.source_symbols.cache = Some(snapshot);
|
|
||||||
self.source_symbols.results = Some(results.clone());
|
|
||||||
if 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;
|
|
||||||
@@ -95,7 +95,7 @@ pub struct Document {
|
|||||||
past: Vec<HistoryEntry>,
|
past: Vec<HistoryEntry>,
|
||||||
future: Vec<HistoryEntry>,
|
future: Vec<HistoryEntry>,
|
||||||
current_bytes: usize,
|
current_bytes: usize,
|
||||||
saved: Option<Arc<SourceBundle>>,
|
saved: Arc<SourceBundle>,
|
||||||
revision: u64,
|
revision: u64,
|
||||||
view_index: std::cell::OnceCell<oa_core::view_options::ViewIndex>,
|
view_index: std::cell::OnceCell<oa_core::view_options::ViewIndex>,
|
||||||
limits: ProjectLimits,
|
limits: ProjectLimits,
|
||||||
@@ -125,7 +125,7 @@ impl Document {
|
|||||||
current_bytes,
|
current_bytes,
|
||||||
past: Vec::new(),
|
past: Vec::new(),
|
||||||
future: Vec::new(),
|
future: Vec::new(),
|
||||||
saved: Some(Arc::new(bundle)),
|
saved: Arc::new(bundle),
|
||||||
revision: 0,
|
revision: 0,
|
||||||
view_index: Default::default(),
|
view_index: Default::default(),
|
||||||
limits,
|
limits,
|
||||||
@@ -156,7 +156,7 @@ impl Document {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn dirty(&self) -> bool {
|
pub fn dirty(&self) -> bool {
|
||||||
self.recovered_unsaved || self.saved.as_deref() != Some(self.bundle())
|
self.recovered_unsaved || self.bundle() != self.saved.as_ref()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Recovered work is a detached copy until explicitly saved by its user.
|
/// Recovered work is a detached copy until explicitly saved by its user.
|
||||||
@@ -181,24 +181,10 @@ impl Document {
|
|||||||
/// Records the bytes actually saved, even when later edits remain current.
|
/// Records the bytes actually saved, even when later edits remain current.
|
||||||
/// The I/O adapter owns document identity and save completion ordering.
|
/// The I/O adapter owns document identity and save completion ordering.
|
||||||
pub fn mark_saved(&mut self, snapshot: Arc<CompiledSourceProject>) {
|
pub fn mark_saved(&mut self, snapshot: Arc<CompiledSourceProject>) {
|
||||||
self.saved = Some(Arc::new(snapshot.bundle.clone()));
|
self.saved = Arc::new(snapshot.bundle.clone());
|
||||||
self.recovered_unsaved = false;
|
self.recovered_unsaved = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Bind an installed or recovered repair destination to source read there.
|
|
||||||
/// These bytes may be invalid or differ from the retained accepted model,
|
|
||||||
/// but must replace the previous disk baseline. Accepted history is retained;
|
|
||||||
/// applying or undoing to old saved content does not save this destination.
|
|
||||||
pub(crate) fn bind_repair_baseline(&mut self, source: SourceBundle) {
|
|
||||||
self.saved = Some(Arc::new(source));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Recovery changed the current destination, but its source could not be
|
|
||||||
/// reloaded. No accepted or historical snapshot is known to be saved there.
|
|
||||||
pub(crate) fn invalidate_saved_baseline(&mut self) {
|
|
||||||
self.saved = None;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Check a source Save as before writing any files. A retained included file
|
/// Check a source Save as before writing any files. A retained included file
|
||||||
/// must never be displaced by the new entry, including on a later Undo.
|
/// must never be displaced by the new entry, including on a later Undo.
|
||||||
pub fn check_save_entry(&self, entry: &str) -> Result<(), DocumentError> {
|
pub fn check_save_entry(&self, entry: &str) -> Result<(), DocumentError> {
|
||||||
|
|||||||
@@ -785,7 +785,7 @@ fn article(topic: Topic) -> Article {
|
|||||||
const {
|
const {
|
||||||
Article {
|
Article {
|
||||||
summary: "The text editor and graphical forms edit the same model. Source projects preserve file organization and comments for human review, automation and version control.",
|
summary: "The text editor and graphical forms edit the same model. Source projects preserve file organization and comments for human review, automation and version control.",
|
||||||
keywords: "text textual source language syntax highlighting lint parser git aliases uuid identity rename diff merge restructuredtext spec canonical parity definition references lexical navigation F12 back",
|
keywords: "text textual source language syntax highlighting lint parser git aliases uuid identity rename diff merge restructuredtext spec canonical parity",
|
||||||
sections: &[
|
sections: &[
|
||||||
walkthrough(
|
walkthrough(
|
||||||
"Edit and review source",
|
"Edit and review source",
|
||||||
@@ -798,14 +798,6 @@ fn article(topic: Topic) -> Article {
|
|||||||
"Save all writes the entry and its included UTF-8 files. Review the Git diff before committing, including relationships, traces and diagram changes that belong to the same engineering edit.",
|
"Save all writes the entry and its included UTF-8 files. Review the Git diff before committing, including relationships, traces and diagram changes that belong to the same engineering edit.",
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
explain(
|
|
||||||
"Follow definitions and lexical references",
|
|
||||||
"Place the caret on a declaration alias or an @reference. Choose Definition (F12) to locate its declaration, or References (Shift+F12) to list lexical uses. Choose a row when a definition is ambiguous, draft or detached. Lexical uses exclude comments and strings; they do not establish typed relationships or resolve an ambiguous alias to one declaration. Back (Alt+Left) returns to the previous source location; if that draft changed, it restores the current cursor instead of an obsolete selection. These shortcuts work while the source editor has focus; the Text toolbar also offers the actions.",
|
|
||||||
),
|
|
||||||
explain(
|
|
||||||
"Read the navigation scope",
|
|
||||||
"Queries inspect bounded snapshots of currently loaded drafts, without applying them or loading missing included files. The panel identifies partial scope, draft evidence, detached or unverified files, and alias or ID collisions. Counts show total, displayed and omitted rows. A missing result in partial scope does not establish that the whole project has no match. If sources change, stale rows are disabled; run Definition or References again. Row locations use one-based lines and UTF-8 byte columns. Navigation preserves your source drafts and the accepted model.",
|
|
||||||
),
|
|
||||||
explain(
|
explain(
|
||||||
"Names, aliases and IDs serve different purposes",
|
"Names, aliases and IDs serve different purposes",
|
||||||
"The displayed name is engineering prose. A stable @alias is the readable source reference and need not change when the name changes. UUID identity distinguishes the persistent record. Preserve IDs when revising the same engineering object; changing identity is a deliberate operation that affects references.",
|
"The displayed name is engineering prose. A stable @alias is the readable source reference and need not change when the name changes. UUID identity distinguishes the persistent record. Preserve IDs when revising the same engineering object; changing identity is a deliberate operation that affects references.",
|
||||||
|
|||||||
@@ -1,9 +1,4 @@
|
|||||||
//! Literal source search and line navigation, independent of accepted model state.
|
//! Literal source search and line navigation, independent of accepted model state.
|
||||||
mod controller;
|
|
||||||
pub mod interaction;
|
|
||||||
pub mod query;
|
|
||||||
pub mod symbols;
|
|
||||||
pub use controller::*;
|
|
||||||
use iced::widget::text_editor::{Cursor, Position};
|
use iced::widget::text_editor::{Cursor, Position};
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
|
|||||||
@@ -1,125 +0,0 @@
|
|||||||
//! Ephemeral editor navigation; no model commands or filesystem operations.
|
|
||||||
use super::query;
|
|
||||||
use iced::widget::text_editor::{Cursor, Position};
|
|
||||||
use oa_core::Id;
|
|
||||||
use std::sync::Arc;
|
|
||||||
use std::sync::atomic::AtomicU64;
|
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
|
||||||
pub enum SymbolEvent {
|
|
||||||
Query(query::Action),
|
|
||||||
Back,
|
|
||||||
Close,
|
|
||||||
Choose {
|
|
||||||
stamp: query::QueryStamp,
|
|
||||||
reference: bool,
|
|
||||||
index: usize,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Identity of the mounted source view that emitted an action. Message queues
|
|
||||||
/// may outlive that view; request-time stamping alone cannot detect replay.
|
|
||||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
|
||||||
pub struct SymbolContext {
|
|
||||||
pub session: Id,
|
|
||||||
pub path: String,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
|
||||||
pub struct HistoryEntry {
|
|
||||||
pub session: Id,
|
|
||||||
pub path: String,
|
|
||||||
pub generation: u64,
|
|
||||||
pub cursor: Cursor,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
|
||||||
pub struct Request {
|
|
||||||
pub job: Id,
|
|
||||||
pub interaction: Id,
|
|
||||||
pub raw_interaction: u64,
|
|
||||||
pub stamp: query::QueryStamp,
|
|
||||||
pub path: String,
|
|
||||||
pub offset: usize,
|
|
||||||
pub cursor: Cursor,
|
|
||||||
pub action: query::Action,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
|
||||||
pub struct Completion {
|
|
||||||
pub request: Request,
|
|
||||||
pub result: Result<(Arc<query::Snapshot>, Arc<query::Results>), String>,
|
|
||||||
}
|
|
||||||
|
|
||||||
pub struct Reveal {
|
|
||||||
pub ticket: Id,
|
|
||||||
pub interaction: Id,
|
|
||||||
pub raw_interaction: u64,
|
|
||||||
pub snapshot: query::SnapshotKey,
|
|
||||||
pub path: String,
|
|
||||||
}
|
|
||||||
|
|
||||||
pub struct SymbolState {
|
|
||||||
pub open: bool,
|
|
||||||
pub interaction: Id,
|
|
||||||
pub raw_interaction: Arc<AtomicU64>,
|
|
||||||
pub serial: u64,
|
|
||||||
pub in_flight: Option<Id>,
|
|
||||||
pub request: Option<Request>,
|
|
||||||
pub cache: Option<Arc<query::Snapshot>>,
|
|
||||||
pub results: Option<Arc<query::Results>>,
|
|
||||||
pub notice: Option<String>,
|
|
||||||
pub back: Vec<HistoryEntry>,
|
|
||||||
pub reveal: Option<Reveal>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Default for SymbolState {
|
|
||||||
fn default() -> Self {
|
|
||||||
Self {
|
|
||||||
open: false,
|
|
||||||
interaction: Id::new_v4(),
|
|
||||||
raw_interaction: Arc::new(AtomicU64::new(0)),
|
|
||||||
serial: 0,
|
|
||||||
in_flight: None,
|
|
||||||
request: None,
|
|
||||||
cache: None,
|
|
||||||
results: None,
|
|
||||||
notice: None,
|
|
||||||
back: Vec::new(),
|
|
||||||
reveal: None,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Iced uses zero-based UTF-8 byte columns. Reject stale or split-codepoint
|
|
||||||
/// coordinates; do not normalize CRLF or silently clamp query destinations.
|
|
||||||
pub fn byte_offset(text: &str, position: Position) -> Option<usize> {
|
|
||||||
let start = if position.line == 0 {
|
|
||||||
0
|
|
||||||
} else {
|
|
||||||
text.match_indices('\n').nth(position.line - 1)?.0 + 1
|
|
||||||
};
|
|
||||||
let end = text[start..]
|
|
||||||
.find('\n')
|
|
||||||
.map_or(text.len(), |end| start + end);
|
|
||||||
let offset = start.checked_add(position.column)?;
|
|
||||||
(offset <= end && text.is_char_boundary(offset)).then_some(offset)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn cursor_offset(text: &str, cursor: Cursor) -> Option<usize> {
|
|
||||||
let position = cursor.selection.map_or(cursor.position, |selection| {
|
|
||||||
if (selection.line, selection.column) < (cursor.position.line, cursor.position.column) {
|
|
||||||
selection
|
|
||||||
} else {
|
|
||||||
cursor.position
|
|
||||||
}
|
|
||||||
});
|
|
||||||
byte_offset(text, position)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn exact_cursor(text: &str, cursor: Cursor) -> bool {
|
|
||||||
byte_offset(text, cursor.position).is_some()
|
|
||||||
&& cursor
|
|
||||||
.selection
|
|
||||||
.is_none_or(|position| byte_offset(text, position).is_some())
|
|
||||||
}
|
|
||||||
@@ -1,284 +0,0 @@
|
|||||||
//! Raw input invalidation and focus checks at widget-operation execution time.
|
|
||||||
use iced::advanced::{Clipboard, Layout, Shell, Widget, layout, overlay, renderer, widget};
|
|
||||||
use iced::{Element, Event, Length, Rectangle, Size, Task, Vector, keyboard, mouse, touch};
|
|
||||||
use std::sync::{
|
|
||||||
Arc,
|
|
||||||
atomic::{AtomicU64, Ordering},
|
|
||||||
};
|
|
||||||
|
|
||||||
/// Exhaustion fails closed: a saturated clock can never authorize navigation.
|
|
||||||
/// Replace the clock with a new workspace/controller, rather than wrapping it.
|
|
||||||
pub fn is_current(clock: &AtomicU64, expected: u64) -> bool {
|
|
||||||
expected != u64::MAX && clock.load(Ordering::Acquire) == expected
|
|
||||||
}
|
|
||||||
|
|
||||||
fn invalidate(clock: &AtomicU64, event: &Event) {
|
|
||||||
if matches!(
|
|
||||||
event,
|
|
||||||
Event::Keyboard(keyboard::Event::KeyPressed { .. })
|
|
||||||
| Event::Mouse(mouse::Event::ButtonPressed(_) | mouse::Event::WheelScrolled { .. })
|
|
||||||
| Event::Touch(touch::Event::FingerPressed { .. })
|
|
||||||
| Event::Window(iced::window::Event::Unfocused)
|
|
||||||
) {
|
|
||||||
let _ = clock.fetch_update(Ordering::AcqRel, Ordering::Acquire, |value| {
|
|
||||||
Some(value.saturating_add(1))
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Transparent, including overlays: invalidate before the child can capture input.
|
|
||||||
pub fn observe<'a, Message: 'a, Theme: 'a, Renderer: renderer::Renderer + 'a>(
|
|
||||||
content: Element<'a, Message, Theme, Renderer>,
|
|
||||||
clock: Arc<AtomicU64>,
|
|
||||||
) -> Element<'a, Message, Theme, Renderer> {
|
|
||||||
Element::new(Observed { content, clock })
|
|
||||||
}
|
|
||||||
|
|
||||||
struct Observed<'a, Message, Theme, Renderer> {
|
|
||||||
content: Element<'a, Message, Theme, Renderer>,
|
|
||||||
clock: Arc<AtomicU64>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<Message, Theme, Renderer: renderer::Renderer> Widget<Message, Theme, Renderer>
|
|
||||||
for Observed<'_, Message, Theme, Renderer>
|
|
||||||
{
|
|
||||||
fn size(&self) -> Size<Length> {
|
|
||||||
self.content.as_widget().size()
|
|
||||||
}
|
|
||||||
fn size_hint(&self) -> Size<Length> {
|
|
||||||
self.content.as_widget().size_hint()
|
|
||||||
}
|
|
||||||
fn tag(&self) -> widget::tree::Tag {
|
|
||||||
self.content.as_widget().tag()
|
|
||||||
}
|
|
||||||
fn state(&self) -> widget::tree::State {
|
|
||||||
self.content.as_widget().state()
|
|
||||||
}
|
|
||||||
fn children(&self) -> Vec<widget::Tree> {
|
|
||||||
self.content.as_widget().children()
|
|
||||||
}
|
|
||||||
fn diff(&self, tree: &mut widget::Tree) {
|
|
||||||
self.content.as_widget().diff(tree);
|
|
||||||
}
|
|
||||||
fn layout(
|
|
||||||
&mut self,
|
|
||||||
tree: &mut widget::Tree,
|
|
||||||
renderer: &Renderer,
|
|
||||||
limits: &layout::Limits,
|
|
||||||
) -> layout::Node {
|
|
||||||
self.content.as_widget_mut().layout(tree, renderer, limits)
|
|
||||||
}
|
|
||||||
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, renderer, theme, style, layout, cursor, viewport);
|
|
||||||
}
|
|
||||||
fn operate(
|
|
||||||
&mut self,
|
|
||||||
tree: &mut widget::Tree,
|
|
||||||
layout: Layout<'_>,
|
|
||||||
renderer: &Renderer,
|
|
||||||
operation: &mut dyn widget::Operation,
|
|
||||||
) {
|
|
||||||
self.content
|
|
||||||
.as_widget_mut()
|
|
||||||
.operate(tree, 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,
|
|
||||||
) {
|
|
||||||
invalidate(&self.clock, event);
|
|
||||||
self.content.as_widget_mut().update(
|
|
||||||
tree, event, layout, cursor, renderer, clipboard, shell, 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, layout, cursor, viewport, renderer)
|
|
||||||
}
|
|
||||||
fn overlay<'a>(
|
|
||||||
&'a mut self,
|
|
||||||
tree: &'a mut widget::Tree,
|
|
||||||
layout: Layout<'a>,
|
|
||||||
renderer: &Renderer,
|
|
||||||
viewport: &Rectangle,
|
|
||||||
translation: Vector,
|
|
||||||
) -> Option<overlay::Element<'a, Message, Theme, Renderer>> {
|
|
||||||
let clock = self.clock.clone();
|
|
||||||
self.content
|
|
||||||
.as_widget_mut()
|
|
||||||
.overlay(tree, layout, renderer, viewport, translation)
|
|
||||||
.map(|content| overlay::Element::new(Box::new(ObservedOverlay { content, clock })))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
struct ObservedOverlay<'a, Message, Theme, Renderer> {
|
|
||||||
content: overlay::Element<'a, Message, Theme, Renderer>,
|
|
||||||
clock: Arc<AtomicU64>,
|
|
||||||
}
|
|
||||||
impl<Message, Theme, Renderer: renderer::Renderer> overlay::Overlay<Message, Theme, Renderer>
|
|
||||||
for ObservedOverlay<'_, Message, Theme, Renderer>
|
|
||||||
{
|
|
||||||
fn layout(&mut self, renderer: &Renderer, bounds: Size) -> layout::Node {
|
|
||||||
self.content.as_overlay_mut().layout(renderer, bounds)
|
|
||||||
}
|
|
||||||
fn draw(
|
|
||||||
&self,
|
|
||||||
renderer: &mut Renderer,
|
|
||||||
theme: &Theme,
|
|
||||||
style: &renderer::Style,
|
|
||||||
layout: Layout<'_>,
|
|
||||||
cursor: mouse::Cursor,
|
|
||||||
) {
|
|
||||||
self.content
|
|
||||||
.as_overlay()
|
|
||||||
.draw(renderer, theme, style, layout, cursor);
|
|
||||||
}
|
|
||||||
fn operate(
|
|
||||||
&mut self,
|
|
||||||
layout: Layout<'_>,
|
|
||||||
renderer: &Renderer,
|
|
||||||
operation: &mut dyn widget::Operation,
|
|
||||||
) {
|
|
||||||
self.content
|
|
||||||
.as_overlay_mut()
|
|
||||||
.operate(layout, renderer, operation);
|
|
||||||
}
|
|
||||||
fn update(
|
|
||||||
&mut self,
|
|
||||||
event: &Event,
|
|
||||||
layout: Layout<'_>,
|
|
||||||
cursor: mouse::Cursor,
|
|
||||||
renderer: &Renderer,
|
|
||||||
clipboard: &mut dyn Clipboard,
|
|
||||||
shell: &mut Shell<'_, Message>,
|
|
||||||
) {
|
|
||||||
invalidate(&self.clock, event);
|
|
||||||
self.content
|
|
||||||
.as_overlay_mut()
|
|
||||||
.update(event, layout, cursor, renderer, clipboard, shell);
|
|
||||||
}
|
|
||||||
fn mouse_interaction(
|
|
||||||
&self,
|
|
||||||
layout: Layout<'_>,
|
|
||||||
cursor: mouse::Cursor,
|
|
||||||
renderer: &Renderer,
|
|
||||||
) -> mouse::Interaction {
|
|
||||||
self.content
|
|
||||||
.as_overlay()
|
|
||||||
.mouse_interaction(layout, cursor, renderer)
|
|
||||||
}
|
|
||||||
fn overlay<'a>(
|
|
||||||
&'a mut self,
|
|
||||||
layout: Layout<'a>,
|
|
||||||
renderer: &Renderer,
|
|
||||||
) -> Option<overlay::Element<'a, Message, Theme, Renderer>> {
|
|
||||||
let clock = self.clock.clone();
|
|
||||||
self.content
|
|
||||||
.as_overlay_mut()
|
|
||||||
.overlay(layout, renderer)
|
|
||||||
.map(|content| overlay::Element::new(Box::new(ObservedOverlay { content, clock })))
|
|
||||||
}
|
|
||||||
fn index(&self) -> f32 {
|
|
||||||
self.content.as_overlay().index()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Inspect all focus owners, then focus only the mounted target. Iced executes
|
|
||||||
/// Operation::Chain synchronously, without an intervening input event. Both
|
|
||||||
/// traversals recheck the raw clock; no result message authorizes later focus.
|
|
||||||
pub fn guarded_focus<Message: Send + 'static>(
|
|
||||||
target: widget::Id,
|
|
||||||
clock: Arc<AtomicU64>,
|
|
||||||
expected: u64,
|
|
||||||
) -> Task<Message> {
|
|
||||||
widget::operate(GuardedFocus::new(target, clock, expected))
|
|
||||||
}
|
|
||||||
|
|
||||||
struct GuardedFocus {
|
|
||||||
target: widget::Id,
|
|
||||||
clock: Arc<AtomicU64>,
|
|
||||||
expected: u64,
|
|
||||||
target_count: usize,
|
|
||||||
foreign_focus: bool,
|
|
||||||
apply: bool,
|
|
||||||
}
|
|
||||||
impl GuardedFocus {
|
|
||||||
fn new(target: widget::Id, clock: Arc<AtomicU64>, expected: u64) -> Self {
|
|
||||||
Self {
|
|
||||||
target,
|
|
||||||
clock,
|
|
||||||
expected,
|
|
||||||
target_count: 0,
|
|
||||||
foreign_focus: false,
|
|
||||||
apply: false,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
impl<Message: 'static> widget::Operation<Message> for GuardedFocus {
|
|
||||||
fn traverse(&mut self, visit: &mut dyn FnMut(&mut dyn widget::Operation<Message>)) {
|
|
||||||
if is_current(&self.clock, self.expected) {
|
|
||||||
visit(self);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fn focusable(
|
|
||||||
&mut self,
|
|
||||||
id: Option<&widget::Id>,
|
|
||||||
_: Rectangle,
|
|
||||||
state: &mut dyn widget::operation::Focusable,
|
|
||||||
) {
|
|
||||||
if !is_current(&self.clock, self.expected) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if id == Some(&self.target) {
|
|
||||||
self.target_count += 1;
|
|
||||||
if self.apply {
|
|
||||||
state.focus();
|
|
||||||
}
|
|
||||||
} else if state.is_focused() {
|
|
||||||
self.foreign_focus = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fn finish(&self) -> widget::operation::Outcome<Message> {
|
|
||||||
if !self.apply
|
|
||||||
&& self.target_count == 1
|
|
||||||
&& !self.foreign_focus
|
|
||||||
&& is_current(&self.clock, self.expected)
|
|
||||||
{
|
|
||||||
widget::operation::Outcome::Chain(Box::new(Self {
|
|
||||||
apply: true,
|
|
||||||
..Self::new(self.target.clone(), self.clock.clone(), self.expected)
|
|
||||||
}))
|
|
||||||
} else {
|
|
||||||
widget::operation::Outcome::None
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(all(test, debug_assertions))]
|
|
||||||
mod tests;
|
|
||||||
@@ -1,190 +0,0 @@
|
|||||||
use super::*;
|
|
||||||
use iced::advanced::widget::operation::{Focusable, Outcome};
|
|
||||||
use iced::widget::{column, text_input};
|
|
||||||
use iced::{Point, Theme};
|
|
||||||
|
|
||||||
#[derive(Default)]
|
|
||||||
struct FocusMap(Vec<(Option<widget::Id>, Rectangle, bool)>);
|
|
||||||
impl widget::Operation for FocusMap {
|
|
||||||
fn traverse(&mut self, visit: &mut dyn FnMut(&mut dyn widget::Operation)) {
|
|
||||||
visit(self);
|
|
||||||
}
|
|
||||||
fn focusable(&mut self, id: Option<&widget::Id>, bounds: Rectangle, state: &mut dyn Focusable) {
|
|
||||||
self.0.push((id.cloned(), bounds, state.is_focused()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
struct Mounted {
|
|
||||||
element: Element<'static, (), Theme, ()>,
|
|
||||||
tree: widget::Tree,
|
|
||||||
node: layout::Node,
|
|
||||||
}
|
|
||||||
impl Mounted {
|
|
||||||
fn new(clock: Arc<AtomicU64>) -> Self {
|
|
||||||
let content = column![
|
|
||||||
text_input("Editor", "source")
|
|
||||||
.id("editor")
|
|
||||||
.on_input(|_| ())
|
|
||||||
.padding(12),
|
|
||||||
text_input("Find", "")
|
|
||||||
.id("find")
|
|
||||||
.on_input(|_| ())
|
|
||||||
.padding(12),
|
|
||||||
]
|
|
||||||
.spacing(10)
|
|
||||||
.into();
|
|
||||||
let mut element = observe(content, clock);
|
|
||||||
let mut tree = widget::Tree::new(element.as_widget());
|
|
||||||
let node = element.as_widget_mut().layout(
|
|
||||||
&mut tree,
|
|
||||||
&(),
|
|
||||||
&layout::Limits::new(Size::ZERO, Size::new(400., 200.)),
|
|
||||||
);
|
|
||||||
Self {
|
|
||||||
element,
|
|
||||||
tree,
|
|
||||||
node,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fn pass(&mut self, operation: &mut dyn widget::Operation) {
|
|
||||||
self.element.as_widget_mut().operate(
|
|
||||||
&mut self.tree,
|
|
||||||
Layout::new(&self.node),
|
|
||||||
&(),
|
|
||||||
operation,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
fn run(&mut self, operation: impl widget::Operation + 'static) {
|
|
||||||
let mut next: Box<dyn widget::Operation> = Box::new(operation);
|
|
||||||
loop {
|
|
||||||
self.pass(next.as_mut());
|
|
||||||
match next.finish() {
|
|
||||||
Outcome::Chain(chained) => next = chained,
|
|
||||||
Outcome::None => break,
|
|
||||||
Outcome::Some(()) => panic!("focus must not publish an application message"),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fn focus(&mut self) -> FocusMap {
|
|
||||||
let mut focus = FocusMap::default();
|
|
||||||
self.pass(&mut focus);
|
|
||||||
focus
|
|
||||||
}
|
|
||||||
fn click(&mut self, id: &str) {
|
|
||||||
let bounds = self
|
|
||||||
.focus()
|
|
||||||
.0
|
|
||||||
.into_iter()
|
|
||||||
.find(|(found, _, _)| found.as_ref() == Some(&widget::Id::from(id.to_owned())))
|
|
||||||
.unwrap()
|
|
||||||
.1;
|
|
||||||
let mut messages = Vec::new();
|
|
||||||
let mut shell = Shell::new(&mut messages);
|
|
||||||
self.element.as_widget_mut().update(
|
|
||||||
&mut self.tree,
|
|
||||||
&Event::Mouse(mouse::Event::ButtonPressed(mouse::Button::Left)),
|
|
||||||
Layout::new(&self.node),
|
|
||||||
mouse::Cursor::Available(bounds.center()),
|
|
||||||
&(),
|
|
||||||
&mut iced::advanced::clipboard::Null,
|
|
||||||
&mut shell,
|
|
||||||
&Rectangle::with_size(Size::new(400., 200.)),
|
|
||||||
);
|
|
||||||
assert!(shell.is_event_captured());
|
|
||||||
assert!(
|
|
||||||
messages.is_empty(),
|
|
||||||
"focus-only click must not rely on App messages"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
fn focused(&mut self, id: &str) -> bool {
|
|
||||||
self.focus()
|
|
||||||
.0
|
|
||||||
.into_iter()
|
|
||||||
.find(|(found, _, _)| found.as_ref() == Some(&widget::Id::from(id.to_owned())))
|
|
||||||
.unwrap()
|
|
||||||
.2
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn captured_find_click_invalidates_without_app_message_and_preserves_focus() {
|
|
||||||
let clock = Arc::new(AtomicU64::new(0));
|
|
||||||
let mut ui = Mounted::new(clock.clone());
|
|
||||||
ui.run(GuardedFocus::new("editor".into(), clock.clone(), 0));
|
|
||||||
assert!(ui.focused("editor"));
|
|
||||||
ui.click("find");
|
|
||||||
assert!(!is_current(&clock, 0));
|
|
||||||
assert!(ui.focused("find"));
|
|
||||||
ui.run(GuardedFocus::new("editor".into(), clock.clone(), 0));
|
|
||||||
assert!(ui.focused("find"));
|
|
||||||
// Even a matching clock cannot authorize stealing another widget's focus.
|
|
||||||
ui.run(GuardedFocus::new(
|
|
||||||
"editor".into(),
|
|
||||||
clock.clone(),
|
|
||||||
clock.load(Ordering::Acquire),
|
|
||||||
));
|
|
||||||
assert!(ui.focused("find"));
|
|
||||||
assert!(!ui.focused("editor"));
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn focus_rechecks_clock_between_inspection_and_application_and_missing_target_is_inert() {
|
|
||||||
let clock = Arc::new(AtomicU64::new(0));
|
|
||||||
let mut ui = Mounted::new(clock.clone());
|
|
||||||
let mut operation = GuardedFocus::new("editor".into(), clock.clone(), 0);
|
|
||||||
ui.pass(&mut operation);
|
|
||||||
let Outcome::Chain(mut apply) = <GuardedFocus as widget::Operation<()>>::finish(&operation)
|
|
||||||
else {
|
|
||||||
panic!("mounted, unopposed target must be eligible");
|
|
||||||
};
|
|
||||||
clock.store(1, Ordering::Release);
|
|
||||||
ui.pass(apply.as_mut());
|
|
||||||
assert!(!ui.focused("editor"));
|
|
||||||
ui.run(GuardedFocus::new("editor".into(), clock.clone(), 1));
|
|
||||||
assert!(ui.focused("editor"));
|
|
||||||
ui.run(GuardedFocus::new("removed-editor".into(), clock, 1));
|
|
||||||
assert!(ui.focused("editor"));
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn raw_navigation_inputs_advance_but_passive_geometry_does_not_and_exhaustion_refuses() {
|
|
||||||
let clock = AtomicU64::new(0);
|
|
||||||
let events = [
|
|
||||||
Event::Keyboard(keyboard::Event::KeyPressed {
|
|
||||||
key: keyboard::Key::Named(keyboard::key::Named::ArrowLeft),
|
|
||||||
modified_key: keyboard::Key::Named(keyboard::key::Named::ArrowLeft),
|
|
||||||
physical_key: keyboard::key::Physical::Code(keyboard::key::Code::ArrowLeft),
|
|
||||||
location: keyboard::Location::Standard,
|
|
||||||
modifiers: keyboard::Modifiers::empty(),
|
|
||||||
text: None,
|
|
||||||
repeat: false,
|
|
||||||
}),
|
|
||||||
Event::Mouse(mouse::Event::ButtonPressed(mouse::Button::Left)),
|
|
||||||
Event::Mouse(mouse::Event::WheelScrolled {
|
|
||||||
delta: mouse::ScrollDelta::Lines { x: 0., y: 1. },
|
|
||||||
}),
|
|
||||||
Event::Touch(touch::Event::FingerPressed {
|
|
||||||
id: touch::Finger(1),
|
|
||||||
position: Point::ORIGIN,
|
|
||||||
}),
|
|
||||||
Event::Window(iced::window::Event::Unfocused),
|
|
||||||
];
|
|
||||||
for (index, event) in events.iter().enumerate() {
|
|
||||||
invalidate(&clock, event);
|
|
||||||
assert_eq!(clock.load(Ordering::Acquire), index as u64 + 1);
|
|
||||||
}
|
|
||||||
invalidate(
|
|
||||||
&clock,
|
|
||||||
&Event::Mouse(mouse::Event::CursorMoved {
|
|
||||||
position: Point::ORIGIN,
|
|
||||||
}),
|
|
||||||
);
|
|
||||||
invalidate(&clock, &Event::Window(iced::window::Event::Focused));
|
|
||||||
assert!(is_current(&clock, 5));
|
|
||||||
clock.store(u64::MAX - 1, Ordering::Release);
|
|
||||||
invalidate(&clock, &events[0]);
|
|
||||||
assert!(!is_current(&clock, u64::MAX));
|
|
||||||
invalidate(&clock, &events[0]);
|
|
||||||
assert_eq!(clock.load(Ordering::Acquire), u64::MAX);
|
|
||||||
assert!(!is_current(&clock, 0));
|
|
||||||
}
|
|
||||||
@@ -1,989 +0,0 @@
|
|||||||
use super::*;
|
|
||||||
|
|
||||||
const PROJECT: &str = "00000000-0000-0000-0000-000000000001";
|
|
||||||
const PUMP: &str = "00000000-0000-0000-0000-000000000002";
|
|
||||||
const LINK: &str = "00000000-0000-0000-0000-000000000003";
|
|
||||||
|
|
||||||
#[derive(Clone)]
|
|
||||||
struct Fixture {
|
|
||||||
entry: String,
|
|
||||||
files: Vec<(String, String)>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Fixture {
|
|
||||||
fn standard() -> Self {
|
|
||||||
Self {
|
|
||||||
entry: "project.arcadia".into(),
|
|
||||||
files: vec![
|
|
||||||
(
|
|
||||||
"project.arcadia".into(),
|
|
||||||
format!(
|
|
||||||
"arcadia 7;\r\nproject model \"Harbour\" id \"{PROJECT}\" {{\r\n include \"模块/活動.arcadia\";\r\n include \"links.arcadia\";\r\n}}\r\n"
|
|
||||||
),
|
|
||||||
),
|
|
||||||
(
|
|
||||||
"模块/活動.arcadia".into(),
|
|
||||||
format!(
|
|
||||||
"// 原文 remains exact\r\noa_activity pump \"泵 🚀\" id \"{PUMP}\" {{}}\r\n"
|
|
||||||
),
|
|
||||||
),
|
|
||||||
(
|
|
||||||
"links.arcadia".into(),
|
|
||||||
format!(
|
|
||||||
"// 航海\r\ninteraction connection \"流れ\" id \"{LINK}\" {{\r\n source @ // separator @pump\r\n pump;\r\n description \"船 @pump\"; target @pump;\r\n}}\r\n"
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn borrowed(&self) -> Vec<DraftFile<'_>> {
|
|
||||||
self.files
|
|
||||||
.iter()
|
|
||||||
.map(|(path, text)| DraftFile { path, text })
|
|
||||||
.collect()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn text(&self, path: &str) -> &str {
|
|
||||||
&self
|
|
||||||
.files
|
|
||||||
.iter()
|
|
||||||
.find(|(candidate, _)| candidate == path)
|
|
||||||
.unwrap()
|
|
||||||
.1
|
|
||||||
}
|
|
||||||
|
|
||||||
fn text_mut(&mut self, path: &str) -> &mut String {
|
|
||||||
&mut self
|
|
||||||
.files
|
|
||||||
.iter_mut()
|
|
||||||
.find(|(candidate, _)| candidate == path)
|
|
||||||
.unwrap()
|
|
||||||
.1
|
|
||||||
}
|
|
||||||
|
|
||||||
fn snapshot(&self, validated: Option<&Self>, applied: bool, limits: Limits) -> Snapshot {
|
|
||||||
let current = self.borrowed();
|
|
||||||
let old = validated.map(Self::borrowed);
|
|
||||||
capture(
|
|
||||||
Input {
|
|
||||||
key: key(1),
|
|
||||||
entry: &self.entry,
|
|
||||||
files: ¤t,
|
|
||||||
applied,
|
|
||||||
validation: old.as_ref().map(|files| ValidatedSources {
|
|
||||||
entry: &validated.unwrap().entry,
|
|
||||||
files,
|
|
||||||
}),
|
|
||||||
},
|
|
||||||
limits,
|
|
||||||
)
|
|
||||||
.unwrap()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn key(revision: u64) -> SnapshotKey {
|
|
||||||
SnapshotKey {
|
|
||||||
workspace: Id::from_u128(100),
|
|
||||||
revision,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn query(snapshot: &Snapshot, path: &str, byte_offset: usize, action: Action) -> Results {
|
|
||||||
snapshot
|
|
||||||
.query(Query {
|
|
||||||
stamp: QueryStamp {
|
|
||||||
snapshot: snapshot.key(),
|
|
||||||
serial: 37,
|
|
||||||
},
|
|
||||||
path,
|
|
||||||
byte_offset,
|
|
||||||
action,
|
|
||||||
})
|
|
||||||
.unwrap()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn reference_offset(fixture: &Fixture) -> usize {
|
|
||||||
fixture.text("links.arcadia").find("source @").unwrap() + "source ".len()
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn exact_multifile_unicode_crlf_definition_and_repeated_lexical_references() {
|
|
||||||
let fixture = Fixture::standard();
|
|
||||||
let original = fixture.files.clone();
|
|
||||||
let snapshot = fixture.snapshot(Some(&fixture), true, Limits::default());
|
|
||||||
assert!(snapshot.scope().closure_complete && snapshot.scope().validated);
|
|
||||||
assert_eq!(
|
|
||||||
(
|
|
||||||
snapshot.scope().included_files,
|
|
||||||
snapshot.scope().detached_files
|
|
||||||
),
|
|
||||||
(3, 0)
|
|
||||||
);
|
|
||||||
let result = query(
|
|
||||||
&snapshot,
|
|
||||||
"links.arcadia",
|
|
||||||
reference_offset(&fixture),
|
|
||||||
Action::Definition,
|
|
||||||
);
|
|
||||||
assert_eq!(result.disposition, Disposition::Direct);
|
|
||||||
assert_eq!(
|
|
||||||
(result.total_definitions, result.omitted_definitions),
|
|
||||||
(1, 0)
|
|
||||||
);
|
|
||||||
let definition = &result.definitions[0];
|
|
||||||
assert_eq!(definition.path, "模块/活動.arcadia");
|
|
||||||
assert_eq!(definition.declaration.kind, "oa_activity");
|
|
||||||
assert_eq!(definition.declaration.name.as_deref(), Some("泵 🚀"));
|
|
||||||
assert_eq!(
|
|
||||||
definition.declaration.authored_id,
|
|
||||||
Some(Id::parse_str(PUMP).unwrap())
|
|
||||||
);
|
|
||||||
assert_eq!(
|
|
||||||
definition.position,
|
|
||||||
Position {
|
|
||||||
line: 1,
|
|
||||||
byte_column: "oa_activity ".len()
|
|
||||||
}
|
|
||||||
);
|
|
||||||
assert_eq!(
|
|
||||||
&fixture.text(&definition.path)[definition.span.start..definition.span.end],
|
|
||||||
"pump"
|
|
||||||
);
|
|
||||||
let uses = query(
|
|
||||||
&snapshot,
|
|
||||||
&definition.path,
|
|
||||||
definition.span.start,
|
|
||||||
Action::References,
|
|
||||||
);
|
|
||||||
assert_eq!(uses.disposition, Disposition::LexicalReferences);
|
|
||||||
assert_eq!((uses.total_references, uses.omitted_references), (2, 0));
|
|
||||||
assert_eq!(
|
|
||||||
uses.references[0].position,
|
|
||||||
Position {
|
|
||||||
line: 3,
|
|
||||||
byte_column: 3
|
|
||||||
}
|
|
||||||
);
|
|
||||||
let target_prefix = " description \"船 @pump\"; target @";
|
|
||||||
assert_ne!(target_prefix.len(), target_prefix.chars().count());
|
|
||||||
assert_eq!(
|
|
||||||
uses.references[1].position,
|
|
||||||
Position {
|
|
||||||
line: 4,
|
|
||||||
byte_column: target_prefix.len()
|
|
||||||
}
|
|
||||||
);
|
|
||||||
for row in &uses.references {
|
|
||||||
let text = fixture.text(&row.path);
|
|
||||||
assert_eq!(&text[row.span.start..row.span.end], "pump");
|
|
||||||
assert_eq!(&text[row.marker.start..row.marker.end], "@");
|
|
||||||
let context = row.context.as_ref().unwrap();
|
|
||||||
assert_eq!(context.alias, "connection");
|
|
||||||
assert_eq!(context.kind, "interaction");
|
|
||||||
assert_eq!(context.name.as_deref(), Some("流れ"));
|
|
||||||
assert_eq!(row.evidence, Evidence::Validated);
|
|
||||||
}
|
|
||||||
assert_eq!(
|
|
||||||
uses.stamp,
|
|
||||||
QueryStamp {
|
|
||||||
snapshot: key(1),
|
|
||||||
serial: 37
|
|
||||||
}
|
|
||||||
);
|
|
||||||
assert_eq!(
|
|
||||||
fixture.files, original,
|
|
||||||
"no stabilization, newline rewrite or accepted adoption"
|
|
||||||
);
|
|
||||||
for (index, (path, text)) in original.iter().enumerate() {
|
|
||||||
let owned = snapshot.file(index).unwrap();
|
|
||||||
assert_eq!((owned.path, owned.text), (path.as_str(), text.as_str()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn comments_strings_and_comment_gap_are_not_navigation_hits() {
|
|
||||||
let fixture = Fixture::standard();
|
|
||||||
let snapshot = fixture.snapshot(None, true, Limits::default());
|
|
||||||
let text = fixture.text("links.arcadia");
|
|
||||||
for offset in [
|
|
||||||
text.find("separator @pump").unwrap() + "separator ".len(),
|
|
||||||
text.find("船 @pump").unwrap() + "船 ".len(),
|
|
||||||
text.find("@ //").unwrap() + 1,
|
|
||||||
] {
|
|
||||||
let result = query(&snapshot, "links.arcadia", offset, Action::Definition);
|
|
||||||
assert_eq!(result.disposition, Disposition::NoSymbol);
|
|
||||||
assert_eq!(result.total_definitions, 0);
|
|
||||||
}
|
|
||||||
assert_eq!(
|
|
||||||
query(
|
|
||||||
&snapshot,
|
|
||||||
"links.arcadia",
|
|
||||||
text.find(" pump;").unwrap() + 3,
|
|
||||||
Action::Definition
|
|
||||||
)
|
|
||||||
.total_definitions,
|
|
||||||
1
|
|
||||||
);
|
|
||||||
let inside_utf8 = text.find('船').unwrap() + 1;
|
|
||||||
assert_eq!(
|
|
||||||
snapshot.query(Query {
|
|
||||||
stamp: QueryStamp {
|
|
||||||
snapshot: key(1),
|
|
||||||
serial: 1
|
|
||||||
},
|
|
||||||
path: "links.arcadia",
|
|
||||||
byte_offset: inside_utf8,
|
|
||||||
action: Action::Definition
|
|
||||||
}),
|
|
||||||
Err(QueryError::Query(symbols::QueryError::InvalidBytePosition))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn dirty_but_parseable_text_has_current_names_and_no_validated_fallback() {
|
|
||||||
let original = Fixture::standard();
|
|
||||||
let mut dirty = original.clone();
|
|
||||||
*dirty.text_mut("模块/活動.arcadia") = dirty
|
|
||||||
.text("模块/活動.arcadia")
|
|
||||||
.replace("泵 🚀", "Edited 泵\\nwith detail");
|
|
||||||
let snapshot = dirty.snapshot(Some(&original), true, Limits::default());
|
|
||||||
assert!(snapshot.scope().closure_complete);
|
|
||||||
assert!(!snapshot.scope().validated);
|
|
||||||
let result = query(
|
|
||||||
&snapshot,
|
|
||||||
"links.arcadia",
|
|
||||||
reference_offset(&dirty),
|
|
||||||
Action::Definition,
|
|
||||||
);
|
|
||||||
assert_eq!(result.disposition, Disposition::Choices);
|
|
||||||
assert_eq!(
|
|
||||||
result.definitions[0].declaration.name.as_deref(),
|
|
||||||
Some("Edited 泵\nwith detail")
|
|
||||||
);
|
|
||||||
assert_eq!(result.definitions[0].evidence, Evidence::Draft);
|
|
||||||
assert_eq!(
|
|
||||||
snapshot.file(1).unwrap().text,
|
|
||||||
dirty.text("模块/活動.arcadia")
|
|
||||||
);
|
|
||||||
assert_ne!(
|
|
||||||
snapshot.file(1).unwrap().text,
|
|
||||||
original.text("模块/活動.arcadia")
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn invalid_include_syntax_never_borrows_the_old_reachable_file_set() {
|
|
||||||
let original = Fixture::standard();
|
|
||||||
let mut invalid = original.clone();
|
|
||||||
*invalid.text_mut("project.arcadia") = invalid
|
|
||||||
.text("project.arcadia")
|
|
||||||
.replace("include \"links.arcadia\";", "include \"links.arcadia\"");
|
|
||||||
let snapshot = invalid.snapshot(Some(&original), true, Limits::default());
|
|
||||||
assert!(snapshot.scope().partial());
|
|
||||||
assert!(!snapshot.scope().validated);
|
|
||||||
assert!(
|
|
||||||
snapshot
|
|
||||||
.scope()
|
|
||||||
.issues
|
|
||||||
.iter()
|
|
||||||
.any(|issue| issue.kind == ScopeIssueKind::InvalidIncludes)
|
|
||||||
);
|
|
||||||
let result = query(
|
|
||||||
&snapshot,
|
|
||||||
"links.arcadia",
|
|
||||||
reference_offset(&invalid),
|
|
||||||
Action::Definition,
|
|
||||||
);
|
|
||||||
assert_eq!(result.total_definitions, 1);
|
|
||||||
assert_eq!(result.disposition, Disposition::Choices);
|
|
||||||
assert_eq!(result.definitions[0].membership, Membership::Unverified);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn missing_include_partial_scope_does_not_resurrect_witness_text() {
|
|
||||||
let original = Fixture::standard();
|
|
||||||
let mut missing = original.clone();
|
|
||||||
missing
|
|
||||||
.files
|
|
||||||
.retain(|(path, _)| path != "模块/活動.arcadia");
|
|
||||||
let snapshot = missing.snapshot(Some(&original), true, Limits::default());
|
|
||||||
assert!(snapshot.scope().partial());
|
|
||||||
assert!(
|
|
||||||
snapshot
|
|
||||||
.scope()
|
|
||||||
.issues
|
|
||||||
.iter()
|
|
||||||
.any(|issue| issue.kind == ScopeIssueKind::MissingInclude)
|
|
||||||
);
|
|
||||||
let result = query(
|
|
||||||
&snapshot,
|
|
||||||
"links.arcadia",
|
|
||||||
reference_offset(&missing),
|
|
||||||
Action::Definition,
|
|
||||||
);
|
|
||||||
assert_eq!(result.disposition, Disposition::NoDefinition);
|
|
||||||
assert!(result.definitions.is_empty());
|
|
||||||
assert!(
|
|
||||||
result.scope.partial(),
|
|
||||||
"zero means no loaded definition, not no project definition"
|
|
||||||
);
|
|
||||||
assert!(snapshot.file(2).is_none());
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn detached_alias_and_identity_collisions_never_auto_select() {
|
|
||||||
let accepted = Fixture::standard();
|
|
||||||
for (alias, id) in [
|
|
||||||
("pump", "00000000-0000-0000-0000-000000000099"),
|
|
||||||
("other", PUMP),
|
|
||||||
] {
|
|
||||||
let mut loaded = accepted.clone();
|
|
||||||
loaded.files.push((
|
|
||||||
"detached.arcadia".into(),
|
|
||||||
format!("oa_activity {alias} \"Detached\" id \"{id}\" {{}}"),
|
|
||||||
));
|
|
||||||
let snapshot = loaded.snapshot(Some(&accepted), true, Limits::default());
|
|
||||||
assert!(snapshot.scope().validated);
|
|
||||||
assert_eq!(snapshot.scope().detached_files, 1);
|
|
||||||
let result = query(
|
|
||||||
&snapshot,
|
|
||||||
"links.arcadia",
|
|
||||||
reference_offset(&loaded),
|
|
||||||
Action::Definition,
|
|
||||||
);
|
|
||||||
assert_eq!(result.disposition, Disposition::Choices);
|
|
||||||
if alias == "pump" {
|
|
||||||
assert_eq!(result.total_definitions, 2);
|
|
||||||
assert!(result.definitions.iter().any(
|
|
||||||
|row| row.membership == Membership::Detached && row.evidence == Evidence::Draft
|
|
||||||
));
|
|
||||||
} else {
|
|
||||||
assert_eq!(result.total_definitions, 1);
|
|
||||||
assert_eq!(
|
|
||||||
result.definitions[0].declaration.identity,
|
|
||||||
Identity::Collision { count: 2 }
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn sole_detached_candidate_and_unapplied_equal_bytes_require_choice() {
|
|
||||||
let accepted = Fixture::standard();
|
|
||||||
let mut detached = accepted.clone();
|
|
||||||
*detached.text_mut("project.arcadia") = detached
|
|
||||||
.text("project.arcadia")
|
|
||||||
.replace(" include \"模块/活動.arcadia\";\r\n", "");
|
|
||||||
let snapshot = detached.snapshot(None, true, Limits::default());
|
|
||||||
let result = query(
|
|
||||||
&snapshot,
|
|
||||||
"links.arcadia",
|
|
||||||
reference_offset(&detached),
|
|
||||||
Action::Definition,
|
|
||||||
);
|
|
||||||
assert_eq!(result.disposition, Disposition::Choices);
|
|
||||||
assert_eq!(result.definitions[0].membership, Membership::Detached);
|
|
||||||
let unapplied = accepted.snapshot(Some(&accepted), false, Limits::default());
|
|
||||||
assert!(unapplied.scope().closure_complete && unapplied.scope().partial());
|
|
||||||
assert!(!unapplied.scope().validated);
|
|
||||||
assert_eq!(
|
|
||||||
query(
|
|
||||||
&unapplied,
|
|
||||||
"links.arcadia",
|
|
||||||
reference_offset(&accepted),
|
|
||||||
Action::Definition
|
|
||||||
)
|
|
||||||
.disposition,
|
|
||||||
Disposition::Choices
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn include_cycle_depth_and_aggregate_edges_are_explicit_partial_outcomes() {
|
|
||||||
let mut fixture = Fixture::standard();
|
|
||||||
fixture
|
|
||||||
.text_mut("模块/活動.arcadia")
|
|
||||||
.push_str("include \"../project.arcadia\";\r\n");
|
|
||||||
let cycle = fixture.snapshot(None, true, Limits::default());
|
|
||||||
assert!(
|
|
||||||
cycle
|
|
||||||
.scope()
|
|
||||||
.issues
|
|
||||||
.iter()
|
|
||||||
.any(|issue| issue.kind == ScopeIssueKind::IncludeCycle)
|
|
||||||
);
|
|
||||||
let fixture = Fixture::standard();
|
|
||||||
for (depth, edges, expected) in [
|
|
||||||
(0, 1024, ScopeIssueKind::IncludeDepth),
|
|
||||||
(32, 1, ScopeIssueKind::IncludeBudget),
|
|
||||||
] {
|
|
||||||
let snapshot = fixture.snapshot(
|
|
||||||
None,
|
|
||||||
true,
|
|
||||||
Limits {
|
|
||||||
include_depth: depth,
|
|
||||||
include_edges: edges,
|
|
||||||
..Limits::default()
|
|
||||||
},
|
|
||||||
);
|
|
||||||
assert!(snapshot.scope().partial());
|
|
||||||
assert!(
|
|
||||||
snapshot
|
|
||||||
.scope()
|
|
||||||
.issues
|
|
||||||
.iter()
|
|
||||||
.any(|issue| issue.kind == expected)
|
|
||||||
);
|
|
||||||
assert_eq!(
|
|
||||||
query(
|
|
||||||
&snapshot,
|
|
||||||
"links.arcadia",
|
|
||||||
reference_offset(&fixture),
|
|
||||||
Action::Definition
|
|
||||||
)
|
|
||||||
.disposition,
|
|
||||||
Disposition::Choices
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn exact_snapshot_readback_rejects_same_key_byte_membership_and_evidence_changes() {
|
|
||||||
let fixture = Fixture::standard();
|
|
||||||
let files = fixture.borrowed();
|
|
||||||
let validation = Some(ValidatedSources {
|
|
||||||
entry: &fixture.entry,
|
|
||||||
files: &files,
|
|
||||||
});
|
|
||||||
let input = Input {
|
|
||||||
key: key(1),
|
|
||||||
entry: &fixture.entry,
|
|
||||||
files: &files,
|
|
||||||
applied: true,
|
|
||||||
validation,
|
|
||||||
};
|
|
||||||
let snapshot = capture(input, Limits::default()).unwrap();
|
|
||||||
assert!(snapshot.matches(input));
|
|
||||||
assert!(!snapshot.matches(Input {
|
|
||||||
key: key(2),
|
|
||||||
..input
|
|
||||||
}));
|
|
||||||
assert!(!snapshot.matches(Input {
|
|
||||||
validation: None,
|
|
||||||
..input
|
|
||||||
}));
|
|
||||||
assert!(!snapshot.matches(Input {
|
|
||||||
applied: false,
|
|
||||||
..input
|
|
||||||
}));
|
|
||||||
let mut reversed = files.clone();
|
|
||||||
reversed.reverse();
|
|
||||||
assert!(snapshot.matches(Input {
|
|
||||||
files: &reversed,
|
|
||||||
..input
|
|
||||||
}));
|
|
||||||
let mut changed = fixture.clone();
|
|
||||||
changed.text_mut("links.arcadia").push(' ');
|
|
||||||
let altered = changed.borrowed();
|
|
||||||
assert!(!snapshot.matches(Input {
|
|
||||||
files: &altered,
|
|
||||||
..input
|
|
||||||
}));
|
|
||||||
let missing = &files[..files.len() - 1];
|
|
||||||
assert!(!snapshot.matches(Input {
|
|
||||||
files: missing,
|
|
||||||
..input
|
|
||||||
}));
|
|
||||||
let duplicated = [files[0], files[0], files[2]];
|
|
||||||
assert!(!snapshot.matches(Input {
|
|
||||||
files: &duplicated,
|
|
||||||
..input
|
|
||||||
}));
|
|
||||||
assert_eq!(
|
|
||||||
snapshot.query(Query {
|
|
||||||
stamp: QueryStamp {
|
|
||||||
snapshot: key(2),
|
|
||||||
serial: 37
|
|
||||||
},
|
|
||||||
path: "links.arcadia",
|
|
||||||
byte_offset: 0,
|
|
||||||
action: Action::Definition
|
|
||||||
}),
|
|
||||||
Err(QueryError::Query(symbols::QueryError::StaleSnapshot))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn omitted_rows_are_counted_before_result_allocation_and_never_confer_uniqueness() {
|
|
||||||
let fixture = Fixture::standard();
|
|
||||||
let snapshot = fixture.snapshot(
|
|
||||||
Some(&fixture),
|
|
||||||
true,
|
|
||||||
Limits {
|
|
||||||
result_rows: 2,
|
|
||||||
..Limits::default()
|
|
||||||
},
|
|
||||||
);
|
|
||||||
let result = query(
|
|
||||||
&snapshot,
|
|
||||||
"links.arcadia",
|
|
||||||
reference_offset(&fixture),
|
|
||||||
Action::References,
|
|
||||||
);
|
|
||||||
assert_eq!((result.total_definitions, result.total_references), (1, 2));
|
|
||||||
assert_eq!(
|
|
||||||
(
|
|
||||||
result.definitions.len(),
|
|
||||||
result.references.len(),
|
|
||||||
result.omitted_references
|
|
||||||
),
|
|
||||||
(1, 1, 1)
|
|
||||||
);
|
|
||||||
let zero = fixture.snapshot(
|
|
||||||
Some(&fixture),
|
|
||||||
true,
|
|
||||||
Limits {
|
|
||||||
result_rows: 0,
|
|
||||||
..Limits::default()
|
|
||||||
},
|
|
||||||
);
|
|
||||||
let result = query(
|
|
||||||
&zero,
|
|
||||||
"links.arcadia",
|
|
||||||
reference_offset(&fixture),
|
|
||||||
Action::Definition,
|
|
||||||
);
|
|
||||||
assert_eq!(
|
|
||||||
(
|
|
||||||
result.definitions.len(),
|
|
||||||
result.total_definitions,
|
|
||||||
result.omitted_definitions
|
|
||||||
),
|
|
||||||
(0, 1, 1)
|
|
||||||
);
|
|
||||||
assert_eq!(result.disposition, Disposition::Choices);
|
|
||||||
let envelope = fixture.snapshot(
|
|
||||||
Some(&fixture),
|
|
||||||
true,
|
|
||||||
Limits {
|
|
||||||
result_bytes: 0,
|
|
||||||
..Limits::default()
|
|
||||||
},
|
|
||||||
);
|
|
||||||
assert_eq!(
|
|
||||||
envelope.query(Query {
|
|
||||||
stamp: QueryStamp {
|
|
||||||
snapshot: key(1),
|
|
||||||
serial: 1
|
|
||||||
},
|
|
||||||
path: "links.arcadia",
|
|
||||||
byte_offset: reference_offset(&fixture),
|
|
||||||
action: Action::Definition
|
|
||||||
}),
|
|
||||||
Err(QueryError::ResultEnvelopeLimit)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn large_display_name_cannot_escape_the_owned_row_string_budget() {
|
|
||||||
let mut fixture = Fixture::standard();
|
|
||||||
*fixture.text_mut("模块/活動.arcadia") = fixture
|
|
||||||
.text("模块/活動.arcadia")
|
|
||||||
.replace("泵 🚀", &"長".repeat(8192));
|
|
||||||
let original = fixture.files.clone();
|
|
||||||
let snapshot = fixture.snapshot(
|
|
||||||
None,
|
|
||||||
true,
|
|
||||||
Limits {
|
|
||||||
result_bytes: 64,
|
|
||||||
..Limits::default()
|
|
||||||
},
|
|
||||||
);
|
|
||||||
let result = query(
|
|
||||||
&snapshot,
|
|
||||||
"links.arcadia",
|
|
||||||
reference_offset(&fixture),
|
|
||||||
Action::Definition,
|
|
||||||
);
|
|
||||||
assert_eq!(
|
|
||||||
(result.total_definitions, result.omitted_definitions),
|
|
||||||
(1, 1)
|
|
||||||
);
|
|
||||||
assert!(result.definitions.is_empty());
|
|
||||||
assert_eq!(result.disposition, Disposition::Choices);
|
|
||||||
assert_eq!(fixture.files, original);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn validation_witness_must_match_entry_and_complete_included_file_set() {
|
|
||||||
let fixture = Fixture::standard();
|
|
||||||
for mutation in 0..3 {
|
|
||||||
let mut witness = fixture.clone();
|
|
||||||
match mutation {
|
|
||||||
0 => witness.entry = "other.arcadia".into(),
|
|
||||||
1 => {
|
|
||||||
witness.files.pop();
|
|
||||||
}
|
|
||||||
_ => witness.files.push(("unused.arcadia".into(), String::new())),
|
|
||||||
}
|
|
||||||
let snapshot = fixture.snapshot(Some(&witness), true, Limits::default());
|
|
||||||
assert!(snapshot.scope().closure_complete);
|
|
||||||
assert!(!snapshot.scope().validated);
|
|
||||||
assert_eq!(
|
|
||||||
query(
|
|
||||||
&snapshot,
|
|
||||||
"links.arcadia",
|
|
||||||
reference_offset(&fixture),
|
|
||||||
Action::Definition
|
|
||||||
)
|
|
||||||
.disposition,
|
|
||||||
Disposition::Choices
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn raw_aggregate_limits_refuse_before_outline_or_copied_snapshot() {
|
|
||||||
// Token budget zero and malformed paths/text would fail later. Raw byte/path
|
|
||||||
// limits must win, including a large second file; no partial Snapshot exists.
|
|
||||||
let large = "not a model \0".repeat(16_384);
|
|
||||||
let files = [
|
|
||||||
DraftFile {
|
|
||||||
path: "../bad.arcadia",
|
|
||||||
text: "?",
|
|
||||||
},
|
|
||||||
DraftFile {
|
|
||||||
path: "large.arcadia",
|
|
||||||
text: &large,
|
|
||||||
},
|
|
||||||
];
|
|
||||||
let input = Input {
|
|
||||||
key: key(1),
|
|
||||||
entry: "project.arcadia",
|
|
||||||
files: &files,
|
|
||||||
applied: true,
|
|
||||||
validation: None,
|
|
||||||
};
|
|
||||||
for (resource, files_limit, bytes_limit, paths_limit) in [
|
|
||||||
(symbols::Resource::Files, 1, usize::MAX, usize::MAX),
|
|
||||||
(symbols::Resource::SourceBytes, 8, 1, usize::MAX),
|
|
||||||
(symbols::Resource::PathBytes, 8, usize::MAX, 1),
|
|
||||||
] {
|
|
||||||
let limits = Limits {
|
|
||||||
index: symbols::Limits {
|
|
||||||
files: files_limit,
|
|
||||||
source_bytes: bytes_limit,
|
|
||||||
path_bytes: paths_limit,
|
|
||||||
tokens: 0,
|
|
||||||
records: 0,
|
|
||||||
},
|
|
||||||
..Limits::default()
|
|
||||||
};
|
|
||||||
assert!(
|
|
||||||
matches!(capture(input, limits), Err(AdmissionError::Index(symbols::BuildError::Limit { resource: actual, .. })) if actual == resource)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
assert_eq!(files[1].text, large);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn token_declaration_and_live_reference_limits_are_aggregate_not_per_file() {
|
|
||||||
let files = [
|
|
||||||
DraftFile {
|
|
||||||
path: "a.arcadia",
|
|
||||||
text: "oa_activity a \"A\" {}",
|
|
||||||
},
|
|
||||||
DraftFile {
|
|
||||||
path: "b.arcadia",
|
|
||||||
text: "oa_activity b \"B\" {}",
|
|
||||||
},
|
|
||||||
];
|
|
||||||
let input = Input {
|
|
||||||
key: key(1),
|
|
||||||
entry: "a.arcadia",
|
|
||||||
files: &files,
|
|
||||||
applied: false,
|
|
||||||
validation: None,
|
|
||||||
};
|
|
||||||
let limits = Limits {
|
|
||||||
index: symbols::Limits {
|
|
||||||
tokens: 10,
|
|
||||||
..Limits::default().index
|
|
||||||
},
|
|
||||||
..Limits::default()
|
|
||||||
};
|
|
||||||
assert!(matches!(
|
|
||||||
capture(input, limits),
|
|
||||||
Err(AdmissionError::Outline {
|
|
||||||
file: 1,
|
|
||||||
error: language::OutlineLimit {
|
|
||||||
resource: language::OutlineResource::Tokens,
|
|
||||||
..
|
|
||||||
}
|
|
||||||
})
|
|
||||||
));
|
|
||||||
let limits = Limits {
|
|
||||||
index: symbols::Limits {
|
|
||||||
records: 1,
|
|
||||||
..Limits::default().index
|
|
||||||
},
|
|
||||||
..Limits::default()
|
|
||||||
};
|
|
||||||
assert!(matches!(
|
|
||||||
capture(input, limits),
|
|
||||||
Err(AdmissionError::Outline {
|
|
||||||
file: 1,
|
|
||||||
error: language::OutlineLimit {
|
|
||||||
resource: language::OutlineResource::Declarations,
|
|
||||||
..
|
|
||||||
}
|
|
||||||
})
|
|
||||||
));
|
|
||||||
let use_files = [
|
|
||||||
files[0],
|
|
||||||
DraftFile {
|
|
||||||
path: "uses.arcadia",
|
|
||||||
text: "source @a; target @a; // @a ignored\n",
|
|
||||||
},
|
|
||||||
];
|
|
||||||
let limits = Limits {
|
|
||||||
index: symbols::Limits {
|
|
||||||
records: 2,
|
|
||||||
..Limits::default().index
|
|
||||||
},
|
|
||||||
..Limits::default()
|
|
||||||
};
|
|
||||||
assert!(matches!(
|
|
||||||
capture(
|
|
||||||
Input {
|
|
||||||
files: &use_files,
|
|
||||||
..input
|
|
||||||
},
|
|
||||||
limits
|
|
||||||
),
|
|
||||||
Err(AdmissionError::Index(symbols::BuildError::Limit {
|
|
||||||
resource: symbols::Resource::Records,
|
|
||||||
observed_at_least: 3,
|
|
||||||
..
|
|
||||||
}))
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn missing_and_noncanonical_authored_ids_remain_draft_spans_without_generated_anchors() {
|
|
||||||
let fixture = Fixture::standard();
|
|
||||||
for replacement in [
|
|
||||||
String::new(),
|
|
||||||
" id \"00000000000000000000000000000002\"".into(),
|
|
||||||
] {
|
|
||||||
let mut draft = fixture.clone();
|
|
||||||
let original_id = format!(" id \"{PUMP}\"");
|
|
||||||
*draft.text_mut("模块/活動.arcadia") = draft
|
|
||||||
.text("模块/活動.arcadia")
|
|
||||||
.replace(&original_id, &replacement);
|
|
||||||
draft
|
|
||||||
.text_mut("模块/活動.arcadia")
|
|
||||||
.push_str(&format!("// Historical UUID {PUMP} and @pump\r\n"));
|
|
||||||
let before = draft.files.clone();
|
|
||||||
let snapshot = draft.snapshot(None, false, Limits::default());
|
|
||||||
let result = query(
|
|
||||||
&snapshot,
|
|
||||||
"links.arcadia",
|
|
||||||
reference_offset(&draft),
|
|
||||||
Action::Definition,
|
|
||||||
);
|
|
||||||
assert_eq!(result.definitions[0].declaration.authored_id, None);
|
|
||||||
assert_eq!(
|
|
||||||
result.definitions[0].declaration.identity,
|
|
||||||
Identity::Missing
|
|
||||||
);
|
|
||||||
assert_eq!(result.disposition, Disposition::Choices);
|
|
||||||
assert_eq!(draft.files, before);
|
|
||||||
assert_eq!(
|
|
||||||
snapshot.file(1).unwrap().text,
|
|
||||||
draft.text("模块/活動.arcadia")
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn keyword_alias_and_loaded_path_case_collisions_use_reviewed_index_rules() {
|
|
||||||
let mut fixture = Fixture::standard();
|
|
||||||
for (_, text) in &mut fixture.files {
|
|
||||||
*text = text.replace("pump", "source");
|
|
||||||
}
|
|
||||||
let snapshot = fixture.snapshot(None, true, Limits::default());
|
|
||||||
let result = query(
|
|
||||||
&snapshot,
|
|
||||||
"links.arcadia",
|
|
||||||
reference_offset(&fixture),
|
|
||||||
Action::Definition,
|
|
||||||
);
|
|
||||||
assert_eq!(result.alias.as_deref(), Some("source"));
|
|
||||||
assert_eq!(result.total_definitions, 1);
|
|
||||||
fixture.files.push(("LINKS.arcadia".into(), String::new()));
|
|
||||||
let files = fixture.borrowed();
|
|
||||||
assert!(matches!(
|
|
||||||
capture(
|
|
||||||
Input {
|
|
||||||
key: key(1),
|
|
||||||
entry: &fixture.entry,
|
|
||||||
files: &files,
|
|
||||||
applied: true,
|
|
||||||
validation: None
|
|
||||||
},
|
|
||||||
Limits::default()
|
|
||||||
),
|
|
||||||
Err(AdmissionError::Index(symbols::BuildError::Input {
|
|
||||||
problem: symbols::InputProblem::DuplicateOrCaseCollidingPath,
|
|
||||||
..
|
|
||||||
}))
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn owned_request_moves_exact_text_into_worker_snapshot_and_matches_sync_results() {
|
|
||||||
let fixture = Fixture::standard();
|
|
||||||
let files = fixture.borrowed();
|
|
||||||
let input = Input {
|
|
||||||
key: key(1),
|
|
||||||
entry: &fixture.entry,
|
|
||||||
files: &files,
|
|
||||||
applied: true,
|
|
||||||
validation: Some(ValidatedSources {
|
|
||||||
entry: &fixture.entry,
|
|
||||||
files: &files,
|
|
||||||
}),
|
|
||||||
};
|
|
||||||
let owned = admit_owned(input, Limits::default()).unwrap();
|
|
||||||
let allocations: Vec<_> = owned.files.iter().map(|file| file.text.as_ptr()).collect();
|
|
||||||
let snapshot = owned.capture().unwrap();
|
|
||||||
for (file, allocation) in allocations.iter().enumerate() {
|
|
||||||
assert_eq!(
|
|
||||||
snapshot.file(file).unwrap().text.as_ptr(),
|
|
||||||
*allocation,
|
|
||||||
"worker moves the one current-text copy"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
assert!(snapshot.matches(input));
|
|
||||||
let synchronous = capture(input, Limits::default()).unwrap();
|
|
||||||
assert_eq!(
|
|
||||||
query(
|
|
||||||
&snapshot,
|
|
||||||
"links.arcadia",
|
|
||||||
reference_offset(&fixture),
|
|
||||||
Action::References
|
|
||||||
),
|
|
||||||
query(
|
|
||||||
&synchronous,
|
|
||||||
"links.arcadia",
|
|
||||||
reference_offset(&fixture),
|
|
||||||
Action::References
|
|
||||||
)
|
|
||||||
);
|
|
||||||
let mut edited = fixture.clone();
|
|
||||||
edited
|
|
||||||
.text_mut("links.arcadia")
|
|
||||||
.push_str("// edited after request\r\n");
|
|
||||||
let changed = edited.borrowed();
|
|
||||||
assert!(!snapshot.matches(Input {
|
|
||||||
files: &changed,
|
|
||||||
..input
|
|
||||||
}));
|
|
||||||
assert!(!snapshot.matches(Input {
|
|
||||||
validation: None,
|
|
||||||
..input
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn owned_request_checks_raw_limits_immediately_and_extracts_only_on_worker() {
|
|
||||||
let fixture = Fixture::standard();
|
|
||||||
let files = fixture.borrowed();
|
|
||||||
let input = Input {
|
|
||||||
key: key(1),
|
|
||||||
entry: &fixture.entry,
|
|
||||||
files: &files,
|
|
||||||
applied: true,
|
|
||||||
validation: None,
|
|
||||||
};
|
|
||||||
let no_tokens = Limits {
|
|
||||||
index: symbols::Limits {
|
|
||||||
tokens: 0,
|
|
||||||
..Limits::default().index
|
|
||||||
},
|
|
||||||
..Limits::default()
|
|
||||||
};
|
|
||||||
let owned = admit_owned(input, no_tokens).expect("request admission does not lex or parse");
|
|
||||||
assert!(matches!(
|
|
||||||
owned.capture(),
|
|
||||||
Err(AdmissionError::Outline {
|
|
||||||
file: 0,
|
|
||||||
error: language::OutlineLimit {
|
|
||||||
resource: language::OutlineResource::Tokens,
|
|
||||||
..
|
|
||||||
}
|
|
||||||
})
|
|
||||||
));
|
|
||||||
let no_bytes = Limits {
|
|
||||||
index: symbols::Limits {
|
|
||||||
source_bytes: 1,
|
|
||||||
..Limits::default().index
|
|
||||||
},
|
|
||||||
..Limits::default()
|
|
||||||
};
|
|
||||||
assert!(matches!(
|
|
||||||
admit_owned(input, no_bytes),
|
|
||||||
Err(AdmissionError::Index(symbols::BuildError::Limit {
|
|
||||||
resource: symbols::Resource::SourceBytes,
|
|
||||||
..
|
|
||||||
}))
|
|
||||||
));
|
|
||||||
assert_eq!(files[1].text, fixture.text("模块/活動.arcadia"));
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn owned_validation_proof_preserves_full_witness_count_and_partial_scope() {
|
|
||||||
let accepted = Fixture::standard();
|
|
||||||
for missing_include in [false, true] {
|
|
||||||
let mut current = accepted.clone();
|
|
||||||
current
|
|
||||||
.files
|
|
||||||
.retain(|(path, _)| path != "模块/活動.arcadia");
|
|
||||||
if !missing_include {
|
|
||||||
*current.text_mut("project.arcadia") = current
|
|
||||||
.text("project.arcadia")
|
|
||||||
.replace(" include \"模块/活動.arcadia\";\r\n", "");
|
|
||||||
}
|
|
||||||
let files = current.borrowed();
|
|
||||||
let old = accepted.borrowed();
|
|
||||||
let input = Input {
|
|
||||||
key: key(1),
|
|
||||||
entry: ¤t.entry,
|
|
||||||
files: &files,
|
|
||||||
applied: true,
|
|
||||||
validation: Some(ValidatedSources {
|
|
||||||
entry: &accepted.entry,
|
|
||||||
files: &old,
|
|
||||||
}),
|
|
||||||
};
|
|
||||||
let snapshot = admit_owned(input, Limits::default())
|
|
||||||
.unwrap()
|
|
||||||
.capture()
|
|
||||||
.unwrap();
|
|
||||||
assert_eq!(snapshot.scope().closure_complete, !missing_include);
|
|
||||||
assert!(
|
|
||||||
!snapshot.scope().validated,
|
|
||||||
"the old witness is not silently reduced to matching loaded files"
|
|
||||||
);
|
|
||||||
let result = query(
|
|
||||||
&snapshot,
|
|
||||||
"links.arcadia",
|
|
||||||
reference_offset(¤t),
|
|
||||||
Action::Definition,
|
|
||||||
);
|
|
||||||
assert_eq!(result.disposition, Disposition::NoDefinition);
|
|
||||||
assert!(snapshot.matches(input));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
//! Per-file drafts and navigation. Accepted model/source history lives in Document.
|
//! Per-file drafts and navigation. Accepted model/source history lives in Document.
|
||||||
use iced::widget::text_editor::Cursor;
|
use iced::widget::text_editor::Cursor;
|
||||||
use oa_core::{
|
use oa_core::{
|
||||||
Id, language,
|
language,
|
||||||
source_project::{self, CompiledSourceProject, ProjectLimits, SourceBundle, SourceDiagnostic},
|
source_project::{self, CompiledSourceProject, ProjectLimits, SourceBundle, SourceDiagnostic},
|
||||||
};
|
};
|
||||||
use std::collections::{BTreeMap, BTreeSet};
|
use std::collections::{BTreeMap, BTreeSet};
|
||||||
@@ -86,7 +86,6 @@ pub struct Buffer {
|
|||||||
pub cursor: Cursor,
|
pub cursor: Cursor,
|
||||||
past: Vec<String>,
|
past: Vec<String>,
|
||||||
future: Vec<String>,
|
future: Vec<String>,
|
||||||
generation: u64,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Buffer {
|
impl Buffer {
|
||||||
@@ -100,20 +99,14 @@ impl Buffer {
|
|||||||
},
|
},
|
||||||
past: Vec::new(),
|
past: Vec::new(),
|
||||||
future: Vec::new(),
|
future: Vec::new(),
|
||||||
generation: 0,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pub fn dirty(&self) -> bool {
|
pub fn dirty(&self) -> bool {
|
||||||
self.text != self.baseline
|
self.text != self.baseline
|
||||||
}
|
}
|
||||||
pub fn generation(&self) -> u64 {
|
|
||||||
self.generation
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct Workspace {
|
pub struct Workspace {
|
||||||
session: Id,
|
|
||||||
revision: u64,
|
|
||||||
pub entry: String,
|
pub entry: String,
|
||||||
pub active: String,
|
pub active: String,
|
||||||
pub files: BTreeMap<String, Buffer>,
|
pub files: BTreeMap<String, Buffer>,
|
||||||
@@ -124,35 +117,6 @@ pub struct Workspace {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl Workspace {
|
impl Workspace {
|
||||||
/// Ephemeral editor identity, never a model identity or recovery payload.
|
|
||||||
pub fn session(&self) -> Id {
|
|
||||||
self.session
|
|
||||||
}
|
|
||||||
pub fn revision(&self) -> u64 {
|
|
||||||
self.revision
|
|
||||||
}
|
|
||||||
fn advance(&mut self) -> u64 {
|
|
||||||
if let Some(revision) = self.revision.checked_add(1) {
|
|
||||||
self.revision = revision;
|
|
||||||
} else {
|
|
||||||
self.reset_navigation_session();
|
|
||||||
}
|
|
||||||
self.revision
|
|
||||||
}
|
|
||||||
/// A changed filesystem root must not reuse queued navigation from Save As.
|
|
||||||
pub fn reset_navigation_session(&mut self) {
|
|
||||||
self.session = Id::new_v4();
|
|
||||||
self.revision = 0;
|
|
||||||
for buffer in self.files.values_mut() {
|
|
||||||
buffer.generation = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
pub fn set_reachable(&mut self, reachable: BTreeSet<String>) {
|
|
||||||
if self.reachable != reachable {
|
|
||||||
self.advance();
|
|
||||||
self.reachable = reachable;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
pub fn recovery_snapshot(&self) -> RecoveryWorkspace {
|
pub fn recovery_snapshot(&self) -> RecoveryWorkspace {
|
||||||
RecoveryWorkspace {
|
RecoveryWorkspace {
|
||||||
entry: self.entry.clone(),
|
entry: self.entry.clone(),
|
||||||
@@ -172,8 +136,6 @@ impl Workspace {
|
|||||||
pub fn from_recovery(saved: RecoveryWorkspace) -> Result<Self, String> {
|
pub fn from_recovery(saved: RecoveryWorkspace) -> Result<Self, String> {
|
||||||
saved.validate()?;
|
saved.validate()?;
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
session: Id::new_v4(),
|
|
||||||
revision: 0,
|
|
||||||
entry: saved.entry,
|
entry: saved.entry,
|
||||||
active: saved.active,
|
active: saved.active,
|
||||||
files: saved
|
files: saved
|
||||||
@@ -192,8 +154,6 @@ impl Workspace {
|
|||||||
}
|
}
|
||||||
pub fn new(bundle: &SourceBundle, applied: bool) -> Self {
|
pub fn new(bundle: &SourceBundle, applied: bool) -> Self {
|
||||||
Self {
|
Self {
|
||||||
session: Id::new_v4(),
|
|
||||||
revision: 0,
|
|
||||||
entry: bundle.entry.clone(),
|
entry: bundle.entry.clone(),
|
||||||
active: bundle.entry.clone(),
|
active: bundle.entry.clone(),
|
||||||
files: bundle
|
files: bundle
|
||||||
@@ -231,20 +191,11 @@ impl Workspace {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
pub fn edit(&mut self, text: String, cursor: Cursor) {
|
pub fn edit(&mut self, text: String, cursor: Cursor) {
|
||||||
let changed = self.files.get(&self.active).is_none_or(|b| b.text != text);
|
|
||||||
let generation = if changed {
|
|
||||||
self.advance()
|
|
||||||
} else {
|
|
||||||
self.revision
|
|
||||||
};
|
|
||||||
let buffer = self
|
let buffer = self
|
||||||
.files
|
.files
|
||||||
.entry(self.active.clone())
|
.entry(self.active.clone())
|
||||||
.or_insert_with(|| Buffer::new(String::new()));
|
.or_insert_with(|| Buffer::new(String::new()));
|
||||||
buffer.cursor = cursor;
|
buffer.cursor = cursor;
|
||||||
if changed {
|
|
||||||
buffer.generation = generation;
|
|
||||||
}
|
|
||||||
if text != buffer.text {
|
if text != buffer.text {
|
||||||
buffer.past.push(std::mem::replace(&mut buffer.text, text));
|
buffer.past.push(std::mem::replace(&mut buffer.text, text));
|
||||||
if buffer.past.len() > 100 {
|
if buffer.past.len() > 100 {
|
||||||
@@ -317,8 +268,6 @@ impl Workspace {
|
|||||||
} else {
|
} else {
|
||||||
buffer.future.push(previous);
|
buffer.future.push(previous);
|
||||||
}
|
}
|
||||||
let generation = self.advance();
|
|
||||||
self.files.get_mut(&self.active).unwrap().generation = generation;
|
|
||||||
self.trim_history(DRAFT_HISTORY_BYTES);
|
self.trim_history(DRAFT_HISTORY_BYTES);
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
@@ -332,7 +281,6 @@ impl Workspace {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
pub fn accept(&mut self, bundle: &SourceBundle) {
|
pub fn accept(&mut self, bundle: &SourceBundle) {
|
||||||
let generation = self.advance();
|
|
||||||
if self.entry != bundle.entry
|
if self.entry != bundle.entry
|
||||||
&& !bundle.files.contains_key(&self.entry)
|
&& !bundle.files.contains_key(&self.entry)
|
||||||
&& self.files.get(&self.entry).is_some_and(|b| !b.dirty())
|
&& self.files.get(&self.entry).is_some_and(|b| !b.dirty())
|
||||||
@@ -343,13 +291,7 @@ impl Workspace {
|
|||||||
self.reachable = bundle.files.keys().cloned().collect();
|
self.reachable = bundle.files.keys().cloned().collect();
|
||||||
for (path, text) in &bundle.files {
|
for (path, text) in &bundle.files {
|
||||||
let cursor = self.files.get(path).map(|b| b.cursor);
|
let cursor = self.files.get(path).map(|b| b.cursor);
|
||||||
let previous_generation = self
|
|
||||||
.files
|
|
||||||
.get(path)
|
|
||||||
.filter(|b| b.text == *text)
|
|
||||||
.map(|b| b.generation);
|
|
||||||
let mut buffer = Buffer::new(text.clone());
|
let mut buffer = Buffer::new(text.clone());
|
||||||
buffer.generation = previous_generation.unwrap_or(generation);
|
|
||||||
if let Some(cursor) = cursor {
|
if let Some(cursor) = cursor {
|
||||||
buffer.cursor = cursor;
|
buffer.cursor = cursor;
|
||||||
}
|
}
|
||||||
@@ -361,22 +303,10 @@ impl Workspace {
|
|||||||
self.applied = true;
|
self.applied = true;
|
||||||
}
|
}
|
||||||
pub fn discovered(&mut self, bundle: &SourceBundle, reachable: BTreeSet<String>) {
|
pub fn discovered(&mut self, bundle: &SourceBundle, reachable: BTreeSet<String>) {
|
||||||
let changed = self.reachable != reachable
|
|
||||||
|| bundle
|
|
||||||
.files
|
|
||||||
.keys()
|
|
||||||
.any(|path| !self.files.contains_key(path));
|
|
||||||
let generation = if changed {
|
|
||||||
self.advance()
|
|
||||||
} else {
|
|
||||||
self.revision
|
|
||||||
};
|
|
||||||
for (path, text) in &bundle.files {
|
for (path, text) in &bundle.files {
|
||||||
self.files.entry(path.clone()).or_insert_with(|| {
|
self.files
|
||||||
let mut buffer = Buffer::new(text.clone());
|
.entry(path.clone())
|
||||||
buffer.generation = generation;
|
.or_insert_with(|| Buffer::new(text.clone()));
|
||||||
buffer
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
self.reachable = reachable;
|
self.reachable = reachable;
|
||||||
}
|
}
|
||||||
@@ -384,7 +314,6 @@ impl Workspace {
|
|||||||
if self.reachable.contains(path) || self.files.get(path).is_none_or(Buffer::dirty) {
|
if self.reachable.contains(path) || self.files.get(path).is_none_or(Buffer::dirty) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
self.advance();
|
|
||||||
self.files.remove(path);
|
self.files.remove(path);
|
||||||
if self.active == path {
|
if self.active == path {
|
||||||
self.active = self.entry.clone();
|
self.active = self.entry.clone();
|
||||||
@@ -447,148 +376,6 @@ pub fn lint(bundle: &SourceBundle) -> Vec<SourceDiagnostic> {
|
|||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
use oa_core::Project;
|
use oa_core::Project;
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn fresh_session_cannot_reuse_a_retained_buffer_generation() {
|
|
||||||
let bundle = SourceBundle {
|
|
||||||
entry: "main.arcadia".into(),
|
|
||||||
files: BTreeMap::from([
|
|
||||||
("main.arcadia".into(), "first".into()),
|
|
||||||
("other.arcadia".into(), "other".into()),
|
|
||||||
]),
|
|
||||||
};
|
|
||||||
let mut workspace = Workspace::new(&bundle, true);
|
|
||||||
let cursor = workspace.files["main.arcadia"].cursor;
|
|
||||||
workspace.edit("second".into(), cursor);
|
|
||||||
workspace.reset_navigation_session();
|
|
||||||
let before = workspace.files["main.arcadia"].generation();
|
|
||||||
workspace.edit("third".into(), cursor);
|
|
||||||
assert_ne!(workspace.files["main.arcadia"].generation(), before);
|
|
||||||
workspace.switch("other.arcadia", cursor);
|
|
||||||
workspace.revision = u64::MAX;
|
|
||||||
workspace.edit("changed other".into(), cursor);
|
|
||||||
let after_wrap = workspace.files["main.arcadia"].generation();
|
|
||||||
workspace.switch("main.arcadia", cursor);
|
|
||||||
workspace.edit("fourth".into(), cursor);
|
|
||||||
assert_ne!(workspace.files["main.arcadia"].generation(), after_wrap);
|
|
||||||
assert!(workspace.undo(false));
|
|
||||||
assert_eq!(workspace.text(), "third");
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn navigation_versions_distinguish_reopened_recovered_and_changed_drafts() {
|
|
||||||
let bundle = SourceBundle {
|
|
||||||
entry: "project.arcadia".into(),
|
|
||||||
files: BTreeMap::from([
|
|
||||||
("project.arcadia".into(), "entry\r\n".into()),
|
|
||||||
("part.arcadia".into(), "雨 draft\r\n".into()),
|
|
||||||
]),
|
|
||||||
};
|
|
||||||
let mut workspace = Workspace::new(&bundle, true);
|
|
||||||
let reopened = Workspace::new(&bundle, true);
|
|
||||||
let recovered = Workspace::from_recovery(workspace.recovery_snapshot()).unwrap();
|
|
||||||
assert_ne!(workspace.session(), reopened.session());
|
|
||||||
assert_ne!(workspace.session(), recovered.session());
|
|
||||||
assert_eq!(workspace.bundle(), recovered.bundle());
|
|
||||||
let saved = serde_json::to_value(workspace.recovery_snapshot()).unwrap();
|
|
||||||
assert!(saved.get("session").is_none() && saved.get("revision").is_none());
|
|
||||||
|
|
||||||
let cursor = Cursor {
|
|
||||||
position: iced::widget::text_editor::Position { line: 0, column: 3 },
|
|
||||||
selection: None,
|
|
||||||
};
|
|
||||||
let revision = workspace.revision();
|
|
||||||
workspace.edit(workspace.text().into(), cursor);
|
|
||||||
assert_eq!(
|
|
||||||
workspace.revision(),
|
|
||||||
revision,
|
|
||||||
"selection is not a text change"
|
|
||||||
);
|
|
||||||
workspace.switch("part.arcadia", cursor);
|
|
||||||
assert_eq!(
|
|
||||||
workspace.revision(),
|
|
||||||
revision,
|
|
||||||
"switching retains the snapshot"
|
|
||||||
);
|
|
||||||
let untouched = workspace.files["project.arcadia"].generation();
|
|
||||||
workspace.edit("雨 unfinished !\r\n".into(), cursor);
|
|
||||||
let edited = workspace.files["part.arcadia"].generation();
|
|
||||||
assert!(workspace.revision() > revision);
|
|
||||||
assert_eq!(workspace.files["project.arcadia"].generation(), untouched);
|
|
||||||
assert!(workspace.undo(false));
|
|
||||||
assert_eq!(workspace.bundle(), bundle);
|
|
||||||
assert!(workspace.files["part.arcadia"].generation() > edited);
|
|
||||||
assert!(workspace.undo(true));
|
|
||||||
assert_eq!(workspace.text(), "雨 unfinished !\r\n");
|
|
||||||
let previous_session = workspace.session();
|
|
||||||
let previous_text = workspace.bundle();
|
|
||||||
workspace.reset_navigation_session();
|
|
||||||
assert_ne!(workspace.session(), previous_session);
|
|
||||||
assert_eq!(workspace.bundle(), previous_text);
|
|
||||||
assert!(
|
|
||||||
workspace.undo(false),
|
|
||||||
"session reset preserves text history"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn navigation_scope_changes_invalidate_without_changing_unchanged_positions() {
|
|
||||||
let bundle = SourceBundle {
|
|
||||||
entry: "project.arcadia".into(),
|
|
||||||
files: BTreeMap::from([
|
|
||||||
("project.arcadia".into(), "entry".into()),
|
|
||||||
("part.arcadia".into(), "part".into()),
|
|
||||||
]),
|
|
||||||
};
|
|
||||||
let mut workspace = Workspace::new(&bundle, true);
|
|
||||||
let entry_generation = workspace.files[&bundle.entry].generation();
|
|
||||||
let initial_revision = workspace.revision();
|
|
||||||
workspace.set_reachable(BTreeSet::from([bundle.entry.clone()]));
|
|
||||||
assert!(workspace.revision() > initial_revision);
|
|
||||||
let membership_revision = workspace.revision();
|
|
||||||
workspace.set_reachable(workspace.reachable.clone());
|
|
||||||
assert_eq!(workspace.revision(), membership_revision);
|
|
||||||
assert!(workspace.discard_detached("part.arcadia"));
|
|
||||||
assert!(workspace.revision() > membership_revision);
|
|
||||||
let closed_revision = workspace.revision();
|
|
||||||
workspace.discovered(&bundle, BTreeSet::from([bundle.entry.clone()]));
|
|
||||||
assert!(workspace.revision() > closed_revision);
|
|
||||||
assert_eq!(
|
|
||||||
workspace.files[&bundle.entry].generation(),
|
|
||||||
entry_generation
|
|
||||||
);
|
|
||||||
assert!(workspace.files["part.arcadia"].generation() > closed_revision);
|
|
||||||
let discovered_revision = workspace.revision();
|
|
||||||
workspace.discovered(&bundle, workspace.reachable.clone());
|
|
||||||
assert_eq!(workspace.revision(), discovered_revision);
|
|
||||||
workspace.accept(&bundle);
|
|
||||||
assert!(
|
|
||||||
workspace.revision() > discovered_revision,
|
|
||||||
"validation evidence changed"
|
|
||||||
);
|
|
||||||
assert_eq!(
|
|
||||||
workspace.files[&bundle.entry].generation(),
|
|
||||||
entry_generation
|
|
||||||
);
|
|
||||||
assert_eq!(workspace.bundle(), bundle);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn navigation_revision_wrap_cannot_reuse_an_old_workspace_key() {
|
|
||||||
let bundle = SourceBundle {
|
|
||||||
entry: "project.arcadia".into(),
|
|
||||||
files: BTreeMap::from([("project.arcadia".into(), "original".into())]),
|
|
||||||
};
|
|
||||||
let mut workspace = Workspace::new(&bundle, true);
|
|
||||||
workspace.revision = u64::MAX;
|
|
||||||
let before = workspace.session();
|
|
||||||
let cursor = workspace.files[&bundle.entry].cursor;
|
|
||||||
workspace.edit("changed".into(), cursor);
|
|
||||||
assert_ne!(workspace.session(), before);
|
|
||||||
assert_eq!(workspace.revision(), 0);
|
|
||||||
assert!(workspace.undo(false));
|
|
||||||
assert_eq!(workspace.bundle(), bundle);
|
|
||||||
}
|
|
||||||
#[test]
|
#[test]
|
||||||
fn draft_history_budget_covers_inactive_files_without_discarding_drafts() {
|
fn draft_history_budget_covers_inactive_files_without_discarding_drafts() {
|
||||||
let bundle = SourceBundle {
|
let bundle = SourceBundle {
|
||||||
|
|||||||
@@ -377,8 +377,7 @@ fn source_navigation_waits_for_editor_layout_and_cancels_on_edit() {
|
|||||||
send(&mut app, Message::SourceForSelection);
|
send(&mut app, Message::SourceForSelection);
|
||||||
assert_eq!(app.page, Page::Text);
|
assert_eq!(app.page, Page::Text);
|
||||||
assert!(app.source_jump.is_some());
|
assert!(app.source_jump.is_some());
|
||||||
let ticket = app.source_reveal_ticket();
|
send(&mut app, Message::SourceViewport);
|
||||||
send(&mut app, Message::SourceViewport(ticket));
|
|
||||||
assert!(app.source_jump.is_none());
|
assert!(app.source_jump.is_none());
|
||||||
send(&mut app, Message::SourceForSelection);
|
send(&mut app, Message::SourceForSelection);
|
||||||
assert!(app.source_jump.is_some());
|
assert!(app.source_jump.is_some());
|
||||||
@@ -410,8 +409,7 @@ fn source_find_navigates_an_invalid_draft_without_applying_or_losing_it() {
|
|||||||
cursor.selection,
|
cursor.selection,
|
||||||
Some(text_editor::Position { line: 0, column: 9 })
|
Some(text_editor::Position { line: 0, column: 9 })
|
||||||
);
|
);
|
||||||
let ticket = app.source_reveal_ticket();
|
send(&mut app, Message::SourceViewport);
|
||||||
send(&mut app, Message::SourceViewport(ticket));
|
|
||||||
assert_eq!(app.source_editor.cursor(), cursor);
|
assert_eq!(app.source_editor.cursor(), cursor);
|
||||||
send(
|
send(
|
||||||
&mut app,
|
&mut app,
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
mod source_symbols;
|
|
||||||
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},
|
||||||
@@ -1020,7 +1019,7 @@ fn source(app: &App) -> View<'_, Message> {
|
|||||||
),
|
),
|
||||||
action("Next", Message::SourceNavigation(SourceEvent::Next(false))),
|
action("Next", Message::SourceNavigation(SourceEvent::Next(false))),
|
||||||
label(app.source_navigation.label()),
|
label(app.source_navigation.label()),
|
||||||
action("Close", app.source_find_close_message()),
|
action("Close", Message::SourceNavigation(SourceEvent::Close)),
|
||||||
]
|
]
|
||||||
.spacing(6)
|
.spacing(6)
|
||||||
.align_y(iced::Center),
|
.align_y(iced::Center),
|
||||||
@@ -1114,12 +1113,8 @@ fn source(app: &App) -> View<'_, Message> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
let editor = widget::text_editor(&app.source_editor)
|
let editor = widget::text_editor(&app.source_editor)
|
||||||
.id(app.source_editor_id())
|
.id("source-editor")
|
||||||
.on_action(Message::SourceEdit)
|
.on_action(Message::SourceEdit)
|
||||||
.key_binding({
|
|
||||||
let context = app.source_symbol_context();
|
|
||||||
move |press| source_binding(press, &context)
|
|
||||||
})
|
|
||||||
.font(Font::MONOSPACE)
|
.font(Font::MONOSPACE)
|
||||||
.size(14)
|
.size(14)
|
||||||
.padding(16)
|
.padding(16)
|
||||||
@@ -1128,7 +1123,8 @@ fn source(app: &App) -> View<'_, Message> {
|
|||||||
app.source_snapshot.clone(),
|
app.source_snapshot.clone(),
|
||||||
crate::highlight::format,
|
crate::highlight::format,
|
||||||
);
|
);
|
||||||
let header = container(
|
column![
|
||||||
|
container(
|
||||||
column![
|
column![
|
||||||
row![
|
row![
|
||||||
container(heading(
|
container(heading(
|
||||||
@@ -1171,499 +1167,16 @@ fn source(app: &App) -> View<'_, Message> {
|
|||||||
"Undo text affects this file's draft. Model Undo restores accepted files together (100 changes / about 32 MiB)."
|
"Undo text affects this file's draft. Model Undo restores accepted files together (100 changes / about 32 MiB)."
|
||||||
}),
|
}),
|
||||||
navigation,
|
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))),
|
|
||||||
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)
|
scrollable(diagnostics)
|
||||||
.height((visible_diagnostics as f32 * 32.).min(132.))
|
.height((visible_diagnostics as f32 * 32.).min(132.))
|
||||||
]
|
]
|
||||||
.spacing(12)
|
.spacing(12)
|
||||||
)
|
)
|
||||||
.padding(18);
|
.padding(18),
|
||||||
let editor = widget::sensor(editor)
|
widget::sensor(editor).key((app.source_workspace.active.clone(),app.source_jump))
|
||||||
.key((
|
.on_show(|_| Message::SourceViewport).on_resize(|_| Message::SourceViewport)
|
||||||
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()
|
.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()
|
|
||||||
}
|
|
||||||
fn source_binding(
|
|
||||||
press: widget::text_editor::KeyPress,
|
|
||||||
context: &crate::source_navigation::SymbolContext,
|
|
||||||
) -> Option<widget::text_editor::Binding<Message>> {
|
|
||||||
use crate::source_navigation::{SymbolEvent, query::Action};
|
|
||||||
use iced::keyboard::{Key, key::Named};
|
|
||||||
use widget::text_editor::{Binding, Status};
|
|
||||||
// Windows owns Alt+Space for its window menu. Iced's default binding would
|
|
||||||
// otherwise insert a supplied space payload, even after that menu closes.
|
|
||||||
// Keep Ctrl+Alt (AltGr), shifted input, and ordinary Space unchanged.
|
|
||||||
#[cfg(target_os = "windows")]
|
|
||||||
if matches!(press.status, Status::Focused { .. })
|
|
||||||
&& press.modifiers == iced::keyboard::Modifiers::ALT
|
|
||||||
&& matches!(
|
|
||||||
press.key.as_ref(),
|
|
||||||
Key::Named(Named::Space) | Key::Character(" ")
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return None;
|
|
||||||
}
|
|
||||||
if matches!(press.status, Status::Focused { .. })
|
|
||||||
&& !press.modifiers.control()
|
|
||||||
&& !press.modifiers.logo()
|
|
||||||
{
|
|
||||||
let event = match &press.key {
|
|
||||||
Key::Named(Named::F12) if !press.modifiers.alt() => {
|
|
||||||
Some(SymbolEvent::Query(if press.modifiers.shift() {
|
|
||||||
Action::References
|
|
||||||
} else {
|
|
||||||
Action::Definition
|
|
||||||
}))
|
|
||||||
}
|
|
||||||
Key::Named(Named::ArrowLeft) if press.modifiers.alt() && !press.modifiers.shift() => {
|
|
||||||
Some(SymbolEvent::Back)
|
|
||||||
}
|
|
||||||
_ => None,
|
|
||||||
};
|
|
||||||
if let Some(event) = event {
|
|
||||||
return Some(Binding::Custom(Message::SourceSymbols(
|
|
||||||
context.clone(),
|
|
||||||
event,
|
|
||||||
)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Binding::from_key_press(press)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(all(test, debug_assertions))]
|
|
||||||
mod source_tests {
|
|
||||||
use super::*;
|
|
||||||
use iced::advanced::{
|
|
||||||
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, Vector};
|
|
||||||
|
|
||||||
// Measure real Iced paragraphs/editor text without constructing a window or GPU.
|
|
||||||
struct FontLayout;
|
|
||||||
impl renderer::Renderer for FontLayout {
|
|
||||||
fn start_layer(&mut self, _: Rectangle) {}
|
|
||||||
fn end_layer(&mut self) {}
|
|
||||||
fn start_transformation(&mut self, _: Transformation) {}
|
|
||||||
fn end_transformation(&mut self) {}
|
|
||||||
fn reset(&mut self, _: Rectangle) {}
|
|
||||||
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 (), handle, callback);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
impl shaped::Renderer for FontLayout {
|
|
||||||
type Font = Font;
|
|
||||||
type Paragraph = graphics::text::Paragraph;
|
|
||||||
type Editor = graphics::text::Editor;
|
|
||||||
const ICON_FONT: Font = Font::DEFAULT;
|
|
||||||
const CHECKMARK_ICON: char = '0';
|
|
||||||
const ARROW_DOWN_ICON: char = '0';
|
|
||||||
const SCROLL_UP_ICON: char = '0';
|
|
||||||
const SCROLL_DOWN_ICON: char = '0';
|
|
||||||
const SCROLL_LEFT_ICON: char = '0';
|
|
||||||
const SCROLL_RIGHT_ICON: char = '0';
|
|
||||||
const ICED_LOGO: char = '0';
|
|
||||||
fn default_font(&self) -> Font {
|
|
||||||
Font::DEFAULT
|
|
||||||
}
|
|
||||||
fn default_size(&self) -> Pixels {
|
|
||||||
Pixels(16.)
|
|
||||||
}
|
|
||||||
fn fill_paragraph(&mut self, _: &Self::Paragraph, _: Point, _: Color, _: Rectangle) {}
|
|
||||||
fn fill_editor(&mut self, _: &Self::Editor, _: 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")]
|
|
||||||
#[test]
|
|
||||||
fn source_editor_windows_menu_payload_is_inert_but_space_and_altgr_still_edit() {
|
|
||||||
use core_widget::operation::Focusable;
|
|
||||||
use iced::keyboard::{
|
|
||||||
self, Key, Modifiers,
|
|
||||||
key::{Code, Named, Physical},
|
|
||||||
};
|
|
||||||
use widget::text_editor::{Binding, Content, KeyPress, State, Status};
|
|
||||||
let baseline = "// is excluded\r\n// 雨\r\n";
|
|
||||||
let context = crate::source_navigation::SymbolContext {
|
|
||||||
session: Id::new_v4(),
|
|
||||||
path: "救援/assess.arcadia".into(),
|
|
||||||
};
|
|
||||||
for (key, physical_key, modifiers, payload, inserted) in [
|
|
||||||
(
|
|
||||||
Key::Named(Named::Space),
|
|
||||||
Physical::Code(Code::Space),
|
|
||||||
Modifiers::ALT,
|
|
||||||
" ",
|
|
||||||
false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
Key::Character(" ".into()),
|
|
||||||
Physical::Code(Code::Space),
|
|
||||||
Modifiers::ALT,
|
|
||||||
" ",
|
|
||||||
false,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
Key::Named(Named::Space),
|
|
||||||
Physical::Code(Code::Space),
|
|
||||||
Modifiers::empty(),
|
|
||||||
" ",
|
|
||||||
true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
Key::Named(Named::Space),
|
|
||||||
Physical::Code(Code::Space),
|
|
||||||
Modifiers::CTRL | Modifiers::ALT,
|
|
||||||
" ",
|
|
||||||
true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
Key::Character("e".into()),
|
|
||||||
Physical::Code(Code::KeyE),
|
|
||||||
Modifiers::CTRL | Modifiers::ALT,
|
|
||||||
"€",
|
|
||||||
true,
|
|
||||||
),
|
|
||||||
(
|
|
||||||
Key::Named(Named::Space),
|
|
||||||
Physical::Code(Code::Space),
|
|
||||||
Modifiers::ALT | Modifiers::SHIFT,
|
|
||||||
" ",
|
|
||||||
true,
|
|
||||||
),
|
|
||||||
] {
|
|
||||||
let mut content = Content::<FontLayout>::with_text(baseline);
|
|
||||||
content.move_to(widget::text_editor::Cursor {
|
|
||||||
position: widget::text_editor::Position { line: 0, column: 5 },
|
|
||||||
selection: None,
|
|
||||||
});
|
|
||||||
let press = KeyPress {
|
|
||||||
key: key.clone(),
|
|
||||||
modified_key: key.clone(),
|
|
||||||
physical_key,
|
|
||||||
modifiers,
|
|
||||||
text: Some(payload.into()),
|
|
||||||
status: Status::Focused { is_hovered: false },
|
|
||||||
};
|
|
||||||
assert!(
|
|
||||||
matches!(
|
|
||||||
Binding::<Message>::from_key_press(press),
|
|
||||||
Some(Binding::Insert(_))
|
|
||||||
),
|
|
||||||
"the supplied event must expose the default insertion path"
|
|
||||||
);
|
|
||||||
let mut messages = Vec::new();
|
|
||||||
{
|
|
||||||
let mut editor: View<'_, Message, iced::Theme, FontLayout> =
|
|
||||||
widget::text_editor(&content)
|
|
||||||
.on_action(Message::SourceEdit)
|
|
||||||
.font(Font::MONOSPACE)
|
|
||||||
.size(14)
|
|
||||||
.padding(16)
|
|
||||||
.height(Fill)
|
|
||||||
.key_binding(|press| source_binding(press, &context))
|
|
||||||
.into();
|
|
||||||
let mut tree = core_widget::Tree::new(editor.as_widget());
|
|
||||||
let size = Size::new(600., 240.);
|
|
||||||
let node = editor.as_widget_mut().layout(
|
|
||||||
&mut tree,
|
|
||||||
&FontLayout,
|
|
||||||
&layout::Limits::new(Size::ZERO, size),
|
|
||||||
);
|
|
||||||
tree.state
|
|
||||||
.downcast_mut::<State<shaped::highlighter::PlainText>>()
|
|
||||||
.focus();
|
|
||||||
let event = iced::Event::Keyboard(keyboard::Event::KeyPressed {
|
|
||||||
key: key.clone(),
|
|
||||||
modified_key: key,
|
|
||||||
physical_key,
|
|
||||||
location: keyboard::Location::Standard,
|
|
||||||
modifiers,
|
|
||||||
text: Some(payload.into()),
|
|
||||||
repeat: false,
|
|
||||||
});
|
|
||||||
let mut shell = Shell::new(&mut messages);
|
|
||||||
editor.as_widget_mut().update(
|
|
||||||
&mut tree,
|
|
||||||
&event,
|
|
||||||
Layout::new(&node),
|
|
||||||
iced::mouse::Cursor::Unavailable,
|
|
||||||
&FontLayout,
|
|
||||||
&mut iced::advanced::clipboard::Null,
|
|
||||||
&mut shell,
|
|
||||||
&Rectangle::with_size(size),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
assert_eq!(
|
|
||||||
messages.len(),
|
|
||||||
usize::from(inserted),
|
|
||||||
"modifiers={modifiers:?}"
|
|
||||||
);
|
|
||||||
for message in messages {
|
|
||||||
let Message::SourceEdit(action) = message else {
|
|
||||||
panic!("unexpected navigation action");
|
|
||||||
};
|
|
||||||
content.perform(action);
|
|
||||||
}
|
|
||||||
let expected = if inserted {
|
|
||||||
format!("// is{payload} excluded\r\n// 雨\r\n")
|
|
||||||
} else {
|
|
||||||
baseline.into()
|
|
||||||
};
|
|
||||||
assert_eq!(content.text(), expected);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
fn checks(app: &App) -> View<'_, Message> {
|
fn checks(app: &App) -> View<'_, Message> {
|
||||||
let issues = &app.model_issues;
|
let issues = &app.model_issues;
|
||||||
|
|||||||
@@ -1,260 +0,0 @@
|
|||||||
use crate::{
|
|
||||||
app::{App, Message},
|
|
||||||
source_navigation::{
|
|
||||||
SymbolEvent,
|
|
||||||
query::{self, Declaration, Disposition, Evidence, Identity, Membership, Position},
|
|
||||||
},
|
|
||||||
style,
|
|
||||||
};
|
|
||||||
use iced::{
|
|
||||||
Element, Fill,
|
|
||||||
widget::{Space, button, column, container, row, scrollable, text, tooltip},
|
|
||||||
};
|
|
||||||
|
|
||||||
pub(super) fn panel(app: &App) -> Element<'_, Message> {
|
|
||||||
let state = &app.source_symbols;
|
|
||||||
if !state.open
|
|
||||||
|| (state.results.is_none() && state.in_flight.is_none() && state.notice.is_none())
|
|
||||||
{
|
|
||||||
return column![].into();
|
|
||||||
}
|
|
||||||
let title = state.results.as_ref().map_or_else(
|
|
||||||
|| "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();
|
|
||||||
if stale {
|
|
||||||
content = content.push(super::label(
|
|
||||||
"Stale results — source changed. Run Definition or References again.",
|
|
||||||
));
|
|
||||||
}
|
|
||||||
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 {
|
|
||||||
Disposition::NoSymbol => "Place the caret on a declaration alias or an @reference.",
|
|
||||||
Disposition::NoDefinition => "No matching declaration in the loaded sources.",
|
|
||||||
Disposition::Choices => {
|
|
||||||
"Choose a declaration; draft and detached candidates need an explicit choice."
|
|
||||||
}
|
|
||||||
Disposition::Direct => "Definition in the current sources.",
|
|
||||||
Disposition::LexicalReferences => {
|
|
||||||
"Lexical uses of this alias; these do not establish a semantic target."
|
|
||||||
}
|
|
||||||
};
|
|
||||||
content = content.push(super::label(explanation));
|
|
||||||
if results.total_definitions > 1 {
|
|
||||||
content = content.push(super::label(format!(
|
|
||||||
"Alias collision: {} declarations. Uses are not attributed to a single declaration.",
|
|
||||||
results.total_definitions,
|
|
||||||
)));
|
|
||||||
}
|
|
||||||
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();
|
|
||||||
content =
|
|
||||||
content.push(scrollable(rows).height((44.0 + row_count as f32 * 48.0).min(180.0)));
|
|
||||||
}
|
|
||||||
container(content)
|
|
||||||
.padding(8)
|
|
||||||
.width(Fill)
|
|
||||||
.style(style::subtle)
|
|
||||||
.into()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn counts(label: &str, shown: usize, total: usize, omitted: usize) -> String {
|
|
||||||
format!("{label}: {total} total · {shown} shown · {omitted} omitted")
|
|
||||||
}
|
|
||||||
|
|
||||||
fn declaration_title(declaration: &Declaration) -> String {
|
|
||||||
let name = declaration
|
|
||||||
.name
|
|
||||||
.as_ref()
|
|
||||||
.map_or_else(String::new, |name| format!(" \"{}\"", preview(name, 48)));
|
|
||||||
format!(
|
|
||||||
"{}{} · @{}",
|
|
||||||
preview(&declaration.kind, 24),
|
|
||||||
name,
|
|
||||||
preview(&declaration.alias, 48)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn provenance(
|
|
||||||
membership: Membership,
|
|
||||||
evidence: Evidence,
|
|
||||||
identity: Identity,
|
|
||||||
context: bool,
|
|
||||||
) -> String {
|
|
||||||
let membership = match membership {
|
|
||||||
Membership::Included => "Included",
|
|
||||||
Membership::Detached => "Detached",
|
|
||||||
Membership::Unverified => "Unverified",
|
|
||||||
};
|
|
||||||
let evidence = match evidence {
|
|
||||||
Evidence::Validated => "Validated",
|
|
||||||
Evidence::Draft => "Draft",
|
|
||||||
};
|
|
||||||
let collision = match identity {
|
|
||||||
Identity::Collision { count } => format!(
|
|
||||||
" · {}ID collision ({count})",
|
|
||||||
if context { "Context " } else { "" },
|
|
||||||
),
|
|
||||||
Identity::Missing | Identity::Unique(_) => String::new(),
|
|
||||||
};
|
|
||||||
format!("{membership} · {evidence}{collision}")
|
|
||||||
}
|
|
||||||
|
|
||||||
fn location_row(
|
|
||||||
title: String,
|
|
||||||
path: &str,
|
|
||||||
position: Position,
|
|
||||||
status: String,
|
|
||||||
event: Option<Message>,
|
|
||||||
) -> Element<'static, Message> {
|
|
||||||
let line = position.line.saturating_add(1);
|
|
||||||
let column = position.byte_column.saturating_add(1);
|
|
||||||
let location = format!("{}:{line}:{column}", preview(path, 72));
|
|
||||||
tooltip(
|
|
||||||
button(
|
|
||||||
column![
|
|
||||||
text(title).size(12),
|
|
||||||
super::label(format!("{location} · {status}"))
|
|
||||||
]
|
|
||||||
.spacing(2),
|
|
||||||
)
|
|
||||||
.padding([4, 6])
|
|
||||||
.width(Fill)
|
|
||||||
.style(style::nav)
|
|
||||||
.on_press_maybe(event),
|
|
||||||
text(format!(
|
|
||||||
"{path}:{line}:{column} (1-based line and UTF-8 byte column)"
|
|
||||||
))
|
|
||||||
.size(11),
|
|
||||||
tooltip::Position::Top,
|
|
||||||
)
|
|
||||||
.into()
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Keep headings compact without copying the remainder of a long admitted value.
|
|
||||||
fn preview(value: &str, limit: usize) -> String {
|
|
||||||
let mut chars = value.chars();
|
|
||||||
let mut result: String = chars
|
|
||||||
.by_ref()
|
|
||||||
.take(limit)
|
|
||||||
.map(|ch| if ch.is_whitespace() { ' ' } else { ch })
|
|
||||||
.collect();
|
|
||||||
if chars.next().is_some() {
|
|
||||||
result.push('…');
|
|
||||||
}
|
|
||||||
result
|
|
||||||
}
|
|
||||||
@@ -2633,23 +2633,6 @@ trace links, occurrence identity, comments and file ownership. Each open file
|
|||||||
retains its own unapplied draft across file navigation. Located lint diagnostics
|
retains its own unapplied draft across file navigation. Located lint diagnostics
|
||||||
refer to the raw draft bytes rather than an identity-stabilized intermediate.
|
refer to the raw draft bytes rather than an identity-stabilized intermediate.
|
||||||
Property editing MUST NOT silently discard a pending source draft.</p>
|
Property editing MUST NOT silently discard a pending source draft.</p>
|
||||||
<p>In Textual model, place the caret on a declaration alias or an <span class="docutils literal">@reference</span>
|
|
||||||
and choose <strong>Definition</strong> (<span class="docutils literal">F12</span>) or <strong>References</strong> (<span class="docutils literal">Shift+F12</span>).
|
|
||||||
<strong>Back</strong> (<span class="docutils literal">Alt+Left</span>) returns to the previous source location in this
|
|
||||||
workspace. These shortcuts act while the source editor has focus; the Text
|
|
||||||
toolbar also exposes the actions. If the previous draft changed, Back restores
|
|
||||||
its current cursor rather than reusing an obsolete selection.</p>
|
|
||||||
<p>Symbol navigation reads bounded snapshots of the currently loaded source
|
|
||||||
drafts. It does not apply drafts or load missing included files. The results
|
|
||||||
identify partial scope, draft evidence, detached or unverified files, alias
|
|
||||||
ambiguity and authored-ID collisions. Draft, detached and ambiguous definition
|
|
||||||
candidates require an explicit row choice. References are lexical uses of an
|
|
||||||
alias, not a list of resolved typed relationships; comments and strings are
|
|
||||||
excluded. Declaration and use counts include any rows omitted by the result
|
|
||||||
limits. If sources change, stale rows cannot navigate: run the query again.
|
|
||||||
Navigation MUST preserve the accepted model and every source draft, and select
|
|
||||||
locations in the original UTF-8 bytes. Displayed locations use one-based lines
|
|
||||||
and UTF-8 byte columns.</p>
|
|
||||||
<p>Changing a graphical UUID must atomically update map keys and every reference.
|
<p>Changing a graphical UUID must atomically update map keys and every reference.
|
||||||
Alias changes preserve UUID identity. Deletion must account for owned elements,
|
Alias changes preserve UUID identity. Deletion must account for owned elements,
|
||||||
incident relationships, ordered occurrences, and diagram placements without
|
incident relationships, ordered occurrences, and diagram placements without
|
||||||
|
|||||||
@@ -2054,25 +2054,6 @@ retains its own unapplied draft across file navigation. Located lint diagnostics
|
|||||||
refer to the raw draft bytes rather than an identity-stabilized intermediate.
|
refer to the raw draft bytes rather than an identity-stabilized intermediate.
|
||||||
Property editing MUST NOT silently discard a pending source draft.
|
Property editing MUST NOT silently discard a pending source draft.
|
||||||
|
|
||||||
In Textual model, place the caret on a declaration alias or an ``@reference``
|
|
||||||
and choose **Definition** (``F12``) or **References** (``Shift+F12``).
|
|
||||||
**Back** (``Alt+Left``) returns to the previous source location in this
|
|
||||||
workspace. These shortcuts act while the source editor has focus; the Text
|
|
||||||
toolbar also exposes the actions. If the previous draft changed, Back restores
|
|
||||||
its current cursor rather than reusing an obsolete selection.
|
|
||||||
|
|
||||||
Symbol navigation reads bounded snapshots of the currently loaded source
|
|
||||||
drafts. It does not apply drafts or load missing included files. The results
|
|
||||||
identify partial scope, draft evidence, detached or unverified files, alias
|
|
||||||
ambiguity and authored-ID collisions. Draft, detached and ambiguous definition
|
|
||||||
candidates require an explicit row choice. References are lexical uses of an
|
|
||||||
alias, not a list of resolved typed relationships; comments and strings are
|
|
||||||
excluded. Declaration and use counts include any rows omitted by the result
|
|
||||||
limits. If sources change, stale rows cannot navigate: run the query again.
|
|
||||||
Navigation MUST preserve the accepted model and every source draft, and select
|
|
||||||
locations in the original UTF-8 bytes. Displayed locations use one-based lines
|
|
||||||
and UTF-8 byte columns.
|
|
||||||
|
|
||||||
Changing a graphical UUID must atomically update map keys and every reference.
|
Changing a graphical UUID must atomically update map keys and every reference.
|
||||||
Alias changes preserve UUID identity. Deletion must account for owned elements,
|
Alias changes preserve UUID identity. Deletion must account for owned elements,
|
||||||
incident relationships, ordered occurrences, and diagram placements without
|
incident relationships, ordered occurrences, and diagram placements without
|
||||||
|
|||||||
@@ -1,9 +1,3 @@
|
|||||||
> Historical record — superseded on 2026-09-11. Live plans, ownership and blockers
|
|
||||||
> were migrated once to [Gitea issue 1, comment 408](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/1#issuecomment-408)
|
|
||||||
> and [issue 2](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/2).
|
|
||||||
> Do not update this as a live ledger. [STATE.md](STATE.md) links the verified integrated result.
|
|
||||||
> The historical text below is preserved; its old active-status wording is not current guidance.
|
|
||||||
|
|
||||||
# First release execution plan
|
# First release execution plan
|
||||||
|
|
||||||
Updated 2026-09-11, Codex-9e8r6t `/root`.
|
Updated 2026-09-11, Codex-9e8r6t `/root`.
|
||||||
|
|||||||
@@ -1,107 +1,338 @@
|
|||||||
# Integrated checkpoint — first release
|
# Progress Ledger — first release
|
||||||
|
|
||||||
Updated 2026-09-11 by Codex-9e8r6t `/root`, Windows host.
|
Updated 2026-09-11, Codex-9e8r6t `/root`, Windows host.
|
||||||
**Full OA/SA release acceptance is incomplete. Linux work remains user-paused.**
|
**Release remains unaccepted. Windows/product work continues; Linux is paused by the user.**
|
||||||
|
The [restart handoff](RESTART_HANDOFF.md) preserves the earlier pause; current
|
||||||
|
results and capacity constraints below supersede its active-status wording.
|
||||||
|
|
||||||
[PROJECT_GOAL.md](../PROJECT_GOAL.md) owns the application requirements.
|
## Objective and current source
|
||||||
Current objective attachment `9467fa86-4606-4fe2-93ec-122137d03079` was read in full.
|
|
||||||
Instruction synchronization `b70bf1d` preserves the user specification and
|
|
||||||
[AGENTS.md](../AGENTS.md). It changes instructions, not the verified package inputs.
|
|
||||||
|
|
||||||
## Delivered Windows milestone
|
Deliver the complete OA/SA first release in [PROJECT_GOAL.md](../PROJECT_GOAL.md).
|
||||||
|
The latest authoritative attachment is
|
||||||
|
`815ff7b9-73c4-41a2-a809-635ecf8389d6/goal-objective.md`, read in full and preserved
|
||||||
|
in that file. It requires constraints/calculations, quantities/units and reusable
|
||||||
|
libraries, plus uncluttered human/AI text-only modeling at small and large scale.
|
||||||
|
Long homogeneous lists and poor behavior editing remain explicit concerns.
|
||||||
|
|
||||||
[Contextual authoring prerelease](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/releases/tag/v0.2.0-preview.contextual.20260911)
|
Local branch: `codex/release1-9e8r6t`, substantive source checkpoint
|
||||||
was published and read back at 17:03:29 UTC. Extract the whole ZIP and run
|
`df6f59562643b7771ecf0c972f8655f3e3f1c4da`, committed, pushed and read back.
|
||||||
`arcadia-studio.exe`; keep its sibling `libunwind.dll`. Studio, the optional REST
|
It follows the user's instruction sync `07eb3cd`.
|
||||||
server, examples, offline help and dependency notices are included.
|
The preceding committed and pushed code/package checkpoint is
|
||||||
|
`27df4a3945ebc97cd7cbde61f6aeea7a91c680d3`. It includes named behavior creation,
|
||||||
|
source CLI, the nine CLI packaging changes and reviewed evidence. Source CLI
|
||||||
|
semantic commit `01b76a1`, packaging assembly `a0a48e8` and release integration
|
||||||
|
`27df4a3` are distinct. Contextual prerequisite creation, its reports/oracle and
|
||||||
|
40 raw evidence files are integrated in `df6f595`; native acceptance continues.
|
||||||
|
All 238 frozen build inputs and 44 exact index artifacts passed before commit.
|
||||||
|
Gitea issue 1 records the handoff in comment 242. Remote AGENTS.md at blob
|
||||||
|
`4b8465c8993107062ad2974c15a958d449530e92` adds the maintenance instructions
|
||||||
|
announced in comment 229: concise current entrypoints, durable history and
|
||||||
|
coordinated preservation rather than indiscriminate deletion.
|
||||||
|
|
||||||
The tag points to verified source checkpoint **b2c3e540**. Exact raw-input
|
## Current acceptance checkpoint — postboot work
|
||||||
reconstruction **d5650309** is distinct from the original build commit. The
|
|
||||||
package pairs GUI5657 with the unchanged, separately verified EFEE server.
|
|
||||||
All 559 package files and all three downloaded release assets were verified.
|
|
||||||
The binaries use the development profile; this is a prerelease.
|
|
||||||
|
|
||||||
The GUI supports named behavior creation and contextual missing-source creation
|
CLI publication evidence `d95b1ab` and complete OA native evidence `c4bad4b` are
|
||||||
without abandoning the parent draft. All 679 desktop tests passed, with focused
|
also pushed and read back. The reboot checkpoint preserves reviewed layout/owner
|
||||||
layout checks, strict desktop Clippy, formatting and a matching build. Real
|
caption WIP, native evidence and interrupted compiler records; it is not a new
|
||||||
Windows workflows verified minimum-size layout, recovery/cancellation, lifeline
|
accepted build. This update follows published reboot checkpoint
|
||||||
and state-machine creation, one-step Undo/Redo and exact source/identity reopen.
|
`ca53f574e57381a523e946d5277b4081cff74355`; the newer results follow below.
|
||||||
Fresh package acceptance additionally verified Home/help, native Open and
|
After successive user reboots, the latest observed boot is13:59:33.500 UTC.
|
||||||
contextual Create/Save/Close with complete model/source/identity comparison.
|
|
||||||
Independent packaged-server checks cover exact API content and persistence
|
|
||||||
across process restart. These are bounded milestone results.
|
|
||||||
|
|
||||||
Authoritative records:
|
The postboot focused3 gate reached a real terminal before that reboot:25 passed,
|
||||||
|
one new long-parent fixture assertion failed; no production visibility assertion
|
||||||
|
failed. A reviewed test-only stronger fixture is frozen for focused4, preserving
|
||||||
|
the same215-pixel host and all visibility guarantees. Automatic approval review
|
||||||
|
blocked both exact proposed incremental-cache removal attempts before execution,
|
||||||
|
with only `blocked by policy`; no deletion ran. Nondeleting NTFS compression
|
||||||
|
recovered capacity instead. The incremental-cache pass was partially applied
|
||||||
|
then intentionally stopped; the generated-binary pass completed exit0 across
|
||||||
|
282 files with every SHA256 unchanged. C had11,777,519,616 bytes free afterward.
|
||||||
|
Supported Ubuntu26.04 installation finished exit0 at14:36:46 UTC (session32405),
|
||||||
|
with10.51GB host space remaining. First actual root shell reports Ubuntu26.04
|
||||||
|
LTS, x86_64 Linux6.18.33.2-microsoft-standard-WSL2 and a mounted root filesystem.
|
||||||
|
A systemd root-user-session warning remains recorded. The user316 mirrored/DNS
|
||||||
|
settings were applied and runtime mirrored mode verified, but the guest had only
|
||||||
|
loopback, no route and failed DNS/HTTPS. Read-only host IPv6 evidence is a cause
|
||||||
|
hypothesis only; no global registry/adapter/VPN/firewall change was made. User328
|
||||||
|
now supersedes that trial with VirtioProxy and explicitly makes AmneziaWG
|
||||||
|
immutable, including inspection. Its exact VirtioProxy-only config is saved;
|
||||||
|
both the initial startup and one persistent root-shell retry after compilation
|
||||||
|
ended with CreateVm/0x800705b4 before guest commands. A distinct WslService-only
|
||||||
|
restart then failed at Windows service access; it remains Running. No elevation
|
||||||
|
workaround, extra launch or other service/network change followed. This is a
|
||||||
|
startup timeout, not a measured VirtioProxy network failure. Root rechecked the
|
||||||
|
Gitea issue through comment348 after renewed user steering: owner328 remains
|
||||||
|
the latest posted solution and is already applied. Verified official Rust archives
|
||||||
|
and all60 exact Ubuntu packages are prepared via Windows HTTPS; Ubuntu
|
||||||
|
signature verification and installation remain mandatory. Windows
|
||||||
|
focused4 passed26/26 after11m05 compile and9.54s test execution, retaining every
|
||||||
|
geometry assertion. Strict all-target Clippy and workspace format also passed.
|
||||||
|
Matching GUI compilation also passed; session87425 is terminal and no compiler
|
||||||
|
lease remains live. Immutable GUI SHA256 is
|
||||||
|
`5657BAB5C841939B66F901EFE6C0FFB2D7CBBE8CC5F111A0CA3DE8073D3846CE`.
|
||||||
|
All238 actual source inputs were rehashed unchanged. After the26 affected tests,
|
||||||
|
the immutable complete desktop executable passed all679 tests at15:47:53 UTC,
|
||||||
|
zero failed/ignored/filtered, exit0, one test thread and ordinary Windows stack.
|
||||||
|
The user subsequently directed that Linux builds and
|
||||||
|
checking be skipped until they notify us that WSL networking is resolved. Linux
|
||||||
|
setup, launches, diagnostics, builds and checks are paused; preserve current
|
||||||
|
configuration and inputs. This direction is recorded in Gitea comment356 and
|
||||||
|
supersedes service-access next steps. See
|
||||||
|
[WSL readiness](release-wsl-readiness-9e8r6t-20260911.md).
|
||||||
|
|
||||||
- [Publication, artifacts and limitations](release-contextual-source-prerelease-published-20260911.md)
|
Fresh GUI5657 v2 Lifeline baseline opened through the native file picker. At
|
||||||
- [Per-binary preparation](release-contextual-source-prerelease-preparation-20260911.md)
|
1100x700 client size with both panels, child Name, Activity, OA root and pinned
|
||||||
and [independent archive/server review](release-contextual-source-prerelease-review-20260911.md)
|
Back/Use controls were visible; a maximize/restore retained both raw names.
|
||||||
- [Fresh native package acceptance](release-contextual-source-prerelease-gui-20260911.md)
|
The completed recovery record passed exact accepted-baseline, raw parent/child,
|
||||||
and [broader GUI5657 native acceptance](release-contextual-source-native-v2-20260911.md)
|
kind/root and reserved-ID checks before a controlled isolated process stop.
|
||||||
- [Verified code/evidence checkpoint](release-postboot-checkpoint-review-20260911.md)
|
Recovery restored an unsaved local copy with an exactly equal accepted baseline
|
||||||
- [Standalone CLI prerelease](release-cli-prerelease-published-20260911.md),
|
and authored behavior/identities. Child Escape retained the parent; a new blank
|
||||||
supplying checked source stabilization and typed alias rename separately
|
child, temporary Use and parent Cancel left nothing to undo. Save As to a fresh
|
||||||
|
destination passed the unchanged core oracle with exactly two source files.
|
||||||
|
The isolated process closed normally. A fresh direct Lifeline trial subsequently
|
||||||
|
passed actual Create-before-Save, one Undo/Save and one Redo/Save against the
|
||||||
|
complete independent model/source/original-ID contract. Fresh Machine owner
|
||||||
|
visibility at minimum size, actual Create and open, one Undo/Save, one Redo/Save
|
||||||
|
and real-picker reopen/SA/Save also pass the unchanged complete contract. All
|
||||||
|
new source and consumer identities persist; Undo retains only the two proven
|
||||||
|
generated files. The final six-file reopen equals Redo exactly, and all isolated
|
||||||
|
native processes closed normally. See the
|
||||||
|
[v2 native report](release-contextual-source-native-v2-20260911.md).
|
||||||
|
|
||||||
## Material unfinished scope
|
Peer956 comment338 reserves our bounded syntax-only language outline seam;
|
||||||
|
their codec/lifecycle scope remains separate. The query experiment is private,
|
||||||
|
uncompiled and not integrated. The current design is
|
||||||
|
[text navigation](release-text-navigation-design-20260911.md); a discovered
|
||||||
|
Unicode path-collision mismatch is being corrected in a separate proposal.
|
||||||
|
Independent outline review additionally requires rejecting noncanonical UUID
|
||||||
|
spellings as authored navigation anchors and recommends folding paths once.
|
||||||
|
Root verified the parser mismatch; the author is preparing a separate v2 patch.
|
||||||
|
|
||||||
Current-draft Definition/References/Back is implemented in source checkpoint
|
- CLI `BAD169F8…E3559`: author 12/12, strict all-target Clippy/format/build pass;
|
||||||
**[36db9356](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/commit/36db9356cce3c7614ae37eec9fe17678ca210afe)**.
|
independent 183 assertions across 21 fresh processes pass. All four committed
|
||||||
The [initial native trial](release-text-navigation-native-initial-20260911.md)
|
experiment files retain their measured bytes. JSON describes complete changed
|
||||||
found four interaction defects. Their [correction](release-text-navigation-native-corrections-20260911.md)
|
files, not a saved whole-candidate plan. See the two source-CLI reports.
|
||||||
at **eeeaa126** passed 188 focused tests, the full 750-test desktop suite and
|
- Contextual source first frozen artifact `6E677F58…8CC0`: focused 22/22 and full
|
||||||
strict Clippy, with exact input readback and independent review. Matching GUI5478
|
desktop 675/675 pass, 448.33 seconds execution. The later inactive-source origin
|
||||||
[native evaluation](release-text-navigation-native-v3-20260911.md) verified those
|
bypass and guide wording are fixed and independently reviewed. Final source
|
||||||
fixes, ambiguous/partial source navigation, and the 30-file engineering workflow;
|
across 13 desktop files passed 23 focused tests, 3 guide tests, strict all-target Clippy,
|
||||||
explicit Save preserved complete models, identities and source bytes. It also
|
matching GUI build and formatting. GUI SHA256 starts `52DE82E4`; its test
|
||||||
found a repair-mode false-clean status against the prior saved destination.
|
inventory is 676. There is no full 676-suite pass. Root verified the frozen
|
||||||
Its [saved-baseline correction](release-text-repair-save-state-20260911.md)
|
inputs/executable and launched PID 7212 in the isolated
|
||||||
passes the full 755-test suite, strict Clippy and matching GUI B183 build;
|
`.local/native-qa/contextual-source-20260911-v1` stage. Lifeline Save-adoption
|
||||||
new native repair/closing and package acceptance remain required.
|
and Chain direct Create each pass complete model/source and one Undo/Redo.
|
||||||
The [integrated evaluation](release-text-navigation-integrated-20260911.md) links
|
Machine direct Create/Save and Undo/Save pass; its Redo remains pending.
|
||||||
exact input archives, earlier full-test scope and independent findings.
|
A fresh-profile postboot Open/SA view/Save now passes complete six-file model,
|
||||||
The published contextual preview remains unchanged.
|
source and original identities. That GUI closed normally. See
|
||||||
|
[native results](release-contextual-source-native-20260911.md).
|
||||||
|
- Native scenario B3: both OA use-return paths pass wide and minimum sizes;
|
||||||
|
both SA paths pass minimum focused canvas. Pending disabled Open preserves the
|
||||||
|
draft; explicit Cancel/Save matches exact baseline. B2 OA Action, nested State,
|
||||||
|
explicitly bound Reuse and Fragment all pass independent complete Project and
|
||||||
|
two-source Create/Save, one Undo/Save and one Redo/Save predictions, retaining
|
||||||
|
original exact identities. Final OA reopen/Save also passes. SA B2 remains
|
||||||
|
pending locally; B3's earlier size/layer scopes are unchanged. See
|
||||||
|
[local scenario native evidence](release-scenario-native-local-20260911.md).
|
||||||
|
- Root published GUI/server release **1**, `v0.2.0-preview.authoring.20260911`,
|
||||||
|
at 12:40:51 UTC, using source `2ec72d4`, D4D9 GUI and EFEE server.
|
||||||
|
ZIP `664F30B6…` has 559 files and passed
|
||||||
|
strict notices, independent complete archive/source correspondence, clean GUI
|
||||||
|
launch/example/Save/help/close and server create/get/restart persistence. All
|
||||||
|
three release assets passed full downloaded readback. Reports/raw evidence are
|
||||||
|
committed in `6a61061`; see [GUI/server publication](release-authoring-prerelease-published-20260911.md).
|
||||||
|
This is a prerelease, not full OA/SA acceptance.
|
||||||
|
- Root published CLI release **2**, `cli-v0.2.0-preview.authoring.20260911`, at
|
||||||
|
12:50:39 UTC. Tag and release readback match `27df4a3`, draft false and
|
||||||
|
prerelease true. ZIP `2B051F8C…` has 114 files, 27 notice packages and exact
|
||||||
|
BAD169F8/F456 executable/runtime. Independent clean CLI 156 assertions across
|
||||||
|
10 invocations pass; all three uploaded assets passed downloaded hash readback.
|
||||||
|
[Publication report](release-cli-prerelease-published-20260911.md) preserves
|
||||||
|
the exact records and distinguishes local CRLF notes from the public LF body.
|
||||||
|
|
||||||
The integrated release does not yet contain newer peer canvas/chooser and
|
## Completed work and scoped evidence
|
||||||
scenario-lifetime work, complete constraints/calculations, dimensional quantities,
|
|
||||||
maintained model libraries, or the new source-navigation contribution.
|
|
||||||
Those additions require coherent graphical/text/REST realization and validation.
|
|
||||||
Some scenario forms retain old scroll positions and dense labels remain crowded.
|
|
||||||
Local SA action/state/reuse/fragment and supplementary camera/focus tasks retain
|
|
||||||
explicit unfinished scopes in [scenario evidence](release-scenario-native-local-20260911.md).
|
|
||||||
|
|
||||||
Optimized builds, remaining real engineering workflows and a fresh independent
|
- Palette inline naming and focused Escape: `7d1df4f`, independently published as
|
||||||
cross-disciplinary end-state review remain necessary. Old MVP exclusions and
|
`codex/palette-authoring-20260910`. Candidate 2 focused tests, GUI build and
|
||||||
individual passing tests do not reduce the user's full requirements.
|
strict desktop Clippy passed. Its native F2 rename/Save/Undo/Redo matched exact
|
||||||
|
three-file expectations; Entity creation matched the complete independent
|
||||||
|
model/source oracle. Candidate 3 completed ordinary Activity, existing placement,
|
||||||
|
allocation, direct Interaction and F2: complete basic model/four sources PASS.
|
||||||
|
Explicit SA actor/destination transition passed complete model/six sources;
|
||||||
|
Undo four-source baseline, Redo six-source result and reopen all passed. Six
|
||||||
|
physical files are byte-identical across reopen/reuse-preview Cancel/Save.
|
||||||
|
Immutable checkpoints/logs: `.local/native-qa/palette-20260910-v3/`.
|
||||||
|
- Recovery naming autofocus: `31b7dc3`, 13 focused checkpoint tests passed after
|
||||||
|
integrated compilation. The later SA behavior draft's native recovery,
|
||||||
|
autofocus and Escape evidence is recorded in the creation report below.
|
||||||
|
- Other-host behavior/topology/scenario/history: original `01bb52a` integrated
|
||||||
|
as `057eddd`; constructor cache fix `b6b76ef` integrated as `a70de55`; explicit
|
||||||
|
history seed fix `4ecad78` cherry-picked as `81668f9`.
|
||||||
|
- Corrected immutable desktop artifact completed **631/631 passed**, 408.18 seconds,
|
||||||
|
exit 0; all three prior 618-artifact failures are fixed. Exact artifact/logs in
|
||||||
|
`.local/scenario-workspace-20260910/tests-81668f9/`. It covers `3978bbe` workspace,
|
||||||
|
Back/OpenUse guards and both history fixes, but not later Sensor/creation work.
|
||||||
|
- A real same-size owner/document Sensor regression led to `d114a27`; affected
|
||||||
|
scenario 53/53 passed. Historical native candidate 3 predates that correction.
|
||||||
|
Mounted workspace tests cover 500×570 and wide geometry; later local native
|
||||||
|
B2/B3 results have the separate scopes recorded above.
|
||||||
|
- Named local creation passed final 21/21 and guide 3/3 after ancestry-label
|
||||||
|
correction. The matching immutable desktop suite passed **653/653**, 362.83 seconds,
|
||||||
|
zero failures/ignored; exact artifact `864B0F…E86` and logs under
|
||||||
|
`.local/behavior-creation-20260911/tests-final`. Independent integration review
|
||||||
|
found no additional correctness blocker. Strict Clippy with all targets and
|
||||||
|
`-D warnings`, plus workspace formatting, pass after one behavior-equivalent history_fields let-chain
|
||||||
|
correction; affected history 63/63 and matching GUI rebuild pass. This frozen
|
||||||
|
creation GUI is `gui-verified` SHA D4D9C2BD…B20C31. At actual 1100×700 client size,
|
||||||
|
named OA Process, explicit ParticipantInteraction Scenario with capability
|
||||||
|
context and SA owner-linked State machine plus requested first view passed
|
||||||
|
complete independent Project/SourceBundle checks at 7/8/9 files. Each single
|
||||||
|
Undo/Redo preserved exact expected semantics, sources and role identities.
|
||||||
|
Reopen/Save retained all nine physical source files byte-for-byte. Wide/minimum
|
||||||
|
draft cancellations retained the initial six files exactly. Detailed report:
|
||||||
|
[native creation](release-behavior-creation-native-20260911.md).
|
||||||
|
- Independent creation oracle v2 corrects a harness assumption: Save retains
|
||||||
|
known detached source files after Undo. Full Project and reachable source
|
||||||
|
equality remain mandatory; the complete physical inventory must equal the
|
||||||
|
explicit pre-Undo checkpoint overlaid with expected reachable bytes. Unknown,
|
||||||
|
changed or missing retained files fail. No product defect was hidden by this
|
||||||
|
correction; see [oracle review](release-behavior-creation-oracle-20260911.md).
|
||||||
|
- Fresh source-7 constructor probes passed 54 explicit/omitted comparisons and
|
||||||
|
12 required-field refusals across OA/SA, with complete typed models, canonical
|
||||||
|
reparse and exact authored no-op/name-edit retention. Constructor and Scenario
|
||||||
|
default wording now describes current behavior; strict HTML regeneration
|
||||||
|
passed. Other constructor families are explicitly outside this evidence.
|
||||||
|
See [default review](release-constructor-defaults-review-20260911.md).
|
||||||
|
- Source schema checks passed: 72 fixtures, 204 schemas, 14 families, 90 scalar
|
||||||
|
leaves. API/language reST rendered with strict docutils without warnings.
|
||||||
|
- Packaging committed `b98f135`: portable Linux adapter, shared package checks,
|
||||||
|
Docker input validation and exact upstream notices. Independent review found
|
||||||
|
and fixed five concrete defects. Python 11/11 and PowerShell contracts pass.
|
||||||
|
Historical Windows-input ZIP has 557 files; real Linux notices close over
|
||||||
|
339 packages/681 files. Linux archive adapter used inert ELF fixtures, not
|
||||||
|
actual current application binaries. Exact Fira/Cantarell notice Git bytes
|
||||||
|
were independently verified. Later exact GUI/server and CLI packages have
|
||||||
|
their own regenerated notices and published artifact evidence above.
|
||||||
|
- Independent native Capella creation study completed, saved and closed cleanly;
|
||||||
|
report `release-capella-creation-study-20260910.md` is complete. Viewpoint-first
|
||||||
|
naming and distinct local create/existing selection inform the implementation.
|
||||||
|
- Textual usability audit completed three static tasks and example counts. The
|
||||||
|
existing grammar already permits omitted initial IDs/defaults; key gaps are
|
||||||
|
cross-file reference context, safe alias refactoring and reviewed patches.
|
||||||
|
Source-7 EBNF/schema documentation and viewpoint omission guidance are corrected;
|
||||||
|
generated language HTML passed strict docutils. Both concise snippets passed
|
||||||
|
26 real REST requests: identity-only stabilization, exact no-op/name edit,
|
||||||
|
stale/invalid nonmutation and restart persistence. All 120 current core/server
|
||||||
|
files match the preserved source-7 binary's documented snapshot. This closes
|
||||||
|
the bounded recipe gap, not large-model or native text-editor acceptance. The
|
||||||
|
verified recipe is now `examples/text-first` and in the language reference.
|
||||||
|
|
||||||
Ubuntu/WSL setup and all Linux diagnostics/builds/checks are paused until the user
|
Detailed evidence: [integrated gates](release-integrated-gates-20260910.md),
|
||||||
explicitly reports networking resolved. Preserve existing configuration, caches
|
[palette native](release-palette-native-20260910.md),
|
||||||
and evidence. [WSL readiness](release-wsl-readiness-9e8r6t-20260911.md) owns the
|
[scenario workspace](release-scenario-workspace-20260910.md),
|
||||||
historical attempts; it is not a current Linux application acceptance claim.
|
[creation design](release-local-behavior-creation-20260910.md),
|
||||||
|
[packaging implementation](release-packaging-implementation-20260910.md),
|
||||||
|
[independent packaging review](release-packaging-independent-review-20260910.md).
|
||||||
|
|
||||||
## Coordination and history
|
## Active ownership and execution
|
||||||
|
|
||||||
The user requested splitting oversized [issue 1](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/1).
|
Root owns integration, native input, commits, publication and Wiki updates.
|
||||||
Live coordination now uses focused [behavior/canvas](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/2),
|
GUI5657 native trials and the complete679 desktop tests are terminal; no owned
|
||||||
[activity movement](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/3),
|
Studio, compiler or test process remains. All Linux actions are user-paused.
|
||||||
[child work](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/4),
|
|
||||||
[lifecycle Windows acceptance](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/5),
|
|
||||||
[source navigation](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/6),
|
|
||||||
[quantities/calculations](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/7),
|
|
||||||
[maintained libraries](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/8),
|
|
||||||
and [Text alias rename](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/9).
|
|
||||||
Read current comments for ownership and execution state; this checkpoint does
|
|
||||||
not track active leases.
|
|
||||||
[Authoring Wiki](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/wiki/Authoring20260911)
|
|
||||||
is the shared entrypoint. Durable decisions remain in [DECISIONS.md](DECISIONS.md)
|
|
||||||
and topic reports; the [text-navigation design](release-text-navigation-design-20260911.md)
|
|
||||||
records the current bounded design and its falsifiers.
|
|
||||||
The [Text alias-rename proposal](release-source-alias-rename-design-20260911.md)
|
|
||||||
and its [critique](release-source-alias-rename-critique-20260911.md) are design
|
|
||||||
preparation, not implemented or verified Text capability.
|
|
||||||
|
|
||||||
Legacy TASK_LEDGER/PLAN live content was migrated once in
|
- `release_audit`: full-suite/recovery archives frozen; now audits updated
|
||||||
[comment 408](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/1#issuecomment-408).
|
Windows package inputs and per-binary source provenance without building.
|
||||||
Those files are marked historical. Previous detailed STATE was preserved
|
- `behavior_audit`: Lifeline evidence frozen; prepares separately reviewed v2
|
||||||
[byte-for-byte](history/2026-09-11-state-before-gitea-migration/STATE.md), including
|
bounded outline/query proposals. No production application or compiler lease.
|
||||||
failed attempts, prior releases, transfer paths and earlier evidence links.
|
- `linux_readiness`: Linux remains paused. Completed independent outline review;
|
||||||
Do not restore historical active-status or environment-next-step wording.
|
now preserves only the completed Windows Machine evidence.
|
||||||
|
- Codex-956atf: owns chooser/workspace/focus, shared canvas shell and isolated
|
||||||
|
schema8/local-definition core. Reported focus5/5, analysis28/28 and numeric26/26
|
||||||
|
plus core Clippy; codec/lifecycle work remains separate. None of that later
|
||||||
|
peer source is integrated locally. Our bounded language outline seam is
|
||||||
|
reserved by comment338; source8/codec ownership remains theirs.
|
||||||
|
- Codex-ytr83r: owns external B4 Scene/lifetime integration and Linux packaging.
|
||||||
|
Linux work is paused; peer host results cannot substitute for local execution.
|
||||||
|
|
||||||
|
User issue2/comment250 calls for consistent, domain-constrained interactive
|
||||||
|
diagrams, not necessarily arbitrary placement. Codex-956atf owns the shared
|
||||||
|
canvas-shell implementation in an isolated worktree (comment261). Existing
|
||||||
|
technical Canvas widgets and source cards do not close this requirement.
|
||||||
|
Local Ubuntu26.04 is installed; the last two startup attempts timed out before
|
||||||
|
guest execution. Preserve that history and verified inputs while waiting for
|
||||||
|
the user's explicit notice that WSL networking is resolved.
|
||||||
|
|
||||||
|
Verified bundles for `eb5161b` and `4ecad78` are retained in
|
||||||
|
`.local/integration-20260910`. Local refs `codex/behavior-snapshot-eb5161b` and
|
||||||
|
`codex/history-seed-20260910` preserve exact commits. B4 lifetime projection and
|
||||||
|
its guide delta are not integrated yet; coordinate shared scene wiring. Review
|
||||||
|
found insertion versus lifetime bounds, activation after branch-local Delete and
|
||||||
|
unassigned-lane map differences that must be addressed before acceptance.
|
||||||
|
|
||||||
|
## Unresolved requirements and gates
|
||||||
|
|
||||||
|
1. Finish native basic supplementary move/camera/focus/minimum matrix and current
|
||||||
|
scenario/process/state tasks. Main basic/transition/history/reopen passed at
|
||||||
|
wide size. Check raw drafts, recovery, exact source and real task completion.
|
||||||
|
2. Publish the verified contextual missing-source/source-form milestone with
|
||||||
|
truthful Windows package inputs. Named and contextual creation/history/reopen
|
||||||
|
pass; operand-editing and qualified Action allocation remain separate work.
|
||||||
|
3. Constraints/calculations and quantity compatibility are currently descriptive
|
||||||
|
metadata; same-project includes are not maintained cross-project libraries.
|
||||||
|
Peer schema 8/local-definition implementation is now ratified and staged in
|
||||||
|
its isolated worktree (Gitea comment 231); local integration and all required
|
||||||
|
representations/acceptance remain pending. See [library review brief](release-library-candidate-review-20260910.md).
|
||||||
|
Other-host proposals expose cosmetic package revision/type compatibility,
|
||||||
|
subjectless analysis closure and text-only instance normalization decisions;
|
||||||
|
full reports and paired criticism are now available from verified `c6d296a`.
|
||||||
|
Its 218-assertion maintenance experiment supports explicit baseline values
|
||||||
|
with one-level Case overrides; complete freeze and effective-case evaluation
|
||||||
|
are required. Refined baseline/library contracts remain active externally.
|
||||||
|
4. Build on the published standalone CLI and compare language improvements using
|
||||||
|
both local usability and complete other-host proposals.
|
||||||
|
Current grammar+tooling, domain syntax, namespaces and portable identity
|
||||||
|
modules remain distinct candidates. Concise examples/CLI alone do not prove
|
||||||
|
uncluttered modular engineering authoring or safe large-model changes.
|
||||||
|
5. Run coherent current desktop/core/server, specification, examples, REST and
|
||||||
|
optimized packaging gates after integration. Prior passes remain scoped.
|
||||||
|
6. Obtain current Linux runtime acceptance through the external owner's supported
|
||||||
|
guest route. Local WSL2 import failed with HCS_E_HYPERV_NOT_INSTALLED and no
|
||||||
|
distro registered; this host still has no usable Linux runtime. Preserve
|
||||||
|
recorded route failures and do not repeat a rejected workaround.
|
||||||
|
7. Fresh independent cross-disciplinary release review remains required after
|
||||||
|
actual workflow and semantic acceptance, with all material findings resolved.
|
||||||
|
|
||||||
|
## Handoff and publication
|
||||||
|
|
||||||
|
Use Gitea issue #1 and current Wiki to coordinate as **Codex-9e8r6t**. Read before
|
||||||
|
resuming; preserve the other host's work. User issue 1 comment 178 authorizes programmatic
|
||||||
|
reuse of existing MCP credentials for Git/REST without printing or committing them.
|
||||||
|
Authenticated non-force push and remote readback now pass; current branch is
|
||||||
|
available directly. Historical bundle transfers remain reproducible. Integration `3978bbe` was published and
|
||||||
|
independently fetched/hash-verified as a Git bundle on
|
||||||
|
`codex/integration-transfer-20260910`; Wiki `Integration3978bbe` and issue #97 own
|
||||||
|
exact transfer instructions. Other host has integrated it and an equivalent
|
||||||
|
Sensor fix. Creation `4bb4aaf` was likewise published on
|
||||||
|
`codex/integration-transfer-20260911`, file
|
||||||
|
`harness/transfers/creation-4bb4aaf.bundle.b64`: decoded 105022 bytes,
|
||||||
|
SHA256 `0DEFAE91A56430076C432758F923BC0675911DA9FA7588C9961FF15F47EAEBF6`,
|
||||||
|
prerequisite `3978bbe`. Anonymous Git readback, strict base64 length/hash check and
|
||||||
|
`git bundle verify` passed; issue #128 gives selective integration instructions.
|
||||||
|
Corrected oracle/native/default evidence is published as `2ec72d4` on the same
|
||||||
|
branch, file `harness/transfers/evidence-2ec72d4.bundle.b64`: decoded 185563 bytes,
|
||||||
|
SHA256 `F74E14EE394BCC026E24987C8526AA7E769DDE748FE38117532824EC19AE159F`,
|
||||||
|
prerequisite `4bb4aaf`. Anonymous readback/hash and bundle verification pass (#150).
|
||||||
|
Preserve the other hosts' B4/reference chooser/design work and avoid duplicates.
|
||||||
|
|
||||||
|
Other-host `c6d296a` transfer is verified and imported as local
|
||||||
|
`codex/behavior-snapshot-c6d296a`: 334830 bytes,
|
||||||
|
SHA256 `526A80E2D32ED0E57A7B2372B5F02D4652E8751DFEBA81953C4F045225D6AACB`,
|
||||||
|
prerequisite `1797516`, from `codex/behavior-transfer-20260910` file
|
||||||
|
`harness/transfers/behavior-c6d296a.bundle.b64`. Selected analysis/library/text
|
||||||
|
reports, criticism, experiments and independent scenario oracle are restored;
|
||||||
|
51 evidence files compare byte-for-byte with Git blobs. No source/ledger merge.
|
||||||
|
Issue comments 136/143 and Wiki `Authoring20260911` record the handoff.
|
||||||
|
|
||||||
|
The old ledgers, including all historical platform and native evidence, were
|
||||||
|
archived byte-for-byte before this consolidation in
|
||||||
|
[history/2026-09-10-ledgers-before-second-consolidation](history/2026-09-10-ledgers-before-second-consolidation/STATE.md),
|
||||||
|
with hashes.json. Their historical-current wording does not supersede this file.
|
||||||
|
|||||||
@@ -1,9 +1,3 @@
|
|||||||
> Historical record — superseded on 2026-09-11. Live plans, ownership and blockers
|
|
||||||
> were migrated once to [Gitea issue 1, comment 408](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/1#issuecomment-408)
|
|
||||||
> and [issue 2](http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/issues/2).
|
|
||||||
> Do not update this as a live ledger. [STATE.md](STATE.md) links the verified integrated result.
|
|
||||||
> The historical text below is preserved; its old active-status wording is not current guidance.
|
|
||||||
|
|
||||||
# Task Ledger — first release
|
# Task Ledger — first release
|
||||||
|
|
||||||
Updated 2026-09-11 by Codex-9e8r6t `/root`. Full release not accepted.
|
Updated 2026-09-11 by Codex-9e8r6t `/root`. Full release not accepted.
|
||||||
|
|||||||
@@ -1,56 +0,0 @@
|
|||||||
# Contextual Windows prerelease evidence — 2026-09-11
|
|
||||||
|
|
||||||
This frozen whitelist preserves **118 original payloads, 4,913,769 bytes**, for
|
|
||||||
ZIP `9186d4fc9a7b52fb195c183c4847c8e3419ea6da8b3f907e0c06f9ceec58dee0`.
|
|
||||||
Every copied payload was matched to its original by byte length and SHA256.
|
|
||||||
`manifest.json` maps original repository-relative paths to archive paths;
|
|
||||||
`readback.json` records the scoped receipt/source/module/file comparisons.
|
|
||||||
No application, oracle or compiler was rerun during preservation.
|
|
||||||
|
|
||||||
| Directory | Evidence and interpretation |
|
|
||||||
| --- | --- |
|
|
||||||
| `producer/` | Exact source reconstruction, original build references, initial wrapper failure before Cargo, corrected single-metadata packaging pass, package metadata/notices/checksums, producer readback and source-only branch publication. |
|
|
||||||
| `reviewer/` | Independent artifact and packaged-server results, executed reviewer helpers, seven exact HTTP response bodies/receipts, runtime logs and the persisted model envelope. Server termination/restart is explicit, not a graceful-drain claim. |
|
|
||||||
| `native/initial/` | Initial real GUI trial, screenshots, environment/module records, one added literal `%SystemDrive%` cache-path receipt, separate model-only oracle pass and exact three-file checkpoint. The package-inventory guard failed; the later model-only pass does not waive it. |
|
|
||||||
| `native/v2/` | Corrected fresh-profile trial, real Create-before-Save screenshots, complete-model/three-file oracle pass, module inventory, normal-close observation and unchanged 559-file package receipt. Numeric GUI exit code was not observed. |
|
|
||||||
| `native/helpers/` | Exact original and v2 launch/check helpers. V2 adds standard Windows paths/private Desktop and changes trial/extraction containment; artifact, oracle and complete-package guards remain intact. |
|
|
||||||
|
|
||||||
`native/report-before-v2.md` is the historical pending report, retained as such.
|
|
||||||
The current [native report](../../release-contextual-source-prerelease-gui-20260911.md)
|
|
||||||
states the actual v2 PASS. The frozen [producer report](../../release-contextual-source-prerelease-preparation-20260911.md)
|
|
||||||
and [independent review](../../release-contextual-source-prerelease-review-20260911.md)
|
|
||||||
remain separate. Original paths inside raw helpers/receipts describe the executed
|
|
||||||
environment; copying a helper into this archive does not make its old paths portable.
|
|
||||||
|
|
||||||
No executables, DLLs, ZIP binary, caches, full extraction, private profile or
|
|
||||||
duplicate working copy is included. Both exact `checkpoint-first/` trees equal
|
|
||||||
their respective working copies and recorded file maps. The large historical
|
|
||||||
source tar and previous release's notice inventory are referenced by original
|
|
||||||
path/hash in the manifest instead of being duplicated. The Windows cache itself
|
|
||||||
stays in the preserved first extraction; only its exact delta/hash receipt is here.
|
|
||||||
|
|
||||||
Manifest SHA256: `0e57281db42b37af1fb7b970d34f361c936240c593c3a8fea780ac89eac4f6ac`.
|
|
||||||
Readback SHA256: `1a8231064eb722b38178e0569e8b331bbd4d7fdcc9a7e28a34d7e1be33ad74fc`.
|
|
||||||
These cover the 118 copied payloads and their verification. This README and the
|
|
||||||
two staging lists are generated navigation aids, not additional raw observations.
|
|
||||||
Publication receipts belong to root's separate record and are not in this manifest.
|
|
||||||
|
|
||||||
## Byte-preserving staging
|
|
||||||
|
|
||||||
Root owns Git staging. Suggested precise `.gitattributes` addition, **not applied
|
|
||||||
by this archiver**, after the existing general text rules:
|
|
||||||
|
|
||||||
```gitattributes
|
|
||||||
harness/experiments/contextual-prerelease-20260911/** -text
|
|
||||||
```
|
|
||||||
|
|
||||||
`staging-paths.txt` enumerates exactly **124 paths**: these **123 archive files**
|
|
||||||
plus the current native report. `force-add-paths.txt` identifies the **18 `.log`
|
|
||||||
payloads** ignored by current rules. An explicitly bounded staging command is:
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
git add -f --pathspec-from-file=harness/experiments/contextual-prerelease-20260911/staging-paths.txt
|
|
||||||
```
|
|
||||||
|
|
||||||
The path list excludes later publication records and all unrelated source work.
|
|
||||||
Root should compare staged blob bytes to the manifest before committing.
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
harness/experiments/contextual-prerelease-20260911/producer/prepare.log
|
|
||||||
harness/experiments/contextual-prerelease-20260911/producer/package.log
|
|
||||||
harness/experiments/contextual-prerelease-20260911/producer/package2.log
|
|
||||||
harness/experiments/contextual-prerelease-20260911/producer/source-push.log
|
|
||||||
harness/experiments/contextual-prerelease-20260911/producer/readback.log
|
|
||||||
harness/experiments/contextual-prerelease-20260911/producer/evidence/gui-build.log
|
|
||||||
harness/experiments/contextual-prerelease-20260911/native/initial/baseline.stderr.log
|
|
||||||
harness/experiments/contextual-prerelease-20260911/native/initial/baseline.stdout.log
|
|
||||||
harness/experiments/contextual-prerelease-20260911/native/initial/stderr.log
|
|
||||||
harness/experiments/contextual-prerelease-20260911/native/initial/stdout.log
|
|
||||||
harness/experiments/contextual-prerelease-20260911/native/initial/model-only.stderr.log
|
|
||||||
harness/experiments/contextual-prerelease-20260911/native/initial/model-only.stdout.log
|
|
||||||
harness/experiments/contextual-prerelease-20260911/native/v2/baseline.stderr.log
|
|
||||||
harness/experiments/contextual-prerelease-20260911/native/v2/baseline.stdout.log
|
|
||||||
harness/experiments/contextual-prerelease-20260911/native/v2/stderr.log
|
|
||||||
harness/experiments/contextual-prerelease-20260911/native/v2/stdout.log
|
|
||||||
harness/experiments/contextual-prerelease-20260911/native/v2/saved.stderr.log
|
|
||||||
harness/experiments/contextual-prerelease-20260911/native/v2/saved.stdout.log
|
|
||||||
@@ -1,735 +0,0 @@
|
|||||||
{
|
|
||||||
"createdUtc": "2026-09-11T16:56:13.168177+00:00",
|
|
||||||
"scope": "Exact whitelist archive; records preserve actual producer, independent review and both native trials. No application/test rerun.",
|
|
||||||
"entries": [
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/prepare.py",
|
|
||||||
"path": "producer/prepare.py",
|
|
||||||
"bytes": 12841,
|
|
||||||
"sha256": "8a92989460bef90a8b7e3eb3c57d525628d79db672f72037d74d0a772a79f92c"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/prepare.log",
|
|
||||||
"path": "producer/prepare.log",
|
|
||||||
"bytes": 3657,
|
|
||||||
"sha256": "21cd606d005afe12ffcf4790ab28a345d8ec7022f7a7bf816ef70ca819febd14"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/prepare-result.json",
|
|
||||||
"path": "producer/prepare-result.json",
|
|
||||||
"bytes": 121,
|
|
||||||
"sha256": "142a6351b40bc78708215fe819898e8bacd076e9bff834f47bf012c0694cbf32"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/preparation.json",
|
|
||||||
"path": "producer/preparation.json",
|
|
||||||
"bytes": 47935,
|
|
||||||
"sha256": "01076682a763fca6c6941422b54fed02f1b7f2483c550c51a936b5bdfdbac594"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/committed-roundtrip.json",
|
|
||||||
"path": "producer/committed-roundtrip.json",
|
|
||||||
"bytes": 39327,
|
|
||||||
"sha256": "2f687aa82fa066594dfc6ec82aa2aaafdbea01912305c1a052ef11fb8ba6eb3e"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/evidence-manifest.json",
|
|
||||||
"path": "producer/evidence-manifest.json",
|
|
||||||
"bytes": 3459,
|
|
||||||
"sha256": "4d9e047a3f23664421db0404cd25ccad870067b5021b617ef4137cacdef4bdab"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/build-evidence.json",
|
|
||||||
"path": "producer/build-evidence.json",
|
|
||||||
"bytes": 2367,
|
|
||||||
"sha256": "16d1ab0df520cd7bb80e2bad89a066b47d4de366929b96a828405a1971d957ec"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/package.ps1",
|
|
||||||
"path": "producer/package.ps1",
|
|
||||||
"bytes": 3566,
|
|
||||||
"sha256": "0a7d7bf06dfa32f37635d293a52d425b940999739e32da05b10ee4407564d068"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/package.log",
|
|
||||||
"path": "producer/package.log",
|
|
||||||
"bytes": 365,
|
|
||||||
"sha256": "65601750bb248b8c59f98a78d6f593011af2f7eafafb1dc1e0eb379695a7c879"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/package-result.json",
|
|
||||||
"path": "producer/package-result.json",
|
|
||||||
"bytes": 399,
|
|
||||||
"sha256": "4ceafa4d20f4e30a1bcbe096c775da8b5db52eb045a15f2308b5df7bbe09590d"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/package2.ps1",
|
|
||||||
"path": "producer/package2.ps1",
|
|
||||||
"bytes": 3811,
|
|
||||||
"sha256": "98f43e1f409823c52dc1ec492adbdb2f6a75779c55106bcd2ed2e630744f55a4"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/package2.log",
|
|
||||||
"path": "producer/package2.log",
|
|
||||||
"bytes": 513,
|
|
||||||
"sha256": "6a260f0978be503a35547c1637a61ac0b27eb71bf314d19eb8b44bf48f8b42b6"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/package2-result.json",
|
|
||||||
"path": "producer/package2-result.json",
|
|
||||||
"bytes": 291,
|
|
||||||
"sha256": "aaf0c838ea8335c40f7b5d20f48e6c4c2eb282aa338e0ffac350dab229ebbb91"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/metadata2-result.json",
|
|
||||||
"path": "producer/metadata2-result.json",
|
|
||||||
"bytes": 533,
|
|
||||||
"sha256": "0a76097d93fbc7fcd2a770ed5a1b4ffe6d3afdd6a0e3c9f76cbc4c95b6fb6a0e"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/push-source.py",
|
|
||||||
"path": "producer/push-source.py",
|
|
||||||
"bytes": 3856,
|
|
||||||
"sha256": "4e64842fd8389909b7c11e1f5a04c0459f7987255628598ed2dd19b71641d01f"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/source-push.log",
|
|
||||||
"path": "producer/source-push.log",
|
|
||||||
"bytes": 851,
|
|
||||||
"sha256": "5c71bdf121e90f80b611698a700b6d7d512d2f558e48a17076c03282cb00946b"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/source-push-result.json",
|
|
||||||
"path": "producer/source-push-result.json",
|
|
||||||
"bytes": 447,
|
|
||||||
"sha256": "b98699bac76974d644179565163049259c195c9ca7c4c7fadd92c27f2ada4bea"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/readback.py",
|
|
||||||
"path": "producer/readback.py",
|
|
||||||
"bytes": 3510,
|
|
||||||
"sha256": "ef93f489cbea50d419588d89f7d10902f168bdd8d95979649b570180fb99b9ad"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/readback.log",
|
|
||||||
"path": "producer/readback.log",
|
|
||||||
"bytes": 2669,
|
|
||||||
"sha256": "c4d7070f987304ec5b6050ac3da209449787b99bd035529afa3ef66df2d391bd"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/package-readback.json",
|
|
||||||
"path": "producer/package-readback.json",
|
|
||||||
"bytes": 99379,
|
|
||||||
"sha256": "af8fcc11f1ad863df0861ac248a48391f635bdeef484978b0b9c4732a6593268"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/delivery-manifest.json",
|
|
||||||
"path": "producer/delivery-manifest.json",
|
|
||||||
"bytes": 4162,
|
|
||||||
"sha256": "9b48aa787d0cc2026b411c5c8a7a1ef97cb84eda06c3e06cc0dd3cd0cf373867"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/packages/ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm/package.json",
|
|
||||||
"path": "producer/package-metadata/package.json",
|
|
||||||
"bytes": 76309,
|
|
||||||
"sha256": "25f01823dbceed15468bf759eed3f9ffbfd1098427027288bcbb9a3d356b6a4d"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/packages/ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm/dependency-notices.json",
|
|
||||||
"path": "producer/package-metadata/dependency-notices.json",
|
|
||||||
"bytes": 1619822,
|
|
||||||
"sha256": "f318f87e6a23dcfac16ef7b1cfe51ecb804e98e1ff6a97271180319d5922fc0e"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/packages/ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm/documentation-check.json",
|
|
||||||
"path": "producer/package-metadata/documentation-check.json",
|
|
||||||
"bytes": 43,
|
|
||||||
"sha256": "bcc89585951fd9e5a1641993c51ca79e00a7a06944a8273d2df413331320e93f"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/packages/ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm/SHA256SUMS.txt",
|
|
||||||
"path": "producer/package-metadata/SHA256SUMS.txt",
|
|
||||||
"bytes": 66376,
|
|
||||||
"sha256": "04e4be3f6a081e11ccad8609643031d91fed82cd08e7c7821002ff9b9a04e454"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/packages/ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm.zip.sha256",
|
|
||||||
"path": "producer/package-metadata/ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm.zip.sha256",
|
|
||||||
"bytes": 144,
|
|
||||||
"sha256": "21455af55f6330235a72f43f09bd155acaea0d647bd3f68f09a64d06a21fdbcc"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/evidence/gui-inputs4.json",
|
|
||||||
"path": "producer/evidence/gui-inputs4.json",
|
|
||||||
"bytes": 44198,
|
|
||||||
"sha256": "669724858967d83ab7da5f78bfafb6065e2bcab3bad0e68d0a74feb86c7195e7"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/evidence/gui-stage-manifest.json",
|
|
||||||
"path": "producer/evidence/gui-stage-manifest.json",
|
|
||||||
"bytes": 641,
|
|
||||||
"sha256": "4beb64b955aecf5ae3bfb606316ec1fc9d17d288ed85023515148bb1890f034f"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/evidence/gui-build-status.json",
|
|
||||||
"path": "producer/evidence/gui-build-status.json",
|
|
||||||
"bytes": 232,
|
|
||||||
"sha256": "aced28a87b7306ad6112496768be0154adeb307b60f21172c4ee4ca72e534731"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/evidence/gui-build.log",
|
|
||||||
"path": "producer/evidence/gui-build.log",
|
|
||||||
"bytes": 157,
|
|
||||||
"sha256": "73e2dec6d40e99059b1a89b0f3602239f2df1abac6dde99104679b0b2b04c4a7"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/evidence/gui-clippy-status.json",
|
|
||||||
"path": "producer/evidence/gui-clippy-status.json",
|
|
||||||
"bytes": 257,
|
|
||||||
"sha256": "03046af19cfc7b5be86fdfc06f5ec542b9f33e94f8121b23236602bdbaca8383"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/evidence/gui-fmt-status.json",
|
|
||||||
"path": "producer/evidence/gui-fmt-status.json",
|
|
||||||
"bytes": 187,
|
|
||||||
"sha256": "7b8f8ebfb1989cc3bd00e98f49afcf1e533939b50242a6177b8a4e5238641a3f"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/evidence/gui-focused26-status.json",
|
|
||||||
"path": "producer/evidence/gui-focused26-status.json",
|
|
||||||
"bytes": 293,
|
|
||||||
"sha256": "9242277158a77a9e96c0121637cfe635dde09217ed9e4109d9f37f8e50710eff"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/evidence/gui-full679-result.json",
|
|
||||||
"path": "producer/evidence/gui-full679-result.json",
|
|
||||||
"bytes": 669,
|
|
||||||
"sha256": "a87d2634fe8be05e7de387346a43056db150f1846ac54a18d02650fe81b9c80d"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/evidence/server-original-gates.json",
|
|
||||||
"path": "producer/evidence/server-original-gates.json",
|
|
||||||
"bytes": 2572,
|
|
||||||
"sha256": "b7fdfc55ed4c964d276f20f1c57c81c1e924b8da315171089740ab8335ac9f0d"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/evidence/server-original-binary-hashes.json",
|
|
||||||
"path": "producer/evidence/server-original-binary-hashes.json",
|
|
||||||
"bytes": 744,
|
|
||||||
"sha256": "110a03e323133efb48d50ad065d41414599aa85e0ac420e7d622aa04df4d54f8"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/evidence/server-prior-input-comparisons.json",
|
|
||||||
"path": "producer/evidence/server-prior-input-comparisons.json",
|
|
||||||
"bytes": 66465,
|
|
||||||
"sha256": "3c78dea4e93dae186fd24ab826c6680178a2c7849c270a22deae2ff732f1857b"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-20260911/evidence/update-audit.md",
|
|
||||||
"path": "producer/evidence/update-audit.md",
|
|
||||||
"bytes": 11024,
|
|
||||||
"sha256": "305f0be41ae2a6d7b29edb51c411a0f229a7f41f4ff1b78a46fc27730a1991f0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/artifact-result.json",
|
|
||||||
"path": "reviewer/artifact-result.json",
|
|
||||||
"bytes": 500051,
|
|
||||||
"sha256": "3a6bf2580b25dad696d635dcbbde88522a065f83698229c2a22dda92f2ab6ee8"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/frozen-inputs.json",
|
|
||||||
"path": "reviewer/frozen-inputs.json",
|
|
||||||
"bytes": 423,
|
|
||||||
"sha256": "e5aadf382b62863a875c08707173dee50423e0d35bb3209642035f8936aa7af2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/prepare_review.py",
|
|
||||||
"path": "reviewer/prepare_review.py",
|
|
||||||
"bytes": 16502,
|
|
||||||
"sha256": "1879237f65c00c720ecaa0991381cc6bc8ab3b2948a1b1b7944f09e3d8a7b3e0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/review.py",
|
|
||||||
"path": "reviewer/review.py",
|
|
||||||
"bytes": 30170,
|
|
||||||
"sha256": "b2a5eb1e5b01dfacb85a2ab5b5b8516c02a84424a2fb49156d0d7df7634226bc"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/server-result.json",
|
|
||||||
"path": "reviewer/server-result.json",
|
|
||||||
"bytes": 128940,
|
|
||||||
"sha256": "37fec9e1a1bcaa8a208233fc56fb78a1e607df32271097ab1a946037f04de3af"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/terminal-readback.json",
|
|
||||||
"path": "reviewer/terminal-readback.json",
|
|
||||||
"bytes": 2950,
|
|
||||||
"sha256": "0d8b2b73381b4618991978735ec561bc706e200a8a64457229662ba4029378dd"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/server-run/help.stderr",
|
|
||||||
"path": "reviewer/server-run/help.stderr",
|
|
||||||
"bytes": 0,
|
|
||||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/server-run/help.stdout",
|
|
||||||
"path": "reviewer/server-run/help.stdout",
|
|
||||||
"bytes": 350,
|
|
||||||
"sha256": "99c5cb07d451c6da829b835b66fce92ce5c2529508c8053030123df704d0610e"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/server-run/version.stderr",
|
|
||||||
"path": "reviewer/server-run/version.stderr",
|
|
||||||
"bytes": 0,
|
|
||||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/server-run/version.stdout",
|
|
||||||
"path": "reviewer/server-run/version.stdout",
|
|
||||||
"bytes": 21,
|
|
||||||
"sha256": "af82a1126f98794babaa173139764cadbfb5143a235f9a887ef70d18d00a0d91"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/server-run/server-1.stderr",
|
|
||||||
"path": "reviewer/server-run/server-1.stderr",
|
|
||||||
"bytes": 160,
|
|
||||||
"sha256": "a13a72054e4e57ae3fa8eb0d636257865d864b163bc26e1d06a67a78c7021445"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/server-run/server-1.stdout",
|
|
||||||
"path": "reviewer/server-run/server-1.stdout",
|
|
||||||
"bytes": 0,
|
|
||||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/server-run/server-2.stderr",
|
|
||||||
"path": "reviewer/server-run/server-2.stderr",
|
|
||||||
"bytes": 160,
|
|
||||||
"sha256": "9686dfd32fc6640b966cf1c1cc2f95dbfdbac321a4ac0a9b81f3830fb4311d9b"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/server-run/server-2.stdout",
|
|
||||||
"path": "reviewer/server-run/server-2.stdout",
|
|
||||||
"bytes": 0,
|
|
||||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/server-run/http-01.body",
|
|
||||||
"path": "reviewer/server-run/http-01.body",
|
|
||||||
"bytes": 15,
|
|
||||||
"sha256": "a29ee2b15c494311c52521766e44af56a3ad2248e7a8ab465e5206463c13d288"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/server-run/http-01.json",
|
|
||||||
"path": "reviewer/server-run/http-01.json",
|
|
||||||
"bytes": 397,
|
|
||||||
"sha256": "19806bc0189d6be751f89b752a3c26bc5d0cbe6a91746aa1123fd6ea1f9a3ecc"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/server-run/http-02.body",
|
|
||||||
"path": "reviewer/server-run/http-02.body",
|
|
||||||
"bytes": 15,
|
|
||||||
"sha256": "a29ee2b15c494311c52521766e44af56a3ad2248e7a8ab465e5206463c13d288"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/server-run/http-02.json",
|
|
||||||
"path": "reviewer/server-run/http-02.json",
|
|
||||||
"bytes": 403,
|
|
||||||
"sha256": "1a0055da5f4d866380c51c76abf68211438a29c9827a755d0332dca03a08e62e"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/server-run/http-03.body",
|
|
||||||
"path": "reviewer/server-run/http-03.body",
|
|
||||||
"bytes": 359757,
|
|
||||||
"sha256": "c6ae512f791a939eaf6ec5e5e78e9468bdee0e028092d00098bd90ad9498d967"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/server-run/http-03.json",
|
|
||||||
"path": "reviewer/server-run/http-03.json",
|
|
||||||
"bytes": 414,
|
|
||||||
"sha256": "601c06d27a21511fc9d8f049ee69994171b0ed6a94493ef26b6f3c4bbd31274e"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/server-run/http-04.body",
|
|
||||||
"path": "reviewer/server-run/http-04.body",
|
|
||||||
"bytes": 252,
|
|
||||||
"sha256": "13323e5f458fcfb859679aab013498bed98b79ace01886937820bffc9de34280"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/server-run/http-04.json",
|
|
||||||
"path": "reviewer/server-run/http-04.json",
|
|
||||||
"bytes": 542,
|
|
||||||
"sha256": "9e212d7f72e628af9b2b4c9489ccccfd3f84d2c12f6a13f4b7633151addee1a9"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/server-run/http-05.body",
|
|
||||||
"path": "reviewer/server-run/http-05.body",
|
|
||||||
"bytes": 566,
|
|
||||||
"sha256": "b9763c66414711a92089fe0e44749d1eb19fe4487be3defa890b899fa11da15e"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/server-run/http-05.json",
|
|
||||||
"path": "reviewer/server-run/http-05.json",
|
|
||||||
"bytes": 505,
|
|
||||||
"sha256": "a81bbebfce562b0835739cbce918f7edd875be0595cdc0bd74404f3c8715870e"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/server-run/http-06.body",
|
|
||||||
"path": "reviewer/server-run/http-06.body",
|
|
||||||
"bytes": 15,
|
|
||||||
"sha256": "a29ee2b15c494311c52521766e44af56a3ad2248e7a8ab465e5206463c13d288"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/server-run/http-06.json",
|
|
||||||
"path": "reviewer/server-run/http-06.json",
|
|
||||||
"bytes": 403,
|
|
||||||
"sha256": "feb893aef0ed7923b802b153cddd2f378409badc2e68710a56a351522bfb5850"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/server-run/http-07.body",
|
|
||||||
"path": "reviewer/server-run/http-07.body",
|
|
||||||
"bytes": 566,
|
|
||||||
"sha256": "b9763c66414711a92089fe0e44749d1eb19fe4487be3defa890b899fa11da15e"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/server-run/http-07.json",
|
|
||||||
"path": "reviewer/server-run/http-07.json",
|
|
||||||
"bytes": 505,
|
|
||||||
"sha256": "30caeb4cf751a9b6e955f63679daa54ac2514fc9ad2a8870a6303d5918dc55fe"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-review-20260911/server-run/data/3ab1f047-86a8-435e-8519-c372ddcd87ca.json",
|
|
||||||
"path": "reviewer/server-run/persisted-envelope.json",
|
|
||||||
"bytes": 566,
|
|
||||||
"sha256": "b9763c66414711a92089fe0e44749d1eb19fe4487be3defa890b899fa11da15e"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911/baseline.json",
|
|
||||||
"path": "native/initial/baseline.json",
|
|
||||||
"bytes": 425,
|
|
||||||
"sha256": "64ad261e2f85e75c396557c8eaadc9203a8761f09c4c5e06c0ac8c043d3b8a20"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911/baseline.stderr.log",
|
|
||||||
"path": "native/initial/baseline.stderr.log",
|
|
||||||
"bytes": 0,
|
|
||||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911/baseline.stdout.log",
|
|
||||||
"path": "native/initial/baseline.stdout.log",
|
|
||||||
"bytes": 86,
|
|
||||||
"sha256": "738f111737ec2cda051e8830f96b4064faab072e5772ca63302a41cdf0c7b541"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911/created-before-save.jpg",
|
|
||||||
"path": "native/initial/created-before-save.jpg",
|
|
||||||
"bytes": 116350,
|
|
||||||
"sha256": "245149dc458f39b41f59b441fe2b351cbd841768f10b11d4b73e08dc66d8dc0d"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911/home.jpg",
|
|
||||||
"path": "native/initial/home.jpg",
|
|
||||||
"bytes": 98549,
|
|
||||||
"sha256": "f4ff60737ce83e963d9fab85f1103cd0f5f4f928b6e43a7d070a186d774e6433"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911/launch.json",
|
|
||||||
"path": "native/initial/launch.json",
|
|
||||||
"bytes": 1369,
|
|
||||||
"sha256": "8149587422e88b556c9d890ef8b4d89c0a02c616d066b43ef23a0dee964a3d4d"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911/loaded-modules.json",
|
|
||||||
"path": "native/initial/loaded-modules.json",
|
|
||||||
"bytes": 6238,
|
|
||||||
"sha256": "73b9be28610394727213dbb24da776e698b53197a5ee340571a8a5e35004a8b4"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911/new-activity-ready.jpg",
|
|
||||||
"path": "native/initial/new-activity-ready.jpg",
|
|
||||||
"bytes": 115800,
|
|
||||||
"sha256": "9afe7c34b51db89680e342a178558172159d3cc8e6b2289c18f3469af2f91473"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911/normal-close.json",
|
|
||||||
"path": "native/initial/normal-close.json",
|
|
||||||
"bytes": 283,
|
|
||||||
"sha256": "ebf672a7b77bb5ad8363400f61ac18d2ce931965556c9557ad8a794240f7f35b"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911/offline-guide.jpg",
|
|
||||||
"path": "native/initial/offline-guide.jpg",
|
|
||||||
"bytes": 170876,
|
|
||||||
"sha256": "786bbc462322b46d12b127a7d3baacf6034cf3f4839c340e3e9229173ed85545"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911/package-before.json",
|
|
||||||
"path": "native/initial/package-before.json",
|
|
||||||
"bytes": 70373,
|
|
||||||
"sha256": "e604e6c0f4df3861241d7395a2d4be2d428c5870a7461b948628c23e90290e03"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911/saved-model.jpg",
|
|
||||||
"path": "native/initial/saved-model.jpg",
|
|
||||||
"bytes": 116903,
|
|
||||||
"sha256": "4d29b07c4741ba5d12685ce82c7311d04a2b48cde281a64b5ca86827ffe156dc"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911/staged-before-create.jpg",
|
|
||||||
"path": "native/initial/staged-before-create.jpg",
|
|
||||||
"bytes": 110100,
|
|
||||||
"sha256": "eac2bf311a30eacf3ab888febced22ea7685cd4ab7f81ee899f4de318a4e20ff"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911/stderr.log",
|
|
||||||
"path": "native/initial/stderr.log",
|
|
||||||
"bytes": 0,
|
|
||||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911/stdout.log",
|
|
||||||
"path": "native/initial/stdout.log",
|
|
||||||
"bytes": 0,
|
|
||||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911/model-only-result.json",
|
|
||||||
"path": "native/initial/model-only-result.json",
|
|
||||||
"bytes": 1200,
|
|
||||||
"sha256": "6497d9f0ca8a370d9844d6e48811c38293fbed26adc495713fec8765f10c1e52"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911/model-only.stderr.log",
|
|
||||||
"path": "native/initial/model-only.stderr.log",
|
|
||||||
"bytes": 0,
|
|
||||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911/model-only.stdout.log",
|
|
||||||
"path": "native/initial/model-only.stdout.log",
|
|
||||||
"bytes": 81,
|
|
||||||
"sha256": "ce1401a7002b272d197337c08574eeb0cf92a650bcdb4a8f7a4c8eafc2be87e8"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911/package-delta-after-gui.json",
|
|
||||||
"path": "native/initial/package-delta-after-gui.json",
|
|
||||||
"bytes": 202,
|
|
||||||
"sha256": "94e2bde3a985a3b92329922bea35316298ed14c950b2a4d8f92435df3981b9f8"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911/profile-desktop-correction.json",
|
|
||||||
"path": "native/initial/profile-desktop-correction.json",
|
|
||||||
"bytes": 270,
|
|
||||||
"sha256": "b566d6c03966ea834a523c962c365f181aa14c41bd44237dad80b6508f4aa981"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911/profile-desktop-warning.jpg",
|
|
||||||
"path": "native/initial/profile-desktop-warning.jpg",
|
|
||||||
"bytes": 25684,
|
|
||||||
"sha256": "2994e5be5feb5a15eb6b561f23f03b1f7cc1b74beb013b59698c74a0ab5feb19"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911/checkpoint-first/notes.arcadia",
|
|
||||||
"path": "native/initial/checkpoint-first/notes.arcadia",
|
|
||||||
"bytes": 63,
|
|
||||||
"sha256": "ad9de02963c20d1f43856455a797deb05ca674659e45f2c4b96b52783024f8bd"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911/checkpoint-first/project.arcadia",
|
|
||||||
"path": "native/initial/checkpoint-first/project.arcadia",
|
|
||||||
"bytes": 860,
|
|
||||||
"sha256": "82297ccc2eae444f9ec7caca793ce71b2340904014289e36f8a6bc587f640f23"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911/checkpoint-first/oa/activities/activity_assess_incident_work.arcadia",
|
|
||||||
"path": "native/initial/checkpoint-first/oa/activities/activity_assess_incident_work.arcadia",
|
|
||||||
"bytes": 142,
|
|
||||||
"sha256": "6fe331b65e7e9489221dd8914d26fa188d4941c1641685f5c24a4320cdb9c857"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911-v2/baseline.json",
|
|
||||||
"path": "native/v2/baseline.json",
|
|
||||||
"bytes": 428,
|
|
||||||
"sha256": "e549bfaea44b38145e5492483635e8b5d629cd9f9cd48d39b91cb870c68bc1ad"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911-v2/baseline.stderr.log",
|
|
||||||
"path": "native/v2/baseline.stderr.log",
|
|
||||||
"bytes": 0,
|
|
||||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911-v2/baseline.stdout.log",
|
|
||||||
"path": "native/v2/baseline.stdout.log",
|
|
||||||
"bytes": 86,
|
|
||||||
"sha256": "738f111737ec2cda051e8830f96b4064faab072e5772ca63302a41cdf0c7b541"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911-v2/created-before-save.jpg",
|
|
||||||
"path": "native/v2/created-before-save.jpg",
|
|
||||||
"bytes": 116352,
|
|
||||||
"sha256": "d3e22341334722fde43583d8e38bbf49dd6a99dbdae39bc25d10ebc4f19c3e32"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911-v2/home.jpg",
|
|
||||||
"path": "native/v2/home.jpg",
|
|
||||||
"bytes": 98686,
|
|
||||||
"sha256": "2cfbc6e181429077787d3a6f629143b2dc62b28a3756ed7b19c8f8d59ab44068"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911-v2/launch.json",
|
|
||||||
"path": "native/v2/launch.json",
|
|
||||||
"bytes": 1521,
|
|
||||||
"sha256": "f82e8adb7f2c4a07dbbb33c0e8747a674f933a00e1affdeb5360ea1804b6b8e4"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911-v2/loaded-modules.json",
|
|
||||||
"path": "native/v2/loaded-modules.json",
|
|
||||||
"bytes": 13819,
|
|
||||||
"sha256": "62f9bba732f723169e4b3a7211a881b8f391273016c70acb8ad71a5d79ee9793"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911-v2/new-activity-ready.jpg",
|
|
||||||
"path": "native/v2/new-activity-ready.jpg",
|
|
||||||
"bytes": 115891,
|
|
||||||
"sha256": "67faf7cc8dfee72b9d1af447b5012c9fff0284b3091dca7911d4920d575c8589"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911-v2/normal-close.json",
|
|
||||||
"path": "native/v2/normal-close.json",
|
|
||||||
"bytes": 195,
|
|
||||||
"sha256": "a4bbd1cabe99303718b2dc77bbe06313c0e28a7802d6c76bb1c99806b476da08"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911-v2/offline-guide.jpg",
|
|
||||||
"path": "native/v2/offline-guide.jpg",
|
|
||||||
"bytes": 170754,
|
|
||||||
"sha256": "3a84f9f94d742c5fed47dbed6d53d0b122132b56e89251cc21c644fdfbb36118"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911-v2/package-before.json",
|
|
||||||
"path": "native/v2/package-before.json",
|
|
||||||
"bytes": 70373,
|
|
||||||
"sha256": "e604e6c0f4df3861241d7395a2d4be2d428c5870a7461b948628c23e90290e03"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911-v2/saved-model.jpg",
|
|
||||||
"path": "native/v2/saved-model.jpg",
|
|
||||||
"bytes": 116260,
|
|
||||||
"sha256": "5cdc7c28f73cf4bfdf639d16a5b55e7ea93df431af925bd5ef68ca8ad38d586a"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911-v2/staged-before-create.jpg",
|
|
||||||
"path": "native/v2/staged-before-create.jpg",
|
|
||||||
"bytes": 109910,
|
|
||||||
"sha256": "9ba81a18485b7df8ec9f872d0c3bceaff743cba486b579edcd9f1ec335773439"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911-v2/stderr.log",
|
|
||||||
"path": "native/v2/stderr.log",
|
|
||||||
"bytes": 0,
|
|
||||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911-v2/stdout.log",
|
|
||||||
"path": "native/v2/stdout.log",
|
|
||||||
"bytes": 0,
|
|
||||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911-v2/package-after-close.json",
|
|
||||||
"path": "native/v2/package-after-close.json",
|
|
||||||
"bytes": 104,
|
|
||||||
"sha256": "d6641ee66a9732dc053c979ad4a378b07f8487b53ced87225e934ce6a18dd496"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911-v2/saved-files.json",
|
|
||||||
"path": "native/v2/saved-files.json",
|
|
||||||
"bytes": 304,
|
|
||||||
"sha256": "77f623114ff4c8774bddc9790f96256b26863e389a6407d6fbe8fd583c463cfb"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911-v2/saved.json",
|
|
||||||
"path": "native/v2/saved.json",
|
|
||||||
"bytes": 594,
|
|
||||||
"sha256": "254bcc0af17b50be4f0ee39a22e9993556de601a82191f826b8f2e4453c8762c"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911-v2/saved.stderr.log",
|
|
||||||
"path": "native/v2/saved.stderr.log",
|
|
||||||
"bytes": 0,
|
|
||||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911-v2/saved.stdout.log",
|
|
||||||
"path": "native/v2/saved.stdout.log",
|
|
||||||
"bytes": 81,
|
|
||||||
"sha256": "ce1401a7002b272d197337c08574eeb0cf92a650bcdb4a8f7a4c8eafc2be87e8"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911-v2/checkpoint-first/notes.arcadia",
|
|
||||||
"path": "native/v2/checkpoint-first/notes.arcadia",
|
|
||||||
"bytes": 63,
|
|
||||||
"sha256": "ad9de02963c20d1f43856455a797deb05ca674659e45f2c4b96b52783024f8bd"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911-v2/checkpoint-first/project.arcadia",
|
|
||||||
"path": "native/v2/checkpoint-first/project.arcadia",
|
|
||||||
"bytes": 860,
|
|
||||||
"sha256": "b1fd5349f956f3a17005f883c6675c73aee0f6bcee2b9fa7a582996215c3b23e"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911-v2/checkpoint-first/oa/activities/activity_assess_incident_work.arcadia",
|
|
||||||
"path": "native/v2/checkpoint-first/oa/activities/activity_assess_incident_work.arcadia",
|
|
||||||
"bytes": 142,
|
|
||||||
"sha256": "0bb8947810cf9a8bcb9394bf72ca512f9da5bf9128262188510367455291b1d7"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-20260911.py",
|
|
||||||
"path": "native/helpers/contextual-prerelease-gui-20260911.py",
|
|
||||||
"bytes": 5601,
|
|
||||||
"sha256": "951b1f4b913972c5c90b17e3e70f3644c4c9328d82372a325ee46debb345237a"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-gui-v2-20260911.py",
|
|
||||||
"path": "native/helpers/contextual-prerelease-gui-v2-20260911.py",
|
|
||||||
"bytes": 6031,
|
|
||||||
"sha256": "9637ac8f5b9cd97ce672e0bd6b891454b2145a6236421d82536b8bdb2d66bc3c"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-prerelease-extraction2-20260911/preparation.json",
|
|
||||||
"path": "native/extraction2-preparation.json",
|
|
||||||
"bytes": 76980,
|
|
||||||
"sha256": "4b10a80dd0697061b52a75178d14ca0174cf3f66cbcad8cb281ae63bad2ea731"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": "harness/release-contextual-source-prerelease-gui-20260911.md",
|
|
||||||
"path": "native/report-before-v2.md",
|
|
||||||
"bytes": 4040,
|
|
||||||
"sha256": "19ec515d8d5e18f7c2e853dc34de2e01260eec891d190dc84877583ba42a5483"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"payloadFiles": 118,
|
|
||||||
"payloadBytes": 4913769,
|
|
||||||
"largeReferencedOriginalsNotDuplicated": [
|
|
||||||
{
|
|
||||||
"source": ".local/linux-qa/runtime/source7-20260907T082753190288Z.tar.gz",
|
|
||||||
"destination": "evidence/server-source-snapshot.tar.gz",
|
|
||||||
"sha256": "cbb371a93a562e1e641d7629fe351e016d63e66fc9112499b3fed6d5cd171f78",
|
|
||||||
"bytes": 2089801
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/authoring-prerelease-20260911/packages/ArcadiaStudio-0.2.0-preview.authoring.20260911-x86_64-pc-windows-gnullvm/dependency-notices.json",
|
|
||||||
"destination": "evidence/prior-dependency-notices.json",
|
|
||||||
"sha256": "98fab15c1a2bb3aa727c6d52d5c69435b15efa56b6668ed717e7a04cf86f9b52",
|
|
||||||
"bytes": 1619590
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"frozenReportsUnchanged": {
|
|
||||||
"harness/release-contextual-source-prerelease-preparation-20260911.md": "48fb5ecbef5d4bfbcff86fcf0c2770b2252a36b70da7272180b5ab3201c63c90",
|
|
||||||
"harness/release-contextual-source-prerelease-review-20260911.md": "fb95b410dc8fd0cef0d1a4b16d2efd6852c978aa47f8245a9b8c52c44e00ab4d"
|
|
||||||
},
|
|
||||||
"attributesBefore": "4b1bcac186548533eb38f3901badf456058eb7b9e6f5b974c397d52254435230"
|
|
||||||
}
|
|
||||||
@@ -1,617 +0,0 @@
|
|||||||
{
|
|
||||||
"preparedUtc": "2026-09-11T16:34:53.482070+00:00",
|
|
||||||
"scope": "Preparation and exact extraction only; helper not executed, trial directory absent, no GUI/server/oracle/compiler/WSL launch or system change.",
|
|
||||||
"archive": {
|
|
||||||
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-20260911\\packages\\ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm.zip",
|
|
||||||
"sha256": "9186d4fc9a7b52fb195c183c4847c8e3419ea6da8b3f907e0c06f9ceec58dee0",
|
|
||||||
"bytes": 32775691
|
|
||||||
},
|
|
||||||
"review": {
|
|
||||||
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-review-20260911\\artifact-result.json",
|
|
||||||
"sha256": "3a6bf2580b25dad696d635dcbbde88522a065f83698229c2a22dda92f2ab6ee8",
|
|
||||||
"status": "PASS"
|
|
||||||
},
|
|
||||||
"package": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-extraction2-20260911\\ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm",
|
|
||||||
"files": {
|
|
||||||
"arcadia-server.exe": "efeeb89c0d2e0f93df4472cb3e9f48b2b722a37ae1043c90a5a56f2e845fe665",
|
|
||||||
"arcadia-studio.exe": "5657bab5c841939b66f901efe6c0ffb2d7cbbe8cc5f111a0ca3de8073d3846ce",
|
|
||||||
"dependency-notices.json": "f318f87e6a23dcfac16ef7b1cfe51ecb804e98e1ff6a97271180319d5922fc0e",
|
|
||||||
"documentation-check.json": "bcc89585951fd9e5a1641993c51ca79e00a7a06944a8273d2df413331320e93f",
|
|
||||||
"libunwind.dll": "f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4",
|
|
||||||
"LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365",
|
|
||||||
"package.json": "25f01823dbceed15468bf759eed3f9ffbfd1098427027288bcbb9a3d356b6a4d",
|
|
||||||
"README.md": "597cfb8da873e019d2658420f18ec059f0185fa9106ff9eafe934dfdd6ed266b",
|
|
||||||
"SHA256SUMS.txt": "04e4be3f6a081e11ccad8609643031d91fed82cd08e7c7821002ff9b9a04e454",
|
|
||||||
"START-HERE.txt": "a549295cf57ac73673dc4fa6106463450f982122793cb9c7135ce4fc7087e9ed",
|
|
||||||
"THIRD-PARTY-NOTICES.txt": "6756989c8fc73706641cd78449c315458425a2eed9a82febc289b9d28ea7f21f",
|
|
||||||
"deployment/arcadia-server.service": "1e6c6bb4065e25f8fe1d558a4ed0bbd4844782a4377c2482488db1e6f9cab01d",
|
|
||||||
"deployment/Dockerfile": "72c04aef4ec879955ed3bdf315987553d018ef46e4b8f350f0f6fe380c453eb7",
|
|
||||||
"deployment/Dockerfile.dockerignore": "6bb7d7496110b11a531cb8cd923864c6610850a8f1c4de8a797f54c7156f29e1",
|
|
||||||
"docs/api.html": "a06126cb741da57e9c06e83fc4137ccde0de05562673546bc9d405878f51ea07",
|
|
||||||
"docs/api.rst": "ca7d310138c3b4d429d80a1d03d1ac8d4a9296069e205da573034256d10438a7",
|
|
||||||
"docs/language.html": "67dcfa3477b48a0b07298ec81741840cc3ccff12c7d58164873d746d41d611c8",
|
|
||||||
"docs/language.rst": "ac6b1d982c55f246de2f3c844b24b874599a3c20cfbd7ed22efe4561ac622b83",
|
|
||||||
"docs/linux-packaging.md": "41a1bb1095801df37a1411341c5791d55ea8c365739314d599a60269ac4bc7a0",
|
|
||||||
"docs/openapi.json": "c6ae512f791a939eaf6ec5e5e78e9468bdee0e028092d00098bd90ad9498d967",
|
|
||||||
"docs/research-v2-service.md": "4828df5bc679e7c71f49b4b85c9e7dacbec52f46d416fed48af70e08886d4e4e",
|
|
||||||
"docs/server.md": "4eb24937d424ba8b384e1734e02a6f8e963ae11d2715889c92b14b39ff2e4a48",
|
|
||||||
"docs/windows-packaging.md": "2c852ff7041713ffbff3c951ac98df647c51fb70b0feba9000f7bfd5bc2703a8",
|
|
||||||
"examples/coastal-rescue.arcadia": "7e183ef9fd8154d3074303f1956cd0d9871c19e3ffc630d333b0bffbd6e30e17",
|
|
||||||
"examples/coastal-rescue.json": "242f0b031229a87af5c4ebe5d651defe59c191a6b7a69dc0a77f7e203411f195",
|
|
||||||
"examples/legacy-v1-coastal-rescue.arcadia": "4dbbbdf8bc7e6cb8e0a81dd678069dae585a9e5187c59bc3665e1fdab3f1a86a",
|
|
||||||
"examples/legacy-v1-coastal-rescue.oa.json": "fd0e9dedfb7adb922dc0575cc2b820d40344d639f1d8052bd70363aa59de9c24",
|
|
||||||
"examples/routing-workshop.arcadia": "dc6b75da72884d399132ed9e300fa5a26b73d802bb526c9af986ae9eeb0a646a",
|
|
||||||
"examples/routing-workshop.json": "8592714f75b271133f21ce017d87896b6cf91ea0e4837f1c2ed453e21be26b14",
|
|
||||||
"licenses/llvm-mingw-LICENSE.TXT": "8d85c1057d742e597985c7d4e6320b015a9139385cff4cbae06ffc0ebe89afee",
|
|
||||||
"examples/release1/expected-diagnostics.json": "3700393d76b940cfc076bf52861bd7b1f43370f8eabce3594531bd0bf1fc851e",
|
|
||||||
"examples/release1/model.json": "ef0ef4006c3e09d5db6e1b621256b3f7d6642f3a7b09cc34607cfbcca830c727",
|
|
||||||
"examples/release1/model.rs": "15f30f6bde655808fe754665c26d560e36f2a9bad340f346b09137d0d05045f5",
|
|
||||||
"examples/release1/project.arcadia": "b2674e6bf77cfe0f6f0ba79c81d2e96d92f39c02ca2c6266d80e91723bfb9fda",
|
|
||||||
"examples/release1/README.md": "113cfb1cf38a98b51bff60442d86a35d636a3d80ef206bece7d53d0aae67f2d5",
|
|
||||||
"examples/release1/traceability.arcadia": "48a96f543456c9b5a5798fc795594e4119147fe45f11a6f109f141b7f514560f",
|
|
||||||
"examples/release1/transition-before.json": "2253e6434f741687e22327c37d520ed15c043bc36025498650bc2366bb6a874d",
|
|
||||||
"examples/release1/transition-request.json": "43b9a22e5f95ad3bc0ebd2478ead0e14406854abc989ae94ded9367b013d812a",
|
|
||||||
"examples/source-project/oa.arcadia": "5f60642f211b2d352a951092faeeb7503d4fb7f6f7fca99e810347231101d31c",
|
|
||||||
"examples/source-project/project.arcadia": "787f6b67b179ffd221f7e5faf1a4edd74cfd116aa1e3b5e9ed9f22fbff612d8d",
|
|
||||||
"examples/source-project/views.arcadia": "e29ad3f406a6a50d2f0ae2ca2a53ee3b0c18222cd4098704a46d4f48b64ea17f",
|
|
||||||
"examples/text-first/project.arcadia": "f441535c623e0cf20e1875eb2cd33b587ed00e078c37af39cb36d89bb5edc19a",
|
|
||||||
"examples/text-first/README.md": "4ec8250d5ed556f1d496e8c85137e973e802ecb11df1a36488411e8cdc5a9f9e",
|
|
||||||
"examples/release1/evidence/repair-check.md": "f4db17bdca4ecbb1bf0caef01b2da5f1f7f798ab3152b648ce6dd8696a6a68e5",
|
|
||||||
"examples/release1/oa/capabilities.arcadia": "fc8012e5554350b12e1cb80080f8feab80d933c9b33c0f2a7bb500cb7d609936",
|
|
||||||
"examples/release1/oa/model.arcadia": "f7cf914766ea73ec53b85e32d117ea9a9dba52d3e038246863541ae7069b1a15",
|
|
||||||
"examples/release1/oa/participants.arcadia": "951764c14179f27c10e315acf2ea37d1fff54c77b8441e23addd239e8c715ce3",
|
|
||||||
"examples/release1/oa/types.arcadia": "9d0396fb82dd5733edd8d1cf52f968ca84906927c704f9cf0944a7fae215cf49",
|
|
||||||
"examples/release1/sa/capabilities.arcadia": "b6912fb3ece439912345fa71724acd462e716a1e5a88203a1058a5c3b2c20a4f",
|
|
||||||
"examples/release1/sa/model.arcadia": "d431509251acb859fbb98733b6d18add952495e10a78703fbe8f31e40bc083c4",
|
|
||||||
"examples/release1/sa/participants.arcadia": "780d2eb08b217b67b55febb3d34846f727b8ee9018df6c5741748647e36b2ff8",
|
|
||||||
"examples/release1/sa/types.arcadia": "101fc0fbd99f1101514aa7b6da4f8e535aae0bb94c9e2b9e7e6c151135b28660",
|
|
||||||
"examples/release1/views/diagram_oa_allocation_view.arcadia": "dfc0eb61e0e2aa5bda45524571fbfa3494f44ce19696f3e15e07438074a07bc7",
|
|
||||||
"examples/release1/views/diagram_sa_allocation_view.arcadia": "b78b43a26a82efb8fbd5374b09c329fa341f57b29f635d397b9ef8aede71d389",
|
|
||||||
"examples/release1/views/diagram_sa_capability_view.arcadia": "75e8dc9fb30f25d6f8fd3c6b595593ab4f98958a25798f961e336e0fac557649",
|
|
||||||
"examples/release1/views/diagram_sa_service_view.arcadia": "b08c84f3ea633e7c78dfdad3272f75415f6256cf3614b6d99bfd4f0269076c9b",
|
|
||||||
"examples/release1/views/diagram_sa_state_view.arcadia": "5f42f4c605e57b817d8400ed21f2b14bfc4e1592aebe941ff113767504c2b869",
|
|
||||||
"examples/release1/oa/activities/activity_oa_restore_work.arcadia": "83e73d0a013d5c3e1a4af0d9139ab0cfa362d25a846671fc2dac59181061a9d4",
|
|
||||||
"examples/release1/oa/behavior/process_oa_assessment_procedure.arcadia": "172c32c044ef4b5bc58a1f4635cc81f48dabb4014479b47dce7b25fedf2dbd0d",
|
|
||||||
"examples/release1/oa/behavior/process_oa_field_procedure.arcadia": "d2552dc5383e2e91cb302a790364e197f663c2edc013a2ab1978789825c9c324",
|
|
||||||
"examples/release1/oa/behavior/process_oa_response.arcadia": "cf86f46fa5c5d70592ef43f1bc1cb4d968efd8add384ba88036bef6b88aa4abc",
|
|
||||||
"examples/release1/oa/behavior/scenario_oa_conversation.arcadia": "b25be524e98a35ebac5e4481b7609c027b32baf9605e8097f807560f94a77ca6",
|
|
||||||
"examples/release1/oa/behavior/scenario_oa_full_scenario.arcadia": "00a1edf2c9707a0eb62ac070c2d02467874f2c9c1f273cc6ddb53d6d65999a1c",
|
|
||||||
"examples/release1/oa/behavior/state_machine_oa_monitor.arcadia": "447c9ad1359f4a31ecf975ad07c0b08d8e7e03191fb0858e2fc56f377b223cd5",
|
|
||||||
"examples/release1/sa/behavior/process_sa_assessment_procedure.arcadia": "73928ced61c06cbc08728d7956676a50fd4c05aa5b7f1ff4f29ce27a0b0f2088",
|
|
||||||
"examples/release1/sa/behavior/process_sa_field_procedure.arcadia": "886d462af83110cbfa55dd232a667ea1446761234471357cbb878794e98e8768",
|
|
||||||
"examples/release1/sa/behavior/process_sa_response.arcadia": "041785fc22842423822431bd5e6e8d16094ebd0716965e7c765fb8c1d7549e8a",
|
|
||||||
"examples/release1/sa/behavior/scenario_sa_conversation.arcadia": "97276f5757ee9aa12a0dbd9d3ccd58174b3091162bb8bcce357cec20a45f5d85",
|
|
||||||
"examples/release1/sa/behavior/scenario_sa_full_scenario.arcadia": "e12fc406b99d60a2f7768aaa0b25ba560e8605f0b8e37f3a7cdd3b8443562b74",
|
|
||||||
"examples/release1/sa/behavior/state_machine_sa_monitor.arcadia": "05ce29af99424c491c47fe2450dc6f5f8ce995511c01ec7e17bb5855be3c9736",
|
|
||||||
"examples/release1/sa/functions/function_sa_audit_thresholds.arcadia": "e5a04325d52183956dca814dd90f4e56c96c6b7db0f4f202f203ecb49c3e0f4f",
|
|
||||||
"examples/release1/sa/functions/function_sa_restore_work.arcadia": "fddeb67308051325041fee641fe758ddf43345b7c47b66d433616ad07fdccdd6",
|
|
||||||
"examples/source-project/sa/assurance.arcadia": "ab76044836e4dcd42a82d316846ec87da2108939aa2037640c5bca1d2ecdee0f",
|
|
||||||
"examples/source-project/sa/participants.arcadia": "1abad579812e77877b45a3d8e3c3e9da734be2d04a0254cc730a5257ebd2dc88",
|
|
||||||
"examples/source-project/sa/reporting.arcadia": "f0b7443f728912ca163de39b6055876b533a77feaa3219b2d40a2dd65712e058",
|
|
||||||
"licenses/llvm-libunwind/llvm-ea7d852a70e8-libunwind-LICENSE.TXT": "b5efebcaca80879234098e52d1725e6d9eb8fb96a19fce625d39184b705f7b6d",
|
|
||||||
"licenses/rust/COPYING.RUNTIME": "28e85c5aa4af9b4f1dfe6b4817aa3eefb3eaaee7fd735045016f29ccf50276a1",
|
|
||||||
"licenses/rust/COPYING3": "8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903",
|
|
||||||
"licenses/rust/COPYRIGHT-library.html": "68129500b616d5838629e68f55ff3aed5e096dacf60ce9eb41bbe599a563afa6",
|
|
||||||
"licenses/rust/COPYRIGHT.html": "5b0c93fc4e6d4b072eaa521b1762d1e746f4c368f65e81a0e5308e2772dac85e",
|
|
||||||
"licenses/dependencies/arrayref-0.3.9/LICENSE": "1bc7e6f475b3ec99b7e2643411950ae2368c250dd4c5c325f80f9811362a94a1",
|
|
||||||
"licenses/dependencies/arrayvec-0.7.8/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/arrayvec-0.7.8/LICENSE-MIT": "4da95ec4ecb65b738d470b7d762894ad9c97da93e6cbfb18b570fc2c96f4b871",
|
|
||||||
"licenses/dependencies/ash-0.38.0+1.3.281/LICENSE-APACHE": "0e8a410375e1ee5c75c6198b08b534fec6e5edef766cf971bab4a404542636ab",
|
|
||||||
"licenses/dependencies/ash-0.38.0+1.3.281/LICENSE-MIT": "c733ccf8ab25df175a63d9d844677b98e3a5ab8f8de1c1616087e6868a7f948e",
|
|
||||||
"licenses/dependencies/atomic-waker-1.1.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/atomic-waker-1.1.2/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/atomic-waker-1.1.2/LICENSE-THIRD-PARTY": "6226d0632e2e1a80c23597e964da9812ae193c535fe058154afb034e94167aa5",
|
|
||||||
"licenses/dependencies/autocfg-1.5.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/autocfg-1.5.1/LICENSE-MIT": "27995d58ad5c1145c1a8cd86244ce844886958a35eb2b78c6b772748669999ac",
|
|
||||||
"licenses/dependencies/axum-0.8.9/LICENSE": "6a13bc24a100a6812f053879ec51b126b103af7cda6dbf48c4188722da44da9f",
|
|
||||||
"licenses/dependencies/axum-core-0.5.6/LICENSE": "008c87afcd2e626eaf564093250bed06dd7efb5732113264bba3dda8f1c556a1",
|
|
||||||
"licenses/dependencies/base64-0.22.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/base64-0.22.1/LICENSE-MIT": "0dd882e53de11566d50f8e8e2d5a651bcf3fabee4987d70f306233cf39094ba7",
|
|
||||||
"licenses/dependencies/bit-set-0.8.0/LICENSE-APACHE": "8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90",
|
|
||||||
"licenses/dependencies/bit-set-0.8.0/LICENSE-MIT": "f51ac2c59a222f7476ce507ca879960e2b64ea64bb2786eefdbeb7b0b538d1b7",
|
|
||||||
"licenses/dependencies/bit-vec-0.8.0/LICENSE-APACHE": "8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90",
|
|
||||||
"licenses/dependencies/bit-vec-0.8.0/LICENSE-MIT": "f51ac2c59a222f7476ce507ca879960e2b64ea64bb2786eefdbeb7b0b538d1b7",
|
|
||||||
"licenses/dependencies/bitflags-2.13.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/bitflags-2.13.1/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb",
|
|
||||||
"licenses/dependencies/bytemuck-1.25.2/LICENSE-APACHE": "e3ba223bb1423f0aad8c3dfce0fe3148db48926d41e6fbc3afbbf5ff9e1c89cb",
|
|
||||||
"licenses/dependencies/bytemuck-1.25.2/LICENSE-MIT": "9df9ba60a11af705f2e451b53762686e615d86f76b169cf075c3237730dbd7e2",
|
|
||||||
"licenses/dependencies/bytemuck-1.25.2/LICENSE-ZLIB": "84b34dd7608f7fb9b17bd588a6bf392bf7de504e2716f024a77d89f1b145a151",
|
|
||||||
"licenses/dependencies/bytemuck_derive-1.12.0/LICENSE-APACHE": "e3ba223bb1423f0aad8c3dfce0fe3148db48926d41e6fbc3afbbf5ff9e1c89cb",
|
|
||||||
"licenses/dependencies/bytemuck_derive-1.12.0/LICENSE-MIT": "9df9ba60a11af705f2e451b53762686e615d86f76b169cf075c3237730dbd7e2",
|
|
||||||
"licenses/dependencies/bytemuck_derive-1.12.0/LICENSE-ZLIB": "84b34dd7608f7fb9b17bd588a6bf392bf7de504e2716f024a77d89f1b145a151",
|
|
||||||
"licenses/dependencies/bytes-1.12.1/LICENSE": "45f522cacecb1023856e46df79ca625dfc550c94910078bd8aec6e02880b3d42",
|
|
||||||
"licenses/dependencies/cc-1.4.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/cc-1.4.5/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397",
|
|
||||||
"licenses/dependencies/cfg-if-1.0.4/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/cfg-if-1.0.4/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397",
|
|
||||||
"licenses/dependencies/cfg_aliases-0.2.2/LICENSE": "31b94860253d8ec7b4529f51901044d3b459d6292d996504a36b1bae3a36a812",
|
|
||||||
"licenses/dependencies/chacha20-0.10.2/LICENSE-APACHE": "a9040321c3712d8fd0b09cf52b17445de04a23a10165049ae187cd39e5c86be5",
|
|
||||||
"licenses/dependencies/chacha20-0.10.2/LICENSE-MIT": "b8c6939380a400f53e11923d50fcc4dd2fa1ba8339fd9d04cda38a0251b6c9b0",
|
|
||||||
"licenses/dependencies/codespan-reporting-0.12.0/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
|
|
||||||
"licenses/dependencies/core_maths-0.1.1/LICENSE": "9ebf8c4cc0b735ca13a766451f7b8097db3185975ceb2ba94b5abf439156a91f",
|
|
||||||
"licenses/dependencies/cosmic-text-0.15.0/LICENSE-APACHE": "000b4962e6b27176a0ff89cce4be555b16472cafb5671eb2804a8fdac6854793",
|
|
||||||
"licenses/dependencies/cosmic-text-0.15.0/LICENSE-MIT": "95557bafe728379e206f3b6d4aceeaa054d271c71d722411a6222e2dec01138c",
|
|
||||||
"licenses/dependencies/cpufeatures-0.3.1/LICENSE-APACHE": "a9040321c3712d8fd0b09cf52b17445de04a23a10165049ae187cd39e5c86be5",
|
|
||||||
"licenses/dependencies/cpufeatures-0.3.1/LICENSE-MIT": "73b9dc2e79c7308998dd30296e073aefaefb944a68fb89aa412c23c0edcabcaa",
|
|
||||||
"licenses/dependencies/cryoglyph-0.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/cryoglyph-0.1.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/cryoglyph-0.1.0/LICENSE-ZLIB": "b3ec01ad0869c5c50937bc68780cd0bb44e235ad858dfa54a7a381dced9b115a",
|
|
||||||
"licenses/dependencies/cursor-icon-1.2.0/LICENSE-APACHE": "b59affd015e517ed998dd735757f9a3693643cd389609947ed54074234a10784",
|
|
||||||
"licenses/dependencies/cursor-icon-1.2.0/LICENSE-MIT": "c138726a726ac37bae09d0f8a48e74e8e3aa8a8952fcd10fae0fb224cc1c05f1",
|
|
||||||
"licenses/dependencies/cursor-icon-1.2.0/LICENSE-ZLIB": "01e533bd94e8f1c32b2c2531e2c398de7d35d7804add3d574b4e1fe581d53537",
|
|
||||||
"licenses/dependencies/displaydoc-0.2.7/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/displaydoc-0.2.7/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/document-features-0.2.12/LICENSE-APACHE": "074e6e32c86a4c0ef8b3ed25b721ca23aca83df277cd88106ef7177c354615ff",
|
|
||||||
"licenses/dependencies/document-features-0.2.12/LICENSE-MIT": "aa893340d14b9844625be6a50ac644169a01b52f0211cbf81b09e1874c8cd81d",
|
|
||||||
"licenses/dependencies/dpi-0.1.2/LICENSE": "6dc0e068dcf3a5bc8e054205b85b7720e1d49265bbc64bf515d2cf79197df69a",
|
|
||||||
"licenses/dependencies/dpi-0.1.2/LICENSE-LIBM-MIT": "9eff396a99bafd208e7126602420d6864f6066c08b84485a5b032320a9c01997",
|
|
||||||
"licenses/dependencies/equivalent-1.0.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/equivalent-1.0.2/LICENSE-MIT": "7365cc8878a1d7ce155a58c4ca09c3d7a6be413efa5334a80ea842912b669349",
|
|
||||||
"licenses/dependencies/error-code-3.4.0/LICENSE": "c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566",
|
|
||||||
"licenses/dependencies/etagere-0.2.15/LICENSE-APACHE": "2d56a37f3d1e461f6b1539ab94e0e6bcc55443e376098aee85ac3b2890860290",
|
|
||||||
"licenses/dependencies/etagere-0.2.15/LICENSE-MIT": "9cfc9c9a4608501b5da3746948d2be2dd709ad51f6bcb0c1c685760ee3dde31f",
|
|
||||||
"licenses/dependencies/euclid-0.22.14/COPYRIGHT": "ec82b96487e9e778ee610c7ab245162464782cfa1f555c2299333f8dbe5c036a",
|
|
||||||
"licenses/dependencies/euclid-0.22.14/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/euclid-0.22.14/LICENSE-MIT": "62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3",
|
|
||||||
"licenses/dependencies/fastrand-2.5.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/fastrand-2.5.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/find-msvc-tools-0.1.12/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/find-msvc-tools-0.1.12/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397",
|
|
||||||
"licenses/dependencies/float_next_after-1.0.0/LICENSE": "0604d5817110dacc5c7d9b7de6b58b962794603d4823c357157bd5dec4198bc5",
|
|
||||||
"licenses/dependencies/foldhash-0.1.5/LICENSE": "b1181a40b2a7b25cf66fd01481713bc1005df082c53ef73e851e55071b102744",
|
|
||||||
"licenses/dependencies/foldhash-0.2.0/LICENSE": "b1181a40b2a7b25cf66fd01481713bc1005df082c53ef73e851e55071b102744",
|
|
||||||
"licenses/dependencies/font-types-0.10.1/LICENSE-APACHE": "a14f7d685a79c0f4fb64aee305527a6d5fa55f2401f4e6d688d7b1301868e6c0",
|
|
||||||
"licenses/dependencies/font-types-0.10.1/LICENSE-MIT": "8a62fa27ffdccc3df19dce90f8bb3d572e27aecffc1a383d0c2601834dcec434",
|
|
||||||
"licenses/dependencies/font-types-0.12.4/LICENSE-APACHE": "eba684204073ed715c4abb48129acdfd2bff8ae48339e6a7da3b341d3027b7f0",
|
|
||||||
"licenses/dependencies/font-types-0.12.4/LICENSE-MIT": "7b4c9a3946dfcea7967582760e963e27799e225dcf20565c8ef55324bb017427",
|
|
||||||
"licenses/dependencies/fontdb-0.23.0/LICENSE": "59a1fdac3bd550043599bd159fd70f09a1108c2b09e3751d39b11e1ff8e51f00",
|
|
||||||
"licenses/dependencies/form_urlencoded-1.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/form_urlencoded-1.2.2/LICENSE-MIT": "20c7855c364d57ea4c97889a5e8d98470a9952dade37bd9248b9a54431670e5e",
|
|
||||||
"licenses/dependencies/futures-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/futures-channel-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-channel-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/futures-core-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-core-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/futures-executor-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-executor-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/futures-io-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-io-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/futures-macro-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-macro-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/futures-sink-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-sink-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/futures-task-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-task-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/futures-util-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-util-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/getrandom-0.2.17/LICENSE-APACHE": "aaff376532ea30a0cd5330b9502ad4a4c8bf769c539c87ffe78819d188a18ebf",
|
|
||||||
"licenses/dependencies/getrandom-0.2.17/LICENSE-MIT": "42fa16951ce7f24b5a467a40e5b449a1d41e662f97ca779864f053f39e097737",
|
|
||||||
"licenses/dependencies/getrandom-0.4.3/LICENSE-APACHE": "aaff376532ea30a0cd5330b9502ad4a4c8bf769c539c87ffe78819d188a18ebf",
|
|
||||||
"licenses/dependencies/getrandom-0.4.3/LICENSE-MIT": "523a42c25d245dde9c015f882cec7f4555aad883382a6cf19b4b7d9b2cd5419b",
|
|
||||||
"licenses/dependencies/glam-0.25.0/LICENSE-APACHE": "be33ddb87a30fd321ab100e2d922cba512e50ec7a63d8e62e5bfc0798dd4b585",
|
|
||||||
"licenses/dependencies/glam-0.25.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/glow-0.16.0/LICENSE-APACHE": "b8601fc79bdf8d8088f0938bea861ffc63ed0eebbedf25f44ab2cf2e85bd7edc",
|
|
||||||
"licenses/dependencies/glow-0.16.0/LICENSE-MIT": "cdbd06e25b8c9c5d6019949d2de8123f56d29cee4166396423d2ba8c81700845",
|
|
||||||
"licenses/dependencies/glow-0.16.0/LICENSE-ZLIB": "636f644f1e149eb62961657c0e34953681eff64435653912e7bd19992666faa5",
|
|
||||||
"licenses/dependencies/glutin_wgl_sys-0.6.1/LICENSE": "a4445427440043e8ce6fadf7a43fb906cb0d7f6c573a560a9f142cf9f9bf8ff4",
|
|
||||||
"licenses/dependencies/gpu-allocator-0.27.0/LICENSE-APACHE": "0178e21322b0e88aa3aeb3146f6a9611bc1f8df6d98bdfb34be28b9dd56a8107",
|
|
||||||
"licenses/dependencies/gpu-allocator-0.27.0/LICENSE-MIT": "ad41be6cc6538b29b9346648f41432b5e460bad6be073b5eeaa41320ea2921dc",
|
|
||||||
"licenses/dependencies/guillotiere-0.6.2/LICENSE": "7e98bed7f100747aaae7d82ab94fbe6b76fd6b84b09a3aaa413bff8196d0fbb1",
|
|
||||||
"licenses/dependencies/half-2.7.1/LICENSE-APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/half-2.7.1/LICENSE-MIT": "508a77d2e7b51d98adeed32648ad124b7b30241a8e70b2e72c99f92d8e5874d1",
|
|
||||||
"licenses/dependencies/harfrust-0.3.2/LICENSE": "7d43d2ef1ce976c7bfb423c696ad9938ccfc31e9ec5be752265e43fe9d29f697",
|
|
||||||
"licenses/dependencies/hashbrown-0.15.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/hashbrown-0.15.5/LICENSE-MIT": "ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2",
|
|
||||||
"licenses/dependencies/hashbrown-0.16.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/hashbrown-0.16.1/LICENSE-MIT": "ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2",
|
|
||||||
"licenses/dependencies/hashbrown-0.17.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/hashbrown-0.17.1/LICENSE-MIT": "ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2",
|
|
||||||
"licenses/dependencies/http-1.5.0/LICENSE-APACHE": "8bb1b50b0e5c9399ae33bd35fab2769010fa6c14e8860c729a52295d84896b7a",
|
|
||||||
"licenses/dependencies/http-1.5.0/LICENSE-MIT": "dc91f8200e4b2a1f9261035d4c18c33c246911a6c0f7b543d75347e61b249cff",
|
|
||||||
"licenses/dependencies/http-body-1.1.0/LICENSE": "248378d0a3383c173fb925f17141b88e71580b3ba17ddc6ac3d2a344683232ab",
|
|
||||||
"licenses/dependencies/http-body-util-0.1.5/LICENSE": "248378d0a3383c173fb925f17141b88e71580b3ba17ddc6ac3d2a344683232ab",
|
|
||||||
"licenses/dependencies/httparse-1.10.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/httparse-1.10.1/LICENSE-MIT": "391a5396cec6230bfabd4ef4eb2350eb895bc5efce377a2218f5702ed020d3e3",
|
|
||||||
"licenses/dependencies/httpdate-1.0.3/LICENSE-APACHE": "4d10fe5f3aa176b05b229a248866bad70b834c173f1252a814ff4748d8a13837",
|
|
||||||
"licenses/dependencies/httpdate-1.0.3/LICENSE-MIT": "934887691e05d69d7c86ad3f2c360980fa30c15b035e351f3c9865e99da4debc",
|
|
||||||
"licenses/dependencies/hyper-1.11.1/LICENSE": "2d01890414494742ba4a509fcec8efa40f6d8be22cbd72be7cff08d6fda4ec89",
|
|
||||||
"licenses/dependencies/hyper-rustls-0.27.9/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/hyper-rustls-0.27.9/LICENSE-ISC": "7cfafc877eccc46c0e346ccbaa5c51bb6b894d2b818e617d970211e232785ad4",
|
|
||||||
"licenses/dependencies/hyper-rustls-0.27.9/LICENSE-MIT": "709e3175b4212f7b13aa93971c9f62ff8c69ec45ad8c6532a7e0c41d7a7d6f8c",
|
|
||||||
"licenses/dependencies/hyper-util-0.1.20/LICENSE": "9e0a97848ea543aef745c98e84fde696a9a3e0735538f6daefdd3cb1942effc1",
|
|
||||||
"licenses/dependencies/iced-0.14.0/LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/icu_collections-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/icu_locale_core-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/icu_normalizer-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/icu_normalizer_data-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/icu_properties-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/icu_properties_data-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/icu_provider-2.3.1/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/idna-1.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/idna-1.1.0/LICENSE-MIT": "b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5",
|
|
||||||
"licenses/dependencies/idna_adapter-1.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/idna_adapter-1.2.2/LICENSE-MIT": "8b43ce8accd61e9d370b5ca9e9c4f953279b5c239926c62315b40e24df51b726",
|
|
||||||
"licenses/dependencies/indexmap-2.14.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/indexmap-2.14.1/LICENSE-MIT": "ecc269ef87fd38a1d98e30bfac9ba964a9dbd9315c3770fed98d4d7cb5882055",
|
|
||||||
"licenses/dependencies/ipnet-2.12.1/LICENSE-APACHE": "87d9feb9238c6bd8e0024fc4733b06cff036f89f36d93b7df1c8a0549bbb7a5b",
|
|
||||||
"licenses/dependencies/ipnet-2.12.1/LICENSE-MIT": "47dc9ff29128ddfb4d6a0435383c9f89120bc374dbcc1dd00b933a0b28aa7865",
|
|
||||||
"licenses/dependencies/itoa-1.0.18/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/itoa-1.0.18/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/jobserver-0.1.35/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/jobserver-0.1.35/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397",
|
|
||||||
"licenses/dependencies/khronos-egl-6.0.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/khronos-egl-6.0.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/kurbo-0.10.4/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/kurbo-0.10.4/LICENSE-MIT": "23c23145f6eac25c28cdcc03d38506a5712a9a8cffb5bd5301457f6173ea696e",
|
|
||||||
"licenses/dependencies/libc-0.2.189/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/libc-0.2.189/LICENSE-MIT": "123a331b5dbf04c30097fa43b8f858bc85df671fe776de498d01f3d6b7c1f69e",
|
|
||||||
"licenses/dependencies/libloading-0.8.9/LICENSE": "b29f8b01452350c20dd1af16ef83b598fea3053578ccc1c7a0ef40e57be2620f",
|
|
||||||
"licenses/dependencies/libm-0.2.16/LICENSE.txt": "3823dda7cf046602f4b4e77ec8e227863dc4736037cc85bb33d9f19febe16bb7",
|
|
||||||
"licenses/dependencies/lilt-0.8.2/LICENSE": "120b2f21f9b9f98ef4159de09f9a55a3afb6733dd1c0b1d9eeec7f136465b2cd",
|
|
||||||
"licenses/dependencies/linebender_resource_handle-0.1.1/LICENSE-APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/linebender_resource_handle-0.1.1/LICENSE-MIT": "508a77d2e7b51d98adeed32648ad124b7b30241a8e70b2e72c99f92d8e5874d1",
|
|
||||||
"licenses/dependencies/litemap-0.8.3/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/litrs-1.0.0/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/litrs-1.0.0/LICENSE-MIT": "7dc1552e88f49132cb358b1b962fc5e79fa42d70bcbb88c526d33e45b8e98036",
|
|
||||||
"licenses/dependencies/lock_api-0.4.14/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/lock_api-0.4.14/LICENSE-MIT": "c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5",
|
|
||||||
"licenses/dependencies/log-0.4.34/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/log-0.4.34/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb",
|
|
||||||
"licenses/dependencies/lru-0.16.4/LICENSE": "061dc50af2cd9340703daf61978af3200cf681b12ea67a323c33ba109a23a45e",
|
|
||||||
"licenses/dependencies/lru-slab-0.1.2/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/lru-slab-0.1.2/LICENSE-MIT": "1466d9b4f3a59bb8997fc8d5fa977ce3f6a24bb2358793c09bfdf007039f6486",
|
|
||||||
"licenses/dependencies/lru-slab-0.1.2/LICENSE-ZLIB": "09785877275ffada6c371b652a30e95c26b435126fc0fc62f1bc2d72171f80a4",
|
|
||||||
"licenses/dependencies/matchit-0.8.4/LICENSE": "de701d0618d694feb1af90f02181a1763d9b0bdeb70a3a592781e529077dba65",
|
|
||||||
"licenses/dependencies/matchit-0.8.4/LICENSE.httprouter": "162ce11ad71338d0a0c6ebaf5c48af72c6ae237b468859d3656fe2d9ed3f3a85",
|
|
||||||
"licenses/dependencies/memchr-2.8.3/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f",
|
|
||||||
"licenses/dependencies/memchr-2.8.3/LICENSE-MIT": "0f96a83840e146e43c0ec96a22ec1f392e0680e6c1226e6f3ba87e0740af850f",
|
|
||||||
"licenses/dependencies/memchr-2.8.3/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c",
|
|
||||||
"licenses/dependencies/memmap2-0.9.11/LICENSE-APACHE": "04ea4849dba9dcae07113850c6f1b1a69052c625210639914eee352023f750ad",
|
|
||||||
"licenses/dependencies/memmap2-0.9.11/LICENSE-MIT": "0d25d03b5ab49576178ad0cae7a2648d12c17ad0452fe49c07e55e4b59aa5257",
|
|
||||||
"licenses/dependencies/mime-0.3.17/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/mime-0.3.17/LICENSE-MIT": "df9cfd06d8a44d9a671eadd39ffd97f166481da015a30f45dfd27886209c5922",
|
|
||||||
"licenses/dependencies/mio-1.2.3/LICENSE": "07919255c7e04793d8ea760d6c2ce32d19f9ff02bdbdde3ce90b1e1880929a9b",
|
|
||||||
"licenses/dependencies/naga-27.0.3/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/naga-27.0.3/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21",
|
|
||||||
"licenses/dependencies/num-traits-0.2.19/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/num-traits-0.2.19/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb",
|
|
||||||
"licenses/dependencies/oa-core-0.2.0/workspace-LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365",
|
|
||||||
"licenses/dependencies/oa-desktop-0.2.0/workspace-LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365",
|
|
||||||
"licenses/dependencies/oa-server-0.2.0/workspace-LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365",
|
|
||||||
"licenses/dependencies/once_cell-1.21.4/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/once_cell-1.21.4/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/ordered-float-5.5.0/LICENSE-MIT": "f7715d38a3fa1b4ac97c5729740752505a39cb92ee83ab5b102aeb5eaa7cdea4",
|
|
||||||
"licenses/dependencies/parking_lot-0.12.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/parking_lot-0.12.5/LICENSE-MIT": "c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5",
|
|
||||||
"licenses/dependencies/parking_lot_core-0.9.12/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/parking_lot_core-0.9.12/LICENSE-MIT": "c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5",
|
|
||||||
"licenses/dependencies/percent-encoding-2.3.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/percent-encoding-2.3.2/LICENSE-MIT": "b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5",
|
|
||||||
"licenses/dependencies/pin-project-lite-0.2.17/LICENSE-APACHE": "0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594",
|
|
||||||
"licenses/dependencies/pin-project-lite-0.2.17/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/pkg-config-0.3.34/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/pkg-config-0.3.34/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397",
|
|
||||||
"licenses/dependencies/potential_utf-0.1.6/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/presser-0.3.1/LICENSE-APACHE": "8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90",
|
|
||||||
"licenses/dependencies/presser-0.3.1/LICENSE-MIT": "090a294a492ab2f41388252312a65cf2f0e423330b721a68c6665ac64766753b",
|
|
||||||
"licenses/dependencies/proc-macro2-1.0.107/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/proc-macro2-1.0.107/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/quinn-0.11.11/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
|
|
||||||
"licenses/dependencies/quinn-0.11.11/LICENSE-MIT": "4b2d0aca6789fa39e03d6738e869ea0988cceba210ca34ebb59c15c463e93a04",
|
|
||||||
"licenses/dependencies/quinn-proto-0.11.17/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
|
|
||||||
"licenses/dependencies/quinn-proto-0.11.17/LICENSE-MIT": "4b2d0aca6789fa39e03d6738e869ea0988cceba210ca34ebb59c15c463e93a04",
|
|
||||||
"licenses/dependencies/quinn-udp-0.5.15/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
|
|
||||||
"licenses/dependencies/quinn-udp-0.5.15/LICENSE-MIT": "4b2d0aca6789fa39e03d6738e869ea0988cceba210ca34ebb59c15c463e93a04",
|
|
||||||
"licenses/dependencies/quote-1.0.47/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/quote-1.0.47/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/rand-0.10.2/COPYRIGHT": "90eb64f0279b0d9432accfa6023ff803bc4965212383697eee27a0f426d5f8d5",
|
|
||||||
"licenses/dependencies/rand-0.10.2/LICENSE-APACHE": "35242e7a83f69875e6edeff02291e688c97caafe2f8902e4e19b49d3e78b4cab",
|
|
||||||
"licenses/dependencies/rand-0.10.2/LICENSE-MIT": "209fbbe0ad52d9235e37badf9cadfe4dbdc87203179c0899e738b39ade42177b",
|
|
||||||
"licenses/dependencies/rand_core-0.10.1/COPYRIGHT": "92b81db30f7ab6d693e0af5661a40d273ca1947e891123ed823924192c10cbc7",
|
|
||||||
"licenses/dependencies/rand_core-0.10.1/LICENSE-APACHE": "6df43f6f4b5d4587f3d8d71e45532c688fd168afa5fe89d571cb32fa09c4ef51",
|
|
||||||
"licenses/dependencies/rand_core-0.10.1/LICENSE-MIT": "8b6e9feec03e7c9a5facb26855cecd31662bf989b636bcfe79521bdf8ac863f0",
|
|
||||||
"licenses/dependencies/rand_pcg-0.10.2/COPYRIGHT": "90eb64f0279b0d9432accfa6023ff803bc4965212383697eee27a0f426d5f8d5",
|
|
||||||
"licenses/dependencies/rand_pcg-0.10.2/LICENSE-APACHE": "6df43f6f4b5d4587f3d8d71e45532c688fd168afa5fe89d571cb32fa09c4ef51",
|
|
||||||
"licenses/dependencies/rand_pcg-0.10.2/LICENSE-MIT": "2234e3cefee876aeb686ad89e978bdb07bf118a1186ab1cf161bcdf69d4b4f57",
|
|
||||||
"licenses/dependencies/range-alloc-0.1.5/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/range-alloc-0.1.5/LICENSE.MIT": "ba00052102ed87948bb8822d6e1c496260c83042887b22bb5caad922ec025a60",
|
|
||||||
"licenses/dependencies/rangemap-1.8.0/LICENSE-APACHE": "1c7745cc26c7294bc9dbc883bcd50700b99a8c0f4859bfce84ec555098ce1ab5",
|
|
||||||
"licenses/dependencies/rangemap-1.8.0/LICENSE-MIT": "29a4c3823ee29ee5a97c145574a1bac20629fd5e6708be1df0d25bab563e093c",
|
|
||||||
"licenses/dependencies/raw-window-handle-0.6.2/LICENSE-APACHE.md": "0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594",
|
|
||||||
"licenses/dependencies/raw-window-handle-0.6.2/LICENSE-MIT.md": "9c5a80639a57c1c945570e7ebbca0706305849ce3c098021325cca9db2f7acc4",
|
|
||||||
"licenses/dependencies/raw-window-handle-0.6.2/LICENSE-ZLIB.md": "ae895c8576e682f310fb70d93d9f99b1dd82872094c54a8f6cdfe2ca5c2d6ecb",
|
|
||||||
"licenses/dependencies/read-fonts-0.35.0/LICENSE-APACHE": "a14f7d685a79c0f4fb64aee305527a6d5fa55f2401f4e6d688d7b1301868e6c0",
|
|
||||||
"licenses/dependencies/read-fonts-0.35.0/LICENSE-MIT": "8a62fa27ffdccc3df19dce90f8bb3d572e27aecffc1a383d0c2601834dcec434",
|
|
||||||
"licenses/dependencies/read-fonts-0.41.0/LICENSE-APACHE": "eba684204073ed715c4abb48129acdfd2bff8ae48339e6a7da3b341d3027b7f0",
|
|
||||||
"licenses/dependencies/read-fonts-0.41.0/LICENSE-MIT": "7b4c9a3946dfcea7967582760e963e27799e225dcf20565c8ef55324bb017427",
|
|
||||||
"licenses/dependencies/renderdoc-sys-1.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/renderdoc-sys-1.1.0/LICENSE-MIT": "24b2f2eff5a7622e87162823e260f00c6dfbce0e26d585d3d28c785f1edc80ed",
|
|
||||||
"licenses/dependencies/reqwest-0.12.28/LICENSE-APACHE": "751963a8b88c0e3a9f27e98933079fbcf09b9998b2c13ac49c2e4d58444520d6",
|
|
||||||
"licenses/dependencies/reqwest-0.12.28/LICENSE-MIT": "47d4e1803702728e03d30f8a848ae2249ba274bbd9f8443e803f7924d83cd371",
|
|
||||||
"licenses/dependencies/rfd-0.15.4/LICENSE": "65fc947f4bac882a2cd104ef73c246b1b037059df9f2b3a58b7f77f0b9e56071",
|
|
||||||
"licenses/dependencies/ring-0.17.14/LICENSE": "b3d734001a94efff3579978d953391aa7115f877657d25eb54037a43875d078a",
|
|
||||||
"licenses/dependencies/ring-0.17.14/LICENSE-BoringSSL": "005fc765ddc5115da796cca915baa9557abae13ff35e0a47c47affc56f6c414d",
|
|
||||||
"licenses/dependencies/ring-0.17.14/LICENSE-other-bits": "f025ccfb7dfb6bdfedc75ca0f67acc69e6fb4998143d834f7c2f38a29989680f",
|
|
||||||
"licenses/dependencies/rustc-hash-1.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/rustc-hash-1.1.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/rustc-hash-2.1.3/LICENSE-APACHE": "95bd3988beee069fa2848f648dab43cc6e0b2add2ad6bcb17360caf749802bcc",
|
|
||||||
"licenses/dependencies/rustc-hash-2.1.3/LICENSE-MIT": "30fefc3a7d6a0041541858293bcbea2dde4caa4c0a5802f996a7f7e8c0085652",
|
|
||||||
"licenses/dependencies/rustls-0.23.43/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/rustls-0.23.43/LICENSE-ISC": "7cfafc877eccc46c0e346ccbaa5c51bb6b894d2b818e617d970211e232785ad4",
|
|
||||||
"licenses/dependencies/rustls-0.23.43/LICENSE-MIT": "709e3175b4212f7b13aa93971c9f62ff8c69ec45ad8c6532a7e0c41d7a7d6f8c",
|
|
||||||
"licenses/dependencies/rustls-pki-types-1.15.1/LICENSE-APACHE": "45fd05c4865e7c350b98ad7ac50e1b15462d49af4a91e9b0c9dd933dc9a69742",
|
|
||||||
"licenses/dependencies/rustls-pki-types-1.15.1/LICENSE-MIT": "9117d922e667125508dde62b02c1f57ed22f5ad21eb536aa2e2d99e1c796e639",
|
|
||||||
"licenses/dependencies/rustls-webpki-0.103.15/LICENSE": "5b698ca13897be3afdb7174256fa1574f8c6892b8bea1a66dd6469d3fe27885a",
|
|
||||||
"licenses/dependencies/ryu-1.0.23/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/ryu-1.0.23/LICENSE-BOOST": "c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566",
|
|
||||||
"licenses/dependencies/same-file-1.0.6/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f",
|
|
||||||
"licenses/dependencies/same-file-1.0.6/LICENSE-MIT": "cb3c929a05e6cbc9de9ab06a4c57eeb60ca8c724bef6c138c87d3a577e27aa14",
|
|
||||||
"licenses/dependencies/same-file-1.0.6/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c",
|
|
||||||
"licenses/dependencies/scopeguard-1.2.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/scopeguard-1.2.0/LICENSE-MIT": "fb77f0a9c53e473abe5103c8632ef9f0f2874d4fb3f17cb2d8c661aab9cee9d7",
|
|
||||||
"licenses/dependencies/self_cell-1.3.0/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
|
|
||||||
"licenses/dependencies/self_cell-1.3.0/LICENSE-GPLv2": "f9c375a1be4a41f7b70301dd83c91cb89e41567478859b77eef375a52d782505",
|
|
||||||
"licenses/dependencies/serde-1.0.229/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/serde-1.0.229/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/serde_core-1.0.229/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/serde_core-1.0.229/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/serde_derive-1.0.229/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/serde_derive-1.0.229/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/serde_json-1.0.151/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/serde_json-1.0.151/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/serde_path_to_error-0.1.20/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/serde_path_to_error-0.1.20/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/serde_urlencoded-0.7.1/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/serde_urlencoded-0.7.1/LICENSE-MIT": "b9eb266294324f672cbe945fe8f2e32f85024f0d61a1a7d14382cdde0ac44769",
|
|
||||||
"licenses/dependencies/sha1_smol-1.0.1/LICENSE": "282a21b0710441c364025461a447362daf18f5798a7b72ae2f801a2aa536da51",
|
|
||||||
"licenses/dependencies/shlex-2.0.1/LICENSE-APACHE": "553fffcd9b1cb158bc3e9edc35da85ca5c3b3d7d2e61c883ebcfa8a65814b583",
|
|
||||||
"licenses/dependencies/shlex-2.0.1/LICENSE-MIT": "4455bf75a91154108304cb283e0fea9948c14f13e20d60887cf2552449dea3b1",
|
|
||||||
"licenses/dependencies/skrifa-0.37.0/LICENSE-APACHE": "a14f7d685a79c0f4fb64aee305527a6d5fa55f2401f4e6d688d7b1301868e6c0",
|
|
||||||
"licenses/dependencies/skrifa-0.37.0/LICENSE-MIT": "8a62fa27ffdccc3df19dce90f8bb3d572e27aecffc1a383d0c2601834dcec434",
|
|
||||||
"licenses/dependencies/skrifa-0.44.0/LICENSE-APACHE": "eba684204073ed715c4abb48129acdfd2bff8ae48339e6a7da3b341d3027b7f0",
|
|
||||||
"licenses/dependencies/skrifa-0.44.0/LICENSE-MIT": "7b4c9a3946dfcea7967582760e963e27799e225dcf20565c8ef55324bb017427",
|
|
||||||
"licenses/dependencies/slab-0.4.12/LICENSE": "8ce0830173fdac609dfb4ea603fdc002c2f4af0dc9b1a005653f5da9cf534b18",
|
|
||||||
"licenses/dependencies/slotmap-1.1.1/LICENSE": "6cec81441b2ab2b5090954c1fb5d0bcca81b86487b5849061fa8952d20ef67d4",
|
|
||||||
"licenses/dependencies/smallvec-1.16.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/smallvec-1.16.0/LICENSE-MIT": "0b28172679e0009b655da42797c03fd163a3379d5cfa67ba1f1655e974a2a1a9",
|
|
||||||
"licenses/dependencies/smol_str-0.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/smol_str-0.2.2/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/socket2-0.6.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/socket2-0.6.5/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397",
|
|
||||||
"licenses/dependencies/softbuffer-0.4.8/LICENSE-APACHE": "a4445427440043e8ce6fadf7a43fb906cb0d7f6c573a560a9f142cf9f9bf8ff4",
|
|
||||||
"licenses/dependencies/softbuffer-0.4.8/LICENSE-MIT": "0463bfa47d6d763d8c824333efb0e6d6df3946c13c3b077c78ed9f23ca50d0f2",
|
|
||||||
"licenses/dependencies/stable_deref_trait-1.2.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/stable_deref_trait-1.2.1/LICENSE-MIT": "5e05b024f653a5ce199e77cbbbd42fb5553562ec714b819421ed0c3e552a75d7",
|
|
||||||
"licenses/dependencies/static_assertions-1.1.0/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/static_assertions-1.1.0/LICENSE-MIT": "ea084a2373ebc1f0902c09266e7bf25a05ab3814c1805bb017ffa7308f90c061",
|
|
||||||
"licenses/dependencies/strict-num-0.1.1/LICENSE": "3085885678bb161f6c472bbd331f66a2550b555eb76128f7f8247779128199c0",
|
|
||||||
"licenses/dependencies/subtle-2.6.1/LICENSE": "d1fc1bc0d155df60b2e7705b6b2ae02a05c96f948e1cec6e2fb86360b09f346b",
|
|
||||||
"licenses/dependencies/swash-0.2.10/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/swash-0.2.10/LICENSE-MIT": "122dadfc2eb4de0f4bafcd9eb4e7502cfe338a7965ebd1d18708cc5050f43f76",
|
|
||||||
"licenses/dependencies/syn-2.0.119/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/syn-2.0.119/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/syn-3.0.5/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/syn-3.0.5/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/sync_wrapper-1.0.2/LICENSE": "0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594",
|
|
||||||
"licenses/dependencies/synstructure-0.13.2/LICENSE": "219920e865eee70b7dcfc948a86b099e7f4fe2de01bcca2ca9a20c0a033f2b59",
|
|
||||||
"licenses/dependencies/sys-locale-0.3.2/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
|
|
||||||
"licenses/dependencies/sys-locale-0.3.2/LICENSE-MIT": "5cc390ab5e5e6507f467368cbab1297552d64bfd863f4b496c7928508bcfefd8",
|
|
||||||
"licenses/dependencies/tempfile-3.27.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/tempfile-3.27.0/LICENSE-MIT": "8b427f5bc501764575e52ba4f9d95673cf8f6d80a86d0d06599852e1a9a20a36",
|
|
||||||
"licenses/dependencies/termcolor-1.4.1/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f",
|
|
||||||
"licenses/dependencies/termcolor-1.4.1/LICENSE-MIT": "0f96a83840e146e43c0ec96a22ec1f392e0680e6c1226e6f3ba87e0740af850f",
|
|
||||||
"licenses/dependencies/termcolor-1.4.1/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c",
|
|
||||||
"licenses/dependencies/thiserror-1.0.69/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/thiserror-1.0.69/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/thiserror-2.0.20/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/thiserror-2.0.20/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/thiserror-impl-1.0.69/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/thiserror-impl-1.0.69/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/thiserror-impl-2.0.20/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/thiserror-impl-2.0.20/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/tiny-skia-0.11.4/LICENSE": "6d41e05f1d54fe726997cb0334ec539f1dff50600b1d5d90462ec2b392770ced",
|
|
||||||
"licenses/dependencies/tiny-skia-path-0.11.4/LICENSE": "6d41e05f1d54fe726997cb0334ec539f1dff50600b1d5d90462ec2b392770ced",
|
|
||||||
"licenses/dependencies/tinystr-0.8.4/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/tinyvec-1.13.2/LICENSE-APACHE.md": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/tinyvec-1.13.2/LICENSE-MIT.md": "fd80a26fbb3f644af1fa994134446702932968519797227e07a1368dea80f0bc",
|
|
||||||
"licenses/dependencies/tinyvec-1.13.2/LICENSE-ZLIB.md": "84b34dd7608f7fb9b17bd588a6bf392bf7de504e2716f024a77d89f1b145a151",
|
|
||||||
"licenses/dependencies/tinyvec_macros-0.1.1/LICENSE-APACHE.md": "4f44572785f35152c1fd2eadf565b7e079c0f300b4324f0af653419f9d76b735",
|
|
||||||
"licenses/dependencies/tinyvec_macros-0.1.1/LICENSE-MIT.md": "1dd8eca0f83669e75fa119e34fb9e1be9d16e3e9b6368962b8019db6e8ae5f7b",
|
|
||||||
"licenses/dependencies/tinyvec_macros-0.1.1/LICENSE-ZLIB.md": "41ace205715d9f19a3214218cc1c01d57c533e02cd0fef7c8e51a49a7fce5ac5",
|
|
||||||
"licenses/dependencies/tokio-1.53.1/LICENSE": "253cd04c6714889df2d32f3f64d669179a1c95c76ac43c40882c52eb06bc3552",
|
|
||||||
"licenses/dependencies/tokio-macros-2.7.2/LICENSE": "0b83dc40cba89b9922bb84b0a9c7d2768ce37c1d7e138b7424fd4549915778c9",
|
|
||||||
"licenses/dependencies/tokio-rustls-0.26.5/LICENSE-APACHE": "cc117d90b498b32b11a886f279b359da16a73c3b01efbb2f5cc004b20262334e",
|
|
||||||
"licenses/dependencies/tokio-rustls-0.26.5/LICENSE-MIT": "e20fa2b8e0a2565f24a792b94b4bf4b6c2b9d36f781d8a9516e218a036e6677a",
|
|
||||||
"licenses/dependencies/tower-0.5.3/LICENSE": "4249c8e6c5ebb85f97c77e6457c6fafc1066406eb8f1ef61e796fbdc5ff18482",
|
|
||||||
"licenses/dependencies/tower-http-0.6.11/LICENSE": "5049cf464977eff4b4fcfa7988d84e74116956a3eb9d5f1d451b3f828f945233",
|
|
||||||
"licenses/dependencies/tower-layer-0.3.3/LICENSE": "4249c8e6c5ebb85f97c77e6457c6fafc1066406eb8f1ef61e796fbdc5ff18482",
|
|
||||||
"licenses/dependencies/tower-service-0.3.3/LICENSE": "4249c8e6c5ebb85f97c77e6457c6fafc1066406eb8f1ef61e796fbdc5ff18482",
|
|
||||||
"licenses/dependencies/tracing-0.1.44/LICENSE": "898b1ae9821e98daf8964c8d6c7f61641f5f5aa78ad500020771c0939ee0dea1",
|
|
||||||
"licenses/dependencies/tracing-attributes-0.1.31/LICENSE": "898b1ae9821e98daf8964c8d6c7f61641f5f5aa78ad500020771c0939ee0dea1",
|
|
||||||
"licenses/dependencies/tracing-core-0.1.36/LICENSE": "898b1ae9821e98daf8964c8d6c7f61641f5f5aa78ad500020771c0939ee0dea1",
|
|
||||||
"licenses/dependencies/try-lock-0.2.5/LICENSE": "c816a0749cdc6bf062a5111c159723de51b2bfac66a1dac2655abd9e6b1583eb",
|
|
||||||
"licenses/dependencies/ttf-parser-0.25.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/ttf-parser-0.25.1/LICENSE-MIT": "f3c9fe731c701ed77fd5fbaac573872af04dc5869385eb9bd5e3c73c42713814",
|
|
||||||
"licenses/dependencies/unicode-bidi-0.3.18/COPYRIGHT": "edb20b474f6cbd4f4db066b54a9e0f687d0009d309412a63431189b59b8e2a07",
|
|
||||||
"licenses/dependencies/unicode-bidi-0.3.18/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/unicode-bidi-0.3.18/LICENSE-MIT": "7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0",
|
|
||||||
"licenses/dependencies/unicode-ident-1.0.24/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/unicode-ident-1.0.24/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/unicode-ident-1.0.24/LICENSE-UNICODE": "f7db81051789b729fea528a63ec4c938fdcb93d9d61d97dc8cc2e9df6d47f2a1",
|
|
||||||
"licenses/dependencies/unicode-linebreak-0.1.5/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
|
|
||||||
"licenses/dependencies/unicode-script-0.5.8/LICENSE-APACHE": "7cbb56d1b5d83d735056b363ab20958524120afafc4ad8206e6be98cdec5d737",
|
|
||||||
"licenses/dependencies/unicode-script-0.5.8/LICENSE-MIT": "7ad3ea8ca3caf894db98c3f31d5d4949173ffa93c883ef19a9e529ad48960f8c",
|
|
||||||
"licenses/dependencies/unicode-segmentation-1.13.3/COPYRIGHT": "23860c2a7b5d96b21569afedf033469bab9fe14a1b24a35068b8641c578ce24d",
|
|
||||||
"licenses/dependencies/unicode-segmentation-1.13.3/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/unicode-segmentation-1.13.3/LICENSE-MIT": "7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0",
|
|
||||||
"licenses/dependencies/unicode-width-0.2.2/COPYRIGHT": "23860c2a7b5d96b21569afedf033469bab9fe14a1b24a35068b8641c578ce24d",
|
|
||||||
"licenses/dependencies/unicode-width-0.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/unicode-width-0.2.2/LICENSE-MIT": "7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0",
|
|
||||||
"licenses/dependencies/untrusted-0.9.0/LICENSE.txt": "7abd9b6960dcf7d4d0a48606a5b71bfe37d472db68d70637f3a58a56785f1621",
|
|
||||||
"licenses/dependencies/url-2.5.8/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/url-2.5.8/LICENSE-MIT": "b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5",
|
|
||||||
"licenses/dependencies/utf8_iter-1.0.4/COPYRIGHT": "c30152c94a6d75e021adbc52b3a52470366a46edb917e17deae3259251af244c",
|
|
||||||
"licenses/dependencies/utf8_iter-1.0.4/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/utf8_iter-1.0.4/LICENSE-MIT": "3fa4ca83dcc9237839b1bdeb2e6d16bdfb5ec0c5ce42b24694d8bbf0dcbef72c",
|
|
||||||
"licenses/dependencies/uuid-1.26.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/uuid-1.26.0/LICENSE-MIT": "436bc5a105d8e57dcd8778730f3754f7bf39c14d2f530e4cde4bd2d17a83ec3d",
|
|
||||||
"licenses/dependencies/version_check-0.9.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/version_check-0.9.5/LICENSE-MIT": "b7e650f3fce5c53249d1cdc608b54df156a97edd636cf9d23498d0cfe7aec63e",
|
|
||||||
"licenses/dependencies/want-0.3.1/LICENSE": "a65f5d0a945d267751344c95665945b90c030ea107faf5c85d518929886187da",
|
|
||||||
"licenses/dependencies/web-time-1.1.0/LICENSE-APACHE": "54a744942eb3fa63a74d8d359989ed6962c04f3f10ff20cfa08ff8aa7efbe4e6",
|
|
||||||
"licenses/dependencies/web-time-1.1.0/LICENSE-MIT": "f428305bbf2e70fbd807af0f3c7ac1b7acfb95311640f451e9d2e48db6d7e96b",
|
|
||||||
"licenses/dependencies/webpki-roots-1.0.9/LICENSE": "e271993808fec50ab29350b39539cdec611a9103f827e0aa26d61da70e2d33f8",
|
|
||||||
"licenses/dependencies/wgpu-27.0.1/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/wgpu-27.0.1/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21",
|
|
||||||
"licenses/dependencies/wgpu-core-27.0.3/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/wgpu-core-27.0.3/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21",
|
|
||||||
"licenses/dependencies/wgpu-core-deps-windows-linux-android-27.0.0/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/wgpu-core-deps-windows-linux-android-27.0.0/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21",
|
|
||||||
"licenses/dependencies/wgpu-hal-27.0.4/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/wgpu-hal-27.0.4/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21",
|
|
||||||
"licenses/dependencies/wgpu-types-27.0.1/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/wgpu-types-27.0.1/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21",
|
|
||||||
"licenses/dependencies/winapi-util-0.1.11/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f",
|
|
||||||
"licenses/dependencies/winapi-util-0.1.11/LICENSE-MIT": "cb3c929a05e6cbc9de9ab06a4c57eeb60ca8c724bef6c138c87d3a577e27aa14",
|
|
||||||
"licenses/dependencies/winapi-util-0.1.11/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c",
|
|
||||||
"licenses/dependencies/windows-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-core-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-core-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-implement-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-implement-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-interface-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-interface-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-link-0.2.1/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-link-0.2.1/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-result-0.2.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-result-0.2.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-strings-0.1.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-strings-0.1.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-sys-0.52.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-sys-0.52.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-sys-0.59.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-sys-0.59.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-sys-0.61.2/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-sys-0.61.2/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-targets-0.52.6/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-targets-0.52.6/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows_x86_64_gnullvm-0.52.6/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows_x86_64_gnullvm-0.52.6/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/window_clipboard-0.5.1/LICENSE": "7faec985f3e9b1c4a1df646bfedc304ba67e409447f7ab7f4f591f68708d85dc",
|
|
||||||
"licenses/dependencies/winit-0.30.13/LICENSE": "6dc0e068dcf3a5bc8e054205b85b7720e1d49265bbc64bf515d2cf79197df69a",
|
|
||||||
"licenses/dependencies/writeable-0.6.4/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/xml-rs-0.8.29/LICENSE": "0dc18d924dc0a5f41172a393012843a5eaaef338e795b3645da9cc3b6068220b",
|
|
||||||
"licenses/dependencies/yazi-0.2.1/LICENSE-APACHE": "7cfd738c53d61c79f07e348f622bf7707c9084237054d37fbe07788a75f5881c",
|
|
||||||
"licenses/dependencies/yazi-0.2.1/LICENSE-MIT": "df62e3ef3f207c91073fedd78b4156a278681d0dd3f942379242c62c6a71a3ec",
|
|
||||||
"licenses/dependencies/yoke-0.8.3/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/yoke-derive-0.8.2/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/zeno-0.3.3/LICENSE-APACHE": "7cfd738c53d61c79f07e348f622bf7707c9084237054d37fbe07788a75f5881c",
|
|
||||||
"licenses/dependencies/zeno-0.3.3/LICENSE-MIT": "34dff8202d63e6df022f4f0ce88dab24f254c35ee0d5958b74dcf74d9eae21cc",
|
|
||||||
"licenses/dependencies/zerocopy-0.8.56/LICENSE-APACHE": "9d185ac6703c4b0453974c0d85e9eee43e6941009296bb1f5eb0b54e2329e9f3",
|
|
||||||
"licenses/dependencies/zerocopy-0.8.56/LICENSE-BSD": "83c1763356e822adde0a2cae748d938a73fdc263849ccff6b27776dff213bd32",
|
|
||||||
"licenses/dependencies/zerocopy-0.8.56/LICENSE-MIT": "1a2f5c12ddc934d58956aa5dbdd3255fe55fd957633ab7d0d39e4f0daa73f7df",
|
|
||||||
"licenses/dependencies/zerocopy-derive-0.8.56/LICENSE-APACHE": "9d185ac6703c4b0453974c0d85e9eee43e6941009296bb1f5eb0b54e2329e9f3",
|
|
||||||
"licenses/dependencies/zerocopy-derive-0.8.56/LICENSE-BSD": "83c1763356e822adde0a2cae748d938a73fdc263849ccff6b27776dff213bd32",
|
|
||||||
"licenses/dependencies/zerocopy-derive-0.8.56/LICENSE-MIT": "1a2f5c12ddc934d58956aa5dbdd3255fe55fd957633ab7d0d39e4f0daa73f7df",
|
|
||||||
"licenses/dependencies/zerofrom-0.1.8/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/zerofrom-derive-0.1.7/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/zeroize-1.9.0/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/zeroize-1.9.0/LICENSE-MIT": "8c7516d4b27b1e495be5e38b612298b63de48d05f49cdac94f70f3cd70f8864b",
|
|
||||||
"licenses/dependencies/zerotrie-0.2.5/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/zerovec-0.11.8/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/zerovec-derive-0.11.6/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/zmij-1.0.23/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/clipboard-win-5.4.1/supplement/DoumanAsh-clipboard-win-3b27cf2bfd1a-LICENSE": "c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566",
|
|
||||||
"licenses/dependencies/cosmic-text-0.15.0/fonts/FiraMono-LICENSE": "587dd9548304fd421cd254f7550bd101c1250ffc95417f2f7f92d55b44ecbe53",
|
|
||||||
"licenses/dependencies/cosmic-text-0.15.0/fonts/Inter-LICENSE": "3c8d13d97ea5eb62868833a377034c6be6a9833e768d32abec2a767a8101e4bc",
|
|
||||||
"licenses/dependencies/cosmic-text-0.15.0/fonts/NotoSans-LICENSE": "5ec4347054089def6904da61d04f0360968f9ef36634b1fe007a5b6ec2f7aa96",
|
|
||||||
"licenses/dependencies/fontdb-0.23.0/tests/fonts/LICENSE.txt": "b84fdd2c3da5db56385cdbb639795e90aa3e035c53bc3591135f18df3331451f",
|
|
||||||
"licenses/dependencies/gl_generator-0.14.0/supplement/brendanzab-gl-rs-ea503e8d5fb6-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/gpu-alloc-0.6.2/supplement/zakarumych-gpu-alloc-61020bdcb4eb-COPYING": "12121dfa588677007848ab922a45a1e3248868f6ff063598fceb3141d7897314",
|
|
||||||
"licenses/dependencies/gpu-alloc-types-0.3.1/supplement/zakarumych-gpu-alloc-7ddd1fe576fc-COPYING": "12121dfa588677007848ab922a45a1e3248868f6ff063598fceb3141d7897314",
|
|
||||||
"licenses/dependencies/gpu-descriptor-0.3.2/supplement/zakarumych-gpu-descriptor-bb28b4e55b74-COPYING": "f72143f7e9d9fb8bd336b139fa22f825a299591c29f2f7338c5566347b137613",
|
|
||||||
"licenses/dependencies/gpu-descriptor-types-0.2.0/supplement/zakarumych-gpu-descriptor-9f2fb9546591-COPYING": "f72143f7e9d9fb8bd336b139fa22f825a299591c29f2f7338c5566347b137613",
|
|
||||||
"licenses/dependencies/harfrust-0.3.2/scripts/ms-use/COPYING": "9906940f61b1f0b533fa7d99baf55178b2808fbe113ea51dfbfad8572ccd5f2b",
|
|
||||||
"licenses/dependencies/hexf-parse-0.2.1/supplement/CC0-1.0.txt": "a2010f343487d3f7618affe54f789f5487602331c0a8d03f49e9a7c547cf0499",
|
|
||||||
"licenses/dependencies/hexf-parse-0.2.1/supplement/hexf-parse-0.2.1-Cargo.toml": "4a56dbdbc12054fd33b7a2634a45cbbe6fe12f5e6f4081002cbfa527f7220c70",
|
|
||||||
"licenses/dependencies/iced_core-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_core-0.14.0/src/layout/DRUID_LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/iced_debug-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_futures-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_graphics-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_graphics-0.14.0/assets/FiraSans-Regular.ttf/Fira-OFL.txt": "99bfb7c1e845b79d1031fcf37e678178eb4a8c7cc74a3f218ddf7223083a6fcd",
|
|
||||||
"licenses/dependencies/iced_graphics-0.14.0/assets/FiraSans-Regular.ttf/FiraSans-Regular-NOTICE.txt": "1e0baaa389b1647d06322ac9ea37822f31995408200ae5a2805a6b9bea0810d1",
|
|
||||||
"licenses/dependencies/iced_graphics-0.14.0/assets/Iced-Icons.ttf/Iced-Icons-NOTICE.txt": "8175634e30f84ef72a24c4965fb0e87f45a3c1274cc0e79e0473af582cffd1c4",
|
|
||||||
"licenses/dependencies/iced_graphics-0.14.0/assets/Iced-Icons.ttf/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_program-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_renderer-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_runtime-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_tiny_skia-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_wgpu-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_widget-0.14.2/supplement/iced-rs-iced-54abf81d13fe-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_winit-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/khronos_api-3.1.0/supplement/brendanzab-gl-rs-f150967b1c44-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/lyon-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06",
|
|
||||||
"licenses/dependencies/lyon-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e",
|
|
||||||
"licenses/dependencies/lyon_algorithms-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06",
|
|
||||||
"licenses/dependencies/lyon_algorithms-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e",
|
|
||||||
"licenses/dependencies/lyon_geom-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06",
|
|
||||||
"licenses/dependencies/lyon_geom-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e",
|
|
||||||
"licenses/dependencies/lyon_path-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06",
|
|
||||||
"licenses/dependencies/lyon_path-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e",
|
|
||||||
"licenses/dependencies/lyon_tessellation-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06",
|
|
||||||
"licenses/dependencies/lyon_tessellation-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e",
|
|
||||||
"licenses/dependencies/profiling-1.0.18/supplement/aclysma-profiling-8271551172eb-LICENSE-APACHE": "10d30a673cd5e9349bdc02aeb48f14b3386d27d0da32df8f0a555d4aa16aa551",
|
|
||||||
"licenses/dependencies/profiling-1.0.18/supplement/aclysma-profiling-8271551172eb-LICENSE-MIT": "c8167fdeeed46d3f244d3f85c5bf998ce889343691c32be2c61a8bc4b5c08333",
|
|
||||||
"licenses/dependencies/ring-0.17.14/src/polyfill/once_cell/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/ring-0.17.14/src/polyfill/once_cell/LICENSE-MIT": "6ee2ed6c77710de911761acd5fc1ad1da00f476beb1a7ef27e78c2d1858deafc",
|
|
||||||
"licenses/dependencies/ring-0.17.14/third_party/fiat/LICENSE": "9eacbcb81be660840c714a560a9d65ba07913db98dd4baf969f78dd499fdd60f",
|
|
||||||
"licenses/dependencies/spirv-0.3.0+sdk-1.3.268.0/supplement/gfx-rs-rspirv-e91a5debc10c-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/svg_fmt-0.4.5/supplement/nical-rust_debug-93f414cd572b-LICENSE": "7e98bed7f100747aaae7d82ab94fbe6b76fd6b84b09a3aaa413bff8196d0fbb1",
|
|
||||||
"licenses/dependencies/tracing-core-0.1.36/src/spin/LICENSE": "58545fed1565e42d687aecec6897d35c6d37ccb71479a137c0deb2203e125c79",
|
|
||||||
"licenses/dependencies/ttf-parser-0.25.1/tests/fonts/colr_1_LICENSE": "58d1e17ffe5109a7ae296caafcadfdbe6a7d176f0bc4ab01e12a689b0499d8bd"
|
|
||||||
},
|
|
||||||
"fileCount": 559,
|
|
||||||
"originalHelper": {
|
|
||||||
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-gui-20260911.py",
|
|
||||||
"sha256": "951b1f4b913972c5c90b17e3e70f3644c4c9328d82372a325ee46debb345237a",
|
|
||||||
"unchanged": true
|
|
||||||
},
|
|
||||||
"newHelper": {
|
|
||||||
"path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-gui-v2-20260911.py",
|
|
||||||
"sha256": "9637ac8f5b9cd97ce672e0bd6b891454b2145a6236421d82536b8bdb2d66bc3c",
|
|
||||||
"syntaxParse": "PASS"
|
|
||||||
},
|
|
||||||
"sourceDiff": "--- contextual-prerelease-gui-20260911.py\n+++ contextual-prerelease-gui-v2-20260911.py\n@@ -9,7 +9,7 @@\n import subprocess\n \n root = Path(__file__).resolve().parents[1]\n-trial = root / '.local/contextual-prerelease-gui-20260911'\n+trial = root / '.local/contextual-prerelease-gui-20260911-v2'\n base = root / 'harness/fixtures/staged-source-authoring/base'\n oracle = root / '.local/staged-source-oracle-20260911/staged-source-authoring-contract.exe'\n expected = {\n@@ -33,8 +33,13 @@\n def now():\n return datetime.datetime.now(datetime.timezone.utc).isoformat()\n def minimal_environment(package):\n- system = next(v for k, v in os.environ.items() if k.upper() == 'SYSTEMROOT')\n- return {'SystemRoot': system, 'WINDIR': system,\n+ parent = {key.upper(): value for key, value in os.environ.items()}\n+ names = ('SystemRoot', 'SystemDrive', 'ProgramData', 'ALLUSERSPROFILE', 'PUBLIC')\n+ assert all(parent.get(name.upper()) for name in names), 'Required standard Windows path is missing'\n+ standard = {name: parent[name.upper()] for name in names}\n+ assert all('%' not in value for value in standard.values()), 'Unexpanded standard Windows path'\n+ system = standard['SystemRoot']\n+ return {**standard, 'WINDIR': system,\n 'PATH': system + '\\\\System32;' + system,\n 'USERPROFILE': str(trial / 'profile'),\n 'LOCALAPPDATA': str(trial / 'profile/local'),\n@@ -59,7 +64,7 @@\n assert args.package and args.package.is_dir()\n package = args.package.resolve()\n assert package.name == 'ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm'\n- assert 'contextual-prerelease-review-20260911' in package.parts\n+ assert package == (root / '.local/contextual-prerelease-extraction2-20260911' / package.name).resolve()\n review_path = root / '.local/contextual-prerelease-review-20260911/artifact-result.json'\n review = json.loads(review_path.read_bytes())\n assert review['status'] == 'PASS'\n@@ -67,7 +72,7 @@\n assert before == review['archive']['files']\n assert all(before[p] == h for p, h in expected.items())\n trial.mkdir(exist_ok=False)\n- for folder in ('profile/local', 'profile/roaming', 'tmp'):\n+ for folder in ('profile/local', 'profile/roaming', 'profile/Desktop', 'tmp'):\n (trial / folder).mkdir(parents=True)\n assert inventory(base) == {\n 'project.arcadia': 'aa844950ec4fb86f262a257e1fc370a26557ea7978d8a4cab78265037660234c',\n",
|
|
||||||
"unchangedFunctionSyntax": [
|
|
||||||
"sha",
|
|
||||||
"inventory",
|
|
||||||
"record",
|
|
||||||
"now",
|
|
||||||
"run_oracle"
|
|
||||||
],
|
|
||||||
"standardParentPaths": {
|
|
||||||
"SystemRoot": "C:\\Windows",
|
|
||||||
"SystemDrive": "C:",
|
|
||||||
"ProgramData": "C:\\ProgramData",
|
|
||||||
"ALLUSERSPROFILE": "C:\\ProgramData",
|
|
||||||
"PUBLIC": "C:\\Users\\Public"
|
|
||||||
},
|
|
||||||
"trial": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-gui-20260911-v2",
|
|
||||||
"trialExists": false,
|
|
||||||
"rationale": [
|
|
||||||
"First trial preserved all 559 original package files but Windows created a literal %SystemDrive% cache path because the minimal environment omitted SystemDrive.",
|
|
||||||
"Forward only the named nonsecret Windows standard paths; keep Windows-only PATH and private USERPROFILE, APPDATA, LOCALAPPDATA, TEMP/TMP.",
|
|
||||||
"Create private profile/Desktop before GUI launch so native Open has a valid Desktop.",
|
|
||||||
"Fresh exact extraction isolates the earlier cache side effect without deleting or changing old evidence; complete package/oracle/hash guards remain intact."
|
|
||||||
],
|
|
||||||
"readyCommand": [
|
|
||||||
"C:/Users/User/.cache/codex-runtimes/codex-primary-runtime/dependencies/python/python.exe",
|
|
||||||
"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-gui-v2-20260911.py",
|
|
||||||
"launch",
|
|
||||||
"--package",
|
|
||||||
"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-extraction2-20260911\\ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,104 +0,0 @@
|
|||||||
"""Launch/check the independently extracted package; native input is separate."""
|
|
||||||
import argparse
|
|
||||||
import datetime
|
|
||||||
import hashlib
|
|
||||||
import json
|
|
||||||
import os
|
|
||||||
from pathlib import Path
|
|
||||||
import shutil
|
|
||||||
import subprocess
|
|
||||||
|
|
||||||
root = Path(__file__).resolve().parents[1]
|
|
||||||
trial = root / '.local/contextual-prerelease-gui-20260911'
|
|
||||||
base = root / 'harness/fixtures/staged-source-authoring/base'
|
|
||||||
oracle = root / '.local/staged-source-oracle-20260911/staged-source-authoring-contract.exe'
|
|
||||||
expected = {
|
|
||||||
'arcadia-studio.exe': '5657bab5c841939b66f901efe6c0ffb2d7cbbe8cc5f111a0ca3de8073d3846ce',
|
|
||||||
'arcadia-server.exe': 'efeeb89c0d2e0f93df4472cb3e9f48b2b722a37ae1043c90a5a56f2e845fe665',
|
|
||||||
'libunwind.dll': 'f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4',
|
|
||||||
}
|
|
||||||
def sha(p):
|
|
||||||
return hashlib.sha256(p.read_bytes()).hexdigest()
|
|
||||||
def inventory(folder):
|
|
||||||
found = {}
|
|
||||||
for p in folder.rglob('*'):
|
|
||||||
assert not p.is_symlink() and not (getattr(p.lstat(), 'st_file_attributes', 0) & 0x400), str(p)
|
|
||||||
if p.is_file():
|
|
||||||
found[p.relative_to(folder).as_posix()] = sha(p)
|
|
||||||
return found
|
|
||||||
def record(path, value):
|
|
||||||
with path.open('x', encoding='utf-8', newline='\n') as f:
|
|
||||||
json.dump(value, f, indent=2)
|
|
||||||
f.write('\n')
|
|
||||||
def now():
|
|
||||||
return datetime.datetime.now(datetime.timezone.utc).isoformat()
|
|
||||||
def minimal_environment(package):
|
|
||||||
system = next(v for k, v in os.environ.items() if k.upper() == 'SYSTEMROOT')
|
|
||||||
return {'SystemRoot': system, 'WINDIR': system,
|
|
||||||
'PATH': system + '\\System32;' + system,
|
|
||||||
'USERPROFILE': str(trial / 'profile'),
|
|
||||||
'LOCALAPPDATA': str(trial / 'profile/local'),
|
|
||||||
'APPDATA': str(trial / 'profile/roaming'),
|
|
||||||
'TEMP': str(trial / 'tmp'), 'TMP': str(trial / 'tmp')}
|
|
||||||
def run_oracle(package, args, label):
|
|
||||||
assert sha(oracle) == '967d9ba3c6fb3a7efb410833903ec94556ca2d48a67d5072c8bb160f40a00f9c'
|
|
||||||
env = minimal_environment(package)
|
|
||||||
env['PATH'] = str(package) + ';' + env['PATH']
|
|
||||||
result = subprocess.run([str(oracle), *args], env=env, capture_output=True)
|
|
||||||
(trial / (label + '.stdout.log')).write_bytes(result.stdout)
|
|
||||||
(trial / (label + '.stderr.log')).write_bytes(result.stderr)
|
|
||||||
record(trial / (label + '.json'), {'atUtc': now(), 'args': args, 'exitCode': result.returncode,
|
|
||||||
'oracleSha256': sha(oracle)})
|
|
||||||
assert result.returncode == 0, result.stdout.decode(errors='replace') + result.stderr.decode(errors='replace')
|
|
||||||
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
parser.add_argument('action', choices=['launch', 'saved', 'closed'])
|
|
||||||
parser.add_argument('--package', type=Path)
|
|
||||||
args = parser.parse_args()
|
|
||||||
if args.action == 'launch':
|
|
||||||
assert args.package and args.package.is_dir()
|
|
||||||
package = args.package.resolve()
|
|
||||||
assert package.name == 'ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm'
|
|
||||||
assert 'contextual-prerelease-review-20260911' in package.parts
|
|
||||||
review_path = root / '.local/contextual-prerelease-review-20260911/artifact-result.json'
|
|
||||||
review = json.loads(review_path.read_bytes())
|
|
||||||
assert review['status'] == 'PASS'
|
|
||||||
before = inventory(package)
|
|
||||||
assert before == review['archive']['files']
|
|
||||||
assert all(before[p] == h for p, h in expected.items())
|
|
||||||
trial.mkdir(exist_ok=False)
|
|
||||||
for folder in ('profile/local', 'profile/roaming', 'tmp'):
|
|
||||||
(trial / folder).mkdir(parents=True)
|
|
||||||
assert inventory(base) == {
|
|
||||||
'project.arcadia': 'aa844950ec4fb86f262a257e1fc370a26557ea7978d8a4cab78265037660234c',
|
|
||||||
'notes.arcadia': 'ad9de02963c20d1f43856455a797deb05ca674659e45f2c4b96b52783024f8bd'}
|
|
||||||
shutil.copytree(base, trial / 'work')
|
|
||||||
run_oracle(package, ['same', str(base / 'project.arcadia'), str(trial / 'work/project.arcadia')], 'baseline')
|
|
||||||
env = minimal_environment(package)
|
|
||||||
startup = subprocess.STARTUPINFO()
|
|
||||||
startup.dwFlags |= subprocess.STARTF_USESHOWWINDOW
|
|
||||||
startup.wShowWindow = 0
|
|
||||||
with (trial / 'stdout.log').open('xb') as out, (trial / 'stderr.log').open('xb') as err:
|
|
||||||
process = subprocess.Popen([str(package / 'arcadia-studio.exe')], cwd=package,
|
|
||||||
env=env, stdout=out, stderr=err, startupinfo=startup)
|
|
||||||
record(trial / 'package-before.json', before)
|
|
||||||
launch = {'atUtc': now(), 'pid': process.pid, 'package': str(package), 'environment': env,
|
|
||||||
'reviewSha256': sha(review_path), 'archiveSha256': review['archive']['sha256'],
|
|
||||||
'source': str(trial / 'work/project.arcadia'), 'scope': 'Fresh extracted package; native acceptance pending'}
|
|
||||||
record(trial / 'launch.json', launch)
|
|
||||||
print(json.dumps(launch, indent=2))
|
|
||||||
else:
|
|
||||||
launch = json.loads((trial / 'launch.json').read_bytes())
|
|
||||||
package = Path(launch['package'])
|
|
||||||
assert inventory(package) == json.loads((trial / 'package-before.json').read_bytes())
|
|
||||||
if args.action == 'saved':
|
|
||||||
destination = trial / 'checkpoint-first'
|
|
||||||
assert not destination.exists()
|
|
||||||
shutil.copytree(trial / 'work', destination)
|
|
||||||
run_oracle(package, ['check', 'lifeline', str(base / 'project.arcadia'),
|
|
||||||
str(destination / 'project.arcadia'), str(destination / 'project.arcadia')], 'saved')
|
|
||||||
record(trial / 'saved-files.json', inventory(destination))
|
|
||||||
else:
|
|
||||||
record(trial / 'package-after-close.json', {'atUtc': now(), 'files': len(inventory(package)),
|
|
||||||
'completeInventoryUnchanged': True})
|
|
||||||
print(json.dumps({'action': args.action, 'result': 'PASS', 'packageFiles': len(inventory(package))}))
|
|
||||||
@@ -1,109 +0,0 @@
|
|||||||
"""Launch/check the independently extracted package; native input is separate."""
|
|
||||||
import argparse
|
|
||||||
import datetime
|
|
||||||
import hashlib
|
|
||||||
import json
|
|
||||||
import os
|
|
||||||
from pathlib import Path
|
|
||||||
import shutil
|
|
||||||
import subprocess
|
|
||||||
|
|
||||||
root = Path(__file__).resolve().parents[1]
|
|
||||||
trial = root / '.local/contextual-prerelease-gui-20260911-v2'
|
|
||||||
base = root / 'harness/fixtures/staged-source-authoring/base'
|
|
||||||
oracle = root / '.local/staged-source-oracle-20260911/staged-source-authoring-contract.exe'
|
|
||||||
expected = {
|
|
||||||
'arcadia-studio.exe': '5657bab5c841939b66f901efe6c0ffb2d7cbbe8cc5f111a0ca3de8073d3846ce',
|
|
||||||
'arcadia-server.exe': 'efeeb89c0d2e0f93df4472cb3e9f48b2b722a37ae1043c90a5a56f2e845fe665',
|
|
||||||
'libunwind.dll': 'f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4',
|
|
||||||
}
|
|
||||||
def sha(p):
|
|
||||||
return hashlib.sha256(p.read_bytes()).hexdigest()
|
|
||||||
def inventory(folder):
|
|
||||||
found = {}
|
|
||||||
for p in folder.rglob('*'):
|
|
||||||
assert not p.is_symlink() and not (getattr(p.lstat(), 'st_file_attributes', 0) & 0x400), str(p)
|
|
||||||
if p.is_file():
|
|
||||||
found[p.relative_to(folder).as_posix()] = sha(p)
|
|
||||||
return found
|
|
||||||
def record(path, value):
|
|
||||||
with path.open('x', encoding='utf-8', newline='\n') as f:
|
|
||||||
json.dump(value, f, indent=2)
|
|
||||||
f.write('\n')
|
|
||||||
def now():
|
|
||||||
return datetime.datetime.now(datetime.timezone.utc).isoformat()
|
|
||||||
def minimal_environment(package):
|
|
||||||
parent = {key.upper(): value for key, value in os.environ.items()}
|
|
||||||
names = ('SystemRoot', 'SystemDrive', 'ProgramData', 'ALLUSERSPROFILE', 'PUBLIC')
|
|
||||||
assert all(parent.get(name.upper()) for name in names), 'Required standard Windows path is missing'
|
|
||||||
standard = {name: parent[name.upper()] for name in names}
|
|
||||||
assert all('%' not in value for value in standard.values()), 'Unexpanded standard Windows path'
|
|
||||||
system = standard['SystemRoot']
|
|
||||||
return {**standard, 'WINDIR': system,
|
|
||||||
'PATH': system + '\\System32;' + system,
|
|
||||||
'USERPROFILE': str(trial / 'profile'),
|
|
||||||
'LOCALAPPDATA': str(trial / 'profile/local'),
|
|
||||||
'APPDATA': str(trial / 'profile/roaming'),
|
|
||||||
'TEMP': str(trial / 'tmp'), 'TMP': str(trial / 'tmp')}
|
|
||||||
def run_oracle(package, args, label):
|
|
||||||
assert sha(oracle) == '967d9ba3c6fb3a7efb410833903ec94556ca2d48a67d5072c8bb160f40a00f9c'
|
|
||||||
env = minimal_environment(package)
|
|
||||||
env['PATH'] = str(package) + ';' + env['PATH']
|
|
||||||
result = subprocess.run([str(oracle), *args], env=env, capture_output=True)
|
|
||||||
(trial / (label + '.stdout.log')).write_bytes(result.stdout)
|
|
||||||
(trial / (label + '.stderr.log')).write_bytes(result.stderr)
|
|
||||||
record(trial / (label + '.json'), {'atUtc': now(), 'args': args, 'exitCode': result.returncode,
|
|
||||||
'oracleSha256': sha(oracle)})
|
|
||||||
assert result.returncode == 0, result.stdout.decode(errors='replace') + result.stderr.decode(errors='replace')
|
|
||||||
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
parser.add_argument('action', choices=['launch', 'saved', 'closed'])
|
|
||||||
parser.add_argument('--package', type=Path)
|
|
||||||
args = parser.parse_args()
|
|
||||||
if args.action == 'launch':
|
|
||||||
assert args.package and args.package.is_dir()
|
|
||||||
package = args.package.resolve()
|
|
||||||
assert package.name == 'ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm'
|
|
||||||
assert package == (root / '.local/contextual-prerelease-extraction2-20260911' / package.name).resolve()
|
|
||||||
review_path = root / '.local/contextual-prerelease-review-20260911/artifact-result.json'
|
|
||||||
review = json.loads(review_path.read_bytes())
|
|
||||||
assert review['status'] == 'PASS'
|
|
||||||
before = inventory(package)
|
|
||||||
assert before == review['archive']['files']
|
|
||||||
assert all(before[p] == h for p, h in expected.items())
|
|
||||||
trial.mkdir(exist_ok=False)
|
|
||||||
for folder in ('profile/local', 'profile/roaming', 'profile/Desktop', 'tmp'):
|
|
||||||
(trial / folder).mkdir(parents=True)
|
|
||||||
assert inventory(base) == {
|
|
||||||
'project.arcadia': 'aa844950ec4fb86f262a257e1fc370a26557ea7978d8a4cab78265037660234c',
|
|
||||||
'notes.arcadia': 'ad9de02963c20d1f43856455a797deb05ca674659e45f2c4b96b52783024f8bd'}
|
|
||||||
shutil.copytree(base, trial / 'work')
|
|
||||||
run_oracle(package, ['same', str(base / 'project.arcadia'), str(trial / 'work/project.arcadia')], 'baseline')
|
|
||||||
env = minimal_environment(package)
|
|
||||||
startup = subprocess.STARTUPINFO()
|
|
||||||
startup.dwFlags |= subprocess.STARTF_USESHOWWINDOW
|
|
||||||
startup.wShowWindow = 0
|
|
||||||
with (trial / 'stdout.log').open('xb') as out, (trial / 'stderr.log').open('xb') as err:
|
|
||||||
process = subprocess.Popen([str(package / 'arcadia-studio.exe')], cwd=package,
|
|
||||||
env=env, stdout=out, stderr=err, startupinfo=startup)
|
|
||||||
record(trial / 'package-before.json', before)
|
|
||||||
launch = {'atUtc': now(), 'pid': process.pid, 'package': str(package), 'environment': env,
|
|
||||||
'reviewSha256': sha(review_path), 'archiveSha256': review['archive']['sha256'],
|
|
||||||
'source': str(trial / 'work/project.arcadia'), 'scope': 'Fresh extracted package; native acceptance pending'}
|
|
||||||
record(trial / 'launch.json', launch)
|
|
||||||
print(json.dumps(launch, indent=2))
|
|
||||||
else:
|
|
||||||
launch = json.loads((trial / 'launch.json').read_bytes())
|
|
||||||
package = Path(launch['package'])
|
|
||||||
assert inventory(package) == json.loads((trial / 'package-before.json').read_bytes())
|
|
||||||
if args.action == 'saved':
|
|
||||||
destination = trial / 'checkpoint-first'
|
|
||||||
assert not destination.exists()
|
|
||||||
shutil.copytree(trial / 'work', destination)
|
|
||||||
run_oracle(package, ['check', 'lifeline', str(base / 'project.arcadia'),
|
|
||||||
str(destination / 'project.arcadia'), str(destination / 'project.arcadia')], 'saved')
|
|
||||||
record(trial / 'saved-files.json', inventory(destination))
|
|
||||||
else:
|
|
||||||
record(trial / 'package-after-close.json', {'atUtc': now(), 'files': len(inventory(package)),
|
|
||||||
'completeInventoryUnchanged': True})
|
|
||||||
print(json.dumps({'action': args.action, 'result': 'PASS', 'packageFiles': len(inventory(package))}))
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"atUtc": "2026-09-11T16:22:25.531203+00:00",
|
|
||||||
"args": [
|
|
||||||
"same",
|
|
||||||
"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\harness\\fixtures\\staged-source-authoring\\base\\project.arcadia",
|
|
||||||
"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-gui-20260911\\work\\project.arcadia"
|
|
||||||
],
|
|
||||||
"exitCode": 0,
|
|
||||||
"oracleSha256": "967d9ba3c6fb3a7efb410833903ec94556ca2d48a67d5072c8bb160f40a00f9c"
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
PASS exact model/identity/2 reachable sources; 2 exact disk files (0 proven retained)
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
// Preserve this independent engineering note: secours 雨 Δ.
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
|
|
||||||
oa_activity assess_incident_work "Assess incident work" id "3e617adf-fdbb-4dc4-9cbc-73309a382c5d" {
|
|
||||||
description "";
|
|
||||||
parent none;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
arcadia 7;
|
|
||||||
project contextual_source_acceptance "Contextual source acceptance" id "d1510000-0000-4000-8000-000000000001" {
|
|
||||||
include "notes.arcadia";
|
|
||||||
|
|
||||||
// The viewpoint is explicit before any lifeline exists.
|
|
||||||
oa_scenario operational_assessment "Operational assessment" id "d1510000-0000-4000-8000-000000000002" {
|
|
||||||
viewpoint OperationalActivity;
|
|
||||||
steps [];
|
|
||||||
|
|
||||||
oa_lifeline assessment_lifeline "Assessment lifeline" id "8d1cdc7a-c7c2-4d97-9b54-c590ff515717" {
|
|
||||||
description "";
|
|
||||||
|
|
||||||
represented @assess_incident_work;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Contributions are occurrences; root Functions are separate sources.
|
|
||||||
sa_functional_chain system_assessment "System assessment" id "d1510000-0000-4000-8000-000000000003" {
|
|
||||||
steps [];
|
|
||||||
}
|
|
||||||
|
|
||||||
include "oa/activities/activity_assess_incident_work.arcadia";
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 114 KiB |
|
Before Width: | Height: | Size: 96 KiB |
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
"atUtc": "2026-09-11T16:22:25.882919+00:00",
|
|
||||||
"pid": 9764,
|
|
||||||
"package": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-review-20260911\\extracted\\ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm",
|
|
||||||
"environment": {
|
|
||||||
"SystemRoot": "C:\\Windows",
|
|
||||||
"WINDIR": "C:\\Windows",
|
|
||||||
"PATH": "C:\\Windows\\System32;C:\\Windows",
|
|
||||||
"USERPROFILE": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-gui-20260911\\profile",
|
|
||||||
"LOCALAPPDATA": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-gui-20260911\\profile\\local",
|
|
||||||
"APPDATA": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-gui-20260911\\profile\\roaming",
|
|
||||||
"TEMP": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-gui-20260911\\tmp",
|
|
||||||
"TMP": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-gui-20260911\\tmp"
|
|
||||||
},
|
|
||||||
"reviewSha256": "3a6bf2580b25dad696d635dcbbde88522a065f83698229c2a22dda92f2ab6ee8",
|
|
||||||
"archiveSha256": "9186d4fc9a7b52fb195c183c4847c8e3419ea6da8b3f907e0c06f9ceec58dee0",
|
|
||||||
"source": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-gui-20260911\\work\\project.arcadia",
|
|
||||||
"scope": "Fresh extracted package; native acceptance pending"
|
|
||||||
}
|
|
||||||
@@ -1,130 +0,0 @@
|
|||||||
[
|
|
||||||
"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-review-20260911\\extracted\\ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm\\arcadia-studio.exe",
|
|
||||||
"C:\\Windows\\SYSTEM32\\ntdll.dll",
|
|
||||||
"C:\\Windows\\System32\\KERNEL32.DLL",
|
|
||||||
"C:\\Windows\\System32\\KERNELBASE.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\apphelp.dll",
|
|
||||||
"C:\\Windows\\System32\\user32.dll",
|
|
||||||
"C:\\Windows\\System32\\win32u.dll",
|
|
||||||
"C:\\Windows\\System32\\GDI32.dll",
|
|
||||||
"C:\\Windows\\System32\\gdi32full.dll",
|
|
||||||
"C:\\Windows\\System32\\msvcp_win.dll",
|
|
||||||
"C:\\Windows\\System32\\ucrtbase.dll",
|
|
||||||
"C:\\Windows\\System32\\ole32.dll",
|
|
||||||
"C:\\Windows\\System32\\combase.dll",
|
|
||||||
"C:\\Windows\\System32\\RPCRT4.dll",
|
|
||||||
"C:\\Windows\\System32\\advapi32.dll",
|
|
||||||
"C:\\Windows\\System32\\msvcrt.dll",
|
|
||||||
"C:\\Windows\\System32\\sechost.dll",
|
|
||||||
"C:\\Windows\\System32\\bcryptprimitives.dll",
|
|
||||||
"C:\\Windows\\System32\\shell32.dll",
|
|
||||||
"C:\\Windows\\System32\\imm32.dll",
|
|
||||||
"C:\\Windows\\System32\\ws2_32.dll",
|
|
||||||
"C:\\Windows\\System32\\oleaut32.dll",
|
|
||||||
"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-review-20260911\\extracted\\ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm\\libunwind.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\bcrypt.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\dwmapi.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\uxtheme.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\opengl32.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\GLU32.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\CRYPTBASE.DLL",
|
|
||||||
"C:\\Windows\\SYSTEM32\\dxcore.dll",
|
|
||||||
"C:\\Windows\\System32\\MSCTF.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\uiautomationcore.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\kernel.appcore.dll",
|
|
||||||
"C:\\Windows\\System32\\clbcatq.dll",
|
|
||||||
"C:\\Windows\\system32\\dataexchange.dll",
|
|
||||||
"C:\\Windows\\system32\\twinapi.appcore.dll",
|
|
||||||
"C:\\Windows\\system32\\explorerframe.dll",
|
|
||||||
"C:\\Windows\\System32\\SHCORE.dll",
|
|
||||||
"C:\\Windows\\System32\\SHLWAPI.dll",
|
|
||||||
"C:\\Windows\\System32\\Windows.Storage.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\powrprof.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\UMPDC.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\CFGMGR32.dll",
|
|
||||||
"C:\\Windows\\system32\\dxgi.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\windows.staterepositorycore.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\directxdatabasehelper.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\d3d12.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\d3dcompiler_47.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\cryptsp.dll",
|
|
||||||
"C:\\Windows\\System32\\DriverStore\\FileRepository\\vm3d.inf_amd64_39d3dfd189710365\\vm3dgl64.dll",
|
|
||||||
"C:\\Windows\\System32\\DriverStore\\FileRepository\\vm3d.inf_amd64_39d3dfd189710365\\vm3dglhelper64.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\WINMM.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\D3D12Core.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\d3d10warp.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\D3DSCache.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\USERENV.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\dxilconv.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\dcomp.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\Microsoft.Internal.WarpPal.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\textinputframework.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\OLEACC.dll",
|
|
||||||
"C:\\Windows\\System32\\threadpoolwinrt.dll",
|
|
||||||
"C:\\Windows\\System32\\DUI70.dll",
|
|
||||||
"C:\\Windows\\WinSxS\\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.26100.8457_none_3e0b2faee331e92d\\Comctl32.dll",
|
|
||||||
"C:\\Windows\\System32\\DUser.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\CoreMessaging.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\CoreUIComponents.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\wintypes.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\TextShaping.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\edputil.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\WindowsCodecs.dll",
|
|
||||||
"C:\\Windows\\System32\\profapi.dll",
|
|
||||||
"C:\\Windows\\System32\\thumbcache.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\policymanager.dll",
|
|
||||||
"C:\\Windows\\System32\\Windows.Globalization.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\globinputhost.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\Bcp47Langs.dll",
|
|
||||||
"C:\\Windows\\System32\\PROPSYS.dll",
|
|
||||||
"C:\\Windows\\System32\\urlmon.dll",
|
|
||||||
"C:\\Windows\\System32\\iertutil.dll",
|
|
||||||
"C:\\Windows\\System32\\srvcli.dll",
|
|
||||||
"C:\\Windows\\System32\\netutils.dll",
|
|
||||||
"C:\\Windows\\system32\\rsaenh.dll",
|
|
||||||
"C:\\Windows\\System32\\XmlLite.dll",
|
|
||||||
"C:\\Windows\\system32\\NetworkExplorer.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\sxs.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\atlthunk.dll",
|
|
||||||
"C:\\Windows\\System32\\StructuredQuery.dll",
|
|
||||||
"C:\\Windows\\System32\\icu.dll",
|
|
||||||
"C:\\Windows\\System32\\OneCoreUAPCommonProxyStub.dll",
|
|
||||||
"C:\\Windows\\System32\\Windows.FileExplorer.Common.dll",
|
|
||||||
"C:\\Windows\\System32\\OneCoreCommonProxyStub.dll",
|
|
||||||
"C:\\Windows\\System32\\Windows.System.Launcher.dll",
|
|
||||||
"C:\\Windows\\System32\\Windows.StateRepositoryPS.dll",
|
|
||||||
"C:\\Windows\\system32\\windowsudk.shellcommon.dll",
|
|
||||||
"C:\\Windows\\System32\\Windows.UI.dll",
|
|
||||||
"C:\\Windows\\system32\\Windows.Storage.Search.dll",
|
|
||||||
"C:\\Windows\\System32\\Windows.UI.Immersive.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\ntshrui.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\cscapi.dll",
|
|
||||||
"C:\\Windows\\System32\\ActXPrxy.dll",
|
|
||||||
"C:\\Windows\\System32\\EhStorShell.dll",
|
|
||||||
"C:\\Windows\\System32\\SETUPAPI.dll",
|
|
||||||
"C:\\Windows\\System32\\cscui.dll",
|
|
||||||
"C:\\Windows\\System32\\SspiCli.dll",
|
|
||||||
"C:\\Windows\\System32\\MPR.dll",
|
|
||||||
"C:\\Windows\\System32\\vmhgfs.dll",
|
|
||||||
"C:\\Windows\\System32\\VERSION.dll",
|
|
||||||
"C:\\Windows\\System32\\VCRUNTIME140.dll",
|
|
||||||
"C:\\Windows\\System32\\p9np.dll",
|
|
||||||
"C:\\Windows\\System32\\drprov.dll",
|
|
||||||
"C:\\Windows\\System32\\ntlanman.dll",
|
|
||||||
"C:\\Windows\\System32\\davclnt.dll",
|
|
||||||
"C:\\Windows\\System32\\WINSTA.dll",
|
|
||||||
"C:\\Windows\\System32\\wkscli.dll",
|
|
||||||
"C:\\Windows\\System32\\dlnashext.dll",
|
|
||||||
"C:\\Windows\\System32\\PlayToDevice.dll",
|
|
||||||
"C:\\Windows\\System32\\DevDispItemProvider.dll",
|
|
||||||
"C:\\Windows\\System32\\MMDevApi.dll",
|
|
||||||
"C:\\Windows\\System32\\DEVOBJ.dll",
|
|
||||||
"C:\\Windows\\system32\\wpdshext.dll",
|
|
||||||
"C:\\Windows\\WinSxS\\amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.26100.8328_none_6ef30b123dc73046\\gdiplus.dll",
|
|
||||||
"C:\\Windows\\System32\\PortableDeviceApi.dll",
|
|
||||||
"C:\\Windows\\System32\\WINTRUST.dll",
|
|
||||||
"C:\\Windows\\System32\\CRYPT32.dll",
|
|
||||||
"C:\\Windows\\SYSTEM32\\MSASN1.dll",
|
|
||||||
"C:\\Windows\\System32\\EhStorAPI.dll",
|
|
||||||
"C:\\Windows\\System32\\WTSAPI32.dll"
|
|
||||||
]
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
"atUtc": "2026-09-11T16:32:47.558612+00:00",
|
|
||||||
"scope": "Complete model/source check only; this initial native trial failed package inventory because of an added Windows shell cache",
|
|
||||||
"exitCode": 0,
|
|
||||||
"args": [
|
|
||||||
"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\staged-source-oracle-20260911\\staged-source-authoring-contract.exe",
|
|
||||||
"check",
|
|
||||||
"lifeline",
|
|
||||||
"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\harness\\fixtures\\staged-source-authoring\\base\\project.arcadia",
|
|
||||||
"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-gui-20260911\\checkpoint-first\\project.arcadia",
|
|
||||||
"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-gui-20260911\\checkpoint-first\\project.arcadia"
|
|
||||||
],
|
|
||||||
"oracleSha256": "967d9ba3c6fb3a7efb410833903ec94556ca2d48a67d5072c8bb160f40a00f9c",
|
|
||||||
"files": {
|
|
||||||
"notes.arcadia": "ad9de02963c20d1f43856455a797deb05ca674659e45f2c4b96b52783024f8bd",
|
|
||||||
"project.arcadia": "82297ccc2eae444f9ec7caca793ce71b2340904014289e36f8a6bc587f640f23",
|
|
||||||
"oa/activities/activity_assess_incident_work.arcadia": "6fe331b65e7e9489221dd8914d26fa188d4941c1641685f5c24a4320cdb9c857"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
PASS Lifeline: complete Project + 3 exact source/disk files, original role UUIDs
|
|
||||||
|
Before Width: | Height: | Size: 113 KiB |
@@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"atUtc": "2026-09-11T16:33:13.2669723+00:00",
|
|
||||||
"pid": 9764,
|
|
||||||
"absent": true,
|
|
||||||
"method": "Native Alt+F4 after complete saved-model check",
|
|
||||||
"exitCode": null,
|
|
||||||
"packageAcceptance": "Failed initial environment fixture: extra shell cache; original559 files unchanged"
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 167 KiB |
@@ -1,561 +0,0 @@
|
|||||||
{
|
|
||||||
"arcadia-server.exe": "efeeb89c0d2e0f93df4472cb3e9f48b2b722a37ae1043c90a5a56f2e845fe665",
|
|
||||||
"arcadia-studio.exe": "5657bab5c841939b66f901efe6c0ffb2d7cbbe8cc5f111a0ca3de8073d3846ce",
|
|
||||||
"dependency-notices.json": "f318f87e6a23dcfac16ef7b1cfe51ecb804e98e1ff6a97271180319d5922fc0e",
|
|
||||||
"documentation-check.json": "bcc89585951fd9e5a1641993c51ca79e00a7a06944a8273d2df413331320e93f",
|
|
||||||
"libunwind.dll": "f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4",
|
|
||||||
"LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365",
|
|
||||||
"package.json": "25f01823dbceed15468bf759eed3f9ffbfd1098427027288bcbb9a3d356b6a4d",
|
|
||||||
"README.md": "597cfb8da873e019d2658420f18ec059f0185fa9106ff9eafe934dfdd6ed266b",
|
|
||||||
"SHA256SUMS.txt": "04e4be3f6a081e11ccad8609643031d91fed82cd08e7c7821002ff9b9a04e454",
|
|
||||||
"START-HERE.txt": "a549295cf57ac73673dc4fa6106463450f982122793cb9c7135ce4fc7087e9ed",
|
|
||||||
"THIRD-PARTY-NOTICES.txt": "6756989c8fc73706641cd78449c315458425a2eed9a82febc289b9d28ea7f21f",
|
|
||||||
"deployment/arcadia-server.service": "1e6c6bb4065e25f8fe1d558a4ed0bbd4844782a4377c2482488db1e6f9cab01d",
|
|
||||||
"deployment/Dockerfile": "72c04aef4ec879955ed3bdf315987553d018ef46e4b8f350f0f6fe380c453eb7",
|
|
||||||
"deployment/Dockerfile.dockerignore": "6bb7d7496110b11a531cb8cd923864c6610850a8f1c4de8a797f54c7156f29e1",
|
|
||||||
"docs/api.html": "a06126cb741da57e9c06e83fc4137ccde0de05562673546bc9d405878f51ea07",
|
|
||||||
"docs/api.rst": "ca7d310138c3b4d429d80a1d03d1ac8d4a9296069e205da573034256d10438a7",
|
|
||||||
"docs/language.html": "67dcfa3477b48a0b07298ec81741840cc3ccff12c7d58164873d746d41d611c8",
|
|
||||||
"docs/language.rst": "ac6b1d982c55f246de2f3c844b24b874599a3c20cfbd7ed22efe4561ac622b83",
|
|
||||||
"docs/linux-packaging.md": "41a1bb1095801df37a1411341c5791d55ea8c365739314d599a60269ac4bc7a0",
|
|
||||||
"docs/openapi.json": "c6ae512f791a939eaf6ec5e5e78e9468bdee0e028092d00098bd90ad9498d967",
|
|
||||||
"docs/research-v2-service.md": "4828df5bc679e7c71f49b4b85c9e7dacbec52f46d416fed48af70e08886d4e4e",
|
|
||||||
"docs/server.md": "4eb24937d424ba8b384e1734e02a6f8e963ae11d2715889c92b14b39ff2e4a48",
|
|
||||||
"docs/windows-packaging.md": "2c852ff7041713ffbff3c951ac98df647c51fb70b0feba9000f7bfd5bc2703a8",
|
|
||||||
"examples/coastal-rescue.arcadia": "7e183ef9fd8154d3074303f1956cd0d9871c19e3ffc630d333b0bffbd6e30e17",
|
|
||||||
"examples/coastal-rescue.json": "242f0b031229a87af5c4ebe5d651defe59c191a6b7a69dc0a77f7e203411f195",
|
|
||||||
"examples/legacy-v1-coastal-rescue.arcadia": "4dbbbdf8bc7e6cb8e0a81dd678069dae585a9e5187c59bc3665e1fdab3f1a86a",
|
|
||||||
"examples/legacy-v1-coastal-rescue.oa.json": "fd0e9dedfb7adb922dc0575cc2b820d40344d639f1d8052bd70363aa59de9c24",
|
|
||||||
"examples/routing-workshop.arcadia": "dc6b75da72884d399132ed9e300fa5a26b73d802bb526c9af986ae9eeb0a646a",
|
|
||||||
"examples/routing-workshop.json": "8592714f75b271133f21ce017d87896b6cf91ea0e4837f1c2ed453e21be26b14",
|
|
||||||
"licenses/llvm-mingw-LICENSE.TXT": "8d85c1057d742e597985c7d4e6320b015a9139385cff4cbae06ffc0ebe89afee",
|
|
||||||
"examples/release1/expected-diagnostics.json": "3700393d76b940cfc076bf52861bd7b1f43370f8eabce3594531bd0bf1fc851e",
|
|
||||||
"examples/release1/model.json": "ef0ef4006c3e09d5db6e1b621256b3f7d6642f3a7b09cc34607cfbcca830c727",
|
|
||||||
"examples/release1/model.rs": "15f30f6bde655808fe754665c26d560e36f2a9bad340f346b09137d0d05045f5",
|
|
||||||
"examples/release1/project.arcadia": "b2674e6bf77cfe0f6f0ba79c81d2e96d92f39c02ca2c6266d80e91723bfb9fda",
|
|
||||||
"examples/release1/README.md": "113cfb1cf38a98b51bff60442d86a35d636a3d80ef206bece7d53d0aae67f2d5",
|
|
||||||
"examples/release1/traceability.arcadia": "48a96f543456c9b5a5798fc795594e4119147fe45f11a6f109f141b7f514560f",
|
|
||||||
"examples/release1/transition-before.json": "2253e6434f741687e22327c37d520ed15c043bc36025498650bc2366bb6a874d",
|
|
||||||
"examples/release1/transition-request.json": "43b9a22e5f95ad3bc0ebd2478ead0e14406854abc989ae94ded9367b013d812a",
|
|
||||||
"examples/source-project/oa.arcadia": "5f60642f211b2d352a951092faeeb7503d4fb7f6f7fca99e810347231101d31c",
|
|
||||||
"examples/source-project/project.arcadia": "787f6b67b179ffd221f7e5faf1a4edd74cfd116aa1e3b5e9ed9f22fbff612d8d",
|
|
||||||
"examples/source-project/views.arcadia": "e29ad3f406a6a50d2f0ae2ca2a53ee3b0c18222cd4098704a46d4f48b64ea17f",
|
|
||||||
"examples/text-first/project.arcadia": "f441535c623e0cf20e1875eb2cd33b587ed00e078c37af39cb36d89bb5edc19a",
|
|
||||||
"examples/text-first/README.md": "4ec8250d5ed556f1d496e8c85137e973e802ecb11df1a36488411e8cdc5a9f9e",
|
|
||||||
"examples/release1/evidence/repair-check.md": "f4db17bdca4ecbb1bf0caef01b2da5f1f7f798ab3152b648ce6dd8696a6a68e5",
|
|
||||||
"examples/release1/oa/capabilities.arcadia": "fc8012e5554350b12e1cb80080f8feab80d933c9b33c0f2a7bb500cb7d609936",
|
|
||||||
"examples/release1/oa/model.arcadia": "f7cf914766ea73ec53b85e32d117ea9a9dba52d3e038246863541ae7069b1a15",
|
|
||||||
"examples/release1/oa/participants.arcadia": "951764c14179f27c10e315acf2ea37d1fff54c77b8441e23addd239e8c715ce3",
|
|
||||||
"examples/release1/oa/types.arcadia": "9d0396fb82dd5733edd8d1cf52f968ca84906927c704f9cf0944a7fae215cf49",
|
|
||||||
"examples/release1/sa/capabilities.arcadia": "b6912fb3ece439912345fa71724acd462e716a1e5a88203a1058a5c3b2c20a4f",
|
|
||||||
"examples/release1/sa/model.arcadia": "d431509251acb859fbb98733b6d18add952495e10a78703fbe8f31e40bc083c4",
|
|
||||||
"examples/release1/sa/participants.arcadia": "780d2eb08b217b67b55febb3d34846f727b8ee9018df6c5741748647e36b2ff8",
|
|
||||||
"examples/release1/sa/types.arcadia": "101fc0fbd99f1101514aa7b6da4f8e535aae0bb94c9e2b9e7e6c151135b28660",
|
|
||||||
"examples/release1/views/diagram_oa_allocation_view.arcadia": "dfc0eb61e0e2aa5bda45524571fbfa3494f44ce19696f3e15e07438074a07bc7",
|
|
||||||
"examples/release1/views/diagram_sa_allocation_view.arcadia": "b78b43a26a82efb8fbd5374b09c329fa341f57b29f635d397b9ef8aede71d389",
|
|
||||||
"examples/release1/views/diagram_sa_capability_view.arcadia": "75e8dc9fb30f25d6f8fd3c6b595593ab4f98958a25798f961e336e0fac557649",
|
|
||||||
"examples/release1/views/diagram_sa_service_view.arcadia": "b08c84f3ea633e7c78dfdad3272f75415f6256cf3614b6d99bfd4f0269076c9b",
|
|
||||||
"examples/release1/views/diagram_sa_state_view.arcadia": "5f42f4c605e57b817d8400ed21f2b14bfc4e1592aebe941ff113767504c2b869",
|
|
||||||
"examples/release1/oa/activities/activity_oa_restore_work.arcadia": "83e73d0a013d5c3e1a4af0d9139ab0cfa362d25a846671fc2dac59181061a9d4",
|
|
||||||
"examples/release1/oa/behavior/process_oa_assessment_procedure.arcadia": "172c32c044ef4b5bc58a1f4635cc81f48dabb4014479b47dce7b25fedf2dbd0d",
|
|
||||||
"examples/release1/oa/behavior/process_oa_field_procedure.arcadia": "d2552dc5383e2e91cb302a790364e197f663c2edc013a2ab1978789825c9c324",
|
|
||||||
"examples/release1/oa/behavior/process_oa_response.arcadia": "cf86f46fa5c5d70592ef43f1bc1cb4d968efd8add384ba88036bef6b88aa4abc",
|
|
||||||
"examples/release1/oa/behavior/scenario_oa_conversation.arcadia": "b25be524e98a35ebac5e4481b7609c027b32baf9605e8097f807560f94a77ca6",
|
|
||||||
"examples/release1/oa/behavior/scenario_oa_full_scenario.arcadia": "00a1edf2c9707a0eb62ac070c2d02467874f2c9c1f273cc6ddb53d6d65999a1c",
|
|
||||||
"examples/release1/oa/behavior/state_machine_oa_monitor.arcadia": "447c9ad1359f4a31ecf975ad07c0b08d8e7e03191fb0858e2fc56f377b223cd5",
|
|
||||||
"examples/release1/sa/behavior/process_sa_assessment_procedure.arcadia": "73928ced61c06cbc08728d7956676a50fd4c05aa5b7f1ff4f29ce27a0b0f2088",
|
|
||||||
"examples/release1/sa/behavior/process_sa_field_procedure.arcadia": "886d462af83110cbfa55dd232a667ea1446761234471357cbb878794e98e8768",
|
|
||||||
"examples/release1/sa/behavior/process_sa_response.arcadia": "041785fc22842423822431bd5e6e8d16094ebd0716965e7c765fb8c1d7549e8a",
|
|
||||||
"examples/release1/sa/behavior/scenario_sa_conversation.arcadia": "97276f5757ee9aa12a0dbd9d3ccd58174b3091162bb8bcce357cec20a45f5d85",
|
|
||||||
"examples/release1/sa/behavior/scenario_sa_full_scenario.arcadia": "e12fc406b99d60a2f7768aaa0b25ba560e8605f0b8e37f3a7cdd3b8443562b74",
|
|
||||||
"examples/release1/sa/behavior/state_machine_sa_monitor.arcadia": "05ce29af99424c491c47fe2450dc6f5f8ce995511c01ec7e17bb5855be3c9736",
|
|
||||||
"examples/release1/sa/functions/function_sa_audit_thresholds.arcadia": "e5a04325d52183956dca814dd90f4e56c96c6b7db0f4f202f203ecb49c3e0f4f",
|
|
||||||
"examples/release1/sa/functions/function_sa_restore_work.arcadia": "fddeb67308051325041fee641fe758ddf43345b7c47b66d433616ad07fdccdd6",
|
|
||||||
"examples/source-project/sa/assurance.arcadia": "ab76044836e4dcd42a82d316846ec87da2108939aa2037640c5bca1d2ecdee0f",
|
|
||||||
"examples/source-project/sa/participants.arcadia": "1abad579812e77877b45a3d8e3c3e9da734be2d04a0254cc730a5257ebd2dc88",
|
|
||||||
"examples/source-project/sa/reporting.arcadia": "f0b7443f728912ca163de39b6055876b533a77feaa3219b2d40a2dd65712e058",
|
|
||||||
"licenses/llvm-libunwind/llvm-ea7d852a70e8-libunwind-LICENSE.TXT": "b5efebcaca80879234098e52d1725e6d9eb8fb96a19fce625d39184b705f7b6d",
|
|
||||||
"licenses/rust/COPYING.RUNTIME": "28e85c5aa4af9b4f1dfe6b4817aa3eefb3eaaee7fd735045016f29ccf50276a1",
|
|
||||||
"licenses/rust/COPYING3": "8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903",
|
|
||||||
"licenses/rust/COPYRIGHT-library.html": "68129500b616d5838629e68f55ff3aed5e096dacf60ce9eb41bbe599a563afa6",
|
|
||||||
"licenses/rust/COPYRIGHT.html": "5b0c93fc4e6d4b072eaa521b1762d1e746f4c368f65e81a0e5308e2772dac85e",
|
|
||||||
"licenses/dependencies/arrayref-0.3.9/LICENSE": "1bc7e6f475b3ec99b7e2643411950ae2368c250dd4c5c325f80f9811362a94a1",
|
|
||||||
"licenses/dependencies/arrayvec-0.7.8/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/arrayvec-0.7.8/LICENSE-MIT": "4da95ec4ecb65b738d470b7d762894ad9c97da93e6cbfb18b570fc2c96f4b871",
|
|
||||||
"licenses/dependencies/ash-0.38.0+1.3.281/LICENSE-APACHE": "0e8a410375e1ee5c75c6198b08b534fec6e5edef766cf971bab4a404542636ab",
|
|
||||||
"licenses/dependencies/ash-0.38.0+1.3.281/LICENSE-MIT": "c733ccf8ab25df175a63d9d844677b98e3a5ab8f8de1c1616087e6868a7f948e",
|
|
||||||
"licenses/dependencies/atomic-waker-1.1.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/atomic-waker-1.1.2/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/atomic-waker-1.1.2/LICENSE-THIRD-PARTY": "6226d0632e2e1a80c23597e964da9812ae193c535fe058154afb034e94167aa5",
|
|
||||||
"licenses/dependencies/autocfg-1.5.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/autocfg-1.5.1/LICENSE-MIT": "27995d58ad5c1145c1a8cd86244ce844886958a35eb2b78c6b772748669999ac",
|
|
||||||
"licenses/dependencies/axum-0.8.9/LICENSE": "6a13bc24a100a6812f053879ec51b126b103af7cda6dbf48c4188722da44da9f",
|
|
||||||
"licenses/dependencies/axum-core-0.5.6/LICENSE": "008c87afcd2e626eaf564093250bed06dd7efb5732113264bba3dda8f1c556a1",
|
|
||||||
"licenses/dependencies/base64-0.22.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/base64-0.22.1/LICENSE-MIT": "0dd882e53de11566d50f8e8e2d5a651bcf3fabee4987d70f306233cf39094ba7",
|
|
||||||
"licenses/dependencies/bit-set-0.8.0/LICENSE-APACHE": "8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90",
|
|
||||||
"licenses/dependencies/bit-set-0.8.0/LICENSE-MIT": "f51ac2c59a222f7476ce507ca879960e2b64ea64bb2786eefdbeb7b0b538d1b7",
|
|
||||||
"licenses/dependencies/bit-vec-0.8.0/LICENSE-APACHE": "8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90",
|
|
||||||
"licenses/dependencies/bit-vec-0.8.0/LICENSE-MIT": "f51ac2c59a222f7476ce507ca879960e2b64ea64bb2786eefdbeb7b0b538d1b7",
|
|
||||||
"licenses/dependencies/bitflags-2.13.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/bitflags-2.13.1/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb",
|
|
||||||
"licenses/dependencies/bytemuck-1.25.2/LICENSE-APACHE": "e3ba223bb1423f0aad8c3dfce0fe3148db48926d41e6fbc3afbbf5ff9e1c89cb",
|
|
||||||
"licenses/dependencies/bytemuck-1.25.2/LICENSE-MIT": "9df9ba60a11af705f2e451b53762686e615d86f76b169cf075c3237730dbd7e2",
|
|
||||||
"licenses/dependencies/bytemuck-1.25.2/LICENSE-ZLIB": "84b34dd7608f7fb9b17bd588a6bf392bf7de504e2716f024a77d89f1b145a151",
|
|
||||||
"licenses/dependencies/bytemuck_derive-1.12.0/LICENSE-APACHE": "e3ba223bb1423f0aad8c3dfce0fe3148db48926d41e6fbc3afbbf5ff9e1c89cb",
|
|
||||||
"licenses/dependencies/bytemuck_derive-1.12.0/LICENSE-MIT": "9df9ba60a11af705f2e451b53762686e615d86f76b169cf075c3237730dbd7e2",
|
|
||||||
"licenses/dependencies/bytemuck_derive-1.12.0/LICENSE-ZLIB": "84b34dd7608f7fb9b17bd588a6bf392bf7de504e2716f024a77d89f1b145a151",
|
|
||||||
"licenses/dependencies/bytes-1.12.1/LICENSE": "45f522cacecb1023856e46df79ca625dfc550c94910078bd8aec6e02880b3d42",
|
|
||||||
"licenses/dependencies/cc-1.4.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/cc-1.4.5/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397",
|
|
||||||
"licenses/dependencies/cfg-if-1.0.4/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/cfg-if-1.0.4/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397",
|
|
||||||
"licenses/dependencies/cfg_aliases-0.2.2/LICENSE": "31b94860253d8ec7b4529f51901044d3b459d6292d996504a36b1bae3a36a812",
|
|
||||||
"licenses/dependencies/chacha20-0.10.2/LICENSE-APACHE": "a9040321c3712d8fd0b09cf52b17445de04a23a10165049ae187cd39e5c86be5",
|
|
||||||
"licenses/dependencies/chacha20-0.10.2/LICENSE-MIT": "b8c6939380a400f53e11923d50fcc4dd2fa1ba8339fd9d04cda38a0251b6c9b0",
|
|
||||||
"licenses/dependencies/codespan-reporting-0.12.0/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
|
|
||||||
"licenses/dependencies/core_maths-0.1.1/LICENSE": "9ebf8c4cc0b735ca13a766451f7b8097db3185975ceb2ba94b5abf439156a91f",
|
|
||||||
"licenses/dependencies/cosmic-text-0.15.0/LICENSE-APACHE": "000b4962e6b27176a0ff89cce4be555b16472cafb5671eb2804a8fdac6854793",
|
|
||||||
"licenses/dependencies/cosmic-text-0.15.0/LICENSE-MIT": "95557bafe728379e206f3b6d4aceeaa054d271c71d722411a6222e2dec01138c",
|
|
||||||
"licenses/dependencies/cpufeatures-0.3.1/LICENSE-APACHE": "a9040321c3712d8fd0b09cf52b17445de04a23a10165049ae187cd39e5c86be5",
|
|
||||||
"licenses/dependencies/cpufeatures-0.3.1/LICENSE-MIT": "73b9dc2e79c7308998dd30296e073aefaefb944a68fb89aa412c23c0edcabcaa",
|
|
||||||
"licenses/dependencies/cryoglyph-0.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/cryoglyph-0.1.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/cryoglyph-0.1.0/LICENSE-ZLIB": "b3ec01ad0869c5c50937bc68780cd0bb44e235ad858dfa54a7a381dced9b115a",
|
|
||||||
"licenses/dependencies/cursor-icon-1.2.0/LICENSE-APACHE": "b59affd015e517ed998dd735757f9a3693643cd389609947ed54074234a10784",
|
|
||||||
"licenses/dependencies/cursor-icon-1.2.0/LICENSE-MIT": "c138726a726ac37bae09d0f8a48e74e8e3aa8a8952fcd10fae0fb224cc1c05f1",
|
|
||||||
"licenses/dependencies/cursor-icon-1.2.0/LICENSE-ZLIB": "01e533bd94e8f1c32b2c2531e2c398de7d35d7804add3d574b4e1fe581d53537",
|
|
||||||
"licenses/dependencies/displaydoc-0.2.7/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/displaydoc-0.2.7/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/document-features-0.2.12/LICENSE-APACHE": "074e6e32c86a4c0ef8b3ed25b721ca23aca83df277cd88106ef7177c354615ff",
|
|
||||||
"licenses/dependencies/document-features-0.2.12/LICENSE-MIT": "aa893340d14b9844625be6a50ac644169a01b52f0211cbf81b09e1874c8cd81d",
|
|
||||||
"licenses/dependencies/dpi-0.1.2/LICENSE": "6dc0e068dcf3a5bc8e054205b85b7720e1d49265bbc64bf515d2cf79197df69a",
|
|
||||||
"licenses/dependencies/dpi-0.1.2/LICENSE-LIBM-MIT": "9eff396a99bafd208e7126602420d6864f6066c08b84485a5b032320a9c01997",
|
|
||||||
"licenses/dependencies/equivalent-1.0.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/equivalent-1.0.2/LICENSE-MIT": "7365cc8878a1d7ce155a58c4ca09c3d7a6be413efa5334a80ea842912b669349",
|
|
||||||
"licenses/dependencies/error-code-3.4.0/LICENSE": "c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566",
|
|
||||||
"licenses/dependencies/etagere-0.2.15/LICENSE-APACHE": "2d56a37f3d1e461f6b1539ab94e0e6bcc55443e376098aee85ac3b2890860290",
|
|
||||||
"licenses/dependencies/etagere-0.2.15/LICENSE-MIT": "9cfc9c9a4608501b5da3746948d2be2dd709ad51f6bcb0c1c685760ee3dde31f",
|
|
||||||
"licenses/dependencies/euclid-0.22.14/COPYRIGHT": "ec82b96487e9e778ee610c7ab245162464782cfa1f555c2299333f8dbe5c036a",
|
|
||||||
"licenses/dependencies/euclid-0.22.14/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/euclid-0.22.14/LICENSE-MIT": "62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3",
|
|
||||||
"licenses/dependencies/fastrand-2.5.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/fastrand-2.5.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/find-msvc-tools-0.1.12/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/find-msvc-tools-0.1.12/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397",
|
|
||||||
"licenses/dependencies/float_next_after-1.0.0/LICENSE": "0604d5817110dacc5c7d9b7de6b58b962794603d4823c357157bd5dec4198bc5",
|
|
||||||
"licenses/dependencies/foldhash-0.1.5/LICENSE": "b1181a40b2a7b25cf66fd01481713bc1005df082c53ef73e851e55071b102744",
|
|
||||||
"licenses/dependencies/foldhash-0.2.0/LICENSE": "b1181a40b2a7b25cf66fd01481713bc1005df082c53ef73e851e55071b102744",
|
|
||||||
"licenses/dependencies/font-types-0.10.1/LICENSE-APACHE": "a14f7d685a79c0f4fb64aee305527a6d5fa55f2401f4e6d688d7b1301868e6c0",
|
|
||||||
"licenses/dependencies/font-types-0.10.1/LICENSE-MIT": "8a62fa27ffdccc3df19dce90f8bb3d572e27aecffc1a383d0c2601834dcec434",
|
|
||||||
"licenses/dependencies/font-types-0.12.4/LICENSE-APACHE": "eba684204073ed715c4abb48129acdfd2bff8ae48339e6a7da3b341d3027b7f0",
|
|
||||||
"licenses/dependencies/font-types-0.12.4/LICENSE-MIT": "7b4c9a3946dfcea7967582760e963e27799e225dcf20565c8ef55324bb017427",
|
|
||||||
"licenses/dependencies/fontdb-0.23.0/LICENSE": "59a1fdac3bd550043599bd159fd70f09a1108c2b09e3751d39b11e1ff8e51f00",
|
|
||||||
"licenses/dependencies/form_urlencoded-1.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/form_urlencoded-1.2.2/LICENSE-MIT": "20c7855c364d57ea4c97889a5e8d98470a9952dade37bd9248b9a54431670e5e",
|
|
||||||
"licenses/dependencies/futures-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/futures-channel-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-channel-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/futures-core-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-core-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/futures-executor-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-executor-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/futures-io-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-io-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/futures-macro-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-macro-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/futures-sink-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-sink-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/futures-task-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-task-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/futures-util-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-util-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/getrandom-0.2.17/LICENSE-APACHE": "aaff376532ea30a0cd5330b9502ad4a4c8bf769c539c87ffe78819d188a18ebf",
|
|
||||||
"licenses/dependencies/getrandom-0.2.17/LICENSE-MIT": "42fa16951ce7f24b5a467a40e5b449a1d41e662f97ca779864f053f39e097737",
|
|
||||||
"licenses/dependencies/getrandom-0.4.3/LICENSE-APACHE": "aaff376532ea30a0cd5330b9502ad4a4c8bf769c539c87ffe78819d188a18ebf",
|
|
||||||
"licenses/dependencies/getrandom-0.4.3/LICENSE-MIT": "523a42c25d245dde9c015f882cec7f4555aad883382a6cf19b4b7d9b2cd5419b",
|
|
||||||
"licenses/dependencies/glam-0.25.0/LICENSE-APACHE": "be33ddb87a30fd321ab100e2d922cba512e50ec7a63d8e62e5bfc0798dd4b585",
|
|
||||||
"licenses/dependencies/glam-0.25.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/glow-0.16.0/LICENSE-APACHE": "b8601fc79bdf8d8088f0938bea861ffc63ed0eebbedf25f44ab2cf2e85bd7edc",
|
|
||||||
"licenses/dependencies/glow-0.16.0/LICENSE-MIT": "cdbd06e25b8c9c5d6019949d2de8123f56d29cee4166396423d2ba8c81700845",
|
|
||||||
"licenses/dependencies/glow-0.16.0/LICENSE-ZLIB": "636f644f1e149eb62961657c0e34953681eff64435653912e7bd19992666faa5",
|
|
||||||
"licenses/dependencies/glutin_wgl_sys-0.6.1/LICENSE": "a4445427440043e8ce6fadf7a43fb906cb0d7f6c573a560a9f142cf9f9bf8ff4",
|
|
||||||
"licenses/dependencies/gpu-allocator-0.27.0/LICENSE-APACHE": "0178e21322b0e88aa3aeb3146f6a9611bc1f8df6d98bdfb34be28b9dd56a8107",
|
|
||||||
"licenses/dependencies/gpu-allocator-0.27.0/LICENSE-MIT": "ad41be6cc6538b29b9346648f41432b5e460bad6be073b5eeaa41320ea2921dc",
|
|
||||||
"licenses/dependencies/guillotiere-0.6.2/LICENSE": "7e98bed7f100747aaae7d82ab94fbe6b76fd6b84b09a3aaa413bff8196d0fbb1",
|
|
||||||
"licenses/dependencies/half-2.7.1/LICENSE-APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/half-2.7.1/LICENSE-MIT": "508a77d2e7b51d98adeed32648ad124b7b30241a8e70b2e72c99f92d8e5874d1",
|
|
||||||
"licenses/dependencies/harfrust-0.3.2/LICENSE": "7d43d2ef1ce976c7bfb423c696ad9938ccfc31e9ec5be752265e43fe9d29f697",
|
|
||||||
"licenses/dependencies/hashbrown-0.15.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/hashbrown-0.15.5/LICENSE-MIT": "ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2",
|
|
||||||
"licenses/dependencies/hashbrown-0.16.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/hashbrown-0.16.1/LICENSE-MIT": "ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2",
|
|
||||||
"licenses/dependencies/hashbrown-0.17.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/hashbrown-0.17.1/LICENSE-MIT": "ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2",
|
|
||||||
"licenses/dependencies/http-1.5.0/LICENSE-APACHE": "8bb1b50b0e5c9399ae33bd35fab2769010fa6c14e8860c729a52295d84896b7a",
|
|
||||||
"licenses/dependencies/http-1.5.0/LICENSE-MIT": "dc91f8200e4b2a1f9261035d4c18c33c246911a6c0f7b543d75347e61b249cff",
|
|
||||||
"licenses/dependencies/http-body-1.1.0/LICENSE": "248378d0a3383c173fb925f17141b88e71580b3ba17ddc6ac3d2a344683232ab",
|
|
||||||
"licenses/dependencies/http-body-util-0.1.5/LICENSE": "248378d0a3383c173fb925f17141b88e71580b3ba17ddc6ac3d2a344683232ab",
|
|
||||||
"licenses/dependencies/httparse-1.10.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/httparse-1.10.1/LICENSE-MIT": "391a5396cec6230bfabd4ef4eb2350eb895bc5efce377a2218f5702ed020d3e3",
|
|
||||||
"licenses/dependencies/httpdate-1.0.3/LICENSE-APACHE": "4d10fe5f3aa176b05b229a248866bad70b834c173f1252a814ff4748d8a13837",
|
|
||||||
"licenses/dependencies/httpdate-1.0.3/LICENSE-MIT": "934887691e05d69d7c86ad3f2c360980fa30c15b035e351f3c9865e99da4debc",
|
|
||||||
"licenses/dependencies/hyper-1.11.1/LICENSE": "2d01890414494742ba4a509fcec8efa40f6d8be22cbd72be7cff08d6fda4ec89",
|
|
||||||
"licenses/dependencies/hyper-rustls-0.27.9/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/hyper-rustls-0.27.9/LICENSE-ISC": "7cfafc877eccc46c0e346ccbaa5c51bb6b894d2b818e617d970211e232785ad4",
|
|
||||||
"licenses/dependencies/hyper-rustls-0.27.9/LICENSE-MIT": "709e3175b4212f7b13aa93971c9f62ff8c69ec45ad8c6532a7e0c41d7a7d6f8c",
|
|
||||||
"licenses/dependencies/hyper-util-0.1.20/LICENSE": "9e0a97848ea543aef745c98e84fde696a9a3e0735538f6daefdd3cb1942effc1",
|
|
||||||
"licenses/dependencies/iced-0.14.0/LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/icu_collections-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/icu_locale_core-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/icu_normalizer-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/icu_normalizer_data-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/icu_properties-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/icu_properties_data-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/icu_provider-2.3.1/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/idna-1.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/idna-1.1.0/LICENSE-MIT": "b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5",
|
|
||||||
"licenses/dependencies/idna_adapter-1.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/idna_adapter-1.2.2/LICENSE-MIT": "8b43ce8accd61e9d370b5ca9e9c4f953279b5c239926c62315b40e24df51b726",
|
|
||||||
"licenses/dependencies/indexmap-2.14.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/indexmap-2.14.1/LICENSE-MIT": "ecc269ef87fd38a1d98e30bfac9ba964a9dbd9315c3770fed98d4d7cb5882055",
|
|
||||||
"licenses/dependencies/ipnet-2.12.1/LICENSE-APACHE": "87d9feb9238c6bd8e0024fc4733b06cff036f89f36d93b7df1c8a0549bbb7a5b",
|
|
||||||
"licenses/dependencies/ipnet-2.12.1/LICENSE-MIT": "47dc9ff29128ddfb4d6a0435383c9f89120bc374dbcc1dd00b933a0b28aa7865",
|
|
||||||
"licenses/dependencies/itoa-1.0.18/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/itoa-1.0.18/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/jobserver-0.1.35/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/jobserver-0.1.35/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397",
|
|
||||||
"licenses/dependencies/khronos-egl-6.0.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/khronos-egl-6.0.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/kurbo-0.10.4/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/kurbo-0.10.4/LICENSE-MIT": "23c23145f6eac25c28cdcc03d38506a5712a9a8cffb5bd5301457f6173ea696e",
|
|
||||||
"licenses/dependencies/libc-0.2.189/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/libc-0.2.189/LICENSE-MIT": "123a331b5dbf04c30097fa43b8f858bc85df671fe776de498d01f3d6b7c1f69e",
|
|
||||||
"licenses/dependencies/libloading-0.8.9/LICENSE": "b29f8b01452350c20dd1af16ef83b598fea3053578ccc1c7a0ef40e57be2620f",
|
|
||||||
"licenses/dependencies/libm-0.2.16/LICENSE.txt": "3823dda7cf046602f4b4e77ec8e227863dc4736037cc85bb33d9f19febe16bb7",
|
|
||||||
"licenses/dependencies/lilt-0.8.2/LICENSE": "120b2f21f9b9f98ef4159de09f9a55a3afb6733dd1c0b1d9eeec7f136465b2cd",
|
|
||||||
"licenses/dependencies/linebender_resource_handle-0.1.1/LICENSE-APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/linebender_resource_handle-0.1.1/LICENSE-MIT": "508a77d2e7b51d98adeed32648ad124b7b30241a8e70b2e72c99f92d8e5874d1",
|
|
||||||
"licenses/dependencies/litemap-0.8.3/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/litrs-1.0.0/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/litrs-1.0.0/LICENSE-MIT": "7dc1552e88f49132cb358b1b962fc5e79fa42d70bcbb88c526d33e45b8e98036",
|
|
||||||
"licenses/dependencies/lock_api-0.4.14/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/lock_api-0.4.14/LICENSE-MIT": "c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5",
|
|
||||||
"licenses/dependencies/log-0.4.34/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/log-0.4.34/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb",
|
|
||||||
"licenses/dependencies/lru-0.16.4/LICENSE": "061dc50af2cd9340703daf61978af3200cf681b12ea67a323c33ba109a23a45e",
|
|
||||||
"licenses/dependencies/lru-slab-0.1.2/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/lru-slab-0.1.2/LICENSE-MIT": "1466d9b4f3a59bb8997fc8d5fa977ce3f6a24bb2358793c09bfdf007039f6486",
|
|
||||||
"licenses/dependencies/lru-slab-0.1.2/LICENSE-ZLIB": "09785877275ffada6c371b652a30e95c26b435126fc0fc62f1bc2d72171f80a4",
|
|
||||||
"licenses/dependencies/matchit-0.8.4/LICENSE": "de701d0618d694feb1af90f02181a1763d9b0bdeb70a3a592781e529077dba65",
|
|
||||||
"licenses/dependencies/matchit-0.8.4/LICENSE.httprouter": "162ce11ad71338d0a0c6ebaf5c48af72c6ae237b468859d3656fe2d9ed3f3a85",
|
|
||||||
"licenses/dependencies/memchr-2.8.3/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f",
|
|
||||||
"licenses/dependencies/memchr-2.8.3/LICENSE-MIT": "0f96a83840e146e43c0ec96a22ec1f392e0680e6c1226e6f3ba87e0740af850f",
|
|
||||||
"licenses/dependencies/memchr-2.8.3/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c",
|
|
||||||
"licenses/dependencies/memmap2-0.9.11/LICENSE-APACHE": "04ea4849dba9dcae07113850c6f1b1a69052c625210639914eee352023f750ad",
|
|
||||||
"licenses/dependencies/memmap2-0.9.11/LICENSE-MIT": "0d25d03b5ab49576178ad0cae7a2648d12c17ad0452fe49c07e55e4b59aa5257",
|
|
||||||
"licenses/dependencies/mime-0.3.17/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/mime-0.3.17/LICENSE-MIT": "df9cfd06d8a44d9a671eadd39ffd97f166481da015a30f45dfd27886209c5922",
|
|
||||||
"licenses/dependencies/mio-1.2.3/LICENSE": "07919255c7e04793d8ea760d6c2ce32d19f9ff02bdbdde3ce90b1e1880929a9b",
|
|
||||||
"licenses/dependencies/naga-27.0.3/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/naga-27.0.3/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21",
|
|
||||||
"licenses/dependencies/num-traits-0.2.19/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/num-traits-0.2.19/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb",
|
|
||||||
"licenses/dependencies/oa-core-0.2.0/workspace-LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365",
|
|
||||||
"licenses/dependencies/oa-desktop-0.2.0/workspace-LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365",
|
|
||||||
"licenses/dependencies/oa-server-0.2.0/workspace-LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365",
|
|
||||||
"licenses/dependencies/once_cell-1.21.4/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/once_cell-1.21.4/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/ordered-float-5.5.0/LICENSE-MIT": "f7715d38a3fa1b4ac97c5729740752505a39cb92ee83ab5b102aeb5eaa7cdea4",
|
|
||||||
"licenses/dependencies/parking_lot-0.12.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/parking_lot-0.12.5/LICENSE-MIT": "c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5",
|
|
||||||
"licenses/dependencies/parking_lot_core-0.9.12/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/parking_lot_core-0.9.12/LICENSE-MIT": "c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5",
|
|
||||||
"licenses/dependencies/percent-encoding-2.3.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/percent-encoding-2.3.2/LICENSE-MIT": "b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5",
|
|
||||||
"licenses/dependencies/pin-project-lite-0.2.17/LICENSE-APACHE": "0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594",
|
|
||||||
"licenses/dependencies/pin-project-lite-0.2.17/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/pkg-config-0.3.34/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/pkg-config-0.3.34/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397",
|
|
||||||
"licenses/dependencies/potential_utf-0.1.6/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/presser-0.3.1/LICENSE-APACHE": "8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90",
|
|
||||||
"licenses/dependencies/presser-0.3.1/LICENSE-MIT": "090a294a492ab2f41388252312a65cf2f0e423330b721a68c6665ac64766753b",
|
|
||||||
"licenses/dependencies/proc-macro2-1.0.107/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/proc-macro2-1.0.107/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/quinn-0.11.11/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
|
|
||||||
"licenses/dependencies/quinn-0.11.11/LICENSE-MIT": "4b2d0aca6789fa39e03d6738e869ea0988cceba210ca34ebb59c15c463e93a04",
|
|
||||||
"licenses/dependencies/quinn-proto-0.11.17/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
|
|
||||||
"licenses/dependencies/quinn-proto-0.11.17/LICENSE-MIT": "4b2d0aca6789fa39e03d6738e869ea0988cceba210ca34ebb59c15c463e93a04",
|
|
||||||
"licenses/dependencies/quinn-udp-0.5.15/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
|
|
||||||
"licenses/dependencies/quinn-udp-0.5.15/LICENSE-MIT": "4b2d0aca6789fa39e03d6738e869ea0988cceba210ca34ebb59c15c463e93a04",
|
|
||||||
"licenses/dependencies/quote-1.0.47/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/quote-1.0.47/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/rand-0.10.2/COPYRIGHT": "90eb64f0279b0d9432accfa6023ff803bc4965212383697eee27a0f426d5f8d5",
|
|
||||||
"licenses/dependencies/rand-0.10.2/LICENSE-APACHE": "35242e7a83f69875e6edeff02291e688c97caafe2f8902e4e19b49d3e78b4cab",
|
|
||||||
"licenses/dependencies/rand-0.10.2/LICENSE-MIT": "209fbbe0ad52d9235e37badf9cadfe4dbdc87203179c0899e738b39ade42177b",
|
|
||||||
"licenses/dependencies/rand_core-0.10.1/COPYRIGHT": "92b81db30f7ab6d693e0af5661a40d273ca1947e891123ed823924192c10cbc7",
|
|
||||||
"licenses/dependencies/rand_core-0.10.1/LICENSE-APACHE": "6df43f6f4b5d4587f3d8d71e45532c688fd168afa5fe89d571cb32fa09c4ef51",
|
|
||||||
"licenses/dependencies/rand_core-0.10.1/LICENSE-MIT": "8b6e9feec03e7c9a5facb26855cecd31662bf989b636bcfe79521bdf8ac863f0",
|
|
||||||
"licenses/dependencies/rand_pcg-0.10.2/COPYRIGHT": "90eb64f0279b0d9432accfa6023ff803bc4965212383697eee27a0f426d5f8d5",
|
|
||||||
"licenses/dependencies/rand_pcg-0.10.2/LICENSE-APACHE": "6df43f6f4b5d4587f3d8d71e45532c688fd168afa5fe89d571cb32fa09c4ef51",
|
|
||||||
"licenses/dependencies/rand_pcg-0.10.2/LICENSE-MIT": "2234e3cefee876aeb686ad89e978bdb07bf118a1186ab1cf161bcdf69d4b4f57",
|
|
||||||
"licenses/dependencies/range-alloc-0.1.5/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/range-alloc-0.1.5/LICENSE.MIT": "ba00052102ed87948bb8822d6e1c496260c83042887b22bb5caad922ec025a60",
|
|
||||||
"licenses/dependencies/rangemap-1.8.0/LICENSE-APACHE": "1c7745cc26c7294bc9dbc883bcd50700b99a8c0f4859bfce84ec555098ce1ab5",
|
|
||||||
"licenses/dependencies/rangemap-1.8.0/LICENSE-MIT": "29a4c3823ee29ee5a97c145574a1bac20629fd5e6708be1df0d25bab563e093c",
|
|
||||||
"licenses/dependencies/raw-window-handle-0.6.2/LICENSE-APACHE.md": "0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594",
|
|
||||||
"licenses/dependencies/raw-window-handle-0.6.2/LICENSE-MIT.md": "9c5a80639a57c1c945570e7ebbca0706305849ce3c098021325cca9db2f7acc4",
|
|
||||||
"licenses/dependencies/raw-window-handle-0.6.2/LICENSE-ZLIB.md": "ae895c8576e682f310fb70d93d9f99b1dd82872094c54a8f6cdfe2ca5c2d6ecb",
|
|
||||||
"licenses/dependencies/read-fonts-0.35.0/LICENSE-APACHE": "a14f7d685a79c0f4fb64aee305527a6d5fa55f2401f4e6d688d7b1301868e6c0",
|
|
||||||
"licenses/dependencies/read-fonts-0.35.0/LICENSE-MIT": "8a62fa27ffdccc3df19dce90f8bb3d572e27aecffc1a383d0c2601834dcec434",
|
|
||||||
"licenses/dependencies/read-fonts-0.41.0/LICENSE-APACHE": "eba684204073ed715c4abb48129acdfd2bff8ae48339e6a7da3b341d3027b7f0",
|
|
||||||
"licenses/dependencies/read-fonts-0.41.0/LICENSE-MIT": "7b4c9a3946dfcea7967582760e963e27799e225dcf20565c8ef55324bb017427",
|
|
||||||
"licenses/dependencies/renderdoc-sys-1.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/renderdoc-sys-1.1.0/LICENSE-MIT": "24b2f2eff5a7622e87162823e260f00c6dfbce0e26d585d3d28c785f1edc80ed",
|
|
||||||
"licenses/dependencies/reqwest-0.12.28/LICENSE-APACHE": "751963a8b88c0e3a9f27e98933079fbcf09b9998b2c13ac49c2e4d58444520d6",
|
|
||||||
"licenses/dependencies/reqwest-0.12.28/LICENSE-MIT": "47d4e1803702728e03d30f8a848ae2249ba274bbd9f8443e803f7924d83cd371",
|
|
||||||
"licenses/dependencies/rfd-0.15.4/LICENSE": "65fc947f4bac882a2cd104ef73c246b1b037059df9f2b3a58b7f77f0b9e56071",
|
|
||||||
"licenses/dependencies/ring-0.17.14/LICENSE": "b3d734001a94efff3579978d953391aa7115f877657d25eb54037a43875d078a",
|
|
||||||
"licenses/dependencies/ring-0.17.14/LICENSE-BoringSSL": "005fc765ddc5115da796cca915baa9557abae13ff35e0a47c47affc56f6c414d",
|
|
||||||
"licenses/dependencies/ring-0.17.14/LICENSE-other-bits": "f025ccfb7dfb6bdfedc75ca0f67acc69e6fb4998143d834f7c2f38a29989680f",
|
|
||||||
"licenses/dependencies/rustc-hash-1.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/rustc-hash-1.1.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/rustc-hash-2.1.3/LICENSE-APACHE": "95bd3988beee069fa2848f648dab43cc6e0b2add2ad6bcb17360caf749802bcc",
|
|
||||||
"licenses/dependencies/rustc-hash-2.1.3/LICENSE-MIT": "30fefc3a7d6a0041541858293bcbea2dde4caa4c0a5802f996a7f7e8c0085652",
|
|
||||||
"licenses/dependencies/rustls-0.23.43/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/rustls-0.23.43/LICENSE-ISC": "7cfafc877eccc46c0e346ccbaa5c51bb6b894d2b818e617d970211e232785ad4",
|
|
||||||
"licenses/dependencies/rustls-0.23.43/LICENSE-MIT": "709e3175b4212f7b13aa93971c9f62ff8c69ec45ad8c6532a7e0c41d7a7d6f8c",
|
|
||||||
"licenses/dependencies/rustls-pki-types-1.15.1/LICENSE-APACHE": "45fd05c4865e7c350b98ad7ac50e1b15462d49af4a91e9b0c9dd933dc9a69742",
|
|
||||||
"licenses/dependencies/rustls-pki-types-1.15.1/LICENSE-MIT": "9117d922e667125508dde62b02c1f57ed22f5ad21eb536aa2e2d99e1c796e639",
|
|
||||||
"licenses/dependencies/rustls-webpki-0.103.15/LICENSE": "5b698ca13897be3afdb7174256fa1574f8c6892b8bea1a66dd6469d3fe27885a",
|
|
||||||
"licenses/dependencies/ryu-1.0.23/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/ryu-1.0.23/LICENSE-BOOST": "c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566",
|
|
||||||
"licenses/dependencies/same-file-1.0.6/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f",
|
|
||||||
"licenses/dependencies/same-file-1.0.6/LICENSE-MIT": "cb3c929a05e6cbc9de9ab06a4c57eeb60ca8c724bef6c138c87d3a577e27aa14",
|
|
||||||
"licenses/dependencies/same-file-1.0.6/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c",
|
|
||||||
"licenses/dependencies/scopeguard-1.2.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/scopeguard-1.2.0/LICENSE-MIT": "fb77f0a9c53e473abe5103c8632ef9f0f2874d4fb3f17cb2d8c661aab9cee9d7",
|
|
||||||
"licenses/dependencies/self_cell-1.3.0/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
|
|
||||||
"licenses/dependencies/self_cell-1.3.0/LICENSE-GPLv2": "f9c375a1be4a41f7b70301dd83c91cb89e41567478859b77eef375a52d782505",
|
|
||||||
"licenses/dependencies/serde-1.0.229/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/serde-1.0.229/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/serde_core-1.0.229/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/serde_core-1.0.229/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/serde_derive-1.0.229/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/serde_derive-1.0.229/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/serde_json-1.0.151/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/serde_json-1.0.151/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/serde_path_to_error-0.1.20/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/serde_path_to_error-0.1.20/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/serde_urlencoded-0.7.1/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/serde_urlencoded-0.7.1/LICENSE-MIT": "b9eb266294324f672cbe945fe8f2e32f85024f0d61a1a7d14382cdde0ac44769",
|
|
||||||
"licenses/dependencies/sha1_smol-1.0.1/LICENSE": "282a21b0710441c364025461a447362daf18f5798a7b72ae2f801a2aa536da51",
|
|
||||||
"licenses/dependencies/shlex-2.0.1/LICENSE-APACHE": "553fffcd9b1cb158bc3e9edc35da85ca5c3b3d7d2e61c883ebcfa8a65814b583",
|
|
||||||
"licenses/dependencies/shlex-2.0.1/LICENSE-MIT": "4455bf75a91154108304cb283e0fea9948c14f13e20d60887cf2552449dea3b1",
|
|
||||||
"licenses/dependencies/skrifa-0.37.0/LICENSE-APACHE": "a14f7d685a79c0f4fb64aee305527a6d5fa55f2401f4e6d688d7b1301868e6c0",
|
|
||||||
"licenses/dependencies/skrifa-0.37.0/LICENSE-MIT": "8a62fa27ffdccc3df19dce90f8bb3d572e27aecffc1a383d0c2601834dcec434",
|
|
||||||
"licenses/dependencies/skrifa-0.44.0/LICENSE-APACHE": "eba684204073ed715c4abb48129acdfd2bff8ae48339e6a7da3b341d3027b7f0",
|
|
||||||
"licenses/dependencies/skrifa-0.44.0/LICENSE-MIT": "7b4c9a3946dfcea7967582760e963e27799e225dcf20565c8ef55324bb017427",
|
|
||||||
"licenses/dependencies/slab-0.4.12/LICENSE": "8ce0830173fdac609dfb4ea603fdc002c2f4af0dc9b1a005653f5da9cf534b18",
|
|
||||||
"licenses/dependencies/slotmap-1.1.1/LICENSE": "6cec81441b2ab2b5090954c1fb5d0bcca81b86487b5849061fa8952d20ef67d4",
|
|
||||||
"licenses/dependencies/smallvec-1.16.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/smallvec-1.16.0/LICENSE-MIT": "0b28172679e0009b655da42797c03fd163a3379d5cfa67ba1f1655e974a2a1a9",
|
|
||||||
"licenses/dependencies/smol_str-0.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/smol_str-0.2.2/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/socket2-0.6.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/socket2-0.6.5/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397",
|
|
||||||
"licenses/dependencies/softbuffer-0.4.8/LICENSE-APACHE": "a4445427440043e8ce6fadf7a43fb906cb0d7f6c573a560a9f142cf9f9bf8ff4",
|
|
||||||
"licenses/dependencies/softbuffer-0.4.8/LICENSE-MIT": "0463bfa47d6d763d8c824333efb0e6d6df3946c13c3b077c78ed9f23ca50d0f2",
|
|
||||||
"licenses/dependencies/stable_deref_trait-1.2.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/stable_deref_trait-1.2.1/LICENSE-MIT": "5e05b024f653a5ce199e77cbbbd42fb5553562ec714b819421ed0c3e552a75d7",
|
|
||||||
"licenses/dependencies/static_assertions-1.1.0/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/static_assertions-1.1.0/LICENSE-MIT": "ea084a2373ebc1f0902c09266e7bf25a05ab3814c1805bb017ffa7308f90c061",
|
|
||||||
"licenses/dependencies/strict-num-0.1.1/LICENSE": "3085885678bb161f6c472bbd331f66a2550b555eb76128f7f8247779128199c0",
|
|
||||||
"licenses/dependencies/subtle-2.6.1/LICENSE": "d1fc1bc0d155df60b2e7705b6b2ae02a05c96f948e1cec6e2fb86360b09f346b",
|
|
||||||
"licenses/dependencies/swash-0.2.10/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/swash-0.2.10/LICENSE-MIT": "122dadfc2eb4de0f4bafcd9eb4e7502cfe338a7965ebd1d18708cc5050f43f76",
|
|
||||||
"licenses/dependencies/syn-2.0.119/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/syn-2.0.119/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/syn-3.0.5/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/syn-3.0.5/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/sync_wrapper-1.0.2/LICENSE": "0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594",
|
|
||||||
"licenses/dependencies/synstructure-0.13.2/LICENSE": "219920e865eee70b7dcfc948a86b099e7f4fe2de01bcca2ca9a20c0a033f2b59",
|
|
||||||
"licenses/dependencies/sys-locale-0.3.2/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
|
|
||||||
"licenses/dependencies/sys-locale-0.3.2/LICENSE-MIT": "5cc390ab5e5e6507f467368cbab1297552d64bfd863f4b496c7928508bcfefd8",
|
|
||||||
"licenses/dependencies/tempfile-3.27.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/tempfile-3.27.0/LICENSE-MIT": "8b427f5bc501764575e52ba4f9d95673cf8f6d80a86d0d06599852e1a9a20a36",
|
|
||||||
"licenses/dependencies/termcolor-1.4.1/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f",
|
|
||||||
"licenses/dependencies/termcolor-1.4.1/LICENSE-MIT": "0f96a83840e146e43c0ec96a22ec1f392e0680e6c1226e6f3ba87e0740af850f",
|
|
||||||
"licenses/dependencies/termcolor-1.4.1/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c",
|
|
||||||
"licenses/dependencies/thiserror-1.0.69/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/thiserror-1.0.69/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/thiserror-2.0.20/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/thiserror-2.0.20/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/thiserror-impl-1.0.69/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/thiserror-impl-1.0.69/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/thiserror-impl-2.0.20/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/thiserror-impl-2.0.20/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/tiny-skia-0.11.4/LICENSE": "6d41e05f1d54fe726997cb0334ec539f1dff50600b1d5d90462ec2b392770ced",
|
|
||||||
"licenses/dependencies/tiny-skia-path-0.11.4/LICENSE": "6d41e05f1d54fe726997cb0334ec539f1dff50600b1d5d90462ec2b392770ced",
|
|
||||||
"licenses/dependencies/tinystr-0.8.4/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/tinyvec-1.13.2/LICENSE-APACHE.md": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/tinyvec-1.13.2/LICENSE-MIT.md": "fd80a26fbb3f644af1fa994134446702932968519797227e07a1368dea80f0bc",
|
|
||||||
"licenses/dependencies/tinyvec-1.13.2/LICENSE-ZLIB.md": "84b34dd7608f7fb9b17bd588a6bf392bf7de504e2716f024a77d89f1b145a151",
|
|
||||||
"licenses/dependencies/tinyvec_macros-0.1.1/LICENSE-APACHE.md": "4f44572785f35152c1fd2eadf565b7e079c0f300b4324f0af653419f9d76b735",
|
|
||||||
"licenses/dependencies/tinyvec_macros-0.1.1/LICENSE-MIT.md": "1dd8eca0f83669e75fa119e34fb9e1be9d16e3e9b6368962b8019db6e8ae5f7b",
|
|
||||||
"licenses/dependencies/tinyvec_macros-0.1.1/LICENSE-ZLIB.md": "41ace205715d9f19a3214218cc1c01d57c533e02cd0fef7c8e51a49a7fce5ac5",
|
|
||||||
"licenses/dependencies/tokio-1.53.1/LICENSE": "253cd04c6714889df2d32f3f64d669179a1c95c76ac43c40882c52eb06bc3552",
|
|
||||||
"licenses/dependencies/tokio-macros-2.7.2/LICENSE": "0b83dc40cba89b9922bb84b0a9c7d2768ce37c1d7e138b7424fd4549915778c9",
|
|
||||||
"licenses/dependencies/tokio-rustls-0.26.5/LICENSE-APACHE": "cc117d90b498b32b11a886f279b359da16a73c3b01efbb2f5cc004b20262334e",
|
|
||||||
"licenses/dependencies/tokio-rustls-0.26.5/LICENSE-MIT": "e20fa2b8e0a2565f24a792b94b4bf4b6c2b9d36f781d8a9516e218a036e6677a",
|
|
||||||
"licenses/dependencies/tower-0.5.3/LICENSE": "4249c8e6c5ebb85f97c77e6457c6fafc1066406eb8f1ef61e796fbdc5ff18482",
|
|
||||||
"licenses/dependencies/tower-http-0.6.11/LICENSE": "5049cf464977eff4b4fcfa7988d84e74116956a3eb9d5f1d451b3f828f945233",
|
|
||||||
"licenses/dependencies/tower-layer-0.3.3/LICENSE": "4249c8e6c5ebb85f97c77e6457c6fafc1066406eb8f1ef61e796fbdc5ff18482",
|
|
||||||
"licenses/dependencies/tower-service-0.3.3/LICENSE": "4249c8e6c5ebb85f97c77e6457c6fafc1066406eb8f1ef61e796fbdc5ff18482",
|
|
||||||
"licenses/dependencies/tracing-0.1.44/LICENSE": "898b1ae9821e98daf8964c8d6c7f61641f5f5aa78ad500020771c0939ee0dea1",
|
|
||||||
"licenses/dependencies/tracing-attributes-0.1.31/LICENSE": "898b1ae9821e98daf8964c8d6c7f61641f5f5aa78ad500020771c0939ee0dea1",
|
|
||||||
"licenses/dependencies/tracing-core-0.1.36/LICENSE": "898b1ae9821e98daf8964c8d6c7f61641f5f5aa78ad500020771c0939ee0dea1",
|
|
||||||
"licenses/dependencies/try-lock-0.2.5/LICENSE": "c816a0749cdc6bf062a5111c159723de51b2bfac66a1dac2655abd9e6b1583eb",
|
|
||||||
"licenses/dependencies/ttf-parser-0.25.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/ttf-parser-0.25.1/LICENSE-MIT": "f3c9fe731c701ed77fd5fbaac573872af04dc5869385eb9bd5e3c73c42713814",
|
|
||||||
"licenses/dependencies/unicode-bidi-0.3.18/COPYRIGHT": "edb20b474f6cbd4f4db066b54a9e0f687d0009d309412a63431189b59b8e2a07",
|
|
||||||
"licenses/dependencies/unicode-bidi-0.3.18/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/unicode-bidi-0.3.18/LICENSE-MIT": "7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0",
|
|
||||||
"licenses/dependencies/unicode-ident-1.0.24/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/unicode-ident-1.0.24/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/unicode-ident-1.0.24/LICENSE-UNICODE": "f7db81051789b729fea528a63ec4c938fdcb93d9d61d97dc8cc2e9df6d47f2a1",
|
|
||||||
"licenses/dependencies/unicode-linebreak-0.1.5/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
|
|
||||||
"licenses/dependencies/unicode-script-0.5.8/LICENSE-APACHE": "7cbb56d1b5d83d735056b363ab20958524120afafc4ad8206e6be98cdec5d737",
|
|
||||||
"licenses/dependencies/unicode-script-0.5.8/LICENSE-MIT": "7ad3ea8ca3caf894db98c3f31d5d4949173ffa93c883ef19a9e529ad48960f8c",
|
|
||||||
"licenses/dependencies/unicode-segmentation-1.13.3/COPYRIGHT": "23860c2a7b5d96b21569afedf033469bab9fe14a1b24a35068b8641c578ce24d",
|
|
||||||
"licenses/dependencies/unicode-segmentation-1.13.3/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/unicode-segmentation-1.13.3/LICENSE-MIT": "7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0",
|
|
||||||
"licenses/dependencies/unicode-width-0.2.2/COPYRIGHT": "23860c2a7b5d96b21569afedf033469bab9fe14a1b24a35068b8641c578ce24d",
|
|
||||||
"licenses/dependencies/unicode-width-0.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/unicode-width-0.2.2/LICENSE-MIT": "7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0",
|
|
||||||
"licenses/dependencies/untrusted-0.9.0/LICENSE.txt": "7abd9b6960dcf7d4d0a48606a5b71bfe37d472db68d70637f3a58a56785f1621",
|
|
||||||
"licenses/dependencies/url-2.5.8/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/url-2.5.8/LICENSE-MIT": "b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5",
|
|
||||||
"licenses/dependencies/utf8_iter-1.0.4/COPYRIGHT": "c30152c94a6d75e021adbc52b3a52470366a46edb917e17deae3259251af244c",
|
|
||||||
"licenses/dependencies/utf8_iter-1.0.4/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/utf8_iter-1.0.4/LICENSE-MIT": "3fa4ca83dcc9237839b1bdeb2e6d16bdfb5ec0c5ce42b24694d8bbf0dcbef72c",
|
|
||||||
"licenses/dependencies/uuid-1.26.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/uuid-1.26.0/LICENSE-MIT": "436bc5a105d8e57dcd8778730f3754f7bf39c14d2f530e4cde4bd2d17a83ec3d",
|
|
||||||
"licenses/dependencies/version_check-0.9.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/version_check-0.9.5/LICENSE-MIT": "b7e650f3fce5c53249d1cdc608b54df156a97edd636cf9d23498d0cfe7aec63e",
|
|
||||||
"licenses/dependencies/want-0.3.1/LICENSE": "a65f5d0a945d267751344c95665945b90c030ea107faf5c85d518929886187da",
|
|
||||||
"licenses/dependencies/web-time-1.1.0/LICENSE-APACHE": "54a744942eb3fa63a74d8d359989ed6962c04f3f10ff20cfa08ff8aa7efbe4e6",
|
|
||||||
"licenses/dependencies/web-time-1.1.0/LICENSE-MIT": "f428305bbf2e70fbd807af0f3c7ac1b7acfb95311640f451e9d2e48db6d7e96b",
|
|
||||||
"licenses/dependencies/webpki-roots-1.0.9/LICENSE": "e271993808fec50ab29350b39539cdec611a9103f827e0aa26d61da70e2d33f8",
|
|
||||||
"licenses/dependencies/wgpu-27.0.1/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/wgpu-27.0.1/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21",
|
|
||||||
"licenses/dependencies/wgpu-core-27.0.3/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/wgpu-core-27.0.3/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21",
|
|
||||||
"licenses/dependencies/wgpu-core-deps-windows-linux-android-27.0.0/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/wgpu-core-deps-windows-linux-android-27.0.0/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21",
|
|
||||||
"licenses/dependencies/wgpu-hal-27.0.4/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/wgpu-hal-27.0.4/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21",
|
|
||||||
"licenses/dependencies/wgpu-types-27.0.1/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/wgpu-types-27.0.1/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21",
|
|
||||||
"licenses/dependencies/winapi-util-0.1.11/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f",
|
|
||||||
"licenses/dependencies/winapi-util-0.1.11/LICENSE-MIT": "cb3c929a05e6cbc9de9ab06a4c57eeb60ca8c724bef6c138c87d3a577e27aa14",
|
|
||||||
"licenses/dependencies/winapi-util-0.1.11/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c",
|
|
||||||
"licenses/dependencies/windows-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-core-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-core-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-implement-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-implement-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-interface-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-interface-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-link-0.2.1/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-link-0.2.1/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-result-0.2.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-result-0.2.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-strings-0.1.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-strings-0.1.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-sys-0.52.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-sys-0.52.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-sys-0.59.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-sys-0.59.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-sys-0.61.2/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-sys-0.61.2/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-targets-0.52.6/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-targets-0.52.6/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows_x86_64_gnullvm-0.52.6/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows_x86_64_gnullvm-0.52.6/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/window_clipboard-0.5.1/LICENSE": "7faec985f3e9b1c4a1df646bfedc304ba67e409447f7ab7f4f591f68708d85dc",
|
|
||||||
"licenses/dependencies/winit-0.30.13/LICENSE": "6dc0e068dcf3a5bc8e054205b85b7720e1d49265bbc64bf515d2cf79197df69a",
|
|
||||||
"licenses/dependencies/writeable-0.6.4/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/xml-rs-0.8.29/LICENSE": "0dc18d924dc0a5f41172a393012843a5eaaef338e795b3645da9cc3b6068220b",
|
|
||||||
"licenses/dependencies/yazi-0.2.1/LICENSE-APACHE": "7cfd738c53d61c79f07e348f622bf7707c9084237054d37fbe07788a75f5881c",
|
|
||||||
"licenses/dependencies/yazi-0.2.1/LICENSE-MIT": "df62e3ef3f207c91073fedd78b4156a278681d0dd3f942379242c62c6a71a3ec",
|
|
||||||
"licenses/dependencies/yoke-0.8.3/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/yoke-derive-0.8.2/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/zeno-0.3.3/LICENSE-APACHE": "7cfd738c53d61c79f07e348f622bf7707c9084237054d37fbe07788a75f5881c",
|
|
||||||
"licenses/dependencies/zeno-0.3.3/LICENSE-MIT": "34dff8202d63e6df022f4f0ce88dab24f254c35ee0d5958b74dcf74d9eae21cc",
|
|
||||||
"licenses/dependencies/zerocopy-0.8.56/LICENSE-APACHE": "9d185ac6703c4b0453974c0d85e9eee43e6941009296bb1f5eb0b54e2329e9f3",
|
|
||||||
"licenses/dependencies/zerocopy-0.8.56/LICENSE-BSD": "83c1763356e822adde0a2cae748d938a73fdc263849ccff6b27776dff213bd32",
|
|
||||||
"licenses/dependencies/zerocopy-0.8.56/LICENSE-MIT": "1a2f5c12ddc934d58956aa5dbdd3255fe55fd957633ab7d0d39e4f0daa73f7df",
|
|
||||||
"licenses/dependencies/zerocopy-derive-0.8.56/LICENSE-APACHE": "9d185ac6703c4b0453974c0d85e9eee43e6941009296bb1f5eb0b54e2329e9f3",
|
|
||||||
"licenses/dependencies/zerocopy-derive-0.8.56/LICENSE-BSD": "83c1763356e822adde0a2cae748d938a73fdc263849ccff6b27776dff213bd32",
|
|
||||||
"licenses/dependencies/zerocopy-derive-0.8.56/LICENSE-MIT": "1a2f5c12ddc934d58956aa5dbdd3255fe55fd957633ab7d0d39e4f0daa73f7df",
|
|
||||||
"licenses/dependencies/zerofrom-0.1.8/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/zerofrom-derive-0.1.7/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/zeroize-1.9.0/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/zeroize-1.9.0/LICENSE-MIT": "8c7516d4b27b1e495be5e38b612298b63de48d05f49cdac94f70f3cd70f8864b",
|
|
||||||
"licenses/dependencies/zerotrie-0.2.5/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/zerovec-0.11.8/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/zerovec-derive-0.11.6/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/zmij-1.0.23/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/clipboard-win-5.4.1/supplement/DoumanAsh-clipboard-win-3b27cf2bfd1a-LICENSE": "c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566",
|
|
||||||
"licenses/dependencies/cosmic-text-0.15.0/fonts/FiraMono-LICENSE": "587dd9548304fd421cd254f7550bd101c1250ffc95417f2f7f92d55b44ecbe53",
|
|
||||||
"licenses/dependencies/cosmic-text-0.15.0/fonts/Inter-LICENSE": "3c8d13d97ea5eb62868833a377034c6be6a9833e768d32abec2a767a8101e4bc",
|
|
||||||
"licenses/dependencies/cosmic-text-0.15.0/fonts/NotoSans-LICENSE": "5ec4347054089def6904da61d04f0360968f9ef36634b1fe007a5b6ec2f7aa96",
|
|
||||||
"licenses/dependencies/fontdb-0.23.0/tests/fonts/LICENSE.txt": "b84fdd2c3da5db56385cdbb639795e90aa3e035c53bc3591135f18df3331451f",
|
|
||||||
"licenses/dependencies/gl_generator-0.14.0/supplement/brendanzab-gl-rs-ea503e8d5fb6-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/gpu-alloc-0.6.2/supplement/zakarumych-gpu-alloc-61020bdcb4eb-COPYING": "12121dfa588677007848ab922a45a1e3248868f6ff063598fceb3141d7897314",
|
|
||||||
"licenses/dependencies/gpu-alloc-types-0.3.1/supplement/zakarumych-gpu-alloc-7ddd1fe576fc-COPYING": "12121dfa588677007848ab922a45a1e3248868f6ff063598fceb3141d7897314",
|
|
||||||
"licenses/dependencies/gpu-descriptor-0.3.2/supplement/zakarumych-gpu-descriptor-bb28b4e55b74-COPYING": "f72143f7e9d9fb8bd336b139fa22f825a299591c29f2f7338c5566347b137613",
|
|
||||||
"licenses/dependencies/gpu-descriptor-types-0.2.0/supplement/zakarumych-gpu-descriptor-9f2fb9546591-COPYING": "f72143f7e9d9fb8bd336b139fa22f825a299591c29f2f7338c5566347b137613",
|
|
||||||
"licenses/dependencies/harfrust-0.3.2/scripts/ms-use/COPYING": "9906940f61b1f0b533fa7d99baf55178b2808fbe113ea51dfbfad8572ccd5f2b",
|
|
||||||
"licenses/dependencies/hexf-parse-0.2.1/supplement/CC0-1.0.txt": "a2010f343487d3f7618affe54f789f5487602331c0a8d03f49e9a7c547cf0499",
|
|
||||||
"licenses/dependencies/hexf-parse-0.2.1/supplement/hexf-parse-0.2.1-Cargo.toml": "4a56dbdbc12054fd33b7a2634a45cbbe6fe12f5e6f4081002cbfa527f7220c70",
|
|
||||||
"licenses/dependencies/iced_core-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_core-0.14.0/src/layout/DRUID_LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/iced_debug-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_futures-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_graphics-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_graphics-0.14.0/assets/FiraSans-Regular.ttf/Fira-OFL.txt": "99bfb7c1e845b79d1031fcf37e678178eb4a8c7cc74a3f218ddf7223083a6fcd",
|
|
||||||
"licenses/dependencies/iced_graphics-0.14.0/assets/FiraSans-Regular.ttf/FiraSans-Regular-NOTICE.txt": "1e0baaa389b1647d06322ac9ea37822f31995408200ae5a2805a6b9bea0810d1",
|
|
||||||
"licenses/dependencies/iced_graphics-0.14.0/assets/Iced-Icons.ttf/Iced-Icons-NOTICE.txt": "8175634e30f84ef72a24c4965fb0e87f45a3c1274cc0e79e0473af582cffd1c4",
|
|
||||||
"licenses/dependencies/iced_graphics-0.14.0/assets/Iced-Icons.ttf/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_program-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_renderer-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_runtime-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_tiny_skia-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_wgpu-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_widget-0.14.2/supplement/iced-rs-iced-54abf81d13fe-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_winit-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/khronos_api-3.1.0/supplement/brendanzab-gl-rs-f150967b1c44-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/lyon-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06",
|
|
||||||
"licenses/dependencies/lyon-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e",
|
|
||||||
"licenses/dependencies/lyon_algorithms-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06",
|
|
||||||
"licenses/dependencies/lyon_algorithms-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e",
|
|
||||||
"licenses/dependencies/lyon_geom-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06",
|
|
||||||
"licenses/dependencies/lyon_geom-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e",
|
|
||||||
"licenses/dependencies/lyon_path-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06",
|
|
||||||
"licenses/dependencies/lyon_path-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e",
|
|
||||||
"licenses/dependencies/lyon_tessellation-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06",
|
|
||||||
"licenses/dependencies/lyon_tessellation-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e",
|
|
||||||
"licenses/dependencies/profiling-1.0.18/supplement/aclysma-profiling-8271551172eb-LICENSE-APACHE": "10d30a673cd5e9349bdc02aeb48f14b3386d27d0da32df8f0a555d4aa16aa551",
|
|
||||||
"licenses/dependencies/profiling-1.0.18/supplement/aclysma-profiling-8271551172eb-LICENSE-MIT": "c8167fdeeed46d3f244d3f85c5bf998ce889343691c32be2c61a8bc4b5c08333",
|
|
||||||
"licenses/dependencies/ring-0.17.14/src/polyfill/once_cell/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/ring-0.17.14/src/polyfill/once_cell/LICENSE-MIT": "6ee2ed6c77710de911761acd5fc1ad1da00f476beb1a7ef27e78c2d1858deafc",
|
|
||||||
"licenses/dependencies/ring-0.17.14/third_party/fiat/LICENSE": "9eacbcb81be660840c714a560a9d65ba07913db98dd4baf969f78dd499fdd60f",
|
|
||||||
"licenses/dependencies/spirv-0.3.0+sdk-1.3.268.0/supplement/gfx-rs-rspirv-e91a5debc10c-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/svg_fmt-0.4.5/supplement/nical-rust_debug-93f414cd572b-LICENSE": "7e98bed7f100747aaae7d82ab94fbe6b76fd6b84b09a3aaa413bff8196d0fbb1",
|
|
||||||
"licenses/dependencies/tracing-core-0.1.36/src/spin/LICENSE": "58545fed1565e42d687aecec6897d35c6d37ccb71479a137c0deb2203e125c79",
|
|
||||||
"licenses/dependencies/ttf-parser-0.25.1/tests/fonts/colr_1_LICENSE": "58d1e17ffe5109a7ae296caafcadfdbe6a7d176f0bc4ab01e12a689b0499d8bd"
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"added": {
|
|
||||||
"%SystemDrive%/ProgramData/Microsoft/Windows/Caches/cversions.2.db": "6b4f0b9a1cae97c1e5c355bffbe77b76ce6a65564dfb819f57285d6604f4137f"
|
|
||||||
},
|
|
||||||
"removed": [],
|
|
||||||
"changed": {}
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"atUtc": "2026-09-11T16:25:37.6853748+00:00",
|
|
||||||
"action": "Created missing Desktop directory inside the private native-test profile",
|
|
||||||
"reason": "Windows Open dialog reported the private USERPROFILE/Desktop location unavailable",
|
|
||||||
"packageModified": false
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 114 KiB |
|
Before Width: | Height: | Size: 108 KiB |
@@ -1,65 +0,0 @@
|
|||||||
# Packaged contextual authoring — native Windows acceptance
|
|
||||||
|
|
||||||
Codex-9e8r6t `/root`, 2026-09-11. **Fresh corrected-profile trial pending.**
|
|
||||||
The first trial below established desktop/model behavior but failed the strict
|
|
||||||
package-file inventory guard because the test launcher omitted a Windows path
|
|
||||||
environment variable. No release has been published from this evidence yet.
|
|
||||||
Linux remains paused by the user.
|
|
||||||
|
|
||||||
## Frozen package and first native trial
|
|
||||||
|
|
||||||
The independent review admitted the exact 559-file ZIP, 32,775,691 bytes,
|
|
||||||
SHA256 `9186d4fc9a7b52fb195c183c4847c8e3419ea6da8b3f907e0c06f9ceec58dee0`.
|
|
||||||
Root launched its independent extraction at 16:22:25 UTC, PID9764, using
|
|
||||||
GUI5657 and F456 runtime, a new private application profile and
|
|
||||||
`PATH=C:\Windows\System32;C:\Windows`. Full process environment and executable
|
|
||||||
paths are recorded in `.local/contextual-prerelease-gui-20260911/launch.json`.
|
|
||||||
The only loaded modules outside C:\Windows were the packaged executable and
|
|
||||||
its sibling libunwind.dll. No compiler or toolchain runtime path was needed.
|
|
||||||
|
|
||||||
The Home page opened with an empty Recent models list. The built-in Engineering
|
|
||||||
guide rendered its offline topics and first-model instructions. Through the real
|
|
||||||
Open picker, root loaded a private complete two-file contextual-source baseline,
|
|
||||||
then used Behavior → Add first lifeline. Parent name `Assessment lifeline` and
|
|
||||||
new root Activity `Assess incident work` remained independent; the source form
|
|
||||||
showed the retained consumer and explicit OA root. Use returned to the pending
|
|
||||||
parent with two accepted objects. Root clicked Create before Save; the canvas
|
|
||||||
and tree then showed the Activity and its lifeline with four accepted objects.
|
|
||||||
Ctrl+S displayed All changes saved.
|
|
||||||
|
|
||||||
The unchanged complete model/source oracle subsequently passed this first
|
|
||||||
trial's **model-only** check: three exact reachable/physical source files and
|
|
||||||
original role UUIDs. This does not waive the separate package-inventory failure.
|
|
||||||
Screenshots, exact checkpoint, oracle output/arguments and raw process logs
|
|
||||||
remain in the first trial. Native Alt+F4 closed PID9764 normally; a subsequent
|
|
||||||
process check found it absent. A numeric GUI exit code was not observed.
|
|
||||||
|
|
||||||
## Test-environment correction and preserved failure
|
|
||||||
|
|
||||||
The custom USERPROFILE initially had no Desktop directory. Windows Open showed
|
|
||||||
a Location is not available notice for that private path. Root created only
|
|
||||||
that missing directory inside the private trial profile and dismissed the notice
|
|
||||||
with Escape. The first accessibility-index click did not dismiss it; a later
|
|
||||||
set_value attempt returned `Requested property was not in the CacheRequest`.
|
|
||||||
After refreshing, ordinary literal typing into the visibly focused file-name
|
|
||||||
field opened the intended private model. No model-path shortcut or implicit
|
|
||||||
source modification was substituted.
|
|
||||||
|
|
||||||
After GUI Save, the strict package guard refused **before** running its saved
|
|
||||||
checkpoint oracle. Exact comparison found no removed or changed original file,
|
|
||||||
but one new file at the literal relative path
|
|
||||||
`%SystemDrive%/ProgramData/Microsoft/Windows/Caches/cversions.2.db`.
|
|
||||||
The launcher omitted SystemDrive; this is the identified environment hypothesis
|
|
||||||
for Windows shell cache placement, to be tested by a fresh corrected trial.
|
|
||||||
The extra file, first extraction and first trial are preserved. They are not
|
|
||||||
cleaned or relabeled as an unchanged-package pass. The later explicitly scoped
|
|
||||||
model-only oracle check above was recorded separately.
|
|
||||||
|
|
||||||
The corrected launcher will retain private APPDATA/LOCALAPPDATA/USERPROFILE and
|
|
||||||
TEMP/TMP, create Desktop before launch, and supply standard Windows path
|
|
||||||
environment variables without inheriting credentials or toolchain PATH. A fresh
|
|
||||||
extraction must repeat desktop opening, guide, real contextual Create/Save and
|
|
||||||
the unchanged complete oracle, then preserve all 559 original package files
|
|
||||||
with no additions. Root owns that native acceptance and publication; the server
|
|
||||||
reviewer's earlier artifact/API/persistence results remain separate and valid
|
|
||||||
for their recorded pre-GUI scope.
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"atUtc": "2026-09-11T16:36:53.669982+00:00",
|
|
||||||
"args": [
|
|
||||||
"same",
|
|
||||||
"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\harness\\fixtures\\staged-source-authoring\\base\\project.arcadia",
|
|
||||||
"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-gui-20260911-v2\\work\\project.arcadia"
|
|
||||||
],
|
|
||||||
"exitCode": 0,
|
|
||||||
"oracleSha256": "967d9ba3c6fb3a7efb410833903ec94556ca2d48a67d5072c8bb160f40a00f9c"
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
PASS exact model/identity/2 reachable sources; 2 exact disk files (0 proven retained)
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
// Preserve this independent engineering note: secours 雨 Δ.
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
|
|
||||||
oa_activity assess_incident_work "Assess incident work" id "6073e5c2-f8ec-4d2e-a1b3-a5003d0553f2" {
|
|
||||||
description "";
|
|
||||||
parent none;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
arcadia 7;
|
|
||||||
project contextual_source_acceptance "Contextual source acceptance" id "d1510000-0000-4000-8000-000000000001" {
|
|
||||||
include "notes.arcadia";
|
|
||||||
|
|
||||||
// The viewpoint is explicit before any lifeline exists.
|
|
||||||
oa_scenario operational_assessment "Operational assessment" id "d1510000-0000-4000-8000-000000000002" {
|
|
||||||
viewpoint OperationalActivity;
|
|
||||||
steps [];
|
|
||||||
|
|
||||||
oa_lifeline assessment_lifeline "Assessment lifeline" id "b5018105-0708-4077-9d74-98643d5936aa" {
|
|
||||||
description "";
|
|
||||||
|
|
||||||
represented @assess_incident_work;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Contributions are occurrences; root Functions are separate sources.
|
|
||||||
sa_functional_chain system_assessment "System assessment" id "d1510000-0000-4000-8000-000000000003" {
|
|
||||||
steps [];
|
|
||||||
}
|
|
||||||
|
|
||||||
include "oa/activities/activity_assess_incident_work.arcadia";
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 114 KiB |
|
Before Width: | Height: | Size: 96 KiB |
@@ -1,23 +0,0 @@
|
|||||||
{
|
|
||||||
"atUtc": "2026-09-11T16:36:54.068996+00:00",
|
|
||||||
"pid": 6344,
|
|
||||||
"package": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-extraction2-20260911\\ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm",
|
|
||||||
"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\\contextual-prerelease-gui-20260911-v2\\profile",
|
|
||||||
"LOCALAPPDATA": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-gui-20260911-v2\\profile\\local",
|
|
||||||
"APPDATA": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-gui-20260911-v2\\profile\\roaming",
|
|
||||||
"TEMP": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-gui-20260911-v2\\tmp",
|
|
||||||
"TMP": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-gui-20260911-v2\\tmp"
|
|
||||||
},
|
|
||||||
"reviewSha256": "3a6bf2580b25dad696d635dcbbde88522a065f83698229c2a22dda92f2ab6ee8",
|
|
||||||
"archiveSha256": "9186d4fc9a7b52fb195c183c4847c8e3419ea6da8b3f907e0c06f9ceec58dee0",
|
|
||||||
"source": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-gui-20260911-v2\\work\\project.arcadia",
|
|
||||||
"scope": "Fresh extracted package; native acceptance pending"
|
|
||||||
}
|
|
||||||
@@ -1,506 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"ModuleName": "arcadia-studio.exe",
|
|
||||||
"FileName": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-extraction2-20260911\\ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm\\arcadia-studio.exe"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "ntdll.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\ntdll.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "KERNEL32.DLL",
|
|
||||||
"FileName": "C:\\Windows\\System32\\KERNEL32.DLL"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "KERNELBASE.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\KERNELBASE.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "apphelp.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\apphelp.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "user32.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\user32.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "win32u.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\win32u.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "GDI32.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\GDI32.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "gdi32full.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\gdi32full.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "msvcp_win.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\msvcp_win.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "ucrtbase.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\ucrtbase.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "ole32.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\ole32.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "combase.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\combase.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "RPCRT4.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\RPCRT4.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "advapi32.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\advapi32.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "msvcrt.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\msvcrt.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "sechost.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\sechost.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "bcryptprimitives.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\bcryptprimitives.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "shell32.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\shell32.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "imm32.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\imm32.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "ws2_32.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\ws2_32.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "oleaut32.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\oleaut32.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "libunwind.dll",
|
|
||||||
"FileName": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-extraction2-20260911\\ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm\\libunwind.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "bcrypt.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\bcrypt.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "dwmapi.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\dwmapi.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "uxtheme.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\uxtheme.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "opengl32.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\opengl32.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "GLU32.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\GLU32.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "CRYPTBASE.DLL",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\CRYPTBASE.DLL"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "dxcore.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\dxcore.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "MSCTF.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\MSCTF.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "kernel.appcore.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\kernel.appcore.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "clbcatq.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\clbcatq.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "dataexchange.dll",
|
|
||||||
"FileName": "C:\\Windows\\system32\\dataexchange.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "twinapi.appcore.dll",
|
|
||||||
"FileName": "C:\\Windows\\system32\\twinapi.appcore.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "explorerframe.dll",
|
|
||||||
"FileName": "C:\\Windows\\system32\\explorerframe.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "SHCORE.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\SHCORE.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "SHLWAPI.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\SHLWAPI.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "Windows.Storage.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\Windows.Storage.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "powrprof.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\powrprof.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "UMPDC.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\UMPDC.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "CFGMGR32.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\CFGMGR32.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "dxgi.dll",
|
|
||||||
"FileName": "C:\\Windows\\system32\\dxgi.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "windows.staterepositorycore.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\windows.staterepositorycore.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "directxdatabasehelper.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\directxdatabasehelper.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "d3d12.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\d3d12.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "d3dcompiler_47.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\d3dcompiler_47.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "cryptsp.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\cryptsp.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "vm3dgl64.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\DriverStore\\FileRepository\\vm3d.inf_amd64_39d3dfd189710365\\vm3dgl64.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "vm3dglhelper64.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\DriverStore\\FileRepository\\vm3d.inf_amd64_39d3dfd189710365\\vm3dglhelper64.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "WINMM.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\WINMM.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "D3D12Core.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\D3D12Core.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "d3d10warp.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\d3d10warp.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "D3DSCache.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\D3DSCache.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "USERENV.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\USERENV.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "dxilconv.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\dxilconv.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "dcomp.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\dcomp.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "Microsoft.Internal.WarpPal.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\Microsoft.Internal.WarpPal.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "textinputframework.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\textinputframework.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "uiautomationcore.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\uiautomationcore.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "OLEACC.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\OLEACC.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "threadpoolwinrt.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\threadpoolwinrt.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "DUI70.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\DUI70.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "Comctl32.dll",
|
|
||||||
"FileName": "C:\\Windows\\WinSxS\\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.26100.8457_none_3e0b2faee331e92d\\Comctl32.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "DUser.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\DUser.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "CoreMessaging.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\CoreMessaging.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "CoreUIComponents.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\CoreUIComponents.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "wintypes.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\wintypes.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "TextShaping.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\TextShaping.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "edputil.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\edputil.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "WindowsCodecs.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\WindowsCodecs.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "profapi.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\profapi.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "thumbcache.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\thumbcache.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "policymanager.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\policymanager.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "Windows.Globalization.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\Windows.Globalization.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "globinputhost.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\globinputhost.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "Bcp47Langs.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\Bcp47Langs.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "PROPSYS.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\PROPSYS.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "urlmon.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\urlmon.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "iertutil.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\iertutil.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "srvcli.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\srvcli.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "netutils.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\netutils.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "NetworkExplorer.dll",
|
|
||||||
"FileName": "C:\\Windows\\system32\\NetworkExplorer.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "sxs.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\sxs.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "atlthunk.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\atlthunk.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "StructuredQuery.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\StructuredQuery.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "icu.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\icu.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "OneCoreUAPCommonProxyStub.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\OneCoreUAPCommonProxyStub.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "Windows.FileExplorer.Common.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\Windows.FileExplorer.Common.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "OneCoreCommonProxyStub.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\OneCoreCommonProxyStub.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "Windows.System.Launcher.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\Windows.System.Launcher.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "windowsudk.shellcommon.dll",
|
|
||||||
"FileName": "C:\\Windows\\system32\\windowsudk.shellcommon.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "Windows.UI.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\Windows.UI.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "Windows.UI.Immersive.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\Windows.UI.Immersive.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "Windows.StateRepositoryPS.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\Windows.StateRepositoryPS.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "Windows.Storage.Search.dll",
|
|
||||||
"FileName": "C:\\Windows\\system32\\Windows.Storage.Search.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "MPR.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\MPR.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "vmhgfs.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\vmhgfs.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "VERSION.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\VERSION.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "VCRUNTIME140.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\VCRUNTIME140.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "p9np.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\p9np.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "drprov.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\drprov.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "ntlanman.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\ntlanman.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "davclnt.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\davclnt.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "WINSTA.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\WINSTA.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "wkscli.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\wkscli.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "cscapi.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\cscapi.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "dlnashext.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\dlnashext.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "ntshrui.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\ntshrui.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "PlayToDevice.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\PlayToDevice.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "DevDispItemProvider.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\DevDispItemProvider.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "MMDevApi.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\MMDevApi.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "DEVOBJ.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\DEVOBJ.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "wpdshext.dll",
|
|
||||||
"FileName": "C:\\Windows\\system32\\wpdshext.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "gdiplus.dll",
|
|
||||||
"FileName": "C:\\Windows\\WinSxS\\amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.26100.8328_none_6ef30b123dc73046\\gdiplus.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "PortableDeviceApi.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\PortableDeviceApi.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "SETUPAPI.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\SETUPAPI.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "WINTRUST.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\WINTRUST.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "CRYPT32.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\CRYPT32.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "MSASN1.dll",
|
|
||||||
"FileName": "C:\\Windows\\SYSTEM32\\MSASN1.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "EhStorShell.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\EhStorShell.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "EhStorAPI.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\EhStorAPI.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "WTSAPI32.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\WTSAPI32.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "SspiCli.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\SspiCli.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "ActXPrxy.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\ActXPrxy.dll"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ModuleName": "cscui.dll",
|
|
||||||
"FileName": "C:\\Windows\\System32\\cscui.dll"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
Before Width: | Height: | Size: 113 KiB |
@@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"processAbsent": true,
|
|
||||||
"atUtc": "2026-09-11T16:49:52.8260307Z",
|
|
||||||
"pid": 6344,
|
|
||||||
"exitCode": null,
|
|
||||||
"method": "Native Alt+F4",
|
|
||||||
"note": "Numeric GUI exit code was not observed"
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 167 KiB |
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"atUtc": "2026-09-11T16:50:02.559946+00:00",
|
|
||||||
"files": 559,
|
|
||||||
"completeInventoryUnchanged": true
|
|
||||||
}
|
|
||||||
@@ -1,561 +0,0 @@
|
|||||||
{
|
|
||||||
"arcadia-server.exe": "efeeb89c0d2e0f93df4472cb3e9f48b2b722a37ae1043c90a5a56f2e845fe665",
|
|
||||||
"arcadia-studio.exe": "5657bab5c841939b66f901efe6c0ffb2d7cbbe8cc5f111a0ca3de8073d3846ce",
|
|
||||||
"dependency-notices.json": "f318f87e6a23dcfac16ef7b1cfe51ecb804e98e1ff6a97271180319d5922fc0e",
|
|
||||||
"documentation-check.json": "bcc89585951fd9e5a1641993c51ca79e00a7a06944a8273d2df413331320e93f",
|
|
||||||
"libunwind.dll": "f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4",
|
|
||||||
"LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365",
|
|
||||||
"package.json": "25f01823dbceed15468bf759eed3f9ffbfd1098427027288bcbb9a3d356b6a4d",
|
|
||||||
"README.md": "597cfb8da873e019d2658420f18ec059f0185fa9106ff9eafe934dfdd6ed266b",
|
|
||||||
"SHA256SUMS.txt": "04e4be3f6a081e11ccad8609643031d91fed82cd08e7c7821002ff9b9a04e454",
|
|
||||||
"START-HERE.txt": "a549295cf57ac73673dc4fa6106463450f982122793cb9c7135ce4fc7087e9ed",
|
|
||||||
"THIRD-PARTY-NOTICES.txt": "6756989c8fc73706641cd78449c315458425a2eed9a82febc289b9d28ea7f21f",
|
|
||||||
"deployment/arcadia-server.service": "1e6c6bb4065e25f8fe1d558a4ed0bbd4844782a4377c2482488db1e6f9cab01d",
|
|
||||||
"deployment/Dockerfile": "72c04aef4ec879955ed3bdf315987553d018ef46e4b8f350f0f6fe380c453eb7",
|
|
||||||
"deployment/Dockerfile.dockerignore": "6bb7d7496110b11a531cb8cd923864c6610850a8f1c4de8a797f54c7156f29e1",
|
|
||||||
"docs/api.html": "a06126cb741da57e9c06e83fc4137ccde0de05562673546bc9d405878f51ea07",
|
|
||||||
"docs/api.rst": "ca7d310138c3b4d429d80a1d03d1ac8d4a9296069e205da573034256d10438a7",
|
|
||||||
"docs/language.html": "67dcfa3477b48a0b07298ec81741840cc3ccff12c7d58164873d746d41d611c8",
|
|
||||||
"docs/language.rst": "ac6b1d982c55f246de2f3c844b24b874599a3c20cfbd7ed22efe4561ac622b83",
|
|
||||||
"docs/linux-packaging.md": "41a1bb1095801df37a1411341c5791d55ea8c365739314d599a60269ac4bc7a0",
|
|
||||||
"docs/openapi.json": "c6ae512f791a939eaf6ec5e5e78e9468bdee0e028092d00098bd90ad9498d967",
|
|
||||||
"docs/research-v2-service.md": "4828df5bc679e7c71f49b4b85c9e7dacbec52f46d416fed48af70e08886d4e4e",
|
|
||||||
"docs/server.md": "4eb24937d424ba8b384e1734e02a6f8e963ae11d2715889c92b14b39ff2e4a48",
|
|
||||||
"docs/windows-packaging.md": "2c852ff7041713ffbff3c951ac98df647c51fb70b0feba9000f7bfd5bc2703a8",
|
|
||||||
"examples/coastal-rescue.arcadia": "7e183ef9fd8154d3074303f1956cd0d9871c19e3ffc630d333b0bffbd6e30e17",
|
|
||||||
"examples/coastal-rescue.json": "242f0b031229a87af5c4ebe5d651defe59c191a6b7a69dc0a77f7e203411f195",
|
|
||||||
"examples/legacy-v1-coastal-rescue.arcadia": "4dbbbdf8bc7e6cb8e0a81dd678069dae585a9e5187c59bc3665e1fdab3f1a86a",
|
|
||||||
"examples/legacy-v1-coastal-rescue.oa.json": "fd0e9dedfb7adb922dc0575cc2b820d40344d639f1d8052bd70363aa59de9c24",
|
|
||||||
"examples/routing-workshop.arcadia": "dc6b75da72884d399132ed9e300fa5a26b73d802bb526c9af986ae9eeb0a646a",
|
|
||||||
"examples/routing-workshop.json": "8592714f75b271133f21ce017d87896b6cf91ea0e4837f1c2ed453e21be26b14",
|
|
||||||
"licenses/llvm-mingw-LICENSE.TXT": "8d85c1057d742e597985c7d4e6320b015a9139385cff4cbae06ffc0ebe89afee",
|
|
||||||
"examples/release1/expected-diagnostics.json": "3700393d76b940cfc076bf52861bd7b1f43370f8eabce3594531bd0bf1fc851e",
|
|
||||||
"examples/release1/model.json": "ef0ef4006c3e09d5db6e1b621256b3f7d6642f3a7b09cc34607cfbcca830c727",
|
|
||||||
"examples/release1/model.rs": "15f30f6bde655808fe754665c26d560e36f2a9bad340f346b09137d0d05045f5",
|
|
||||||
"examples/release1/project.arcadia": "b2674e6bf77cfe0f6f0ba79c81d2e96d92f39c02ca2c6266d80e91723bfb9fda",
|
|
||||||
"examples/release1/README.md": "113cfb1cf38a98b51bff60442d86a35d636a3d80ef206bece7d53d0aae67f2d5",
|
|
||||||
"examples/release1/traceability.arcadia": "48a96f543456c9b5a5798fc795594e4119147fe45f11a6f109f141b7f514560f",
|
|
||||||
"examples/release1/transition-before.json": "2253e6434f741687e22327c37d520ed15c043bc36025498650bc2366bb6a874d",
|
|
||||||
"examples/release1/transition-request.json": "43b9a22e5f95ad3bc0ebd2478ead0e14406854abc989ae94ded9367b013d812a",
|
|
||||||
"examples/source-project/oa.arcadia": "5f60642f211b2d352a951092faeeb7503d4fb7f6f7fca99e810347231101d31c",
|
|
||||||
"examples/source-project/project.arcadia": "787f6b67b179ffd221f7e5faf1a4edd74cfd116aa1e3b5e9ed9f22fbff612d8d",
|
|
||||||
"examples/source-project/views.arcadia": "e29ad3f406a6a50d2f0ae2ca2a53ee3b0c18222cd4098704a46d4f48b64ea17f",
|
|
||||||
"examples/text-first/project.arcadia": "f441535c623e0cf20e1875eb2cd33b587ed00e078c37af39cb36d89bb5edc19a",
|
|
||||||
"examples/text-first/README.md": "4ec8250d5ed556f1d496e8c85137e973e802ecb11df1a36488411e8cdc5a9f9e",
|
|
||||||
"examples/release1/evidence/repair-check.md": "f4db17bdca4ecbb1bf0caef01b2da5f1f7f798ab3152b648ce6dd8696a6a68e5",
|
|
||||||
"examples/release1/oa/capabilities.arcadia": "fc8012e5554350b12e1cb80080f8feab80d933c9b33c0f2a7bb500cb7d609936",
|
|
||||||
"examples/release1/oa/model.arcadia": "f7cf914766ea73ec53b85e32d117ea9a9dba52d3e038246863541ae7069b1a15",
|
|
||||||
"examples/release1/oa/participants.arcadia": "951764c14179f27c10e315acf2ea37d1fff54c77b8441e23addd239e8c715ce3",
|
|
||||||
"examples/release1/oa/types.arcadia": "9d0396fb82dd5733edd8d1cf52f968ca84906927c704f9cf0944a7fae215cf49",
|
|
||||||
"examples/release1/sa/capabilities.arcadia": "b6912fb3ece439912345fa71724acd462e716a1e5a88203a1058a5c3b2c20a4f",
|
|
||||||
"examples/release1/sa/model.arcadia": "d431509251acb859fbb98733b6d18add952495e10a78703fbe8f31e40bc083c4",
|
|
||||||
"examples/release1/sa/participants.arcadia": "780d2eb08b217b67b55febb3d34846f727b8ee9018df6c5741748647e36b2ff8",
|
|
||||||
"examples/release1/sa/types.arcadia": "101fc0fbd99f1101514aa7b6da4f8e535aae0bb94c9e2b9e7e6c151135b28660",
|
|
||||||
"examples/release1/views/diagram_oa_allocation_view.arcadia": "dfc0eb61e0e2aa5bda45524571fbfa3494f44ce19696f3e15e07438074a07bc7",
|
|
||||||
"examples/release1/views/diagram_sa_allocation_view.arcadia": "b78b43a26a82efb8fbd5374b09c329fa341f57b29f635d397b9ef8aede71d389",
|
|
||||||
"examples/release1/views/diagram_sa_capability_view.arcadia": "75e8dc9fb30f25d6f8fd3c6b595593ab4f98958a25798f961e336e0fac557649",
|
|
||||||
"examples/release1/views/diagram_sa_service_view.arcadia": "b08c84f3ea633e7c78dfdad3272f75415f6256cf3614b6d99bfd4f0269076c9b",
|
|
||||||
"examples/release1/views/diagram_sa_state_view.arcadia": "5f42f4c605e57b817d8400ed21f2b14bfc4e1592aebe941ff113767504c2b869",
|
|
||||||
"examples/release1/oa/activities/activity_oa_restore_work.arcadia": "83e73d0a013d5c3e1a4af0d9139ab0cfa362d25a846671fc2dac59181061a9d4",
|
|
||||||
"examples/release1/oa/behavior/process_oa_assessment_procedure.arcadia": "172c32c044ef4b5bc58a1f4635cc81f48dabb4014479b47dce7b25fedf2dbd0d",
|
|
||||||
"examples/release1/oa/behavior/process_oa_field_procedure.arcadia": "d2552dc5383e2e91cb302a790364e197f663c2edc013a2ab1978789825c9c324",
|
|
||||||
"examples/release1/oa/behavior/process_oa_response.arcadia": "cf86f46fa5c5d70592ef43f1bc1cb4d968efd8add384ba88036bef6b88aa4abc",
|
|
||||||
"examples/release1/oa/behavior/scenario_oa_conversation.arcadia": "b25be524e98a35ebac5e4481b7609c027b32baf9605e8097f807560f94a77ca6",
|
|
||||||
"examples/release1/oa/behavior/scenario_oa_full_scenario.arcadia": "00a1edf2c9707a0eb62ac070c2d02467874f2c9c1f273cc6ddb53d6d65999a1c",
|
|
||||||
"examples/release1/oa/behavior/state_machine_oa_monitor.arcadia": "447c9ad1359f4a31ecf975ad07c0b08d8e7e03191fb0858e2fc56f377b223cd5",
|
|
||||||
"examples/release1/sa/behavior/process_sa_assessment_procedure.arcadia": "73928ced61c06cbc08728d7956676a50fd4c05aa5b7f1ff4f29ce27a0b0f2088",
|
|
||||||
"examples/release1/sa/behavior/process_sa_field_procedure.arcadia": "886d462af83110cbfa55dd232a667ea1446761234471357cbb878794e98e8768",
|
|
||||||
"examples/release1/sa/behavior/process_sa_response.arcadia": "041785fc22842423822431bd5e6e8d16094ebd0716965e7c765fb8c1d7549e8a",
|
|
||||||
"examples/release1/sa/behavior/scenario_sa_conversation.arcadia": "97276f5757ee9aa12a0dbd9d3ccd58174b3091162bb8bcce357cec20a45f5d85",
|
|
||||||
"examples/release1/sa/behavior/scenario_sa_full_scenario.arcadia": "e12fc406b99d60a2f7768aaa0b25ba560e8605f0b8e37f3a7cdd3b8443562b74",
|
|
||||||
"examples/release1/sa/behavior/state_machine_sa_monitor.arcadia": "05ce29af99424c491c47fe2450dc6f5f8ce995511c01ec7e17bb5855be3c9736",
|
|
||||||
"examples/release1/sa/functions/function_sa_audit_thresholds.arcadia": "e5a04325d52183956dca814dd90f4e56c96c6b7db0f4f202f203ecb49c3e0f4f",
|
|
||||||
"examples/release1/sa/functions/function_sa_restore_work.arcadia": "fddeb67308051325041fee641fe758ddf43345b7c47b66d433616ad07fdccdd6",
|
|
||||||
"examples/source-project/sa/assurance.arcadia": "ab76044836e4dcd42a82d316846ec87da2108939aa2037640c5bca1d2ecdee0f",
|
|
||||||
"examples/source-project/sa/participants.arcadia": "1abad579812e77877b45a3d8e3c3e9da734be2d04a0254cc730a5257ebd2dc88",
|
|
||||||
"examples/source-project/sa/reporting.arcadia": "f0b7443f728912ca163de39b6055876b533a77feaa3219b2d40a2dd65712e058",
|
|
||||||
"licenses/llvm-libunwind/llvm-ea7d852a70e8-libunwind-LICENSE.TXT": "b5efebcaca80879234098e52d1725e6d9eb8fb96a19fce625d39184b705f7b6d",
|
|
||||||
"licenses/rust/COPYING.RUNTIME": "28e85c5aa4af9b4f1dfe6b4817aa3eefb3eaaee7fd735045016f29ccf50276a1",
|
|
||||||
"licenses/rust/COPYING3": "8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903",
|
|
||||||
"licenses/rust/COPYRIGHT-library.html": "68129500b616d5838629e68f55ff3aed5e096dacf60ce9eb41bbe599a563afa6",
|
|
||||||
"licenses/rust/COPYRIGHT.html": "5b0c93fc4e6d4b072eaa521b1762d1e746f4c368f65e81a0e5308e2772dac85e",
|
|
||||||
"licenses/dependencies/arrayref-0.3.9/LICENSE": "1bc7e6f475b3ec99b7e2643411950ae2368c250dd4c5c325f80f9811362a94a1",
|
|
||||||
"licenses/dependencies/arrayvec-0.7.8/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/arrayvec-0.7.8/LICENSE-MIT": "4da95ec4ecb65b738d470b7d762894ad9c97da93e6cbfb18b570fc2c96f4b871",
|
|
||||||
"licenses/dependencies/ash-0.38.0+1.3.281/LICENSE-APACHE": "0e8a410375e1ee5c75c6198b08b534fec6e5edef766cf971bab4a404542636ab",
|
|
||||||
"licenses/dependencies/ash-0.38.0+1.3.281/LICENSE-MIT": "c733ccf8ab25df175a63d9d844677b98e3a5ab8f8de1c1616087e6868a7f948e",
|
|
||||||
"licenses/dependencies/atomic-waker-1.1.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/atomic-waker-1.1.2/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/atomic-waker-1.1.2/LICENSE-THIRD-PARTY": "6226d0632e2e1a80c23597e964da9812ae193c535fe058154afb034e94167aa5",
|
|
||||||
"licenses/dependencies/autocfg-1.5.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/autocfg-1.5.1/LICENSE-MIT": "27995d58ad5c1145c1a8cd86244ce844886958a35eb2b78c6b772748669999ac",
|
|
||||||
"licenses/dependencies/axum-0.8.9/LICENSE": "6a13bc24a100a6812f053879ec51b126b103af7cda6dbf48c4188722da44da9f",
|
|
||||||
"licenses/dependencies/axum-core-0.5.6/LICENSE": "008c87afcd2e626eaf564093250bed06dd7efb5732113264bba3dda8f1c556a1",
|
|
||||||
"licenses/dependencies/base64-0.22.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/base64-0.22.1/LICENSE-MIT": "0dd882e53de11566d50f8e8e2d5a651bcf3fabee4987d70f306233cf39094ba7",
|
|
||||||
"licenses/dependencies/bit-set-0.8.0/LICENSE-APACHE": "8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90",
|
|
||||||
"licenses/dependencies/bit-set-0.8.0/LICENSE-MIT": "f51ac2c59a222f7476ce507ca879960e2b64ea64bb2786eefdbeb7b0b538d1b7",
|
|
||||||
"licenses/dependencies/bit-vec-0.8.0/LICENSE-APACHE": "8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90",
|
|
||||||
"licenses/dependencies/bit-vec-0.8.0/LICENSE-MIT": "f51ac2c59a222f7476ce507ca879960e2b64ea64bb2786eefdbeb7b0b538d1b7",
|
|
||||||
"licenses/dependencies/bitflags-2.13.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/bitflags-2.13.1/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb",
|
|
||||||
"licenses/dependencies/bytemuck-1.25.2/LICENSE-APACHE": "e3ba223bb1423f0aad8c3dfce0fe3148db48926d41e6fbc3afbbf5ff9e1c89cb",
|
|
||||||
"licenses/dependencies/bytemuck-1.25.2/LICENSE-MIT": "9df9ba60a11af705f2e451b53762686e615d86f76b169cf075c3237730dbd7e2",
|
|
||||||
"licenses/dependencies/bytemuck-1.25.2/LICENSE-ZLIB": "84b34dd7608f7fb9b17bd588a6bf392bf7de504e2716f024a77d89f1b145a151",
|
|
||||||
"licenses/dependencies/bytemuck_derive-1.12.0/LICENSE-APACHE": "e3ba223bb1423f0aad8c3dfce0fe3148db48926d41e6fbc3afbbf5ff9e1c89cb",
|
|
||||||
"licenses/dependencies/bytemuck_derive-1.12.0/LICENSE-MIT": "9df9ba60a11af705f2e451b53762686e615d86f76b169cf075c3237730dbd7e2",
|
|
||||||
"licenses/dependencies/bytemuck_derive-1.12.0/LICENSE-ZLIB": "84b34dd7608f7fb9b17bd588a6bf392bf7de504e2716f024a77d89f1b145a151",
|
|
||||||
"licenses/dependencies/bytes-1.12.1/LICENSE": "45f522cacecb1023856e46df79ca625dfc550c94910078bd8aec6e02880b3d42",
|
|
||||||
"licenses/dependencies/cc-1.4.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/cc-1.4.5/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397",
|
|
||||||
"licenses/dependencies/cfg-if-1.0.4/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/cfg-if-1.0.4/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397",
|
|
||||||
"licenses/dependencies/cfg_aliases-0.2.2/LICENSE": "31b94860253d8ec7b4529f51901044d3b459d6292d996504a36b1bae3a36a812",
|
|
||||||
"licenses/dependencies/chacha20-0.10.2/LICENSE-APACHE": "a9040321c3712d8fd0b09cf52b17445de04a23a10165049ae187cd39e5c86be5",
|
|
||||||
"licenses/dependencies/chacha20-0.10.2/LICENSE-MIT": "b8c6939380a400f53e11923d50fcc4dd2fa1ba8339fd9d04cda38a0251b6c9b0",
|
|
||||||
"licenses/dependencies/codespan-reporting-0.12.0/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
|
|
||||||
"licenses/dependencies/core_maths-0.1.1/LICENSE": "9ebf8c4cc0b735ca13a766451f7b8097db3185975ceb2ba94b5abf439156a91f",
|
|
||||||
"licenses/dependencies/cosmic-text-0.15.0/LICENSE-APACHE": "000b4962e6b27176a0ff89cce4be555b16472cafb5671eb2804a8fdac6854793",
|
|
||||||
"licenses/dependencies/cosmic-text-0.15.0/LICENSE-MIT": "95557bafe728379e206f3b6d4aceeaa054d271c71d722411a6222e2dec01138c",
|
|
||||||
"licenses/dependencies/cpufeatures-0.3.1/LICENSE-APACHE": "a9040321c3712d8fd0b09cf52b17445de04a23a10165049ae187cd39e5c86be5",
|
|
||||||
"licenses/dependencies/cpufeatures-0.3.1/LICENSE-MIT": "73b9dc2e79c7308998dd30296e073aefaefb944a68fb89aa412c23c0edcabcaa",
|
|
||||||
"licenses/dependencies/cryoglyph-0.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/cryoglyph-0.1.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/cryoglyph-0.1.0/LICENSE-ZLIB": "b3ec01ad0869c5c50937bc68780cd0bb44e235ad858dfa54a7a381dced9b115a",
|
|
||||||
"licenses/dependencies/cursor-icon-1.2.0/LICENSE-APACHE": "b59affd015e517ed998dd735757f9a3693643cd389609947ed54074234a10784",
|
|
||||||
"licenses/dependencies/cursor-icon-1.2.0/LICENSE-MIT": "c138726a726ac37bae09d0f8a48e74e8e3aa8a8952fcd10fae0fb224cc1c05f1",
|
|
||||||
"licenses/dependencies/cursor-icon-1.2.0/LICENSE-ZLIB": "01e533bd94e8f1c32b2c2531e2c398de7d35d7804add3d574b4e1fe581d53537",
|
|
||||||
"licenses/dependencies/displaydoc-0.2.7/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/displaydoc-0.2.7/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/document-features-0.2.12/LICENSE-APACHE": "074e6e32c86a4c0ef8b3ed25b721ca23aca83df277cd88106ef7177c354615ff",
|
|
||||||
"licenses/dependencies/document-features-0.2.12/LICENSE-MIT": "aa893340d14b9844625be6a50ac644169a01b52f0211cbf81b09e1874c8cd81d",
|
|
||||||
"licenses/dependencies/dpi-0.1.2/LICENSE": "6dc0e068dcf3a5bc8e054205b85b7720e1d49265bbc64bf515d2cf79197df69a",
|
|
||||||
"licenses/dependencies/dpi-0.1.2/LICENSE-LIBM-MIT": "9eff396a99bafd208e7126602420d6864f6066c08b84485a5b032320a9c01997",
|
|
||||||
"licenses/dependencies/equivalent-1.0.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/equivalent-1.0.2/LICENSE-MIT": "7365cc8878a1d7ce155a58c4ca09c3d7a6be413efa5334a80ea842912b669349",
|
|
||||||
"licenses/dependencies/error-code-3.4.0/LICENSE": "c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566",
|
|
||||||
"licenses/dependencies/etagere-0.2.15/LICENSE-APACHE": "2d56a37f3d1e461f6b1539ab94e0e6bcc55443e376098aee85ac3b2890860290",
|
|
||||||
"licenses/dependencies/etagere-0.2.15/LICENSE-MIT": "9cfc9c9a4608501b5da3746948d2be2dd709ad51f6bcb0c1c685760ee3dde31f",
|
|
||||||
"licenses/dependencies/euclid-0.22.14/COPYRIGHT": "ec82b96487e9e778ee610c7ab245162464782cfa1f555c2299333f8dbe5c036a",
|
|
||||||
"licenses/dependencies/euclid-0.22.14/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/euclid-0.22.14/LICENSE-MIT": "62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3",
|
|
||||||
"licenses/dependencies/fastrand-2.5.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/fastrand-2.5.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/find-msvc-tools-0.1.12/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/find-msvc-tools-0.1.12/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397",
|
|
||||||
"licenses/dependencies/float_next_after-1.0.0/LICENSE": "0604d5817110dacc5c7d9b7de6b58b962794603d4823c357157bd5dec4198bc5",
|
|
||||||
"licenses/dependencies/foldhash-0.1.5/LICENSE": "b1181a40b2a7b25cf66fd01481713bc1005df082c53ef73e851e55071b102744",
|
|
||||||
"licenses/dependencies/foldhash-0.2.0/LICENSE": "b1181a40b2a7b25cf66fd01481713bc1005df082c53ef73e851e55071b102744",
|
|
||||||
"licenses/dependencies/font-types-0.10.1/LICENSE-APACHE": "a14f7d685a79c0f4fb64aee305527a6d5fa55f2401f4e6d688d7b1301868e6c0",
|
|
||||||
"licenses/dependencies/font-types-0.10.1/LICENSE-MIT": "8a62fa27ffdccc3df19dce90f8bb3d572e27aecffc1a383d0c2601834dcec434",
|
|
||||||
"licenses/dependencies/font-types-0.12.4/LICENSE-APACHE": "eba684204073ed715c4abb48129acdfd2bff8ae48339e6a7da3b341d3027b7f0",
|
|
||||||
"licenses/dependencies/font-types-0.12.4/LICENSE-MIT": "7b4c9a3946dfcea7967582760e963e27799e225dcf20565c8ef55324bb017427",
|
|
||||||
"licenses/dependencies/fontdb-0.23.0/LICENSE": "59a1fdac3bd550043599bd159fd70f09a1108c2b09e3751d39b11e1ff8e51f00",
|
|
||||||
"licenses/dependencies/form_urlencoded-1.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/form_urlencoded-1.2.2/LICENSE-MIT": "20c7855c364d57ea4c97889a5e8d98470a9952dade37bd9248b9a54431670e5e",
|
|
||||||
"licenses/dependencies/futures-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/futures-channel-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-channel-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/futures-core-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-core-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/futures-executor-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-executor-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/futures-io-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-io-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/futures-macro-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-macro-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/futures-sink-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-sink-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/futures-task-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-task-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/futures-util-0.3.34/LICENSE-APACHE": "275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427",
|
|
||||||
"licenses/dependencies/futures-util-0.3.34/LICENSE-MIT": "6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd",
|
|
||||||
"licenses/dependencies/getrandom-0.2.17/LICENSE-APACHE": "aaff376532ea30a0cd5330b9502ad4a4c8bf769c539c87ffe78819d188a18ebf",
|
|
||||||
"licenses/dependencies/getrandom-0.2.17/LICENSE-MIT": "42fa16951ce7f24b5a467a40e5b449a1d41e662f97ca779864f053f39e097737",
|
|
||||||
"licenses/dependencies/getrandom-0.4.3/LICENSE-APACHE": "aaff376532ea30a0cd5330b9502ad4a4c8bf769c539c87ffe78819d188a18ebf",
|
|
||||||
"licenses/dependencies/getrandom-0.4.3/LICENSE-MIT": "523a42c25d245dde9c015f882cec7f4555aad883382a6cf19b4b7d9b2cd5419b",
|
|
||||||
"licenses/dependencies/glam-0.25.0/LICENSE-APACHE": "be33ddb87a30fd321ab100e2d922cba512e50ec7a63d8e62e5bfc0798dd4b585",
|
|
||||||
"licenses/dependencies/glam-0.25.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/glow-0.16.0/LICENSE-APACHE": "b8601fc79bdf8d8088f0938bea861ffc63ed0eebbedf25f44ab2cf2e85bd7edc",
|
|
||||||
"licenses/dependencies/glow-0.16.0/LICENSE-MIT": "cdbd06e25b8c9c5d6019949d2de8123f56d29cee4166396423d2ba8c81700845",
|
|
||||||
"licenses/dependencies/glow-0.16.0/LICENSE-ZLIB": "636f644f1e149eb62961657c0e34953681eff64435653912e7bd19992666faa5",
|
|
||||||
"licenses/dependencies/glutin_wgl_sys-0.6.1/LICENSE": "a4445427440043e8ce6fadf7a43fb906cb0d7f6c573a560a9f142cf9f9bf8ff4",
|
|
||||||
"licenses/dependencies/gpu-allocator-0.27.0/LICENSE-APACHE": "0178e21322b0e88aa3aeb3146f6a9611bc1f8df6d98bdfb34be28b9dd56a8107",
|
|
||||||
"licenses/dependencies/gpu-allocator-0.27.0/LICENSE-MIT": "ad41be6cc6538b29b9346648f41432b5e460bad6be073b5eeaa41320ea2921dc",
|
|
||||||
"licenses/dependencies/guillotiere-0.6.2/LICENSE": "7e98bed7f100747aaae7d82ab94fbe6b76fd6b84b09a3aaa413bff8196d0fbb1",
|
|
||||||
"licenses/dependencies/half-2.7.1/LICENSE-APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/half-2.7.1/LICENSE-MIT": "508a77d2e7b51d98adeed32648ad124b7b30241a8e70b2e72c99f92d8e5874d1",
|
|
||||||
"licenses/dependencies/harfrust-0.3.2/LICENSE": "7d43d2ef1ce976c7bfb423c696ad9938ccfc31e9ec5be752265e43fe9d29f697",
|
|
||||||
"licenses/dependencies/hashbrown-0.15.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/hashbrown-0.15.5/LICENSE-MIT": "ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2",
|
|
||||||
"licenses/dependencies/hashbrown-0.16.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/hashbrown-0.16.1/LICENSE-MIT": "ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2",
|
|
||||||
"licenses/dependencies/hashbrown-0.17.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/hashbrown-0.17.1/LICENSE-MIT": "ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2",
|
|
||||||
"licenses/dependencies/http-1.5.0/LICENSE-APACHE": "8bb1b50b0e5c9399ae33bd35fab2769010fa6c14e8860c729a52295d84896b7a",
|
|
||||||
"licenses/dependencies/http-1.5.0/LICENSE-MIT": "dc91f8200e4b2a1f9261035d4c18c33c246911a6c0f7b543d75347e61b249cff",
|
|
||||||
"licenses/dependencies/http-body-1.1.0/LICENSE": "248378d0a3383c173fb925f17141b88e71580b3ba17ddc6ac3d2a344683232ab",
|
|
||||||
"licenses/dependencies/http-body-util-0.1.5/LICENSE": "248378d0a3383c173fb925f17141b88e71580b3ba17ddc6ac3d2a344683232ab",
|
|
||||||
"licenses/dependencies/httparse-1.10.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/httparse-1.10.1/LICENSE-MIT": "391a5396cec6230bfabd4ef4eb2350eb895bc5efce377a2218f5702ed020d3e3",
|
|
||||||
"licenses/dependencies/httpdate-1.0.3/LICENSE-APACHE": "4d10fe5f3aa176b05b229a248866bad70b834c173f1252a814ff4748d8a13837",
|
|
||||||
"licenses/dependencies/httpdate-1.0.3/LICENSE-MIT": "934887691e05d69d7c86ad3f2c360980fa30c15b035e351f3c9865e99da4debc",
|
|
||||||
"licenses/dependencies/hyper-1.11.1/LICENSE": "2d01890414494742ba4a509fcec8efa40f6d8be22cbd72be7cff08d6fda4ec89",
|
|
||||||
"licenses/dependencies/hyper-rustls-0.27.9/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/hyper-rustls-0.27.9/LICENSE-ISC": "7cfafc877eccc46c0e346ccbaa5c51bb6b894d2b818e617d970211e232785ad4",
|
|
||||||
"licenses/dependencies/hyper-rustls-0.27.9/LICENSE-MIT": "709e3175b4212f7b13aa93971c9f62ff8c69ec45ad8c6532a7e0c41d7a7d6f8c",
|
|
||||||
"licenses/dependencies/hyper-util-0.1.20/LICENSE": "9e0a97848ea543aef745c98e84fde696a9a3e0735538f6daefdd3cb1942effc1",
|
|
||||||
"licenses/dependencies/iced-0.14.0/LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/icu_collections-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/icu_locale_core-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/icu_normalizer-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/icu_normalizer_data-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/icu_properties-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/icu_properties_data-2.3.0/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/icu_provider-2.3.1/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/idna-1.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/idna-1.1.0/LICENSE-MIT": "b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5",
|
|
||||||
"licenses/dependencies/idna_adapter-1.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/idna_adapter-1.2.2/LICENSE-MIT": "8b43ce8accd61e9d370b5ca9e9c4f953279b5c239926c62315b40e24df51b726",
|
|
||||||
"licenses/dependencies/indexmap-2.14.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/indexmap-2.14.1/LICENSE-MIT": "ecc269ef87fd38a1d98e30bfac9ba964a9dbd9315c3770fed98d4d7cb5882055",
|
|
||||||
"licenses/dependencies/ipnet-2.12.1/LICENSE-APACHE": "87d9feb9238c6bd8e0024fc4733b06cff036f89f36d93b7df1c8a0549bbb7a5b",
|
|
||||||
"licenses/dependencies/ipnet-2.12.1/LICENSE-MIT": "47dc9ff29128ddfb4d6a0435383c9f89120bc374dbcc1dd00b933a0b28aa7865",
|
|
||||||
"licenses/dependencies/itoa-1.0.18/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/itoa-1.0.18/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/jobserver-0.1.35/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/jobserver-0.1.35/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397",
|
|
||||||
"licenses/dependencies/khronos-egl-6.0.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/khronos-egl-6.0.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/kurbo-0.10.4/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/kurbo-0.10.4/LICENSE-MIT": "23c23145f6eac25c28cdcc03d38506a5712a9a8cffb5bd5301457f6173ea696e",
|
|
||||||
"licenses/dependencies/libc-0.2.189/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/libc-0.2.189/LICENSE-MIT": "123a331b5dbf04c30097fa43b8f858bc85df671fe776de498d01f3d6b7c1f69e",
|
|
||||||
"licenses/dependencies/libloading-0.8.9/LICENSE": "b29f8b01452350c20dd1af16ef83b598fea3053578ccc1c7a0ef40e57be2620f",
|
|
||||||
"licenses/dependencies/libm-0.2.16/LICENSE.txt": "3823dda7cf046602f4b4e77ec8e227863dc4736037cc85bb33d9f19febe16bb7",
|
|
||||||
"licenses/dependencies/lilt-0.8.2/LICENSE": "120b2f21f9b9f98ef4159de09f9a55a3afb6733dd1c0b1d9eeec7f136465b2cd",
|
|
||||||
"licenses/dependencies/linebender_resource_handle-0.1.1/LICENSE-APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/linebender_resource_handle-0.1.1/LICENSE-MIT": "508a77d2e7b51d98adeed32648ad124b7b30241a8e70b2e72c99f92d8e5874d1",
|
|
||||||
"licenses/dependencies/litemap-0.8.3/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/litrs-1.0.0/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/litrs-1.0.0/LICENSE-MIT": "7dc1552e88f49132cb358b1b962fc5e79fa42d70bcbb88c526d33e45b8e98036",
|
|
||||||
"licenses/dependencies/lock_api-0.4.14/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/lock_api-0.4.14/LICENSE-MIT": "c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5",
|
|
||||||
"licenses/dependencies/log-0.4.34/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/log-0.4.34/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb",
|
|
||||||
"licenses/dependencies/lru-0.16.4/LICENSE": "061dc50af2cd9340703daf61978af3200cf681b12ea67a323c33ba109a23a45e",
|
|
||||||
"licenses/dependencies/lru-slab-0.1.2/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/lru-slab-0.1.2/LICENSE-MIT": "1466d9b4f3a59bb8997fc8d5fa977ce3f6a24bb2358793c09bfdf007039f6486",
|
|
||||||
"licenses/dependencies/lru-slab-0.1.2/LICENSE-ZLIB": "09785877275ffada6c371b652a30e95c26b435126fc0fc62f1bc2d72171f80a4",
|
|
||||||
"licenses/dependencies/matchit-0.8.4/LICENSE": "de701d0618d694feb1af90f02181a1763d9b0bdeb70a3a592781e529077dba65",
|
|
||||||
"licenses/dependencies/matchit-0.8.4/LICENSE.httprouter": "162ce11ad71338d0a0c6ebaf5c48af72c6ae237b468859d3656fe2d9ed3f3a85",
|
|
||||||
"licenses/dependencies/memchr-2.8.3/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f",
|
|
||||||
"licenses/dependencies/memchr-2.8.3/LICENSE-MIT": "0f96a83840e146e43c0ec96a22ec1f392e0680e6c1226e6f3ba87e0740af850f",
|
|
||||||
"licenses/dependencies/memchr-2.8.3/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c",
|
|
||||||
"licenses/dependencies/memmap2-0.9.11/LICENSE-APACHE": "04ea4849dba9dcae07113850c6f1b1a69052c625210639914eee352023f750ad",
|
|
||||||
"licenses/dependencies/memmap2-0.9.11/LICENSE-MIT": "0d25d03b5ab49576178ad0cae7a2648d12c17ad0452fe49c07e55e4b59aa5257",
|
|
||||||
"licenses/dependencies/mime-0.3.17/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/mime-0.3.17/LICENSE-MIT": "df9cfd06d8a44d9a671eadd39ffd97f166481da015a30f45dfd27886209c5922",
|
|
||||||
"licenses/dependencies/mio-1.2.3/LICENSE": "07919255c7e04793d8ea760d6c2ce32d19f9ff02bdbdde3ce90b1e1880929a9b",
|
|
||||||
"licenses/dependencies/naga-27.0.3/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/naga-27.0.3/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21",
|
|
||||||
"licenses/dependencies/num-traits-0.2.19/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/num-traits-0.2.19/LICENSE-MIT": "6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb",
|
|
||||||
"licenses/dependencies/oa-core-0.2.0/workspace-LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365",
|
|
||||||
"licenses/dependencies/oa-desktop-0.2.0/workspace-LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365",
|
|
||||||
"licenses/dependencies/oa-server-0.2.0/workspace-LICENSE": "51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365",
|
|
||||||
"licenses/dependencies/once_cell-1.21.4/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/once_cell-1.21.4/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/ordered-float-5.5.0/LICENSE-MIT": "f7715d38a3fa1b4ac97c5729740752505a39cb92ee83ab5b102aeb5eaa7cdea4",
|
|
||||||
"licenses/dependencies/parking_lot-0.12.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/parking_lot-0.12.5/LICENSE-MIT": "c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5",
|
|
||||||
"licenses/dependencies/parking_lot_core-0.9.12/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/parking_lot_core-0.9.12/LICENSE-MIT": "c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5",
|
|
||||||
"licenses/dependencies/percent-encoding-2.3.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/percent-encoding-2.3.2/LICENSE-MIT": "b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5",
|
|
||||||
"licenses/dependencies/pin-project-lite-0.2.17/LICENSE-APACHE": "0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594",
|
|
||||||
"licenses/dependencies/pin-project-lite-0.2.17/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/pkg-config-0.3.34/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/pkg-config-0.3.34/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397",
|
|
||||||
"licenses/dependencies/potential_utf-0.1.6/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/presser-0.3.1/LICENSE-APACHE": "8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90",
|
|
||||||
"licenses/dependencies/presser-0.3.1/LICENSE-MIT": "090a294a492ab2f41388252312a65cf2f0e423330b721a68c6665ac64766753b",
|
|
||||||
"licenses/dependencies/proc-macro2-1.0.107/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/proc-macro2-1.0.107/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/quinn-0.11.11/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
|
|
||||||
"licenses/dependencies/quinn-0.11.11/LICENSE-MIT": "4b2d0aca6789fa39e03d6738e869ea0988cceba210ca34ebb59c15c463e93a04",
|
|
||||||
"licenses/dependencies/quinn-proto-0.11.17/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
|
|
||||||
"licenses/dependencies/quinn-proto-0.11.17/LICENSE-MIT": "4b2d0aca6789fa39e03d6738e869ea0988cceba210ca34ebb59c15c463e93a04",
|
|
||||||
"licenses/dependencies/quinn-udp-0.5.15/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
|
|
||||||
"licenses/dependencies/quinn-udp-0.5.15/LICENSE-MIT": "4b2d0aca6789fa39e03d6738e869ea0988cceba210ca34ebb59c15c463e93a04",
|
|
||||||
"licenses/dependencies/quote-1.0.47/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/quote-1.0.47/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/rand-0.10.2/COPYRIGHT": "90eb64f0279b0d9432accfa6023ff803bc4965212383697eee27a0f426d5f8d5",
|
|
||||||
"licenses/dependencies/rand-0.10.2/LICENSE-APACHE": "35242e7a83f69875e6edeff02291e688c97caafe2f8902e4e19b49d3e78b4cab",
|
|
||||||
"licenses/dependencies/rand-0.10.2/LICENSE-MIT": "209fbbe0ad52d9235e37badf9cadfe4dbdc87203179c0899e738b39ade42177b",
|
|
||||||
"licenses/dependencies/rand_core-0.10.1/COPYRIGHT": "92b81db30f7ab6d693e0af5661a40d273ca1947e891123ed823924192c10cbc7",
|
|
||||||
"licenses/dependencies/rand_core-0.10.1/LICENSE-APACHE": "6df43f6f4b5d4587f3d8d71e45532c688fd168afa5fe89d571cb32fa09c4ef51",
|
|
||||||
"licenses/dependencies/rand_core-0.10.1/LICENSE-MIT": "8b6e9feec03e7c9a5facb26855cecd31662bf989b636bcfe79521bdf8ac863f0",
|
|
||||||
"licenses/dependencies/rand_pcg-0.10.2/COPYRIGHT": "90eb64f0279b0d9432accfa6023ff803bc4965212383697eee27a0f426d5f8d5",
|
|
||||||
"licenses/dependencies/rand_pcg-0.10.2/LICENSE-APACHE": "6df43f6f4b5d4587f3d8d71e45532c688fd168afa5fe89d571cb32fa09c4ef51",
|
|
||||||
"licenses/dependencies/rand_pcg-0.10.2/LICENSE-MIT": "2234e3cefee876aeb686ad89e978bdb07bf118a1186ab1cf161bcdf69d4b4f57",
|
|
||||||
"licenses/dependencies/range-alloc-0.1.5/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/range-alloc-0.1.5/LICENSE.MIT": "ba00052102ed87948bb8822d6e1c496260c83042887b22bb5caad922ec025a60",
|
|
||||||
"licenses/dependencies/rangemap-1.8.0/LICENSE-APACHE": "1c7745cc26c7294bc9dbc883bcd50700b99a8c0f4859bfce84ec555098ce1ab5",
|
|
||||||
"licenses/dependencies/rangemap-1.8.0/LICENSE-MIT": "29a4c3823ee29ee5a97c145574a1bac20629fd5e6708be1df0d25bab563e093c",
|
|
||||||
"licenses/dependencies/raw-window-handle-0.6.2/LICENSE-APACHE.md": "0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594",
|
|
||||||
"licenses/dependencies/raw-window-handle-0.6.2/LICENSE-MIT.md": "9c5a80639a57c1c945570e7ebbca0706305849ce3c098021325cca9db2f7acc4",
|
|
||||||
"licenses/dependencies/raw-window-handle-0.6.2/LICENSE-ZLIB.md": "ae895c8576e682f310fb70d93d9f99b1dd82872094c54a8f6cdfe2ca5c2d6ecb",
|
|
||||||
"licenses/dependencies/read-fonts-0.35.0/LICENSE-APACHE": "a14f7d685a79c0f4fb64aee305527a6d5fa55f2401f4e6d688d7b1301868e6c0",
|
|
||||||
"licenses/dependencies/read-fonts-0.35.0/LICENSE-MIT": "8a62fa27ffdccc3df19dce90f8bb3d572e27aecffc1a383d0c2601834dcec434",
|
|
||||||
"licenses/dependencies/read-fonts-0.41.0/LICENSE-APACHE": "eba684204073ed715c4abb48129acdfd2bff8ae48339e6a7da3b341d3027b7f0",
|
|
||||||
"licenses/dependencies/read-fonts-0.41.0/LICENSE-MIT": "7b4c9a3946dfcea7967582760e963e27799e225dcf20565c8ef55324bb017427",
|
|
||||||
"licenses/dependencies/renderdoc-sys-1.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/renderdoc-sys-1.1.0/LICENSE-MIT": "24b2f2eff5a7622e87162823e260f00c6dfbce0e26d585d3d28c785f1edc80ed",
|
|
||||||
"licenses/dependencies/reqwest-0.12.28/LICENSE-APACHE": "751963a8b88c0e3a9f27e98933079fbcf09b9998b2c13ac49c2e4d58444520d6",
|
|
||||||
"licenses/dependencies/reqwest-0.12.28/LICENSE-MIT": "47d4e1803702728e03d30f8a848ae2249ba274bbd9f8443e803f7924d83cd371",
|
|
||||||
"licenses/dependencies/rfd-0.15.4/LICENSE": "65fc947f4bac882a2cd104ef73c246b1b037059df9f2b3a58b7f77f0b9e56071",
|
|
||||||
"licenses/dependencies/ring-0.17.14/LICENSE": "b3d734001a94efff3579978d953391aa7115f877657d25eb54037a43875d078a",
|
|
||||||
"licenses/dependencies/ring-0.17.14/LICENSE-BoringSSL": "005fc765ddc5115da796cca915baa9557abae13ff35e0a47c47affc56f6c414d",
|
|
||||||
"licenses/dependencies/ring-0.17.14/LICENSE-other-bits": "f025ccfb7dfb6bdfedc75ca0f67acc69e6fb4998143d834f7c2f38a29989680f",
|
|
||||||
"licenses/dependencies/rustc-hash-1.1.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/rustc-hash-1.1.0/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/rustc-hash-2.1.3/LICENSE-APACHE": "95bd3988beee069fa2848f648dab43cc6e0b2add2ad6bcb17360caf749802bcc",
|
|
||||||
"licenses/dependencies/rustc-hash-2.1.3/LICENSE-MIT": "30fefc3a7d6a0041541858293bcbea2dde4caa4c0a5802f996a7f7e8c0085652",
|
|
||||||
"licenses/dependencies/rustls-0.23.43/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/rustls-0.23.43/LICENSE-ISC": "7cfafc877eccc46c0e346ccbaa5c51bb6b894d2b818e617d970211e232785ad4",
|
|
||||||
"licenses/dependencies/rustls-0.23.43/LICENSE-MIT": "709e3175b4212f7b13aa93971c9f62ff8c69ec45ad8c6532a7e0c41d7a7d6f8c",
|
|
||||||
"licenses/dependencies/rustls-pki-types-1.15.1/LICENSE-APACHE": "45fd05c4865e7c350b98ad7ac50e1b15462d49af4a91e9b0c9dd933dc9a69742",
|
|
||||||
"licenses/dependencies/rustls-pki-types-1.15.1/LICENSE-MIT": "9117d922e667125508dde62b02c1f57ed22f5ad21eb536aa2e2d99e1c796e639",
|
|
||||||
"licenses/dependencies/rustls-webpki-0.103.15/LICENSE": "5b698ca13897be3afdb7174256fa1574f8c6892b8bea1a66dd6469d3fe27885a",
|
|
||||||
"licenses/dependencies/ryu-1.0.23/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/ryu-1.0.23/LICENSE-BOOST": "c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566",
|
|
||||||
"licenses/dependencies/same-file-1.0.6/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f",
|
|
||||||
"licenses/dependencies/same-file-1.0.6/LICENSE-MIT": "cb3c929a05e6cbc9de9ab06a4c57eeb60ca8c724bef6c138c87d3a577e27aa14",
|
|
||||||
"licenses/dependencies/same-file-1.0.6/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c",
|
|
||||||
"licenses/dependencies/scopeguard-1.2.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/scopeguard-1.2.0/LICENSE-MIT": "fb77f0a9c53e473abe5103c8632ef9f0f2874d4fb3f17cb2d8c661aab9cee9d7",
|
|
||||||
"licenses/dependencies/self_cell-1.3.0/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
|
|
||||||
"licenses/dependencies/self_cell-1.3.0/LICENSE-GPLv2": "f9c375a1be4a41f7b70301dd83c91cb89e41567478859b77eef375a52d782505",
|
|
||||||
"licenses/dependencies/serde-1.0.229/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/serde-1.0.229/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/serde_core-1.0.229/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/serde_core-1.0.229/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/serde_derive-1.0.229/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/serde_derive-1.0.229/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/serde_json-1.0.151/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/serde_json-1.0.151/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/serde_path_to_error-0.1.20/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/serde_path_to_error-0.1.20/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/serde_urlencoded-0.7.1/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/serde_urlencoded-0.7.1/LICENSE-MIT": "b9eb266294324f672cbe945fe8f2e32f85024f0d61a1a7d14382cdde0ac44769",
|
|
||||||
"licenses/dependencies/sha1_smol-1.0.1/LICENSE": "282a21b0710441c364025461a447362daf18f5798a7b72ae2f801a2aa536da51",
|
|
||||||
"licenses/dependencies/shlex-2.0.1/LICENSE-APACHE": "553fffcd9b1cb158bc3e9edc35da85ca5c3b3d7d2e61c883ebcfa8a65814b583",
|
|
||||||
"licenses/dependencies/shlex-2.0.1/LICENSE-MIT": "4455bf75a91154108304cb283e0fea9948c14f13e20d60887cf2552449dea3b1",
|
|
||||||
"licenses/dependencies/skrifa-0.37.0/LICENSE-APACHE": "a14f7d685a79c0f4fb64aee305527a6d5fa55f2401f4e6d688d7b1301868e6c0",
|
|
||||||
"licenses/dependencies/skrifa-0.37.0/LICENSE-MIT": "8a62fa27ffdccc3df19dce90f8bb3d572e27aecffc1a383d0c2601834dcec434",
|
|
||||||
"licenses/dependencies/skrifa-0.44.0/LICENSE-APACHE": "eba684204073ed715c4abb48129acdfd2bff8ae48339e6a7da3b341d3027b7f0",
|
|
||||||
"licenses/dependencies/skrifa-0.44.0/LICENSE-MIT": "7b4c9a3946dfcea7967582760e963e27799e225dcf20565c8ef55324bb017427",
|
|
||||||
"licenses/dependencies/slab-0.4.12/LICENSE": "8ce0830173fdac609dfb4ea603fdc002c2f4af0dc9b1a005653f5da9cf534b18",
|
|
||||||
"licenses/dependencies/slotmap-1.1.1/LICENSE": "6cec81441b2ab2b5090954c1fb5d0bcca81b86487b5849061fa8952d20ef67d4",
|
|
||||||
"licenses/dependencies/smallvec-1.16.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/smallvec-1.16.0/LICENSE-MIT": "0b28172679e0009b655da42797c03fd163a3379d5cfa67ba1f1655e974a2a1a9",
|
|
||||||
"licenses/dependencies/smol_str-0.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/smol_str-0.2.2/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/socket2-0.6.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/socket2-0.6.5/LICENSE-MIT": "378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397",
|
|
||||||
"licenses/dependencies/softbuffer-0.4.8/LICENSE-APACHE": "a4445427440043e8ce6fadf7a43fb906cb0d7f6c573a560a9f142cf9f9bf8ff4",
|
|
||||||
"licenses/dependencies/softbuffer-0.4.8/LICENSE-MIT": "0463bfa47d6d763d8c824333efb0e6d6df3946c13c3b077c78ed9f23ca50d0f2",
|
|
||||||
"licenses/dependencies/stable_deref_trait-1.2.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/stable_deref_trait-1.2.1/LICENSE-MIT": "5e05b024f653a5ce199e77cbbbd42fb5553562ec714b819421ed0c3e552a75d7",
|
|
||||||
"licenses/dependencies/static_assertions-1.1.0/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/static_assertions-1.1.0/LICENSE-MIT": "ea084a2373ebc1f0902c09266e7bf25a05ab3814c1805bb017ffa7308f90c061",
|
|
||||||
"licenses/dependencies/strict-num-0.1.1/LICENSE": "3085885678bb161f6c472bbd331f66a2550b555eb76128f7f8247779128199c0",
|
|
||||||
"licenses/dependencies/subtle-2.6.1/LICENSE": "d1fc1bc0d155df60b2e7705b6b2ae02a05c96f948e1cec6e2fb86360b09f346b",
|
|
||||||
"licenses/dependencies/swash-0.2.10/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/swash-0.2.10/LICENSE-MIT": "122dadfc2eb4de0f4bafcd9eb4e7502cfe338a7965ebd1d18708cc5050f43f76",
|
|
||||||
"licenses/dependencies/syn-2.0.119/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/syn-2.0.119/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/syn-3.0.5/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/syn-3.0.5/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/sync_wrapper-1.0.2/LICENSE": "0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594",
|
|
||||||
"licenses/dependencies/synstructure-0.13.2/LICENSE": "219920e865eee70b7dcfc948a86b099e7f4fe2de01bcca2ca9a20c0a033f2b59",
|
|
||||||
"licenses/dependencies/sys-locale-0.3.2/LICENSE-APACHE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
|
|
||||||
"licenses/dependencies/sys-locale-0.3.2/LICENSE-MIT": "5cc390ab5e5e6507f467368cbab1297552d64bfd863f4b496c7928508bcfefd8",
|
|
||||||
"licenses/dependencies/tempfile-3.27.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/tempfile-3.27.0/LICENSE-MIT": "8b427f5bc501764575e52ba4f9d95673cf8f6d80a86d0d06599852e1a9a20a36",
|
|
||||||
"licenses/dependencies/termcolor-1.4.1/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f",
|
|
||||||
"licenses/dependencies/termcolor-1.4.1/LICENSE-MIT": "0f96a83840e146e43c0ec96a22ec1f392e0680e6c1226e6f3ba87e0740af850f",
|
|
||||||
"licenses/dependencies/termcolor-1.4.1/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c",
|
|
||||||
"licenses/dependencies/thiserror-1.0.69/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/thiserror-1.0.69/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/thiserror-2.0.20/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/thiserror-2.0.20/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/thiserror-impl-1.0.69/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/thiserror-impl-1.0.69/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/thiserror-impl-2.0.20/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/thiserror-impl-2.0.20/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/tiny-skia-0.11.4/LICENSE": "6d41e05f1d54fe726997cb0334ec539f1dff50600b1d5d90462ec2b392770ced",
|
|
||||||
"licenses/dependencies/tiny-skia-path-0.11.4/LICENSE": "6d41e05f1d54fe726997cb0334ec539f1dff50600b1d5d90462ec2b392770ced",
|
|
||||||
"licenses/dependencies/tinystr-0.8.4/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/tinyvec-1.13.2/LICENSE-APACHE.md": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/tinyvec-1.13.2/LICENSE-MIT.md": "fd80a26fbb3f644af1fa994134446702932968519797227e07a1368dea80f0bc",
|
|
||||||
"licenses/dependencies/tinyvec-1.13.2/LICENSE-ZLIB.md": "84b34dd7608f7fb9b17bd588a6bf392bf7de504e2716f024a77d89f1b145a151",
|
|
||||||
"licenses/dependencies/tinyvec_macros-0.1.1/LICENSE-APACHE.md": "4f44572785f35152c1fd2eadf565b7e079c0f300b4324f0af653419f9d76b735",
|
|
||||||
"licenses/dependencies/tinyvec_macros-0.1.1/LICENSE-MIT.md": "1dd8eca0f83669e75fa119e34fb9e1be9d16e3e9b6368962b8019db6e8ae5f7b",
|
|
||||||
"licenses/dependencies/tinyvec_macros-0.1.1/LICENSE-ZLIB.md": "41ace205715d9f19a3214218cc1c01d57c533e02cd0fef7c8e51a49a7fce5ac5",
|
|
||||||
"licenses/dependencies/tokio-1.53.1/LICENSE": "253cd04c6714889df2d32f3f64d669179a1c95c76ac43c40882c52eb06bc3552",
|
|
||||||
"licenses/dependencies/tokio-macros-2.7.2/LICENSE": "0b83dc40cba89b9922bb84b0a9c7d2768ce37c1d7e138b7424fd4549915778c9",
|
|
||||||
"licenses/dependencies/tokio-rustls-0.26.5/LICENSE-APACHE": "cc117d90b498b32b11a886f279b359da16a73c3b01efbb2f5cc004b20262334e",
|
|
||||||
"licenses/dependencies/tokio-rustls-0.26.5/LICENSE-MIT": "e20fa2b8e0a2565f24a792b94b4bf4b6c2b9d36f781d8a9516e218a036e6677a",
|
|
||||||
"licenses/dependencies/tower-0.5.3/LICENSE": "4249c8e6c5ebb85f97c77e6457c6fafc1066406eb8f1ef61e796fbdc5ff18482",
|
|
||||||
"licenses/dependencies/tower-http-0.6.11/LICENSE": "5049cf464977eff4b4fcfa7988d84e74116956a3eb9d5f1d451b3f828f945233",
|
|
||||||
"licenses/dependencies/tower-layer-0.3.3/LICENSE": "4249c8e6c5ebb85f97c77e6457c6fafc1066406eb8f1ef61e796fbdc5ff18482",
|
|
||||||
"licenses/dependencies/tower-service-0.3.3/LICENSE": "4249c8e6c5ebb85f97c77e6457c6fafc1066406eb8f1ef61e796fbdc5ff18482",
|
|
||||||
"licenses/dependencies/tracing-0.1.44/LICENSE": "898b1ae9821e98daf8964c8d6c7f61641f5f5aa78ad500020771c0939ee0dea1",
|
|
||||||
"licenses/dependencies/tracing-attributes-0.1.31/LICENSE": "898b1ae9821e98daf8964c8d6c7f61641f5f5aa78ad500020771c0939ee0dea1",
|
|
||||||
"licenses/dependencies/tracing-core-0.1.36/LICENSE": "898b1ae9821e98daf8964c8d6c7f61641f5f5aa78ad500020771c0939ee0dea1",
|
|
||||||
"licenses/dependencies/try-lock-0.2.5/LICENSE": "c816a0749cdc6bf062a5111c159723de51b2bfac66a1dac2655abd9e6b1583eb",
|
|
||||||
"licenses/dependencies/ttf-parser-0.25.1/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/ttf-parser-0.25.1/LICENSE-MIT": "f3c9fe731c701ed77fd5fbaac573872af04dc5869385eb9bd5e3c73c42713814",
|
|
||||||
"licenses/dependencies/unicode-bidi-0.3.18/COPYRIGHT": "edb20b474f6cbd4f4db066b54a9e0f687d0009d309412a63431189b59b8e2a07",
|
|
||||||
"licenses/dependencies/unicode-bidi-0.3.18/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/unicode-bidi-0.3.18/LICENSE-MIT": "7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0",
|
|
||||||
"licenses/dependencies/unicode-ident-1.0.24/LICENSE-APACHE": "62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a",
|
|
||||||
"licenses/dependencies/unicode-ident-1.0.24/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/unicode-ident-1.0.24/LICENSE-UNICODE": "f7db81051789b729fea528a63ec4c938fdcb93d9d61d97dc8cc2e9df6d47f2a1",
|
|
||||||
"licenses/dependencies/unicode-linebreak-0.1.5/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
|
|
||||||
"licenses/dependencies/unicode-script-0.5.8/LICENSE-APACHE": "7cbb56d1b5d83d735056b363ab20958524120afafc4ad8206e6be98cdec5d737",
|
|
||||||
"licenses/dependencies/unicode-script-0.5.8/LICENSE-MIT": "7ad3ea8ca3caf894db98c3f31d5d4949173ffa93c883ef19a9e529ad48960f8c",
|
|
||||||
"licenses/dependencies/unicode-segmentation-1.13.3/COPYRIGHT": "23860c2a7b5d96b21569afedf033469bab9fe14a1b24a35068b8641c578ce24d",
|
|
||||||
"licenses/dependencies/unicode-segmentation-1.13.3/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/unicode-segmentation-1.13.3/LICENSE-MIT": "7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0",
|
|
||||||
"licenses/dependencies/unicode-width-0.2.2/COPYRIGHT": "23860c2a7b5d96b21569afedf033469bab9fe14a1b24a35068b8641c578ce24d",
|
|
||||||
"licenses/dependencies/unicode-width-0.2.2/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/unicode-width-0.2.2/LICENSE-MIT": "7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0",
|
|
||||||
"licenses/dependencies/untrusted-0.9.0/LICENSE.txt": "7abd9b6960dcf7d4d0a48606a5b71bfe37d472db68d70637f3a58a56785f1621",
|
|
||||||
"licenses/dependencies/url-2.5.8/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/url-2.5.8/LICENSE-MIT": "b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5",
|
|
||||||
"licenses/dependencies/utf8_iter-1.0.4/COPYRIGHT": "c30152c94a6d75e021adbc52b3a52470366a46edb917e17deae3259251af244c",
|
|
||||||
"licenses/dependencies/utf8_iter-1.0.4/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/utf8_iter-1.0.4/LICENSE-MIT": "3fa4ca83dcc9237839b1bdeb2e6d16bdfb5ec0c5ce42b24694d8bbf0dcbef72c",
|
|
||||||
"licenses/dependencies/uuid-1.26.0/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/uuid-1.26.0/LICENSE-MIT": "436bc5a105d8e57dcd8778730f3754f7bf39c14d2f530e4cde4bd2d17a83ec3d",
|
|
||||||
"licenses/dependencies/version_check-0.9.5/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/version_check-0.9.5/LICENSE-MIT": "b7e650f3fce5c53249d1cdc608b54df156a97edd636cf9d23498d0cfe7aec63e",
|
|
||||||
"licenses/dependencies/want-0.3.1/LICENSE": "a65f5d0a945d267751344c95665945b90c030ea107faf5c85d518929886187da",
|
|
||||||
"licenses/dependencies/web-time-1.1.0/LICENSE-APACHE": "54a744942eb3fa63a74d8d359989ed6962c04f3f10ff20cfa08ff8aa7efbe4e6",
|
|
||||||
"licenses/dependencies/web-time-1.1.0/LICENSE-MIT": "f428305bbf2e70fbd807af0f3c7ac1b7acfb95311640f451e9d2e48db6d7e96b",
|
|
||||||
"licenses/dependencies/webpki-roots-1.0.9/LICENSE": "e271993808fec50ab29350b39539cdec611a9103f827e0aa26d61da70e2d33f8",
|
|
||||||
"licenses/dependencies/wgpu-27.0.1/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/wgpu-27.0.1/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21",
|
|
||||||
"licenses/dependencies/wgpu-core-27.0.3/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/wgpu-core-27.0.3/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21",
|
|
||||||
"licenses/dependencies/wgpu-core-deps-windows-linux-android-27.0.0/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/wgpu-core-deps-windows-linux-android-27.0.0/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21",
|
|
||||||
"licenses/dependencies/wgpu-hal-27.0.4/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/wgpu-hal-27.0.4/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21",
|
|
||||||
"licenses/dependencies/wgpu-types-27.0.1/LICENSE.APACHE": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9",
|
|
||||||
"licenses/dependencies/wgpu-types-27.0.1/LICENSE.MIT": "dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21",
|
|
||||||
"licenses/dependencies/winapi-util-0.1.11/COPYING": "01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f",
|
|
||||||
"licenses/dependencies/winapi-util-0.1.11/LICENSE-MIT": "cb3c929a05e6cbc9de9ab06a4c57eeb60ca8c724bef6c138c87d3a577e27aa14",
|
|
||||||
"licenses/dependencies/winapi-util-0.1.11/UNLICENSE": "7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c",
|
|
||||||
"licenses/dependencies/windows-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-core-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-core-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-implement-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-implement-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-interface-0.58.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-interface-0.58.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-link-0.2.1/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-link-0.2.1/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-result-0.2.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-result-0.2.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-strings-0.1.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-strings-0.1.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-sys-0.52.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-sys-0.52.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-sys-0.59.0/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-sys-0.59.0/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-sys-0.61.2/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-sys-0.61.2/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows-targets-0.52.6/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows-targets-0.52.6/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/windows_x86_64_gnullvm-0.52.6/license-apache-2.0": "c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b",
|
|
||||||
"licenses/dependencies/windows_x86_64_gnullvm-0.52.6/license-mit": "c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383",
|
|
||||||
"licenses/dependencies/window_clipboard-0.5.1/LICENSE": "7faec985f3e9b1c4a1df646bfedc304ba67e409447f7ab7f4f591f68708d85dc",
|
|
||||||
"licenses/dependencies/winit-0.30.13/LICENSE": "6dc0e068dcf3a5bc8e054205b85b7720e1d49265bbc64bf515d2cf79197df69a",
|
|
||||||
"licenses/dependencies/writeable-0.6.4/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/xml-rs-0.8.29/LICENSE": "0dc18d924dc0a5f41172a393012843a5eaaef338e795b3645da9cc3b6068220b",
|
|
||||||
"licenses/dependencies/yazi-0.2.1/LICENSE-APACHE": "7cfd738c53d61c79f07e348f622bf7707c9084237054d37fbe07788a75f5881c",
|
|
||||||
"licenses/dependencies/yazi-0.2.1/LICENSE-MIT": "df62e3ef3f207c91073fedd78b4156a278681d0dd3f942379242c62c6a71a3ec",
|
|
||||||
"licenses/dependencies/yoke-0.8.3/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/yoke-derive-0.8.2/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/zeno-0.3.3/LICENSE-APACHE": "7cfd738c53d61c79f07e348f622bf7707c9084237054d37fbe07788a75f5881c",
|
|
||||||
"licenses/dependencies/zeno-0.3.3/LICENSE-MIT": "34dff8202d63e6df022f4f0ce88dab24f254c35ee0d5958b74dcf74d9eae21cc",
|
|
||||||
"licenses/dependencies/zerocopy-0.8.56/LICENSE-APACHE": "9d185ac6703c4b0453974c0d85e9eee43e6941009296bb1f5eb0b54e2329e9f3",
|
|
||||||
"licenses/dependencies/zerocopy-0.8.56/LICENSE-BSD": "83c1763356e822adde0a2cae748d938a73fdc263849ccff6b27776dff213bd32",
|
|
||||||
"licenses/dependencies/zerocopy-0.8.56/LICENSE-MIT": "1a2f5c12ddc934d58956aa5dbdd3255fe55fd957633ab7d0d39e4f0daa73f7df",
|
|
||||||
"licenses/dependencies/zerocopy-derive-0.8.56/LICENSE-APACHE": "9d185ac6703c4b0453974c0d85e9eee43e6941009296bb1f5eb0b54e2329e9f3",
|
|
||||||
"licenses/dependencies/zerocopy-derive-0.8.56/LICENSE-BSD": "83c1763356e822adde0a2cae748d938a73fdc263849ccff6b27776dff213bd32",
|
|
||||||
"licenses/dependencies/zerocopy-derive-0.8.56/LICENSE-MIT": "1a2f5c12ddc934d58956aa5dbdd3255fe55fd957633ab7d0d39e4f0daa73f7df",
|
|
||||||
"licenses/dependencies/zerofrom-0.1.8/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/zerofrom-derive-0.1.7/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/zeroize-1.9.0/LICENSE-APACHE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/zeroize-1.9.0/LICENSE-MIT": "8c7516d4b27b1e495be5e38b612298b63de48d05f49cdac94f70f3cd70f8864b",
|
|
||||||
"licenses/dependencies/zerotrie-0.2.5/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/zerovec-0.11.8/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/zerovec-derive-0.11.6/LICENSE": "f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2",
|
|
||||||
"licenses/dependencies/zmij-1.0.23/LICENSE-MIT": "23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3",
|
|
||||||
"licenses/dependencies/clipboard-win-5.4.1/supplement/DoumanAsh-clipboard-win-3b27cf2bfd1a-LICENSE": "c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566",
|
|
||||||
"licenses/dependencies/cosmic-text-0.15.0/fonts/FiraMono-LICENSE": "587dd9548304fd421cd254f7550bd101c1250ffc95417f2f7f92d55b44ecbe53",
|
|
||||||
"licenses/dependencies/cosmic-text-0.15.0/fonts/Inter-LICENSE": "3c8d13d97ea5eb62868833a377034c6be6a9833e768d32abec2a767a8101e4bc",
|
|
||||||
"licenses/dependencies/cosmic-text-0.15.0/fonts/NotoSans-LICENSE": "5ec4347054089def6904da61d04f0360968f9ef36634b1fe007a5b6ec2f7aa96",
|
|
||||||
"licenses/dependencies/fontdb-0.23.0/tests/fonts/LICENSE.txt": "b84fdd2c3da5db56385cdbb639795e90aa3e035c53bc3591135f18df3331451f",
|
|
||||||
"licenses/dependencies/gl_generator-0.14.0/supplement/brendanzab-gl-rs-ea503e8d5fb6-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/gpu-alloc-0.6.2/supplement/zakarumych-gpu-alloc-61020bdcb4eb-COPYING": "12121dfa588677007848ab922a45a1e3248868f6ff063598fceb3141d7897314",
|
|
||||||
"licenses/dependencies/gpu-alloc-types-0.3.1/supplement/zakarumych-gpu-alloc-7ddd1fe576fc-COPYING": "12121dfa588677007848ab922a45a1e3248868f6ff063598fceb3141d7897314",
|
|
||||||
"licenses/dependencies/gpu-descriptor-0.3.2/supplement/zakarumych-gpu-descriptor-bb28b4e55b74-COPYING": "f72143f7e9d9fb8bd336b139fa22f825a299591c29f2f7338c5566347b137613",
|
|
||||||
"licenses/dependencies/gpu-descriptor-types-0.2.0/supplement/zakarumych-gpu-descriptor-9f2fb9546591-COPYING": "f72143f7e9d9fb8bd336b139fa22f825a299591c29f2f7338c5566347b137613",
|
|
||||||
"licenses/dependencies/harfrust-0.3.2/scripts/ms-use/COPYING": "9906940f61b1f0b533fa7d99baf55178b2808fbe113ea51dfbfad8572ccd5f2b",
|
|
||||||
"licenses/dependencies/hexf-parse-0.2.1/supplement/CC0-1.0.txt": "a2010f343487d3f7618affe54f789f5487602331c0a8d03f49e9a7c547cf0499",
|
|
||||||
"licenses/dependencies/hexf-parse-0.2.1/supplement/hexf-parse-0.2.1-Cargo.toml": "4a56dbdbc12054fd33b7a2634a45cbbe6fe12f5e6f4081002cbfa527f7220c70",
|
|
||||||
"licenses/dependencies/iced_core-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_core-0.14.0/src/layout/DRUID_LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/iced_debug-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_futures-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_graphics-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_graphics-0.14.0/assets/FiraSans-Regular.ttf/Fira-OFL.txt": "99bfb7c1e845b79d1031fcf37e678178eb4a8c7cc74a3f218ddf7223083a6fcd",
|
|
||||||
"licenses/dependencies/iced_graphics-0.14.0/assets/FiraSans-Regular.ttf/FiraSans-Regular-NOTICE.txt": "1e0baaa389b1647d06322ac9ea37822f31995408200ae5a2805a6b9bea0810d1",
|
|
||||||
"licenses/dependencies/iced_graphics-0.14.0/assets/Iced-Icons.ttf/Iced-Icons-NOTICE.txt": "8175634e30f84ef72a24c4965fb0e87f45a3c1274cc0e79e0473af582cffd1c4",
|
|
||||||
"licenses/dependencies/iced_graphics-0.14.0/assets/Iced-Icons.ttf/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_program-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_renderer-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_runtime-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_tiny_skia-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_wgpu-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_widget-0.14.2/supplement/iced-rs-iced-54abf81d13fe-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/iced_winit-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE": "fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398",
|
|
||||||
"licenses/dependencies/khronos_api-3.1.0/supplement/brendanzab-gl-rs-f150967b1c44-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/lyon-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06",
|
|
||||||
"licenses/dependencies/lyon-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e",
|
|
||||||
"licenses/dependencies/lyon_algorithms-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06",
|
|
||||||
"licenses/dependencies/lyon_algorithms-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e",
|
|
||||||
"licenses/dependencies/lyon_geom-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06",
|
|
||||||
"licenses/dependencies/lyon_geom-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e",
|
|
||||||
"licenses/dependencies/lyon_path-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06",
|
|
||||||
"licenses/dependencies/lyon_path-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e",
|
|
||||||
"licenses/dependencies/lyon_tessellation-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-APACHE": "216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06",
|
|
||||||
"licenses/dependencies/lyon_tessellation-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-MIT": "80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e",
|
|
||||||
"licenses/dependencies/profiling-1.0.18/supplement/aclysma-profiling-8271551172eb-LICENSE-APACHE": "10d30a673cd5e9349bdc02aeb48f14b3386d27d0da32df8f0a555d4aa16aa551",
|
|
||||||
"licenses/dependencies/profiling-1.0.18/supplement/aclysma-profiling-8271551172eb-LICENSE-MIT": "c8167fdeeed46d3f244d3f85c5bf998ce889343691c32be2c61a8bc4b5c08333",
|
|
||||||
"licenses/dependencies/ring-0.17.14/src/polyfill/once_cell/LICENSE-APACHE": "a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2",
|
|
||||||
"licenses/dependencies/ring-0.17.14/src/polyfill/once_cell/LICENSE-MIT": "6ee2ed6c77710de911761acd5fc1ad1da00f476beb1a7ef27e78c2d1858deafc",
|
|
||||||
"licenses/dependencies/ring-0.17.14/third_party/fiat/LICENSE": "9eacbcb81be660840c714a560a9d65ba07913db98dd4baf969f78dd499fdd60f",
|
|
||||||
"licenses/dependencies/spirv-0.3.0+sdk-1.3.268.0/supplement/gfx-rs-rspirv-e91a5debc10c-LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
||||||
"licenses/dependencies/svg_fmt-0.4.5/supplement/nical-rust_debug-93f414cd572b-LICENSE": "7e98bed7f100747aaae7d82ab94fbe6b76fd6b84b09a3aaa413bff8196d0fbb1",
|
|
||||||
"licenses/dependencies/tracing-core-0.1.36/src/spin/LICENSE": "58545fed1565e42d687aecec6897d35c6d37ccb71479a137c0deb2203e125c79",
|
|
||||||
"licenses/dependencies/ttf-parser-0.25.1/tests/fonts/colr_1_LICENSE": "58d1e17ffe5109a7ae296caafcadfdbe6a7d176f0bc4ab01e12a689b0499d8bd"
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"notes.arcadia": "ad9de02963c20d1f43856455a797deb05ca674659e45f2c4b96b52783024f8bd",
|
|
||||||
"project.arcadia": "b1fd5349f956f3a17005f883c6675c73aee0f6bcee2b9fa7a582996215c3b23e",
|
|
||||||
"oa/activities/activity_assess_incident_work.arcadia": "0bb8947810cf9a8bcb9394bf72ca512f9da5bf9128262188510367455291b1d7"
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 114 KiB |
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
"atUtc": "2026-09-11T16:48:57.166281+00:00",
|
|
||||||
"args": [
|
|
||||||
"check",
|
|
||||||
"lifeline",
|
|
||||||
"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\harness\\fixtures\\staged-source-authoring\\base\\project.arcadia",
|
|
||||||
"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-gui-20260911-v2\\checkpoint-first\\project.arcadia",
|
|
||||||
"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-gui-20260911-v2\\checkpoint-first\\project.arcadia"
|
|
||||||
],
|
|
||||||
"exitCode": 0,
|
|
||||||
"oracleSha256": "967d9ba3c6fb3a7efb410833903ec94556ca2d48a67d5072c8bb160f40a00f9c"
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
PASS Lifeline: complete Project + 3 exact source/disk files, original role UUIDs
|
|
||||||
|
Before Width: | Height: | Size: 107 KiB |
@@ -1,25 +0,0 @@
|
|||||||
{
|
|
||||||
"source_identity": "Exact-byte reconstruction d5650309a93f3d590a41f8a8f0322c6500568f69, derived from verified checkpoint b2c3e54001fc19a05423bcd5808ceea78d13ff59 by eleven documented newline restorations and precise preservation attributes. All 238 GUI inputs and 120 core/server files plus shared build resources match; committed Git bytes and fresh checkout match. This is an input-preservation commit, not the original build commit. Server core/dependency sources remain unchanged; current Cargo manifests add only the separate local oa-cli member/lock entry.",
|
|
||||||
"profile": "Prebuilt Windows development-profile artifacts. GUI5657: September 11 final matching desktop build after focused26, strict Clippy and fmt; exact matching test artifact subsequently passed full679. EFEE server: unchanged September 7 workspace-bins build and its historical server gates. Neither a new server build nor release-profile/reproducible-build acceptance is claimed.",
|
|
||||||
"compiler": "Recorded rustc 1.98.1, commit 48a229ceaefd4985c50990b14116b6d856af0985, x86_64-pc-windows-gnullvm, LLVM 22.1.8. Audit matched all 58 recorded target-library hashes; package inventory separately records current read-only compiler/sysroot facts. Original per-binary build records remain in evidence/.",
|
|
||||||
"target": "x86_64-pc-windows-gnullvm",
|
|
||||||
"provenance_reference_base": "Paths in per_binary_provenance refer to the separately retained preparation evidence directory, not files inside the distributable ZIP.",
|
|
||||||
"binary_sha256": {
|
|
||||||
"arcadia-studio.exe": "5657bab5c841939b66f901efe6c0ffb2d7cbbe8cc5f111a0ca3de8073d3846ce",
|
|
||||||
"arcadia-server.exe": "efeeb89c0d2e0f93df4472cb3e9f48b2b722a37ae1043c90a5a56f2e845fe665"
|
|
||||||
},
|
|
||||||
"per_binary_provenance": {
|
|
||||||
"arcadia-studio.exe": {
|
|
||||||
"original_build_status": "evidence/gui-build-status.json",
|
|
||||||
"original_stage": "evidence/gui-stage-manifest.json",
|
|
||||||
"exact_inputs": "evidence/gui-inputs4.json",
|
|
||||||
"later_full_test": "evidence/gui-full679-result.json"
|
|
||||||
},
|
|
||||||
"arcadia-server.exe": {
|
|
||||||
"original_build_status": "evidence/server-original-gates.json",
|
|
||||||
"original_hash": "evidence/server-original-binary-hashes.json",
|
|
||||||
"source_comparison": "evidence/server-prior-input-comparisons.json",
|
|
||||||
"scope": "Unchanged preserved artifact; historical original build and acceptance, no new build/test run."
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,132 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"path": "prepare.py",
|
|
||||||
"bytes": 12841,
|
|
||||||
"sha256": "8a92989460bef90a8b7e3eb3c57d525628d79db672f72037d74d0a772a79f92c"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "prepare.log",
|
|
||||||
"bytes": 3657,
|
|
||||||
"sha256": "21cd606d005afe12ffcf4790ab28a345d8ec7022f7a7bf816ef70ca819febd14"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "prepare-result.json",
|
|
||||||
"bytes": 121,
|
|
||||||
"sha256": "142a6351b40bc78708215fe819898e8bacd076e9bff834f47bf012c0694cbf32"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "preparation.json",
|
|
||||||
"bytes": 47935,
|
|
||||||
"sha256": "01076682a763fca6c6941422b54fed02f1b7f2483c550c51a936b5bdfdbac594"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "committed-roundtrip.json",
|
|
||||||
"bytes": 39327,
|
|
||||||
"sha256": "2f687aa82fa066594dfc6ec82aa2aaafdbea01912305c1a052ef11fb8ba6eb3e"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "evidence-manifest.json",
|
|
||||||
"bytes": 3459,
|
|
||||||
"sha256": "4d9e047a3f23664421db0404cd25ccad870067b5021b617ef4137cacdef4bdab"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "build-evidence.json",
|
|
||||||
"bytes": 2367,
|
|
||||||
"sha256": "16d1ab0df520cd7bb80e2bad89a066b47d4de366929b96a828405a1971d957ec"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "package.ps1",
|
|
||||||
"bytes": 3566,
|
|
||||||
"sha256": "0a7d7bf06dfa32f37635d293a52d425b940999739e32da05b10ee4407564d068"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "package.log",
|
|
||||||
"bytes": 365,
|
|
||||||
"sha256": "65601750bb248b8c59f98a78d6f593011af2f7eafafb1dc1e0eb379695a7c879"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "package-result.json",
|
|
||||||
"bytes": 399,
|
|
||||||
"sha256": "4ceafa4d20f4e30a1bcbe096c775da8b5db52eb045a15f2308b5df7bbe09590d"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "package2.ps1",
|
|
||||||
"bytes": 3811,
|
|
||||||
"sha256": "98f43e1f409823c52dc1ec492adbdb2f6a75779c55106bcd2ed2e630744f55a4"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "package2.log",
|
|
||||||
"bytes": 513,
|
|
||||||
"sha256": "6a260f0978be503a35547c1637a61ac0b27eb71bf314d19eb8b44bf48f8b42b6"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "package2-result.json",
|
|
||||||
"bytes": 291,
|
|
||||||
"sha256": "aaf0c838ea8335c40f7b5d20f48e6c4c2eb282aa338e0ffac350dab229ebbb91"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "metadata2-result.json",
|
|
||||||
"bytes": 533,
|
|
||||||
"sha256": "0a76097d93fbc7fcd2a770ed5a1b4ffe6d3afdd6a0e3c9f76cbc4c95b6fb6a0e"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "push-source.py",
|
|
||||||
"bytes": 3856,
|
|
||||||
"sha256": "4e64842fd8389909b7c11e1f5a04c0459f7987255628598ed2dd19b71641d01f"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "source-push.log",
|
|
||||||
"bytes": 851,
|
|
||||||
"sha256": "5c71bdf121e90f80b611698a700b6d7d512d2f558e48a17076c03282cb00946b"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "source-push-result.json",
|
|
||||||
"bytes": 447,
|
|
||||||
"sha256": "b98699bac76974d644179565163049259c195c9ca7c4c7fadd92c27f2ada4bea"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "readback.py",
|
|
||||||
"bytes": 3510,
|
|
||||||
"sha256": "ef93f489cbea50d419588d89f7d10902f168bdd8d95979649b570180fb99b9ad"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "readback.log",
|
|
||||||
"bytes": 2669,
|
|
||||||
"sha256": "c4d7070f987304ec5b6050ac3da209449787b99bd035529afa3ef66df2d391bd"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "package-readback.json",
|
|
||||||
"bytes": 99379,
|
|
||||||
"sha256": "af8fcc11f1ad863df0861ac248a48391f635bdeef484978b0b9c4732a6593268"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "packages/ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm.zip",
|
|
||||||
"bytes": 32775691,
|
|
||||||
"sha256": "9186d4fc9a7b52fb195c183c4847c8e3419ea6da8b3f907e0c06f9ceec58dee0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "packages/ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm.zip.sha256",
|
|
||||||
"bytes": 144,
|
|
||||||
"sha256": "21455af55f6330235a72f43f09bd155acaea0d647bd3f68f09a64d06a21fdbcc"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "packages/ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm/package.json",
|
|
||||||
"bytes": 76309,
|
|
||||||
"sha256": "25f01823dbceed15468bf759eed3f9ffbfd1098427027288bcbb9a3d356b6a4d"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "packages/ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm/dependency-notices.json",
|
|
||||||
"bytes": 1619822,
|
|
||||||
"sha256": "f318f87e6a23dcfac16ef7b1cfe51ecb804e98e1ff6a97271180319d5922fc0e"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "packages/ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm/documentation-check.json",
|
|
||||||
"bytes": 43,
|
|
||||||
"sha256": "bcc89585951fd9e5a1641993c51ca79e00a7a06944a8273d2df413331320e93f"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "packages/ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm/SHA256SUMS.txt",
|
|
||||||
"bytes": 66376,
|
|
||||||
"sha256": "04e4be3f6a081e11ccad8609643031d91fed82cd08e7c7821002ff9b9a04e454"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -1,86 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-source-layout-20260911/inputs4.json",
|
|
||||||
"destination": "evidence/gui-inputs4.json",
|
|
||||||
"sha256": "669724858967d83ab7da5f78bfafb6065e2bcab3bad0e68d0a74feb86c7195e7",
|
|
||||||
"bytes": 44198
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-source-layout-20260911/gui-verified/manifest.json",
|
|
||||||
"destination": "evidence/gui-stage-manifest.json",
|
|
||||||
"sha256": "4beb64b955aecf5ae3bfb606316ec1fc9d17d288ed85023515148bb1890f034f",
|
|
||||||
"bytes": 641
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-source-layout-20260911/gui1-status.json",
|
|
||||||
"destination": "evidence/gui-build-status.json",
|
|
||||||
"sha256": "aced28a87b7306ad6112496768be0154adeb307b60f21172c4ee4ca72e534731",
|
|
||||||
"bytes": 232
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-source-layout-20260911/gui1.log",
|
|
||||||
"destination": "evidence/gui-build.log",
|
|
||||||
"sha256": "73e2dec6d40e99059b1a89b0f3602239f2df1abac6dde99104679b0b2b04c4a7",
|
|
||||||
"bytes": 157
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-source-layout-20260911/clippy1-status.json",
|
|
||||||
"destination": "evidence/gui-clippy-status.json",
|
|
||||||
"sha256": "03046af19cfc7b5be86fdfc06f5ec542b9f33e94f8121b23236602bdbaca8383",
|
|
||||||
"bytes": 257
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-source-layout-20260911/fmt1-status.json",
|
|
||||||
"destination": "evidence/gui-fmt-status.json",
|
|
||||||
"sha256": "7b8f8ebfb1989cc3bd00e98f49afcf1e533939b50242a6177b8a4e5238641a3f",
|
|
||||||
"bytes": 187
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/contextual-source-layout-20260911/focused4-status.json",
|
|
||||||
"destination": "evidence/gui-focused26-status.json",
|
|
||||||
"sha256": "9242277158a77a9e96c0121637cfe635dde09217ed9e4109d9f37f8e50710eff",
|
|
||||||
"bytes": 293
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": "harness/experiments/contextual-source-layout-full-20260911/full-result.json",
|
|
||||||
"destination": "evidence/gui-full679-result.json",
|
|
||||||
"sha256": "a87d2634fe8be05e7de387346a43056db150f1846ac54a18d02650fe81b9c80d",
|
|
||||||
"bytes": 669
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/source7-post-routing-gates-status.json",
|
|
||||||
"destination": "evidence/server-original-gates.json",
|
|
||||||
"sha256": "b7fdfc55ed4c964d276f20f1c57c81c1e924b8da315171089740ab8335ac9f0d",
|
|
||||||
"bytes": 2572
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/native-qa/source7-post-routing-binary-hashes.json",
|
|
||||||
"destination": "evidence/server-original-binary-hashes.json",
|
|
||||||
"sha256": "110a03e323133efb48d50ad065d41414599aa85e0ac420e7d622aa04df4d54f8",
|
|
||||||
"bytes": 744
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/authoring-prerelease-20260911/inventory.json",
|
|
||||||
"destination": "evidence/server-prior-input-comparisons.json",
|
|
||||||
"sha256": "3c78dea4e93dae186fd24ab826c6680178a2c7849c270a22deae2ff732f1857b",
|
|
||||||
"bytes": 66465
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/linux-qa/runtime/source7-20260907T082753190288Z.tar.gz",
|
|
||||||
"destination": "evidence/server-source-snapshot.tar.gz",
|
|
||||||
"sha256": "cbb371a93a562e1e641d7629fe351e016d63e66fc9112499b3fed6d5cd171f78",
|
|
||||||
"bytes": 2089801
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": ".local/authoring-prerelease-20260911/packages/ArcadiaStudio-0.2.0-preview.authoring.20260911-x86_64-pc-windows-gnullvm/dependency-notices.json",
|
|
||||||
"destination": "evidence/prior-dependency-notices.json",
|
|
||||||
"sha256": "98fab15c1a2bb3aa727c6d52d5c69435b15efa56b6668ed717e7a04cf86f9b52",
|
|
||||||
"bytes": 1619590
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"source": "harness/release-contextual-source-windows-update-plan-20260911.md",
|
|
||||||
"destination": "evidence/update-audit.md",
|
|
||||||
"sha256": "305f0be41ae2a6d7b29edb51c411a0f229a7f41f4ff1b78a46fc27730a1991f0",
|
|
||||||
"bytes": 11024
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"started": "2026-09-11T14:54:17.2204596Z",
|
|
||||||
"finished": "2026-09-11T14:59:28.4253937Z",
|
|
||||||
"exitCode": 0,
|
|
||||||
"args": [
|
|
||||||
"build",
|
|
||||||
"--locked",
|
|
||||||
"-p",
|
|
||||||
"oa-desktop",
|
|
||||||
"--bin",
|
|
||||||
"arcadia-studio"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
Compiling oa-desktop v0.2.0 (C:\Users\User\Documents\Git\ARCADIA-Studio\crates\oa-desktop)
|
|
||||||
Finished `dev` profile [unoptimized] target(s) in 5m 09s
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"started": "2026-09-11T14:49:33.4237872Z",
|
|
||||||
"finished": "2026-09-11T14:53:19.3339398Z",
|
|
||||||
"exitCode": 0,
|
|
||||||
"args": [
|
|
||||||
"clippy",
|
|
||||||
"--locked",
|
|
||||||
"-p",
|
|
||||||
"oa-desktop",
|
|
||||||
"--all-targets",
|
|
||||||
"--",
|
|
||||||
"-D",
|
|
||||||
"warnings"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
"started": "2026-09-11T14:53:19.4525289Z",
|
|
||||||
"finished": "2026-09-11T14:54:17.1985960Z",
|
|
||||||
"exitCode": 0,
|
|
||||||
"args": [
|
|
||||||
"fmt",
|
|
||||||
"--all",
|
|
||||||
"--",
|
|
||||||
"--check"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"started": "2026-09-11T14:38:08.8878127Z",
|
|
||||||
"finished": "2026-09-11T14:49:33.2136325Z",
|
|
||||||
"exitCode": 0,
|
|
||||||
"args": [
|
|
||||||
"test",
|
|
||||||
"--locked",
|
|
||||||
"-p",
|
|
||||||
"oa-desktop",
|
|
||||||
"--bin",
|
|
||||||
"arcadia-studio",
|
|
||||||
"contextual_source",
|
|
||||||
"--",
|
|
||||||
"--test-threads=1"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
"command": [
|
|
||||||
"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-source-layout-20260911\\tests-final\\arcadia-studio-tests.exe",
|
|
||||||
"--test-threads=1"
|
|
||||||
],
|
|
||||||
"started": "2026-09-11T15:38:16.318188+00:00",
|
|
||||||
"finished": "2026-09-11T15:47:53.099927+00:00",
|
|
||||||
"seconds": 576.7820000000002,
|
|
||||||
"exitCode": 0,
|
|
||||||
"executableSha256": "75AB0E151D85473631D5A145527F3F6B9768A3CD61CE66A0603A574E09557017",
|
|
||||||
"inputIdentityUnchanged": true,
|
|
||||||
"summary": "test result: ok. 679 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 576.67s",
|
|
||||||
"passed": 679,
|
|
||||||
"failed": 0,
|
|
||||||
"ignored": 0,
|
|
||||||
"measured": 0,
|
|
||||||
"filtered": 0
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
"created": "2026-09-11T14:59:46.5765916Z",
|
|
||||||
"scope": "Final matching Windows GUI build, strictClippy and formatting passed; native acceptance pending root",
|
|
||||||
"sourceInputs": "../inputs4.json",
|
|
||||||
"predecessorGuiSha256": "52DE82E434B636E18DB02D381842AA6DB84B721CFFD5502063F784F37246ACCE",
|
|
||||||
"artifacts": [
|
|
||||||
{
|
|
||||||
"file": "arcadia-studio.exe",
|
|
||||||
"sha256": "5657BAB5C841939B66F901EFE6C0FFB2D7CBBE8CC5F111A0CA3DE8073D3846CE",
|
|
||||||
"bytes": 112239104
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"file": "libunwind.dll",
|
|
||||||
"sha256": "F45604A12E8BCD839FD86F667C1BE1CC7C4F9DA2B3C69FF381AC708F0E1AE7D4",
|
|
||||||
"bytes": 190976
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"Algorithm": "SHA256",
|
|
||||||
"Hash": "EFEEB89C0D2E0F93DF4472CB3E9F48B2B722A37AE1043C90A5A56F2E845FE665",
|
|
||||||
"Path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\bin-source7-post-routing\\arcadia-server.exe"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Algorithm": "SHA256",
|
|
||||||
"Hash": "BCC1FC6DB68123C9D3A43CE53AA8EF59E33C54080632C104C99ED13270D5333F",
|
|
||||||
"Path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\bin-source7-post-routing\\arcadia-studio.exe"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Algorithm": "SHA256",
|
|
||||||
"Hash": "F45604A12E8BCD839FD86F667C1BE1CC7C4F9DA2B3C69FF381AC708F0E1AE7D4",
|
|
||||||
"Path": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\native-qa\\bin-source7-post-routing\\libunwind.dll"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -1,94 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"gate": "server-prepared-http-focused",
|
|
||||||
"arguments": [
|
|
||||||
"test",
|
|
||||||
"--locked",
|
|
||||||
"-p",
|
|
||||||
"oa-server",
|
|
||||||
"--lib",
|
|
||||||
"prepared_source_http_rechecks_revision_without_holding_catalog",
|
|
||||||
"--",
|
|
||||||
"--test-threads=1"
|
|
||||||
],
|
|
||||||
"exit_code": 0,
|
|
||||||
"started_utc": "2026-09-07T08:23:07.0831759+00:00",
|
|
||||||
"seconds": 69.6832421,
|
|
||||||
"log": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\source7-server-prepared-http-focused.log"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"gate": "server-preparation-cancel-focused",
|
|
||||||
"arguments": [
|
|
||||||
"test",
|
|
||||||
"--locked",
|
|
||||||
"-p",
|
|
||||||
"oa-server",
|
|
||||||
"--lib",
|
|
||||||
"preparation_gate_drop_cancels_without_installing_candidate",
|
|
||||||
"--",
|
|
||||||
"--test-threads=1"
|
|
||||||
],
|
|
||||||
"exit_code": 0,
|
|
||||||
"started_utc": "2026-09-07T08:24:16.8319371+00:00",
|
|
||||||
"seconds": 2.432465,
|
|
||||||
"log": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\source7-server-preparation-cancel-focused.log"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"gate": "server-post-preparation-all-targets",
|
|
||||||
"arguments": [
|
|
||||||
"test",
|
|
||||||
"--locked",
|
|
||||||
"-p",
|
|
||||||
"oa-server",
|
|
||||||
"--all-targets",
|
|
||||||
"--",
|
|
||||||
"--test-threads=1"
|
|
||||||
],
|
|
||||||
"exit_code": 0,
|
|
||||||
"started_utc": "2026-09-07T08:24:19.2701877+00:00",
|
|
||||||
"seconds": 68.7776991,
|
|
||||||
"log": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\source7-server-post-preparation-all-targets.log"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"gate": "post-routing-format",
|
|
||||||
"arguments": [
|
|
||||||
"fmt",
|
|
||||||
"--all",
|
|
||||||
"--",
|
|
||||||
"--check"
|
|
||||||
],
|
|
||||||
"exit_code": 0,
|
|
||||||
"started_utc": "2026-09-07T08:25:28.0423877+00:00",
|
|
||||||
"seconds": 10.4439919,
|
|
||||||
"log": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\source7-post-routing-format.log"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"gate": "post-routing-clippy",
|
|
||||||
"arguments": [
|
|
||||||
"clippy",
|
|
||||||
"--locked",
|
|
||||||
"--workspace",
|
|
||||||
"--all-targets",
|
|
||||||
"--",
|
|
||||||
"-D",
|
|
||||||
"warnings"
|
|
||||||
],
|
|
||||||
"exit_code": 0,
|
|
||||||
"started_utc": "2026-09-07T08:25:38.4870720+00:00",
|
|
||||||
"seconds": 99.601402,
|
|
||||||
"log": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\source7-post-routing-clippy.log"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"gate": "post-routing-native-build",
|
|
||||||
"arguments": [
|
|
||||||
"build",
|
|
||||||
"--locked",
|
|
||||||
"--workspace",
|
|
||||||
"--bins"
|
|
||||||
],
|
|
||||||
"exit_code": 0,
|
|
||||||
"started_utc": "2026-09-07T08:27:18.0824157+00:00",
|
|
||||||
"seconds": 102.2180643,
|
|
||||||
"log": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\source7-post-routing-native-build.log"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
# Windows contextual-source update preparation — 2026-09-11
|
|
||||||
|
|
||||||
Owner: Codex-9e8r6t `/root/release_audit`. Read-only audit coordinated in Gitea issue 1 comment 374; root owns version selection, preparation, acceptance and publication. Linux remains user-paused. This report creates no package, compiler result or release.
|
|
||||||
|
|
||||||
## Recommendation
|
|
||||||
|
|
||||||
Prepare a fresh Windows prerelease combining GUI **5657BAB5** with the preserved server **EFEEB89C**, using the existing `scripts/package-windows.ps1`. No server source or dependency change requiring a rebuild was found. Describe the server as the unchanged September 7 artifact with its original provenance, not as newly built with the GUI. Keep the separately published CLI release separate.
|
|
||||||
|
|
||||||
Suggested unreserved version: `0.2.0-preview.contextual.20260911`, tag `v0.2.0-preview.contextual.20260911`. The currently published Studio release is `v0.2.0-preview.authoring.20260911` (D4D9/EFEE, 559 files, ZIP SHA256 `664f30b6217689aca1492eb263b3d15777067d732fa890eeb028f435209dadfa`). It must remain unchanged. Gitea readback found that Studio prerelease and the separate CLI prerelease; no competing update publication was claimed.
|
|
||||||
|
|
||||||
## Artifact and server-input evidence
|
|
||||||
|
|
||||||
Paths are relative to the repository. The existing GUI gate manifest is `.local/contextual-source-layout-20260911/gui-verified/manifest.json`; exact source admission is `.local/contextual-source-layout-20260911/inputs4.json`, also archived under `harness/experiments/contextual-source-layout-postboot-20260911/` (SHA256 `669724858967d83ab7da5f78bfafb6065e2bcab3bad0e68d0a74feb86c7195e7`). All **238 current files** matched that manifest in this audit.
|
|
||||||
|
|
||||||
| Proposed immutable input | Bytes | SHA256 |
|
|
||||||
| --- | ---: | --- |
|
|
||||||
| `.local/contextual-source-layout-20260911/gui-verified/arcadia-studio.exe` | 112,239,104 | `5657bab5c841939b66f901efe6c0ffb2d7cbbe8cc5f111a0ca3de8073d3846ce` |
|
|
||||||
| `.local/native-qa/bin-source7-post-routing/arcadia-server.exe` | 39,743,488 | `efeeb89c0d2e0f93df4472cb3e9f48b2b722a37ae1043c90a5a56f2e845fe665` |
|
|
||||||
| GUI sibling `libunwind.dll` | 190,976 | `f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4` |
|
|
||||||
|
|
||||||
Server reuse rests on actual inputs, not matching API versions:
|
|
||||||
|
|
||||||
- All **120 recorded core/server files** in `.local/authoring-prerelease-20260911/inventory.json` match current bytes. The prior strict notice inventories' complete local file sets also match: **100 core files and 20 server files**, with no additions or omissions. This includes both crate manifests, build scripts, all source and test files, and core examples. Every current GUI-recorded core/server input is covered.
|
|
||||||
- The preserved source tar `.local/linux-qa/runtime/source7-20260907T082753190288Z.tar.gz` was freshly rehashed: 2,089,801 bytes, SHA256 `cbb371a93a562e1e641d7629fe351e016d63e66fc9112499b3fed6d5cd171f78`. The original inventory records all 120 files' equality with that tar and the earlier release source. The tar's name does not itself attest the Windows executable; separate Windows binary/build records supply that connection.
|
|
||||||
- Root `Cargo.toml` differs only by the local `crates/oa-cli` workspace member. Parsed lock comparison finds **463 unchanged existing package records**, no removal or changed dependency/checksum record, and one added `oa-cli 0.2.0` entry with `oa-core`, `serde`, `serde_json`. The CLI manifest adds no feature or build-dependency request; these requests are already present in the server/core graph. Resolver, workspace dependency declarations and development profile are unchanged. Raw whole-manifest equality is explicitly **not** claimed.
|
|
||||||
- Shared `build/windows_manifest.rs`, `build/windows.manifest`, `build/windows.rc`, `LICENSE`, and the embedded raw `docs/openapi.json` match the prior inventory. OpenAPI SHA256 remains `c6ae512f791a939eaf6ec5e5e78e9468bdee0e028092d00098bd90ad9498d967`. These shared inputs are checked separately because the 238-file GUI manifest does not include every build resource.
|
|
||||||
|
|
||||||
The reference strict inventory is `.local/authoring-prerelease-20260911/packages/ArcadiaStudio-0.2.0-preview.authoring.20260911-x86_64-pc-windows-gnullvm/dependency-notices.json`, SHA256 `98fab15c1a2bb3aa727c6d52d5c69435b15efa56b6668ed717e7a04cf86f9b52`. Fresh read-only hashing matched **263 registry archive checksums, all 12,361 recorded registry source-file hashes, and all 58 Rust target-library hashes**, plus both preserved EFEE copies and the GUI/runtime table above. The recorded compiler is Rust 1.98.1, commit `48a229ceaefd4985c50990b14116b6d856af0985`, Windows gnullvm, LLVM 22.1.8. No rustc or Cargo command was run in this audit. This desktop/server dependency graph is a conservative superset; it does not assert every inventoried package is linked into the server.
|
|
||||||
|
|
||||||
All **263 registry source file sets** also match, excluding the packager's top-level `target/` and `.cargo-ok`. The first audit enumerator mistakenly excluded any directory named `target`, reporting four `cc-1.4.5/src/target/*.rs` files absent; all four recorded hashes had already passed. Correcting that audit-only exclusion produced zero set differences. This was not a source or package defect; no production file changed.
|
|
||||||
|
|
||||||
Original server evidence remains `.local/source7-post-routing-gates-status.json`, `.local/native-qa/source7-post-routing-binary-hashes.json`, and `harness/experiments/textual-authoring-20260911-local/provenance.json`: September 7 workspace binary build exit 0, recorded server 56/56, formatting and strict Clippy. The previous clean-package server review exercised health, exact OpenAPI, persistence and restart. These are historical results, not reruns by this audit. Neither embedded compiler paths nor source equality proves every historical linker/environment input or a reproducible build. Reusing the exact accepted artifact requires no such new claim.
|
|
||||||
|
|
||||||
## Exact source preservation before packaging
|
|
||||||
|
|
||||||
Root committed the verified checkpoint during this audit. Fresh readback of **`b2c3e54001fc19a05423bcd5808ceea78d13ff59`** matches **227/238 Git blobs** to GUI5657's raw inputs. All eleven remaining differences are newline-only: `behavior/creation.rs`, `behavior/scenario/workspace.rs`, `behavior/topology/contextual.rs`, `guide.rs`, six `semantic_review` files (`artifacts_view.rs`, `attachments_view.rs`, `keyed_rows.rs`, `keyed_tests.rs`, `keyed.rs`, `ordered.rs`), and `docs/openapi.json`. Rust paths here are under `crates/oa-desktop/src/`.
|
|
||||||
|
|
||||||
The initial comparison against `ca53f574e57381a523e946d5277b4081cff74355` had one additional real difference: the reviewed postboot **test-only** overflow-fixture correction. It is now committed: `behavior/source_draft.rs` Git bytes match required SHA256 `85d543cc288e48b4c13001e4e386b5b54d9b1e349a5ac31e4e307572f2d8fb3c` and the archived raw snapshot.
|
|
||||||
|
|
||||||
Ten newline cases reproduce by LF→CRLF. **`behavior/creation.rs` has mixed newlines**: only copying its exact frozen raw bytes reproduces SHA256 `0fb19be3a5688c4bd3ca3643c47a97da7e7f85add8a860cd046a0d9cb3ce9dfc`; uniform conversion does not. Do not reuse the previous release's seven-file restoration list blindly.
|
|
||||||
|
|
||||||
Use that exact verified checkpoint, or recompute differences if root selects another commit. In a new isolated package source tree, preserve only the identified exact raw inputs with precise `-text` attributes and a recorded reconstruction commit. Validate all 238 GUI inputs, the 120-file server closure, shared build resources and subsequent Git checkout bytes. Preserve the original build manifests and explain that the reconstruction commit records matching inputs; it is not the original build commit. Main-tree newline policy need not change. Newer documentation may ship from the verified checkpoint with its own packaging inventory, without pretending it was compiled into the older server.
|
|
||||||
|
|
||||||
## Smallest authorized next execution
|
|
||||||
|
|
||||||
1. Root selects/reserves the version and source commit, then authorizes an isolated directory such as `.local/contextual-prerelease-20260911/`. Prepare exact source as above and copy the three immutable inputs into a fresh private binary directory. Recheck hashes before and after copying. Existing `.local/authoring-prerelease-20260911/{inventory.py,prepare.py,verify-committed.py,package.ps1}` provide the prior mechanism, but contain old paths, hashes, version and seven-file assumptions; they must not be rerun unchanged or overwrite old evidence.
|
|
||||||
2. Write new build-evidence JSON with exact target and binary hashes. Explain GUI5657's current gate, unchanged EFEE's historical build, reconstructed source identity and the development profile. `Read-PackageBuildEvidence` checks target/binary hashes; its source/profile/compiler prose is a caller assertion, so include the actual comparisons and original records.
|
|
||||||
3. Obtain the short metadata lease and invoke the existing isolated `scripts/package-windows.ps1` with `-Target x86_64-pc-windows-gnullvm`, the new `-Version`, private `-BinaryDirectory`, verified LLVM-MinGW root, new `-BuildEvidence`, explicit bundled Python path and fresh `-OutputRoot`. The script performs one locked offline Cargo metadata operation, strict notices and PE/runtime checks; it does not build/download. Generate fresh notices from the new source snapshot rather than relabeling the old inventory. Keep checksum-bound fonts, ordinary-file containment, refusal to overwrite, deterministic archive/readback and package-local document closure intact. No packaging redesign is needed.
|
|
||||||
4. Record actual archive checksum/count, logs and source/artifact provenance. The packager's success remains `NativeAcceptancePending`. Root verifies fresh extraction with clean PATH/profile: desktop startup/help and a bounded contextual-source action, server startup/health and exact OpenAPI plus persistence/restart using the existing accepted smoke procedure. Publish the new ZIP/checksum/validation record only after these gates, with download readback; publication belongs to root.
|
|
||||||
|
|
||||||
The currently observed scripts are pinned by SHA256: `package-windows.ps1` `28997ff78565619ed9c9b185f66dc922808f1f0be17f522b430c6c415448663d`; `package-common.ps1` `d859453a8230b4f305d822c8742b371a71e35df698109a5d55c948f6dfaf0640`; `windows-notices.ps1` `a5328c05579e1b9ca09142ee99e87c12994d12764f7c69448e392883d718ef01`; supplement manifest `93d47a4d91b9a888e7baef55e827fd462fb71c5892e4b6a89787d4fb227e62c2`.
|
|
||||||
|
|
||||||
Release notes can cite the actual current **679/679**, zero failed/ignored, immutable test SHA256 `75ab0e151d85473631d5a145527f3f6b9768a3cd61ce66a0603a574e09557017`, plus focused 26/26, strict all-target desktop Clippy, fmt and matching GUI build. Full-run evidence is `harness/experiments/contextual-source-layout-full-20260911/`. GUI5657 recovery/Lifeline/Machine evidence is separately archived by the native owner; do not transfer GUI52-only Chain results into a GUI5657 claim. This remains a Windows development-profile prerelease, not complete OA/SA product acceptance, optimized-build acceptance, peer-feature integration or Linux acceptance.
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
{
|
|
||||||
"executable": "C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\toolchain\\cargo\\bin\\cargo.exe",
|
|
||||||
"arguments": [
|
|
||||||
"metadata",
|
|
||||||
"--locked",
|
|
||||||
"--offline",
|
|
||||||
"--manifest-path",
|
|
||||||
"C:\\Users\\User\\Documents\\Git\\ARCADIA-Studio\\.local\\contextual-prerelease-20260911\\source\\Cargo.toml",
|
|
||||||
"--filter-platform",
|
|
||||||
"x86_64-pc-windows-gnullvm",
|
|
||||||
"--format-version",
|
|
||||||
1
|
|
||||||
],
|
|
||||||
"started": "2026-09-11T16:15:17.5992807Z",
|
|
||||||
"exitCode": 0,
|
|
||||||
"finished": "2026-09-11T16:15:39.1941808Z"
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
9186d4fc9a7b52fb195c183c4847c8e3419ea6da8b3f907e0c06f9ceec58dee0 ArcadiaStudio-0.2.0-preview.contextual.20260911-x86_64-pc-windows-gnullvm.zip
|
|
||||||
@@ -1,558 +0,0 @@
|
|||||||
efeeb89c0d2e0f93df4472cb3e9f48b2b722a37ae1043c90a5a56f2e845fe665 arcadia-server.exe
|
|
||||||
5657bab5c841939b66f901efe6c0ffb2d7cbbe8cc5f111a0ca3de8073d3846ce arcadia-studio.exe
|
|
||||||
f318f87e6a23dcfac16ef7b1cfe51ecb804e98e1ff6a97271180319d5922fc0e dependency-notices.json
|
|
||||||
1e6c6bb4065e25f8fe1d558a4ed0bbd4844782a4377c2482488db1e6f9cab01d deployment/arcadia-server.service
|
|
||||||
72c04aef4ec879955ed3bdf315987553d018ef46e4b8f350f0f6fe380c453eb7 deployment/Dockerfile
|
|
||||||
6bb7d7496110b11a531cb8cd923864c6610850a8f1c4de8a797f54c7156f29e1 deployment/Dockerfile.dockerignore
|
|
||||||
a06126cb741da57e9c06e83fc4137ccde0de05562673546bc9d405878f51ea07 docs/api.html
|
|
||||||
ca7d310138c3b4d429d80a1d03d1ac8d4a9296069e205da573034256d10438a7 docs/api.rst
|
|
||||||
67dcfa3477b48a0b07298ec81741840cc3ccff12c7d58164873d746d41d611c8 docs/language.html
|
|
||||||
ac6b1d982c55f246de2f3c844b24b874599a3c20cfbd7ed22efe4561ac622b83 docs/language.rst
|
|
||||||
41a1bb1095801df37a1411341c5791d55ea8c365739314d599a60269ac4bc7a0 docs/linux-packaging.md
|
|
||||||
c6ae512f791a939eaf6ec5e5e78e9468bdee0e028092d00098bd90ad9498d967 docs/openapi.json
|
|
||||||
4828df5bc679e7c71f49b4b85c9e7dacbec52f46d416fed48af70e08886d4e4e docs/research-v2-service.md
|
|
||||||
4eb24937d424ba8b384e1734e02a6f8e963ae11d2715889c92b14b39ff2e4a48 docs/server.md
|
|
||||||
2c852ff7041713ffbff3c951ac98df647c51fb70b0feba9000f7bfd5bc2703a8 docs/windows-packaging.md
|
|
||||||
bcc89585951fd9e5a1641993c51ca79e00a7a06944a8273d2df413331320e93f documentation-check.json
|
|
||||||
7e183ef9fd8154d3074303f1956cd0d9871c19e3ffc630d333b0bffbd6e30e17 examples/coastal-rescue.arcadia
|
|
||||||
242f0b031229a87af5c4ebe5d651defe59c191a6b7a69dc0a77f7e203411f195 examples/coastal-rescue.json
|
|
||||||
4dbbbdf8bc7e6cb8e0a81dd678069dae585a9e5187c59bc3665e1fdab3f1a86a examples/legacy-v1-coastal-rescue.arcadia
|
|
||||||
fd0e9dedfb7adb922dc0575cc2b820d40344d639f1d8052bd70363aa59de9c24 examples/legacy-v1-coastal-rescue.oa.json
|
|
||||||
f4db17bdca4ecbb1bf0caef01b2da5f1f7f798ab3152b648ce6dd8696a6a68e5 examples/release1/evidence/repair-check.md
|
|
||||||
3700393d76b940cfc076bf52861bd7b1f43370f8eabce3594531bd0bf1fc851e examples/release1/expected-diagnostics.json
|
|
||||||
ef0ef4006c3e09d5db6e1b621256b3f7d6642f3a7b09cc34607cfbcca830c727 examples/release1/model.json
|
|
||||||
15f30f6bde655808fe754665c26d560e36f2a9bad340f346b09137d0d05045f5 examples/release1/model.rs
|
|
||||||
83e73d0a013d5c3e1a4af0d9139ab0cfa362d25a846671fc2dac59181061a9d4 examples/release1/oa/activities/activity_oa_restore_work.arcadia
|
|
||||||
172c32c044ef4b5bc58a1f4635cc81f48dabb4014479b47dce7b25fedf2dbd0d examples/release1/oa/behavior/process_oa_assessment_procedure.arcadia
|
|
||||||
d2552dc5383e2e91cb302a790364e197f663c2edc013a2ab1978789825c9c324 examples/release1/oa/behavior/process_oa_field_procedure.arcadia
|
|
||||||
cf86f46fa5c5d70592ef43f1bc1cb4d968efd8add384ba88036bef6b88aa4abc examples/release1/oa/behavior/process_oa_response.arcadia
|
|
||||||
b25be524e98a35ebac5e4481b7609c027b32baf9605e8097f807560f94a77ca6 examples/release1/oa/behavior/scenario_oa_conversation.arcadia
|
|
||||||
00a1edf2c9707a0eb62ac070c2d02467874f2c9c1f273cc6ddb53d6d65999a1c examples/release1/oa/behavior/scenario_oa_full_scenario.arcadia
|
|
||||||
447c9ad1359f4a31ecf975ad07c0b08d8e7e03191fb0858e2fc56f377b223cd5 examples/release1/oa/behavior/state_machine_oa_monitor.arcadia
|
|
||||||
fc8012e5554350b12e1cb80080f8feab80d933c9b33c0f2a7bb500cb7d609936 examples/release1/oa/capabilities.arcadia
|
|
||||||
f7cf914766ea73ec53b85e32d117ea9a9dba52d3e038246863541ae7069b1a15 examples/release1/oa/model.arcadia
|
|
||||||
951764c14179f27c10e315acf2ea37d1fff54c77b8441e23addd239e8c715ce3 examples/release1/oa/participants.arcadia
|
|
||||||
9d0396fb82dd5733edd8d1cf52f968ca84906927c704f9cf0944a7fae215cf49 examples/release1/oa/types.arcadia
|
|
||||||
b2674e6bf77cfe0f6f0ba79c81d2e96d92f39c02ca2c6266d80e91723bfb9fda examples/release1/project.arcadia
|
|
||||||
113cfb1cf38a98b51bff60442d86a35d636a3d80ef206bece7d53d0aae67f2d5 examples/release1/README.md
|
|
||||||
73928ced61c06cbc08728d7956676a50fd4c05aa5b7f1ff4f29ce27a0b0f2088 examples/release1/sa/behavior/process_sa_assessment_procedure.arcadia
|
|
||||||
886d462af83110cbfa55dd232a667ea1446761234471357cbb878794e98e8768 examples/release1/sa/behavior/process_sa_field_procedure.arcadia
|
|
||||||
041785fc22842423822431bd5e6e8d16094ebd0716965e7c765fb8c1d7549e8a examples/release1/sa/behavior/process_sa_response.arcadia
|
|
||||||
97276f5757ee9aa12a0dbd9d3ccd58174b3091162bb8bcce357cec20a45f5d85 examples/release1/sa/behavior/scenario_sa_conversation.arcadia
|
|
||||||
e12fc406b99d60a2f7768aaa0b25ba560e8605f0b8e37f3a7cdd3b8443562b74 examples/release1/sa/behavior/scenario_sa_full_scenario.arcadia
|
|
||||||
05ce29af99424c491c47fe2450dc6f5f8ce995511c01ec7e17bb5855be3c9736 examples/release1/sa/behavior/state_machine_sa_monitor.arcadia
|
|
||||||
b6912fb3ece439912345fa71724acd462e716a1e5a88203a1058a5c3b2c20a4f examples/release1/sa/capabilities.arcadia
|
|
||||||
e5a04325d52183956dca814dd90f4e56c96c6b7db0f4f202f203ecb49c3e0f4f examples/release1/sa/functions/function_sa_audit_thresholds.arcadia
|
|
||||||
fddeb67308051325041fee641fe758ddf43345b7c47b66d433616ad07fdccdd6 examples/release1/sa/functions/function_sa_restore_work.arcadia
|
|
||||||
d431509251acb859fbb98733b6d18add952495e10a78703fbe8f31e40bc083c4 examples/release1/sa/model.arcadia
|
|
||||||
780d2eb08b217b67b55febb3d34846f727b8ee9018df6c5741748647e36b2ff8 examples/release1/sa/participants.arcadia
|
|
||||||
101fc0fbd99f1101514aa7b6da4f8e535aae0bb94c9e2b9e7e6c151135b28660 examples/release1/sa/types.arcadia
|
|
||||||
48a96f543456c9b5a5798fc795594e4119147fe45f11a6f109f141b7f514560f examples/release1/traceability.arcadia
|
|
||||||
2253e6434f741687e22327c37d520ed15c043bc36025498650bc2366bb6a874d examples/release1/transition-before.json
|
|
||||||
43b9a22e5f95ad3bc0ebd2478ead0e14406854abc989ae94ded9367b013d812a examples/release1/transition-request.json
|
|
||||||
dfc0eb61e0e2aa5bda45524571fbfa3494f44ce19696f3e15e07438074a07bc7 examples/release1/views/diagram_oa_allocation_view.arcadia
|
|
||||||
b78b43a26a82efb8fbd5374b09c329fa341f57b29f635d397b9ef8aede71d389 examples/release1/views/diagram_sa_allocation_view.arcadia
|
|
||||||
75e8dc9fb30f25d6f8fd3c6b595593ab4f98958a25798f961e336e0fac557649 examples/release1/views/diagram_sa_capability_view.arcadia
|
|
||||||
b08c84f3ea633e7c78dfdad3272f75415f6256cf3614b6d99bfd4f0269076c9b examples/release1/views/diagram_sa_service_view.arcadia
|
|
||||||
5f42f4c605e57b817d8400ed21f2b14bfc4e1592aebe941ff113767504c2b869 examples/release1/views/diagram_sa_state_view.arcadia
|
|
||||||
dc6b75da72884d399132ed9e300fa5a26b73d802bb526c9af986ae9eeb0a646a examples/routing-workshop.arcadia
|
|
||||||
8592714f75b271133f21ce017d87896b6cf91ea0e4837f1c2ed453e21be26b14 examples/routing-workshop.json
|
|
||||||
5f60642f211b2d352a951092faeeb7503d4fb7f6f7fca99e810347231101d31c examples/source-project/oa.arcadia
|
|
||||||
787f6b67b179ffd221f7e5faf1a4edd74cfd116aa1e3b5e9ed9f22fbff612d8d examples/source-project/project.arcadia
|
|
||||||
ab76044836e4dcd42a82d316846ec87da2108939aa2037640c5bca1d2ecdee0f examples/source-project/sa/assurance.arcadia
|
|
||||||
1abad579812e77877b45a3d8e3c3e9da734be2d04a0254cc730a5257ebd2dc88 examples/source-project/sa/participants.arcadia
|
|
||||||
f0b7443f728912ca163de39b6055876b533a77feaa3219b2d40a2dd65712e058 examples/source-project/sa/reporting.arcadia
|
|
||||||
e29ad3f406a6a50d2f0ae2ca2a53ee3b0c18222cd4098704a46d4f48b64ea17f examples/source-project/views.arcadia
|
|
||||||
f441535c623e0cf20e1875eb2cd33b587ed00e078c37af39cb36d89bb5edc19a examples/text-first/project.arcadia
|
|
||||||
4ec8250d5ed556f1d496e8c85137e973e802ecb11df1a36488411e8cdc5a9f9e examples/text-first/README.md
|
|
||||||
f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4 libunwind.dll
|
|
||||||
51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365 LICENSE
|
|
||||||
1bc7e6f475b3ec99b7e2643411950ae2368c250dd4c5c325f80f9811362a94a1 licenses/dependencies/arrayref-0.3.9/LICENSE
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/arrayvec-0.7.8/LICENSE-APACHE
|
|
||||||
4da95ec4ecb65b738d470b7d762894ad9c97da93e6cbfb18b570fc2c96f4b871 licenses/dependencies/arrayvec-0.7.8/LICENSE-MIT
|
|
||||||
0e8a410375e1ee5c75c6198b08b534fec6e5edef766cf971bab4a404542636ab licenses/dependencies/ash-0.38.0+1.3.281/LICENSE-APACHE
|
|
||||||
c733ccf8ab25df175a63d9d844677b98e3a5ab8f8de1c1616087e6868a7f948e licenses/dependencies/ash-0.38.0+1.3.281/LICENSE-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/atomic-waker-1.1.2/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/atomic-waker-1.1.2/LICENSE-MIT
|
|
||||||
6226d0632e2e1a80c23597e964da9812ae193c535fe058154afb034e94167aa5 licenses/dependencies/atomic-waker-1.1.2/LICENSE-THIRD-PARTY
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/autocfg-1.5.1/LICENSE-APACHE
|
|
||||||
27995d58ad5c1145c1a8cd86244ce844886958a35eb2b78c6b772748669999ac licenses/dependencies/autocfg-1.5.1/LICENSE-MIT
|
|
||||||
6a13bc24a100a6812f053879ec51b126b103af7cda6dbf48c4188722da44da9f licenses/dependencies/axum-0.8.9/LICENSE
|
|
||||||
008c87afcd2e626eaf564093250bed06dd7efb5732113264bba3dda8f1c556a1 licenses/dependencies/axum-core-0.5.6/LICENSE
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/base64-0.22.1/LICENSE-APACHE
|
|
||||||
0dd882e53de11566d50f8e8e2d5a651bcf3fabee4987d70f306233cf39094ba7 licenses/dependencies/base64-0.22.1/LICENSE-MIT
|
|
||||||
8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90 licenses/dependencies/bit-set-0.8.0/LICENSE-APACHE
|
|
||||||
f51ac2c59a222f7476ce507ca879960e2b64ea64bb2786eefdbeb7b0b538d1b7 licenses/dependencies/bit-set-0.8.0/LICENSE-MIT
|
|
||||||
8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90 licenses/dependencies/bit-vec-0.8.0/LICENSE-APACHE
|
|
||||||
f51ac2c59a222f7476ce507ca879960e2b64ea64bb2786eefdbeb7b0b538d1b7 licenses/dependencies/bit-vec-0.8.0/LICENSE-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/bitflags-2.13.1/LICENSE-APACHE
|
|
||||||
6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb licenses/dependencies/bitflags-2.13.1/LICENSE-MIT
|
|
||||||
e3ba223bb1423f0aad8c3dfce0fe3148db48926d41e6fbc3afbbf5ff9e1c89cb licenses/dependencies/bytemuck_derive-1.12.0/LICENSE-APACHE
|
|
||||||
9df9ba60a11af705f2e451b53762686e615d86f76b169cf075c3237730dbd7e2 licenses/dependencies/bytemuck_derive-1.12.0/LICENSE-MIT
|
|
||||||
84b34dd7608f7fb9b17bd588a6bf392bf7de504e2716f024a77d89f1b145a151 licenses/dependencies/bytemuck_derive-1.12.0/LICENSE-ZLIB
|
|
||||||
e3ba223bb1423f0aad8c3dfce0fe3148db48926d41e6fbc3afbbf5ff9e1c89cb licenses/dependencies/bytemuck-1.25.2/LICENSE-APACHE
|
|
||||||
9df9ba60a11af705f2e451b53762686e615d86f76b169cf075c3237730dbd7e2 licenses/dependencies/bytemuck-1.25.2/LICENSE-MIT
|
|
||||||
84b34dd7608f7fb9b17bd588a6bf392bf7de504e2716f024a77d89f1b145a151 licenses/dependencies/bytemuck-1.25.2/LICENSE-ZLIB
|
|
||||||
45f522cacecb1023856e46df79ca625dfc550c94910078bd8aec6e02880b3d42 licenses/dependencies/bytes-1.12.1/LICENSE
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/cc-1.4.5/LICENSE-APACHE
|
|
||||||
378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397 licenses/dependencies/cc-1.4.5/LICENSE-MIT
|
|
||||||
31b94860253d8ec7b4529f51901044d3b459d6292d996504a36b1bae3a36a812 licenses/dependencies/cfg_aliases-0.2.2/LICENSE
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/cfg-if-1.0.4/LICENSE-APACHE
|
|
||||||
378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397 licenses/dependencies/cfg-if-1.0.4/LICENSE-MIT
|
|
||||||
a9040321c3712d8fd0b09cf52b17445de04a23a10165049ae187cd39e5c86be5 licenses/dependencies/chacha20-0.10.2/LICENSE-APACHE
|
|
||||||
b8c6939380a400f53e11923d50fcc4dd2fa1ba8339fd9d04cda38a0251b6c9b0 licenses/dependencies/chacha20-0.10.2/LICENSE-MIT
|
|
||||||
c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566 licenses/dependencies/clipboard-win-5.4.1/supplement/DoumanAsh-clipboard-win-3b27cf2bfd1a-LICENSE
|
|
||||||
c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 licenses/dependencies/codespan-reporting-0.12.0/LICENSE
|
|
||||||
9ebf8c4cc0b735ca13a766451f7b8097db3185975ceb2ba94b5abf439156a91f licenses/dependencies/core_maths-0.1.1/LICENSE
|
|
||||||
587dd9548304fd421cd254f7550bd101c1250ffc95417f2f7f92d55b44ecbe53 licenses/dependencies/cosmic-text-0.15.0/fonts/FiraMono-LICENSE
|
|
||||||
3c8d13d97ea5eb62868833a377034c6be6a9833e768d32abec2a767a8101e4bc licenses/dependencies/cosmic-text-0.15.0/fonts/Inter-LICENSE
|
|
||||||
5ec4347054089def6904da61d04f0360968f9ef36634b1fe007a5b6ec2f7aa96 licenses/dependencies/cosmic-text-0.15.0/fonts/NotoSans-LICENSE
|
|
||||||
000b4962e6b27176a0ff89cce4be555b16472cafb5671eb2804a8fdac6854793 licenses/dependencies/cosmic-text-0.15.0/LICENSE-APACHE
|
|
||||||
95557bafe728379e206f3b6d4aceeaa054d271c71d722411a6222e2dec01138c licenses/dependencies/cosmic-text-0.15.0/LICENSE-MIT
|
|
||||||
a9040321c3712d8fd0b09cf52b17445de04a23a10165049ae187cd39e5c86be5 licenses/dependencies/cpufeatures-0.3.1/LICENSE-APACHE
|
|
||||||
73b9dc2e79c7308998dd30296e073aefaefb944a68fb89aa412c23c0edcabcaa licenses/dependencies/cpufeatures-0.3.1/LICENSE-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/cryoglyph-0.1.0/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/cryoglyph-0.1.0/LICENSE-MIT
|
|
||||||
b3ec01ad0869c5c50937bc68780cd0bb44e235ad858dfa54a7a381dced9b115a licenses/dependencies/cryoglyph-0.1.0/LICENSE-ZLIB
|
|
||||||
b59affd015e517ed998dd735757f9a3693643cd389609947ed54074234a10784 licenses/dependencies/cursor-icon-1.2.0/LICENSE-APACHE
|
|
||||||
c138726a726ac37bae09d0f8a48e74e8e3aa8a8952fcd10fae0fb224cc1c05f1 licenses/dependencies/cursor-icon-1.2.0/LICENSE-MIT
|
|
||||||
01e533bd94e8f1c32b2c2531e2c398de7d35d7804add3d574b4e1fe581d53537 licenses/dependencies/cursor-icon-1.2.0/LICENSE-ZLIB
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/displaydoc-0.2.7/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/displaydoc-0.2.7/LICENSE-MIT
|
|
||||||
074e6e32c86a4c0ef8b3ed25b721ca23aca83df277cd88106ef7177c354615ff licenses/dependencies/document-features-0.2.12/LICENSE-APACHE
|
|
||||||
aa893340d14b9844625be6a50ac644169a01b52f0211cbf81b09e1874c8cd81d licenses/dependencies/document-features-0.2.12/LICENSE-MIT
|
|
||||||
6dc0e068dcf3a5bc8e054205b85b7720e1d49265bbc64bf515d2cf79197df69a licenses/dependencies/dpi-0.1.2/LICENSE
|
|
||||||
9eff396a99bafd208e7126602420d6864f6066c08b84485a5b032320a9c01997 licenses/dependencies/dpi-0.1.2/LICENSE-LIBM-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/equivalent-1.0.2/LICENSE-APACHE
|
|
||||||
7365cc8878a1d7ce155a58c4ca09c3d7a6be413efa5334a80ea842912b669349 licenses/dependencies/equivalent-1.0.2/LICENSE-MIT
|
|
||||||
c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566 licenses/dependencies/error-code-3.4.0/LICENSE
|
|
||||||
2d56a37f3d1e461f6b1539ab94e0e6bcc55443e376098aee85ac3b2890860290 licenses/dependencies/etagere-0.2.15/LICENSE-APACHE
|
|
||||||
9cfc9c9a4608501b5da3746948d2be2dd709ad51f6bcb0c1c685760ee3dde31f licenses/dependencies/etagere-0.2.15/LICENSE-MIT
|
|
||||||
ec82b96487e9e778ee610c7ab245162464782cfa1f555c2299333f8dbe5c036a licenses/dependencies/euclid-0.22.14/COPYRIGHT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/euclid-0.22.14/LICENSE-APACHE
|
|
||||||
62065228e42caebca7e7d7db1204cbb867033de5982ca4009928915e4095f3a3 licenses/dependencies/euclid-0.22.14/LICENSE-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/fastrand-2.5.0/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/fastrand-2.5.0/LICENSE-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/find-msvc-tools-0.1.12/LICENSE-APACHE
|
|
||||||
378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397 licenses/dependencies/find-msvc-tools-0.1.12/LICENSE-MIT
|
|
||||||
0604d5817110dacc5c7d9b7de6b58b962794603d4823c357157bd5dec4198bc5 licenses/dependencies/float_next_after-1.0.0/LICENSE
|
|
||||||
b1181a40b2a7b25cf66fd01481713bc1005df082c53ef73e851e55071b102744 licenses/dependencies/foldhash-0.1.5/LICENSE
|
|
||||||
b1181a40b2a7b25cf66fd01481713bc1005df082c53ef73e851e55071b102744 licenses/dependencies/foldhash-0.2.0/LICENSE
|
|
||||||
a14f7d685a79c0f4fb64aee305527a6d5fa55f2401f4e6d688d7b1301868e6c0 licenses/dependencies/font-types-0.10.1/LICENSE-APACHE
|
|
||||||
8a62fa27ffdccc3df19dce90f8bb3d572e27aecffc1a383d0c2601834dcec434 licenses/dependencies/font-types-0.10.1/LICENSE-MIT
|
|
||||||
eba684204073ed715c4abb48129acdfd2bff8ae48339e6a7da3b341d3027b7f0 licenses/dependencies/font-types-0.12.4/LICENSE-APACHE
|
|
||||||
7b4c9a3946dfcea7967582760e963e27799e225dcf20565c8ef55324bb017427 licenses/dependencies/font-types-0.12.4/LICENSE-MIT
|
|
||||||
59a1fdac3bd550043599bd159fd70f09a1108c2b09e3751d39b11e1ff8e51f00 licenses/dependencies/fontdb-0.23.0/LICENSE
|
|
||||||
b84fdd2c3da5db56385cdbb639795e90aa3e035c53bc3591135f18df3331451f licenses/dependencies/fontdb-0.23.0/tests/fonts/LICENSE.txt
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/form_urlencoded-1.2.2/LICENSE-APACHE
|
|
||||||
20c7855c364d57ea4c97889a5e8d98470a9952dade37bd9248b9a54431670e5e licenses/dependencies/form_urlencoded-1.2.2/LICENSE-MIT
|
|
||||||
275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427 licenses/dependencies/futures-0.3.34/LICENSE-APACHE
|
|
||||||
6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd licenses/dependencies/futures-0.3.34/LICENSE-MIT
|
|
||||||
275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427 licenses/dependencies/futures-channel-0.3.34/LICENSE-APACHE
|
|
||||||
6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd licenses/dependencies/futures-channel-0.3.34/LICENSE-MIT
|
|
||||||
275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427 licenses/dependencies/futures-core-0.3.34/LICENSE-APACHE
|
|
||||||
6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd licenses/dependencies/futures-core-0.3.34/LICENSE-MIT
|
|
||||||
275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427 licenses/dependencies/futures-executor-0.3.34/LICENSE-APACHE
|
|
||||||
6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd licenses/dependencies/futures-executor-0.3.34/LICENSE-MIT
|
|
||||||
275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427 licenses/dependencies/futures-io-0.3.34/LICENSE-APACHE
|
|
||||||
6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd licenses/dependencies/futures-io-0.3.34/LICENSE-MIT
|
|
||||||
275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427 licenses/dependencies/futures-macro-0.3.34/LICENSE-APACHE
|
|
||||||
6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd licenses/dependencies/futures-macro-0.3.34/LICENSE-MIT
|
|
||||||
275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427 licenses/dependencies/futures-sink-0.3.34/LICENSE-APACHE
|
|
||||||
6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd licenses/dependencies/futures-sink-0.3.34/LICENSE-MIT
|
|
||||||
275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427 licenses/dependencies/futures-task-0.3.34/LICENSE-APACHE
|
|
||||||
6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd licenses/dependencies/futures-task-0.3.34/LICENSE-MIT
|
|
||||||
275c491d6d1160553c32fd6127061d7f9606c3ea25abfad6ca3f6ed088785427 licenses/dependencies/futures-util-0.3.34/LICENSE-APACHE
|
|
||||||
6652c868f35dfe5e8ef636810a4e576b9d663f3a17fb0f5613ad73583e1b88fd licenses/dependencies/futures-util-0.3.34/LICENSE-MIT
|
|
||||||
aaff376532ea30a0cd5330b9502ad4a4c8bf769c539c87ffe78819d188a18ebf licenses/dependencies/getrandom-0.2.17/LICENSE-APACHE
|
|
||||||
42fa16951ce7f24b5a467a40e5b449a1d41e662f97ca779864f053f39e097737 licenses/dependencies/getrandom-0.2.17/LICENSE-MIT
|
|
||||||
aaff376532ea30a0cd5330b9502ad4a4c8bf769c539c87ffe78819d188a18ebf licenses/dependencies/getrandom-0.4.3/LICENSE-APACHE
|
|
||||||
523a42c25d245dde9c015f882cec7f4555aad883382a6cf19b4b7d9b2cd5419b licenses/dependencies/getrandom-0.4.3/LICENSE-MIT
|
|
||||||
cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 licenses/dependencies/gl_generator-0.14.0/supplement/brendanzab-gl-rs-ea503e8d5fb6-LICENSE
|
|
||||||
be33ddb87a30fd321ab100e2d922cba512e50ec7a63d8e62e5bfc0798dd4b585 licenses/dependencies/glam-0.25.0/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/glam-0.25.0/LICENSE-MIT
|
|
||||||
b8601fc79bdf8d8088f0938bea861ffc63ed0eebbedf25f44ab2cf2e85bd7edc licenses/dependencies/glow-0.16.0/LICENSE-APACHE
|
|
||||||
cdbd06e25b8c9c5d6019949d2de8123f56d29cee4166396423d2ba8c81700845 licenses/dependencies/glow-0.16.0/LICENSE-MIT
|
|
||||||
636f644f1e149eb62961657c0e34953681eff64435653912e7bd19992666faa5 licenses/dependencies/glow-0.16.0/LICENSE-ZLIB
|
|
||||||
a4445427440043e8ce6fadf7a43fb906cb0d7f6c573a560a9f142cf9f9bf8ff4 licenses/dependencies/glutin_wgl_sys-0.6.1/LICENSE
|
|
||||||
12121dfa588677007848ab922a45a1e3248868f6ff063598fceb3141d7897314 licenses/dependencies/gpu-alloc-0.6.2/supplement/zakarumych-gpu-alloc-61020bdcb4eb-COPYING
|
|
||||||
12121dfa588677007848ab922a45a1e3248868f6ff063598fceb3141d7897314 licenses/dependencies/gpu-alloc-types-0.3.1/supplement/zakarumych-gpu-alloc-7ddd1fe576fc-COPYING
|
|
||||||
0178e21322b0e88aa3aeb3146f6a9611bc1f8df6d98bdfb34be28b9dd56a8107 licenses/dependencies/gpu-allocator-0.27.0/LICENSE-APACHE
|
|
||||||
ad41be6cc6538b29b9346648f41432b5e460bad6be073b5eeaa41320ea2921dc licenses/dependencies/gpu-allocator-0.27.0/LICENSE-MIT
|
|
||||||
f72143f7e9d9fb8bd336b139fa22f825a299591c29f2f7338c5566347b137613 licenses/dependencies/gpu-descriptor-0.3.2/supplement/zakarumych-gpu-descriptor-bb28b4e55b74-COPYING
|
|
||||||
f72143f7e9d9fb8bd336b139fa22f825a299591c29f2f7338c5566347b137613 licenses/dependencies/gpu-descriptor-types-0.2.0/supplement/zakarumych-gpu-descriptor-9f2fb9546591-COPYING
|
|
||||||
7e98bed7f100747aaae7d82ab94fbe6b76fd6b84b09a3aaa413bff8196d0fbb1 licenses/dependencies/guillotiere-0.6.2/LICENSE
|
|
||||||
a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9 licenses/dependencies/half-2.7.1/LICENSE-APACHE
|
|
||||||
508a77d2e7b51d98adeed32648ad124b7b30241a8e70b2e72c99f92d8e5874d1 licenses/dependencies/half-2.7.1/LICENSE-MIT
|
|
||||||
7d43d2ef1ce976c7bfb423c696ad9938ccfc31e9ec5be752265e43fe9d29f697 licenses/dependencies/harfrust-0.3.2/LICENSE
|
|
||||||
9906940f61b1f0b533fa7d99baf55178b2808fbe113ea51dfbfad8572ccd5f2b licenses/dependencies/harfrust-0.3.2/scripts/ms-use/COPYING
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/hashbrown-0.15.5/LICENSE-APACHE
|
|
||||||
ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2 licenses/dependencies/hashbrown-0.15.5/LICENSE-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/hashbrown-0.16.1/LICENSE-APACHE
|
|
||||||
ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2 licenses/dependencies/hashbrown-0.16.1/LICENSE-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/hashbrown-0.17.1/LICENSE-APACHE
|
|
||||||
ff8f68cb076caf8cefe7a6430d4ac086ce6af2ca8ce2c4e5a2004d4552ef52a2 licenses/dependencies/hashbrown-0.17.1/LICENSE-MIT
|
|
||||||
a2010f343487d3f7618affe54f789f5487602331c0a8d03f49e9a7c547cf0499 licenses/dependencies/hexf-parse-0.2.1/supplement/CC0-1.0.txt
|
|
||||||
4a56dbdbc12054fd33b7a2634a45cbbe6fe12f5e6f4081002cbfa527f7220c70 licenses/dependencies/hexf-parse-0.2.1/supplement/hexf-parse-0.2.1-Cargo.toml
|
|
||||||
8bb1b50b0e5c9399ae33bd35fab2769010fa6c14e8860c729a52295d84896b7a licenses/dependencies/http-1.5.0/LICENSE-APACHE
|
|
||||||
dc91f8200e4b2a1f9261035d4c18c33c246911a6c0f7b543d75347e61b249cff licenses/dependencies/http-1.5.0/LICENSE-MIT
|
|
||||||
248378d0a3383c173fb925f17141b88e71580b3ba17ddc6ac3d2a344683232ab licenses/dependencies/http-body-1.1.0/LICENSE
|
|
||||||
248378d0a3383c173fb925f17141b88e71580b3ba17ddc6ac3d2a344683232ab licenses/dependencies/http-body-util-0.1.5/LICENSE
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/httparse-1.10.1/LICENSE-APACHE
|
|
||||||
391a5396cec6230bfabd4ef4eb2350eb895bc5efce377a2218f5702ed020d3e3 licenses/dependencies/httparse-1.10.1/LICENSE-MIT
|
|
||||||
4d10fe5f3aa176b05b229a248866bad70b834c173f1252a814ff4748d8a13837 licenses/dependencies/httpdate-1.0.3/LICENSE-APACHE
|
|
||||||
934887691e05d69d7c86ad3f2c360980fa30c15b035e351f3c9865e99da4debc licenses/dependencies/httpdate-1.0.3/LICENSE-MIT
|
|
||||||
2d01890414494742ba4a509fcec8efa40f6d8be22cbd72be7cff08d6fda4ec89 licenses/dependencies/hyper-1.11.1/LICENSE
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/hyper-rustls-0.27.9/LICENSE-APACHE
|
|
||||||
7cfafc877eccc46c0e346ccbaa5c51bb6b894d2b818e617d970211e232785ad4 licenses/dependencies/hyper-rustls-0.27.9/LICENSE-ISC
|
|
||||||
709e3175b4212f7b13aa93971c9f62ff8c69ec45ad8c6532a7e0c41d7a7d6f8c licenses/dependencies/hyper-rustls-0.27.9/LICENSE-MIT
|
|
||||||
9e0a97848ea543aef745c98e84fde696a9a3e0735538f6daefdd3cb1942effc1 licenses/dependencies/hyper-util-0.1.20/LICENSE
|
|
||||||
cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 licenses/dependencies/iced_core-0.14.0/src/layout/DRUID_LICENSE
|
|
||||||
fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398 licenses/dependencies/iced_core-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE
|
|
||||||
fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398 licenses/dependencies/iced_debug-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE
|
|
||||||
fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398 licenses/dependencies/iced_futures-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE
|
|
||||||
99bfb7c1e845b79d1031fcf37e678178eb4a8c7cc74a3f218ddf7223083a6fcd licenses/dependencies/iced_graphics-0.14.0/assets/FiraSans-Regular.ttf/Fira-OFL.txt
|
|
||||||
1e0baaa389b1647d06322ac9ea37822f31995408200ae5a2805a6b9bea0810d1 licenses/dependencies/iced_graphics-0.14.0/assets/FiraSans-Regular.ttf/FiraSans-Regular-NOTICE.txt
|
|
||||||
8175634e30f84ef72a24c4965fb0e87f45a3c1274cc0e79e0473af582cffd1c4 licenses/dependencies/iced_graphics-0.14.0/assets/Iced-Icons.ttf/Iced-Icons-NOTICE.txt
|
|
||||||
fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398 licenses/dependencies/iced_graphics-0.14.0/assets/Iced-Icons.ttf/iced-rs-iced-3997291f318a-LICENSE
|
|
||||||
fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398 licenses/dependencies/iced_graphics-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE
|
|
||||||
fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398 licenses/dependencies/iced_program-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE
|
|
||||||
fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398 licenses/dependencies/iced_renderer-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE
|
|
||||||
fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398 licenses/dependencies/iced_runtime-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE
|
|
||||||
fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398 licenses/dependencies/iced_tiny_skia-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE
|
|
||||||
fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398 licenses/dependencies/iced_wgpu-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE
|
|
||||||
fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398 licenses/dependencies/iced_widget-0.14.2/supplement/iced-rs-iced-54abf81d13fe-LICENSE
|
|
||||||
fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398 licenses/dependencies/iced_winit-0.14.0/supplement/iced-rs-iced-3997291f318a-LICENSE
|
|
||||||
fc9086ba4eba4b77e4c603906362742bc3715ffa2c7810c6074fe7780d3a0398 licenses/dependencies/iced-0.14.0/LICENSE
|
|
||||||
f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2 licenses/dependencies/icu_collections-2.3.0/LICENSE
|
|
||||||
f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2 licenses/dependencies/icu_locale_core-2.3.0/LICENSE
|
|
||||||
f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2 licenses/dependencies/icu_normalizer_data-2.3.0/LICENSE
|
|
||||||
f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2 licenses/dependencies/icu_normalizer-2.3.0/LICENSE
|
|
||||||
f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2 licenses/dependencies/icu_properties_data-2.3.0/LICENSE
|
|
||||||
f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2 licenses/dependencies/icu_properties-2.3.0/LICENSE
|
|
||||||
f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2 licenses/dependencies/icu_provider-2.3.1/LICENSE
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/idna_adapter-1.2.2/LICENSE-APACHE
|
|
||||||
8b43ce8accd61e9d370b5ca9e9c4f953279b5c239926c62315b40e24df51b726 licenses/dependencies/idna_adapter-1.2.2/LICENSE-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/idna-1.1.0/LICENSE-APACHE
|
|
||||||
b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5 licenses/dependencies/idna-1.1.0/LICENSE-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/indexmap-2.14.1/LICENSE-APACHE
|
|
||||||
ecc269ef87fd38a1d98e30bfac9ba964a9dbd9315c3770fed98d4d7cb5882055 licenses/dependencies/indexmap-2.14.1/LICENSE-MIT
|
|
||||||
87d9feb9238c6bd8e0024fc4733b06cff036f89f36d93b7df1c8a0549bbb7a5b licenses/dependencies/ipnet-2.12.1/LICENSE-APACHE
|
|
||||||
47dc9ff29128ddfb4d6a0435383c9f89120bc374dbcc1dd00b933a0b28aa7865 licenses/dependencies/ipnet-2.12.1/LICENSE-MIT
|
|
||||||
62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a licenses/dependencies/itoa-1.0.18/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/itoa-1.0.18/LICENSE-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/jobserver-0.1.35/LICENSE-APACHE
|
|
||||||
378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397 licenses/dependencies/jobserver-0.1.35/LICENSE-MIT
|
|
||||||
cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 licenses/dependencies/khronos_api-3.1.0/supplement/brendanzab-gl-rs-f150967b1c44-LICENSE
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/khronos-egl-6.0.0/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/khronos-egl-6.0.0/LICENSE-MIT
|
|
||||||
cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 licenses/dependencies/kurbo-0.10.4/LICENSE-APACHE
|
|
||||||
23c23145f6eac25c28cdcc03d38506a5712a9a8cffb5bd5301457f6173ea696e licenses/dependencies/kurbo-0.10.4/LICENSE-MIT
|
|
||||||
62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a licenses/dependencies/libc-0.2.189/LICENSE-APACHE
|
|
||||||
123a331b5dbf04c30097fa43b8f858bc85df671fe776de498d01f3d6b7c1f69e licenses/dependencies/libc-0.2.189/LICENSE-MIT
|
|
||||||
b29f8b01452350c20dd1af16ef83b598fea3053578ccc1c7a0ef40e57be2620f licenses/dependencies/libloading-0.8.9/LICENSE
|
|
||||||
3823dda7cf046602f4b4e77ec8e227863dc4736037cc85bb33d9f19febe16bb7 licenses/dependencies/libm-0.2.16/LICENSE.txt
|
|
||||||
120b2f21f9b9f98ef4159de09f9a55a3afb6733dd1c0b1d9eeec7f136465b2cd licenses/dependencies/lilt-0.8.2/LICENSE
|
|
||||||
a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9 licenses/dependencies/linebender_resource_handle-0.1.1/LICENSE-APACHE
|
|
||||||
508a77d2e7b51d98adeed32648ad124b7b30241a8e70b2e72c99f92d8e5874d1 licenses/dependencies/linebender_resource_handle-0.1.1/LICENSE-MIT
|
|
||||||
f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2 licenses/dependencies/litemap-0.8.3/LICENSE
|
|
||||||
62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a licenses/dependencies/litrs-1.0.0/LICENSE-APACHE
|
|
||||||
7dc1552e88f49132cb358b1b962fc5e79fa42d70bcbb88c526d33e45b8e98036 licenses/dependencies/litrs-1.0.0/LICENSE-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/lock_api-0.4.14/LICENSE-APACHE
|
|
||||||
c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5 licenses/dependencies/lock_api-0.4.14/LICENSE-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/log-0.4.34/LICENSE-APACHE
|
|
||||||
6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb licenses/dependencies/log-0.4.34/LICENSE-MIT
|
|
||||||
061dc50af2cd9340703daf61978af3200cf681b12ea67a323c33ba109a23a45e licenses/dependencies/lru-0.16.4/LICENSE
|
|
||||||
cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 licenses/dependencies/lru-slab-0.1.2/LICENSE-APACHE
|
|
||||||
1466d9b4f3a59bb8997fc8d5fa977ce3f6a24bb2358793c09bfdf007039f6486 licenses/dependencies/lru-slab-0.1.2/LICENSE-MIT
|
|
||||||
09785877275ffada6c371b652a30e95c26b435126fc0fc62f1bc2d72171f80a4 licenses/dependencies/lru-slab-0.1.2/LICENSE-ZLIB
|
|
||||||
216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06 licenses/dependencies/lyon_algorithms-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-APACHE
|
|
||||||
80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e licenses/dependencies/lyon_algorithms-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-MIT
|
|
||||||
216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06 licenses/dependencies/lyon_geom-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-APACHE
|
|
||||||
80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e licenses/dependencies/lyon_geom-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-MIT
|
|
||||||
216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06 licenses/dependencies/lyon_path-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-APACHE
|
|
||||||
80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e licenses/dependencies/lyon_path-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-MIT
|
|
||||||
216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06 licenses/dependencies/lyon_tessellation-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-APACHE
|
|
||||||
80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e licenses/dependencies/lyon_tessellation-1.0.21/supplement/nical-lyon-994526f2766c-LICENSE-MIT
|
|
||||||
216486f29671a4262efe32af6d84a75bef398127f8c5f369b5c8305983887a06 licenses/dependencies/lyon-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-APACHE
|
|
||||||
80f275e90d799911ed3830a7f242a2ef5a4ade2092fe0aa07bfb2d2cf2f2b95e licenses/dependencies/lyon-1.0.19/supplement/nical-lyon-56219c95c658-LICENSE-MIT
|
|
||||||
de701d0618d694feb1af90f02181a1763d9b0bdeb70a3a592781e529077dba65 licenses/dependencies/matchit-0.8.4/LICENSE
|
|
||||||
162ce11ad71338d0a0c6ebaf5c48af72c6ae237b468859d3656fe2d9ed3f3a85 licenses/dependencies/matchit-0.8.4/LICENSE.httprouter
|
|
||||||
01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f licenses/dependencies/memchr-2.8.3/COPYING
|
|
||||||
0f96a83840e146e43c0ec96a22ec1f392e0680e6c1226e6f3ba87e0740af850f licenses/dependencies/memchr-2.8.3/LICENSE-MIT
|
|
||||||
7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c licenses/dependencies/memchr-2.8.3/UNLICENSE
|
|
||||||
04ea4849dba9dcae07113850c6f1b1a69052c625210639914eee352023f750ad licenses/dependencies/memmap2-0.9.11/LICENSE-APACHE
|
|
||||||
0d25d03b5ab49576178ad0cae7a2648d12c17ad0452fe49c07e55e4b59aa5257 licenses/dependencies/memmap2-0.9.11/LICENSE-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/mime-0.3.17/LICENSE-APACHE
|
|
||||||
df9cfd06d8a44d9a671eadd39ffd97f166481da015a30f45dfd27886209c5922 licenses/dependencies/mime-0.3.17/LICENSE-MIT
|
|
||||||
07919255c7e04793d8ea760d6c2ce32d19f9ff02bdbdde3ce90b1e1880929a9b licenses/dependencies/mio-1.2.3/LICENSE
|
|
||||||
a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9 licenses/dependencies/naga-27.0.3/LICENSE.APACHE
|
|
||||||
dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21 licenses/dependencies/naga-27.0.3/LICENSE.MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/num-traits-0.2.19/LICENSE-APACHE
|
|
||||||
6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb licenses/dependencies/num-traits-0.2.19/LICENSE-MIT
|
|
||||||
51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365 licenses/dependencies/oa-core-0.2.0/workspace-LICENSE
|
|
||||||
51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365 licenses/dependencies/oa-desktop-0.2.0/workspace-LICENSE
|
|
||||||
51009f2cb07e5d19645858b2fbc037a672a25f8cbf7999522942b86807ecf365 licenses/dependencies/oa-server-0.2.0/workspace-LICENSE
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/once_cell-1.21.4/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/once_cell-1.21.4/LICENSE-MIT
|
|
||||||
f7715d38a3fa1b4ac97c5729740752505a39cb92ee83ab5b102aeb5eaa7cdea4 licenses/dependencies/ordered-float-5.5.0/LICENSE-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/parking_lot_core-0.9.12/LICENSE-APACHE
|
|
||||||
c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5 licenses/dependencies/parking_lot_core-0.9.12/LICENSE-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/parking_lot-0.12.5/LICENSE-APACHE
|
|
||||||
c9a75f18b9ab2927829a208fc6aa2cf4e63b8420887ba29cdb265d6619ae82d5 licenses/dependencies/parking_lot-0.12.5/LICENSE-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/percent-encoding-2.3.2/LICENSE-APACHE
|
|
||||||
b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5 licenses/dependencies/percent-encoding-2.3.2/LICENSE-MIT
|
|
||||||
0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594 licenses/dependencies/pin-project-lite-0.2.17/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/pin-project-lite-0.2.17/LICENSE-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/pkg-config-0.3.34/LICENSE-APACHE
|
|
||||||
378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397 licenses/dependencies/pkg-config-0.3.34/LICENSE-MIT
|
|
||||||
f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2 licenses/dependencies/potential_utf-0.1.6/LICENSE
|
|
||||||
8173d5c29b4f956d532781d2b86e4e30f83e6b7878dce18c919451d6ba707c90 licenses/dependencies/presser-0.3.1/LICENSE-APACHE
|
|
||||||
090a294a492ab2f41388252312a65cf2f0e423330b721a68c6665ac64766753b licenses/dependencies/presser-0.3.1/LICENSE-MIT
|
|
||||||
62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a licenses/dependencies/proc-macro2-1.0.107/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/proc-macro2-1.0.107/LICENSE-MIT
|
|
||||||
10d30a673cd5e9349bdc02aeb48f14b3386d27d0da32df8f0a555d4aa16aa551 licenses/dependencies/profiling-1.0.18/supplement/aclysma-profiling-8271551172eb-LICENSE-APACHE
|
|
||||||
c8167fdeeed46d3f244d3f85c5bf998ce889343691c32be2c61a8bc4b5c08333 licenses/dependencies/profiling-1.0.18/supplement/aclysma-profiling-8271551172eb-LICENSE-MIT
|
|
||||||
c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 licenses/dependencies/quinn-0.11.11/LICENSE-APACHE
|
|
||||||
4b2d0aca6789fa39e03d6738e869ea0988cceba210ca34ebb59c15c463e93a04 licenses/dependencies/quinn-0.11.11/LICENSE-MIT
|
|
||||||
c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 licenses/dependencies/quinn-proto-0.11.17/LICENSE-APACHE
|
|
||||||
4b2d0aca6789fa39e03d6738e869ea0988cceba210ca34ebb59c15c463e93a04 licenses/dependencies/quinn-proto-0.11.17/LICENSE-MIT
|
|
||||||
c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 licenses/dependencies/quinn-udp-0.5.15/LICENSE-APACHE
|
|
||||||
4b2d0aca6789fa39e03d6738e869ea0988cceba210ca34ebb59c15c463e93a04 licenses/dependencies/quinn-udp-0.5.15/LICENSE-MIT
|
|
||||||
62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a licenses/dependencies/quote-1.0.47/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/quote-1.0.47/LICENSE-MIT
|
|
||||||
92b81db30f7ab6d693e0af5661a40d273ca1947e891123ed823924192c10cbc7 licenses/dependencies/rand_core-0.10.1/COPYRIGHT
|
|
||||||
6df43f6f4b5d4587f3d8d71e45532c688fd168afa5fe89d571cb32fa09c4ef51 licenses/dependencies/rand_core-0.10.1/LICENSE-APACHE
|
|
||||||
8b6e9feec03e7c9a5facb26855cecd31662bf989b636bcfe79521bdf8ac863f0 licenses/dependencies/rand_core-0.10.1/LICENSE-MIT
|
|
||||||
90eb64f0279b0d9432accfa6023ff803bc4965212383697eee27a0f426d5f8d5 licenses/dependencies/rand_pcg-0.10.2/COPYRIGHT
|
|
||||||
6df43f6f4b5d4587f3d8d71e45532c688fd168afa5fe89d571cb32fa09c4ef51 licenses/dependencies/rand_pcg-0.10.2/LICENSE-APACHE
|
|
||||||
2234e3cefee876aeb686ad89e978bdb07bf118a1186ab1cf161bcdf69d4b4f57 licenses/dependencies/rand_pcg-0.10.2/LICENSE-MIT
|
|
||||||
90eb64f0279b0d9432accfa6023ff803bc4965212383697eee27a0f426d5f8d5 licenses/dependencies/rand-0.10.2/COPYRIGHT
|
|
||||||
35242e7a83f69875e6edeff02291e688c97caafe2f8902e4e19b49d3e78b4cab licenses/dependencies/rand-0.10.2/LICENSE-APACHE
|
|
||||||
209fbbe0ad52d9235e37badf9cadfe4dbdc87203179c0899e738b39ade42177b licenses/dependencies/rand-0.10.2/LICENSE-MIT
|
|
||||||
a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9 licenses/dependencies/range-alloc-0.1.5/LICENSE.APACHE
|
|
||||||
ba00052102ed87948bb8822d6e1c496260c83042887b22bb5caad922ec025a60 licenses/dependencies/range-alloc-0.1.5/LICENSE.MIT
|
|
||||||
1c7745cc26c7294bc9dbc883bcd50700b99a8c0f4859bfce84ec555098ce1ab5 licenses/dependencies/rangemap-1.8.0/LICENSE-APACHE
|
|
||||||
29a4c3823ee29ee5a97c145574a1bac20629fd5e6708be1df0d25bab563e093c licenses/dependencies/rangemap-1.8.0/LICENSE-MIT
|
|
||||||
0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594 licenses/dependencies/raw-window-handle-0.6.2/LICENSE-APACHE.md
|
|
||||||
9c5a80639a57c1c945570e7ebbca0706305849ce3c098021325cca9db2f7acc4 licenses/dependencies/raw-window-handle-0.6.2/LICENSE-MIT.md
|
|
||||||
ae895c8576e682f310fb70d93d9f99b1dd82872094c54a8f6cdfe2ca5c2d6ecb licenses/dependencies/raw-window-handle-0.6.2/LICENSE-ZLIB.md
|
|
||||||
a14f7d685a79c0f4fb64aee305527a6d5fa55f2401f4e6d688d7b1301868e6c0 licenses/dependencies/read-fonts-0.35.0/LICENSE-APACHE
|
|
||||||
8a62fa27ffdccc3df19dce90f8bb3d572e27aecffc1a383d0c2601834dcec434 licenses/dependencies/read-fonts-0.35.0/LICENSE-MIT
|
|
||||||
eba684204073ed715c4abb48129acdfd2bff8ae48339e6a7da3b341d3027b7f0 licenses/dependencies/read-fonts-0.41.0/LICENSE-APACHE
|
|
||||||
7b4c9a3946dfcea7967582760e963e27799e225dcf20565c8ef55324bb017427 licenses/dependencies/read-fonts-0.41.0/LICENSE-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/renderdoc-sys-1.1.0/LICENSE-APACHE
|
|
||||||
24b2f2eff5a7622e87162823e260f00c6dfbce0e26d585d3d28c785f1edc80ed licenses/dependencies/renderdoc-sys-1.1.0/LICENSE-MIT
|
|
||||||
751963a8b88c0e3a9f27e98933079fbcf09b9998b2c13ac49c2e4d58444520d6 licenses/dependencies/reqwest-0.12.28/LICENSE-APACHE
|
|
||||||
47d4e1803702728e03d30f8a848ae2249ba274bbd9f8443e803f7924d83cd371 licenses/dependencies/reqwest-0.12.28/LICENSE-MIT
|
|
||||||
65fc947f4bac882a2cd104ef73c246b1b037059df9f2b3a58b7f77f0b9e56071 licenses/dependencies/rfd-0.15.4/LICENSE
|
|
||||||
b3d734001a94efff3579978d953391aa7115f877657d25eb54037a43875d078a licenses/dependencies/ring-0.17.14/LICENSE
|
|
||||||
005fc765ddc5115da796cca915baa9557abae13ff35e0a47c47affc56f6c414d licenses/dependencies/ring-0.17.14/LICENSE-BoringSSL
|
|
||||||
f025ccfb7dfb6bdfedc75ca0f67acc69e6fb4998143d834f7c2f38a29989680f licenses/dependencies/ring-0.17.14/LICENSE-other-bits
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/ring-0.17.14/src/polyfill/once_cell/LICENSE-APACHE
|
|
||||||
6ee2ed6c77710de911761acd5fc1ad1da00f476beb1a7ef27e78c2d1858deafc licenses/dependencies/ring-0.17.14/src/polyfill/once_cell/LICENSE-MIT
|
|
||||||
9eacbcb81be660840c714a560a9d65ba07913db98dd4baf969f78dd499fdd60f licenses/dependencies/ring-0.17.14/third_party/fiat/LICENSE
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/rustc-hash-1.1.0/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/rustc-hash-1.1.0/LICENSE-MIT
|
|
||||||
95bd3988beee069fa2848f648dab43cc6e0b2add2ad6bcb17360caf749802bcc licenses/dependencies/rustc-hash-2.1.3/LICENSE-APACHE
|
|
||||||
30fefc3a7d6a0041541858293bcbea2dde4caa4c0a5802f996a7f7e8c0085652 licenses/dependencies/rustc-hash-2.1.3/LICENSE-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/rustls-0.23.43/LICENSE-APACHE
|
|
||||||
7cfafc877eccc46c0e346ccbaa5c51bb6b894d2b818e617d970211e232785ad4 licenses/dependencies/rustls-0.23.43/LICENSE-ISC
|
|
||||||
709e3175b4212f7b13aa93971c9f62ff8c69ec45ad8c6532a7e0c41d7a7d6f8c licenses/dependencies/rustls-0.23.43/LICENSE-MIT
|
|
||||||
45fd05c4865e7c350b98ad7ac50e1b15462d49af4a91e9b0c9dd933dc9a69742 licenses/dependencies/rustls-pki-types-1.15.1/LICENSE-APACHE
|
|
||||||
9117d922e667125508dde62b02c1f57ed22f5ad21eb536aa2e2d99e1c796e639 licenses/dependencies/rustls-pki-types-1.15.1/LICENSE-MIT
|
|
||||||
5b698ca13897be3afdb7174256fa1574f8c6892b8bea1a66dd6469d3fe27885a licenses/dependencies/rustls-webpki-0.103.15/LICENSE
|
|
||||||
62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a licenses/dependencies/ryu-1.0.23/LICENSE-APACHE
|
|
||||||
c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566 licenses/dependencies/ryu-1.0.23/LICENSE-BOOST
|
|
||||||
01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f licenses/dependencies/same-file-1.0.6/COPYING
|
|
||||||
cb3c929a05e6cbc9de9ab06a4c57eeb60ca8c724bef6c138c87d3a577e27aa14 licenses/dependencies/same-file-1.0.6/LICENSE-MIT
|
|
||||||
7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c licenses/dependencies/same-file-1.0.6/UNLICENSE
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/scopeguard-1.2.0/LICENSE-APACHE
|
|
||||||
fb77f0a9c53e473abe5103c8632ef9f0f2874d4fb3f17cb2d8c661aab9cee9d7 licenses/dependencies/scopeguard-1.2.0/LICENSE-MIT
|
|
||||||
c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 licenses/dependencies/self_cell-1.3.0/LICENSE-APACHE
|
|
||||||
f9c375a1be4a41f7b70301dd83c91cb89e41567478859b77eef375a52d782505 licenses/dependencies/self_cell-1.3.0/LICENSE-GPLv2
|
|
||||||
62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a licenses/dependencies/serde_core-1.0.229/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/serde_core-1.0.229/LICENSE-MIT
|
|
||||||
62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a licenses/dependencies/serde_derive-1.0.229/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/serde_derive-1.0.229/LICENSE-MIT
|
|
||||||
62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a licenses/dependencies/serde_json-1.0.151/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/serde_json-1.0.151/LICENSE-MIT
|
|
||||||
62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a licenses/dependencies/serde_path_to_error-0.1.20/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/serde_path_to_error-0.1.20/LICENSE-MIT
|
|
||||||
62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a licenses/dependencies/serde_urlencoded-0.7.1/LICENSE-APACHE
|
|
||||||
b9eb266294324f672cbe945fe8f2e32f85024f0d61a1a7d14382cdde0ac44769 licenses/dependencies/serde_urlencoded-0.7.1/LICENSE-MIT
|
|
||||||
62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a licenses/dependencies/serde-1.0.229/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/serde-1.0.229/LICENSE-MIT
|
|
||||||
282a21b0710441c364025461a447362daf18f5798a7b72ae2f801a2aa536da51 licenses/dependencies/sha1_smol-1.0.1/LICENSE
|
|
||||||
553fffcd9b1cb158bc3e9edc35da85ca5c3b3d7d2e61c883ebcfa8a65814b583 licenses/dependencies/shlex-2.0.1/LICENSE-APACHE
|
|
||||||
4455bf75a91154108304cb283e0fea9948c14f13e20d60887cf2552449dea3b1 licenses/dependencies/shlex-2.0.1/LICENSE-MIT
|
|
||||||
a14f7d685a79c0f4fb64aee305527a6d5fa55f2401f4e6d688d7b1301868e6c0 licenses/dependencies/skrifa-0.37.0/LICENSE-APACHE
|
|
||||||
8a62fa27ffdccc3df19dce90f8bb3d572e27aecffc1a383d0c2601834dcec434 licenses/dependencies/skrifa-0.37.0/LICENSE-MIT
|
|
||||||
eba684204073ed715c4abb48129acdfd2bff8ae48339e6a7da3b341d3027b7f0 licenses/dependencies/skrifa-0.44.0/LICENSE-APACHE
|
|
||||||
7b4c9a3946dfcea7967582760e963e27799e225dcf20565c8ef55324bb017427 licenses/dependencies/skrifa-0.44.0/LICENSE-MIT
|
|
||||||
8ce0830173fdac609dfb4ea603fdc002c2f4af0dc9b1a005653f5da9cf534b18 licenses/dependencies/slab-0.4.12/LICENSE
|
|
||||||
6cec81441b2ab2b5090954c1fb5d0bcca81b86487b5849061fa8952d20ef67d4 licenses/dependencies/slotmap-1.1.1/LICENSE
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/smallvec-1.16.0/LICENSE-APACHE
|
|
||||||
0b28172679e0009b655da42797c03fd163a3379d5cfa67ba1f1655e974a2a1a9 licenses/dependencies/smallvec-1.16.0/LICENSE-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/smol_str-0.2.2/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/smol_str-0.2.2/LICENSE-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/socket2-0.6.5/LICENSE-APACHE
|
|
||||||
378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397 licenses/dependencies/socket2-0.6.5/LICENSE-MIT
|
|
||||||
a4445427440043e8ce6fadf7a43fb906cb0d7f6c573a560a9f142cf9f9bf8ff4 licenses/dependencies/softbuffer-0.4.8/LICENSE-APACHE
|
|
||||||
0463bfa47d6d763d8c824333efb0e6d6df3946c13c3b077c78ed9f23ca50d0f2 licenses/dependencies/softbuffer-0.4.8/LICENSE-MIT
|
|
||||||
cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 licenses/dependencies/spirv-0.3.0+sdk-1.3.268.0/supplement/gfx-rs-rspirv-e91a5debc10c-LICENSE
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/stable_deref_trait-1.2.1/LICENSE-APACHE
|
|
||||||
5e05b024f653a5ce199e77cbbbd42fb5553562ec714b819421ed0c3e552a75d7 licenses/dependencies/stable_deref_trait-1.2.1/LICENSE-MIT
|
|
||||||
cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 licenses/dependencies/static_assertions-1.1.0/LICENSE-APACHE
|
|
||||||
ea084a2373ebc1f0902c09266e7bf25a05ab3814c1805bb017ffa7308f90c061 licenses/dependencies/static_assertions-1.1.0/LICENSE-MIT
|
|
||||||
3085885678bb161f6c472bbd331f66a2550b555eb76128f7f8247779128199c0 licenses/dependencies/strict-num-0.1.1/LICENSE
|
|
||||||
d1fc1bc0d155df60b2e7705b6b2ae02a05c96f948e1cec6e2fb86360b09f346b licenses/dependencies/subtle-2.6.1/LICENSE
|
|
||||||
7e98bed7f100747aaae7d82ab94fbe6b76fd6b84b09a3aaa413bff8196d0fbb1 licenses/dependencies/svg_fmt-0.4.5/supplement/nical-rust_debug-93f414cd572b-LICENSE
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/swash-0.2.10/LICENSE-APACHE
|
|
||||||
122dadfc2eb4de0f4bafcd9eb4e7502cfe338a7965ebd1d18708cc5050f43f76 licenses/dependencies/swash-0.2.10/LICENSE-MIT
|
|
||||||
62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a licenses/dependencies/syn-2.0.119/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/syn-2.0.119/LICENSE-MIT
|
|
||||||
62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a licenses/dependencies/syn-3.0.5/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/syn-3.0.5/LICENSE-MIT
|
|
||||||
0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594 licenses/dependencies/sync_wrapper-1.0.2/LICENSE
|
|
||||||
219920e865eee70b7dcfc948a86b099e7f4fe2de01bcca2ca9a20c0a033f2b59 licenses/dependencies/synstructure-0.13.2/LICENSE
|
|
||||||
c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 licenses/dependencies/sys-locale-0.3.2/LICENSE-APACHE
|
|
||||||
5cc390ab5e5e6507f467368cbab1297552d64bfd863f4b496c7928508bcfefd8 licenses/dependencies/sys-locale-0.3.2/LICENSE-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/tempfile-3.27.0/LICENSE-APACHE
|
|
||||||
8b427f5bc501764575e52ba4f9d95673cf8f6d80a86d0d06599852e1a9a20a36 licenses/dependencies/tempfile-3.27.0/LICENSE-MIT
|
|
||||||
01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f licenses/dependencies/termcolor-1.4.1/COPYING
|
|
||||||
0f96a83840e146e43c0ec96a22ec1f392e0680e6c1226e6f3ba87e0740af850f licenses/dependencies/termcolor-1.4.1/LICENSE-MIT
|
|
||||||
7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c licenses/dependencies/termcolor-1.4.1/UNLICENSE
|
|
||||||
62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a licenses/dependencies/thiserror-1.0.69/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/thiserror-1.0.69/LICENSE-MIT
|
|
||||||
62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a licenses/dependencies/thiserror-2.0.20/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/thiserror-2.0.20/LICENSE-MIT
|
|
||||||
62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a licenses/dependencies/thiserror-impl-1.0.69/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/thiserror-impl-1.0.69/LICENSE-MIT
|
|
||||||
62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a licenses/dependencies/thiserror-impl-2.0.20/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/thiserror-impl-2.0.20/LICENSE-MIT
|
|
||||||
6d41e05f1d54fe726997cb0334ec539f1dff50600b1d5d90462ec2b392770ced licenses/dependencies/tiny-skia-0.11.4/LICENSE
|
|
||||||
6d41e05f1d54fe726997cb0334ec539f1dff50600b1d5d90462ec2b392770ced licenses/dependencies/tiny-skia-path-0.11.4/LICENSE
|
|
||||||
f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2 licenses/dependencies/tinystr-0.8.4/LICENSE
|
|
||||||
4f44572785f35152c1fd2eadf565b7e079c0f300b4324f0af653419f9d76b735 licenses/dependencies/tinyvec_macros-0.1.1/LICENSE-APACHE.md
|
|
||||||
1dd8eca0f83669e75fa119e34fb9e1be9d16e3e9b6368962b8019db6e8ae5f7b licenses/dependencies/tinyvec_macros-0.1.1/LICENSE-MIT.md
|
|
||||||
41ace205715d9f19a3214218cc1c01d57c533e02cd0fef7c8e51a49a7fce5ac5 licenses/dependencies/tinyvec_macros-0.1.1/LICENSE-ZLIB.md
|
|
||||||
cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 licenses/dependencies/tinyvec-1.13.2/LICENSE-APACHE.md
|
|
||||||
fd80a26fbb3f644af1fa994134446702932968519797227e07a1368dea80f0bc licenses/dependencies/tinyvec-1.13.2/LICENSE-MIT.md
|
|
||||||
84b34dd7608f7fb9b17bd588a6bf392bf7de504e2716f024a77d89f1b145a151 licenses/dependencies/tinyvec-1.13.2/LICENSE-ZLIB.md
|
|
||||||
253cd04c6714889df2d32f3f64d669179a1c95c76ac43c40882c52eb06bc3552 licenses/dependencies/tokio-1.53.1/LICENSE
|
|
||||||
0b83dc40cba89b9922bb84b0a9c7d2768ce37c1d7e138b7424fd4549915778c9 licenses/dependencies/tokio-macros-2.7.2/LICENSE
|
|
||||||
cc117d90b498b32b11a886f279b359da16a73c3b01efbb2f5cc004b20262334e licenses/dependencies/tokio-rustls-0.26.5/LICENSE-APACHE
|
|
||||||
e20fa2b8e0a2565f24a792b94b4bf4b6c2b9d36f781d8a9516e218a036e6677a licenses/dependencies/tokio-rustls-0.26.5/LICENSE-MIT
|
|
||||||
4249c8e6c5ebb85f97c77e6457c6fafc1066406eb8f1ef61e796fbdc5ff18482 licenses/dependencies/tower-0.5.3/LICENSE
|
|
||||||
5049cf464977eff4b4fcfa7988d84e74116956a3eb9d5f1d451b3f828f945233 licenses/dependencies/tower-http-0.6.11/LICENSE
|
|
||||||
4249c8e6c5ebb85f97c77e6457c6fafc1066406eb8f1ef61e796fbdc5ff18482 licenses/dependencies/tower-layer-0.3.3/LICENSE
|
|
||||||
4249c8e6c5ebb85f97c77e6457c6fafc1066406eb8f1ef61e796fbdc5ff18482 licenses/dependencies/tower-service-0.3.3/LICENSE
|
|
||||||
898b1ae9821e98daf8964c8d6c7f61641f5f5aa78ad500020771c0939ee0dea1 licenses/dependencies/tracing-0.1.44/LICENSE
|
|
||||||
898b1ae9821e98daf8964c8d6c7f61641f5f5aa78ad500020771c0939ee0dea1 licenses/dependencies/tracing-attributes-0.1.31/LICENSE
|
|
||||||
898b1ae9821e98daf8964c8d6c7f61641f5f5aa78ad500020771c0939ee0dea1 licenses/dependencies/tracing-core-0.1.36/LICENSE
|
|
||||||
58545fed1565e42d687aecec6897d35c6d37ccb71479a137c0deb2203e125c79 licenses/dependencies/tracing-core-0.1.36/src/spin/LICENSE
|
|
||||||
c816a0749cdc6bf062a5111c159723de51b2bfac66a1dac2655abd9e6b1583eb licenses/dependencies/try-lock-0.2.5/LICENSE
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/ttf-parser-0.25.1/LICENSE-APACHE
|
|
||||||
f3c9fe731c701ed77fd5fbaac573872af04dc5869385eb9bd5e3c73c42713814 licenses/dependencies/ttf-parser-0.25.1/LICENSE-MIT
|
|
||||||
58d1e17ffe5109a7ae296caafcadfdbe6a7d176f0bc4ab01e12a689b0499d8bd licenses/dependencies/ttf-parser-0.25.1/tests/fonts/colr_1_LICENSE
|
|
||||||
edb20b474f6cbd4f4db066b54a9e0f687d0009d309412a63431189b59b8e2a07 licenses/dependencies/unicode-bidi-0.3.18/COPYRIGHT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/unicode-bidi-0.3.18/LICENSE-APACHE
|
|
||||||
7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0 licenses/dependencies/unicode-bidi-0.3.18/LICENSE-MIT
|
|
||||||
62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a licenses/dependencies/unicode-ident-1.0.24/LICENSE-APACHE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/unicode-ident-1.0.24/LICENSE-MIT
|
|
||||||
f7db81051789b729fea528a63ec4c938fdcb93d9d61d97dc8cc2e9df6d47f2a1 licenses/dependencies/unicode-ident-1.0.24/LICENSE-UNICODE
|
|
||||||
c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 licenses/dependencies/unicode-linebreak-0.1.5/LICENSE
|
|
||||||
7cbb56d1b5d83d735056b363ab20958524120afafc4ad8206e6be98cdec5d737 licenses/dependencies/unicode-script-0.5.8/LICENSE-APACHE
|
|
||||||
7ad3ea8ca3caf894db98c3f31d5d4949173ffa93c883ef19a9e529ad48960f8c licenses/dependencies/unicode-script-0.5.8/LICENSE-MIT
|
|
||||||
23860c2a7b5d96b21569afedf033469bab9fe14a1b24a35068b8641c578ce24d licenses/dependencies/unicode-segmentation-1.13.3/COPYRIGHT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/unicode-segmentation-1.13.3/LICENSE-APACHE
|
|
||||||
7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0 licenses/dependencies/unicode-segmentation-1.13.3/LICENSE-MIT
|
|
||||||
23860c2a7b5d96b21569afedf033469bab9fe14a1b24a35068b8641c578ce24d licenses/dependencies/unicode-width-0.2.2/COPYRIGHT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/unicode-width-0.2.2/LICENSE-APACHE
|
|
||||||
7b63ecd5f1902af1b63729947373683c32745c16a10e8e6292e2e2dcd7e90ae0 licenses/dependencies/unicode-width-0.2.2/LICENSE-MIT
|
|
||||||
7abd9b6960dcf7d4d0a48606a5b71bfe37d472db68d70637f3a58a56785f1621 licenses/dependencies/untrusted-0.9.0/LICENSE.txt
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/url-2.5.8/LICENSE-APACHE
|
|
||||||
b38f11f6096706e6de553dabe2a7ed142d59b6fa8c97e290c67496154745cdd5 licenses/dependencies/url-2.5.8/LICENSE-MIT
|
|
||||||
c30152c94a6d75e021adbc52b3a52470366a46edb917e17deae3259251af244c licenses/dependencies/utf8_iter-1.0.4/COPYRIGHT
|
|
||||||
cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 licenses/dependencies/utf8_iter-1.0.4/LICENSE-APACHE
|
|
||||||
3fa4ca83dcc9237839b1bdeb2e6d16bdfb5ec0c5ce42b24694d8bbf0dcbef72c licenses/dependencies/utf8_iter-1.0.4/LICENSE-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/uuid-1.26.0/LICENSE-APACHE
|
|
||||||
436bc5a105d8e57dcd8778730f3754f7bf39c14d2f530e4cde4bd2d17a83ec3d licenses/dependencies/uuid-1.26.0/LICENSE-MIT
|
|
||||||
a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 licenses/dependencies/version_check-0.9.5/LICENSE-APACHE
|
|
||||||
b7e650f3fce5c53249d1cdc608b54df156a97edd636cf9d23498d0cfe7aec63e licenses/dependencies/version_check-0.9.5/LICENSE-MIT
|
|
||||||
a65f5d0a945d267751344c95665945b90c030ea107faf5c85d518929886187da licenses/dependencies/want-0.3.1/LICENSE
|
|
||||||
54a744942eb3fa63a74d8d359989ed6962c04f3f10ff20cfa08ff8aa7efbe4e6 licenses/dependencies/web-time-1.1.0/LICENSE-APACHE
|
|
||||||
f428305bbf2e70fbd807af0f3c7ac1b7acfb95311640f451e9d2e48db6d7e96b licenses/dependencies/web-time-1.1.0/LICENSE-MIT
|
|
||||||
e271993808fec50ab29350b39539cdec611a9103f827e0aa26d61da70e2d33f8 licenses/dependencies/webpki-roots-1.0.9/LICENSE
|
|
||||||
a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9 licenses/dependencies/wgpu-27.0.1/LICENSE.APACHE
|
|
||||||
dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21 licenses/dependencies/wgpu-27.0.1/LICENSE.MIT
|
|
||||||
a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9 licenses/dependencies/wgpu-core-27.0.3/LICENSE.APACHE
|
|
||||||
dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21 licenses/dependencies/wgpu-core-27.0.3/LICENSE.MIT
|
|
||||||
a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9 licenses/dependencies/wgpu-core-deps-windows-linux-android-27.0.0/LICENSE.APACHE
|
|
||||||
dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21 licenses/dependencies/wgpu-core-deps-windows-linux-android-27.0.0/LICENSE.MIT
|
|
||||||
a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9 licenses/dependencies/wgpu-hal-27.0.4/LICENSE.APACHE
|
|
||||||
dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21 licenses/dependencies/wgpu-hal-27.0.4/LICENSE.MIT
|
|
||||||
a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9 licenses/dependencies/wgpu-types-27.0.1/LICENSE.APACHE
|
|
||||||
dc0d97139e8205818c703741c7be7cb3b96888bd5917b8d6fc6133731e403c21 licenses/dependencies/wgpu-types-27.0.1/LICENSE.MIT
|
|
||||||
01c266bced4a434da0051174d6bee16a4c82cf634e2679b6155d40d75012390f licenses/dependencies/winapi-util-0.1.11/COPYING
|
|
||||||
cb3c929a05e6cbc9de9ab06a4c57eeb60ca8c724bef6c138c87d3a577e27aa14 licenses/dependencies/winapi-util-0.1.11/LICENSE-MIT
|
|
||||||
7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c licenses/dependencies/winapi-util-0.1.11/UNLICENSE
|
|
||||||
7faec985f3e9b1c4a1df646bfedc304ba67e409447f7ab7f4f591f68708d85dc licenses/dependencies/window_clipboard-0.5.1/LICENSE
|
|
||||||
c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b licenses/dependencies/windows_x86_64_gnullvm-0.52.6/license-apache-2.0
|
|
||||||
c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383 licenses/dependencies/windows_x86_64_gnullvm-0.52.6/license-mit
|
|
||||||
c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b licenses/dependencies/windows-0.58.0/license-apache-2.0
|
|
||||||
c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383 licenses/dependencies/windows-0.58.0/license-mit
|
|
||||||
c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b licenses/dependencies/windows-core-0.58.0/license-apache-2.0
|
|
||||||
c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383 licenses/dependencies/windows-core-0.58.0/license-mit
|
|
||||||
c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b licenses/dependencies/windows-implement-0.58.0/license-apache-2.0
|
|
||||||
c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383 licenses/dependencies/windows-implement-0.58.0/license-mit
|
|
||||||
c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b licenses/dependencies/windows-interface-0.58.0/license-apache-2.0
|
|
||||||
c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383 licenses/dependencies/windows-interface-0.58.0/license-mit
|
|
||||||
c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b licenses/dependencies/windows-link-0.2.1/license-apache-2.0
|
|
||||||
c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383 licenses/dependencies/windows-link-0.2.1/license-mit
|
|
||||||
c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b licenses/dependencies/windows-result-0.2.0/license-apache-2.0
|
|
||||||
c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383 licenses/dependencies/windows-result-0.2.0/license-mit
|
|
||||||
c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b licenses/dependencies/windows-strings-0.1.0/license-apache-2.0
|
|
||||||
c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383 licenses/dependencies/windows-strings-0.1.0/license-mit
|
|
||||||
c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b licenses/dependencies/windows-sys-0.52.0/license-apache-2.0
|
|
||||||
c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383 licenses/dependencies/windows-sys-0.52.0/license-mit
|
|
||||||
c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b licenses/dependencies/windows-sys-0.59.0/license-apache-2.0
|
|
||||||
c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383 licenses/dependencies/windows-sys-0.59.0/license-mit
|
|
||||||
c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b licenses/dependencies/windows-sys-0.61.2/license-apache-2.0
|
|
||||||
c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383 licenses/dependencies/windows-sys-0.61.2/license-mit
|
|
||||||
c16f8dcf1a368b83be78d826ea23de4079fe1b4469a0ab9ee20563f37ff3d44b licenses/dependencies/windows-targets-0.52.6/license-apache-2.0
|
|
||||||
c2cfccb812fe482101a8f04597dfc5a9991a6b2748266c47ac91b6a5aae15383 licenses/dependencies/windows-targets-0.52.6/license-mit
|
|
||||||
6dc0e068dcf3a5bc8e054205b85b7720e1d49265bbc64bf515d2cf79197df69a licenses/dependencies/winit-0.30.13/LICENSE
|
|
||||||
f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2 licenses/dependencies/writeable-0.6.4/LICENSE
|
|
||||||
0dc18d924dc0a5f41172a393012843a5eaaef338e795b3645da9cc3b6068220b licenses/dependencies/xml-rs-0.8.29/LICENSE
|
|
||||||
7cfd738c53d61c79f07e348f622bf7707c9084237054d37fbe07788a75f5881c licenses/dependencies/yazi-0.2.1/LICENSE-APACHE
|
|
||||||
df62e3ef3f207c91073fedd78b4156a278681d0dd3f942379242c62c6a71a3ec licenses/dependencies/yazi-0.2.1/LICENSE-MIT
|
|
||||||
f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2 licenses/dependencies/yoke-0.8.3/LICENSE
|
|
||||||
f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2 licenses/dependencies/yoke-derive-0.8.2/LICENSE
|
|
||||||
7cfd738c53d61c79f07e348f622bf7707c9084237054d37fbe07788a75f5881c licenses/dependencies/zeno-0.3.3/LICENSE-APACHE
|
|
||||||
34dff8202d63e6df022f4f0ce88dab24f254c35ee0d5958b74dcf74d9eae21cc licenses/dependencies/zeno-0.3.3/LICENSE-MIT
|
|
||||||
9d185ac6703c4b0453974c0d85e9eee43e6941009296bb1f5eb0b54e2329e9f3 licenses/dependencies/zerocopy-0.8.56/LICENSE-APACHE
|
|
||||||
83c1763356e822adde0a2cae748d938a73fdc263849ccff6b27776dff213bd32 licenses/dependencies/zerocopy-0.8.56/LICENSE-BSD
|
|
||||||
1a2f5c12ddc934d58956aa5dbdd3255fe55fd957633ab7d0d39e4f0daa73f7df licenses/dependencies/zerocopy-0.8.56/LICENSE-MIT
|
|
||||||
9d185ac6703c4b0453974c0d85e9eee43e6941009296bb1f5eb0b54e2329e9f3 licenses/dependencies/zerocopy-derive-0.8.56/LICENSE-APACHE
|
|
||||||
83c1763356e822adde0a2cae748d938a73fdc263849ccff6b27776dff213bd32 licenses/dependencies/zerocopy-derive-0.8.56/LICENSE-BSD
|
|
||||||
1a2f5c12ddc934d58956aa5dbdd3255fe55fd957633ab7d0d39e4f0daa73f7df licenses/dependencies/zerocopy-derive-0.8.56/LICENSE-MIT
|
|
||||||
f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2 licenses/dependencies/zerofrom-0.1.8/LICENSE
|
|
||||||
f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2 licenses/dependencies/zerofrom-derive-0.1.7/LICENSE
|
|
||||||
cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 licenses/dependencies/zeroize-1.9.0/LICENSE-APACHE
|
|
||||||
8c7516d4b27b1e495be5e38b612298b63de48d05f49cdac94f70f3cd70f8864b licenses/dependencies/zeroize-1.9.0/LICENSE-MIT
|
|
||||||
f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2 licenses/dependencies/zerotrie-0.2.5/LICENSE
|
|
||||||
f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2 licenses/dependencies/zerovec-0.11.8/LICENSE
|
|
||||||
f367c1b8e1aa262435251e442901da4607b4650e0e63a026f5044473ecfb90f2 licenses/dependencies/zerovec-derive-0.11.6/LICENSE
|
|
||||||
23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 licenses/dependencies/zmij-1.0.23/LICENSE-MIT
|
|
||||||
b5efebcaca80879234098e52d1725e6d9eb8fb96a19fce625d39184b705f7b6d licenses/llvm-libunwind/llvm-ea7d852a70e8-libunwind-LICENSE.TXT
|
|
||||||
8d85c1057d742e597985c7d4e6320b015a9139385cff4cbae06ffc0ebe89afee licenses/llvm-mingw-LICENSE.TXT
|
|
||||||
28e85c5aa4af9b4f1dfe6b4817aa3eefb3eaaee7fd735045016f29ccf50276a1 licenses/rust/COPYING.RUNTIME
|
|
||||||
8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 licenses/rust/COPYING3
|
|
||||||
68129500b616d5838629e68f55ff3aed5e096dacf60ce9eb41bbe599a563afa6 licenses/rust/COPYRIGHT-library.html
|
|
||||||
5b0c93fc4e6d4b072eaa521b1762d1e746f4c368f65e81a0e5308e2772dac85e licenses/rust/COPYRIGHT.html
|
|
||||||
25f01823dbceed15468bf759eed3f9ffbfd1098427027288bcbb9a3d356b6a4d package.json
|
|
||||||
597cfb8da873e019d2658420f18ec059f0185fa9106ff9eafe934dfdd6ed266b README.md
|
|
||||||
a549295cf57ac73673dc4fa6106463450f982122793cb9c7135ce4fc7087e9ed START-HERE.txt
|
|
||||||
6756989c8fc73706641cd78449c315458425a2eed9a82febc289b9d28ea7f21f THIRD-PARTY-NOTICES.txt
|
|
||||||