Evan Mattson
5f3ca8f93c
Python: Fix AG-UI approval resume at the protocol boundary ( #7480 )
...
* Python: Fix Ollama approval resume message handling
* Python: Reject empty Ollama approval resume payload
* Python: Keep AG-UI approval controls out of provider input
* Python: Do not trust pending AG-UI tool results
2026-08-04 15:12:33 +00:00
Eduard van Valkenburg
07511b80c9
Python: Prevent orphaned local approval responses ( #7462 )
...
* Python: Prevent orphaned local approval responses
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 0efaca91-a0a7-46f4-9b81-022385607fe4
* Python: Clarify approval serialization boundaries
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 0efaca91-a0a7-46f4-9b81-022385607fe4
---------
Copilot-Session: 0efaca91-a0a7-46f4-9b81-022385607fe4
2026-08-04 01:05:08 +00:00
Eduard van Valkenburg
28389df805
Python: Move SessionStore to core and persist Foundry Responses sessions ( #7306 )
...
* Python: Move session persistence into core
Move SessionStore and durable msgspec-backed storage into core, restore sessions in Foundry Responses hosting with per-user isolation, and document the serialization design.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 3e5c81ad-75e8-4e92-a883-8bbd676c6c8c
* Python: Address session persistence review feedback
Harden scoped file paths and corruption recovery, preserve session serialization compatibility, clarify dependency placement, and add reproducible benchmark evidence.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 3e5c81ad-75e8-4e92-a883-8bbd676c6c8c
* Python: Preserve session snapshot compatibility
Deep-copy in-memory session writes and retain existing Telegram session keys so stored conversations continue resolving.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 3e5c81ad-75e8-4e92-a883-8bbd676c6c8c
* Python: Simplify Foundry session isolation
Add experimental FoundrySessionStore backed by Agent Server request context, remove resolver plumbing, and centralize v2 user isolation for sessions, checkpoints, and approvals.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 3e5c81ad-75e8-4e92-a883-8bbd676c6c8c
* Python: Reduce Foundry session helper layering
Inline the single-use request user accessor while keeping separate context validation, fingerprint, and directory helpers for their distinct callers.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 3e5c81ad-75e8-4e92-a883-8bbd676c6c8c
* Python: Clarify Foundry request context validation
Separate fail-fast request validation from context retrieval so Responses no longer appears to discard a returned context.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 3e5c81ad-75e8-4e92-a883-8bbd676c6c8c
* Python: Share Foundry request context helpers
Move protocol validation and user-scope derivation into a dedicated request-context module, leaving the session-store module focused on storage.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 3e5c81ad-75e8-4e92-a883-8bbd676c6c8c
* Restore Foundry checkpoint storage paths
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 3e5c81ad-75e8-4e92-a883-8bbd676c6c8c
* Simplify Foundry session storage paths
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 3e5c81ad-75e8-4e92-a883-8bbd676c6c8c
* Persist Foundry sessions under hosted home
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 3e5c81ad-75e8-4e92-a883-8bbd676c6c8c
* Make hosted path test platform independent
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 3e5c81ad-75e8-4e92-a883-8bbd676c6c8c
* Address session persistence review feedback
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 3e5c81ad-75e8-4e92-a883-8bbd676c6c8c
* Isolate Foundry session path handling
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 3e5c81ad-75e8-4e92-a883-8bbd676c6c8c
* Clarify Foundry session path terminology
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 3e5c81ad-75e8-4e92-a883-8bbd676c6c8c
* Align Foundry sessions with Responses continuity
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 3e5c81ad-75e8-4e92-a883-8bbd676c6c8c
* Finalize Foundry Responses session persistence
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 3e5c81ad-75e8-4e92-a883-8bbd676c6c8c
* Add session store feature usage telemetry
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 3e5c81ad-75e8-4e92-a883-8bbd676c6c8c
* Fix hosted per-call history persistence
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 3e5c81ad-75e8-4e92-a883-8bbd676c6c8c
---------
Copilot-Session: 3e5c81ad-75e8-4e92-a883-8bbd676c6c8c
2026-07-30 13:04:08 +00:00
Eduard van Valkenburg
99dcf3c133
Python: Preserve declaration-only streaming metadata ( #7409 )
...
* Python: Preserve declaration-only streaming metadata
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
* Chore: retrigger PR checks
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
* Python: Reconcile remaining function-loop spec gaps
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
2026-07-30 09:11:51 +00:00
Eduard van Valkenburg
95ec5b7d36
Python: Preserve approval decisions under OpenAI continuation ( #7407 )
...
* Python: Preserve approval decisions under OpenAI continuation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
* Chore: retrigger PR checks
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
2026-07-30 08:29:05 +00:00
Eduard van Valkenburg
0937233d86
Python: Remove tool content returned after invocation limits ( #7408 )
...
* Python: Remove tool content returned after invocation limits
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
* Chore: retrigger PR checks
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
* Python: Preserve provider-owned content after limits
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
* Python: Isolate post-limit spec update
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
2026-07-30 08:27:57 +00:00
Eduard van Valkenburg
572a9621bd
Python: Keep call and result occurrences atomic in compaction ( #7406 )
...
* Python: Keep call and result occurrences atomic in compaction
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
* Python: Clarify ambiguous compaction reannotation
Document why incremental reannotation retains all prior duplicate candidates and strengthen the regression that keeps ambiguous results unpaired without changing existing groups.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
* Python: Handle assistant-embedded compaction results
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
2026-07-30 07:58:07 +00:00
Eduard van Valkenburg
e344f456ae
Python: Correlate AG-UI confirm_changes snapshots by call id ( #7411 )
...
* Python: Correlate AG-UI confirm_changes snapshots by call id
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
* Chore: retrigger PR checks
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
* Python: Require real results for accepted confirmations
Keep accepted confirm_changes snapshot payloads inert unless approval resolution produced a matching function result, while retaining explicit rejection cleanup.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
2026-07-30 07:08:03 +00:00
Eduard van Valkenburg
e18a64569c
Python: Defer provider-injected approvals to in-run execution ( #7410 )
...
* Python: Defer provider-injected approvals to in-run execution
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
* Python: Remove vacuous AG-UI approval test
Drop the forged-approval test that was stripped by pending-approval validation; the real pause-approve-resume regression remains the authoritative provider-injected coverage.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
2026-07-30 06:48:36 +00:00
Eduard van Valkenburg
5987a6791b
Python: Improve function approval resume and replay ( #7345 )
...
* Python: Harden function approval resume and replay
Make approval resume immutable and occurrence-aware, return grouped approved and rejected results consistently, preserve pending approval history without model-orphaned calls, and align streaming, non-streaming, and AG-UI result boundaries.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
* Python: Clarify function invocation orchestration
Simplify approval-resolution setup and add phase-level comments around the key function invocation orchestration paths.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
EOF && git push origin python-approval-resume-contract
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 1ee1d250-d1e2-4c6f-8c36-aae0d94fe7a1
2026-07-29 20:01:42 +00:00