Peter Steinberger
47f78a32eb
fix(ai): preserve long Responses sessions after server compaction ( #120457 )
...
* fix(ai): preserve Responses server compaction state
Persist opaque Responses compaction items as fenced provider replay state so long stateless sessions can resume authoritative compressed history without exposing it in display or diagnostics. Carry state through worker transcripts and prune replay prefixes without splitting tool pairs.
Release note: Preserve long OpenAI Responses sessions across server-side compaction and worker restarts.
Related: #95788
* test(ai): align long-context fixtures with CI contracts
Make tool-result fixtures type-complete, use the canonical model selector helper, remove unused test-helper exports, and route the paid long-context live probe through the dedicated Gateway profile shard.
* test(ai): type mocked Responses terminal events
Give the mock SSE event collection an explicit open event shape so terminal response events coexist with output-item events under the root test typecheck.
* fix(ai): suppress rejected compaction replay
Persist a route-fenced suppression tombstone when encrypted-content recovery rejects a compaction item, so later turns do not retry the same opaque state. Preserve the tombstone through transcript redaction and cover successful fallback followed by the next turn.
* fix(ai): keep compaction suppression transport-private
Keep the suppression contract local to its sole Responses transport owner and make the regression fixture satisfy root type and lint checks without widening the Plugin SDK surface.
* refactor(ai): remove compaction suppression re-export
* fix(ai): scope compaction suppression to replay route
Keep foreign-route rejection tombstones from hiding the newest compatible Responses compaction while preserving same-route suppression.
* fix(ai): harden Responses replay recovery
Stage encrypted replay recovery so compaction is only suppressed after an attributable rejection. Preserve terminal ordering and keep provider replay within worker frame budgets without truncating opaque state.
* refactor(ai): centralize Responses output indexes
Keep normalized output identity tracking in the stream-slot owner, move response failure state to its diagnostic owner, and remove the obsolete replay clone export so exact-head static gates remain shrink-only.
* fix(ai): retain idless terminal tool identity
Use the canonical empty identity only when a provider supplies neither call nor item id, preventing terminal recovery from duplicating a done-only tool call while preserving stronger identities when available.
* fix(sessions): hide provider replay from public events
* fix(ai): stage encrypted replay recovery
* fix(ai): keep replay attempt kind internal
* fix(ai): route Azure through replay recovery
Use the shared encrypted-content retry owner for Azure Responses so compaction suppression and prompt-observer variants stay coherent across transports.
* fix(ai): harden replay persistence boundaries
Fence Azure replay by the resolved request endpoint, drop invalid replay during transcript sanitization, and surface worker-launch replay omissions through the existing redacted diagnostic path.
2026-08-08 11:55:26 -07:00
Peter Steinberger
33f082b86a
test(codex): align completed tool metadata expectation ( #120637 )
2026-08-08 10:04:26 -07:00
Glucksberg
6318e30077
fix(codex): prevent session-changed errors after /new ( #113429 )
...
* test(codex): prove replies after retained session reset
Co-authored-by: Markus <markuscontasul@gmail.com >
Co-authored-by: Josh Lehman <josh@martian.engineering >
* test(codex): verify reset idempotency
* test(codex): prove reset keeps binding writable
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: Josh Lehman <josh@martian.engineering >
2026-08-08 08:55:25 -07:00
Vincent Koc
b5180b6816
fix(codex): support app-server 0.147.0 ( #120594 )
...
* fix(codex): support app-server 0.147.0
* docs(codex): clarify marketplace version provenance
2026-08-08 23:07:05 +08:00
Vincent Koc
6e100ca56a
test(codex): remove duplicate session helper
2026-08-08 18:47:18 +08:00
Vincent Koc
daca53c985
test(codex): align file-backed session fixtures
2026-08-08 02:21:34 -07:00
Peter Steinberger
d9080cfff8
fix(agents): transfer requester wake ownership across yield and deflake survivor registry setup ( #120538 )
2026-08-08 01:42:33 -07:00
Peter Steinberger
c7b7fe4c32
fix(codex): restore continuity test coverage ( #120452 )
...
* test(codex): align run history fixture identity
* test(ci): repair gateway fixture checks
2026-08-07 23:39:26 -07:00
Peter Steinberger
fa0fcef9f6
fix(sessions): require provenance for fresh context-size facts ( #120497 )
2026-08-07 23:06:30 -07:00
Peter Steinberger
48639663b0
chore(release): prepare 2026.8.1 ( #120375 )
2026-08-07 18:44:12 -07:00
Peter Steinberger
5a79d19ba1
fix(codex): preserve warm sessions and approvals across conversations ( #120405 )
2026-08-07 18:38:09 -07:00
Peter Steinberger
fa9626c4e1
refactor(steering): make active-run admission exact and atomic ( #120285 )
...
* refactor(steering): make admission exact and atomic
* fix(steering): bind targets by run identity
* fix(steering): inject before reply dispatch
* fix(steering): preserve backend injection modes
* fix(steering): target session suggestions
* fix(steering): preserve sibling delivery contracts
* style(steering): satisfy exact-head lint
* fix(steering): preserve targetless protocol compatibility
* fix(steering): preserve exact targets through replies
2026-08-07 16:58:04 -07:00
joshavant
ceeb02d7e1
Revert "refactor(agents): bind tool policy to exact execution identity"
...
This reverts commit d863dd5f5e .
2026-08-07 18:40:17 -05:00
joshavant
2751bc8991
Revert "fix(agents): restrict harness tool authority"
...
This reverts commit aacbcaacc8 .
2026-08-07 18:40:17 -05:00
joshavant
bc197e1b66
Revert "fix(plugins): inject harness tool authority"
...
This reverts commit 228478bffe .
2026-08-07 18:40:17 -05:00
joshavant
941f4a3ec6
Revert "fix(agents): satisfy tool authority lint"
...
This reverts commit 63c6cd9a02 .
2026-08-07 18:40:17 -05:00
Peter Steinberger
5a795f4dda
fix(qa): require a fresh reply and real tool use after switching models ( #119662 )
...
* fix(qa): require a fresh reply after switching models
* fix(qa): prove successful tool use after model switching
* fix(qa): wait for the new persisted model-switch tool result
* fix(qa): authenticate canonical model-switch attempt evidence
* fix(ai): preserve effective response model evidence
Punchcard-Session: golden-valley-workshop-br
* fix(agent): publish run-owned terminal receipts
Punchcard-Session: golden-valley-workshop-br
* fix(qa): require run-owned model-switch evidence
Punchcard-Session: golden-valley-workshop-br
* fix(agent): record explicit tool completion outcomes
Punchcard-Session: golden-valley-workshop-br
* fix(agent): exclude unavailable approvals from receipts
Punchcard-Session: golden-valley-workshop-br
* fix(agent): derive receipt visibility from terminal reply
Punchcard-Session: golden-valley-workshop-br
* fix(qa): bind model-switch continuity to terminal reply
Punchcard-Session: golden-valley-workshop-br
* fix(qa): project Crabline Telegram visible text
Punchcard-Session: golden-valley-workshop-br
* fix(qa): record run-owned delivery evidence
Punchcard-Session: golden-valley-workshop-br
* fix(qa): bind primary model-switch delivery
Punchcard-Session: golden-valley-workshop-br
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-08-08 03:05:32 +08:00
Vito Cappello
5621979a46
fix(models): preserve session selection across fallback turns ( #119325 )
...
* feat(models): add session-only model selection
* fix(models): use trailing session scope option
* test(models): satisfy session scope lint
* fix(models): reject duplicate model options
* fix(models): clarify default and session scope
* fix(models): require complete session option tokens
* fix(models): report configured default dispatch
* fix(models): keep directive handler within lint limit
* fix(models): parse model options in either order
* fix(models): apply session scope to aliases
* fix(models): align alias scope with reply routing
* fix(discord): surface model selection scope in picker
* fix(models): preserve mixed-text model selection
* fix(models): centralize command selection ownership
* fix(models): align session scope lifecycle
* fix(models): preserve command and auth ownership
* fixup! fix(models): preserve command and auth ownership
* fix(auth): preserve scoped CLI provider discovery
* test(models): align result and cron fixtures
* test(models): nest result timing metadata
* fix(discord): narrow silent dispatch results
* fix(transcript): preserve admitted turn identity
* fix(context-engine): fence the admitted transcript turn
* fix(context-engine): stabilize plugin compatibility contract
* chore(plugin-sdk): refresh context engine API baseline
* chore(plugin-sdk): use Linux context engine API baseline
* fix(context-engine): align fallback ownership
* fix(fallback): scope auth skip cache by profile
* fix(context-engine): settle only accepted fallback turns
* refactor(sessions): issue canonical turn admissions
* refactor(context-engine): own logical turn advancement
* fix(context-engine): settle cron fallback winners
* fix(models): align picker and fallback transactions
* fix(delivery): notify block admission after queueing
* fix(sessions): preserve canonical admission receipts
* chore(plugin-sdk): refresh API baseline hash
* fix(context-engine): commit accepted turns durably
* fix(context-engine): validate durable host transitions
* fix(context-engine): preserve fallback turn ownership
* fix(context-engine): preserve queued turn order
* fix(models): preserve fallback retry ownership
* fix(context-engine): enforce durable transcript anchors
* fix(runtime): close fallback persistence gaps
* fix(context-engine): preflight fallback harnesses
* chore(plugin-sdk): use Linux API baseline
* fix(context-engine): drain durable commits before reads
* fix(models): scope harness auth failures by profile
* fix(codex): fence legacy transcript history
* fix(commands): honor suppressed directive interpretation
* chore(runtime): remove unused branch exports
* test(context-engine): derive private outbox payload type
* fix(context-engine): apply durable drain degradation
* fix(context-engine): recover durable turn intents
* fix(context-engine): settle durable turn intents
* refactor(context-engine): satisfy branch quality gates
* fix(context-engine): close durable recovery gaps
* fix(discord): preserve dropped model command outcome
* test(copilot): keep journal fixture types local
* fix(auto-reply): preserve model alias provenance
* fix: close model scope review gaps
* fix(models): close review-found scope leaks
* fix(review): satisfy branch line budgets
* fix(agents): preserve context engine turn facts
* fix(agents): finalize silent context turns
* fix(context-engine): preserve compatibility window
* test(agents): cover both harness preparations
* fix(context-engine): retain blocked turn advancements
* fix(models): parse compact runtime options
* fix(telegram): report runtime resets accurately
* fix(models): isolate automatic auth failure skips
* fix(context-engine): project commit turn host params
---------
Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com >
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-08-07 16:19:12 +08:00
Vincent Koc
63c6cd9a02
fix(agents): satisfy tool authority lint
2026-08-07 15:07:12 +08:00
Vincent Koc
228478bffe
fix(plugins): inject harness tool authority
2026-08-07 15:07:12 +08:00
Vincent Koc
aacbcaacc8
fix(agents): restrict harness tool authority
2026-08-07 15:07:12 +08:00
Vincent Koc
d863dd5f5e
refactor(agents): bind tool policy to exact execution identity
2026-08-07 15:07:12 +08:00
Peter Steinberger
f87d8bb72d
refactor(test): compress repetitive fixtures in mega-tests, batch 2 ( #120124 )
...
* refactor(test): compress incomplete-turn fixtures
* refactor(test): compress Discord voice fixtures
* refactor(test): compress restart recovery fixtures
* refactor(test): compress CLI attempt fixtures
* refactor(test): compress subagent registry fixtures
* refactor(test): compress workboard fixtures
* refactor(test): compress TUI event fixtures
* refactor(test): compress Codex turn-watch fixtures
* fix(test): tighten CLI attempt fixture types
* fix(test): widen restart transcript fixture content
* fix(test): preserve workboard status fixture type
2026-08-06 20:50:20 -07:00
Peter Steinberger
7c9596b007
refactor(test): adopt codex app-server test harness in worst-preamble suites ( #120065 )
...
* refactor(test): share codex app-server client fixtures
* refactor(test): share codex turn identifiers
2026-08-06 16:33:42 -07:00
Peter Steinberger
b4a26783f7
refactor(test): consolidate duplicated requireRecord and provider HTTP mock helpers ( #119982 )
...
* refactor(test): consolidate duplicated test helpers
* test: remove stale record guard import
* fix(test): remove orphaned record guards
* refactor(test): keep record requirement messages exhaustively typed
* fix(test): keep packages/ai record guard package-local
2026-08-06 14:48:01 -07:00
Vincent Koc
b269e652bc
chore(codex): bump app-server to 0.146.1
2026-08-06 07:11:37 +08:00
Jason (Json)
6d2ba0d562
fix: steering reaches active runs across agent harnesses ( #119594 )
...
* fix steering delivery across harnesses
* fix steering across moving transcript leaves
* test: align steering queue expectations
* fix: harden active steering ownership
* fix: retain steering fallback admission
* fix: reject late copilot steering
* fix: prevent replay of accepted steering
* fix: bind acquired chat work admission
* fix: bind steering to active transcript branch
2026-08-05 16:02:04 -06:00
Peter Steinberger
52c4554787
refactor(codex): consolidate approval and elicitation ownership ( #119626 )
2026-08-05 08:23:08 -07:00
pash-openai
55715cafb3
fix(codex): allow natural reactions in the current conversation ( #119649 )
2026-08-05 14:41:32 +00:00
Vincent Koc
d06fc25a0c
fix(agents): protect private memory in shared chats ( #119198 )
...
* fix(agents): protect private memory in shared chats
Fixes #84466
Co-authored-by: Peter Steinberger <steipete@gmail.com >
* fix(agents): propagate shared chat type across runtimes
* fix(agents): enforce bootstrap privacy after hooks
* test(agents): cover final bootstrap filtering
* fix(agents): filter private memory before allowlists
* fix(agents): preserve bootstrap source identity
* refactor(agents): simplify bootstrap source identity
* fix(agents): keep bootstrap source identity private
* fix(agents): unify CLI runtime chat type
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-08-04 23:01:38 +08:00
sunlit-deng
7cf7fbbe99
fix(codex): cap compaction override warning cache via createDedupeCache ( #101745 )
...
* fix(codex): cap compaction override warning cache via createDedupeCache
* test(codex): cover compaction warning cache eviction
* test(codex): use valid compaction trigger in cap coverage
* test(codex): assert warning retention at the 4096-entry boundary
2026-08-04 15:39:16 +08:00
Peter Steinberger
3fa9cc209b
fix(agents): preserve tainted memory provenance in provider tool bridges ( #118760 )
2026-08-03 10:12:10 -07:00
Vincent Koc
8895b0c288
fix(codex): preserve yielded subagent handoff ( #118644 )
2026-08-03 19:44:58 +08:00
Vincent Koc
26023626be
test(codex): refresh bounded media expectations ( #118424 )
2026-08-03 11:47:40 +08:00
Peter Steinberger
2cc0a98519
refactor(codex): compact plugin inventory test fixtures ( #118223 )
2026-08-02 16:10:00 -07:00
Peter Steinberger
30c79e4db1
fix(inference): prevent lost cancellation, stuck compaction, and runaway tools ( #118146 )
...
* fix(inference): preserve cancellations, compaction, and tool-loop safety
* fix(inference): satisfy Codex and mock-provider type checks
* fix(codex): secure tool-free recovery and restricted turns
* fix(codex): satisfy host-prompt provenance lint
2026-08-02 14:42:01 -07:00
Peter Steinberger
999f14392b
fix(telegram): preserve question choices across button rows ( #118049 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-02 11:49:35 -07:00
Peter Steinberger
0138f5b5e3
fix: stop lost cancellations, false success, and stuck Codex compaction ( #117902 )
...
* fix(inference): preserve cancellation, lifecycle, and Codex completion ownership
* test(qa): settle visible replies on the active channel transport
2026-08-02 02:03:57 -07:00
Josh Avant
b3a1d97ed7
fix(agents): scope harness preflight fallback ( #117256 )
...
* fix(agents): scope harness preflight fallback
* test(plugin-sdk): record scoped preflight contract
* test(agents): lock fallback approval boundary
* fix(agents): bind preflight scope to selected harness
2026-08-02 00:42:26 -05:00
Peter Steinberger
7c1d5dc7ef
fix(inference): preserve run ownership and completion delivery ( #117731 )
2026-08-01 18:57:05 -07:00
Peter Steinberger
568ea29d2e
refactor(plugins): inherit shared package boundary settings ( #117474 )
2026-08-01 09:11:09 -07:00
Jacob Tomlinson
20ac22f647
fix(codex): guide recovery from unimported agent auth ( #116807 )
...
* fix(codex): diagnose unimported agent auth
Add agent-scoped Codex migration guidance and expose a validated --agent target so non-default credentials cannot be imported into the default agent store.
Fixes #116763
* fix(codex): surface auth migration before route planning
* fix(codex): scope auth migration recovery
* fix(codex): preserve API key auth fallback
* test: repair memory importer routing expectation
* test: drop superseded memory routing repair
* test(tui): report PTY progress verbosely
---------
Co-authored-by: fuller-stack-dev <263060202+fuller-stack-dev@users.noreply.github.com >
2026-08-01 07:08:02 -06:00
Peter Steinberger
8738fe1354
refactor(codex): deduplicate generated protocol schemas ( #117382 )
2026-08-01 05:32:37 -07:00
Peter Steinberger
b721cffa44
fix(inference): simplify lifecycle and preserve Codex tool identity ( #117298 )
2026-08-01 02:05:45 -07:00
Vincent Koc
71a09dcfe3
fix(codex): preserve app-server close diagnostics ( #117296 )
2026-08-01 17:01:42 +08:00
Vincent Koc
754dcb8b2f
merge: preserve verified completion handoff series ( #117148 )
...
* commit '619682ed010f4e6c56c73feb4948fd7265083e10':
fix(agents): bind completion messages to source
fix(agents): mint completion delivery grant
fix(agents): retain tools for direct completion delivery
fix(agents): integrate verified completion delivery
test(codex): use typed completion handoff fixture
fix(agents): verify completion tool handoffs
2026-08-01 15:35:41 +08:00
Peter Steinberger
378d4ff938
fix(codex): preserve authoritative turn completion ( #117185 )
...
Retain terminal and assistant-completion facts when pre-start notifications exceed the bounded buffer. Exclude commentary from replies, accept legacy unphased final messages, and let completed terminal items own the final answer while rejecting interrupted, failed, or non-terminal outcomes.
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
Co-authored-by: Peter Steinberger <58493+steipete@users.noreply.github.com >
2026-08-01 15:34:30 +08:00
Dallin Romney
bcff3a0de3
fix(qa): bind Codex auth fixture to runtime version ( #116859 )
...
* fix(qa): update Codex auth fixture protocol version
* test(qa): bind Codex auth fixture to runtime version
* test(qa): load Codex fixture version through public surface
2026-08-01 13:36:31 +08:00
Vincent Koc
f90f0b1a7b
test(codex): use typed completion handoff fixture
2026-08-01 12:47:05 +08:00
Peter Steinberger
cb16d739cf
fix(inference): harden Codex streaming, cancellation, and live QA ( #116012 )
...
* fix(inference): harden Codex turns, streams, and live QA
* fix(inference): dispatch open CR-delimited response frames
* fix(inference): finish live goal and split streaming regressions
* fix(codex): wait for interrupted turn completion
* fix(codex): narrow terminal collector notification ownership
* fix(inference): harden completion authority and lifecycle
* fix(inference): use canonical source delivery contract
* test(inference): align lifecycle probes with current main
* style(inference): format source delivery verification
* fix(goals): prevent premature completion across staged work
* fix(qa): settle streamed goal turns before continuation
* fix(goals): require visible replies after goal completion
* test(qa): keep goal flow regressions within lint limits
2026-07-31 21:29:33 -07:00