Repository navigation
test(mobile): repin the recording baseline to main after #21088 - #21105
Merged
Merged
Conversation
#21088 landed product changes on two fenced paths — the mobile hosted-review create params and the shared hosted-review contract — without moving the manifest baseline, so the corpus stayed pinned to 97aa5ff and --record refuses on main with "Product sources or lockfile differ from the pinned main baseline". Repin baseline to 9add08b, main's last commit to touch a fenced path, and re-record the whole corpus in place against it. No behaviour moved: decoding every golden through its own values pool against origin/main classifies all 705 as header-only with baseline the single moved key, and zero body moves, additions or deletions. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
Contributor
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes
A mechanical repin of the mobile RPC recording corpus after #21088, matching the documented squash-merge follow-up. Verified independently against the checked-out head:
- Repin
baselineto main's tip —pilot-scenarios.jsonand all 705 goldens movebaselinefrom97aa5ff19b…to9add08bb59…;origin/mainis9add08bb5943144f5fb0178ab628cdfebe99c22a, the new pin is an ancestor of it, and the fenced-path diff (mobile/src,src/shared,mobile/pnpm-lock.yaml, excluding the recorder dir) between the pin and main is empty. - Header-only — the diff is 706 files at
+1 / -1each, and every added/deleted line is abaselineline. Novaluesor other header key moved, so no recorded behavior changed;recorderSha256,adapterSha256,scenarioSha256,lockfileSha256, andrunnerVersionare unchanged. - Process — the log since the old pin over fenced paths is exactly the two commits the description names (#21088 and #20450), so the pin is the last fenced commit and the only tree the fence can match.
The trailing recommendation (fenced-path PRs should repin in the same PR, discharging both the detached-pin recording and the forward repin) is sound, but it is a process suggestion outside this diff and already recorded in the description.
DeepSeek Flash (free via Pullfrog for OSS) | 𝕏
This was referenced Sep 17, 2026
ivanvykopal
pushed a commit
to ivanvykopal/orca
that referenced
this pull request
Sep 20, 2026
… (stablyai#21105) stablyai#21088 landed product changes on two fenced paths — the mobile hosted-review create params and the shared hosted-review contract — without moving the manifest baseline, so the corpus stayed pinned to 97aa5ff and --record refuses on main with "Product sources or lockfile differ from the pinned main baseline". Repin baseline to 9add08b, main's last commit to touch a fenced path, and re-record the whole corpus in place against it. No behaviour moved: decoding every golden through its own values pool against origin/main classifies all 705 as header-only with baseline the single moved key, and zero body moves, additions or deletions. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
8 of 9 tasks
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.

What this is
A baseline repin of mobile's RPC recording corpus, the same shape as #21092 and #21065.
Every golden under
mobile/rpc-foundation/goldens/carries abaselineheader naming the commit its recording was made against, and--recordrefuses to run unless the working product tree equals that commit. The corpus was pinned to97aa5ff19b19231670ab7d06d070115640bb8f41, set by #21092. Two commits have landed on a fenced path since:So recording on main refuses:
What drifted
#21088 is the recorder follow-up branch, so it is the README's awkward case: it edited the recorder engine, which moves
recorderSha256on every golden and forces a full rewrite, while its own product tree no longer matched the pin. It re-recorded all 705 goldens and it changed two fenced product files, but it leftpilot-scenarios.jsonalone, so the corpus kept naming the older tree.mobile/src/source-control/mobile-hosted-review-service.tsprovidertype assertionsrc/shared/rpc-contract/hosted-review-params.tsprovideropened from a closed enum toz.string()#20450 added enterprise-managed owner-login handling under
mobile/src/tasksandsrc/shared/github. Neither PR's product change is visible to any recording, which the decode below establishes rather than assumes.The new pin
baselineinmobile/rpc-foundation/pilot-scenarios.jsonmoves to9add08bb5943144f5fb0178ab628cdfebe99c22a, main's last commit to touch a fenced path and also main's tip, and the whole corpus is re-recorded against it.git diff 9add08bb59 origin/mainover the fenced paths is empty, so this is the only tree the fence can match.No behaviour moved
Each golden was decoded through its own
valuespool against theorigin/maincopy, resolving 12-hex value references before the comparison and comparing the header key by key.baselineis the only header key that differs on any golden, and it differs on all 705.lockfileSha256,recorderSha256,adapterSha256,scenarioSha256andrunnerVersionare unchanged everywhere, which is what a pure repin looks like. The unchangedrecorderSha256also says #21088's own refresh already carried the current engine digest.The zero body moves settle the question the detached-pin recipe leaves open. #21088 recorded its goldens from a tree that was not main's, and those same bytes reproduce from main's product tree, so neither the loosened
providerschema nor the enterprise owner-login change is observable through any recorded screen. The diff is 706 files, one line inserted and one deleted each.Gates
Run from
mobile/, all green.tsc --noEmitvitest run src/test-support/rpc-recordingoxfmt --check .The full re-record itself passed 707 tests in 93s.
One recommendation
This is the third repin follow-up in a row, after #21065 and #21092, and the cause is the same each time. A PR that lands on a fenced path should repin
baselineto its own last fenced commit in the same PR, which is the README's behaviour-change recipe. The recorder branches are the ones that keep missing it, because the detached-pin recipe hands them a valid recording without ever making them look at the pin. Recording from the detached pin and repinning forward are two different obligations, and #21088 discharged only the first.Reproducing the typecheck in a fresh worktree needs
mobile/src/terminal/terminal-webview-engine.generated.tsandmobile/src/components/pr-sidebar/mermaid-webview-engine.generated.ts, both gitignoredpostinstallartifacts. Runningnode scripts/build-terminal-webview-engine.mjsandnode scripts/build-mermaid-webview-engine.mjsfirst clears the twoTS2307errors they otherwise cause.