Documentation
    Preparing search index...

    Changelog

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

    • CLI and OpenClaw plugin send the API bearer key
    • (cli) Report unreadable or malformed config patches cleanly
    • (openclaw) Prompt context states score thresholds have no defaults
    • (release) GitHub release notes and changelog use the new version tag
    • Updated core
    • One HTTP client contract in core; error status comes from the code
    • Shared reindex deps, defaults and work policy; admin route schemas; route handlers wrapped
    • Typedoc covers core, sdk and service; fix docs warnings
    • Document review fixes, error bodies and status shape
    • (openclaw) Skill, README and integration guide match the tools; watcher_issues description
    • Neutral example paths and names in guides, skill and tests
    • Rule handlers, plugin config tools, CLI helpers and edges
    • Ship LICENSE in every package; core README and license metadata
    • Updated core
    • Release @karmaniverous/jeeves-watcher-openclaw v0.16.1
    • [234] updated jeeves
    • Updated core
    • Release @karmaniverous/jeeves-watcher-openclaw v0.16.0
    • [234] [248] fix: tell models to call watcher_search/watcher_scan directly, not via tool_call

    Stopgap for openclaw/openclaw#161022. Closes #248.

    • [234] chore: release @karmaniverous/jeeves-watcher-openclaw v0.16.0-6
    • [234] [247] feat(openclaw): make watcher_search and watcher_scan direct tools under OpenClaw Tool Search

    Register watcher_search and watcher_scan with catalogMode 'direct-only' so OpenClaw 2026.9 Tool Search keeps them model-visible instead of hiding them in the tool_search catalog. guardTool is now generic and preserves descriptor properties. Decompose watcherTools (432 lines) into apiTool/vcsTools modules to honor the 300-line limit.

    Closes #247

    • [234] chore: release @karmaniverous/jeeves-watcher-openclaw v0.16.0-5
    • [234] chore(deps): pin @karmaniverous/jeeves 0.6.0-9
    • [234] updated core
    • [234] chore: release @karmaniverous/jeeves-watcher-openclaw v0.16.0-4
    • [234] chore(deps): pin @karmaniverous/jeeves 0.6.0-8
    • [234] updated core
    • [234] chore: release @karmaniverous/jeeves-watcher-openclaw v0.16.0-3
    • [234] fix(deps): require watcher-core ^0.2.6-0 (no fallback to 0.2.5)
    • [234] chore: release @karmaniverous/jeeves-watcher-openclaw v0.16.0-2
    • [234] style(openclaw): prettier-format openclaw.plugin.json

    • [234] fix: post-e2e fixes for core 0.6 (#238, #239, #240, #241)

    • deps: openclaw/service depend on watcher-core ^0.2.5 || ^0.2.6-0 so the core-0.6 prerelease resolves (#238)

    • service: pin @qdrant/js-client-rest ^1.19.0; real-QdrantClient regression test for POST /search (#239)

    • service: /config/apply merges into the running config file and deep-merges patches (#240)

    • engines.node >=22.13 everywhere; docs say 22.13+ (#241)

    • [234] chore(release): prettier-format openclaw.plugin.json after bump

    • [234] chore(deps): pin @karmaniverous/jeeves 0.6.0-7

    • [234] fix: tests and typecheck read watcher-core from source, not dist

    Service and openclaw vitest configs alias @karmaniverous/jeeves-watcher-core to packages/core/src, and their tsconfigs map it via paths, so typecheck and tests pass on a clean checkout with no dist/. Rollup builds override paths ({}) so bundling and typing still use the built core package with no TS warnings. Root npm test now also runs the openclaw package tests.

    Closes #242

    • [234] chore: update root package-lock in release-it after:bump hooks
    • [234] chore: release @karmaniverous/jeeves-watcher-openclaw v0.16.0-1
    • [234] feat(openclaw)!: standard OpenClaw plugin on jeeves core 0.6.0 with lazy configRoot

    • move @karmaniverous/jeeves to 0.6.0-3 (static-content core, jeeves#109)

    • remove ComponentWriter, createAsyncContentCache TOOLS.md menu, and the createPluginCli install/uninstall CLI (bin, rollup CLI entry, content copy)

    • inject watcher escalation/scan-first/search-first rules via before_prompt_build (registerPromptContext); declare it in package.json jeeves.conversationHooks

    • resolve configRoot lazily (pluginConfig -> plugins.entries -> JEEVES_CONFIG_ROOT); registration always succeeds, warns once when unset, defers core init() to first tool use; tools return a clear error until it is set

    • remove the j:/config default (constants, helpers, manifest); declare configRoot in the manifest configSchema with no default

    BREAKING CHANGE: the npx install/uninstall CLI is gone (use jeeves install or openclaw plugins install); configRoot has no default and must be set in plugin config or JEEVES_CONFIG_ROOT; the plugin no longer writes TOOLS.md.

    Closes #234 Closes #235 Closes #227

    • [234] chore(deps): ncu --peer across all packages (keep @karmaniverous/jeeves pinned)

    • [234] chore: knip and prettier clean-up

    • knip 6.38: remove unused barrel re-exports and a stale backward-compat re-export (no public API change)

    • prettier 3.9 formatting; add .prettierignore for generated CHANGELOGs, config.schema.json and .stan state

    • [234] fix(openclaw): gate only tools that read configRoot

    Uniform Jeeves rule: only tools whose implementation reads configRoot return the configRoot-not-configured error. watcher_service (install resolves the config path via core getComponentConfigDir) stays gated; the 17 HTTP-only tools (3 core factory tools on defaultPort, 14 domain tools on apiUrl) are registered unwrapped and work without configRoot.

    • [234] feat(openclaw): pass lazy apiUrl to createPluginToolset; pin core 0.6.0-4

    • [234] fix(openclaw): gate watcher_service install only

    • [234] chore(build): zero build and typedoc warnings

    • service: drop tsconfig incremental (made the rollup configPlugin warn about outputToFilesystem); mark node: builtins external in the d.ts build.

    • openclaw: drop only bundled-zod INVALID_ANNOTATION / node_modules-only CIRCULAR_DEPENDENCY rollup warnings.

    • service: export SquashManagerOptions (typedoc referenced it).

    • [234] docs(openclaw): update plugin architecture diagram

    • [234] chore(deps): pin @karmaniverous/jeeves 0.6.0-6

    • [234] fix(release): use --github.preRelease for release-it 21

    • [234] chore: release @karmaniverous/jeeves-watcher-openclaw v0.16.0-0

    • Updated core
    • Release @karmaniverous/jeeves-watcher-openclaw v0.15.6
    • Add shared endpoint catalog in core package (#196)
    • Updated core
    • Release @karmaniverous/jeeves-watcher-openclaw v0.15.5
    • Updated core
    • Update VCS and prune documentation for new features
    • Release @karmaniverous/jeeves-watcher-openclaw v0.15.4
    • Release @karmaniverous/jeeves-watcher-openclaw v0.15.3
    • Updated core
    • Release @karmaniverous/jeeves-watcher-openclaw v0.15.2
    • Installed deps
    • Release @karmaniverous/jeeves-watcher-openclaw v0.15.1
    • (vcs) Phase 8 โ€” plugin tools (7 VCS tools)
    • Export VCS types + fix typedoc anchor
    • Address Copilot review comments
    • [204] fix(openclaw): externalize @karmaniverous/jeeves in rollup config

    Moves @karmaniverous/jeeves from bundled to external in both plugin and CLI rollup builds. The plugin installer copies the jeeves core lib into the extensions directory, so it is always resolvable at runtime.

    Service package already externalizes via dynamic dependency list.

    Closes #204

    • Updated core
    • (vcs) Phase 9 โ€” skill, README, code comments, TOOLS.md
    • (openclaw) Sync README and integration guide with VCS tools
    • Release @karmaniverous/jeeves-watcher-openclaw v0.15.0
    • [0-18] chore: update dependencies

    Pin ajv to ~8.18.0 to avoid type mismatch with @fastify/ajv-compiler. Remove unused hast dependency. Fix knip config and stan integration.

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

    • [0-18] fix(openclaw): add contracts.tools manifest (#192)

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

    • [0-18] docs: sync README and guides with 0.18.0 changes

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

    • [0-18] docs: fix stale prune response and collection bootstrap claims in guides
    • [0-18] chore: update dependencies

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

    • Updated core
    • Release @karmaniverous/jeeves-watcher-openclaw v0.14.11
    • Pin jeeves-watcher-core dependency to ^0.1.1
    • Release @karmaniverous/jeeves-watcher-openclaw v0.14.10
    • Extract core package with shared schemas, types, defaults, and constants
    • Add npm publish safety net (.npmignore + gitignore *.local)
    • Move changelog generation to after:bump hook
    • Update all deps, switch core to rollup build, fix lint errors
    • Release @karmaniverous/jeeves-watcher-openclaw v0.14.9
    • Updated jeeves core
    • Release @karmaniverous/jeeves-watcher-openclaw v0.14.8
    • Updated jeeves core
    • Release @karmaniverous/jeeves-watcher-openclaw v0.14.7
    • Updated jeeves-core
    • Release @karmaniverous/jeeves-watcher-openclaw v0.14.6
    • Release @karmaniverous/jeeves-watcher-openclaw v0.14.5
    • Unhoisted jeeves
    • Release @karmaniverous/jeeves-watcher-openclaw v0.14.4
    • Hoisted jeeves
    • Hoisted knip
    • Release @karmaniverous/jeeves-watcher-openclaw v0.14.3
    • Housekeeping batch (#184, #179, #176, #180, #178)
    • Release @karmaniverous/jeeves-watcher-openclaw v0.14.2
    • Update deps for @karmaniverous/jeeves-core v0.5.3
    • Release @karmaniverous/jeeves-watcher-openclaw v0.14.1
    • Bump core to ^0.5.1, engine floor >=22, adopt getPackageVersion
    • Wire gatewayUrl into ComponentWriter for cleanup escalation
    • Break circular dependencies, clean knip config
    • Adopt createPluginToolset, ship watcher_service tool
    • Adopt core DEFAULT_PORTS for port constants
    • Update skill, READMEs, and diagrams for v0.17.0
    • Sync all documentation and diagrams with implementation
    • Release @karmaniverous/jeeves-watcher-openclaw v0.14.0
    • [CORE-046] feat: integrate core 0.4.6 โ€” init() called before descriptor.run()

    Bumps @karmaniverous/jeeves to 0.4.6 which fixes karmaniverous/jeeves#53: createServiceCli now calls init() before descriptor.run() in the start command, so getBindAddress() and other core functions that require initialization work correctly.

    This unblocks upgrading prod from 0.15.2 to the current release.

    • Release @karmaniverous/jeeves-watcher-openclaw v0.13.2
    • [CORE-045] feat: integrate core 0.4.5 - add run callback to descriptor
    • Release @karmaniverous/jeeves-watcher-openclaw v0.13.1
    • [PHASE-2] feat: core 0.4.4 + Zod 4, dep updates, descriptor definition

    • Bump @karmaniverous/jeeves to ^0.4.4 (Zod 4)

    • Update all deps not blocked by peer constraints (eslint 10, knip 6, vitest 4.1.2, etc)

    • Fix ESLint 10 new rules: no-useless-assignment, preserve-caught-error

    • Rewrite watcherComponent.ts to return clean JeevesComponentDescriptor

    • Add descriptor.ts + descriptor.test.ts (Phase 2 D2)

    • Remove unused PROBE_TIMEOUT_MS export

    • Update writerIntegration test for core managed-content position change

    • [PHASE-2] [PHASE-4] feat: plugin refactor โ€” core CLI factory, simplified menu, new status shape

    O2: Remove ACTION REQUIRED blocks from generateWatcherMenu

    • Core ComponentWriter handles unreachable state independently
    • Function now throws on failure (createAsyncContentCache retains last good value) O3: Replace hand-rolled plugin CLI with createPluginCli factory O4: Update status parsing for core StatusResponse convention
    • Read health.collection.pointCount instead of collection.pointCount
    • Remove unused DEFAULT_QDRANT_URL constant
    • [PHASE-2] refactor: SOLID/DRY review โ€” extract shared patterns, consolidate constants

    DRY fixes in customCommands.ts:

    • Extract withApiOptions helper (eliminates 7x repeated --port/--host options)
    • Extract handleErrors wrapper (eliminates 7x identical try/catch blocks)
    • Extract parseMetadataArgs (enrich command validation logic)
    • Extract baseUrl helper accepting ApiOpts interface

    DRY fixes in plugin constants:

    • Extract COMPONENT_NAME, SERVICE_PACKAGE, PLUGIN_PACKAGE, DEFAULT_PORT
    • watcherComponent.ts now references constants instead of hardcoded strings
    • DEFAULT_API_URL derived from DEFAULT_PORT

    Cleanup:

    • Remove stale Phase 3/4 placeholder comments from descriptor.ts
    • Add descriptive comments explaining why onConfigApply and generateToolsContent are wired at different layers
    • Remove accidentally committed commit-msg.txt, add to .gitignore
    • [PHASE-2] docs: sync all documentation with current implementation

    CLI reference (guides/cli-reference.md) โ€” full rewrite:

    • Remove stale commands: query, config-reindex, config-apply, validate (standalone)
    • Document current CLI structure: core standard commands + domain-specific commands
    • Add service start/stop/restart/status subcommands
    • Document config/config validate/config apply subcommand structure

    SKILL.md:

    • Update /status response description for core StatusResponse shape (health.collection.pointCount instead of collection.pointCount)
    • Fix vectorStore config example: collection โ†’ collectionName
    • Update watcher_status tool description

    Delete dead status handler:

    • handlers/status.ts replaced by core createStatusHandler in api/index.ts

    • handlers/status.test.ts tested dead code

    • [PHASE-2] docs: align guide index structure with jeeves-server pattern

    • Add CHANGELOG to children front matter in both index files

    • Add descriptive list body to service and plugin guide indexes

    • Individual guides already have title front matter

    • Release @karmaniverous/jeeves-watcher-openclaw v0.13.0
    • Release @karmaniverous/jeeves-watcher-openclaw v0.12.1
    • Update watcher_config_apply skill text to reflect hot-reload capability
    • Release @karmaniverous/jeeves-watcher-openclaw v0.12.0
    • Sync README, SKILL.md with v0.14.0 implementation (move detection, enrichment store)
    • Release @karmaniverous/jeeves-watcher-openclaw v0.11.0
    • Upgrade @karmaniverous/jeeves to ^0.3.0
    • Release @karmaniverous/jeeves-watcher-openclaw v0.10.0
    • Adopt @karmaniverous/jeeves core v0.2.0 SDK (#138) (#138)
    • Release @karmaniverous/jeeves-watcher-openclaw v0.9.0
    • (openclaw) Update to @karmaniverous/jeeves@0.1.6, add servicePackage/pluginPackage
    • (openclaw) Bundle @karmaniverous/jeeves into plugin output
    • (openclaw) Update @karmaniverous/jeeves to 0.1.3 (content path fix)
    • (openclaw) Copy core content/ at build time, simplify rollup externals
    • (openclaw) Include content/ in CLI installer copy list
    • (openclaw) Add 10s timeout to menu generation fetch calls
    • (openclaw) Update @karmaniverous/jeeves to 0.1.5 (workspace path priority fix)
    • (openclaw) Use core resolveWorkspacePath from @karmaniverous/jeeves@0.1.4
    • Release @karmaniverous/jeeves-watcher-openclaw v0.8.1
    • (openclaw) Adopt @karmaniverous/jeeves core components
    • Add tagPrefix to auto-changelog config for monorepo tags
    • (openclaw) Derive plugin version from package.json instead of hardcoding
    • (openclaw) Upgrade to @karmaniverous/jeeves v0.1.1, use createAsyncContentCache, static imports, real integration tests
    • (openclaw) Resolve SOLID/DRY violations
    • Add embedding cost behavioral gate to plugin SKILL.md
    • Sync documentation with implementation, replace Mermaid/ASCII with PlantUML diagrams
    • (openclaw) Add watcherComponent unit tests, document ServiceCommands in spec
    • (openclaw) Remove trivial typeof tests, add getApiUrl/getConfigRoot coverage
    • (openclaw) Update dev dependencies
    • Release @karmaniverous/jeeves-watcher-openclaw v0.8.0
    • [V0_10_0] feat: add scope validation, rules and path reindex scopes (Fixes 1, 2, 13)

    • Validate reindex scope against VALID_REINDEX_SCOPES; reject unknown scopes with 400

    • Add 'rules' scope: re-applies inference rules via processRulesUpdate without re-embedding

    • Add 'path' scope: reindex a specific file or directory with watch scope and gitignore validation

    • Update configWatchConfigSchema to accept 'rules'

    • Update watcher_reindex plugin tool with new scopes and optional path parameter

    • Broaden triggerReindex type to ReindexScope across configApply and API index

    • [V0_10_0] feat: version in /status, live scoreThresholds, virtual rule template rebuild, remove dead config keys (Fixes 6, 10, 12)

    • Add version field to /status response (read from package.json at startup)

    • Plugin reads search.scoreThresholds from config via /config/query, falls back to defaults

    • Score interpretation includes actionable guidance (strong/relevant/noise)

    • onRulesChanged rebuilds template engine with merged rules (config + virtual)

    • Remove slots and extractors from root config schema (dead keys)

    • Remove slots from merged virtual document

    • Fix 11 (port fallback) already resolved in prior version โ€” no 3456 reference found

    • [V0_10_0] chore: fix lint errors in promptInjection, clean up knip config, regenerate schema

    • [V0_10_0] docs: add score threshold guidance to SKILL.md, reference skill from TOOLS.md injection

    • [FIX-14] feat: prune reindex scope, blast area plan, dryRun (Fix 14)

    • Add 'prune' reindex scope: scrolls Qdrant points, checks file_path against watch scope + gitignore, batch-deletes orphaned points

    • Add blast area 'plan' object to all reindex responses (counts by root)

    • Add dryRun parameter: returns plan without executing

    • Thread vectorStore into ExecuteReindexDeps for prune access

    • Refactor processAllFiles to accept pre-computed file list

    • Guard configWatch auto-trigger against prune scope

    • Add CONFIG_WATCH_VALID_SCOPES constant

    • Update plugin tool: prune in scope enum, dryRun parameter

    • Tests: dryRun per scope (issues/full/rules/prune), prune execution

    Closes Phase 6 of spec dev plan.

    • [FIX-14] docs: update all guides for reindex scopes, dryRun, plan, and version

    • api-reference.md: /config-reindex now documents all 5 scopes, dryRun, plan response shape; /status includes version field; error response includes error+message fields

    • cli-reference.md: config-reindex documents all scopes, --path, --dry-run

    • configuration.md: configWatch.reindex includes rules scope, notes path/prune exclusion

    • inference-rules.md: config watch reindex table adds rules scope, notes path/prune exclusion

    • README.md: updated API and CLI tables for all scopes

    • openclaw README.md: updated watcher_reindex description

    • SKILL.md: already updated in previous commit (#118)

    • [FIX-15] docs: add initialScan to api-reference and SKILL.md

    • api-reference.md: initialScan fields in /status response + table

    • SKILL.md: watcher_status documents initialScan field, diagnostics updated

    • [FIX-17][FIX-18][FIX-19] feat: API Consolidation (Phase 8)

    • Convert POST /config/query to GET /config with unified inference rules

    • Rename watcher_query to watcher_config tool

    • Rename POST /config-reindex to POST /reindex with array path support

    • Update CLI, plugin, and tests to match

    • [FIX-17] [FIX-20][FIX-21] Phase 9: POST /walk endpoint, watcher_walk tool, auto rules-reindex on rule registration

    Fix 20:

    • New POST /walk handler: accepts { globs: string[] }, walks watch roots with glob intersection, returns { paths, matchedCount, scannedRoots }
    • Route registered in api/index.ts
    • New watcher_walk OpenClaw tool in watcherTools.ts
    • Tests: walk handler (4 tests), plugin tool registration + execution

    Fix 21:

    • onRulesChanged now extracts match globs from virtual rules (match.properties.file.properties.path.glob) and fires executeReindex with scope 'rules' and extracted globs array (fire-and-forget)
    • Skips reindex when no rules have match globs
    • Tests: 3 integration tests via Fastify inject

    Docs:

    • SKILL.md: added watcher_walk docs, updated API reference table (POST /walk, renamed endpoints from Phase 8), renamed watcher_query references to watcher_config, noted auto-reindex on rule registration

    Quality gates: 492 service tests, 28 plugin tests, zero lint/typecheck/knip errors.

    • [FIX-17] [FIX-19] fix: rename CLI config-reindex to reindex, fix stale doc refs, clean watch.ignored
    • [FIX-17] [DOCS] Resolve all docs warnings and root-level knip issues
    • [FIX-17] chore: remove changelogs (generated at build time)
    • [FIX-17] docs: update READMEs with renamed endpoints, tools, and new /walk endpoint
    • Release @karmaniverous/jeeves-watcher-openclaw v0.7.0
    • Release @karmaniverous/jeeves-watcher-openclaw v0.6.2
    • Document reindex.concurrency in published and dev skills
    • Release @karmaniverous/jeeves-watcher-openclaw v0.6.1
    • Release @karmaniverous/jeeves-watcher-openclaw v0.6.0
    • Add proactive bootstrap diagnostics to prompt injection
    • Add renderAs field to inference rule schema
    • Add renderAs to applyRules and buildMergedMetadata return types
    • (plugin) Add watcher_scan tool and update prompt injection
    • (service) Extract scrollPage/count helpers, eliminate DRY violations
    • (skill) Add watcher_scan tool section and query planning guidance
    • Add POST /scan and POST /rules/reapply to all documentation
    • Release @karmaniverous/jeeves-watcher-openclaw v0.6.0-0
    • (openclaw) Strengthen escalation rule with search-first guidance
    • Comprehensive documentation audit fixes
    • Release @karmaniverous/jeeves-watcher-openclaw v0.5.7
    • (openclaw) Clean up TOOLS.md watcher section on uninstall
    • Release @karmaniverous/jeeves-watcher-openclaw v0.5.6
    • (openclaw) Replace agent:bootstrap hook with disk-based TOOLS.md writer
    • (openclaw) Resolve lint and type errors in toolsWriter
    • Release @karmaniverous/jeeves-watcher-openclaw v0.5.5
    • Prevent watcher menu duplication in TOOLS.md injection
    • Release @karmaniverous/jeeves-watcher-openclaw v0.5.4
    • (openclaw) Use correct registerHook name for prompt injection (#82) (#82)
    • (openclaw) Add required name option to registerHook call
    • (openclaw) Rename hook registration to match plugin name
    • (openclaw) Align registerHook opts type with OpenClawPluginHookOptions
    • Fix
    • Fix
    • Release @karmaniverous/jeeves-watcher-openclaw v0.5.3
    • Inject ignored paths and expose watch config in merged document
    • Lintfix
    • Release @karmaniverous/jeeves-watcher-openclaw v0.5.1
    • Add api caching and agent bootstrap prompt injection
    • Make plugin cache TTL configurable and fix API port fallback mismatch
    • (skill) Clarify date normalization convention via toUnix helper
    • (skill) Add render/template authoring guidance and transformer definitions
    • (skill) Remove redundant Orientation Pattern and Quick Start step
    • Copy tsdoc.json into package directories
    • Release @karmaniverous/jeeves-watcher-openclaw v0.5.0
    • Complete Qdrant systemd setup and add WorkingDirectory to watcher service
    • Remove memory-core Gemini migration from bootstrap
    • Release @karmaniverous/jeeves-watcher-openclaw v0.4.2
    • (openclaw) Add complete bootstrap sequence to skill (#78) (#78)
    • Release @karmaniverous/jeeves-watcher-openclaw v0.4.1
    • (openclaw) [breaking] Remove memory slot takeover, simplify to pure extension
    • (openclaw) Correct embedding alignment config path in skill
    • (openclaw) Remove deployment-specific content from skill
    • (openclaw) Add deployment-discovery guidance to skill, prevent assumption of specific domains
    • Release @karmaniverous/jeeves-watcher-openclaw v0.4.0
    • (openclaw) Add memory โ†’ archive escalation pattern to skill
    • Change default port from 3456 to 1936 (#75) (#75)
    • Release @karmaniverous/jeeves-watcher-openclaw v0.3.13
    • (openclaw) Disable memory-core when installing with --memory
    • Lintfix
    • Release @karmaniverous/jeeves-watcher-openclaw v0.3.11
    • (openclaw) Brand memory tool responses with provider field
    • (openclaw) Skill proactive check matches positive case only
    • Release @karmaniverous/jeeves-watcher-openclaw v0.3.10
    • (openclaw) Add bootstrap, install modes, and proactive posture to skill
    • Release @karmaniverous/jeeves-watcher-openclaw v0.3.9
    • (openclaw) Decouple plugin from watcher config vocabulary
    • (openclaw) --memory flag for install CLI
    • Lintfix
    • Release @karmaniverous/jeeves-watcher-openclaw v0.3.8
    • Use domains (plural array) in virtual rules and search filter (#66) (#66)
    • Release @karmaniverous/jeeves-watcher-openclaw v0.3.7
    • POST /rules/reapply endpoint + plugin auto-reapply after registration (#65) (#65)
    • Release @karmaniverous/jeeves-watcher-openclaw v0.3.6
    • Use glob instead of pattern for virtual rule matching (case-insensitive on Windows)
    • Release @karmaniverous/jeeves-watcher-openclaw v0.3.5
    • NormalizePath preserves drive letter case to match service path normalization
    • Release @karmaniverous/jeeves-watcher-openclaw v0.3.4
    • Ensure text index on startup + re-register virtual rules after watcher restart (#60) (#60)
    • Release @karmaniverous/jeeves-watcher-openclaw v0.3.3
    • Plugin config lookup uses correct entry key (jeeves-watcher-openclaw) (#59) (#59)
    • Release @karmaniverous/jeeves-watcher-openclaw v0.3.2
    • Plugin installer now claims memory slot in OpenClaw config
    • Update test fixture to include slots for idempotency check (#58) (#58)
    • Release @karmaniverous/jeeves-watcher-openclaw v0.3.1
    • Memory slot takeover with virtual rules API (#49) (#49)
    • DRY fixes and comprehensive test coverage for openclaw package (#52) (#52)
    • Fix template syntax, stale references, and add missing API/tool docs
    • Release @karmaniverous/jeeves-watcher-openclaw v0.3.0
    • (openclaw) Use error.cause for precise connection error detection
    • (openclaw) Skill review feedback (#45) (#45)
    • (openclaw) Merge skills, simplify build, improve error messaging
    • Release @karmaniverous/jeeves-watcher-openclaw v0.2.0
    • Add install/uninstall CLI to bypass OpenClaw spawn EINVAL bug on Windows
    • Resolve lint errors in openclaw CLI and add rollup externals
    • Remove plugins.allow management from CLI, only manage entries and tools.allow
    • Conditionally manage plugins.allow only when already populated
    • Apply same conditional logic to tools.allow as plugins.allow
    • Document self-installer CLI and Windows spawn EINVAL workaround
    • Release @karmaniverous/jeeves-watcher-openclaw v0.1.2
    • Convert to monorepo with service and openclaw plugin packages
    • Added env local template
    • Package version 0
    • Add guides index pages for foldable typedoc sections
    • Fix docs, READMEs, and rollup config for monorepo
    • Align release-it config for monorepo
    • Release @karmaniverous/jeeves-watcher-openclaw v0.1.0
    • Fix monorepo release-it tags, plugin id, and version sync
    • Release @karmaniverous/jeeves-watcher-openclaw v0.1.1