Skip to content

Move RTS member composition into the CSharp seam - #3793

Merged
richlander merged 45 commits into
mainfrom
feature/rts-thin-orchestrator
Aug 15, 2026
Merged

Move RTS member composition into the CSharp seam#3793
richlander merged 45 commits into
mainfrom
feature/rts-thin-orchestrator

Conversation

@richlander

@richlander richlander commented Aug 4, 2026

Copy link
Copy Markdown
Owner

Advances #2777

Conclusion: PASS — ReturnToSender planning facts map into a neutral CSharpMemberShellSpec; product-owned ILInspector.CSharp constructs member shells while RTS retains orchestration and compile-back remains independent.

Stack

Change

  • Deletes harness-local member/accessor/body-policy shell composition.
  • Preserves RTS closure discovery, member selection, and body selection.
  • Adds direct product coverage for init properties, explicit-interface events, primary-constructor stubs, parameter modifiers, operators, and finalizers.
  • Keeps compile-back as a parallel oracle.

Evidence

  • The complete reconstructed stack builds at bbe0d44a.
  • Product shell tests pass, and the full 5,214-case oracle-backed decompiler suite passes with zero failures or skips.

Evidence revision: ce03bcbe

@richlander

Copy link
Copy Markdown
Owner Author

Integrated origin/main at 6a84c12b after the clean fixed-head reviews at
a0db6285.

The reviewed main base was c9c47f63; the integrated tip is 4ca46623. The
range touches none of this PR's three changed files and does not alter its
product-owned member-shell composition contract. The RTS changes in the range
are compile-back-floor provenance/fault-isolation reporting and expanded CI
gates. git merge-tree reported no textual conflict.

Per the maintainer's decision, the clean reviews carry forward under the
documented non-interaction exception. Current-head validation passed: Release
solution build, 466 CSharp tests, and 580 RoundTrip tests with zero skips and
the IL oracle tools active.

@richlander
richlander force-pushed the feature/rts-thin-orchestrator branch from 6a84c12 to eed5733 Compare August 6, 2026 21:52
@richlander richlander closed this Aug 7, 2026
@richlander richlander reopened this Aug 7, 2026
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@richlander
richlander force-pushed the feature/rts-thin-orchestrator branch from eed5733 to 499fe60 Compare August 7, 2026 19:04
@richlander

Copy link
Copy Markdown
Owner Author

Restacked onto current main (168464d9 -> 50046669) at user direction. Parent head moved eed57330 -> 499fe60e; git range-diff 168464d9..eed57330 50046669..499fe60e reports the sole parent commit as =. Current-head CI and a new fixed-head review round are required before readiness.

@richlander

Copy link
Copy Markdown
Owner Author

Integrated current origin/main in merge commit 40b5c626 after the clean round-six result at 499fe60e.

Reviewed base 30aa2cf4 moved to 17081213 only through #3788. That commit has no file overlap with this slice or child #3810, changes typed query/CLI section wiring rather than C# member composition, metadata extraction, or RTS planning, and produces no merge-tree conflict. The user explicitly authorized carrying the clean parent reviews across this non-interacting integration.

Range-diff: 499fe60e = 499fe60e (the sole feature commit is unchanged). Release solution build, ILInspector.CSharp.Tests, and the oracle-backed RoundTrip gate passed at the integrated head.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@richlander

Copy link
Copy Markdown
Owner Author

Before round eight, origin/main advanced from 17081213 to ac02553f through #3871, #3890, and #3891. The range has no file overlap with either RTS slice and changes typed query wiring, readable-local-name defaults, and review-status documentation rather than member extraction/composition. Merge-tree analysis found no conflict.

Integrated as merge commit 923abca2. The Release solution build and child subsystem/area gates passed after integration; the parent/child pinned cap-3 RTS differential also remained identical.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@richlander

Copy link
Copy Markdown
Owner Author

