keshavbotagent
4dc90937a0
fix(session): isolate memory flush lifecycle from parent recovery ( #116198 )
...
* fix(session): isolate memory flush lifecycle
* fix(session): fence newly introduced recovery cycles
* test(qa): prove memory flush preserves parent lifecycle
* test(session): align recovery fixtures with internal state
2026-07-30 11:31:23 -07:00
Dallin Romney
7df05d5fc0
refactor(qa): remove live-channel scenario registries and wrappers ( #115752 )
...
* refactor(qa): remove duplicate channel scenario registries
* refactor(qa): route live scenarios through shared runners
* fix(qa): isolate WhatsApp driver retries
* refactor(qa): add module export flow arguments
* test(qa): include scenario metadata in matrix fixture
2026-07-30 13:56:34 +08:00
Peter Steinberger
d98e984ec2
fix(qa): isolate Matrix live validation state ( #116071 )
...
* fix(qa): isolate Matrix live scenario routing
* fix(qa): preserve Matrix mention filenames
* fix(qa): reset Matrix transport scenario state
* test(qa): isolate stateful Matrix scenario partitions
* test(qa): match numbered Matrix isolation
* test(qa): reject stale Matrix progress results
* fix(qa): bound Matrix scenario prompt ownership
* fix(qa): bound mock scenario ownership
* test(qa): satisfy Matrix validation gates
* refactor(qa): remove stale prompt helper
* fix(qa): preserve tool-result ownership after rebase
2026-07-29 17:23:03 -04:00
Peter Steinberger
d16e33e08e
fix: restore trustworthy end-to-end QA and cross-channel delivery ( #115404 )
...
* fix(qa): repair verified end-to-end and channel regressions
* fix(gateway): make interrupted restart recovery lifecycle-safe
* test(heartbeat): target the canonical recovery session store
* fix(gateway): prioritize durable restart recovery before heartbeat
* fix(qa): preserve safe restart recovery and channel expiry
* fix(qa): fail closed and fence restart recovery
* test(agents): isolate restart recovery timing
* test(agents): prove actual restart retry timing
* fix(qa): report incompatible profile scenarios
* fix(scripts): resolve symlinked docker scheduler entrypoints
* fix(qa): require fresh native test evidence
* fix(heartbeat): fence active restart recovery delivery
* fix(gateway): consume untargeted restart acknowledgements
* fix(qa): satisfy exhaustive hosted validation gates
* fix(agents): fence stopped restart recovery dispatch
* style(agents): format restart recovery lifecycle regression
* test(gateway): isolate context prewarm sidecar lifecycle
* test(qa): make scenario process timeout cleanup deterministic
* fix(qa): stamp synthetic gateway configs with current version
* fix(openai): preserve vision capabilities in stale model catalogs
* test(qa): align profile channel rejection with current main
* fix(openai): forward supported moderation for image edits
* fix: restore latest-main CI and image edit documentation
* fix(qa): retain relocated code-mode evidence validation
* fix(openai): expose GPT-5.4 vision in static catalog
* fix(pricing): honor explicit model cost overrides
* test(pricing): keep isolated provider regressions deterministic
* fix(openai): inherit transport for discovered static models
* fix(gateway): honor agent-owned static image capabilities
* test(gateway): preserve prepared-snapshot attachment races
* test(gateway): isolate subagent persistence failure injection
* test(gateway): exercise concurrent voice replay admission
* fix(gateway): restore stale model image capabilities
* fix(agents): publish configured model vision capabilities
* fix(agents): isolate detached media transcript ownership
* test(agents): preserve generic transcript lock regression
* fix(gateway): require proven static model route identity
* fix(qa): accept bounded full-size generated image attachments
* fix(qa): require fresh script producer evidence
* test(qa): prove native E2E scenario execution
2026-07-29 12:45:27 -04:00
Peter Steinberger
17a8961a6a
fix(active-memory): inject cold first-turn memory in QA-channel DMs ( #115936 )
...
* fix(active-memory): prewarm trigger recall for channel turns
* test(active-memory): satisfy timing test lint
* test(plugins): declare active-memory prewarm hook
2026-07-29 10:38:42 -04:00
ACD_RD4駱俊馳
e7f0fdfd9b
fix: CJK replies are silently dropped instead of recovered when the model skips message(action=send) ( #115556 )
...
* fix(auto-reply): count CJK sentence terminators in stranded private-final detection
* fix(auto-reply): compare private-final substance thresholds with the CJK-aware estimator
* fix(auto-reply): detect CJK sentence boundaries
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-29 07:23:33 -04:00
Peter Steinberger
d37fd8f2d4
fix(matrix): accept documented automatic approval mode ( #115676 )
...
Restore the explicitly shipped Matrix approval mode without changing omitted, boolean, invalid, or non-strict configuration behavior. Regenerate the canonical channel metadata and prove native Matrix approvals against a real homeserver.
Co-authored-by: mingdideng <deng.mingdi@xydigit.com >
2026-07-29 03:37:19 -04:00
Peter Steinberger
5da5551a5c
fix(qa): verify paired Ollama nodes over the gateway ( #115644 )
2026-07-29 02:18:16 -04:00
Dallin Romney
96ea0fbf56
improve(qa): align Telegram coverage with startup behavior ( #113527 )
...
* test(telegram): align coverage with startup behavior
* fix(qa): register Slack MPIM coverage
2026-07-29 12:59:42 +08:00
Peter Steinberger
dd5b9c8c04
fix(slack): prevent duplicate MPIM mention replies ( #115528 )
...
* fix(slack): make MPIM app mentions type-safe
Resolve typeless app mentions through explicit metadata, the scoped event cache, then conversations.info so modern C-prefixed MPIMs cannot be misclassified by event ordering. Add a real Slack QA scenario that requires one reply and cleans up its temporary MPIM.
Co-authored-by: moeealii <75953662+moeealii@users.noreply.github.com >
* fix(slack): type unresolved mention metadata
* fix(slack): satisfy MPIM type contracts
---------
Co-authored-by: moeealii <75953662+moeealii@users.noreply.github.com >
2026-07-29 00:23:06 -04:00
Peter Steinberger
d5567ed61e
fix: prevent duplicate agent turns and slow Codex harness runs ( #115474 )
...
* fix(agents): deduplicate turns and speed up Codex harnesses
* test(agents): keep keyed transcript fixtures type-safe
* fix(codex): simplify linear native skill traversal
* fix(agents): preserve admitted SQLite turns during orphan repair
* test: split session user idempotency regressions
2026-07-28 22:56:12 -04:00
Peter Steinberger
d239a59d82
fix(ui): make Control UI ownership and permissions reliable ( #115364 )
...
* fix(ui): unify connection-owned gateway event dispatch
* fix(qa): keep hosted UI smoke evidence truthful
* fix(ui): make mobile navigation drawer an accessible modal
* refactor(ui): centralize settings search destinations
* fix(ui): own chat media resource lifecycles
* fix(ui): unify sidebar session scope ownership
* refactor(ui): remove obsolete navigation backdrop styles
* refactor(ui): isolate dashboard provider lease capabilities
* fix(ui): centralize gateway operator permissions
* style(ui): format gateway event regressions
* fix(ui): render live dashboard permissions immediately
* fix(ui): enforce approval grant authority
* fix(gateway): fence retired sockets after event gaps
* fix(ui): isolate sidebar gateway fixtures across shared workers
* test(ui): isolate singleton-sensitive browser suites
* fix(ui): retire stale catalog pagination on gateway reconnect
* fix(ui): restore drawer focus after native dialog dismissal
* fix(ui): seed drawer threads and preserve modal focus ownership
* fix(ui): isolate nested native drawer overlay lifecycle
* test(ui): prove isolated dashboard lease authorization
* fix(ui): bound settled managed image resources
* fix(ui): type native modal focus and shared test helper
* fix(ui): correct approval mock types and trim dead export
* fix(ui): keep settings section metadata private
* fix(qa): keep hosted coverage regression within lint limit
* refactor(ui): keep catalog presence in its session data owner
* fix(browser): regenerate bundled copilot runtime
* test(ui): split board lease authorization regressions
* fix(ui): snapshot gateway listener fanout without redundant spread
* fix(ui): bind chat media subscriptions to image lifetime
* fix(ui): extract overlay access lifecycle
* fix(ui): restore guarded media after Lit reconnection
* test(ui): localize board lease fixture title
* fix(ui): reuse system approval fixture labels
* test(ui): narrow managed media lifecycle source
* fix(ui): prevent retired board gateway clients from rolling back leases
* fix(ui): expose pairing to pairing-scoped operators
* fix(ui): preserve legacy device pairing access
* fix(ui): preserve responsive sidebar ownership
* fix(ui): preserve responsive navigation and prove media ownership
* fix(ui): retire revoked catalog and refresh pairing grants
* test(ui): align typed catalog fixtures with main
2026-07-28 16:42:05 -04:00
Peter Steinberger
641c82b5bd
fix(qa): restore full-stack scenarios and truthful suite exits ( #115290 )
...
* fix(qa): restore full-stack scenarios and truthful suite exits
* test(qa): respect plugin boundaries and atomic media delivery
2026-07-28 13:00:22 -04:00
Vincent Koc
b403cb5d50
fix(qa-lab): filter incompatible channel scenarios ( #115087 )
2026-07-28 23:49:47 +08:00
Dallin Romney
9feb6ad161
refactor(qa): make scenario selection taxonomy-owned ( #114055 )
...
* refactor(qa): remove scenario execution profiles
* fix(qa): preserve smoke CI membership
* test(qa): drop redundant smoke pack order check
* refactor(qa): remove Matrix runner profiles
* refactor(qa): simplify Matrix CI orchestration
* refactor(qa): derive execution sets from taxonomy
* fix(qa): keep Matrix shard helper private
* refactor(qa): derive profile scenarios from taxonomy
* refactor(qa): reconcile taxonomy selection
* refactor(qa): use canonical profile planning
* refactor(qa): select canonical coverage owners
* fix(qa): keep profile selector internal
* refactor(qa): remove representative coverage owners
2026-07-28 22:23:41 +08:00
Peter Steinberger
107bc4f963
fix: make gateway nodes and local inference reliable under stress ( #115185 )
2026-07-28 08:41:14 -04:00
Peter Steinberger
a5ee5039ce
test(ui): split the oversized Control UI e2e suites ( #114889 )
...
* test(ui): split oversized Control UI e2e suites
* test(ui): bound new-session locator polling
* test(ui): fix split e2e metadata
* test(ui): give startup waits an explicit budget
2026-07-28 01:07:21 -04:00
Peter Steinberger
854a7f0e91
fix(ui): preserve agent, session, locale, and dashboard ownership ( #114896 )
...
* fix(ui): isolate sessions and preserve agent-scoped state
* test(ui): stabilize agent-scoped chat startup browser proof
2026-07-28 01:02:06 -04:00
Peter Steinberger
fafe7d9dad
fix: prevent cron and Workboard execution races ( #114808 )
2026-07-27 20:33:53 -04:00
Ho Lim
50f0e8d8ab
fix(diagnostics): exclude active steering from session backlog ( #114780 )
...
* fix(diagnostics): exclude active steering from session backlog
Signed-off-by: Ho Lim <subhoya@gmail.com >
* fix(diagnostics): cover reply-run steering backlog
Signed-off-by: Ho Lim <subhoya@gmail.com >
* test(qa): prove active steering drains diagnostics
Signed-off-by: Ho Lim <subhoya@gmail.com >
* test(diagnostics): format reply-run steering coverage
Signed-off-by: Ho Lim <subhoya@gmail.com >
* fix(diagnostics): keep backlog policy internal
Signed-off-by: Ho Lim <subhoya@gmail.com >
* test(qa): isolate Talk diagnostics client
Signed-off-by: Ho Lim <subhoya@gmail.com >
* test(qa): close Talk client before diagnostics
* test(qa): reuse Gateway diagnostic RPC client
* test(qa): retry Talk steering admission
---------
Signed-off-by: Ho Lim <subhoya@gmail.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-27 20:01:22 -04:00
Peter Steinberger
37cf0c6064
improve: reduce GPT-5.6 coding harness overhead ( #114574 )
...
* improve: reduce GPT-5.6 coding harness overhead
* refactor: extract runtime parity timing helpers
* fix(qa): verify native apply-patch runtime parity
* fix(qa): use mock patch execution evidence
* fix(qa): preserve workspace templates in full syncs
* fix(qa): make rejected patch fixtures deterministic
* fix(qa): prove apply-patch workspace containment
* fix(qa): expose runtime prompt-cache usage
* fix(codex): confine forced private QA patch turns
* fix(qa): verify native patch execution and sandbox precedence
* fix(qa): execute native patches and prove disk mutation
* fix(codex): avoid duplicate native patch registration
* perf(agents): keep code mode catalog guidance compact
* fix(qa): make native Codex patch evidence deterministic
* fix(qa): recognize native sandbox denial errors
* fix(qa): advertise native Codex mock model capabilities
* fix(qa): seed native Codex mock model catalog at startup
* fix(qa): recognize native Codex patch denial results
* fix(ci): repair Codex harness parity checks
* fix(qa): distinguish unknown prompt-cache measurements
* fix(qa): accept native Codex project patch denials
* fix(ci): isolate runtime parity report contracts
* fix(codex): eliminate native runtime transport overhead
* fix(qa): consume runtime parity report contract
* fix(qa): compare matched runtime timing captures
* fix(qa): type native response delta context
* fix(qa): satisfy native codex websocket lint
2026-07-27 19:24:52 -04:00
Peter Steinberger
69e8d406f0
fix: CJK tool results stay within context budgets ( #114755 )
...
* fix(agents): make tool-result budgets CJK-aware
Use one weighted, UTF-16-safe budget across live truncation, aggregate recovery, persisted sessions, and the mid-turn context guard. Preserve ASCII behavior, bound mixed blocks, and add a real Gateway QA scenario.\n\nFixes #103847 .
* fix(agents): satisfy tool-budget lint
* test(qa): require exact CJK scenario reply
* test(auto-reply): preload reply runtimes without a synthetic turn
2026-07-27 18:35:57 -04:00
Peter Steinberger
e5e77b656a
fix: keep dynamic model switching and agent catalogs reliable ( #114760 )
...
* fix: keep dynamic model switching and agent catalogs reliable
* test: use schema-valid dynamic model regression fixtures
* test: align utility completion with configured model fallback
2026-07-27 18:30:40 -04:00
Peter Steinberger
960b050add
refactor(extensions): remove orphaned shadow trial and retired config aliases ( #114709 )
...
* refactor(memory-core): remove orphaned shadow trials
* refactor(qqbot): migrate direct voice upload formats
Release note: QQBot configs using voiceDirectUploadFormats now migrate through openclaw doctor --fix to audioFormatPolicy.uploadDirectFormats at root and account scope. Existing nested uploadDirectFormats values win conflicts, and runtime reads only the nested policy.
* refactor(feishu): migrate tools base alias
Release note: Feishu configs using tools.base now migrate through openclaw doctor --fix to tools.bitable at root and account scope. Existing bitable values win conflicts, and runtime accepts only the canonical key.
* refactor(extensions): remove dead runtime state
* chore(config): refresh bundled channel metadata
* refactor(codex): keep realtime fallback type private
* test(ci): align QA compatibility scenario count
2026-07-27 17:12:41 -04:00
Peter Steinberger
f0371e8d88
fix: stop blocked tool loops stalling until timeout ( #114673 )
...
* fix(agents): make global loop breaker reachable
Record loop-detector vetoes as typed no-progress outcomes so repeated blocked calls continue the existing streak without colliding with plugin or approval denials. Extract streak accounting into its own owner module and keep completed veto records out of argument reconciliation.\n\nFixes #109435 .
* test: harden isolated project routing
Route registry-sensitive UI tests through the isolated project for both focused and broad runs, centralize the isolated file list, and register the Codex prewarm test in the full extension shard.
* test(qa): prove global loop breaker runtime
Drive 31 identical read attempts through the real QA Gateway agent loop and verify the typed veto streak reaches the global circuit breaker before the turn returns a final marker.
* test: keep isolated UI files out of shared runs
Always exclude registry-sensitive files from the shared UI project and reject broad watch targets that would span shared and isolated projects.
2026-07-27 16:02:28 -04:00
Peter Steinberger
c8ebf57731
feat(agents): advertise searchable tool capabilities ( #114508 )
2026-07-27 06:33:21 -04:00
Peter Steinberger
dda4883a4c
fix(auto-reply): prevent duplicate rewritten-command replies ( #114379 )
...
* fix(auto-reply): dedupe settled block finals
* chore: leave release note to release flow
2026-07-27 02:49:23 -04:00
Dallin Romney
c1c231ced9
fix(qa): reject runtime tool intent without result evidence ( #113502 )
...
* fix(qa): require runtime tool result evidence
* fix(qa): preserve meaningful tool coverage gates
* refactor(qa): colocate runtime parity projection
* fix(qa): keep passing tool totals evidence-backed
2026-07-27 11:00:59 +08:00
Peter Steinberger
fe847911c0
test(qa): wait for durable fanout completion ( #114080 )
2026-07-26 05:26:33 -04:00
Peter Steinberger
8684e7ce03
fix: restore beta runtime release gates ( #114064 )
...
* test(qa): fix release runtime recovery gates
* test(qa): typecheck restart execution assertions
2026-07-26 03:58:41 -04:00
PollyBot13
ad7f927e40
fix: show provider 503 failures in group and channel chats ( #113656 )
...
* fix(auto-reply): surface provider HTTP 503 failures
* fix(auto-reply): preserve safe 503 retry
* test(qa): validate all 503 channel replies
---------
Co-authored-by: Altay <altay@hey.com >
2026-07-25 22:59:29 +03:00
Peter Steinberger
fdb511f5a1
fix(ci): repair beta performance and mention gates ( #113795 )
2026-07-25 11:56:00 -07:00
Peter Steinberger
7f70fb3521
test(qa): restore session turn ordering coverage ( #113653 )
...
Co-authored-by: Peter Steinberger <steipete@golden-gate.local >
2026-07-25 05:39:03 -07:00
Peter Steinberger
c8e6adc929
fix(qa): run documented channel message flows on supported drivers ( #113642 )
...
Co-authored-by: Peter Steinberger <steipete@golden-gate.local >
2026-07-25 05:09:13 -07:00
Peter Steinberger
3890a5efb6
fix(qa): restore current scenario source and documentation references ( #113639 )
...
Co-authored-by: Peter Steinberger <steipete@golden-gate.local >
2026-07-25 05:04:05 -07:00
Peter Steinberger
f43fac21c7
fix(gateway): stop showing retired HEARTBEAT.md in the agent files editor ( #113621 )
...
* fix(gateway): drop retired HEARTBEAT.md from agent core files
* fix(ci): stop asserting retired HEARTBEAT.md in docker release smoke
* docs: align HEARTBEAT.md references with cron scratch
* docs(agents): drop retired HEARTBEAT.md from workspace read comment
2026-07-25 04:58:31 -07:00
Dallin Romney
13039109a3
fix(qa): retarget generic channel coverage evidence ( #113486 )
2026-07-25 17:51:52 +08:00
Dallin Romney
078a08c820
fix(qa): correct Slack and Discord coverage attribution ( #113468 )
2026-07-25 11:22:19 +08:00
Vincent Koc
4e83914748
fix(qa): track sessions_spawn parity coverage gap
2026-07-25 06:06:25 +08:00
Peter Steinberger
5bea268128
feat(anthropic): complete Claude Opus 5 rollout ( #113392 )
...
* feat(models): add Claude Opus 5 support
* test(models): align Opus 5 setup fixtures
* test(models): update ambient Opus 5 detection
* fix(models): reconcile Opus 5 support with main
2026-07-24 14:55:36 -07:00
Peter Steinberger
7d5fb6f242
test(release): align extension prerelease contracts ( #113381 )
2026-07-25 02:30:35 +08:00
Dallin Romney
9d2d5d111c
test(qa): align Matrix scenario coverage ( #112837 )
2026-07-24 15:05:42 +08:00
Dallin Romney
b48bcde17f
test(qa): retarget WhatsApp access coverage ( #112834 )
2026-07-24 15:04:28 +08:00
joshavant
8287e21445
fix(cron): enforce caps across CLI backends
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
acd92f6a3d
chore(deps): refresh repository dependencies ( #112453 )
...
* build(deps): update QA broker dependency
* build(deps): refresh repository dependencies
* build(deps): reconcile rebased shrinkwraps
* test(plugins): remove stale loader test state
* test(deps): stabilize updated dependency coverage
* fix(swift): use caller-isolated TaskLocal overload
* build(deps): regenerate rebased shrinkwraps
* test(msteams): preserve DNS validation in fetch helper
* fix(deps): avoid vulnerable optional image stack
* test(deps): validate generated LRU override
* refactor(ui): extract chat resizable divider
* test(ui): update divider ownership path
* fix(matrix): retain restart-compatible SDK
* style(cron): format update test
2026-07-23 16:17:13 +00:00
Peter Steinberger
525a7f4c96
ci(release): restore full validation after config migrations ( #112740 )
...
* fix(browser): preserve scoped CDP authority policy
* test(release): migrate canonical config fixtures
* ci(release): repair acceptance harness drift
* ci(release): extend Anthropic setup budget
* test(release): align remaining CI contracts
* test(release): align Docker and QA contract tests
* docs(release): preserve validation evidence inputs
* test(plugins): align unprepared metadata reads
* ci(release): separate QA live suite filters
* test(release): bind cron MCP cleanup device
2026-07-23 08:46:55 -04:00
Dallin Romney
19d17bc3c4
refactor(qa): canonicalize runtime-pair lanes ( #112603 )
2026-07-23 10:06:12 +09:00
Dallin Romney
eccf02f04a
fix(qa): apply Matrix thread override in flow setup ( #112815 )
2026-07-23 09:47:27 +09:00
joshavant
c004cac6df
fix(cron): finalize settled announce turns
2026-07-22 06:04:27 -05:00