Checkpoint source 7 workflows and in-progress diagram authoring redesign
Rust checks / check (ubuntu-latest) (push) Canceled after 0s
Rust checks / check (windows-latest) (push) Canceled after 0s

Preserve current core, source, REST, desktop, recovery, documentation and validation work, including AGENTS.md and the development summary. This is a work-in-progress checkpoint: the new compact palette has outstanding compilation errors and native acceptance; earlier passing gates retain their documented scope.
This commit is contained in:
Codex
2026-09-10 10:06:55 -07:00
parent 4b6b5fc197
commit e2ecfea69b
162 changed files with 17595 additions and 926 deletions
+29
View File
@@ -87,8 +87,15 @@ pub fn visit_element_refs(e: &mut Element, mut visit: impl FnMut(&mut Id)) {
receiver,
reply_to,
values,
operation,
..
} => {
if let Some(id) = operation
.as_mut()
.and_then(|operation| operation.allocation.as_mut())
{
visit(id);
}
for id in [exchange, sender, receiver, reply_to].into_iter().flatten() {
visit(id);
}
@@ -150,6 +157,22 @@ pub fn visit_relation_refs(r: &mut Relation, mut visit: impl FnMut(&mut Id)) {
visit(&mut target);
r.body.set_endpoints(source, target);
match &mut r.body {
RelationBody::ContextualLink {
owner,
source,
target,
purpose,
} => {
visit(owner);
for id in source.references.iter_mut().chain(&mut target.references) {
visit(id);
}
match purpose {
ContextualLinkPurpose::Exchange { exchange } => visit(exchange),
ContextualLinkPurpose::CommonWork { work } => visit(work),
ContextualLinkPurpose::Precedence { .. } => {}
}
}
RelationBody::StateTransition {
triggers, effects, ..
} => {
@@ -274,6 +297,8 @@ fn deletion_impact_inner(p: &Project, id: Id, defer_exchange_allocations: bool)
});
if removed.contains(&r.source())
|| removed.contains(&r.target())
|| (r.kind() == RelationKind::ContextualLink
&& relation_references(r).iter().any(|id| removed.contains(id)))
|| port_removed
|| work_allocation_removed
{
@@ -444,8 +469,12 @@ fn remove_objects(p: &mut Project, removed: BTreeSet<Id>) {
receiver,
reply_to,
values,
operation,
..
} => {
if let Some(operation) = operation {
clear(&mut operation.allocation);
}
clear(exchange);
clear(sender);
clear(receiver);