Round-eight base settlement advanced again because origin/main moved from ac02553f to de56a0e1 before review began. Integrated as 044bb1df. The range is otherwise disjoint from RTS, but #3888 relocates model-free operator notation from ILInspector.Metadata to its architectural owner, CSharpText.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@richlander

Copy link
Copy Markdown
Owner Author

Final pre-round-eight base update: integrated non-interacting de56a0e1..c4db43c6 as 3d9bbd76. The range removes the obsolete repository NuGet config and updates CI/corpus documentation; it has no RTS feature-path overlap or merge conflict.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@richlander

Copy link
Copy Markdown
Owner Author

Post-round-eight base update: integrated origin/main range c4db43c6..0ff89bef as 63646a61. The range adds typed workspace/query coordination and safe assembly-image lifetimes with no RTS feature-path overlap or merge conflict.

richlander and others added 2 commits August 9, 2026 05:10
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@richlander

Copy link
Copy Markdown
Owner Author

Round-nine base integration

Current head: b72e1502c4292f514a93c1cb3cdbe72abf22aec6

Integrated origin/main through 945e7502 before the authorized round-nine
review. The relevant upstream interactions were:

The parent feature commit remains unchanged. Stack validation at child head
3295f5a2 passed the Release solution build and all focused/product/oracle
gates; the pinned cap-3 parent/child parity artifacts remain identical at 36
targets (28 Exact, 4 OpcodeDiff, 4 RecompileFail).

Round nine has not started. It remains gated on current-head CI and mergeability
for both stack layers.

richlander and others added 2 commits August 9, 2026 07:33
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@richlander

Copy link
Copy Markdown
Owner Author

Integrated origin/main through 26decd5f in parent head 77015e80 before round nine. The incoming ranges were #3940’s feature-focused test-source move, #3896’s typed extension-method query, and #3942’s exact output line limits. Only #3940 interacted with validation semantics: it can reorder test-assembly metadata/PDB identities, so the child corpus-token correlation was revalidated after integration. The later query/output changes have no RTS, decompiler, metadata, C# composition, fixture, or corpus overlap. Release build and exact-head child gates are green.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@richlander

Copy link
Copy Markdown
Owner Author

Integrated origin/main through 592242ed at parent head a92e6a3f.

The incoming range (d90c7ff4, 592242ed) had no textual overlap with this
slice. It did move compiler-produced samples within
ILInspector.Decompiler.Tests, so I treated metadata/PDB identity as
potentially interacting and reran the final product/oracle evidence rather than
carrying it forward.

The Release build and child exact-head gates remain green locally. Final
parent/child cap-3 parity is identical over the pinned 14-assembly, 89,065-method
corpus: 36 checked, 28 Exact, 4 OpcodeDiff, 4 RecompileFail, and the same
three-row burndown.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@richlander

Copy link
Copy Markdown
Owner Author

Integrated origin/main through 151d9102 at parent head 846264a5.

The incoming range (7ff4b626, 896b812f, 151d9102) had no textual overlap
with either RTS slice. 896b812f moved compiler-produced return-sinking samples
within ILInspector.Decompiler.Tests, so I reran the metadata/corpus identity
and oracle evidence rather than treating the range as non-interacting.

Final parent/child cap-3 parity remains identical over the pinned 14-assembly,
89,065-method corpus: 36 checked, 28 Exact, 4 OpcodeDiff, 4 RecompileFail, and
the same three-row burndown.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@richlander

Copy link
Copy Markdown
Owner Author

Integrated origin/main through 4279d718 at parent head 8adc52aa.

The single incoming commit renames the progressive member call-graph query API
and has no textual or dependency overlap with either RTS slice. The Release
solution build and exact-head RTS/operator/oracle gates were rerun after the
merge.

@richlander

Copy link
Copy Markdown
Owner Author

Integrated origin/main through 9ea30ac50 in parent merge
929debd9.

The only incoming overlap was FidelityCheck: main added source-declarable
virtual method shells before the existing operator-declaration path. The RTS
operator guards compose after that logic without changing their patch.

