Commit Graph

26367 Commits

Author SHA1 Message Date
Chinar Amrutkar e0634aab66
fix(heartbeat): update task timestamps on alerts-disabled exit
Fixes: #3034825973
2026-04-04 15:09:48 +01:00
Chinar Amrutkar dbfb0b5618
fix(heartbeat): prevent outer loop from exiting on task field lines
The YAML parser's outer loop was exiting the tasks block when it
encountered 'interval:' or 'prompt:' lines, causing only the first
task to be parsed. Added isTaskField check to skip those lines.

Fixes: #3034790131
2026-04-04 15:09:48 +01:00
Chinar Amrutkar 05c948e4de
fix(heartbeat): preserve HEARTBEAT.md directives in task-mode prompt
Pass heartbeatFileContent to resolveHeartbeatRunPrompt and append
non-task directives from HEARTBEAT.md to the task-mode prompt.

Fixes: #3033850983
2026-04-04 15:09:48 +01:00
Chinar Amrutkar cebea1bf95
fix(heartbeat): remove dead helpers, persist timestamps on all exits
- Remove unused getTaskLastRunMs/updateTaskLastRunMs functions
- Add timestamp updates to all successful exit paths

Fixes: #3030557564, #3034645588
2026-04-04 15:09:48 +01:00
Chinar Amrutkar 5fffdc478e
fix(heartbeat): add startedAt param, null prompt handling, timestamp updates
- Fix: Pass startedAt into resolveHeartbeatRunPrompt
- Fix: Return proper object instead of null for no-tasks-due
- Fix: Add early return when prompt is null
- Fix: Persist timestamps on successful exits
2026-04-04 15:09:48 +01:00
Chinar Amrutkar ba09426707
fix(heartbeat): address review comments - parsing, timing, state, skips
- Fix YAML parsing to capture interval:/prompt: before breaking
- Record task timestamps AFTER successful execution (not before)
- Initialize task state on first run (handle undefined session)
- Skip API call when no tasks due (return null)
- Use startedAt consistently for due-task filtering

Fixes: #3030568439, #3033833124, #3030570872, #3030568408, #3030570872, #3035434022, #3035434368
2026-04-04 15:09:48 +01:00
Chinar Amrutkar 728d14e918
fix: add heartbeatTaskState to SessionEntry type
The heartbeat task batching feature uses heartbeatTaskState to track
last run times for periodic tasks, but this property was missing
from the SessionEntry type, causing TypeScript compilation errors.
2026-04-04 15:09:47 +01:00
Chinar Amrutkar 103bebd651
feat(heartbeat): add task batching support via HEARTBEAT.md
- Add parseHeartbeatTasks() to parse YAML-like task definitions
- Add isTaskDue() to check if task interval has elapsed
- Add heartbeatTaskState to session store for tracking last run times
- Modify resolveHeartbeatRunPrompt to build batched prompts for due tasks
- Update task last run times after successful heartbeat execution

Implements openclaw#29570
2026-04-04 15:09:47 +01:00
Peter Steinberger 890de57036
docs: refresh failover billing refs 2026-04-04 15:09:05 +01:00
Peter Steinberger 5fa60e6535
docs: refresh channel overview mirrors 2026-04-04 15:07:32 +01:00
Peter Steinberger fde6e07f2a
docs: refresh bundled channel setup refs 2026-04-04 15:06:39 +01:00
Peter Steinberger 1a431a532b
docs: refresh bundled channel mirrors 2026-04-04 15:05:02 +01:00
Rockcent b2f972e364
fix(failover): OpenRouter 403 Key limit exceeded triggers billing fallback (#59892)
Merged via squash.

Prepared head SHA: 7f8265231c
Co-authored-by: rockcent <128210877+rockcent@users.noreply.github.com>
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com>
Reviewed-by: @altaywtf
2026-04-04 17:03:21 +03:00
Peter Steinberger 11542e9310
docs: refresh bundled channel plugin refs 2026-04-04 15:02:08 +01:00
Peter Steinberger f02af9bb41
docs: refresh onboarding channel setup refs 2026-04-04 15:00:41 +01:00
Peter Steinberger 9dea255ee2
docs: refresh bundled channel overview refs 2026-04-04 14:58:17 +01:00
Peter Steinberger 756cb22f15
docs: refresh model selection fallback refs 2026-04-04 14:55:44 +01:00
Peter Steinberger 3e5bcc8cb2
docs: refresh isolated cron model switch refs 2026-04-04 14:53:45 +01:00
Vincent Koc 9cc300be78 fix(ci): restore main follow-up checks 2026-04-04 22:51:31 +09:00
Peter Steinberger aa32f74fe6
docs: refresh cron delivery ownership refs 2026-04-04 14:51:08 +01:00
Peter Steinberger 981737035d
docs: refresh isolated cron delivery refs 2026-04-04 14:48:51 +01:00
Peter Steinberger 3bc2e47966
docs: clarify failover 402 handling 2026-04-04 14:46:32 +01:00
Peter Steinberger 73584b1d33
docs: refresh failover and compaction refs 2026-04-04 14:44:51 +01:00
Peter Steinberger bbb73d3171
refactor: split isolated cron runner phases 2026-04-04 14:42:35 +01:00
Peter Steinberger 9698ba7215
test: split isolated cron harness resets 2026-04-04 14:42:35 +01:00
Peter Steinberger 91d20781ed
refactor: extract isolated cron execution seams 2026-04-04 14:42:35 +01:00
Peter Steinberger 083b882052
style(plugin-sdk): format provider stream helpers 2026-04-04 22:40:08 +09:00
Peter Steinberger f9717f2eae
fix(agents): align runtime with updated deps 2026-04-04 22:40:08 +09:00
Peter Steinberger 76d1f26782
chore(deps): update workspace dependencies 2026-04-04 22:40:08 +09:00
Peter Steinberger 70b39f4893
docs: refresh mattermost group config refs 2026-04-04 14:39:38 +01:00
Peter Steinberger 60206817b3
docs: refresh telegram command sdk refs 2026-04-04 14:38:33 +01:00
ToToKr 3b80f42152
fix(mattermost): add groups property to config schema (#57618) (#58271)
Merged via squash.

Prepared head SHA: 8d478fc092
Co-authored-by: MoerAI <26067127+MoerAI@users.noreply.github.com>
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com>
Reviewed-by: @altaywtf
2026-04-04 16:37:53 +03:00
Peter Steinberger 8ca5a9174a
docs: refresh gateway auth precedence refs 2026-04-04 14:36:52 +01:00
Peter Steinberger 882654d9ae
docs: refresh talk config and doctor refs 2026-04-04 14:35:03 +01:00
Peter Steinberger 13f9475f6c
docs: refresh bootstrap handoff token refs 2026-04-04 14:32:40 +01:00
Peter Steinberger 93ab8dd531 test: add CLI handshake regression coverage (#50240) (thanks @xiwuqi) 2026-04-04 22:32:15 +09:00
Peter Steinberger 114496871d
docs: refresh tailscale auth rate limit refs 2026-04-04 14:30:13 +01:00
Peter Steinberger 7d22a16adb
fix: bound bootstrap handoff token scopes 2026-04-04 22:29:52 +09:00
Peter Steinberger 7c0752f834
docs: refresh cron model override refs 2026-04-04 14:26:46 +01:00
Peter Steinberger f502b023d9
docs: refresh device token scope mirrors 2026-04-04 14:25:47 +01:00
Peter Steinberger ebe0a27b4d
docs: refresh device token scope refs 2026-04-04 14:23:41 +01:00
Peter Steinberger 3758a0ce5b
refactor(gateway): simplify connect auth parsing 2026-04-04 22:23:09 +09:00
Peter Steinberger 68ec7c9bbf
docs: refresh plugin config schema refs 2026-04-04 14:21:00 +01:00
AARON AGENT 16e7e2551b
fix(cron): prevent agent default model from overriding cron payload model (#58294)
* fix(cron): prevent agent default model from overriding cron payload model (#58065)

When a cron job specifies a model override via the Advanced settings,
runWithModelFallback could silently fall back to the agent's configured
primary model. This happened because fallbacksOverride was undefined
when neither payload.fallbacks nor per-agent fallbacks were configured,
causing resolveFallbackCandidates to append the agent primary as a
last-resort candidate. A transient failure on the cron-selected model
(rate limit, model-not-found, etc.) would then succeed on the agent
default, making it appear as if the override was ignored entirely.

Fix: when the cron payload carries an explicit model override, ensure
fallbacksOverride is always a defined array (empty when no fallbacks
are configured) so the agent primary is never silently appended.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* test: use stricter toEqual([]) assertion for fallbacksOverride

Replace toBeDefined() + toBeInstanceOf(Array) with toEqual([])
to catch regressions where the array unexpectedly gains entries.
Addresses review feedback.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: preserve cron override fallback semantics (#58294)

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-04-04 22:18:38 +09:00
Peter Steinberger 79be1e126a
fix: harden parallels smoke harness 2026-04-04 14:18:18 +01:00
Peter Steinberger 99e45eb3ba
docs: refresh remote bootstrap refs 2026-04-04 14:17:59 +01:00
Peter Steinberger 3f1b2703b7 fix: preserve cached device token scopes safely (#46032) (thanks @caicongyang) 2026-04-04 22:17:38 +09:00
Assistant 056c0870a9 fix(gateway): preserve stored scopes when reconnecting with device token
When the gateway client reconnects using a stored device token, it was
defaulting to ["operator.admin"] scopes instead of preserving the
previously authorized scopes from the stored token. This caused the
operator device token to be regenerated without operator.read scope,
breaking status/probe/health commands.

This fix:
1. Loads the stored scopes along with the stored token in selectConnectAuth
2. Uses the stored scopes when reconnecting with a valid device token
3. Falls back to explicitly requested scopes or default admin-only scope
   when no stored scopes exist

Fixes #46000
2026-04-04 22:17:38 +09:00
Peter Steinberger 2ecb8ca352
docs: refresh control ui auth ux refs 2026-04-04 14:14:54 +01:00
Peter Steinberger 07c7c4b9ec
docs: refresh tailscale http auth refs 2026-04-04 14:13:36 +01:00