test: make the publish-trimmed harness an enforceable CI gate (TRIM-004) - #68
Merged
Conversation
…-004 harness gate In-repo reconnaissance confirmed both preservation gaps from the outside- perspective split and surfaced three new findings: the TrimmingTests harness is unenforced (outside sln/CI, exits 0 on failure), EventRelaySmokeTest cannot pin the subscribe-only event shape, and Design.Domain event-pattern comments still document the removed PreserveType emission. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…I gate Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The TrimmingTests harness printed FAILED lines but always exited 0, sat outside the solution, and was never run by CI — it had not even compiled since the [Event] method API was deleted in v1.5.0, and its class-factory check had been silently failing (root-provider scope violation, missing keyed HttpClient registration). - Aggregate named checks into a failure list; exit non-zero on any failure - Remove dead [Event] method usage; event coverage is EventRelaySmokeTest - Resolve factories inside a scope; register keyed HttpClient with a no-op handler (harness never sends requests) - Add the project to Neatoo.RemoteFactory.sln so plain builds catch rot - CI: publish trimmed (linux-x64), assert server-only implementation types absent from the binary, run the harness - Interface-name over-retention in guarded-dead LocalCreate bodies is deferred to TRIM-005 (docs currently claim full removal) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
First plan of the TRIM todo (
docs/todos/TRIM-dto-trimming-preservation-gaps/) — close the IL-trimming preservation gaps that forced zTreatment into a ~50-entry LinkerConfig.xml workaround. This PR also carries the todo container itself (recon-verified goal, plan index, discovery log) plus thedocs/todos/conventions/ID-registry bootstrap.The TrimmingTests harness printed
FAILEDlines but always exited 0, sat outside the solution, and was never run by CI — it hadn't even compiled since the[Event]method API was deleted in v1.5.0, and its class-factory check had been silently failing.Changes
[Event]method usage (event coverage isEventRelaySmokeTeston the current relay API); factories now resolve inside a scope (ValidateScopes=true); keyedHttpClientregistered with a no-op handler —Class factory resolved: Truenow holds on a trimmed client for the first time.RemoteFactory.TrimmingTestsadded toNeatoo.RemoteFactory.slnso plain builds catch compile rot.Trimming verificationstep publishes the trimmed harness (linux-x64, self-contained), asserts server-only implementation types are absent from the binary, and runs the harness.IServerOnlyRepositoryinterface name survives trimming via guarded-deadLocalCreatebodies (docs claim full removal) — queued as TRIM-005.Test plan
🤖 Generated with Claude Code