Commit Graph

5192 Commits

Author SHA1 Message Date
Peter Steinberger
d3d9b5738f docs: clarify live plugin runtime reloads 2026-04-24 15:38:56 +01:00
Vincent Koc
0e7250f37b feat(diagnostics): emit model call events
Emit structured diagnostic events for embedded run and model-call lifecycle with trace context, duration, and safe error categories.
2026-04-24 02:17:07 -07:00
Peter Steinberger
e5f55dd024 docs: document Google realtime voice support 2026-04-24 10:14:55 +01:00
Peter Steinberger
56fe2aab9c fix: attach Google Meet realtime bridge 2026-04-24 09:41:33 +01:00
Peter Steinberger
b5e5f2cede feat(google): add realtime voice provider 2026-04-24 09:36:20 +01:00
EVA
c138368040 feat: add Codex harness extension seams
Co-authored-by: Eva <100yenadmin@users.noreply.github.com>
2026-04-24 09:32:27 +01:00
Peter Steinberger
d85dc46e37 perf: narrow telegram reply imports 2026-04-24 09:31:47 +01:00
Vincent Koc
cead2ea4b1 feat(diagnostics): emit tool execution events
Emit structured diagnostic events for tool execution lifecycle, with trace context, safe parameter summaries, and non-message error metadata.
2026-04-24 01:16:13 -07:00
Peter Steinberger
38caa6832d test: stagger docker aggregate starts 2026-04-24 08:38:41 +01:00
Peter Steinberger
a437666a37 fix(browser): reject existing-session type timeouts 2026-04-24 08:29:25 +01:00
Peter Steinberger
aa21d4ea7e fix(browser): clarify existing-session timeout limits 2026-04-24 08:27:12 +01:00
Vincent Koc
1e8dc2389e feat(plugins): record local onboarding installs
Record onboarding plugin install source metadata for npm and local paths, while keeping local path install records portable and preserving uninstall cleanup for relative source paths.
2026-04-24 00:27:09 -07:00
Vincent Koc
bcdacfa1b3 feat(diagnostics): carry trace context through hooks
Pass immutable diagnostic trace contexts through agent and tool hook surfaces, emit model usage with the run trace, and parent OTEL spans/logs from validated trace context without retained global state.\n\nThanks @vincentkoc.
2026-04-24 00:24:32 -07:00
pashpashpash
41c5ffc5d5 Project Codex hook notifications into agent events (#70969)
* project codex hook notifications

* keep codex hook duration strict

* include thread scoped codex hook notifications
2026-04-24 15:43:03 +09:00
Josh Lehman
925d11d890 fix: match codex verbose tool logs to pi (#70966) 2026-04-23 23:42:09 -07:00
Vincent Koc
48b9452c07 docs(faq): tighten FAQ stub pointers and Related cards 2026-04-23 23:37:56 -07:00
Vincent Koc
bc195b8f53 docs(help): rewrite help index to match new tab structure, drop redundant troubleshooting H1 2026-04-23 23:36:49 -07:00
Ayaan Zaidi
0baa8c1763 ci(release): add manual npm telegram beta e2e 2026-04-24 12:06:33 +05:30
Ayaan Zaidi
bd1b8448a5 test(release): support convex npm telegram credentials 2026-04-24 12:06:33 +05:30
Peter Steinberger
b7fba2100f docs: clarify private ws node setup 2026-04-24 07:32:29 +01:00
Vincent Koc
cb4fc58547 feat(plugins): move Bonjour discovery into bundled plugin
* fix(deps): detect constant dynamic imports in ownership audit

* feat(plugins): move bonjour discovery into bundled plugin

* test(plugins): remove moved bonjour core tests

* fix(plugins): harden bonjour disable and console restore

* fix(plugins): split gateway discovery ids from services

* fix(plugins): harden bonjour advertiser shutdown

* fix(plugins): clean up bonjour split lint
2026-04-23 23:29:51 -07:00
Vincent Koc
37c37eecfb feat(plugins): expose install source facts
* feat(plugins): expose install source facts

* fix(plugins): normalize install integrity facts

* fix(plugins): guard install source string fields

* fix(plugins): keep install source facts additive
2026-04-23 23:21:43 -07:00
Peter Steinberger
b588b5a230 fix(channels): accept setup aliases for add 2026-04-24 07:20:45 +01:00
Peter Steinberger
bcea5e75eb test: harden Docker E2E readiness 2026-04-24 07:10:56 +01:00
Peter Steinberger
6c509d8d4b docs: clarify codex plugin auto-enable boundary 2026-04-24 06:38:54 +01:00
Patrick Erichsen
aca92b2906 memory/dreaming: decouple managed cron from heartbeat (#70737)
* Revert "fix(memory/dreaming): surface blocked status when heartbeat is disabled for main (#69875)"

This reverts commit 529577e045.

Making way for the dreaming-vs-heartbeat decoupling from Josh's
josh/dreaming-isolated-cron-fix branch, which moves the managed dreaming
cron to isolated agent turns (sessionTarget: "isolated") so dreaming no
longer requires heartbeat to fire. Once the cron no longer rides the
heartbeat path, the blocked-reason observability has nothing left to
report — removing it cleanly here before the cherry-picks land.

* openclaw-3ba.1: move managed dreaming cron to isolated agent turns

* openclaw-46d: claim cron runs before embedded attempts

* openclaw-575: disable managed dreaming cron delivery

* openclaw-575: accept wrapped dreaming cron tokens

* openclaw-ccd: filter cron and wrapper transcript noise from dreaming corpus

* openclaw-cd9: filter archived, cron, and heartbeat transcript noise from dreaming corpus

* openclaw-cd9: suppress role-label reflection tags in rem dreaming

* openclaw-b49: stop narrative timeouts from blocking dreaming cron

* openclaw-b49: keep managed dreaming cron out of diary subagents

* openclaw-ff9: restore cron dream diary generation without serial waits

* openclaw-ff9: run dreaming narratives with lightweight isolated subagent lanes

* openclaw-ff9: detach cron dream diary generation from run completion

* openclaw-ff9: defer cron diary task startup until after cron completion

* doctor/cron: migrate stale managed dreaming jobs to isolated agent turns

After the dreaming cron moved off the heartbeat path to sessionTarget:
"isolated" + payload.kind: "agentTurn" (see the preceding memory-core
changes), users with existing ~/.openclaw/cron/jobs.json entries in the
old sessionTarget: "main" + payload.kind: "systemEvent" shape still
carry stale jobs until the gateway restart reconcile rewrites them.

Add a dreaming-specific cron migration to the existing
maybeRepairLegacyCronStore doctor path so "openclaw doctor" (and
"openclaw doctor --fix") rewrites those jobs without needing a gateway
restart. Match lives in a new doctor-cron-dreaming-payload-migration
helper alongside the existing legacy-delivery and store-migration files.

The matching uses the memory-core managed-job name and description tag
plus the short-term-promotion payload token. Constants are mirrored
from extensions/memory-core/src/dreaming.ts and commented so a future
rename in memory-core is a visible drift point here too.

* memory/dreaming: tighten cron-token match to known wrapper, not substring

The previous match relaxed the line check from 'trimmed line equals token'
to 'line contains token anywhere as a substring' to accept the
`[cron:<id>] <token>` wrapper that isolated-cron turns add. Substring
matching also let any user message embedding the token mid-sentence
trigger the dream-promotion hook, and was flagged by both Greptile and
Aisle on PR #70737.

Replace it with strip-the-known-prefix-then-exact-match: keep the
`[cron:<id>]` wrapper case working, reject every other variant. Add
focused unit coverage that the bare token, the wrapped token, and bare
multiline cases match while embedded / code-fenced / arbitrarily-wrapped
variants do not.

* memory/dreaming: drop assistant followup only on assistant-side signals

Per PR #70737 review (aisle-research-bot, Medium): the previous logic
suppressed the next assistant message whenever the prior user message
matched a 'generated prompt' pattern (`[cron:...]`,
`System (untrusted): ...`, heartbeat prompts, exec-completion events).
Real users can type those same patterns, which let a user exfiltrate
real assistant replies from the dreaming corpus by prefixing their own
prompt — the assistant's reply would be silently dropped.

Remove the cross-message coupling. Assistant-side machinery (silent
replies, system wrappers) is already dropped by sanitizeSessionText,
which is the right layer for that filter. Add an explicit assistant-side
HEARTBEAT_TOKEN check to keep the legitimate `HEARTBEAT_OK` ack drop
working without depending on the prior user message. Add a regression
test exercising the spoofing scenario.

* doctor/cron: assert mirrored dreaming constants stay in sync

Per PR #70737 review (greptile-apps): the doctor migration mirrors three
constants (MANAGED_DREAMING_CRON_NAME, MANAGED_DREAMING_CRON_TAG,
DREAMING_SYSTEM_EVENT_TEXT) from extensions/memory-core/src/dreaming.ts.
A future rename in either file would silently break the migration.

Add a vitest unit that reads both files and asserts the literals match.
Manually verified the assertion fires with a clear error when one side
diverges. Adds no runtime cost; sits in the regular test pipeline.

* fix(memory): stabilize dreaming CI checks

* memory/dreaming: skip eager narrative session cleanup when detached

Per PR #70737 review (chatgpt-codex-connector, P2): runDreamingSweepPhases
called deleteNarrativeSessionBestEffort synchronously right after each
phase. Once narrative generation moved to detached mode (queued via
queueMicrotask), the eager cleanup races the writer: the session is
deleted before the queued subagent run reads it, silently dropping cron
diary entries.

Skip the eager cleanup branch when params.detachNarratives is true.
generateAndAppendDreamNarrative still runs its own deleteSession in the
finally{} block, so the cleanup intent is preserved without the race.
Heartbeat-driven (non-detached) runs keep the original eager-cleanup
behavior.

* fix(plugin-sdk): restore heartbeat-summary re-export

Per PR #70737 review (chatgpt-codex-connector, P1): the revert of
PR #69875 dropped the `heartbeat-summary` re-export from
`openclaw/plugin-sdk/infra-runtime`. That subpath shipped publicly two
days earlier, so removing it is technically a breaking change to a
public SDK surface — third-party plugins importing
`isHeartbeatEnabledForAgent` / `resolveHeartbeatIntervalMs` from this
path would fail with no replacement contract introduced.

Restore the re-export. Costs nothing to keep; the helpers are already
public via `../infra/heartbeat-summary.ts`. SDK additions are by
default backwards-compatible (CLAUDE.md), so removing within days of
introduction violates that intent.

* changelog: note dreaming decoupling from heartbeat

Refs PR #70737.

---------

Co-authored-by: Josh Lehman <josh@martian.engineering>
2026-04-23 22:23:19 -07:00
Peter Steinberger
b0d2003fe6 docs: document Meet node command allowlist 2026-04-24 06:19:12 +01:00
Vincent Koc
0ad058a9cb feat(diagnostics): add trace context carrier (#70924) 2026-04-23 22:18:21 -07:00
Peter Steinberger
d4e93e791b fix: persist private ws opt-in for node services 2026-04-24 06:07:22 +01:00
Vincent Koc
799a42bd13 feat(plugins): expose activation plan reasons (#70943) 2026-04-23 22:06:07 -07:00
Peter Steinberger
6f80082028 test: default live model concurrency 2026-04-24 05:57:57 +01:00
Peter Steinberger
01e4824fd3 test: parallelize docker aggregate lanes 2026-04-24 05:55:27 +01:00
Ayaan Zaidi
9755c8a05f test(release): add npm telegram live smoke 2026-04-24 10:23:56 +05:30
Peter Steinberger
b98a6a46fb docs: raise live model sweep concurrency 2026-04-24 05:52:06 +01:00
Shakker
9d445f4d68 perf: speed up provider-filtered models list (#70632) (thanks @shakkernerd) 2026-04-24 05:46:25 +01:00
Vincent Koc
959dedb7cf docs(help): move help/scripts out of Testing group into Reference/Release and CI 2026-04-23 21:45:53 -07:00
Peter Steinberger
cb2c36b049 fix: lock realtime talk instructions 2026-04-24 05:33:11 +01:00
Peter Steinberger
569290c36d feat: add Google Meet paired-node Chrome transport 2026-04-24 05:31:32 +01:00
Peter Steinberger
c971c58fc7 docs: clarify control ui talk status 2026-04-24 05:21:40 +01:00
Peter Steinberger
84fc00afda perf: narrow whatsapp test imports 2026-04-24 05:19:36 +01:00
Vincent Koc
deb300d905 docs(nav): normalize sidebar group names to sentence case 2026-04-23 21:16:27 -07:00
Vincent Koc
1e24d95c54 docs(nav): sub-group macOS companion app pages (Setup / Runtime / Features), add qwen_modelstudio redirect 2026-04-23 21:15:17 -07:00
Vincent Koc
5aa5c4eff2 docs: tidy nav — macOS app sub-groups, drop qwen_modelstudio stub with redirect 2026-04-23 21:15:17 -07:00
Peter Steinberger
c7ee5d8ecf perf: narrow inbound debounce sdk imports 2026-04-24 05:07:28 +01:00
Josh Lehman
51186d2725 feat(codex): run context-engine lifecycle in app-server harness (#70809)
Port the Codex app-server harness onto the context-engine lifecycle, add Codex context projection and compaction integration, and cover bootstrap/history/compaction fallback behavior.

Thanks @jalehman.
2026-04-24 05:06:45 +01:00
Peter Steinberger
ac063568d3 test: speed up live model sweeps 2026-04-24 05:05:28 +01:00
Vincent Koc
7acaebeaac Revert "refactor(plugins): track activation compat hints"
This reverts commit b1d0c14d38.
2026-04-23 21:01:53 -07:00
Vincent Koc
b1d0c14d38 refactor(plugins): track activation compat hints 2026-04-23 20:59:34 -07:00
Vincent Koc
c1dfaef0a0 docs(channels,gateway): split heavy sidebar groups (channels by region, gateway config by concern) 2026-04-23 20:50:25 -07:00
Vincent Koc
38bb4fefb9 docs(help): restructure Help tab sidebar and shorten FAQ / live-tests titles 2026-04-23 20:48:42 -07:00