Peter Steinberger
0fbddda540
improve(qa): replace terminal reply timing waits ( #118600 )
...
* test(qa): replace terminal reply timing waits
* test(qa): keep terminal contract in channel suite
* test(qa): scope terminal settlement per worker
* test(qa): bind settlement to child session
---------
Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local >
2026-08-03 02:37:59 -07:00
Peter Steinberger
ecc49b5a87
refactor(tts): absorb speech core package ( #118513 )
...
* refactor(tts): absorb speech core package
* fix(tts): preserve runtime SDK exports
* refactor(tts): remove private package exports
* test(tts): align canonical runtime mocks
* test(tts): complete canonical settings mocks
* chore(plugin-sdk): regenerate API baseline for #118513
2026-08-03 02:25:48 -07:00
Vincent Koc
d2046614f9
fix(qa): restore Telegram release validation ( #118542 )
2026-08-03 17:22:29 +08:00
joshavant
2781abf960
fix(agents): preserve timeout completion evidence
2026-08-03 01:41:38 -05:00
joshavant
cd8985c2fc
test(qa): prove terminal reply channel behavior
2026-08-03 01:41:38 -05:00
Dallin Romney
d985d771d9
docs: refresh maturity scorecard from full QA evidence ( #118074 )
...
* docs: refresh maturity scorecard
* docs: remove incomplete evidence notice
2026-08-03 12:43:12 +08:00
Peter Steinberger
1fedcca9a9
fix(agents): finish settled failed-tool turns instead of dropping replies ( #118344 )
2026-08-02 19:40:41 -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
7c70571683
chore(lint): clear 172 lint:all baseline violations in five batches ( #118098 )
...
* chore(lint): clean Android-Linux app assets batch
* chore(lint): clean setup-launcher-plugin batch
* chore(lint): clean changelog-updater batch
* chore(lint): clean QA-runtime-helper batch
* chore(lint): clean script-tests batch
* fix(mxc): await sandbox spawn before bridge selection
* fix(test): make fake plutil metacharacter escaping survive the template hop
2026-08-02 14:08:09 -07:00
Vincent Koc
8206bf1f85
Merge pull request #117971 from openclaw/test/qa-live-voice-talkback-20260802
...
test(qa): validate live inbound voice talkback
2026-08-02 20:05:44 +08:00
Vincent Koc
54cb02151f
test(qa): enforce live voice model
2026-08-02 19:54:38 +08:00
Vincent Koc
f5712a930b
test(qa): use supported OpenAI voice model
2026-08-02 19:50:32 +08:00
Vincent Koc
12d0d84262
test(qa): ignore deleted voice previews
2026-08-02 19:47:42 +08:00
Vincent Koc
cab7daa9c7
fix(qa): share bundled voice preflight fixture
2026-08-02 19:33:28 +08:00
Vincent Koc
5f62c18e62
test(qa): pin proven voice talkback model
2026-08-02 19:10:22 +08:00
Vincent Koc
882a847670
test(qa): cover live voice talkback flow
2026-08-02 18:31:25 +08:00
Dallin Romney
edf434b1a3
fix(qa): exercise blocked Slack lifecycle on selected account ( #117805 )
...
* fix(qa): exercise blocked Slack lifecycle on selected account
* test(qa): split Slack lifecycle catalog coverage
* qa(slack): wait for blocked lifecycle observation
2026-08-02 18:22:44 +08:00
Dallin Romney
45b74bf312
fix(qa): validate memory fallback semantics ( #117815 )
...
* fix(qa): validate memory fallback semantics
* test(qa): tie memory fallback boundary to subject
* test(qa): reject affirmative memory access claims
* test(qa): require responder-relative memory boundaries
* test(qa): scope memory boundaries to responder
* test(qa): keep memory boundary clauses local
* test(qa): assert memory fallback owner facts
* test(qa): bind memory fallback proof session
2026-08-02 18:21:46 +08:00
Vincent Koc
1fca219c3c
test(qa): add live inbound voice talkback scenario
2026-08-02 18:19:11 +08:00
Harjoth Khara
18f31f6d22
fix(media-understanding): resolve inbound media:// refs carried as attachment url ( #117268 )
...
* fix(media-understanding): resolve inbound media:// refs carried as attachment url
* fix(media-understanding): resolve stored inbound URL aliases
Co-authored-by: harjoth <harjoth.khara@gmail.com >
* test(qa): classify stored inbound media proof
* test(qa): require exact inbound media completion
* fix(media-understanding): preserve local media refs
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-02 03:01:30 -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
Peter Steinberger
28e681c92f
fix(channels): preserve workspace media access in gateway sends ( #117711 )
2026-08-01 18:09:17 -07:00
Vincent Koc
cd7804c105
test(qa): expose realtime Talk live smoke evidence
2026-08-02 02:50:23 +08:00
Vincent Koc
263741b1f0
fix(ci): align release validation fixtures ( #117494 )
...
* fix(release): align beta 6 e2e fixtures
* fix(doctor): preserve missing state startup signal
* test(release): align beta e2e contracts
* test(agents): use canonical empty auth store
* test(agents): isolate prompt cooldown scheduling
* test(release): align main validation fixtures
* test(release): accept Code Mode plugin tool evidence
* fix(test): repair release validation checks
* test(cron): assert structured session targets
2026-08-02 00:39:36 +08:00
Peter Steinberger
e9e4023e59
fix(cron): deliver spawned child results when scheduled agents emit no text ( #117308 )
...
* fix(cron): deliver spawned child results when parents emit no text
* test(cron): cover spawn-only scheduled child delivery end to end
2026-08-01 04:16:10 -07:00
Peter Steinberger
aa2a5c96f6
feat(channels): record account lifecycle facts and retire inferred health vocabularies ( #117300 )
...
* fix(channels): record account lifecycle facts
* fix(channels): bound recorded lifecycle grace
* fix(channels): preserve authored health state
* test: dedupe health snapshot type literal and fix spread order
2026-08-01 02:51:47 -07:00
Peter Steinberger
b721cffa44
fix(inference): simplify lifecycle and preserve Codex tool identity ( #117298 )
2026-08-01 02:05:45 -07:00
Ahmed Tarek
730cf56915
fix(msteams): prevent duplicate final replies ( #116398 )
...
* fix(msteams): preserve message-tool thread routing
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
* test(msteams): prove thread-aware final dedupe
* fix(agents): suppress duplicate source previews
* fix(agents): dedupe current-source reply previews
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-08-01 15:32:56 +08:00
Dallin Romney
947886e764
fix(qa): align release harness contracts ( #116812 )
2026-08-01 13:24:10 +08:00
Dallin Romney
f58570cb8c
fix(qa): stabilize Slack progress and table proofs ( #116847 )
...
* fix(qa): stabilize Slack progress and table proofs
* fix(qa): type Slack invalid-blocks instrumentation
2026-08-01 12:55:39 +08:00
Dallin Romney
bf32414a4a
fix(qa): keep memory context proof on the QA channel ( #116849 )
...
* fix(qa): correct memory and Codex watchdog contracts
* test(qa): keep channel assertion in channel catalog
2026-08-01 12:53:00 +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
Dallin Romney
f9d2f0dc86
fix(qa): restore WebChat auto-TTS proof ( #116810 )
2026-08-01 12:28:43 +08:00
Dallin Romney
e3b069270c
fix(qa): use public subagent fanout evidence ( #116832 )
2026-08-01 11:56:28 +08:00
Harjoth Khara
102c2e1a64
fix(slack): recover MPIM thread context from outbound replies ( #116660 )
...
Co-authored-by: scoootscooob <167050519+scoootscooob@users.noreply.github.com >
2026-07-31 23:12:56 +08:00
Peter Steinberger
1a0fde18d6
fix(commands): validate native settings and preserve Telegram ingress outcomes ( #116773 )
...
* fix(commands): validate native directives and preserve Telegram outcomes
* test(commands): isolate native directive fast runtime
---------
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 04:36:54 -07:00
Peter Steinberger
1f578f0e65
fix(telegram): validate native queue arguments before fallback ( #116726 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 02:45:15 -07:00
Vincent Koc
37b1a71654
fix(release): unblock beta validation workflows ( #116708 )
...
* fix(release): repair beta validation workflow state
* fix(qa): dispatch yielded fanout runs without task tracking
* fix(test): honor GPT-Live shard opt-in
2026-07-31 15:47:11 +08:00
Yuval Dinodia
589a914328
fix(session): preserve reset message payloads ( #116195 )
...
* fix(session): preserve reset message payloads
Use the raw command body when it directly matches a reset trigger so code, logs, bracketed text, and line breaks reach the new session intact. Keep structural normalization only for prefixed messages that require it to match.
* fix(session): anchor reset payloads to original input
* fix(session): anchor reset parsing to inbound projections
* fix(session): keep reset result type internal
* test(qa): prove reset payload preservation
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-07-31 15:34:23 +08:00
Dallin Romney
397fe272a0
fix(qa): stop waiting on yielded fanout runs ( #116440 )
...
* fix(qa): observe resumed fanout completions
* test(qa): keep runtime watchdog assertions in runtime suite
2026-07-31 14:36:59 +08:00
Dallin Romney
5c061507d3
fix(qa): align Slack progress scenarios with fresh finals ( #116445 )
...
* fix(qa): verify Slack progress drafts against fresh finals
* fix(qa): narrow Slack progress message identity
2026-07-31 14:22:24 +08:00
Patrick Erichsen
61cf4b9246
test(buzz): add live QA Lab channel lane ( #116298 )
...
* feat(buzz): add live QA runner
* ci(qa): add gated Buzz live lane
* docs(qa): document Buzz live testing
* fix(buzz): keep QA relay type private
* test(buzz): type QA suite mock
* fix(buzz): preserve racing QA reply relations
* fix(qa): harden Buzz credential redaction
* fix(buzz): ignore retained QA relay events
* fix(buzz): clean up observer setup failures
* test(buzz): return complete racing messages
* fix(buzz): default QA credentials to file
* fix(qa): validate pooled Buzz secrets
* fix(qa): redact structured Buzz auth tags
* fix(buzz): preserve QA credential env override
* fix(qa): redact inspected Buzz auth tags
* test(buzz): limit live QA to supported scenarios
* ci(qa): run Buzz lane in release checks
* fix(qa): require secure remote Buzz relays
* fix(qa): satisfy Buzz QA validation gates
* fix(qa): inject credential leasing into transport adapters
2026-07-30 17:44:27 -07:00
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