Repository navigation
feat(conformance): verify server resume rejection and ACK boundaries - #48
Merged
austinchennn merged 1 commit intoOct 17, 2026
Conversation
2 of 7 tasks
This was referenced Oct 17, 2026
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.
Description
Migrates the existing
server-resume-rejection-v1increment from wangyeyu1129/vRT#1 onto current upstream main. Scope remains four server recovery-rejection/ACK-boundary cases; no new profile beyond the original Draft or expanded matrix is introduced.Issue association
Refs #17. Original dependency #46 and principal isolation #47 are merged. This independent branch starts at main
c864f64; its diff contains only the former Draft's net increment plus necessary integration with current main, not a reintroduction of #44/#45/#46/#47.Migration provenance: original fork base
2f9b9e8025ee03855d482a5dd0eaaf177407aeb2is an ancestor of Draft head68a372ece71559ee8511fdc4a3bc14fb641fcf49. The binary net diff base..head was saved and applied withgit apply --3way --indexto new branchfeat/conformance-server-resume-rejection-upstream. Eight common integration/docs conflicts were resolved against current main. No merge commit was cherry-picked, no original branch was rewritten, and no unrelated pending code is included. The fork Draft remains open/draft as historical review context; this is a new upstream PR, not a changed target repository.Behaviours Completed
server/resume-rejection/unknown,/ahead,/ack-history,/ack-boundary. Explicit server+driver-only profile; absent instrumentation/fixture policy/inventory yields incomplete/nonzero. fullSuite remains incomplete.retention.acknowledged:"discard"; retaining/unsupported policies are incomplete for this profile, not declared globally wire-incompatible. Instrumentation never deletes cache entries itself.waitResumeAckconfirms the real wire ACK only after public Connection.receive applies it (synchronous in the official SDK); a queued control request is not receipt. Closed model counts use public fake-model state; no private Inbox/Outbox/ownership table is read.Files Changed
conformance/scenarios/server-resume-rejection.json,src/node/server-resume-rejection.ts: existing four scenarios, real ACK delivery/close barriers, exact-boundary suffix/new marker and failed-session third probe.conformance/src/resume-rejection-oracle.ts: independent refusal/numbering, boundary replay and bounded effect expectations, using existing schema/capability/sequence validation.conformance/src/node/drivers/server-resume.ts,drivers/typescript-server.ts: explicitly selected public recovery instrumentation; normal recovery keeps its original two-connection snapshots/commands, rejection permits three and adds receipt/closed-model observations.conformance/src/node/fixtures/resume-rejection-server.ts,test/server-resume-rejection.test.mjs: unchanged real-wire faults, accepted alternatives/retransmissions and lifecycle checks.conformance/src/node/{runner,cli}.ts,src/report.ts,build.mjs,test/consumer.mjs: additive integration into current main, required inventory, distributed assets and installed-package checks.README.md,conformance/{README.md,driver-protocol.md}: existing profile usage/contract, retention policy and limits integrated with current docs.The scenario, node scenario helper, oracle, fault fixture, test file and public recovery driver extension were byte-compared identical to the original Draft. Production SDK, normative spec/schema/vector, Python, package manifest/lockfile and dependency contents are unchanged.
Brief Explanation
This promotes already reviewed/tested work from a fork-only stack now that its base is merged. Runner owns ordering/deadlines/lifecycle, transport records actual traffic, driver controls only public model/server/edge APIs, and the independent Oracle checks state and expected history. Necessary edits are confined to integration with #47 and the other merged profiles; no expectation was weakened or additional workflow abstraction introduced.
The raw test client intentionally exercises unavailable history under an explicit discard policy. Unknown sessions remain unbound while known recovery binds before replay checking; the error sequence must reflect that distinction. Complete wire closure, the successful new marker and public finite effects prevent treating a first ready/error or quiet interval as completion.
Testing
Environment: macOS 26.6.2 arm64; Node 22.23.3. Counts below are from this migration run, not copied from the fork Draft.
npm run test:conformance: 168 passed = 144 current-main tests + 24 migrated tests. Includes fresh production/conformance builds and conformance typecheck. All merged profiles, feat(conformance): verify normal server resume and replay #46 normal recovery, feat(conformance): verify resume authentication and principal isolation #47 principal isolation and four rejection cases pass.npm run test:conformance:consumer: passed; actual tarball installed outside the checkout without SDK peer installation. Removingserver/resume-rejection/ack-historyproduces inventory incomplete/exit 1; schema/scenario/driver assets resolve from the installation.npm test: 465 passed, 26 SDK files.npm run test:e2e: 7 passed.npm run typecheck,npm run check:spec: passed (23 schemas, 1 capability, 156 control vectors, 9 audio vectors).npm run check:budgets: passed, including dependency/import rules; protocol 2.16 KB min+gzip / 5 KB, core 5.11/15, client 5.26/20 unchanged./private/tmp/vrt-open-migration-eo3ghpen, byte-compared against every tracked source in the requested checkout. Workspace dependencies resolve to the matching mirrored packages; external versions are unchanged. The isolated run used same-host-version temporary binaries (0.25.10 repository build/budget; 0.28.2 Vite), with no dependency/config workaround committed./Users/wangyeyu/Desktop/vRealTime, nativenpm run build:conformancecompleted without ESBUILD_BINARY_PATH override, then the officialserver-resume-replay-v1,server-resume-principal-v1andserver-resume-rejection-v1each passed all four cases through the built CLI, fullSuite incomplete.git diff --check: passed. No separate lint/format script is configured. Python, standalone Workers and production SDK pack/consumer/release dry-run were not rerun for this conformance migration; actual conformance tarball validation was run. Hosted CI is separate evidence. No package published.Unsure About
Implementation Order and Acceptance — #17
The current upstream checklist was re-read. Permissions remain read-only, so upstream issue text/checkmarks were not modified. Checked subitems mean migrated and locally verified, upstream PR pending merge; creating this PR does not mean the increment is already on main. The original fork Draft is historical review context and remains open.
#35–#47 are merged at this migration baseline. No other merged PR or original fork code branch was edited; no broad parent or issue was marked complete.