Commit Graph

604 Commits

Author SHA1 Message Date
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