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
+42 -9
View File
@@ -14,6 +14,7 @@ pub struct Request {
pub placement: Option<Id>,
pub bend: Option<usize>,
pub route_point: Option<Position>,
pub creation_point: Option<Position>,
pub canvas: Option<route_edit::Context>,
pub source_file: Option<String>,
}
@@ -25,6 +26,7 @@ impl Request {
placement: None,
bend: None,
route_point: None,
creation_point: None,
canvas: None,
source_file: None,
}
@@ -205,13 +207,24 @@ pub fn popup(app: &App) -> Option<Menu<Message>> {
),
item("Export SVG…", Message::Export, true),
Entry::separator(),
item(
&format!("Create {} at root", app.create_kind.label()),
Message::Add(false),
validation::can_parent(p, app.create_kind, app.layer, None),
),
item("Browse existing elements…", Message::Explore(None), true),
]);
for kind in crate::app::architecture_authoring::kinds(app) {
entries.push(item(
&format!("Create {} here…", kind.label()),
Message::Architecture(crate::app::architecture_authoring::Event::Start(
kind,
request.creation_point,
)),
true,
));
}
entries.push(item(
"Add existing here…",
Message::Architecture(crate::app::architecture_authoring::Event::Existing(
request.creation_point,
)),
true,
));
} else {
if request.route_point.is_some()
|| request.bend.is_some()
@@ -343,7 +356,23 @@ pub fn popup(app: &App) -> Option<Menu<Message>> {
} else {
Kind::Function
};
if e.kind().is_performer() || e.kind().is_work() {
if e.kind().is_performer() && request.canvas.is_some() {
if crate::app::architecture_authoring::kinds(app).contains(&work) {
entries.push(item(
if e.layer() == Layer::Oa {
"Add activity…"
} else {
"Add function…"
},
Message::Architecture(crate::app::architecture_authoring::Event::Allocate(
work,
id,
request.creation_point,
)),
true,
));
}
} else if e.kind().is_performer() || e.kind().is_work() {
entries.push(item(
if e.kind().is_performer() {
"Create allocated work"
@@ -416,12 +445,16 @@ pub fn popup(app: &App) -> Option<Menu<Message>> {
if p.layer_of(id).is_some() {
entries.push(item("Create relationship…", Message::AddRelation, true));
entries.push(item(
"Create counterpart / review prose…",
if p.layer_of(id) == Some(Layer::Oa) {
"Create System counterpart…"
} else {
"Create Operational counterpart…"
},
Message::StartTransition,
true,
));
entries.push(item(
"Review semantics…",
"Review counterpart changes…",
Message::StartSemanticReview(id),
p.traces.values().any(|t| t.oa == id || t.sa == id),
));