Repository navigation
fix: preserve Gemini native signature provenance and replay order - #64
Merged
Brian Krabach (bkrabach) merged 3 commits intoNov 11, 2026
Merged
Conversation
This was referenced Nov 11, 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.
Final disposition — merged
This PR is merged at
e040c7cee5561c0b5b2df66a3dc8ac8cd2a4e043. All four sibling upstream PRs are now merged after independently reviewed CLI/Agent compatibility qualification. This supersedes the earlier integration-hold/queued-check text retained below. Gemini's fresh exact-head CI run 43113542631 passed both Python 3.11/3.12 jobs and CLA before its merge; the original out-of-sync zero-job run was not successfully canceled.Exact four-merge evidence and qualification limits were handed to the sole Unified Release Manager. Unified PR #1927 dependency adoption, accepted-upstream normal worker pairing, merge and release remain separate; no live installation, app pin update or release is claimed here. Agent shipped pins require downstream adoption. Task-owned DTUs and monitor schedules are cleaned up/canceled.
Final app compatibility qualification
Current reviewed head:
5cbee8f140e86d46b26362b0ad35aac203409eab. This section supersedes the older draft/integration-hold status below; earlier evidence remains historical, not relabeled.b14815f, Gemini5cbee8f, Copilot383c726, managed context220f748(ordinary integration of accepted main7ffe422/fix: round-trip thought_signature for Gemini 2.5+ thinking models #31). Final heads independently reviewed.dtu-op-51f138e10fe12844658b2b28d937393c, normal HTTPS snapshot installs with exact installed Python/native wheel byte joins; no product source overlays. CLI5a0f1a0retains Core 1.6.1/Foundation6278749/loop072d50c; Agent125e1bfretains Core 2.0.1/Foundation21ad50f/loopdd91649. SDK closure deliberately satisfies provider floors: Anthropic 1.12.0, Google GenAI 2.30.1, Copilot 1.0.15.5cbee8frecovers only from a unique matching native block, with foreign/ambiguous/mismatched rejection. Prior 91-pass/1-failure Agent and 144-pass/1 synthetic-picker-fixture CLI receipts retained; fixture v1–v3 failures retained separately from passing v4. No app production changes.a8b763f354444b22ee541a0efafb7f1e8a255ff3a7ffc95bfdfd7383ff626ecb); DTU and owned image removed, no task-owned environments remain.Final GitHub checks remain a separate merge prerequisite; queued checks are not passed. User authorized admin merge after good compatibility/review/checks. Unified PR #1927 and accepted-upstream dependency adoption/release remain with the sole Release Manager.
Earlier component and candidate-graph evidence (historical)
Summary
Tag Gemini-native text, thinking and call blocks with producer provenance; only replay native opaque signatures from qualified blocks. Preserve exact content order, empty signed seals, signature association, unsigned parallel siblings and call-ID/result-name pairing through storage and replay. Handle content-only Core tool calls when the duplicate field is absent; an explicitly present duplicate field remains authoritative. Recognize qualified Google/Vertex model-resource forms without treating a model name as origin evidence.
Foreign, untagged and invalid-provenance histories are imports, not presumed native. Preserve readable summaries/visible text and canonical calls/results; never borrow foreign opaque bytes. The documented first-call import sentinel is an import compatibility escape hatch, not cryptographic continuity or repair of known-native missing state. Legacy untagged Gemini state requires explicit owner migration with independent origin evidence; no blanket tagging and no altered-signature retry.
Exact candidate:
250592a39c4b930aeb58202bc3489746165f513e, two commits overd1eae1af050d35a3c4e1b529910f0cdb4b84da13; four changed paths only. No dependency pins or versions changed.Component evidence and limits
Previously completed fix/review evidence (not rerun by this publication worker): full offline 913 passed / 1 live test deselected on each of Core 1.6.1 and 2.0.2, with google-genai 2.30.1. Independent review covered 233 prior focused checks plus 26 delta checks on both Core versions. Reviewed risks include foreign opaque state, ordering/empty seals, parallel result pairing, qualified Vertex imports and content-only call fixes. No live Gemini API/vendor-acceptance claim.
Integration hold and combined evidence
Draft / integration-held. This publishes reviewable source only: no merge, version/pin change, release, accepted-upstream adoption or live installation. The complete remedy needs both stable host context delivery and provider-native state handling; none of these component PRs alone claims to fix the live host.
Saved isolated candidate-graph receipts: DTU
dtu-op-c47af297dbe1a71aa93b665d20786597, pinned Smart Tool 0.6.9, Docker daemonea270c64-da9b-4e45-b998-c097d9914fca. Tests ran credential-free with networking disconnected after dependency preparation. Native Core 2.0.2 used a guest-built wheel (not WASM); the native binary and all eight authored Python package hash sets were joined to the original source snapshots.Focused results: Anthropic 92, Gemini 84, Copilot 127, managed context 575, unchanged loop 92, unchanged OpenAI regressions 46, and host delivery 229 passed. The first managed collection failed because overriding pytest addopts dropped importlib mode; the corrected command explicitly restored
--import-mode=importliband all 575 passed. The failed receipt is retained, not counted as green.Six offline witness cases passed through real inbound provider conversion -> real
StreamingOrchestrator.execute()-> JSON context write/read -> Core typed request reconstruction -> real outbound native conversion, including OpenAI encrypted reasoning and rawopenai:output_itemsmetadata. Transport/tools were fake; this proves the tested serialization/ordering seams, not vendor acceptance or every host persistence/compaction path.Qualified graph: host
a8bbe801a174dbb8012842f25d4a28e8092a066b; Anthropicb14815fabdf38e3836e68ad83adecb72daa519a1; managed877e1cc6139028816f8a114418d83901eb1d45aa; Gemini250592a39c4b930aeb58202bc3489746165f513e; Copilot383c726241c336b4bb6cc698c383e2a7e22f640a; unchanged loop072d50c5bcc0f7c57ca4d336ef03915563fa7861, Core9614052f7c9e493977dcba3f5c98ebd4d8591ec5, Foundationc67e3ada021a5bbb93df9567feb23e2a72c93f55.This is candidate-graph evidence only, not accepted-upstream or live-host qualification. The separate host port
70142aeb7b7e4913588a127fbbd1cb693faa4525onto Unified 0.80.1 is pending release-Foundation pairing; its PR and downstream publication belong to the parent/Release Manager. Recheck affected integration against accepted upstream revisions before downstream merge/release.Sibling draft PRs
All siblings remain draft / integration-held; these links do not assert merge, adoption or a release.