feat(provider): exact signed-thinking capture, persistence and replay (incl. Bedrock)
I maintainer di solito rispondono entro 1 giorno
@aheritier ci sta già lavorando.
Dal 19/10/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Goal
Capture, persist and replay signed thinking exactly, on all three transports. If the stored state can't be trusted, refuse to continue instead of replaying a rebuilt version.
Why
- Bedrock flattens reasoning into text + signature fields (adapter.go) and rebuilds the blocks later. It treats a signature without text as redacted content (convert.go), but a signed thinking block can legitimately have empty text. Order between thinking, text and tool calls is also rebuilt rather than preserved.
thinkingBindingBehaviorpicksdrop_blockautomatically when the primary or any fallback checks thinking prefixes (thinking_binding.go). The preserved thinking docs makeerrorthe default and describedrop_blockas a stopgap that can cost extra output tokens. Switching the default is a deliberate client policy change.- The Anthropic client already stores raw response blocks in
ProviderStateand replays them when they still describe the message (response_content.go). Extend that mechanism; don't create a second one.
Scope
- Keep blocks in order with their index: thinking (including signed-empty), redacted thinking bytes, text, tool use IDs/inputs and tool results. No "last signature wins".
- Extend
ProviderStateadditively with a version and the serving model. Unknown versions, incomplete or interrupted streams are never replayed as if they were verified. - Bedrock: store and replay native reasoning blocks instead of rebuilding them from flattened fields.
- Keep the Haiku 5.5 exceptions from #4553 and only those: when thinking is off on Direct/Vertex, omit earlier reasoning from the outgoing request; on Converse, omit it with a warning. Stored history is never modified, and turning thinking back on does not silently re-insert omitted blocks.
- Make
thinking_prefix_mismatch: errorthe default for 5.x models whose server checks thinking prefixes (moved from #4652). Usingdrop_blockthen requires explicit config, keeps logging the dropped paths, and never triggers an automatic retry with thinking removed. Use the native binding control only on the Messages API, where it is documented; don't invent an equivalent for Converse. drop_block, when explicitly configured, never deletes the stored original.
Acceptance criteria
- Round-trip tests per transport: stream →
ProviderState→ SQLite and JSON → new runtime → continue an unchanged tool conversation; the replayed request matches the original blocks byte for byte. - Signed-empty thinking, redacted thinking and interleaved thinking/text/tool calls survive the round trip.
- Edited or trimmed history, an imported session and an unknown state version lead to a clear refusal or a documented fallback, never to a silently rebuilt replay.
- Default
erroron prefix-checking 5.x models, explicitdrop_blockwith diagnostics, legacy models unchanged. A session usingnum_history_itemstrimming either replays exactly or fails with a clear refusal, never a raw 400. - Older binaries reading the new state: the limitation is documented (no promise of transparent downgrade).
-
task build,task test,task lint, andgo test -raceon the touched packages pass.
Parent: #4583 · Depends on #4651
- Lingua principale
- Go
- Stelle
- 4.6k
- Fork
- 522
- Merge medio
- 8h 43m
- PR unite (30g)
- 239
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di docker/docker-agent
-
Error when trying to run sandbox example?Forse già presa @dgageot l’ha presa 1 giorno fa. Apertaarea/cli
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
docker/docker-agent#4672 · 1 commento · 1 reazione · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
pkg/hooks tests fail with a misleading assertion when jq is not installedForse già presa @dwin-gharibi l’ha presa 59 giorni fa. Apertaarea/testing
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
docker/docker-agent#4052 ·
I maintainer di solito rispondono entro 1 giorno
-
`remove_directory` and `create_directory` hide work they already did when a later path failsForse già presa @dwin-gharibi l’ha presa 77 giorni fa. Apertaarea/tools
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
docker/docker-agent#3933 ·
I maintainer di solito rispondono entro 1 giorno
-
`edit_file` silently edits the first match when `oldText` occurs more than onceForse già presa @dwin-gharibi l’ha presa 77 giorni fa. Apertaarea/tools
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
docker/docker-agent#3929 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
[Flaky test] TestA2AServer_MultipleRequestsForse già presa @aheritier l’ha presa 1 giorno fa. Apertaarea/a2a area/testing flaky-test
docker/docker-agent#4687 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di docker/docker-agent
Issue simili
-
automation models
Difficoltà 1/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 91/100
I maintainer di solito rispondono entro 1 giorno
-
confirmed enhancement go
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
DennisVlaanderen/aerendil#154 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
crossplane-contrib/provider-mongodbatlas#236 ·
I maintainer di solito rispondono entro 1 giorno
-
Generated README and SKILL omit HTTP-transport security settings and what local data the CLI keepsAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
mvanhorn/cli-printing-press#5181 ·
I maintainer di solito rispondono entro 1 giorno