One content-id display form across verbs; tolerate the content: prefix in refs #194
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?
process|campaign introspect --content-id print 'content:' while graph introspect --content-id prints the bare hash (fieldtest cycle-0106, F3). Pasting the prefixed form into a document ref PASSES intrinsic validation (it is just a string — and yields a different content id for the doc) and then fails referential resolution with 'process content: not found in the project store', without naming the prefix as the cause. Copy-paste from the tool's own output produces a silently broken campaign.
Likely shape: pick one display form everywhere (bare hash matches graph and the store filenames), and/or strip an accepted 'content:' prefix at ref-parse time, and/or have the referential refusal flag a prefixed-looking id explicitly.
Re-confirmed by the cycle-0107 fieldtest (F6)
The prefix trap survived the executor cycle and now taxes the on-ramp it shipped: every
registerverb (graph|process|campaign) andintrospect --content-idprintcontent:<hash>, while everyrefslot wants the bare hash. A campaign whoseprocess.refcarries the copiedcontent:…form passes intrinsic validation and fails referential resolution; the refusal now echoes the offending ref verbatim (an improvement over the 0106 shape) but still never names the prefix as the cause, andregisterkeeps printing exactly the form that breaks. Repro fixture:fieldtests/cycle-0107-campaign-executor/c0107_4_campaign_prefixref.json. Scope addition since 0106:aura graph register(cycle 0107, #196) emits the same prefixed form, so the trap now covers all three document families.Design decision (derived): bare id is the one display form; CLI targets tolerate the prefix; doc refs stay bare-only
Three calls, each with its ground:
graph introspect --content-idalready prints bare — the doc-verb families converge on it (registered process <id> (<path>);--content-idprints the bare id). Ground: the copyable token must BE the valid ref form; the trap exists precisely becausecontent:<hash>reads as one token and pastes as one token.content:prefix (campaign run,graph introspect --params, and the other FILE-or-id targets). Ground: a CLI arg is ephemeral input, not content-addressed bytes — leniency here costs nothing and absorbs the installed base of prefixed output already in shells/notes.Veto by replying here.