-
Notifications
You must be signed in to change notification settings - Fork 0
feat: deterministic RPC semantic identity #415
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
SunSi12138
merged 402 commits into
dev
from
feature/issue-396-deterministic-rpc-identity
Sep 4, 2026
Merged
Changes from all commits
Commits
Show all changes
402 commits
Select commit
Hold shift + click to select a range
9e5704e
Cover runtime-sized UnsafeBlit rejection
SunSi12138 39fac33
Cover manifest provider UnsafeBlit guard
SunSi12138 39ab8da
Add sixth review regression coverage
SunSi12138 50bc47d
Fix sixth review regression assertion
SunSi12138 6e38642
Fix Codec policy initializer syntax
SunSi12138 abdc393
fix: include closed adapter target schema in codec identity
SunSi12138 b285850
fix: tighten deterministic codec wire identities
SunSi12138 2321718
fix: reject nested runtime-sized unsafe layouts
SunSi12138 54132b0
fix: restrict unsafe blit to stable 64-bit ABI
SunSi12138 9af64cc
fix: reject non-little-endian runtime wire platform
SunSi12138 2d02c0b
test: cover unsafe blit ABI and endian guards
SunSi12138 b7a4035
test: cover seventh deterministic identity review cases
SunSi12138 f2c1775
fix: compile closed adapter identity helper
SunSi12138 739e10c
fix: move endian guard to runtime context initialization
SunSi12138 ade9f07
fix: canonicalize root string codec as UTF-8
SunSi12138 d23d7f4
fix: enforce little-endian wire platform at module load
SunSi12138 bdf528a
fix: align deterministic string identity with UTF-8 framing
SunSi12138 e130402
test: cover canonical UTF-8 root string framing
SunSi12138 4c6024a
fix: assert SharpLink string decode error code
SunSi12138 a592d35
fix: compare canonical string length as uint
SunSi12138 f67cbd1
fix: avoid adapter identity pattern variable collisions
SunSi12138 551c595
test: verify DTO string canonical UTF-8 framing
SunSi12138 c06abb5
fix: keep adapter lifecycle id out of wire identity
SunSi12138 8a4b9e4
fix: preserve v2 root string wire format
SunSi12138 f541e61
fix: treat adapter codecs as opaque identities
SunSi12138 62cdd15
docs: define opaque adapter compatibility boundary
SunSi12138 4ac2ccb
fix: align codec identities with opaque adapters and v2 wire
SunSi12138 ce3d4c6
fix: canonicalize generated string and datetimeoffset wire
SunSi12138 7271269
fix: preserve utf16 dto string fast path
SunSi12138 59f71ac
test: cover opaque adapters and v2 string wire
SunSi12138 7231abe
test: preserve v2 string compatibility
SunSi12138 5642e12
test: cover canonical generated datetimeoffset wire
SunSi12138 16f32dc
fix: keep canonical datetimeoffset span scoped
SunSi12138 f8b0228
test: preserve generated utf16 code units
SunSi12138 8ee1fe5
test: align generated string protocol coverage
SunSi12138 d39f0e9
refactor: name generated string helper for utf16
SunSi12138 eb5f2eb
test: align exact string sizing with utf16 wire
github-actions[bot] 60de434
test: lock canonical generated DateTimeOffset wire
SunSi12138 7c71788
docs: define opaque adapter semantic identity boundary
SunSi12138 4b66210
test: avoid LINQ clone in DateTimeOffset regression
SunSi12138 544955c
chore: scan review compatibility surfaces
SunSi12138 6fad417
chore: apply latest review fixes
SunSi12138 fa59b2c
chore: rerun review patch with project validation
SunSi12138 307aa39
chore: validate review patch with current dotnet cli
SunSi12138 d6525eb
chore: validate enum identity propagation
SunSi12138 06c9b78
chore: isolate direct and dto enum identity tests
SunSi12138 f2cf745
chore: scan PR415 review markers
SunSi12138 cb54814
chore: validate PR415 review fixes
SunSi12138 36cbf26
chore: run PR415 review validation
SunSi12138 05c59ce
chore: harden PR415 review runner
SunSi12138 4c22f1b
chore: add protocol boundary review validation
SunSi12138 0ee0433
chore: run final PR415 review validation
SunSi12138 42cb811
fix: fence the new DTO wire generation
SunSi12138 06dedf5
fix: reject stale negotiated protocol minors
SunSi12138 893badb
test: cover protocol wire generation boundary
SunSi12138 b0e0f34
chore: run trusted final review patch
SunSi12138 4857b86
fix: close deterministic identity review gaps
SunSi12138 dbe8b02
fix: persist enum semantic identity in contract manifest
SunSi12138 fab5c80
fix: feed enum codec hashes into contract manifest
SunSi12138 b21aae2
fix: emit enum codec hash in contract baseline
SunSi12138 c3982ad
fix: compare enum semantic identity in baselines
SunSi12138 2989044
test: cover enum mapping contract baseline identity
SunSi12138 1471828
fix: recursively identify adapter targets
SunSi12138 c8f6191
fix: align codec hashes with runtime selection
SunSi12138 b6f1895
test: cover closed adapter and nullable identity
SunSi12138 d1d861f
test: pin builtin collection wire strategies
SunSi12138 35567a4
test: add auto-layout compatibility evidence
SunSi12138 30ee829
test: retain auto-layout compatibility fixtures
SunSi12138 206738f
test: keep auto-layout fixture indexes in sync
SunSi12138 584143b
test: expose auto-layout compatibility fixtures
SunSi12138 262e82d
test: retain auto-layout evidence in codec matrix
SunSi12138 291b681
test: record DateTimeOffset container evidence without marshal offsets
SunSi12138 0232fee
test: fix nullable contract codec identity regression
SunSi12138 993f27b
test: link auto layout evidence into android probe
SunSi12138 eba1a73
test: link auto layout evidence into ios probe
SunSi12138 2e9c99b
test: link auto layout evidence into browser probe
SunSi12138 4dbb549
test: sync compatibility fixture policy digest
SunSi12138 3201c75
test: sync portable compatibility policy digest
SunSi12138 1c95cf6
test: focus nullable regression on selected wire identity
SunSi12138 529b5a5
ci: run non-Mono codec verification before Mono
SunSi12138 920d523
ci: remove Mono codec matrix from mobile evidence
SunSi12138 614d50e
test: detect CoreCLR on experimental iOS lane
SunSi12138 81364e2
test: add experimental iOS CoreCLR target
SunSi12138 4a108be
test: assert experimental iOS CoreCLR runtime
SunSi12138 82b148c
ci: add experimental iOS CoreCLR codec evidence
SunSi12138 79319ae
ci: allow net11 iOS CoreCLR portable evidence
SunSi12138 42a7a67
ci: validate net11 iOS CoreCLR evidence directly
SunSi12138 a04bd43
ci: cross-check desktop corpus on iOS CoreCLR
SunSi12138 63cc97b
ci: disable unsupported iOS CoreCLR debugger mode
SunSi12138 cebe14e
ci: harden experimental iOS CoreCLR simulator probe
SunSi12138 fb1b4ab
test: validate runtime manifests by target framework generation
SunSi12138 39979a5
feat: advise on AutoLayout UnsafeBlit payloads
SunSi12138 c7fe26a
test: expand UnsafeBlit layout compatibility evidence
SunSi12138 66b4a79
test: harden UnsafeBlit layout evidence harness
SunSi12138 2161b8d
fix: include split UnsafeBlit layout matrix
SunSi12138 a160997
fix: include split UnsafeBlit layout matrix
SunSi12138 9d6ec6f
fix: include split UnsafeBlit layout matrix
SunSi12138 27612ee
test: retain UnsafeBlit portable layout domain
SunSi12138 442e969
refactor: resolve final codec plans before hashing
SunSi12138 881c90f
refactor: hash resolved final codec plans
SunSi12138 0c42b2a
refactor: drive UnsafeBlit guidance from final codec plans
SunSi12138 8a0dde2
refactor: split final codec plan IR models
SunSi12138 2c7230c
refactor: split final codec physical layout resolver
SunSi12138 f758fc6
refactor: separate final codec selection from physical layout
SunSi12138 7e67d55
fix: type explicit layout offsets in codec plan
SunSi12138 144ca3b
refactor: bump deterministic codec generated ABI
SunSi12138 94b6c23
test: expose final codec plan generator failures
SunSi12138 f6ef804
refactor: stamp final codec plan ABI
SunSi12138 9f517e1
refactor: hash only pre-resolved codec graphs
SunSi12138 7fbeb29
refactor: resolve final codec graphs once per analysis pass
SunSi12138 2159b33
fix: retain reached enum codec metadata
SunSi12138 e3680b0
fix: canonicalize DateTimeOffset collection wire
SunSi12138 152489b
fix: decode DateTimeOffset collections canonically
SunSi12138 7ca52c3
test: pin canonical DateTimeOffset collection wire
SunSi12138 b89570c
test: fix segmented DateTimeOffset fixture
SunSi12138 06db74e
refactor: hash canonical DateTimeOffset collection wire
SunSi12138 f052995
fix: keep canonical DateTimeOffset parsing scoped
SunSi12138 e8d75c4
refactor: carry normalized timeout and layout diagnostics
SunSi12138 4a15fc2
refactor: consume resolved graph for layout diagnostics
SunSi12138 1e44820
refactor: attach UnsafeBlit layout diagnostics to codec analysis
SunSi12138 80c75e9
refactor: report UnsafeBlit layout guidance from main analysis
SunSi12138 200d743
refactor: remove duplicate UnsafeBlit diagnostic generator pass
SunSi12138 fbef966
test: validate DateTimeOffset canonical wire without CLR padding forgery
SunSi12138 fd96c5f
test: exercise UnsafeBlit guidance through main generator
SunSi12138 559f1b8
refactor: hash normalized RPC timeout ticks
SunSi12138 32dff8b
test: pin normalized timeout semantic identity
SunSi12138 e5a7567
refactor: remove duplicate UnsafeBlit graph resolution helper
SunSi12138 4490128
refactor: emit normalized timeout ticks
SunSi12138 25978bb
refactor: emit normalized timeout ticks
SunSi12138 7f7964c
refactor: normalize timeout policy identity
SunSi12138 3dacc0b
test: migrate generated manifest fixtures to ABI v4
SunSi12138 7022561
refactor: split generator analysis responsibilities
SunSi12138 4627696
refactor: split generator method semantics
SunSi12138 0561582
refactor: split generator contract modeling
SunSi12138 2e731af
refactor: store normalized timeout semantics
SunSi12138 28075ef
refactor: normalize method timeout once
SunSi12138 0771449
refactor: isolate contract model construction
SunSi12138 2526b90
refactor: isolate referenced contract analysis
SunSi12138 ace856c
refactor: make final codec graph complete at resolution
SunSi12138 905d7eb
refactor: isolate final codec selection
SunSi12138 4c9e79c
refactor: hash only resolved final codec graph
SunSi12138 62848d4
refactor: require collection strategy in resolved plan
SunSi12138 1d38365
refactor: guard UnsafeBlit framework raw ABI
SunSi12138 a4d21b0
test: cover UnsafeBlit framework raw ABI guard
SunSi12138 6d8b93d
style: format final codec identity hasher
SunSi12138 95e3195
fix: complete generator hash value model
SunSi12138 05ed331
style: normalize final codec plan file endings
SunSi12138 c6b25fa
style: normalize generator partial file endings
SunSi12138 8598318
style: normalize generator method semantics ending
SunSi12138 92398e1
style: normalize generator partial file endings
SunSi12138 1212d63
chore: remove resolved generator maintainability allowance
SunSi12138 d3d6566
refactor: declare DateTimeOffset raw ABI shape
SunSi12138 908319f
refactor: centralize builtin collection wire catalog
SunSi12138 bbd1336
fix: restore generator DTO support models
SunSi12138 f42b58e
refactor: link builtin collection wire catalog
SunSi12138 c326a0c
refactor: resolve builtin collections from shared catalog
SunSi12138 1e64489
fix: normalize builtin collection type aliases
SunSi12138 cafbb50
test: lock builtin collection catalog to runtime codecs
SunSi12138 d743ef4
test: lock generator builtin candidates to shared catalog
SunSi12138 8f871ef
test: align timeout descriptor assertion with tick canonicalization
SunSi12138 040e1c2
test: keep timeout assertion change isolated
SunSi12138 646b86c
test: cover final codec plan acceptance
SunSi12138 53b6587
test: tighten final plan acceptance coverage
SunSi12138 16cc440
test: validate propagated unsafe blit identity
SunSi12138 c5b4ded
test: inspect raw nullable codec identity
SunSi12138 f07a135
test: locate nullable final codec hash
SunSi12138 4e2eee1
refactor: gate generated codecs on final plan reachability
SunSi12138 601e214
refactor: drive generated factories from final codec graph
SunSi12138 19c7ca2
style: restore codec ownership final newline
SunSi12138 42c82c4
refactor: let final resolver own runtime codec selection
SunSi12138 4a1df74
refactor: carry final codec emission bindings in resolved plan
SunSi12138 a69462c
refactor: resolve codec emission bindings into final plan
SunSi12138 e5ca403
refactor: derive codec ownership from resolved plan graph
SunSi12138 c2dd98e
fix: expose resolved codec dependency traversal
SunSi12138 8c3d679
refactor: keep DTO analysis to codec candidate discovery
SunSi12138 5adb804
refactor: perform codec policy selection in final plan resolver
SunSi12138 6b2a506
refactor: derive codec emission from resolved plan graph
SunSi12138 6c56639
fix: keep unsupported payloads outside codec routes
SunSi12138 23996dd
fix: preserve generated UTF-8 string wire semantics
SunSi12138 a1f96ec
revert: keep v2 UTF-16 string wire semantics
SunSi12138 904de26
test: align generated string integration evidence with UTF-16 wire
SunSi12138 3eac42f
chore: apply PR 415 integration evidence patch
SunSi12138 a3e9538
chore: retry PR 415 integration evidence patch
SunSi12138 2fcb57c
test: align DateTimeOffset integration evidence with canonical wire
github-actions[bot] dd708be
chore: dispatch final PR 415 validation
SunSi12138 102d394
chore: remove PR 415 CI dispatcher
github-actions[bot] b2e8446
chore: stage AOT unsafe blit plan fix
SunSi12138 cdf1154
chore: add temporary AOT patch script
SunSi12138 b7966bd
chore: fix temporary AOT patch workflow
SunSi12138 a1779bb
fix: derive UnsafeBlit AOT guards from resolved plan
github-actions[bot] 7dc4446
fix: preserve resolved codec identity boundaries
github-actions[bot] 9681db9
fix: align codec selection guards with emission
github-actions[bot] 5029a8e
fix: bind referenced codec dependencies by type and hash
SunSi12138 3e60fbb
fix: bind generated dependencies to runtime assemblies
SunSi12138 937c6f8
fix: preserve referenced codec baseline and shutdown identity
SunSi12138 65be5e1
fix: retain final codec identities in contract baseline
SunSi12138 abfd361
fix: compare unresolved final codec identities in baselines
SunSi12138 7cbbd10
test: cover unsafe blit baseline identity changes
SunSi12138 8da8867
fix: hash effective DTO null semantics
SunSi12138 01987f3
test: accept retained final payload identities
SunSi12138 70593c2
test: cover effective DTO null identity
SunSi12138 ceb19f1
test: align optional DTO nullability identity expectation
SunSi12138 078de98
test: restore unrelated generator fixture expectations
SunSi12138 de2b694
fix: materialize generated codecs in owner scope
SunSi12138 5ef1065
test: keep referenced codec construction in provider scope
SunSi12138 221d770
fix: persist baseline compatibility semantics
SunSi12138 2ad435e
fix: emit effective baseline semantics
SunSi12138 e25522a
fix: compare effective baseline semantics
SunSi12138 b38d37a
test: cover contract compatibility projection gaps
SunSi12138 2de459d
fix: canonicalize identical explicit layout aliases
SunSi12138 f534084
test: isolate client dependency validation from catalog
SunSi12138 814c6df
test: fix compatibility projection regression fixtures
SunSi12138 25db8db
test: keep dto shape regression on generated codec path
SunSi12138 edeb097
fix: freeze generated codec owner resolution scope
SunSi12138 c027b8e
fix: bind generated registrations to frozen owner providers
SunSi12138 daef5df
test: reject endpoint codec injection into referenced graph
SunSi12138 4cae114
test: cover local frozen owner resolution
SunSi12138 45334ee
test: avoid unassigned fallback fixture field
SunSi12138 820f202
test: retry transient Android layout result reads
SunSi12138 2153db7
ci: make preview iOS arm64 evidence non-blocking
SunSi12138 7eda38d
ci: fix Android layout retry syntax
SunSi12138 671291d
test: build dependency fixtures in solution configurations
SunSi12138 c9c5e2a
fix: make generated dependency binding trim safe
SunSi12138 ffa82bd
ci: retry Android codec result reads
SunSi12138 814b471
test: cover generated dependency version binding
SunSi12138 fb74f22
fix: preserve full generated dependency binding
SunSi12138 92b4f0a
test: cover contract baseline assembly identity
SunSi12138 fbe6445
fix: persist assembly identity in contract baseline
SunSi12138 99950c0
fix: compare contract assembly identity
SunSi12138 5760596
fix: project assembly identity into contract manifest
SunSi12138 4622805
test: cover global referenced codec dependency pinning
SunSi12138 88edee7
fix: retain referenced hashes for global codec graph
SunSi12138 a0c6fff
fix: collect global referenced codec hashes
SunSi12138 54b04a6
fix: emit all referenced codec dependency hashes
SunSi12138 49d0388
fix: route referenced hashes into generated manifest
SunSi12138 0b1c679
fix: require running typed codec dependencies
SunSi12138 97d1e93
fix: require running typed codec dependencies
SunSi12138 9d9a47b
test: reject typed dependants of draining modules
SunSi12138 d8e4f9c
fix: revalidate replacement dependencies before publish
SunSi12138 a7d4fc4
fix: revalidate replacement dependencies before publish
SunSi12138 25a1ee9
fix: begin dynamic drain under registry lock
SunSi12138 30a32ca
fix: begin dynamic drain under registry lock
SunSi12138 3712154
test: preserve published union tag reservations
SunSi12138 1765562
fix: preserve published union tag reservations
SunSi12138 82477e4
test: retain removed union reservations
SunSi12138 c9bc323
revert: allow union schema evolution across exact-match versions
SunSi12138 0cfc64b
revert: keep assembly identity out of compatibility baseline
SunSi12138 70a323b
revert: avoid redundant drain reordering
SunSi12138 8322579
fix: validate generated dependency assembly identity
SunSi12138 30cf726
test: align replacement dependency failure expectation
SunSi12138 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.