@karmaniverous/jeeves-runner
    Preparing search index...

    Changelog

    All notable changes to this project will be documented in this file.

    • (release) GitHub release notes and changelog use the new version tag
    • [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

    • [116] fix: pass the release tag to git-cliff so releases are not filed under [unreleased]

    Refs #115

    • [116] docs: sync-jobs from jeeves-scripts, scriptsDir/jobsDir, maxConcurrency skips, launcher schedule-revert warnings

    Refs #116, #113

    • [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

    Refs #116

    • [116] chore(release): name GitHub releases @

    Refs #116

    • Updated core
    • Release @karmaniverous/jeeves-runner-openclaw v0.10.0
    • [104] chore: remove stan support
    • [104] updated jeeves
    • Updated core
    • Release @karmaniverous/jeeves-runner-openclaw v0.9.0
    • [104] chore(deps): pin @karmaniverous/jeeves 0.6.0-9
    • [104] updated core
    • [104] chore: release @karmaniverous/jeeves-runner-openclaw v0.9.0-3
    • [104] chore(deps): pin @karmaniverous/jeeves 0.6.0-8
    • [104] updated core
    • [104] chore: release @karmaniverous/jeeves-runner-openclaw v0.9.0-2
    • [104] fix(deps): runner-core ^0.2.2-0 for single core copy; engines node >=22.13 (#108, #110)
    • [104] style(openclaw): prettier-format openclaw.plugin.json
    • [104] chore(release): prettier-format openclaw.plugin.json after bump
    • [104] chore(deps): pin @karmaniverous/jeeves 0.6.0-7
    • [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] chore: release @karmaniverous/jeeves-runner-openclaw v0.9.0-1
    • [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
    • [104] chore(deps): pin @karmaniverous/jeeves 0.6.0-6
    • [104] fix(release): use --github.preRelease for release-it 21
    • [104] chore: release @karmaniverous/jeeves-runner-openclaw v0.9.0-0
    • [93-95] fix: complete 0.10.1 spec gaps (#93, #95, #97)

    • Remove timeout from DispatchOptions, dispatchSession, runDispatcher (#93)

    • Add script-vs-session env/args scheduler test (#95)

    • Sync openclaw.plugin.json version to 0.8.0 (#97)

    • Add release-it after:bump hook to auto-sync manifest version

    • Fix stale JSDoc on ExecutionOptions.jobEnv

    • DRY: extract skip() helper in syncJobs

    • Add reconcile-loop prevention tests for never-firing schedules

    • Remove redundant weak migration version test

    • Sync docs: remove timeout from script-helpers.md, add runners/outputChannel

    • Sync docs: add Endpoint/HttpMethod to core README exports

    • Sync docs: fix runs/queues/queue_items table schemas in architecture.md

    • Sync docs: add queue/state endpoint sections to api-reference.md

    • Sync docs: update job response examples with env/args/output_channel fields

    • Updated core

    • Release @karmaniverous/jeeves-runner-openclaw v0.8.1
    • Sync plugin manifest version to 0.7.13 (#97) (#97)
    • [91-96] fix: remove j:/config fallback, add env/args/output_channel to SKILL.md (#91, #96)
    • [91-96] docs: sync guides, README, and plugin manifest with 0.10.1 changes
    • Updated core
    • Release @karmaniverous/jeeves-runner-openclaw v0.8.0
    • Sync plugin manifest version to 0.7.12
    • [77][89] feat: add output_channel, env, args to plugin tool descriptors

    • Add output_channel, env (object), args (string array) to JOB_MUTABLE_FIELDS

    • Fields automatically propagated to runner_create_job and runner_update_job tools

    • buildJobBody picks up new fields via Object.keys iteration

    Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

    • [77] feat: wire catalog derivation end-to-end

    Plugin:

    • Add @karmaniverous/jeeves-runner-core dependency
    • Add catalogTool() helper that derives method, description from RUNNER_ENDPOINTS
    • Refactor all 16 custom tools (runnerTools, inspectionTools, managementTools) to use catalogTool()
    • Fix test mock to include DEFAULT_BIND_ADDRESS for core import chain

    Service:

    • routes.ts: reference getEndpoint() for /status and /jobs paths

    Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

    • [77][89] docs: sync README, SKILL.md with new fields and config harmonization

    README.md:

    • jobs schema table: add output_channel, source_type, description, env, args
    • runs trigger: remove 'retry' (DD#46)
    • Quick Start config: gateway.url/tokenPath โ†’ gatewayUrl/gatewayApiKey, log โ†’ logging
    • CLI table: add sync-jobs command

    SKILL.md:

    • jobs table listing: add output_channel, env, args
    • Job parameters table: add output_channel, description, env, args with session-only notes

    Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

    • Updated core
    • Release @karmaniverous/jeeves-runner-openclaw v0.7.13
    • Release @karmaniverous/jeeves-runner-openclaw v0.7.12
    • Externalize @karmaniverous/jeeves across core and openclaw packages
    • Bump @karmaniverous/jeeves to ^0.5.11 across all packages
    • Use import.meta.url for package.json resolution and add subpath externals
    • Release @karmaniverous/jeeves-runner-openclaw v0.7.11
    • [ISSUES-50] fix: resolve dispatcher issues and update skill docs (#50, #64, #70, #78)

    • Use resolveCommand() in dispatchSession instead of hardcoded 'node' (#78)

    • Add runners option to DispatchOptions for custom command resolution

    • Fix session completion polling to use status from sessions_list (#70)

    • Fall back to history-based check when session not in sessions_list

    • Add outputChannel to job schema and DB migration (#64)

    • Change dispatchSession to capture stdout and return DispatchResult

    • Update SKILL.md with script authoring reference and job patterns (#50)

    • Add tests for resolveCommand in dispatchSession, status-based completion, outputChannel schema validation, and stdout capture

    Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

    • Release @karmaniverous/jeeves-runner-openclaw v0.7.10
    • Add contracts.tools to openclaw plugin manifest (#72)
    • Add npm publish safety net (.npmignore + gitignore *.local)
    • Move changelog generation to after:bump hook
    • Migrate changelog from auto-changelog to git-cliff (#75)
    • Bump @karmaniverous/jeeves to ^0.5.10
    • Apply minor/patch dependency updates via ncu
    • Standardize all packages to rollup with TS config
    • Release @karmaniverous/jeeves-runner-openclaw v0.7.9
    • Updated jeeves-core
    • Release @karmaniverous/jeeves-runner-openclaw v0.7.8
    • Updated jeeves core
    • Release @karmaniverous/jeeves-runner-openclaw v0.7.7
    • Updated jeeves-core
    • Release @karmaniverous/jeeves-runner-openclaw v0.7.6
    • Release @karmaniverous/jeeves-runner-openclaw v0.7.5
    • Unhoisted jeeves
    • Release @karmaniverous/jeeves-runner-openclaw v0.7.4
    • Removed knip from packages
    • Release @karmaniverous/jeeves-runner-openclaw v0.7.3
    • [67] fix: consume core importMetaUrl in plugin CLI, bump @karmaniverous/jeeves to ^0.5.4
    • Release @karmaniverous/jeeves-runner-openclaw v0.7.2
    • Update dependencies, bump @karmaniverous/jeeves to ^0.5.3
    • Release @karmaniverous/jeeves-runner-openclaw v0.7.1
    • Bump @karmaniverous/jeeves to ^0.5.1
    • Bump @karmaniverous/jeeves to ^0.5.1
    • Correct getRunnerClient import source in SKILL.md
    • Correct getRunnerClient import source in SKILL.md
    • Resolve all build/docs warnings
    • Adopt core v0.5.1 APIs across runner and plugin
    • Adopt core v0.5.1 APIs across runner and plugin
    • Update skill, guides, and tests for v0.9.0 core adoption
    • Update skill, guides, and tests for v0.9.0 core adoption
    • Close coverage gaps for v0.9.0 core adoption
    • Close coverage gaps for v0.9.0 core adoption
    • Release @karmaniverous/jeeves-runner-openclaw v0.7.0
    • [CORE-046] chore(core): integrate 0.4.6 init fix
    • Release @karmaniverous/jeeves-runner-openclaw v0.6.2
    • (core) Integrate descriptor run callback
    • Release @karmaniverous/jeeves-runner-openclaw v0.6.1
    • Implement v0.8.0 Phase 2 โ€” descriptor + independent plugin work
    • Implement v0.8.0 Phase 3 โ€” factory consumers
    • Require Node >=22 (node:sqlite), skip Node 20 in CI
    • Address Gemini PR review feedback
    • Full documentation audit for v0.8.0 Component SDK adoption
    • Add script helpers guide, update index.md patterns, README helpers table
    • Audit branch coverage โ€” remove trivial tests, add missing tests
    • Bump @karmaniverous/jeeves to ^0.4.3 in service and openclaw packages
    • Update all dependencies including @karmaniverous/jeeves ^0.4.4 (Zod v4)
    • Release @karmaniverous/jeeves-runner-openclaw v0.6.0
    • (openclaw) Do not send Content-Type on bodyless DELETE requests
    • Release @karmaniverous/jeeves-runner-openclaw v0.5.1
    • Update core dependency to v0.3.0 and migrate /health to /status (#36, #37)
    • Release @karmaniverous/jeeves-runner-openclaw v0.5.0
    • (openclaw) Add 10 management & inspection tools, update enable/disable to PATCH
    • (openclaw) Show schedule format and source type in TOOLS.md content
    • Change PUT /jobs/:id to PATCH (partial update semantics)
    • DRY toggle route and harden tool helper
    • Complete SOLID/DRY sweep โ€” field-map update builder, single-query queue status, shared test fixtures, fix unimplemented overlap policy, CLI rrstack validation
    • Update SKILL.md, guides, and README for v0.6.0 tools
    • Release @karmaniverous/jeeves-runner-openclaw v0.4.0
    • Adopt @karmaniverous/jeeves ^0.2.0 core SDK (#33) (#33)
    • Release @karmaniverous/jeeves-runner-openclaw v0.3.0
    • Bundle @karmaniverous/jeeves into plugin dist
    • Remove dead local resolveWorkspacePath from helpers.ts (use core export)
    • Upgrade @karmaniverous/jeeves to 0.1.3, remove content copy (now inlined at build)
    • Upgrade @karmaniverous/jeeves to 0.1.5 (workspace resolution fix)
    • Upgrade @karmaniverous/jeeves to 0.1.4, use core resolveWorkspacePath
    • Upgrade @karmaniverous/jeeves to 0.1.5 (workspace resolution fix)
    • Upgrade @karmaniverous/jeeves to 0.1.6, add servicePackage + pluginPackage
    • Release @karmaniverous/jeeves-runner-openclaw v0.2.1
    • Adopt @karmaniverous/jeeves core in openclaw plugin
    • Add tagPrefix to auto-changelog config for monorepo tags
    • Derive component version from package.json instead of hard-coding
    • Use createAsyncContentCache from core, fix version to plugin version
    • DRY - getApiUrl via getPluginConfig, extract shared jobId param schema
    • Sync documentation with v0.3.1 implementation
    • Add serviceCommands tests, strengthen generateContent + index coverage
    • Release @karmaniverous/jeeves-runner-openclaw v0.2.0
    • Restructure as npm workspaces monorepo
    • Add OpenClaw plugin with 7 runner tools, install CLI, and consumer skill
    • Zeroed version
    • Code review cleanup โ€” trim trivial tests, merge notification helper, add maintenance coverage
    • Add service and plugin guides, architecture diagrams, fix typedoc config
    • Release @karmaniverous/jeeves-runner-openclaw v0.1.0