Peter Steinberger
fa03d9b913
refactor: consolidate coercion helpers ( #121366 )
...
* refactor: consolidate coercion helpers
* fix: remove duplicate coercion imports
* fix: preserve serialized coercion guard
* chore: ratchet coercion helper carve-outs
* fix(test): keep gauntlet subprocess startup lean
* fix: preserve imported session timestamp semantics
* fix: preserve catalog timestamp string semantics
* chore: align plugin SDK surface ratchet
* fix: preserve trajectory and SDK string contracts
* fix(test): preserve QA record assertion semantics
* fix: complete standalone record guard rename
* refactor(cron): use canonical string coercion
* fix(acpx): preserve Pi timestamp parsing
* test(channels): adapt custody test harnesses
* test(telegram): classify media harness as test support
* test(acpx): split timestamp contract coverage
* test(channels): support generated custody contracts
* chore: ban the full coercion helper name set
Extends the declaration guard to all eleven consolidated helper names and
renames the cron schedule-identity readNumber wrapper to readScheduleInteger
so the banned generic name cannot regrow.
* fix(scripts): repair release-validation guard drift and lint cause
Restores the renamed isJsonRecord guard in assertTrustedWorkflowHarness after
main added isRecord call sites in parallel, and attaches the caught YAML error
as the thrown error cause (preserve-caught-error was red on main).
* fix: preserve Claude timestamp string semantics
* fix: preserve persisted timestamp string semantics
* fix: preserve date-first timestamp contracts
* fix(openai): harden delegation failure formatting
* chore: close coercion helper guard gaps
* test(openai): model non-error delegation rejection
* chore: refresh plugin SDK API contract
* fix(tasks): use canonical string field reader
* fix(ai): use canonical provider error field coercion
* fix(browser): migrate native bootstrap coercion
* docs(plugin-sdk): clarify text record export compatibility
* fix(gateway): normalize approval execution identity
* test(outbound): isolate message action poll harness
2026-08-11 00:02:18 -07:00
Josh Avant
73a9eed95b
refactor(audit): add canonical admitted-run context ( #120534 )
...
* feat(audit): carry canonical admitted execution context
* fix(agents): preserve admitted context across retries
* fix(worker): fence legacy launch dialect
* test(gateway): track approval temp dirs
* fix(plugin-sdk): preserve harness attempt compatibility
* fix: close delegated run authority at owner boundaries
* fix: internalize delegated authority validators
* refactor: split delegated authority proof surfaces
* refactor: centralize command admission identity
* test: claim runtime tool authority
* fix(gateway): keep lifecycle cleanup within static budgets
* fix(agents): revalidate harness policy authority
* fix(agents): fence awaited approval capability results
* test(copilot): supply required harness capability fixtures
* fix(agent): preserve scoped embedded run admission
* fix(agent): preserve keyless and worker authority
* test(agent): bind incomplete-turn authority
* docs: preserve execution authority invariants
* chore(plugin-sdk): regenerate API baseline
* fix(gateway): notify pending claim closure
* fix(gateway): revalidate delegated tool authority
* fix(plugin-sdk): keep source guard internal
* fix: close delegated authority races
* fix: revalidate delegated side effects
* fix: close harness authority projection gaps
* fix: align authority integration types
* fix: isolate settled harness finalization
* fix: fence recovery identity finalization
* fix: preserve committed session worktrees
* fix: preserve worker placement agent identity
* fix: fence active harness tool work
* fix(plugins): restore embedded run admission owner
* chore(plugin-sdk): compose integrated surface budgets
* fix(copilot): keep finalization attempt type internal
* fix(plugins): complete admission owner type imports
* test(harness): use settled finalization attempt shape
* fix(security): retain exact side-run and approval authority
* fix(security): preserve protected authority through terminal sweep
* fix(agents): follow moved recovery store owner
* fix(ci): align integrated authority owners with gates
* fix(plugins): distinguish embedded agent adapter export
* chore(plugin-sdk): regenerate API baseline after rolling integration
* refactor(gateway): keep session authority within owner budgets
* fix(gateway): keep session helpers private
* docs(plugin-sdk): name the V2 parameter subpath
* chore(integration): reconcile worker and SDK surfaces
* docs(plugin-sdk): require the V2 host API floor
* chore(plugin-sdk): regenerate after proxy-auth integration
2026-08-10 23:15:20 -05:00
Peter Steinberger
b6b937d6ac
chore(types): give test helpers nameable exported types ( #121783 )
2026-08-10 18:17:50 -07:00
Peter Steinberger
72283e440e
fix: steering misses the next tool boundary after ACK ( #120964 )
...
* fix(steering): wait for queue acceptance before ack
* fix(steering): preserve session steer call contract
* fix(steering): close runtime ownership gaps
* fix(ci): refresh plugin SDK API baseline
2026-08-09 10:46:09 -07:00
Ayaan Zaidi
409fb7abca
fix(telegram): enforce direct-message tool policies
...
Enforce configured Telegram direct-message tool policies across queued runs and native harnesses. Unsupported restricted harnesses now refuse visibly; turns without explicit policy keep existing tool access.
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-08-09 19:32:30 +05:30
Peter Steinberger
8616c0c374
refactor: finish shared test helper migrations ( #120996 )
...
* test: finish shared helper migrations
* test: fix helper migration CI
* style: fix test import ordering
* test(acpx): restore deferred void types
* test: fix helper migrations after rebase
2026-08-09 06:00:06 -07:00
Jason (Json)
68d625b278
fix: keep credentials out of assistant transcripts ( #120728 )
2026-08-08 16:24:02 -06: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
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
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
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
60a8ec821c
refactor(plugins): reuse canonical error coercion ( #119451 )
2026-08-04 21:05:45 -07: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
Jesse Merhi
ba24420f17
fix(tool-search): preserve deferred MCP failures ( #118363 )
...
* fix(tool-search): propagate deferred tool failures
* fix(tool-search): preserve failures across harnesses
* test(tool-search): align projection contract
2026-08-04 14:10:00 +10:00
Peter Steinberger
3fa9cc209b
fix(agents): preserve tainted memory provenance in provider tool bridges ( #118760 )
2026-08-03 10:12:10 -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
e98fdeefdf
refactor(errors): consolidate message formatting ( #117818 )
2026-08-01 22:05:49 -07:00
Peter Steinberger
66d5410171
fix(browser): preserve tab-bound browser authorization ( #116778 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 03:57:04 -07:00
Josh Avant
ce67ffb70e
feat(agents): add tool-free isolated completion ( #114343 )
...
* feat: add isolated pure-inference completion
* fix(google): block ambient system prompt writes
* docs: refresh generated map
2026-07-30 13:24:45 -05:00
Stellar鱼
42e23c11e0
feat(plugins): allow per-turn tool narrowing in prompt hooks ( #114151 )
...
* feat(plugins): allow per-turn tool narrowing in prompt hooks
* fix(hooks): keep prompt tool policy baseline internal
* fix(test): track active tools in embedded session fixture
* test(agents): preserve active tool fixture state
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-07-30 03:28:45 +08:00
Peter Steinberger
3f4d65a672
feat(harness): report copilot code-mode engagement on the attempt result ( #115913 )
...
* feat(harness): report copilot code-mode engagement on the attempt result
* test(copilot): prove code-mode engagement through the production tool bridge
* docs: describe the normalized codeModeEngaged value for native harnesses
2026-07-29 14:44:15 -04:00
Peter Steinberger
ef63df8afd
fix(memory): preserve taint across transcript runtimes ( #115850 )
...
* fix(memory): propagate taint across transcript owners
* test(copilot): consolidate taint journal coverage
* fix(codex): keep event projector within lint budget
* fix(codex): preserve projector merge-head budget
2026-07-29 08:06:17 -04:00
Peter Steinberger
fe9893d41c
refactor(agents): resolve code-mode vs tool-search once for every harness ( #115189 )
...
* refactor(agents): share one tool-surface resolver across runner and harness
The code-mode vs tool-search gate decision and the three-way catalog
application were duplicated across the embedded runner and the native
harness bridge, and had already drifted: the harness copy was missing the
skillWorkshopProposalOnly condition and its params object had no field to
express it.
Both surfaces now consume resolveAgentToolSurfacePlan and
applyAgentToolSurfaceCatalog, so the gates and the catalog branch exist
once. Both gate booleans derive from a single shared toolsAvailable
intermediate.
Behavior change: the harness path now honors skillWorkshopProposalOnly.
Proposal-only skill-workshop runs are deliberately narrow single-tool runs,
so code-mode indirection and tool-search catalogs are pure overhead — a
harness-independent reason. Both callers currently pin
agentHarnessRuntimeOverride "openclaw", so this closes a latent fail-open
rather than fixing a live bug.
* fix(agents): let the shared catalog params carry a config-less run
resolveAgentToolSearchRuntimeConfig returns OpenClawConfig | undefined, so
requiring a non-null toolSearchRuntimeConfig broke tsgo:core at both call
sites. Keep the key required so it cannot be silently omitted, but let the
value be undefined as the pre-refactor code already allowed.
* fix(agents): keep the tool-surface module free of dead exports
Importing isCodeModeEngagedForModel and applyToolSchemaDirectoryCatalog from
their defining modules left the code-mode.ts and tool-search.ts re-exports with
no production consumer, which knip rejects. Go back through the barrels, which
is also what both call sites did before this refactor.
The two params types were exported only for the test, so knip's production scan
saw them as dead. Keep them module-local and derive the type in the test.
2026-07-28 09:16:35 -04:00
Peter Steinberger
7394262cd1
feat: per-model code-mode capability flags with an "auto" master-switch tier ( #114695 )
...
* feat(tools): per-model code-mode capability flags and auto master-switch tier
* feat(anthropic): flag claude-sonnet-4-6 as code-mode preferred
* revert(anthropic): drop claude-sonnet-4-6 from the code-mode preferred set
* test(anthropic): type the manifest compat field in the catalog contract test
* fix(anthropic): carry catalog compat onto hand-built forward-compat model rows
2026-07-27 16:47:41 -04:00
Peter Steinberger
3dc3370d9e
fix(copilot): keep tool transcript groups structurally complete ( #114403 )
...
* refactor(copilot): make SQLite own transcripts
* fix(copilot): harden transcript event projection
* test(copilot): tighten transcript journal types
* fix(copilot): retain unmatched usage metadata
* refactor(copilot): commit tool groups atomically
* fix(copilot): break journal bridge import cycle
* fix(copilot): preserve grouped transcript replay
* test(copilot): cover opaque replay state
* fix(copilot): invalidate lossy transcript replay
* fix(copilot): guard transcript rewrite topology
* fix(copilot): drain transcript finalization
* fix(copilot): preserve resumed session history
* fix(copilot): dedupe replayed transcript snapshots
* fix(copilot): isolate transcript write hooks
* fix(copilot): track staged transcript identities
* fix(copilot): isolate ephemeral transcript events
* fix(copilot): coalesce assistant snapshots
* fix(copilot): invalidate unprojected SDK context
* fix(copilot): guard resumed transcript replay
* fix(plugin-sdk): expose strict transcript append
* fix(copilot): persist journal provenance safely
* fix(copilot): separate live and durable deltas
* fix(copilot): require durable projection ownership
* fix(copilot): preserve strict append typing
* fix(copilot): gate deferred session deletion
* fix(copilot): preserve transcript replay identity
* fix(copilot): retain cited replay history
* fix(copilot): require complete replay provenance
* fix(copilot): reject ambiguous assistant snapshots
* fix(copilot): return latest assistant snapshot
* chore(copilot): align transcript lint gates
* test(lint): cover Copilot line budgets
* test(ci): dedupe Codex prewarm shard
2026-07-27 15:42:00 -04:00
Peter Steinberger
de3616526b
fix(release): repair plugin prerelease contracts ( #114597 )
2026-07-27 09:57:43 -04:00
Peter Steinberger
669db2968f
refactor(agents): retire TOOLS.md into an AGENTS.md section with a doctor migration ( #113966 )
...
* fix(agents): stop retired attestation hashes from faking a vanished workspace
* feat(agents): migrate TOOLS.md content into the AGENTS.md tools section
* refactor(agents): drop TOOLS.md from the workspace bootstrap set
* refactor(policy): read tool policy entries from AGENTS.md
* docs: describe local tool notes as an AGENTS.md section
* test(codex): drop TOOLS.md developer-instruction coverage with the removed path
* test(agents): cover the TOOLS.md doctor migration behaviors
* refactor(doctor): satisfy TOOLS.md migration lint
* test(agents): split workspace attestation survival coverage
* refactor(codex): simplify workspace context basenames
* refactor(doctor): keep TOOLS.md migration helpers module-local
* docs: regenerate docs map
* fix(doctor): keep migration claims fresh
* fix(doctor): preserve nested tool notes
* refactor(doctor): split tools migration helpers
* refactor(doctor): limit TOOLS.md migration to workspace root
* style(doctor): keep migration under line limit
* fix(doctor): recover interrupted AGENTS publish
* docs(hooks): describe root-only TOOLS.md migration accurately
* fix(doctor): preserve migrated tool guidance visibility
* test(agents): regenerate prompt snapshots after rebase
* fix(policy): block evaluation while TOOLS.md is unmigrated
* fix(doctor): check merged bootstrap budget per agent
* fix(doctor): keep budget helper internal
* refactor(doctor): keep migration budget helpers to their consumers
2026-07-27 03:56:30 -04:00
Peter Lee
0406e66369
fix(ui): keep stable chat rows in insertion order and only sort live tool/stream items by timestamp ( #113266 )
...
* fix(ui): keep stable chat rows in insertion order and only sort live tool/stream items by timestamp
* fix(ui): keep live rows within current turn
* fix(ui): keep current work above queued turns
* fix(ui): keep streamed replies above queued turns
* fix(ui): preserve reconnecting run order
* fix(ui): preserve causal terminal ordering
* fix(ui): bound replay rows to owning turns
* fix(ui): keep question summaries in owning turns
* fix(ui): scope question run ownership to session
* fix(ui): restore reconnecting chat run identity
* fix(ui): remove unused chatItemTimestamp import in chat-thread-build.ts
* fix(ui): correlate question summaries with agent runs
Co-authored-by: Peter Lee <li.xialong@xydigit.com >
* chore(i18n): refresh native source baseline
Co-authored-by: Peter Lee <li.xialong@xydigit.com >
* fix(ui): remove unused chatItemTimestamp export and split tool-stream test file
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-27 02:08:22 -04:00
Peter Steinberger
299f5a4941
refactor(copilot): split attempt runtime ( #114035 )
...
* refactor(copilot): split attempt runtime
* refactor(copilot): narrow attempt helper exports
* refactor(copilot): expose user input bridge type
* refactor(copilot): consume user input bridge type
2026-07-26 01:58:31 -04:00
Peter Steinberger
332006bc1f
test: consolidate OpenClaw test state fixtures ( #113576 )
...
* test: consolidate OpenClaw test state fixtures
* test(plugin-sdk): expose isolated test state
Promote the isolated OpenClaw test-state lifecycle through a narrow published Plugin SDK subpath so extension tests no longer import private core helpers. This intentional SDK surface addition is maintainer-approved.
* test: use SDK test-state seam in extensions
Route bundled extension suites through the focused repo-local Plugin SDK test-state entrypoint and remove the Codex projector harness exports made stale by fixture consolidation. Keep the seam out of production builds and published package artifacts while auditing its real consumers in the full-tree deadcode scan.
* test(plugins): map test-state in package boundaries
2026-07-25 05:30:52 -07:00
scotthuang
2900026b33
fix: stop selected channel sessions from WebChat ( #111108 )
...
* fix: stop selected channel sessions from WebChat
* fix: clear channel working state after stop
* fix: cancel queued turns before session abort
* fix: replay pending stops after reconnect
* fix: align stop lifecycle test fixtures
* fix(ui): bind pending aborts to gateway client
* test(ui): keep chat pane specs within line limit
* chore(ios): refresh native i18n inventory
* chore: retrigger PR checks
* fix(system-agent): avoid blocking TUI catalog discovery
* fix: preserve session abort ownership
* test: align abort coverage with current main
* test: assert scoped session abort broadcast
* fix(agent-runs): expose SDK runtime abort state
* fix(ui): clear queued main-session stops by scope
* fix(ui): replay only exact run aborts
* fix(gateway): protect session abort cleanup
* fix(ui): narrow session abort intent
* test(ui): avoid unbound request assertions
---------
Co-authored-by: scotthuang <scotthuang@tencent.com >
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com >
2026-07-24 14:36:18 -05:00
joshavant
bd559a98ed
fix(cron): migrate scheduled authority provenance
2026-07-24 01:24:03 -05:00
joshavant
5d21ba0a2a
fix(cron): bind scheduled authority to creator accounts
2026-07-24 01:24:03 -05:00
joshavant
d8f1f098e5
fix(cron): honor explicit authority for senderless runs
2026-07-24 01:24:03 -05:00
Peter Steinberger
61f036f748
refactor(agents): close embedded attempt terminal outcomes ( #113201 )
...
* refactor(agents): close embedded attempt outcomes
* test(agents): align trajectory terminal fixture
* refactor(codex): share attempt failure type
* fix(codex): retain projector result contract
* test(agents): keep terminal projections test-only
* chore(plugin-sdk): refresh attempt terminal baseline
2026-07-23 19:56:03 -07:00
Peter Steinberger
6522ce37d9
fix(release): unblock Telegram QA and Copilot media proof ( #112972 )
...
* fix(release): build Telegram candidate with private QA
* fix(copilot): preserve offloaded prompt images
2026-07-23 04:43:53 -04:00
Jason (Json)
307b3060a9
fix: hide memory maintenance turns from chat ( #112942 )
...
* fix: hide memory maintenance turns from chat
* chore: update plugin SDK API baseline
* chore: account for harness visibility export
2026-07-23 01:02:27 -06:00
joshavant
6eea20ce18
fix(agents): finalize settled tool turns safely
2026-07-22 06:04:27 -05:00
joshavant
7c2829c0e0
fix(copilot): isolate settled turn finalization
2026-07-22 06:04:27 -05:00
Peter Steinberger
c7e7ac2728
refactor: remove expired plugin compatibility surfaces ( #111451 )
...
* docs(secrets): remove retired web credential paths
* refactor(web): remove retired provider compatibility paths
* refactor(providers): delete retired compatibility routes
* refactor(secrets): remove retired credential aliases
* refactor(plugin-sdk): delete retired compatibility surfaces
* docs(plugin-sdk): remove retired migration guidance
* chore(plugin-sdk): refresh rebased surface budgets
* chore(plugin-sdk): refresh API removal baseline
* refactor(compat): migrate retired internal callers
* chore(plugin-sdk): refresh current-main baselines
* test(config): migrate plugin-owned secret assertions
* test(gateway): narrow plugin secret refs
* fix(plugin-sdk): preserve private boundary type identity
* chore(compat): remove stale sweep references
* chore(lint): lower max-lines budget
* refactor(secrets): remove unused web helper
* build(plugin-sdk): drop removed compat entries
* chore(plugin-sdk): refresh rebased API baseline
* chore(plugin-sdk): use Linux API baseline hash
* fix(plugin-sdk): preserve private bundled build entries
* fix(plugin-sdk): package private runtime facades
* fix(plugins): preserve external credential contracts
2026-07-19 11:04:48 -07:00
Peter Steinberger
3b84a55d99
refactor(protocol): pre-publish cheat-window cleanup and vintage tracking ( #111041 )
...
* fix(codex): drain dynamic-tool handlers before side-thread cleanup
* refactor(protocol): rename question ids to questionId and flatten answer maps
* refactor(protocol): slim worker stack and unify session-catalog shapes
* refactor(protocol): delete dead public surface and polish packaging
* feat(protocol): track release-train vintage on gateway methods and schemas
* fix(apps): align question surfaces merged from main with reshaped protocol
* test(health): shape secret fixtures to scanner-safe token names
* test(health): use scanner-safe token fixtures
* fix(apps): align question surfaces merged from main with reshaped protocol
* fix(ci): prove reshaped protocol in shallow checks
* fix(ui): align sidebar question fixtures with protocol
* fix(apps): read flat Swift question answers
* fix(apps): align question surfaces merged from main with reshaped protocol
* fix(apps): refresh native question inventory
* fix(apps): align macOS snapshot fixtures with protocol
* fix(ui): align narration question fixture with protocol
2026-07-19 04:07:15 -07:00
Peter Steinberger
d7de67ae02
feat: ask_user follow-ups — harness convergence, channel finalization + reactions, native cards, docked web panel ( #110372 )
...
* feat(ask-user): follow-up harness slice
* feat(ask-user): follow-up channels slice
* feat(ask-user): follow-up native slice
* feat(ui): dock question panel above composer with stepper and compact stream summaries
* docs: refresh follow-up integration maps
* test(ui): align terminal summary proof
* fix(infra): echo declared option answers in terminal status when free-text is allowed
* fix(infra): keep reaction answering when display labels are formatter-adjusted
* fix(agents): settle plain-text claims only after question registration commits
* fix(agents,apps): commit-ordered claim persistence, claim-aware prompt delivery, non-blocking question refresh
* fix(harness,infra): reaction-appropriate question copy, caller presentations honored
* fix(native,infra,agents): local-expiry eviction, value-addressed reactions, reserve-before-request
* fix(infra,android): dual-mode question resolver for compact callbacks; reset terminal retention on replayed pending
* fix(harness,discord): claim-aware prompt delivery in run helper; escape finalization labels
* fix(macos): merge transient-content visibility with question cards after main sync
* fix: repair ask user follow-up CI
* test: update limited bootstrap scope expectation
* fix: retain shared question card API
* chore: refresh native i18n inventory
2026-07-18 03:32:39 -04:00
Mert Başar
9d6133a931
fix(agents): block fallback completion delegation ( #92011 )
...
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-16 21:06:40 -07:00
Peter Steinberger
3852a75803
improve(extensions): reduce test hotspot setup costs [AI] ( #109346 )
...
* test(extensions): reduce hotspot setup costs
* test(signal): track reply reset usage
* test(signal): group reply state helpers
* test(signal): isolate reply author state
* test(active-memory): preserve fixture isolation
2026-07-16 16:07:11 -07:00