Commit Graph

18452 Commits

Author SHA1 Message Date
Peter Steinberger 5d853c6fce test(policy): centralize doctor fixtures (#118392) 2026-08-02 20:04:24 -07:00
Peter Steinberger 11795bdc7c refactor(openai): unify GPT-Live delegation control (#118391) 2026-08-02 20:03:33 -07:00
Peter Steinberger 97034f3d95 fix(telegram): recover directed turns after empty model replies (#118305)
* fix(telegram): recover empty directed replies

* test: fix empty-reply assertions

* test: restore result assertions

---------

Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local>
2026-08-02 19:53:43 -07:00
Peter Steinberger b1c9f022ec fix(memory-wiki): protect recall boundaries and damaged notes (#118375) 2026-08-02 19:48:02 -07:00
Peter Steinberger d01f03b91c fix(discord): preserve accepted partial reply receipts (#118354)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-02 19:44:15 -07:00
Peter Steinberger 628672aaa1 test(buzz): consolidate lifecycle fixtures (#118316) 2026-08-02 19:42:22 -07: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 b36e9af00a fix(openai): reject malformed video download bodies (#117227)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-02 19:39:46 -07:00
Peter Steinberger 443821f49b test(opencode-go): consolidate stream termination harness (#118317) 2026-08-02 19:34:57 -07:00
Peter Steinberger 345343fb70 test(discord): consolidate activity HTTP fixtures (#118314) 2026-08-02 19:13:51 -07:00
Vincent Koc f5637c0685 fix(qa): restore prerelease validation (#118255)
* test(whatsapp): return accepted monitor send results

* fix(qa): recognize Code Mode write results
2026-08-03 10:09:19 +08:00
Peter Steinberger f0d8cd3603 test(telegram): deduplicate dispatch fixtures (#118319) 2026-08-02 19:05:18 -07:00
Peter Steinberger ffe2268eec test(xai): consolidate realtime voice fixtures (#118318) 2026-08-02 19:04:38 -07:00
Vincent Koc d93d07ac02 fix(telegram): prevent durable ingress lane spins (#118357)
* fix(channels): prevent ingress lane reconciliation spins

* fix(ui): restore composer lint budget
2026-08-03 09:58:19 +08:00
Peter Steinberger cbd4b8dec8 fix(memory): keep wiki search inside protected recall visibility (#118265)
* fix(memory): unify wiki session authorization

* build: expose memory core boundary declarations
2026-08-02 18:22:17 -07:00
Peter Steinberger c965909a30 perf(channels): defer partial text sanitization (#118349) 2026-08-02 18:19:21 -07:00
Masato Hoshino d73dd930af fix(sms): reject a zero SMS_TEXT_CHUNK_LIMIT instead of sending one text per character (#118158)
SMS_TEXT_CHUNK_LIMIT is the documented environment fallback for
channels.sms.textChunkLimit. parseTextChunkLimit validates that field on two
paths and only guards one: the numeric branch requires raw > 0, while the string
branch the environment fallback uses ended in
parseStrictInteger(raw.trim()) ?? DEFAULT_TEXT_CHUNK_LIMIT, and 0 ?? 1500 is 0.
SmsChannelConfigSchema already declares z.number().int().positive() for the
config key, so the invariant existed and only the env path skipped it.

The unvalidated limit reaches the plugin's own chunkSmsPlainText, which returns
one chunk per character, and the send loop issues one Twilio request per chunk.
Measured on the real outbound path, a 9,528-character reply produced 7,550
single-character send requests. resolveSmsTextChunkLimit hides this from core
with account.textChunkLimit || fallbackLimit || 1500 while the plugin keeps the
raw 0.

Parse that branch with parseStrictPositiveInteger. Negative, fractional and
non-numeric values were already rejected by the surrounding regex and still fall
back to the default; 0 is the only input whose behavior changes.
2026-08-02 18:09:22 -07:00
Peter Steinberger 4c66ed5615 feat(channels): lifecycle wave 2 — fifteen more channels publish recorded lifecycle (#118298)
* feat(channels): publish lifecycle from existing status sinks

* feat(channels): thread lifecycle through provider monitors

* fix(mattermost): keep lifecycle status helper private

* fix(matrix): preserve terminal lifecycle during startup cleanup

* fix(matrix): reject invalid tokens during startup

* test(mattermost): drop unused vi import
2026-08-02 17:30:56 -07:00
Peter Steinberger ae4a95faad fix(voice-call): stop superseded realtime consult work (#118301)
* fix(voice-call): abort superseded realtime consults

* test(voice-call): use error abort rejections

* chore: defer voice-call release note

---------

Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local>
2026-08-02 17:19:01 -07:00
Peter Steinberger 7764cc544c test(tlon): dedupe upload hardening fixtures (#118320) 2026-08-02 17:18:54 -07:00
Peter Steinberger c5ef79f986 refactor(zoom-meetings): consolidate runtime fixtures (#118300) 2026-08-02 17:13:56 -07:00
Peter Steinberger cac802f474 test(xai): deduplicate search fixtures (#118263) 2026-08-02 17:13:02 -07:00
Peter Steinberger ff9955f01b refactor(imessage): consolidate approval test fixtures (#118306)
* test(imessage): consolidate approval fixtures

* test(imessage): avoid shadowing fixture factory

* test(imessage): preserve data-driven case titles
2026-08-02 17:10:56 -07:00
Peter Steinberger b521e0a6dc fix(llama-cpp): stop hijacking explicitly configured HTTP provider routes (#118293)
* fix(llama-cpp): preserve configured HTTP routes

* chore: drop release-owned CHANGELOG edit from PR branch
2026-08-02 17:06:58 -07:00
Peter Steinberger 2a635f21df refactor(imessage): consolidate status test fixtures (#118249) 2026-08-02 17:06:51 -07:00
Peter Steinberger c6ef95604e refactor(ollama): deduplicate memory embedding test fixtures (#118267) 2026-08-02 17:05:37 -07:00
Peter Steinberger e9d88696b5 feat(cron): add webhook SSRF policy (#118237) (#118286) 2026-08-02 17:02:20 -07:00
Peter Steinberger b7f9cd0a01 test(reef): consolidate transport protocol fixtures (#118281) 2026-08-02 16:39:26 -07:00
Peter Steinberger 3c4dbea2ed test(minimax): consolidate OAuth fixtures (#118276) 2026-08-02 16:37:01 -07:00
Peter Steinberger b93fc7e8f6 test(browser): consolidate navigation security fixtures (#118240) 2026-08-02 16:32:33 -07:00
Ayaan Zaidi 5aae66f4e3 fix(telegram): preserve pre-tool text during CLI tool calls
Preserve Claude CLI commentary outside Telegram’s disposable progress stream so tool-summary collapse cannot erase user-visible pre-tool text.

Validated with real-user Telegram E2E and focused regression coverage.
2026-08-03 08:21:56 +09:00
Peter Steinberger 6f01e514fe test(slack): consolidate outbound payload fixtures (#118246) 2026-08-02 16:21:32 -07:00
Peter Steinberger 15560382a2 test(msteams): consolidate Graph upload fixtures (#118268) 2026-08-02 16:15:17 -07:00
Peter Steinberger dd97722e3e test(feishu): consolidate monitor lifecycle fixtures (#118273) 2026-08-02 16:13:45 -07:00
Peter Steinberger c203baea97 test(browser): consolidate upload path fixtures (#118283) 2026-08-02 16:13:22 -07:00
Peter Steinberger ee82689ea4 fix(channels): recorded lifecycle facts outrank derived signals at the consumer boundary (#118251)
* fix(gateway): preserve terminal blocked lifecycle

* fix(discord): classify application id probe failures

* fix(gateway): preserve authored terminal health state
2026-08-02 16:11:03 -07:00
Peter Steinberger 9fa28928e5 refactor(browser): deduplicate profile hot-reload fixtures (#118220) 2026-08-02 16:10:26 -07:00
Peter Steinberger 2cc0a98519 refactor(codex): compact plugin inventory test fixtures (#118223) 2026-08-02 16:10:00 -07:00
Peter Steinberger 937d13193b test(browser): consolidate CDP fixtures (#118239) 2026-08-02 16:08:44 -07:00
Peter Steinberger f23a0c8fcf test(imessage): consolidate monitor fixtures (#118221) 2026-08-02 16:07:16 -07:00
Peter Steinberger 1882425bb2 refactor(mattermost): dedupe slash HTTP test fixtures (#118224) 2026-08-02 16:06:38 -07:00
Peter Steinberger 8e7a24adb8 refactor(feishu): consolidate chat tool fixtures (#118234) 2026-08-02 16:04:17 -07:00
Peter Steinberger 1786a011df refactor(feishu): consolidate doctor state fixtures (#118238) 2026-08-02 16:02:06 -07:00
Peter Steinberger 474c4e671e fix(telegram): preserve tables across legacy message delivery (#118257)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-02 15:32:46 -07:00
Peter Steinberger ae22ba5fbb fix(googlechat): consume stale approval card actions (#118225) 2026-08-02 15:25:15 -07:00
Vincent Koc 0a349a8ff4 Merge pull request #118204 from openclaw/fix-openai-realtime-transcript-bounds-20260802
* commit '15195713985f5b069f53bbb769a9dc621ed4c7e9':
  test(openai): isolate terminal history bounds
  test(openai): cover terminal history saturation
  fix(openai): preserve terminal history precedence
  test(openai): cover tombstone eviction ordering
  fix(openai): retain active predecessor satisfaction
  test(openai): cover rejected terminal failures
  fix(openai): preserve terminal error precedence
  test(openai): cover pre-commit terminal events
  fix(openai): tombstone pre-commit terminal events
  test(openai): pin first transcript terminal outcome
  fix(openai): ignore post-terminal transcript events
  test(openai): cover realtime transcription bounds
  fix(openai): bound realtime transcription state
2026-08-03 06:10:09 +08:00
Peter Steinberger 761c3e33be refactor(mattermost): deduplicate draft stream tests (#118215) 2026-08-02 15:01:34 -07:00
Vincent Koc 1519571398 test(openai): isolate terminal history bounds 2026-08-03 05:48:38 +08: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
Vincent Koc 6ea9489d08 test(openai): cover terminal history saturation 2026-08-03 05:35:22 +08:00