Commit Graph

10422 Commits

Author SHA1 Message Date
Peter Steinberger
9074f08fc3 test: tighten channel assertion checks 2026-05-11 15:15:12 +01:00
Shakker
fd7448299f test: pin browser state errors 2026-05-11 15:07:16 +01:00
Shakker
8ee4290e06 test: pin Zalo lifecycle logs 2026-05-11 15:04:34 +01:00
YB0y
3b8cfc3657 fix(memory-core): cap MEMORY.md size during dreaming promotions to prevent unbounded growth (#73691)
Dreaming's deep-phase promotion path appends to ~/.openclaw/workspace-<agent>/MEMORY.md
without a durable size budget. After weeks of use, the file grows past the bootstrap
injection cap (~12KB/file), at which point bootstrap silently truncates promoted memory
and (per the issue body) session writes can hit lock timeouts that wedge the gateway.

Adds a bounded compaction step in applyShortTermPromotions: before each write, drop the
OLDEST auto-promoted sections (date-ordered) until existing + new section fits within
memoryFileMaxChars (default 10,000 chars, safely below the 12KB bootstrap cap).
User-authored content is preserved unconditionally; only dreaming-owned sections are
eligible for compaction.

Verified:
- pnpm install --frozen-lockfile
- pnpm test extensions/memory-core/src/memory-budget.test.ts extensions/memory-core/src/short-term-promotion.test.ts
- pnpm exec oxfmt --check --threads=1 extensions/memory-core/src/memory-budget.ts extensions/memory-core/src/memory-budget.test.ts extensions/memory-core/src/short-term-promotion.ts extensions/memory-core/src/short-term-promotion.test.ts CHANGELOG.md
- pnpm check:changed
- pnpm tsgo:core
- pnpm tsgo:extensions
- pnpm tsgo:test:src
- git diff --check
- live driver: real applyShortTermPromotions across 5 sweeps with oversized seeded MEMORY.md — file stayed bounded, oldest sections compacted, user content preserved

Closes #73691
2026-05-11 15:04:30 +01:00
Peter Steinberger
bfcd816953 test: tighten provider live assertions 2026-05-11 14:52:12 +01:00
Peter Steinberger
ed6d72efcf test: tighten browser mcp assertions 2026-05-11 14:50:16 +01:00
Peter Steinberger
5dbeacabc9 test: tighten browser route assertions 2026-05-11 14:47:22 +01:00
Peter Steinberger
248207dace test: tighten browser server assertions 2026-05-11 14:45:43 +01:00
Peter Steinberger
09fcd19814 test: tighten codex event assertions 2026-05-11 14:42:25 +01:00
Peter Steinberger
c20d45e346 test: tighten codex binding assertions 2026-05-11 14:40:27 +01:00
Peter Steinberger
ebf0d6bc8e test: tighten qa lab live assertions 2026-05-11 14:38:49 +01:00
Peter Steinberger
1320e0ec80 test: tighten qa lab web assertions 2026-05-11 14:36:53 +01:00
Peter Steinberger
1f1a1412ff test: tighten qa lab config assertions 2026-05-11 14:34:40 +01:00
Shakker
6f3fd2410c test: pin browser fallback calls 2026-05-11 14:32:39 +01:00
Peter Steinberger
c8c1f46da1 test: tighten qa lab runtime assertions 2026-05-11 14:30:10 +01:00
Shakker
563bbd3df4 test: pin Telegram dispatch drafts 2026-05-11 14:28:38 +01:00
Peter Steinberger
d2f578cbb4 fix: retire timed-out codex app-server clients 2026-05-11 14:26:56 +01:00
Peter Steinberger
fecf18d277 test: tighten qa matrix assertions 2026-05-11 14:26:48 +01:00
Shakker
610b695a12 test: pin Telegram draft stream checks 2026-05-11 14:26:31 +01:00
Peter Steinberger
ac7e1c36eb fix(whatsapp): retry opening-phase 428 closes
Co-authored-by: dataCenter430 <titan032000@gmail.com>
2026-05-11 14:25:55 +01:00
Shakker
19c66ad3fe test: pin Codex run attempt assertions 2026-05-11 14:24:01 +01:00
VACInc
6a741102d1 test(codex): keep native tool observability fixture generic 2026-05-11 14:23:46 +01:00
VACInc
a28bf10ce2 fix(codex): observe native tool completions 2026-05-11 14:23:46 +01:00
Peter Steinberger
5b6f4d6bb6 test: tighten acpx memory assertions 2026-05-11 14:23:32 +01:00
Peter Steinberger
ac8a193cbe test: tighten memory wiki assertions 2026-05-11 14:21:08 +01:00
Shakker
ead6179718 test: pin Codex side question calls 2026-05-11 14:20:02 +01:00
statxc
5eda2a2bc6 fix(qqbot): align #69546 fix with merged main 2026-05-11 14:19:34 +01:00
statxc
278ffbdb53 fix(qqbot): type active config provider 2026-05-11 14:19:34 +01:00
statxc
d69b663021 fix(qqbot): re-evaluate routing bindings per inbound message
QQBot's gateway captured `ctx.cfg` once at startup and reused that
reference for every inbound, so peer-specific bindings added via the
CLI were ignored until the gateway restarted (the routing resolver
caches evaluated bindings keyed by the cfg object reference).

Add a small `ActiveCfgProvider` that reads `getRuntimeConfig()` from
the plugin SDK on every event and falls back to the startup snapshot
when the runtime registry is not populated, mirroring Telegram's
per-event lookup pattern. Wire it into `handleMessage` so both the
inbound pipeline and outbound dispatch run against the live config.

Fixes #69546.
2026-05-11 14:19:34 +01:00
Peter Steinberger
8d2dd8cf2e test: tighten openai extension assertions 2026-05-11 14:19:09 +01:00
Peter Steinberger
242e2474a6 test: tighten telegram extension assertions 2026-05-11 14:16:48 +01:00
Peter Steinberger
6781957a99 test: tighten channel extension assertions 2026-05-11 14:13:46 +01:00
Peter Steinberger
493f363857 test: tighten slack monitor assertions 2026-05-11 14:11:39 +01:00
Peter Steinberger
8975ac83f4 test: tighten slack extension assertions 2026-05-11 14:09:30 +01:00
Peter Steinberger
68cec724b1 test: tighten signal extension assertions 2026-05-11 14:04:55 +01:00
Peter Steinberger
58087ef3d6 test: tighten extension auth assertions 2026-05-11 14:02:35 +01:00
Ayaan Zaidi
377d7a0b4c fix(telegram): simplify thinking defaults 2026-05-11 18:04:53 +05:30
VACInc
6562bac624 fix: show Telegram thinking defaults 2026-05-11 18:04:53 +05:30
Peter Steinberger
da7cc2b11c fix(feishu): make manual setup the default 2026-05-11 13:29:13 +01:00
Peter Steinberger
0362b75824 feat(discord): add voice channel allowlist 2026-05-11 13:21:47 +01:00
Lior Balmas
0f8fc6bb61 fix(runtime): detect Fly Machines as containers 2026-05-11 13:06:49 +01:00
Peter Steinberger
ee9522ef8d fix: keep browser status page probe within timeout 2026-05-11 12:51:07 +01:00
ai-hpc
b4a420185c fix(browser): add pageReady to Chrome MCP existing-session status
Closes #80268

For Chrome MCP existing-session profiles, browser status previously
exposed only transport-handshake fields (cdpHttp, cdpReady) sourced
from isTransportAvailable(...). It did not surface whether a
page-level tool round-trip (list_pages, etc.) actually succeeds, so
operators and downstream tooling had no honest signal to distinguish
"transport handshake passed" from "page tools are usable".

This adds a pageReady field to BrowserStatus, derived from
profileCtx.isReachable(...) for chrome-mcp profiles (with a status-
bound 5s timeout) and mirroring cdpReady for managed CDP profiles
where the WS handshake already covers page-level reachability.

The status route opts the page probe into ephemeral mode so a passive
status call does not seed a persistent cached Chrome MCP session as a
side effect. listChromeMcpTabs reuses an existing cached attach
session if one already exists, otherwise opens a temporary session
that is closed immediately after the round-trip. The cached-session
path used by /tabs and other interactive routes is unchanged.

isReachable now threads the new ephemeral option (alongside timeoutMs)
into listChromeMcpTabs; existing callers in tabs.ts pass only
timeoutMs and continue to use the cached path.

The page probe is skipped when transport itself is down so status
latency does not regress on offline profiles.

Test changes:
- basic.existing-session.test.ts: the prior assertion that running:
  true and cdpReady: true with isReachable: false is now flipped to
  assert pageReady: false in that state, matching the new contract.
- New tests cover: probe-throws (treated as page-down), both-succeed
  (pageReady: true), transport-down (probe skipped, pageReady: false),
  and an ephemeral-mode regression that asserts the status probe
  passes { ephemeral: true } so it cannot seed a cached session.
2026-05-11 12:51:07 +01:00
Peter Steinberger
6ee0c9a696 fix(codex): honor codex fallback blocking 2026-05-11 12:41:21 +01:00
Peter Steinberger
3f05165c47 fix(codex): preserve codex auth order 2026-05-11 12:41:21 +01:00
pashpashpash
30ed0329cb fix(codex): avoid mutating rate limit candidates 2026-05-11 12:41:21 +01:00
Peter Steinberger
10c43aefd8 fix(codex): ignore blocked account fallback state 2026-05-11 12:41:21 +01:00
Peter Steinberger
554d80c060 fix(codex): scope auth state updates 2026-05-11 12:41:21 +01:00
pashpashpash
edd7e3c70c test: fix current extension test assertions 2026-05-11 12:41:21 +01:00
Peter Steinberger
b2b381ac4d fix(codex): prefer live account credential state 2026-05-11 12:41:21 +01:00