Skip to content

[GEN-E5] Fixed per-operation behaviour moves into hand-written bases #482

Open
0 of 2 issues completed

Description

@Blind-Striker

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.

Activity

  1. added this to the 1.0 milestone on Oct 18, 2026
  2. Blind-Striker commented on Oct 18, 2026

    @Blind-Striker
    CollaboratorAuthor

    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).

  3. Blind-Striker commented on Oct 24, 2026

    @Blind-Striker
    CollaboratorAuthor

    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.

  4. modified the milestones: 1.0, 1.1 on Oct 25, 2026
  5. Blind-Striker commented on Oct 25, 2026

    @Blind-Striker
    CollaboratorAuthor

    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).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions