All notable changes to this project will be documented in this file.
[0.11.0] - 2026-10-14
๐ Bug Fixes
(release) GitHub release notes and changelog use the new version tag
๐ผ Other
[JEEVES-0] chore(deps): jeeves 0.7.0 and dependency updates
@karmaniverous/jeeves 0.6.0 -> 0.7.0 (exact) in core, service, openclaw
all other dependencies to latest within peer constraints; typescript
held at ^6.0.3 (typescript-eslint 8.71.2 peers typescript <6.1.0);
happy-dom 20 -> 21
plugin tests: fetchJson now passes its default timeout signal (jeeves#119)
[JEEVES-0] fix: no default launcher timeout, trigger status codes, release notes
core: a manifest without timeout_seconds means no timeout; remove
DEFAULT_LAUNCHER_TIMEOUT_MS (#119)
service: typed scheduler errors; POST /jobs/:id/run returns 404/409/500;
CLI trigger exits 1 on a non-OK response (#118)
openclaw: runner_trigger uses a 30-minute client timeout (jeeves 0.7.0
fetchJson defaults to 2 minutes; the route waits for the job)
release-it: releaseNotes use git-cliff --unreleased
(karmaniverous/npm-package-template-ts#30)
Closes #118
Closes #119
[JEEVES-0] fix: address PR #121 review
CLI trigger reads the body as text so a non-JSON error still reports
the HTTP status (adds 502 test)
docs: no-timeout applies to script jobs; session jobs keep the
5-minute session default
Updated core
[0.10.0] - 2026-10-13
๐ผ Other
[116] fix: pass the release tag to git-cliff so releases are not filed under [unreleased]
[116] feat: 10s default timeout for launcher jobs; review fixes
core: DEFAULT_LAUNCHER_TIMEOUT_MS (10s) for manifests without
timeout_seconds, applied on insert only (DD#71)
docs: stop recommending a tsx runners entry; generic runners example;
document the 10s default
tests: exact --dry-run report output; list --json timeout is fatal;
default timeout on insert only
Refs #116
[116] feat: defaultOnFailure/defaultOnSuccess as per-job fallbacks; SOLID/DRY pass
scheduler: one resolveChannels helper; job result alerts and #113 skip
alerts fall back to notifications.defaultOnFailure/defaultOnSuccess (DD#77)
core: mapping reports the fields a manifest specifies (JobField,
OPTIONAL_JOB_KEYS, specifiedJobFields) so every consumer gets
omitted-means-unchanged
service: one toDesiredJob row builder for both sync sources; recordSkip and
errorMessage helpers; runSyncCommand returns an exit code (testable)
tests: in-process sync-command suite incl. real-launcher end to end;
deterministic #113 tests; channel fallback; legacy validation and I/O
errors; transaction rollback; report labels; CLI flag wiring end to end
(replaces --help string test)
docs: fallback semantics in README, configuration guide and skill
[104] fix: tests and typecheck read source, not dist
Service and openclaw vitest configs alias, and tsconfigs path-map,
@karmaniverous/jeeves-runner-core to packages/core/src, so typecheck and
tests pass on a clean checkout with no dist/. The rollup TS and dts
plugins override paths so the build still types against built core and
keeps it external. CLI tests run the CLI from source via tsx, and the
service test script no longer builds first.
Closes #112
[104] fix(release): update root package-lock in after:bump hook
[104] feat(openclaw)!: standard plugin on jeeves core 0.6.0 with lazy configRoot
Move @karmaniverous/jeeves to 0.6.0-3 (exact; prerelease of jeeves#109).
Remove the TOOLS.md ComponentWriter + async content cache, the
createPluginCli install/uninstall bin (src/cli.ts), generateContent, and the
unused serviceCommands module. The plugin writes no workspace files and is
installed by jeeves install / openclaw plugins install.
Resolve configRoot lazily (plugin config, then JEEVES_CONFIG_ROOT):
register() always succeeds, logs one warning when unset, and defers core
init() until it resolves. Standard toolset tools return a clear error naming
both ways to set it until then.
Tests: no-config registration, tool error, plugin config, env var, manifest
has no configRoot default, skill frontmatter.
npm audit fix (lockfile only) for fastify/fast-uri/find-my-way advisories.
BREAKING CHANGE: the jeeves-runner-openclaw install|uninstall CLI is
removed; install with jeeves install or openclaw plugins install.
Closes #104
Closes #106
[104] chore(deps): ncu -u --peer across all packages (reject @karmaniverous/jeeves)
[104] chore(prettier): format docs/config files; ignore generated CHANGELOG.md
[104] fix(openclaw): gate only tools that read configRoot
[104] feat(openclaw): pass lazy apiUrl to createPluginToolset; pin core 0.6.0-4