You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[GEN-E5] Fixed per-operation behaviour moves into hand-written bases #482
Part of #350, the quality-refactoring roadmap (road to 1.0, step 3).
Goal: Fixed per-operation behaviour moves into hand-written bases (a spike first, then a design record). Lands paired with RT-E9.
Lane: Generator + Runtime. Status: todo.
Every PR of this epic starts its title with [GEN-E5]. The finding issues it closes are linked as sub-issues; this issue closes when the epic's last PR merges and master CI is green.
Clone baseline ownership from #517 (#452): the guard-prelude ignore made a pre-existing duplicated body visible: tools/OpenCode.Sdk.Tools/Generator/Emission/EnvelopeEmitter.cs:10-20 ↔ ResponseAdapterEmitter.cs:11-21 (the Emit preludes). It is baselined with this issue as its owner, since ResponseAdapterEmitter is GEN-E5's (GEN-E4 decision 2). When the hand-written bases replace it, drop the fingerprint from tools/jscpd/tools.baseline.json (verify-clones reports it stale).
GEN-E4 (#481) takes one item from ResponseAdapterEmitter, which otherwise stays this epic's: its single OpenCodeJsonContext registry literal becomes a RegistryNames call, byte-identical, in GEN-E4 PR 2. It is a named exception, so that GEN-E4's proof ("no OpenCodeJsonContext literal outside RegistryNames") holds across Emission. GEN-E5 should not redo it. The rest of ResponseAdapterEmitter (its size, its Number, StatusVerdict and Routes helper copies, and the per-operation tables) stays here, as GEN-E4's decision 2 assigned.
Moved to milestone 1.1 by the 1.0 triage (2026-10-25). The epic's refactor is internal; the one piece that changes documented consumer behaviour stays in milestone 1.0 as its own issue and lands before 1.0.0 as a small PR: #30 (the envelopes' printing), with #177 (the doc-comment wording).
Activity
Blind-Striker commentedon Oct 18, 2026
Clone baseline ownership from #517 (#452): the guard-prelude ignore made a pre-existing duplicated body visible:
tools/OpenCode.Sdk.Tools/Generator/Emission/EnvelopeEmitter.cs:10-20↔ResponseAdapterEmitter.cs:11-21(the Emit preludes). It is baselined with this issue as its owner, since ResponseAdapterEmitter is GEN-E5's (GEN-E4 decision 2). When the hand-written bases replace it, drop the fingerprint fromtools/jscpd/tools.baseline.json(verify-clonesreports it stale).Blind-Striker commentedon Oct 24, 2026
GEN-E4 (#481) takes one item from
ResponseAdapterEmitter, which otherwise stays this epic's: its singleOpenCodeJsonContextregistry literal becomes aRegistryNamescall, byte-identical, in GEN-E4 PR 2. It is a named exception, so that GEN-E4's proof ("noOpenCodeJsonContextliteral outsideRegistryNames") holds across Emission. GEN-E5 should not redo it. The rest ofResponseAdapterEmitter(its size, itsNumber,StatusVerdictandRouteshelper copies, and the per-operation tables) stays here, as GEN-E4's decision 2 assigned.Blind-Striker commentedon Oct 25, 2026
Moved to milestone 1.1 by the 1.0 triage (2026-10-25). The epic's refactor is internal; the one piece that changes documented consumer behaviour stays in milestone 1.0 as its own issue and lands before 1.0.0 as a small PR: #30 (the envelopes' printing), with #177 (the doc-comment wording).