Classification
Generator correctness defect discovered while routing Jim checkpoint declarations through the generated GraphQL/Wesley/installed-operation corridor.
Problem
echo-wesley-gen currently emits Rust for a GraphQL enum that does not compile:
- the enum emitter writes
#[cbor(index_only)] even when minicbor generation is not enabled;
- emitted variants do not receive the stable
#[n(...)] tags required by an index-only minicbor enum;
- the current generator test checks for annotation strings in stdout, but does not compile the emitted consumer.
Jim therefore could not lawfully change the checkpoint reason field from String! to a GraphQL enum. PR #282 retained the scalar bridge and added native closed-domain witnesses rather than hand-editing generated Rust.
Evidence
Why it matters
An authored enum is part of the contract's semantic domain. If the generator cannot produce compilable code, consumers must either weaken the schema to a string or falsify generation by patching artifacts. Both create drift at exactly the boundary Wesley is supposed to make deterministic.
Constraints
- Generated artifacts must compile without manual edits.
- Numeric tags must be stable and deterministic when minicbor is requested.
- Default/contract-host output must not acquire irrelevant minicbor-only attributes.
- Do not make downstream consumers reproduce Echo identity or codec rules.
- Edict may eventually replace this corridor, but the existing generator must not emit invalid Rust while it remains supported.
Acceptance criteria
Related
Classification
Generator correctness defect discovered while routing Jim checkpoint declarations through the generated GraphQL/Wesley/installed-operation corridor.
Problem
echo-wesley-gencurrently emits Rust for a GraphQL enum that does not compile:#[cbor(index_only)]even when minicbor generation is not enabled;#[n(...)]tags required by an index-only minicbor enum;Jim therefore could not lawfully change the checkpoint reason field from
String!to a GraphQL enum. PR #282 retained the scalar bridge and added native closed-domain witnesses rather than hand-editing generated Rust.Evidence
Why it matters
An authored enum is part of the contract's semantic domain. If the generator cannot produce compilable code, consumers must either weaken the schema to a string or falsify generation by patching artifacts. Both create drift at exactly the boundary Wesley is supposed to make deterministic.
Constraints
Acceptance criteria
--contract-hostconsumer.--minicboroutput assigns every enum variant a stable numeric tag and compiles.Related