Allow the documented Control UI Appearance tweakcn theme import to fetch https://tweakcn.com/r/themes/{id} through the served CSP without broadening browser egress beyond the exact tweakcn origin.
This preserves the existing OpenAI realtime origin, adds focused CSP/header regression coverage, and keeps the custom-theme importer/storage behavior unchanged.
Fixes#78504.
Raise default/effective Custom Provider contextWindow above the compaction
reserveTokensFloor default so new onboard flows do not infinite-compact.
Co-authored-by: Cursor <cursoragent@cursor.com>
Fix Control UI post-first-message session switching stalls by scoping chat-specific sessions.list refreshes to the active agent, avoiding disk-only store discovery for configured-only gateway lists, and adding sessions.list diagnostics spans.\n\nVerification:\n- pnpm test ui/src/ui/controllers/sessions.test.ts ui/src/ui/app-render.helpers.node.test.ts ui/src/ui/app-chat.test.ts ui/src/ui/app-gateway.sessions.node.test.ts src/gateway/server.sessions.store-rpc.test.ts src/gateway/server.sessions.list-changed.test.ts src/gateway/session-utils.subagent.test.ts\n- pnpm check:changed\n- pnpm protocol:check\n- pnpm lint:ui:no-raw-window-open\n- Browser QA against Control UI dev server\n\nFixes #79675.
Show input-wait hints in process log/poll for idle interactive background sessions, keep list markers and structured stdin metadata, and document the recovery flow through log plus existing input actions.
Docs: updated docs/gateway/background-process.md.
Verification:
- pnpm test src/agents/bash-tools.test.ts
- pnpm test src/agents/bash-tools.process.input-hints.test.ts
- pnpm test src/agents/bash-tools.process.input-hints.test.ts src/agents/bash-tools.process.poll-timeout.test.ts src/agents/bash-tools.process.supervisor.test.ts src/agents/bash-tools.process-send-keys.test.ts
- pnpm check:docs
- git diff --check
- CI on 4aea1f11fe: check, check-additional, check-docs, checks-node-core, process/security relevant shards, real behavior proof passed
Fixes#33957.
Thanks @bitloi and @vincentkoc.
Co-authored-by: bitloi <89318445+bitloi@users.noreply.github.com>
Co-authored-by: bitloi <raphaelaloi.eth@gmail.com>
Closes#80087.
When a plugin was previously installed from ~/.openclaw/extensions/<id>/ but
that directory was later removed (replaced by an npm-managed install), the
persisted plugin registry JSON still carried the old "requires compiled runtime
output" WARN diagnostic whose `source` field pointed at the deleted path. On
subsequent `openclaw doctor` runs, the persisted snapshot passed all existing
staleness checks (the npm-loaded plugin was valid), so the stale diagnostic was
re-emitted verbatim — referencing a directory that no longer existed.
Add `hasStalePersistedPluginDiagnostics`: if any diagnostic in the persisted
index has an absolute-path `source` that does not exist on disk, treat the
persisted snapshot as stale and fall back to a freshly derived index (which
will not reproduce the phantom warning). Includes a regression test that
constructs a persisted index carrying a ghost-path diagnostic, verifies the
derived path is taken, and confirms the stale diagnostic is absent from the
fresh snapshot.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>