⚠ Council correction (2026-07-14 — added on top; the body below is left for the trail)
A 5+3 falsification council audited this issue. Two things in the original body were WRONG and are corrected here; readers should trust THIS section over the body below:
- The specific field mapping was invented. "
from_key → object_instance, ordinal → action_def, subject = User" does not hold: ordinal is a u32 array index while ActionInvocation.action_def is a String identity (type mismatch), and the only real constructor (submit_to_invocation, ogar-from-schema/src/action_ws.rs:308) hardcodes subject = ActionSubject::System. What IS true: ogar_vocab::ActionInvocation (lib.rs:508, object_instance field) is the landing TYPE, with live SPO emission (ogar-emitter::emit_action_invocation, lib.rs:774). The lowering from a UI KlickwegEdge to it is undesigned — that is the work.
action_ws is NOT the UI-click path. It is the arago/HIRO automation surface (SubmitAction → CapabilityExecutor impls NativeCommandExecutor/SshExecutor, shell/SSH capability execution). Do not route a2ui action-fires through it by assumption.
Authoritative design pointer (was missing): OGAR docs/ACTIONDEF-VALUE-DISPATCH-PROPOSAL.md already specifies where ActionDef value dispatch lives (a value-reproducing interpreter over a populated ActionDef behind a consumer seam). Any live-edge → invocation design must reconcile with that doc, not re-invent it.
The real, reframed gap (what this issue should track):
- (a) the lowering: a UI
KlickwegEdge → ActionInvocation (the correct subject reading for a human click; ordinal → action_def identity resolution, not a raw index);
- (b) the
navigates_to relationship: screen-jump edges vs. the existing nav_witnessed Klickwege plane (ogar-emitter/src/do_adapter.rs:38) and the action-fire landing — navigates_to is not a wholly unhomed concept, only an unwired relationship;
- (c) the ownership gate (still open): which mailbox owns a desktop session's edge stream; how an out-of-tree producer (a2ui-server) crosses the membrane (V3 write-on-behalf, no free-standing sink).
Full receipts: MedCare-rs E-MEDCARE-30 + AGENT_LOG (council run); the contract::action shape-parity-fuse hazard is tracked separately (linked issue).
(original body, retained for the correction trail — read through the section above)
The seam
The a2ui-rs arc produces live navigation/action events: DesktopSession emits KlickwegEdge { from_key, class_id, ordinal, predicate }, drains via take_klickwege(). A click IS a navigates_to/ActionInvocation edge — zero new vocabulary. Nothing receives them yet. This is the a2ui arc's last unbuilt plateau.
Correction trail
Supersedes lance-graph #691 (mis-homed at the storage/query layer — OGAR is the V3 substrate; Lance persistence is calcification, not an ingest API). The mapping/action_ws specifics in the first draft of THIS issue were then themselves falsified by the council above — the durable content is the reframed gap (a)/(b)/(c) and the ACTIONDEF-VALUE-DISPATCH-PROPOSAL.md pointer.
🤖 Generated with Claude Code
⚠ Council correction (2026-07-14 — added on top; the body below is left for the trail)
A 5+3 falsification council audited this issue. Two things in the original body were WRONG and are corrected here; readers should trust THIS section over the body below:
from_key → object_instance,ordinal → action_def,subject = User" does not hold:ordinalis au32array index whileActionInvocation.action_defis a String identity (type mismatch), and the only real constructor (submit_to_invocation,ogar-from-schema/src/action_ws.rs:308) hardcodessubject = ActionSubject::System. What IS true:ogar_vocab::ActionInvocation(lib.rs:508,object_instancefield) is the landing TYPE, with live SPO emission (ogar-emitter::emit_action_invocation,lib.rs:774). The lowering from a UIKlickwegEdgeto it is undesigned — that is the work.action_wsis NOT the UI-click path. It is the arago/HIRO automation surface (SubmitAction→CapabilityExecutorimplsNativeCommandExecutor/SshExecutor, shell/SSH capability execution). Do not route a2ui action-fires through it by assumption.Authoritative design pointer (was missing): OGAR
docs/ACTIONDEF-VALUE-DISPATCH-PROPOSAL.mdalready specifies where ActionDef value dispatch lives (a value-reproducing interpreter over a populatedActionDefbehind a consumer seam). Any live-edge → invocation design must reconcile with that doc, not re-invent it.The real, reframed gap (what this issue should track):
KlickwegEdge→ActionInvocation(the correctsubjectreading for a human click;ordinal→action_defidentity resolution, not a raw index);navigates_torelationship: screen-jump edges vs. the existingnav_witnessedKlickwege plane (ogar-emitter/src/do_adapter.rs:38) and the action-fire landing —navigates_tois not a wholly unhomed concept, only an unwired relationship;Full receipts: MedCare-rs E-MEDCARE-30 + AGENT_LOG (council run); the
contract::actionshape-parity-fuse hazard is tracked separately (linked issue).(original body, retained for the correction trail — read through the section above)
The seam
The a2ui-rs arc produces live navigation/action events:
DesktopSessionemitsKlickwegEdge { from_key, class_id, ordinal, predicate }, drains viatake_klickwege(). A click IS anavigates_to/ActionInvocationedge — zero new vocabulary. Nothing receives them yet. This is the a2ui arc's last unbuilt plateau.Correction trail
Supersedes lance-graph #691 (mis-homed at the storage/query layer — OGAR is the V3 substrate; Lance persistence is calcification, not an ingest API). The mapping/
action_wsspecifics in the first draft of THIS issue were then themselves falsified by the council above — the durable content is the reframed gap (a)/(b)/(c) and theACTIONDEF-VALUE-DISPATCH-PROPOSAL.mdpointer.🤖 Generated with Claude Code