Embedding-surface polish from the M4 milestone fieldtest: refusal prose, divergence-class doc, entry-point discoverability, scaffold path dep #349
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?
Bundled friction findings from the "Safe to embed" milestone fieldtest (2026-07-26, corpus
fieldtests/milestone-safe-to-embed/, replayable viam4_0_run_all.sh). None blocks the milestone promise — the bugs the same fieldtest found were fixed in-cycle.Open-blueprint refusal leaks a Debug struct through the library seam.
run_signal_ron a blueprint with free knobs refuses withParamArity { expected: 3, got: 0 }as the message — a Debug rendering, not prose. The CLI leg pre-validates and never shows it, but the embedding consumer (the seam this milestone built) sees it verbatim. Wanted: prose naming the open knobs, the same register style as every other refusal.--overriderefusal prose says "axis" on the exec leg.aura: axis nope.length: names no param …— correct on a campaign axis, but onexec --overridethe caller wrote an override, not an axis. The prose is shared with the sweep boundary (override_paths); wanted: caller-context wording (or neutral "override/param" phrasing) without forking the shared builder.The divergence exit class is documented only in C18.
reproduce's not-all-identical exit 1 appears in no user-facing doc (guide/README); a consumer reading the exit-class passage cannot predict it. One clause in the guide's exit-class passage.No public doc names the embedding entry points. The fieldtester located
run_signal_r/run_measurement/reproduce_familyonly via C28 + rustdoc spelunking. C30 states the consumption mechanism (path dep / rev pin) but nothing names the seam functions a World program starts from. Wanted: a short "embedding the engine" passage (README or project-layout) naming the entry points and pointing at their rustdoc.aura nodes newemits an ABSOLUTE engine path into the scaffoldedCargo.toml. Functional, but the scaffolded crate breaks the moment the checkout moves, and a committed fixture carries a dead path (the fieldtest corpus had to relativize by hand). Consider emitting a relative path when the target lies under the engine tree, falling back to absolute otherwise.refs #296
Consolidation note (M4 merge, 2026-07-26)
Item 2 of this issue — the
--overriderefusal saying "axis" on the execleg — is the same finding as #345 item 2, reached independently by the
harvest-2026-07-26 per-cycle fieldtest and by this milestone fieldtest. Two
source-blind runs hitting the same line is corroboration, not new scope: it
is one fix in the shared
parse_override_tokensrefusal seam, and bothitems close with it.
Two further cross-issue pairs, recorded so a polish sweep does not touch the
same files twice:
ParamArity { .. }Debugrendering reaching the library consumer) and #345 item 1 (the refusal
recommending the very flag the caller just used) are the same refusal seen
from the two faces of C14: the library seam and the CLI leg.
aura nodes newscaffold emission — item 5 here (the absolute enginepath written into the scaffolded
Cargo.toml) and #346 item 5 (themissing
cargo buildhint on the success line) both edit the scaffolder'soutput.
Recorded at the M4 merge; no scope change to any of the three issues.