WIP checkpoint schema8 analysis core before user reboot

This commit is contained in:
Codex
2026-09-11 06:46:52 -07:00
parent 7d14bd0dd1
commit b96ff3935a
21 changed files with 3329 additions and 113 deletions
+12 -4
View File
@@ -60,7 +60,8 @@ impl ParseLimits {
let graph = project
.elements
.len()
.saturating_add(project.relations.len());
.saturating_add(project.relations.len())
.saturating_add(project.definitions.len());
let records = graph
.saturating_add(1)
.saturating_add(project.diagrams.len())
@@ -79,7 +80,8 @@ impl ParseLimits {
.sum::<usize>(),
)
.saturating_add(project.artifact_links.len())
.saturating_add(project.traces.len());
.saturating_add(project.traces.len())
.saturating_add(crate::analysis::nested_record_count(project));
let steps = project
.elements
.values()
@@ -1426,6 +1428,7 @@ impl Parser<'_> {
alias,
name,
description: String::new(),
definitions: BTreeMap::new(),
elements: BTreeMap::new(),
relations: BTreeMap::new(),
diagrams: BTreeMap::new(),
@@ -1646,6 +1649,9 @@ pub(crate) fn resolve_declarations(
}
parent = Some(owner);
}
if kind.is_analysis() {
return Err(conversion_error("Analysis records require the source8 authoring implementation.".into()));
}
let mut initial = if kind == Kind::Port {
if !fields.contains_key("contract") {
return Err(conversion_error(
@@ -1875,13 +1881,15 @@ pub(crate) fn resolve_declarations(
}
return Ok(migrated);
}
if matches!(project.schema_version, 4..=6) {
if matches!(project.schema_version, 4..=7) {
return (if project.schema_version == 4 {
crate::persistence::v4::finish(project, limits)
} else if project.schema_version == 5 {
crate::persistence::migrate_v5(project, limits)
} else {
} else if project.schema_version == 6 {
crate::persistence::migrate_v6(project, limits)
} else {
crate::persistence::migrate_v7(project, limits)
})
.map_err(|error| {
(