Skip to content

chore: Prepare v1.7.0 release - #78

Merged
keithdv merged 1 commit into
mainfrom
release-v1.7.0
Aug 14, 2026
Merged

chore: Prepare v1.7.0 release#78
keithdv merged 1 commit into
mainfrom
release-v1.7.0

Conversation

@keithdv

@keithdv keithdv commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Closes the TRIM arc. Version 1.6.11.7.0, release notes authored, release-step obligations from deferred row 22 discharged.

What v1.7.0 ships

Under-preservation (types trimmed away that shouldn't be) — positional-record DTOs in factory signatures, DTOs carried as [Factory] entity properties, and FactoryEventBase descendants reachable only from a subscription lambda. Plus restored incremental caching on the relay-handler branch.

Over-preservation ([Remote] bodies shipping to the browser) — two independent mechanisms, both fixed:

Mechanism Affected since Shapes
Registrar attribute's [DynamicallyAccessedMembers] named the consumer's own class v0.21.2 [Execute] static factories, [FactoryEventHandler<T>] classes
IsServerRuntime guard does not fold inside an async state machine always every class factory with an async operation, LocalSave, class-level [Execute]

What the release notes carry that commit-prefix scanning could not

CLAUDE.md's documented process scans commit prefixes. Run literally it would have produced three feat: lines, one perf:, three fix: — and omitted the behaviour change, because TRIM-009's commit is fix:-prefixed and prefix-scanning cannot know a bug fix changed observable semantics. Deferred row 22 existed for exactly this.

  • Behaviour Changes — the server-only guard now throws synchronously rather than surfacing as a faulted Task. Awaiting callers are unaffected; migration guidance covers the split-call/await and Task.WhenAll shapes, which are the only ones that observe it.
  • What this release does not claim — the interface-factory carve-out, stated in the consumer-facing artifact rather than only in the todo, the generator comments, and the skill. That leg has received neither fix and is structurally unmeasurable from a client-side harness; body removal there is not established.

Also at the release step, per recorded dispositions

  • TrimmingTests/README.md "How It Works" rewritten (audit callout C8) — it described only the pre-TRIM-009 mechanism. Holder-prefix table taken from the renderers by grep; the first draft named the relay prefix from memory and got it wrong, which is recorded.
  • ClassFactoryWithExecute.cs gains the trimming commentary block (deferred item 11, TRIM-009 half). The TRIM-002/007 half stays accepted-with-reason — preservation genuinely is unobservable in untrimmed Design tests; TRIM-009's behaviour change is not.
  • todo.md's Close-Out Audit section now links the 2026-08-14 whole-arc audit, which it never did — the arc's final review was undiscoverable from its own container.
  • 1.x nav_order chain renumbered to a strict 1–9 rather than adding a fresh collision at the top. The v0.x block stays as declared out of scope in d8369b3; now tracked as deferred row 24.

Verification

  • No public API changed — no attribute, type, or method signature added, removed, or altered since v1.6.1. Library diff is XML-doc only.
  • Design.sln build: succeeded, 0 warnings, 0 errors (the new XML doc block compiles under TreatWarningsAsErrors).
  • Neatoo.RemoteFactory.sln build: succeeded, 0 errors. 4 warnings, all pre-existing and untouched by this change (WASM NativeFileReference in an example project; two CA1062 in TrimmingTests).
  • No test asserts a version string — every 1.6.1/1.7.0 hit outside Directory.Build.props is a generated obj/ AssemblyInfo.cs.
  • Full suite runs here in CI.

Acceptance

AC1–AC4 and AC6 met. AC5 is discharged without consumer proof, per its close-out restatement (audit C4) — the container states this plainly rather than ticking it. The LinkerConfig deletion and Release WASM publish belong to zTreatment PCB-003, now unblocked.

After merge: tag v1.7.0 off main, CI publishes to NuGet and creates the GitHub release.

🤖 Generated with Claude Code

Closes the TRIM arc. Version 1.6.1 -> 1.7.0, release notes authored,
release-step obligations from deferred row 22 discharged.

The notes carry two things CLAUDE.md's commit-prefix scanning could not
have produced:

- A Behaviour Changes section for TRIM-009's synchronous throw. Its
  commit is fix:-prefixed, so prefix scanning would have emitted a
  one-line patch bug-fix and omitted the semantic change entirely.
  Migration guidance covers the split-call/await and Task.WhenAll
  shapes, which are the only ones that observe it.
- A "What this release does not claim" section naming the
  interface-factory carve-out in the consumer-facing artifact, not only
  in the todo, the generator comments, and the skill.

Also at the release step, per their recorded dispositions:

- TrimmingTests/README.md "How It Works" rewritten (audit callout C8).
  It described only the pre-TRIM-009 mechanism; now states the two
  independently-broken conditions, with the holder-prefix table taken
  from the renderers by grep.
- ClassFactoryWithExecute.cs gains the trimming commentary block
  (deferred item 11, TRIM-009 half). The TRIM-002/007 half stays
  accepted-with-reason -- preservation genuinely is unobservable in
  untrimmed Design tests; TRIM-009's behaviour change is not.
- todo.md Close-Out Audit section now links the 2026-08-14 whole-arc
  audit, which it never did -- the arc's final review was
  undiscoverable from its own container.
- 1.x nav_order chain renumbered to a strict 1-9 rather than adding a
  fresh collision at the top. The v0.x block stays as declared out of
  scope in d8369b3; now tracked as deferred row 24.

AC1-AC4 and AC6 met; AC5 discharged per its close-out restatement,
without consumer proof, which the container states plainly. zTreatment
PCB-003 unblocked.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@keithdv
keithdv merged commit 94a8a12 into main Aug 14, 2026
2 checks passed
@keithdv
keithdv deleted the release-v1.7.0 branch August 14, 2026 18:41
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