Exact-head validation passed the Release solution build, 598 CSharpText tests,
342 ILInspector.CSharp tests, all 259 selected product-surface/output tests,
and the full 5,058-case oracle-backed decompiler suite with zero failures or
skips. Parent/child normalized cap-3 snapshots and three-row burn-downs remain
byte-identical.

@richlander

Copy link
Copy Markdown
Owner Author

Integrated origin/main through 923cc84e5 and published conflict-free head d536acbf. The intervening main changes were non-interacting with this slice or touched separate methods; the combined exact stack head builds successfully. This supersedes the transient conflict report.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@richlander

Copy link
Copy Markdown
Owner Author

Round thirteen was authorized. Before starting it, I integrated origin/main through b92129836; the incoming call-cycle, workflow-corpus, and flags-enum fixture changes are disjoint from both RTS slices. Published parent head: f0789ac6. The exact combined head builds successfully.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@richlander

Copy link
Copy Markdown
Owner Author

Resliced the former child monolith into #4142, narrowed #3810, and #4143. This parent now integrates the frozen base 94b87a33e at ce03bcbe; the complete replacement tree builds and passes 5,214 decompiler cases with zero failures or skips.

@richlander

Copy link
Copy Markdown
Owner Author

Replacement candidate 78f46df9f00d16a2ae609e8a4374959c1c255011 integrates main
d5c0a49bf37f0dd088f982000362378d17917156 via merge commit
78f46df9f00d16a2ae609e8a4374959c1c255011, including #4189's
authored-corpus token fix.

Exact-head local validation:

  • Release solution build passed.
  • ILInspector.CSharp.Tests passed 458/458.

Upper stack slices will be restacked onto this base.

richlander and others added 7 commits August 14, 2026 14:59
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@richlander

Copy link
Copy Markdown
Owner Author

Adversarial review is complete on exact head 313dcec47b8b000e08aa5a3b6de41d68e19fea10 against base bdfd8e1558cafea6ea5c476d63c4a10d3471e3b2.

Review findings resolved:

  • GPT-5.6 Sol found harness-authored explicit-method declaration text and body/accessor retargeting gaps; 8ff332fc3 moved composition into ILInspector.CSharp and made body-kind validation fail closed.
  • GPT-5.6 Sol found dropped TypeParameterTypeKind; 379b1028b preserves the typed metadata through both DTO seams. The strengthened explicit-implementation assertion fails when that propagation is mutated away.
  • GPT-5.6 Sol found explicit get/init shells failing in Selected and Full; d6324e382 fixes product classifiers, preserves required explicit init siblings, and adds compiler-produced coverage.
  • GPT-5.6 Sol and Claude Opus reproduced fabricated getters on set-only/init-only properties and indexers; 963f5049d centralizes property-shape selection and adds explicit setter/init skeleton and stub shapes with Selected+Full compiler coverage.
  • Round-17 public-seam guard edges were closed by 618c39977: invalid explicit setter-only skeletons now fail closed while legal multi-argument generic interface identities remain accepted.
  • The final round was clean for the promised contract. GPT's optional I<>.Run case was dismissed as malformed in-process input outside well-behaved typed callers; requiring rejection would turn a structural/hazard guard into a parallel full C# parser. Claude verified all RTS-producible identities and 59 adversarial spellings.

Exact-head evidence:

  • Release solution build: passed
  • ILInspector.CSharp.Tests: 472 passed, 0 failed/skipped
  • ILInspector.Decompiler.Tests --gate roundtrip: 625 passed, 0 failed/skipped
  • ci-required: SUCCESS
  • GitHub: MERGEABLE / CLEAN
  • GPT-5.6 Sol + Claude Opus fixed-head round complete

Ready to merge

Preserve constructor initializers and unsafe evidence across every emitted shell fragment, and reject malformed explicit-interface type spellings before rendering.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@richlander
richlander merged commit 0e2429e into main Aug 15, 2026
12 checks passed
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