use-seam residues: instance-param ganging, gang-knob binding at splice, open-run rendering, --unwired on use-docs #339
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Collective residue issue — #317 use-seam polish items
Four small, accepted residues from the #317 cycle (audit close 2026-07-24),
bundled per the fieldtest-routing consolidation practice. None is a bug;
each is a capability or rendering gap recorded in commit bodies and now
given its forward-queue home. Evidence anchors are the #317 cycle commits
(7392075..audit close).
Instance params are not gangable.
gangrefuses a spliced instance'smember path (
OpError::BadParam/UnknownParamon the instance node —pinned by
gang_of_a_spliced_instance_member_path_refuses,crates/aura-engine/src/construction.rs). Fusing params across/into used
instances (e.g. two instances' lengths under one knob) would need
path-qualified gang members; today the docs state the refusal honestly.
A used subgraph's gang knob is unbindable at the use seam.
use'sbindreaches leaf params (and refuses ganged members viaBindOpError::AlreadyGanged), but the gang's own public knob (e.g.channel_length) cannot be bound at splice time — it stays open/sweepableonly. Binding it would be the natural pairing with residue 1.
Run-boundary rendering of an open blueprint's refusal.
aura runonan open pattern (bare-tap path) refuses at bootstrap with the raw Debug
form
UnboundRootRole { role: 0 }(index, not role name) — pinned as-isby
running_an_open_blueprint_refuses_at_bootstrap. An index→namerendering at the run boundary would make the refusal by-identifier (C29
posture). Related: on the bias arm,
wrap_rre-roots the signal, soopenness surfaces as a role-binding refusal instead — a different (also
pre-existing) shape; worth one prose line where run errors are described
if this confuses in the field.
graph introspect --unwiredrefuses use-bearing documents. Thebuild-free introspection paths pass
&|_| Noneas the subgraph resolver,so a document containing
usefails there, rendering the ref (possibly alabel) as "content id". Either resolve refs in introspection too (store
access from a build-free path — a small design call) or state the
limitation in the surface's help/refusal.
context: #317 audit close — architect drift items given a tracker home;
depends on: nothing (each item is independently actionable).
Fieldtest evidence (composites-use, 2026-07-24)
meets is
node xover has no param "fast.length", which reads as a typohint, not as "instance-member ganging is unsupported". When the target
node IS a spliced instance, the refusal should name the rule (the
no-such-open-param shape is technically true but misleading). Repro:
fieldtests/composites-use/cu_4_gang_instance_member.ops.json.bootstrap
UnboundRootRolealmost never surfaces: the harness bindsroles by name first (an open pattern with matching role names simply
runs — ratified, see #317), and what a consumer meets is the bias/tap
gate, the free-knob refusal, or the role-column refusal. The index→name
rendering is still worth having for the compile-level backstop, but it
is lower-value than item 3 originally suggested.