Skip to content

feat(generator): compile the M1 model closure - #15

Merged
Blind-Striker merged 7 commits into
masterfrom
feature/m1-compiler-models
Aug 12, 2026
Merged

Blind-Striker merged 7 commits into
masterfrom
feature/m1-compiler-models

Conversation

@Blind-Striker

Copy link
Copy Markdown
Collaborator

Summary

  • Define the approved M1 walking-skeleton plan for v2.health.get and v2.session.message.
  • Bind only the selected reachable schema closure and emit immutable models, tolerant marked unions, and source-generated JSON metadata with Roslyn.
  • Add deterministic manifest-owned generation, stale cleanup, and generate --verify drift detection.
  • Commit the 57-file generated model closure and keep all packages blocked while .generation-incomplete records the pending operation breadth.
  • Cover generator ownership/security behavior and runtime known/unknown serialization contracts.

Verification

  • dotnet build --configuration Release
  • dotnet test --configuration Release --no-build (230 passed: 194 tools, 36 SDK)
  • dotnet format --verify-no-changes --no-restore
  • dotnet tool run slopwatch analyze --exclude ".scratchpad/**,external/**" --fail-on warning
  • dotnet run --file tools/opencode-tool.cs -- generate --verify
  • Core and Extensions pack attempts rejected without producing artifacts while the partial marker exists
  • git diff --check

@Blind-Striker
Blind-Striker merged commit 3e3e058 into master Aug 12, 2026
3 checks passed
@Blind-Striker
Blind-Striker deleted the feature/m1-compiler-models branch August 12, 2026 12:45
Blind-Striker added a commit that referenced this pull request Aug 15, 2026
Four small confirmed findings from the PR #26 review land together: the
owned transport disposes when the pipeline constructor refuses credentials
after creation (#15); the family-folder shadow and duplicate checks compare
with the writer's case-insensitive owned-path comparer (#20);
QueryStringBuilder escapes parameter names exactly like values (#21); and
the User-Agent product token resolves once into a shared immutable instance
instead of re-reflecting per client (#30 — no performance claim made, the
reflection removal is the recorded obvious-waste rule). The Username
documentation drops its pinned-server claim: the pinned server accepts only
'opencode'; --username/OPENCODE_SERVER_USERNAME is upstream direction, and
the option is the gateway seam (#23; doc 15 and the Q89 finding corrected).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant