Files
openclaw/docs/.generated
bᵣᵢₐₙ 8d034a7b61 fix(cron): stop advertising trigger-gated fields when cron triggers are disabled (#122052)
* fix(cron): stop advertising trigger-gated fields when cron triggers are disabled

When cron.triggers.enabled is off (the documented default posture), the
cron tool still advertised job.trigger/patch.trigger, schedule.kind
"stream" with its stream-only fields, and payload.kind "script" — all of
which the scheduler unconditionally rejects. Schema-eager models attach
junk triggers to plain reminder requests, get rejected, and retry-loop
without ever creating the job.

Gate those surfaces on the resolved config so they are only advertised
when the runtime can actually accept them, and swap the trigger guidance
for a short unavailable notice so the model tells the user instead of
polling or silently degrading the request. Config-less construction
paths keep the full surface.

Related: #119455

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(cron): restore config type import and regenerate schema contracts

Repairs rebase fallout and CI-contract consequences of the trigger gating:

- Re-import OpenClawConfig from config/types.openclaw.js; the rebase crossed
  #121768 which removed the re-export from config/config.js, stranding
  resolveCronTriggersEnabled's signature.
- Guard the destructured tool in the MCP gating test for
  noUncheckedIndexedAccess.
- Collapse the hookContext merge object to one line: the added config
  pass-through tipped openclaw-tools.ts over the max-lines ratchet (701/700).
- Regenerate prompt snapshots (cron description narrowed under
  triggers-disabled harness config; ~3k chars per prompt) and the plugin-sdk
  API baseline (CronToolOptions gained the optional config member, visible
  via codex-mcp-projection).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* chore(cron): align schema contracts with current main

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Josh Lehman <550978+jalehman@users.noreply.github.com>
2026-08-11 21:48:14 +00:00
..

Generated Docs Artifacts

Generated contract files are tracked drift-detection artifacts. Full pretty snapshots remain local inspection artifacts.

Tracked (committed to git):

  • config-baseline.sha256 — hashes of config baseline JSON artifacts.
  • config-baseline.counts.json — maximum entry counts for each config baseline kind.
  • plugin-sdk-api-baseline/<entrypoint>.json — one content hash record per Plugin SDK module.
  • sqlite-session-transcript-schema-baseline.sha256 — hash of the sessions/transcripts SQLite schema baseline.

Local only (gitignored):

  • config-baseline.json, config-baseline.core.json, config-baseline.channel.json, config-baseline.plugin.json
  • plugin-sdk-api-baseline.json
  • .artifacts/sqlite-session-transcript-schema-baseline.sql

Do not edit any of these files by hand.

  • Regenerate config baseline: pnpm config:docs:gen
  • Validate config baseline: pnpm config:docs:check
  • Regenerate Plugin SDK API baseline: pnpm plugin-sdk:api:gen
  • Validate Plugin SDK API contract manifest: pnpm plugin-sdk:api:check

The Plugin SDK contract sorts modules by import specifier and exports by kind then name. Each entrypoint file hashes one module's normalized declarations and surface-reachable declaration closure hashes, so changes to different modules touch different files. Committed records omit source paths so file moves do not change the contract; origin source fields remain available in the local pretty JSON snapshot.

  • Regenerate SQLite sessions/transcripts schema baseline: pnpm sqlite:sessions-schema:gen
  • Validate SQLite sessions/transcripts schema baseline: pnpm sqlite:sessions-schema:check