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

    All notable changes to this project will be documented in this file. Dates are displayed in UTC.

    • feat: full core v0.5.1 adoption + fetchSiblings helper #177
    • feat: add fetchSiblings built-in JsonMap helper for contextual embedding #163
    • refactor: adopt createPluginToolset, ship watcher_service tool #174
    • refactor: adopt core createConfigApplyHandler for /config/apply #173
    • chore: update safe devDeps (vitest-eslint, knip, typescript-eslint) e6d6d39
    • refactor: SOLID/DRY pass across codebase 5a12f6b
    • fix: break circular dependencies, clean knip config 9837178
    • docs: update skill, READMEs, and diagrams for v0.17.0 f33d622
    • docs: sync all documentation and diagrams with implementation dd36465
    • npm audit fix de56ddf
    • feat: bump core to ^0.5.1, engine floor >=22, adopt getPackageVersion a032ff8
    • refactor: adopt core DEFAULT_PORTS for port constants bbf10fd
    • chore: release @karmaniverous/jeeves-watcher v0.17.0 20a1d4b
    • feat: wire gatewayUrl into ComponentWriter for cleanup escalation 5d6d58d
    • fix: remove unused JSON_TEXT_FIELDS export (knip) 8d11ebe
    • ci: drop Node 20 from Linux compatibility matrix 3601d14

    31 March 2026

    • feat: integrate core 0.4.6 - init before descriptor.run() #172
    • [CORE-046] feat: integrate core 0.4.6 — init() called before descriptor.run() 83d6d4a
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.13.2 31238ad
    • chore: release @karmaniverous/jeeves-watcher v0.16.3 fc80697

    31 March 2026

    • feat: integrate core 0.4.5 - add run callback to descriptor #170
    • fix: use package-directory for robust bundled CLI package root resolution #169
    • [PHASE-2] fix: use package-directory for robust package root resolution c1039b9
    • [CORE-045] feat: integrate core 0.4.5 - add run callback to descriptor 45a6400
    • [PHASE-2] fix: resolve package root for bundled CLI entry point 4fb5308
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.13.1 d89a8b9
    • chore: release @karmaniverous/jeeves-watcher v0.16.1 bdcbea6
    • chore: release @karmaniverous/jeeves-watcher v0.16.2 7ccb0f1

    30 March 2026

    • feat: core SDK adoption — descriptor, CLI factory, status handler [Phases 2-4] #166
    • feat: config path migration to jeeves-watcher/config.json (#149) #165
    • fix: pause + drain event queue during prune to prevent ECONNRESET under load #160
    • fix: QdrantClient write path leaks undici Agents #157
    • perf: ValuesManager binary serialization and debounced flush #156
    • fix: EnrichmentStore SQLite recovery on startup #155
    • fix: use getter for fileSystemWatcher in API handlers #154
    • [PHASE-2] feat: core 0.4.4 + Zod 4, dep updates, descriptor definition 197b5e8
    • [PHASE-2] [PHASE-3] feat: replace hand-rolled CLI with createServiceCli factory (S1) 8c09f76
    • fix: Linux CI compatibility — cross-platform path test and skip integration tests without Qdrant fce55e9
    • [PHASE-2] docs: sync all documentation with current implementation 34144b9
    • [PHASE-2] refactor: SOLID/DRY review — extract shared patterns, consolidate constants 300707e
    • [PHASE-2] test: improve coverage for touched code, remove trivial and dead tests edb8120
    • [PHASE-2] [PHASE-4] feat: plugin refactor — core CLI factory, simplified menu, new status shape 917a8e8
    • [PHASE-1] feat: config path migration to jeeves-watcher/config.json (#149) 03f3efd
    • npm audit fix c58a678
    • [PHASE-0] fix: improve Phase 0 fixes - add tests, graceful facets degradation, waitForIdleWorkers 3b6f015
    • [PHASE-0] [#162] fix: batch embedAndUpsert to prevent OOM on large files 8555815
    • [151] perf: ValuesManager binary serialization and debounced flush (#151) f3517fd
    • [153] fix: use getter for fileSystemWatcher in API handlers (#153) 4a81097
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.13.0 cc124d9
    • [PHASE-2] [PHASE-3] feat: adopt core status handler + getBindAddress (S2/S3) cebe47e
    • [152] fix: address PR review feedback on #152 0127d01
    • [PHASE-1] fix: address Gemini review - log migration errors, remove unused resolveConfigDir ad22e30
    • [150] fix: QdrantClient write path leaks undici Agents (#150) 8ff3286
    • chore: release @karmaniverous/jeeves-watcher v0.15.2 0d0a0be
    • chore: release @karmaniverous/jeeves-watcher v0.16.0 1ed3376
    • [PHASE-0] [#161] fix: catch async rejection in onRulesChanged instead of swallowing it 642001a
    • [PHASE-2] docs: align guide index structure with jeeves-server pattern 42a377b
    • Merge pull request #164 from karmaniverous/bugfix/phase-0-bug-fixes 9edfeda
    • [120] fix: pause event queue during prune to prevent ECONNRESET under load 5896afa
    • [150] refactor: address PR review feedback on #150 1474a8d
    • [PHASE-0] [#159] fix: add try/catch to facets handler for config and schema errors 675f382
    • ci: add linux-compat workflow via shared gha-workflows 76cc7e0
    • [153] test: simplify walk rebuild getter test cab9526
    • [120] fix: ensure queue resumes on all error paths (Gemini review) eaf0314
    • [151] refactor: address PR review feedback on #151 0002be9
    • [PHASE-0] fix: guard upsertBatchSize against zero/negative (Gemini review) 8bd7dda
    • [152] fix: EnrichmentStore SQLite recovery on startup (#152) 65becff
    • [120] fix: drain in-flight queue work before prune scroll 11342a9
    • Merge pull request #148 from karmaniverous/bugfix/linux-compat-tests fd56a59

    25 March 2026

    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.12.1 2616608
    • chore: release @karmaniverous/jeeves-watcher v0.15.1 20f2004
    • chore: bump @karmaniverous/jeeves to 0.3.1 a5a6324
    • ci: add permissions block to Deploy Docs caller workflow 7aed6d8
    • chore: trigger CI 1b88950

    24 March 2026

    • feat: hot-reload and bugfixes v0.15.0 #147
    • feat: add full hot-reload with watcher rebuild on config change #113
    • fix: close EnrichmentStore on shutdown (#145), fix schema path resolution in metadata validation #116
    • refactor: convert remaining captured config refs to getters in status, render, walk, search handlers (SOLID/DRY) c262e63
    • refactor: replace captured config with getter pattern in API handlers (#144, #146) 89a568c
    • chore: remove temporary TASK.md 33e8181
    • perf: cache compiled rules in configMatch handler, invalidate on config change c1821ca
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.12.0 bf542de
    • chore: release @karmaniverous/jeeves-watcher v0.15.0 199cf02
    • chore: un-export unused types flagged by knip 4532c6d
    • docs: update watcher_config_apply skill text to reflect hot-reload capability 642dc80

    23 March 2026

    • feat: move detection and durable enrichment store #143
    • feat: add EnrichmentStore and composable merge utility 50dc78e
    • feat: add MoveCorrelator and wire into FileSystemWatcher 4012ad5
    • refactor: wire EnrichmentStore into processor, remove sidecar metadata system 49deb30
    • chore: release @karmaniverous/jeeves-watcher v0.14.0 c510b0f
    • feat: implement DocumentProcessor.moveFile for zero-embedding moves d4c3a87
    • feat: extend interfaces for move detection and enrichment store 8c3b109
    • feat: add ContentHashCache for move detection 0130011
    • test: remove trivial tests, add move pipeline integration tests 62cb933
    • npm audit fix e93ece6
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.11.0 eab6a75
    • docs: sync README, SKILL.md with v0.14.0 implementation (move detection, enrichment store) c0bf11e

    23 March 2026

    • feat: upgrade @karmaniverous/jeeves to ^0.3.0 #141
    • feat: upgrade @karmaniverous/jeeves to ^0.3.0 #140
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.10.0 09f1498
    • chore: release @karmaniverous/jeeves-watcher v0.13.0 ba76250

    21 March 2026

    • feat: adopt @karmaniverous/jeeves core v0.2.0 SDK #138
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.9.0 746f79d
    • chore: release @karmaniverous/jeeves-watcher v0.12.0 a31a0c1

    19 March 2026

    • fix(openclaw): bundle @karmaniverous/jeeves into plugin output #130
    • fix(openclaw): copy core content/ at build time, simplify rollup externals bdb6890
    • refactor(openclaw): use core resolveWorkspacePath from @karmaniverous/jeeves@0.1.4 35d2e47
    • fix(openclaw): add 10s timeout to menu generation fetch calls 3902554
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.8.1 e2fdb78
    • chore: release @karmaniverous/jeeves-watcher v0.11.1 1152601
    • feat(openclaw): update to @karmaniverous/jeeves@0.1.6, add servicePackage/pluginPackage fc0a16c
    • fix(openclaw): update @karmaniverous/jeeves to 0.1.5 (workspace path priority fix) 6e22dc5
    • fix(openclaw): update @karmaniverous/jeeves to 0.1.3 (content path fix) 2429876
    • fix(openclaw): include content/ in CLI installer copy list 29ef2e5

    18 March 2026

    • feat(openclaw): adopt @karmaniverous/jeeves core components #129
    • docs: add embedding cost behavioral gate to plugin SKILL.md #126
    • fix: use chokidar getWatched() for /walk endpoint #123
    • [FIX-122] fix: use chokidar getWatched() for /walk endpoint instead of filesystem traversal #122
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.8.0 b462ff9
    • chore: release @karmaniverous/jeeves-watcher v0.11.0 0f5a404
    • chore(openclaw): update dev dependencies 2780581
    • docs: sync documentation with implementation, replace Mermaid/ASCII with PlantUML diagrams a035758
    • refactor(openclaw): upgrade to @karmaniverous/jeeves v0.1.1, use createAsyncContentCache, static imports, real integration tests a9e5eb8
    • refactor(openclaw): resolve SOLID/DRY violations 6a1598c
    • test(openclaw): remove trivial typeof tests, add getApiUrl/getConfigRoot coverage 366d604
    • test(openclaw): add watcherComponent unit tests, document ServiceCommands in spec 6549007
    • fix(openclaw): derive plugin version from package.json instead of hardcoding 8932574
    • chore: release @karmaniverous/jeeves-watcher v0.10.1 3c4e482
    • refactor: use path.join() for getWatchedFiles path construction 41315a3
    • Add footer with credits and love note 3402c9c
    • Update README.md 03885cd
    • fix: add tagPrefix to auto-changelog config for monorepo tags 035ed94
    • docs: remove duplicate reindex entry from root README CLI table 0995a97

    15 March 2026

    • feat: API consolidation, walk endpoint, auto rules-reindex (Fixes 17-21) #121
    • feat: v0.10.0 correctness and observability release #117
    • fix: add nocase to fileScan picomatch calls #115
    • [107] fix: remove HTML escaping from renderDoc markdown output #108
    • [107] fix: remove HTML escaping from renderDoc markdown output #107
    • [FIX-17] chore: gitignore generated docs directories 96f6610
    • [FIX-17] [DOCS] Resolve all docs warnings and root-level knip issues c855d3f
    • [FIX-17] chore: remove changelogs (generated at build time) ad23fa9
    • [FIX-14] feat: prune reindex scope, blast area plan, dryRun (Fix 14) c2b1c9f
    • [FIX-17][FIX-18][FIX-19] feat: API Consolidation (Phase 8) 750803a
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.7.0 5285b26
    • chore: release @karmaniverous/jeeves-watcher v0.10.0 0fb8183
    • [FIX-17] [FIX-20][FIX-21] Phase 9: POST /walk endpoint, watcher_walk tool, auto rules-reindex on rule registration aadd6fe
    • [FIX-17] [REFACTOR] DRY/SOLID pass: extract helpers, consolidate walk functions, separate onRulesChanged 3870ff5
    • [FIX-15] feat: initial scan visibility + prune scroll resilience (Fixes 15+16) 058ebcf
    • [FIX-17] [TEST] Add missing test coverage: fileScan walk functions, extractMatchGlobs, rules+path reindex, createIsGitignored cf4879c
    • [V0_10_0] chore: fix lint errors in promptInjection, clean up knip config, regenerate schema 5815c94
    • [V0_10_0] feat: add scope validation, rules and path reindex scopes (Fixes 1, 2, 13) 9f693db
    • [FIX-14] docs: update all guides for reindex scopes, dryRun, plan, and version 7f2e3e3
    • [V0_10_0] feat: version in /status, live scoreThresholds, virtual rule template rebuild, remove dead config keys (Fixes 6, 10, 12) 39ff1ff
    • [FIX-17] [FIX-19] fix: consolidate CLI reindex commands, fix scope validation, update dev plan e430d8a
    • [V0_10_0] test: fix mock dependencies and test assertions for reindex and cache handlers 93901de
    • [V0_10_0] fix: wire gitignore filter into reindex path, support standalone .gitignore (Fixes 3, 4) 1e3eaf1
    • [V0_10_0] fix: replace brittle glob parsing in path reindex with full file list + directory filter 335002e
    • feat(watcher): add initial scan statistics logging 06ea0b2
    • fix: use package-directory for version resolution in /status 33e3542
    • npm audit fix 579f19f
    • [V0_10_0] fix: return actionable error details from wrapHandler, fix withCache payload capture (Fixes 7, 9) ec7cb04
    • [FIX-17] [FIX-19] fix: rename CLI config-reindex to reindex, fix stale doc refs, clean watch.ignored 13e4869
    • [FIX-15] docs: add initialScan to api-reference and SKILL.md 34ee4a5
    • [FIX-15] fix: rename initialScan.filesProcessed to filesEnqueued for clarity 6ef93f6
    • [FIX-17] docs: update READMEs with renamed endpoints, tools, and new /walk endpoint d713830
    • [FIX-17] ci: add Deploy Docs workflow from jeeves-meta ee5cb65
    • [V0_10_0] docs: add score threshold guidance to SKILL.md, reference skill from TOOLS.md injection efae197
    • chore: release @karmaniverous/jeeves-watcher v0.9.7 fd439c2
    • chore: release @karmaniverous/jeeves-watcher v0.9.9 7b84256
    • npm audit fix 601840c
    • chore: release @karmaniverous/jeeves-watcher v0.9.8 cd86be1
    • [114] fix: add nocase to fileScan picomatch calls (#114) 5a28b8c
    • [FIX-17] chore: remove orphaned packages/service/docs, simplify gitignore df670b0

    12 March 2026

    • feat: glob/negation patterns in render.frontmatter #105
    • feat: support glob/negation patterns in render.frontmatter #104
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.6.2 200411d
    • chore: release @karmaniverous/jeeves-watcher v0.9.6 432b3c5

    10 March 2026

    • feat: add concurrent file processing for reindex using radash parallel #103
    • perf: use node:https with keep-alive for Gemini embedding (13s → 2-4s) #101
    • perf: replace LangChain Gemini wrapper with direct API (13s → ~1s search) #100
    • fix: skip live value aggregation for non-enumerated facet uiHint types #99
    • feat: add concurrent file processing for reindex using radash parallel #102
    • perf(service): replace LangChain Gemini wrapper with direct API calls 5b7c35b
    • fix(service): skip live value aggregation for non-enumerated facet uiHint types a048b9c
    • perf(service): use node:https with keep-alive agent for Gemini API b79709e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.6.1 de66cd0
    • chore: release @karmaniverous/jeeves-watcher v0.9.5 2e1bf8b
    • chore: release @karmaniverous/jeeves-watcher v0.9.2 e8c1b8f
    • chore: release @karmaniverous/jeeves-watcher v0.9.4 c6528b9
    • chore: release @karmaniverous/jeeves-watcher v0.9.3 e80f787
    • docs: document reindex.concurrency in published and dev skills d51fb40

    8 March 2026

    • chore: release @karmaniverous/jeeves-watcher v0.9.0-0 07004fc
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.6.0 6eff521
    • chore: release @karmaniverous/jeeves-watcher v0.9.0 9f210b1

    8 March 2026

    • feat: add POST /scan endpoint with cursor-based pagination #98
    • chore: re-encode .gitignore as UTF-8 #97
    • fix(values): decompose array metadata into individual trackable elements #96
    • fix: update values index before hash check in processFile #95
    • fix: pass valuesManager and issuesManager to config-reindex handler #94
    • fix: update values index during rules reindex #93
    • feat: v0.8.0 — renderAs, POST /render, GET /search/facets #92
    • feature: add proactive bootstrap diagnostics to prompt injection #91
    • updated docs 9d7f100
    • updated docs 07afc9d
    • updated docs 06e474c
    • feat: add GET /search/facets endpoint with schema-derived facet definitions 7ee8f03
    • refactor(service): extract scrollPage/count helpers, eliminate DRY violations e8978ec
    • feat(service): add POST /scan handler with cursor-based pagination 2ed435c
    • test: add render handler tests and buildMetadata last-match-wins test b119e5b
    • feat: add POST /render endpoint with isPathWatched and renderFile 0f86fd0
    • docs: add POST /scan and POST /rules/reapply to all documentation f61b2e4
    • fix(service): clean up scan handler and test lint issues 7caaf24
    • docs: add v0.8.0 documentation for renderAs, POST /render, GET /search/facets a8c4691
    • chore(deps): upgrade dependencies (eslint pinned to v9) 6b6cb66
    • feat: add Cache-Control no-cache support to withCache, wrap /render endpoint 104a6f9
    • feat: add renderAs field to inference rule schema 9202b61
    • npm audit fix ddf2c57
    • fix(facets): reject object-type properties as facets, validate uiHint types 12a91e3
    • feat: add renderAs to applyRules and buildMergedMetadata return types 7d91be7
    • docs(skill): add watcher_scan tool section and query planning guidance 3b51bf8
    • feat(plugin): add watcher_scan tool and update prompt injection e3738aa
    • fix(test): properly type mock deps in configReindex.test.ts 98ba53f
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.6.0-0 bf0bd2b
    • chore: release @karmaniverous/jeeves-watcher v0.8.0 4d6daaf
    • chore: release @karmaniverous/jeeves-watcher v0.8.5 0182d6a
    • fix(app): pass valuesManager to processor during initialization ca226c3
    • fix: update values index during rules reindex (processRulesUpdate) ed3b00a
    • style: format scrollPage return type cddedac
    • lintfix bcd21ca
    • lintfix b4b954e
    • chore: release @karmaniverous/jeeves-watcher v0.8.4 b02cf9a
    • chore: release @karmaniverous/jeeves-watcher v0.8.2 aa84c02
    • chore: release @karmaniverous/jeeves-watcher v0.8.1 e5bef11
    • docs(service): add TypeDoc for scrollPage return type fields 96c5491
    • chore: re-encode .gitignore as UTF-8 (was UTF-16 BOM from PowerShell) 0a51edf
    • updated diagrams 5565f37

    6 March 2026

    • docs: comprehensive documentation audit fixes #90
    • feat(openclaw): strengthen escalation rule with search-first guidance #89
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.5.7 5fa60d6

    5 March 2026

    • feat(openclaw): clean up TOOLS.md watcher section on uninstall #88
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.5.6 d982052

    5 March 2026

    • fix(openclaw): resolve lint and type errors in toolsWriter #87
    • feat(openclaw): replace agent:bootstrap hook with disk-based TOOLS.md writer #86
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.5.5 4154260

    5 March 2026

    • fix: prevent watcher menu duplication in TOOLS.md injection #85
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.5.4 4e865d0

    5 March 2026

    • fix(openclaw): align registerHook opts type with OpenClawPluginHookOptions #84
    • fix(openclaw): provide name option to registerHook #83
    • fix(openclaw): use correct registerHook name for prompt injection #82
    • bugfix: expose watch config and inject ignored paths #81
    • feat: renderDoc helper, date normalization schemas, port fix (v0.7.0) #80
    • chore: remove memory-core Gemini migration from bootstrap #79
    • feat(openclaw): add complete bootstrap sequence to skill #78
    • feat(openclaw)!: remove memory slot takeover #77
    • chore: change default port from 3456 to 1936 #75
    • chore: fix all eslint errors (210 → 0) #76
    • feat(openclaw): add memory → archive escalation pattern to skill #74
    • feat(openclaw): disable memory-core when installing with --memory #73
    • feat(openclaw): brand memory tool responses with provider field #71
    • docs(openclaw): add bootstrap, install modes, and proactive posture to skill #70
    • feat(openclaw): --memory flag for install CLI #69
    • feat(openclaw): decouple plugin from watcher config vocabulary #68
    • fix: fresh QdrantClient for write ops to avoid stale keep-alive ECONNRESET #67
    • fix: use domains (plural array) in virtual rules and search filter #66
    • feat: POST /rules/reapply endpoint + plugin auto-reapply after registration #65
    • fix: disable AJV strict mode to suppress schema type warnings #55
    • fix: case-insensitive glob matching in AJV rule keyword #64
    • fix: use glob instead of pattern for virtual rule matching #62
    • fix: normalizePath preserves drive letter case to match service #61
    • fix: ensure text index on startup + re-register virtual rules after watcher restart #60
    • fix: plugin config lookup uses correct entry key (jeeves-watcher-openclaw) #59
    • fix: update test fixture to include slots for idempotency check #58
    • chore: bump @karmaniverous/jsonmap to 2.1.1 #57
    • fix: plugin installer claims memory slot in OpenClaw config #56
    • docs: update guides for v0.6.0 changes #54
    • refactor: extract modules to fix 300 LOC violations #53
    • refactor: DRY fixes and comprehensive test coverage for openclaw package #52
    • refactor+test: service SOLID/DRY fixes + 54 new tests #51
    • feat: memory slot takeover with virtual rules API #49
    • feat: support external rule file references in inferenceRules config #50
    • feat(service): add hybrid search with BM25 text index and RRF fusion #48
    • feat(service): Handlebars set expressions + date normalization #47
    • feat(service): add filesystem date metadata and line offsets #46
    • fix(openclaw): skill review feedback #45
    • chore(openclaw): merge skills, simplify build, improve error messaging #44
    • docs: document self-installer CLI and Windows workaround #41
    • fix: resolve lint errors in openclaw CLI #40
    • feat: add install/uninstall CLI for OpenClaw plugin #39
    • chore: fix monorepo release-it tags, plugin id, and version sync #38
    • feat(service): add hybrid search with BM25 text index and RRF fusion (#48) #35
    • feat(service): add filesystem date metadata and line offsets (#46) #24
    • updated docs 3028f04
    • docs: update spec for dynamic system prompt injection and caching 216fc1d
    • feat(openclaw)!: remove memory slot takeover, simplify to pure extension 0b1bdcb
    • feat: add renderDoc helper and render block for structured document rendering 4d6eefa
    • feat: add api caching and agent bootstrap prompt injection 615d0f5
    • chore: copy tsdoc.json into package directories b27b408
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.0 97e2834
    • feat: add install/uninstall CLI to bypass OpenClaw spawn EINVAL bug on Windows 1ad7fbb
    • docs: fix template syntax, stale references, and add missing API/tool docs 8af92ef
    • refactor: review pass — remove dead code, DRY context, harden tests, use radash title c1b04f0
    • refactor: SOLID/DRY pass — extract buildSyntheticAttributes, shared sleep, deduplicate handlers 6a47b48
    • chore: release @karmaniverous/jeeves-watcher v0.7.0 ba46a96
    • fix: resolve Gemini PR feedback (XSS escaping, js-yaml dump, radash get) fb318eb
    • docs(skill): remove redundant Orientation Pattern and Quick Start step 1e722b5
    • fix: resolve eslint unbound-method and prettier errors 36b5803
    • fix: resolve lint errors in openclaw CLI and add rollup externals b4e8514
    • fix: add nocase and dot options to AJV glob keyword 3f7cb9b
    • fix: resolve helper file paths relative to configDir in /config/validate b67ac47
    • docs: document self-installer CLI and Windows spawn EINVAL workaround e3d6351
    • docs: promote spec implementation gaps to Next Version and Dev Plan eb4ee1a
    • chore: release @karmaniverous/jeeves-watcher v0.6.0 b7b207e
    • lintfix cd4c841
    • fix: use fresh QdrantClient for write ops to avoid stale keep-alive connections e8215d5
    • feat: make plugin cache TTL configurable and fix API port fallback mismatch fecb768
    • fix: complete Qdrant systemd setup and add WorkingDirectory to watcher service 88bba3e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.5.0 d458180
    • fix: restore strict typings in withCache and fix lint errors ccaeb6c
    • fix: inject ignored paths and expose watch config in merged document 05bb9e7
    • fix: apply same conditional logic to tools.allow as plugins.allow 4549569
    • chore: fix tsdoc warnings (add tsdoc.json, escape > chars in yamlEscape) 902156e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.0 3ce4950
    • fix(openclaw): remove deployment-specific content from skill 1df6a25
    • fix: plugin installer now claims memory slot in OpenClaw config 020c6cd
    • fix: remove plugins.allow management from CLI, only manage entries and tools.allow 64106b4
    • fix(openclaw): correct embedding alignment config path in skill 4965dec
    • fix: conditionally manage plugins.allow only when already populated c486c3a
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.2.0 a6d4d7e
    • fix(openclaw): use error.cause for precise connection error detection 3bdd267
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.2 c019f41
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.5.3 9eb67ce
    • chore: release @karmaniverous/jeeves-watcher v0.6.6 b64faf3
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.4.0 db0673c
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.6 e864fec
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.1 008e757
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.11 5ff129d
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.8 28a92a1
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.4 5b11938
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.1 de3215a
    • chore: release @karmaniverous/jeeves-watcher v0.7.1 48c0024
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.5.1 4ca2a63
    • docs: sync spec with PR 80 state, fix numbering, restore release checklist 8d37691
    • refactor: SOLID/DRY pass — deduplicate attributes, handlers, sleep; fix extractor registry beceeaf
    • chore: release @karmaniverous/jeeves-watcher v0.6.9 e22e72e
    • chore: release @karmaniverous/jeeves-watcher v0.6.4 b41bfc3
    • chore: release @karmaniverous/jeeves-watcher v0.6.2 fa2304d
    • lint:fix 4f13fb2
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.13 43d8d07
    • chore: release @karmaniverous/jeeves-watcher v0.6.7 a692378
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.4.2 fcd75a2
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.10 3b4b22c
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.9 97c635e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.5 837a941
    • chore: release @karmaniverous/jeeves-watcher v0.6.1 037d9c9
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.4.1 7863ad4
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.7 4c12277
    • fix: use glob instead of pattern for virtual rule matching (case-insensitive on Windows) 0526d5a
    • chore: release @karmaniverous/jeeves-watcher v0.6.3 da7414c
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.3 9db834e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.2 99be8d8
    • chore: release @karmaniverous/jeeves-watcher v0.6.8 a465d72
    • fix: read CLI version from package.json instead of hardcoding 22a9727
    • chore: release @karmaniverous/jeeves-watcher v0.6.5 1c5a7fe
    • lintfix 4bfe08e
    • fix: use consistent default port 1936 in server.listen() and schema description fe61181
    • fix: normalizePath preserves drive letter case to match service path normalization b79c8c4
    • lint:fix 0d86aea
    • docs: update spec for shared Platform Tools H1 injection pattern 230822a
    • chore: remove temp commit script 31d35a7
    • fix(openclaw): add required name option to registerHook call 545684c
    • fix(openclaw): add deployment-discovery guidance to skill, prevent assumption of specific domains 3da7cf3
    • lintfix d410046
    • fix(openclaw): skill proactive check matches positive case only 4e9be5f
    • docs(skill): clarify date normalization convention via toUnix helper 6f238bf
    • fix(openclaw): rename hook registration to match plugin name 0ca7b79
    • package version 0 eda1c58
    • docs(skill): add render/template authoring guidance and transformer definitions 69a45de
    • fix: revert unconditional ensureTextIndex from initialization.ts 7ae6b62

    25 February 2026

    5 March 2026

    • bugfix: expose watch config and inject ignored paths #81
    • feat: renderDoc helper, date normalization schemas, port fix (v0.7.0) #80
    • chore: remove memory-core Gemini migration from bootstrap #79
    • feat(openclaw): add complete bootstrap sequence to skill #78
    • feat(openclaw)!: remove memory slot takeover #77
    • chore: change default port from 3456 to 1936 #75
    • chore: fix all eslint errors (210 → 0) #76
    • feat(openclaw): add memory → archive escalation pattern to skill #74
    • feat(openclaw): disable memory-core when installing with --memory #73
    • feat(openclaw): brand memory tool responses with provider field #71
    • docs(openclaw): add bootstrap, install modes, and proactive posture to skill #70
    • feat(openclaw): --memory flag for install CLI #69
    • feat(openclaw): decouple plugin from watcher config vocabulary #68
    • fix: fresh QdrantClient for write ops to avoid stale keep-alive ECONNRESET #67
    • fix: use domains (plural array) in virtual rules and search filter #66
    • feat: POST /rules/reapply endpoint + plugin auto-reapply after registration #65
    • fix: disable AJV strict mode to suppress schema type warnings #55
    • fix: case-insensitive glob matching in AJV rule keyword #64
    • fix: use glob instead of pattern for virtual rule matching #62
    • fix: normalizePath preserves drive letter case to match service #61
    • fix: ensure text index on startup + re-register virtual rules after watcher restart #60
    • fix: plugin config lookup uses correct entry key (jeeves-watcher-openclaw) #59
    • fix: update test fixture to include slots for idempotency check #58
    • chore: bump @karmaniverous/jsonmap to 2.1.1 #57
    • fix: plugin installer claims memory slot in OpenClaw config #56
    • docs: update guides for v0.6.0 changes #54
    • refactor: extract modules to fix 300 LOC violations #53
    • refactor: DRY fixes and comprehensive test coverage for openclaw package #52
    • refactor+test: service SOLID/DRY fixes + 54 new tests #51
    • feat: memory slot takeover with virtual rules API #49
    • feat: support external rule file references in inferenceRules config #50
    • feat(service): add hybrid search with BM25 text index and RRF fusion #48
    • feat(service): Handlebars set expressions + date normalization #47
    • feat(service): add filesystem date metadata and line offsets #46
    • fix(openclaw): skill review feedback #45
    • chore(openclaw): merge skills, simplify build, improve error messaging #44
    • docs: document self-installer CLI and Windows workaround #41
    • fix: resolve lint errors in openclaw CLI #40
    • feat: add install/uninstall CLI for OpenClaw plugin #39
    • chore: fix monorepo release-it tags, plugin id, and version sync #38
    • feat: convert to monorepo with service and openclaw plugin packages #37
    • feat(service): add hybrid search with BM25 text index and RRF fusion (#48) #35
    • feat(service): add filesystem date metadata and line offsets (#46) #24
    • updated docs 3028f04
    • docs: update spec for dynamic system prompt injection and caching 216fc1d
    • feat(openclaw)!: remove memory slot takeover, simplify to pure extension 0b1bdcb
    • feat: add renderDoc helper and render block for structured document rendering 4d6eefa
    • feat: add api caching and agent bootstrap prompt injection 615d0f5
    • chore: copy tsdoc.json into package directories b27b408
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.0 97e2834
    • feat: add install/uninstall CLI to bypass OpenClaw spawn EINVAL bug on Windows 1ad7fbb
    • docs: fix template syntax, stale references, and add missing API/tool docs 8af92ef
    • refactor: review pass — remove dead code, DRY context, harden tests, use radash title c1b04f0
    • refactor: SOLID/DRY pass — extract buildSyntheticAttributes, shared sleep, deduplicate handlers 6a47b48
    • chore: release @karmaniverous/jeeves-watcher v0.7.0 ba46a96
    • fix: resolve Gemini PR feedback (XSS escaping, js-yaml dump, radash get) fb318eb
    • chore: fix docs, READMEs, and rollup config for monorepo 0b92399
    • docs(skill): remove redundant Orientation Pattern and Quick Start step 1e722b5
    • fix: resolve eslint unbound-method and prettier errors 36b5803
    • chore: align release-it config for monorepo 938a3e0
    • chore: make service package ESM-only, remove CJS and IIFE outputs 9a16492
    • fix: resolve lint errors in openclaw CLI and add rollup externals b4e8514
    • fix: add nocase and dot options to AJV glob keyword 3f7cb9b
    • fix: resolve helper file paths relative to configDir in /config/validate b67ac47
    • docs: document self-installer CLI and Windows spawn EINVAL workaround e3d6351
    • docs: promote spec implementation gaps to Next Version and Dev Plan eb4ee1a
    • chore: release @karmaniverous/jeeves-watcher v0.6.0 b7b207e
    • lintfix cd4c841
    • fix: use fresh QdrantClient for write ops to avoid stale keep-alive connections e8215d5
    • feat: make plugin cache TTL configurable and fix API port fallback mismatch fecb768
    • fix: complete Qdrant systemd setup and add WorkingDirectory to watcher service 88bba3e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.5.0 d458180
    • chore: convert repo to npm workspaces monorepo d8fc6e8
    • fix: restore strict typings in withCache and fix lint errors ccaeb6c
    • fix: inject ignored paths and expose watch config in merged document 05bb9e7
    • fix: apply same conditional logic to tools.allow as plugins.allow 4549569
    • chore: fix tsdoc warnings (add tsdoc.json, escape > chars in yamlEscape) 902156e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.0 3ce4950
    • docs: add guides index pages for foldable typedoc sections 1827505
    • fix(openclaw): remove deployment-specific content from skill 1df6a25
    • fix: plugin installer now claims memory slot in OpenClaw config 020c6cd
    • fix: remove plugins.allow management from CLI, only manage entries and tools.allow 64106b4
    • fix(openclaw): correct embedding alignment config path in skill 4965dec
    • fix: conditionally manage plugins.allow only when already populated c486c3a
    • chore: release @karmaniverous/jeeves-watcher v0.5.1 b11e44e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.2.0 a6d4d7e
    • fix(openclaw): use error.cause for precise connection error detection 3bdd267
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.2 c019f41
    • chore: release @karmaniverous/jeeves-watcher v0.6.6 b64faf3
    • chore: fix knip after monorepo split e16460b
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.4.0 db0673c
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.6 e864fec
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.1 008e757
    • added env local template 74aaa72
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.11 5ff129d
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.8 28a92a1
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.4 5b11938
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.1 de3215a
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.5.1 4ca2a63
    • docs: sync spec with PR 80 state, fix numbering, restore release checklist 8d37691
    • refactor: SOLID/DRY pass — deduplicate attributes, handlers, sleep; fix extractor registry beceeaf
    • chore: release @karmaniverous/jeeves-watcher v0.6.9 e22e72e
    • chore: release @karmaniverous/jeeves-watcher v0.6.4 b41bfc3
    • chore: release @karmaniverous/jeeves-watcher v0.6.2 fa2304d
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.13 43d8d07
    • chore: release @karmaniverous/jeeves-watcher v0.6.7 a692378
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.4.2 fcd75a2
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.10 3b4b22c
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.9 97c635e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.5 837a941
    • chore: release @karmaniverous/jeeves-watcher v0.6.1 037d9c9
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.4.1 7863ad4
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.7 4c12277
    • fix: use glob instead of pattern for virtual rule matching (case-insensitive on Windows) 0526d5a
    • chore: release @karmaniverous/jeeves-watcher v0.6.3 da7414c
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.3 9db834e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.2 99be8d8
    • chore: release @karmaniverous/jeeves-watcher v0.6.8 a465d72
    • fix: read CLI version from package.json instead of hardcoding 22a9727
    • chore: release @karmaniverous/jeeves-watcher v0.6.5 1c5a7fe
    • lintfix 4bfe08e
    • fix: use consistent default port 1936 in server.listen() and schema description fe61181
    • fix: normalizePath preserves drive letter case to match service path normalization b79c8c4
    • docs: update spec for shared Platform Tools H1 injection pattern 230822a
    • chore: remove temp commit script 31d35a7
    • fix(openclaw): add deployment-discovery guidance to skill, prevent assumption of specific domains 3da7cf3
    • lintfix d410046
    • fix(openclaw): skill proactive check matches positive case only 4e9be5f
    • docs(skill): clarify date normalization convention via toUnix helper 6f238bf
    • package version 0 eda1c58
    • docs(skill): add render/template authoring guidance and transformer definitions 69a45de
    • fix: revert unconditional ensureTextIndex from initialization.ts 7ae6b62
    • removed docs from release script 8878235

    25 February 2026

    5 March 2026

    • feat: renderDoc helper, date normalization schemas, port fix (v0.7.0) #80
    • chore: remove memory-core Gemini migration from bootstrap #79
    • feat(openclaw): add complete bootstrap sequence to skill #78
    • feat(openclaw)!: remove memory slot takeover #77
    • chore: change default port from 3456 to 1936 #75
    • chore: fix all eslint errors (210 → 0) #76
    • feat(openclaw): add memory → archive escalation pattern to skill #74
    • feat(openclaw): disable memory-core when installing with --memory #73
    • feat(openclaw): brand memory tool responses with provider field #71
    • docs(openclaw): add bootstrap, install modes, and proactive posture to skill #70
    • feat(openclaw): --memory flag for install CLI #69
    • feat(openclaw): decouple plugin from watcher config vocabulary #68
    • fix: fresh QdrantClient for write ops to avoid stale keep-alive ECONNRESET #67
    • fix: use domains (plural array) in virtual rules and search filter #66
    • feat: POST /rules/reapply endpoint + plugin auto-reapply after registration #65
    • fix: disable AJV strict mode to suppress schema type warnings #55
    • fix: case-insensitive glob matching in AJV rule keyword #64
    • fix: use glob instead of pattern for virtual rule matching #62
    • fix: normalizePath preserves drive letter case to match service #61
    • fix: ensure text index on startup + re-register virtual rules after watcher restart #60
    • fix: plugin config lookup uses correct entry key (jeeves-watcher-openclaw) #59
    • fix: update test fixture to include slots for idempotency check #58
    • chore: bump @karmaniverous/jsonmap to 2.1.1 #57
    • fix: plugin installer claims memory slot in OpenClaw config #56
    • docs: update guides for v0.6.0 changes #54
    • refactor: extract modules to fix 300 LOC violations #53
    • refactor: DRY fixes and comprehensive test coverage for openclaw package #52
    • refactor+test: service SOLID/DRY fixes + 54 new tests #51
    • feat: memory slot takeover with virtual rules API #49
    • feat: support external rule file references in inferenceRules config #50
    • feat(service): add hybrid search with BM25 text index and RRF fusion #48
    • feat(service): Handlebars set expressions + date normalization #47
    • feat(service): add filesystem date metadata and line offsets #46
    • fix(openclaw): skill review feedback #45
    • chore(openclaw): merge skills, simplify build, improve error messaging #44
    • docs: document self-installer CLI and Windows workaround #41
    • fix: resolve lint errors in openclaw CLI #40
    • feat: add install/uninstall CLI for OpenClaw plugin #39
    • chore: fix monorepo release-it tags, plugin id, and version sync #38
    • feat: convert to monorepo with service and openclaw plugin packages #37
    • docs(skill): add theory of operation, remove stale SKILL.md #36
    • feat: v0.5.0 — plugin expansion, two-skill architecture, API extensions #35
    • feat(service): add hybrid search with BM25 text index and RRF fusion (#48) #35
    • feat(service): add filesystem date metadata and line offsets (#46) #24
    • updated docs 3028f04
    • docs: update spec for dynamic system prompt injection and caching 216fc1d
    • feat(openclaw)!: remove memory slot takeover, simplify to pure extension 0b1bdcb
    • feat: add renderDoc helper and render block for structured document rendering 4d6eefa
    • chore: release v0.5.0 aa5a5aa
    • feat: add api caching and agent bootstrap prompt injection 615d0f5
    • chore: copy tsdoc.json into package directories b27b408
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.0 97e2834
    • feat: add install/uninstall CLI to bypass OpenClaw spawn EINVAL bug on Windows 1ad7fbb
    • docs: fix template syntax, stale references, and add missing API/tool docs 8af92ef
    • refactor: review pass — remove dead code, DRY context, harden tests, use radash title c1b04f0
    • refactor: SOLID/DRY pass — extract buildSyntheticAttributes, shared sleep, deduplicate handlers 6a47b48
    • chore: release @karmaniverous/jeeves-watcher v0.7.0 ba46a96
    • fix: resolve Gemini PR feedback (XSS escaping, js-yaml dump, radash get) fb318eb
    • chore: fix docs, READMEs, and rollup config for monorepo 0b92399
    • docs(skill): add theory of operation narrative, remove stale plugin/skill/SKILL.md 979993d
    • docs(skill): remove redundant Orientation Pattern and Quick Start step 1e722b5
    • fix: resolve eslint unbound-method and prettier errors 36b5803
    • chore: align release-it config for monorepo 938a3e0
    • chore: make service package ESM-only, remove CJS and IIFE outputs 9a16492
    • fix: resolve lint errors in openclaw CLI and add rollup externals b4e8514
    • fix: add nocase and dot options to AJV glob keyword 3f7cb9b
    • fix: resolve helper file paths relative to configDir in /config/validate b67ac47
    • docs: document self-installer CLI and Windows spawn EINVAL workaround e3d6351
    • docs: promote spec implementation gaps to Next Version and Dev Plan eb4ee1a
    • chore: release @karmaniverous/jeeves-watcher v0.6.0 b7b207e
    • lintfix cd4c841
    • fix: use fresh QdrantClient for write ops to avoid stale keep-alive connections e8215d5
    • feat: make plugin cache TTL configurable and fix API port fallback mismatch fecb768
    • fix: complete Qdrant systemd setup and add WorkingDirectory to watcher service 88bba3e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.5.0 d458180
    • chore: convert repo to npm workspaces monorepo d8fc6e8
    • fix: apply same conditional logic to tools.allow as plugins.allow 4549569
    • chore: fix tsdoc warnings (add tsdoc.json, escape > chars in yamlEscape) 902156e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.0 3ce4950
    • docs: add guides index pages for foldable typedoc sections 1827505
    • fix(openclaw): remove deployment-specific content from skill 1df6a25
    • fix: plugin installer now claims memory slot in OpenClaw config 020c6cd
    • fix: remove plugins.allow management from CLI, only manage entries and tools.allow 64106b4
    • fix(openclaw): correct embedding alignment config path in skill 4965dec
    • fix: conditionally manage plugins.allow only when already populated c486c3a
    • chore: release @karmaniverous/jeeves-watcher v0.5.1 b11e44e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.2.0 a6d4d7e
    • fix(openclaw): use error.cause for precise connection error detection 3bdd267
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.2 c019f41
    • chore: release @karmaniverous/jeeves-watcher v0.6.6 b64faf3
    • chore: fix knip after monorepo split e16460b
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.4.0 db0673c
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.6 e864fec
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.1 008e757
    • added env local template 74aaa72
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.11 5ff129d
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.8 28a92a1
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.4 5b11938
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.1 de3215a
    • docs: sync spec with PR 80 state, fix numbering, restore release checklist 8d37691
    • refactor: SOLID/DRY pass — deduplicate attributes, handlers, sleep; fix extractor registry beceeaf
    • chore: release @karmaniverous/jeeves-watcher v0.6.9 e22e72e
    • chore: release @karmaniverous/jeeves-watcher v0.6.4 b41bfc3
    • chore: release @karmaniverous/jeeves-watcher v0.6.2 fa2304d
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.13 43d8d07
    • chore: release @karmaniverous/jeeves-watcher v0.6.7 a692378
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.4.2 fcd75a2
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.10 3b4b22c
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.9 97c635e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.5 837a941
    • chore: release @karmaniverous/jeeves-watcher v0.6.1 037d9c9
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.4.1 7863ad4
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.7 4c12277
    • fix: use glob instead of pattern for virtual rule matching (case-insensitive on Windows) 0526d5a
    • chore: release @karmaniverous/jeeves-watcher v0.6.3 da7414c
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.3 9db834e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.2 99be8d8
    • chore: release @karmaniverous/jeeves-watcher v0.6.8 a465d72
    • fix: read CLI version from package.json instead of hardcoding 22a9727
    • chore: release @karmaniverous/jeeves-watcher v0.6.5 1c5a7fe
    • fix: use consistent default port 1936 in server.listen() and schema description fe61181
    • fix: normalizePath preserves drive letter case to match service path normalization b79c8c4
    • docs: update spec for shared Platform Tools H1 injection pattern 230822a
    • chore: remove temp commit script 31d35a7
    • fix(openclaw): add deployment-discovery guidance to skill, prevent assumption of specific domains 3da7cf3
    • lintfix d410046
    • fix(openclaw): skill proactive check matches positive case only 4e9be5f
    • docs(skill): clarify date normalization convention via toUnix helper 6f238bf
    • package version 0 eda1c58
    • docs(skill): add render/template authoring guidance and transformer definitions 69a45de
    • fix: revert unconditional ensureTextIndex from initialization.ts 7ae6b62
    • removed docs from release script 8878235

    25 February 2026

    • docs: export missing symbols, add TSDoc, fix typedoc warnings 85f5f02
    • chore: release v0.5.0-1 2b330da

    25 February 2026

    • chore: release v0.5.0-0 0c181d9
    • docs: complete v0.5.0 documentation pass e563ee8
    • docs: fix TypeDoc warnings — constructor params, JsonFileStore props, handlebars highlight 388bed4
    • feat(schema): implement Phase 1 - core schema system 4b538ad
    • feat: foundation for v0.5.0 - issues, values, named rules, config schema a81cfa9
    • refactor(DRY): split config schemas into logical modules fc24cb4
    • feat: API endpoints for v0.5.0 — query validate apply issues reindex tracking 97b0f75
    • feat: validate metadata and align issues + skill docs 1ffdc0c
    • feat: helper namespace prefixing and JSDoc introspection ffbaba5
    • docs: update guides for v0.5.0 endpoints, config, and CLI 0c79850
    • feat: complete v2 spec implementation gaps (P0-P2) fa45008
    • refactor: DRY helper module loading into shared utility fef881a
    • test: add critical test coverage for utilities and handlers b9b94d7
    • refactor(DRY): add withApiOptions helper for CLI commands 26df301
    • fix: replace eslint-disable comments with properly typed mocks 025e322
    • feat: expand plugin to 8 tools for v0.5.0 bde15f4
    • refactor(SRP): extract app initialization logic to separate module 63147f4
    • feat: two-skill architecture with build pipeline 898db5e
    • refactor(SRP/OCP): split embedding providers into separate files d07f4c9
    • refactor: extract shared mergeAndValidateConfig aecab7f
    • test: update test files to use new schema format 336ff00
    • refactor: extract shared executeReindex to eliminate duplication 7658108
    • test: add DocumentProcessor unit tests 987012f
    • test: add more critical test coverage 233082c
    • feat: implement Phase 3 API endpoints eb697cf
    • refactor(DIP): introduce VectorStore interface and update consumers 1975dee
    • refactor(DRY): extract repeated patterns to utilities 12842de
    • fix: resolve all lint errors in test files and wrapHandler bbcde3f
    • refactor: DRY API handler error handling with wrapHandler; fix writeFileSync in configApply 8995d2e
    • test: add EventQueue tests 93a7eab
    • refactor: extract JsonFileStore base for issues/values c36112f
    • test: add mergedDocument tests 41a2561
    • revert: remove manual CHANGELOG.md edits (auto-generated on release) c20e149
    • test: add configValidate handler tests 00d52fd
    • test: add configApply handler tests 5fb3b43
    • test: add configQuery handler tests 6adfcab
    • fix: resolve all STAN lint errors and reduce docs warnings 062594f
    • refactor(DIP): add DocumentProcessor interface and update factory/consumers 8a30433
    • refactor(ISP): convert buildMergedMetadata to options object pattern 0d67913
    • fix: resolveReferences only resolves known config reference positions 1890bf9
    • fix(lint): address majority of lint issues in new tests aec00f8
    • test: add configReindex handler tests 506b638
    • refactor(ISP): narrow API handler deps to required fields 309daa3
    • fix: resolve lint errors and align tests with spec 29c5217
    • refactor(SRP): extract shared template/map helper wiring from JeevesWatcher 7d1b629
    • test: add ReindexTracker tests 5830048
    • refactor(DRY): extract vectorStore payload type inference 8f70a7c
    • fix: implement actual rule matching in testPaths validation dba6f4e
    • refactor(DRY): align logError helper signature with standard pattern a014202
    • refactor: centralize processor payload field names 34836ce
    • refactor(DRY): apply logError utility in DocumentProcessor 42f5b3e
    • fix: resolve typecheck errors in tests and initialization 47b92e1
    • refactor(OCP): allow custom extractors via additionalExtractors parameter 36b7ae2
    • fix(lint): resolve unsafe-assignment and unbound-method in tests 9e41021
    • chore: tune docs warnPattern to ignore Zod enum TSDoc warnings b09909a

    23 February 2026

    • fix: use pathToFileURL for dynamic imports on Windows #31
    • fix: use pathToFileURL for dynamic imports on Windows (#31) #30
    • chore: release v0.4.4 f3a284c

    23 February 2026

    • feat: support custom JsonMap lib functions via config #29
    • chore: release v0.4.3 8b82d0c

    23 February 2026

    1 March 2026

    • chore: remove memory-core Gemini migration from bootstrap #79
    • feat(openclaw): add complete bootstrap sequence to skill #78
    • feat(openclaw)!: remove memory slot takeover #77
    • chore: change default port from 3456 to 1936 #75
    • chore: fix all eslint errors (210 → 0) #76
    • feat(openclaw): add memory → archive escalation pattern to skill #74
    • feat(openclaw): disable memory-core when installing with --memory #73
    • feat(openclaw): brand memory tool responses with provider field #71
    • docs(openclaw): add bootstrap, install modes, and proactive posture to skill #70
    • feat(openclaw): --memory flag for install CLI #69
    • feat(openclaw): decouple plugin from watcher config vocabulary #68
    • fix: fresh QdrantClient for write ops to avoid stale keep-alive ECONNRESET #67
    • fix: use domains (plural array) in virtual rules and search filter #66
    • feat: POST /rules/reapply endpoint + plugin auto-reapply after registration #65
    • fix: disable AJV strict mode to suppress schema type warnings #55
    • fix: case-insensitive glob matching in AJV rule keyword #64
    • fix: use glob instead of pattern for virtual rule matching #62
    • fix: normalizePath preserves drive letter case to match service #61
    • fix: ensure text index on startup + re-register virtual rules after watcher restart #60
    • fix: plugin config lookup uses correct entry key (jeeves-watcher-openclaw) #59
    • fix: update test fixture to include slots for idempotency check #58
    • chore: bump @karmaniverous/jsonmap to 2.1.1 #57
    • fix: plugin installer claims memory slot in OpenClaw config #56
    • docs: update guides for v0.6.0 changes #54
    • refactor: extract modules to fix 300 LOC violations #53
    • refactor: DRY fixes and comprehensive test coverage for openclaw package #52
    • refactor+test: service SOLID/DRY fixes + 54 new tests #51
    • feat: memory slot takeover with virtual rules API #49
    • feat: support external rule file references in inferenceRules config #50
    • feat(service): add hybrid search with BM25 text index and RRF fusion #48
    • feat(service): Handlebars set expressions + date normalization #47
    • feat(service): add filesystem date metadata and line offsets #46
    • fix(openclaw): skill review feedback #45
    • chore(openclaw): merge skills, simplify build, improve error messaging #44
    • docs: document self-installer CLI and Windows workaround #41
    • fix: resolve lint errors in openclaw CLI #40
    • feat: add install/uninstall CLI for OpenClaw plugin #39
    • chore: fix monorepo release-it tags, plugin id, and version sync #38
    • feat: convert to monorepo with service and openclaw plugin packages #37
    • docs(skill): add theory of operation, remove stale SKILL.md #36
    • feat: v0.5.0 — plugin expansion, two-skill architecture, API extensions #35
    • fix: use pathToFileURL for dynamic imports on Windows #31
    • feat: support custom JsonMap lib functions via config #29
    • fix: resolve file path references in named maps config #28
    • feat(service): add hybrid search with BM25 text index and RRF fusion (#48) #35
    • feat(service): add filesystem date metadata and line offsets (#46) #24
    • fix: use pathToFileURL for dynamic imports on Windows (#31) #30
    • updated docs 3028f04
    • chore: release v0.5.0-0 0c181d9
    • docs: complete v0.5.0 documentation pass e563ee8
    • docs: export missing symbols, add TSDoc, fix typedoc warnings 85f5f02
    • docs: fix TypeDoc warnings — constructor params, JsonFileStore props, handlebars highlight 388bed4
    • feat(openclaw)!: remove memory slot takeover, simplify to pure extension 0b1bdcb
    • feat(schema): implement Phase 1 - core schema system 4b538ad
    • feat: foundation for v0.5.0 - issues, values, named rules, config schema a81cfa9
    • refactor(DRY): split config schemas into logical modules fc24cb4
    • feat: API endpoints for v0.5.0 — query validate apply issues reindex tracking 97b0f75
    • feat: validate metadata and align issues + skill docs 1ffdc0c
    • chore: release v0.5.0 aa5a5aa
    • chore: release v0.5.0-1 2b330da
    • feat: helper namespace prefixing and JSDoc introspection ffbaba5
    • docs: update guides for v0.5.0 endpoints, config, and CLI 0c79850
    • feat: complete v2 spec implementation gaps (P0-P2) fa45008
    • chore: release v0.4.3 8b82d0c
    • chore: release v0.4.2 4ea9215
    • chore: release v0.4.4 f3a284c
    • refactor: DRY helper module loading into shared utility fef881a
    • test: add critical test coverage for utilities and handlers b9b94d7
    • refactor(DRY): add withApiOptions helper for CLI commands 26df301
    • fix: replace eslint-disable comments with properly typed mocks 025e322
    • feat: expand plugin to 8 tools for v0.5.0 bde15f4
    • refactor(SRP): extract app initialization logic to separate module 63147f4
    • feat: two-skill architecture with build pipeline 898db5e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.0 97e2834
    • refactor(SRP/OCP): split embedding providers into separate files d07f4c9
    • feat: add install/uninstall CLI to bypass OpenClaw spawn EINVAL bug on Windows 1ad7fbb
    • docs: fix template syntax, stale references, and add missing API/tool docs 8af92ef
    • refactor: extract shared mergeAndValidateConfig aecab7f
    • test: update test files to use new schema format 336ff00
    • refactor: extract shared executeReindex to eliminate duplication 7658108
    • test: add DocumentProcessor unit tests 987012f
    • test: add more critical test coverage 233082c
    • feat: implement Phase 3 API endpoints eb697cf
    • refactor(DIP): introduce VectorStore interface and update consumers 1975dee
    • refactor(DRY): extract repeated patterns to utilities 12842de
    • chore: fix docs, READMEs, and rollup config for monorepo 0b92399
    • fix: resolve all lint errors in test files and wrapHandler bbcde3f
    • docs(skill): add theory of operation narrative, remove stale plugin/skill/SKILL.md 979993d
    • refactor: DRY API handler error handling with wrapHandler; fix writeFileSync in configApply 8995d2e
    • test: add EventQueue tests 93a7eab
    • refactor: extract JsonFileStore base for issues/values c36112f
    • test: add mergedDocument tests 41a2561
    • revert: remove manual CHANGELOG.md edits (auto-generated on release) c20e149
    • test: add configValidate handler tests 00d52fd
    • test: add configApply handler tests 5fb3b43
    • fix: resolve eslint unbound-method and prettier errors 36b5803
    • chore: align release-it config for monorepo 938a3e0
    • test: add configQuery handler tests 6adfcab
    • fix: resolve all STAN lint errors and reduce docs warnings 062594f
    • refactor(DIP): add DocumentProcessor interface and update factory/consumers 8a30433
    • refactor(ISP): convert buildMergedMetadata to options object pattern 0d67913
    • chore: make service package ESM-only, remove CJS and IIFE outputs 9a16492
    • fix: resolveReferences only resolves known config reference positions 1890bf9
    • fix(lint): address majority of lint issues in new tests aec00f8
    • test: add configReindex handler tests 506b638
    • fix: resolve lint errors in openclaw CLI and add rollup externals b4e8514
    • refactor(ISP): narrow API handler deps to required fields 309daa3
    • fix: add nocase and dot options to AJV glob keyword 3f7cb9b
    • fix: resolve lint errors and align tests with spec 29c5217
    • docs: document self-installer CLI and Windows spawn EINVAL workaround e3d6351
    • refactor(SRP): extract shared template/map helper wiring from JeevesWatcher 7d1b629
    • chore: release @karmaniverous/jeeves-watcher v0.6.0 b7b207e
    • test: add ReindexTracker tests 5830048
    • lintfix cd4c841
    • refactor(DRY): extract vectorStore payload type inference 8f70a7c
    • fix: use fresh QdrantClient for write ops to avoid stale keep-alive connections e8215d5
    • fix: implement actual rule matching in testPaths validation dba6f4e
    • fix: complete Qdrant systemd setup and add WorkingDirectory to watcher service 88bba3e
    • chore: convert repo to npm workspaces monorepo d8fc6e8
    • fix: apply same conditional logic to tools.allow as plugins.allow 4549569
    • refactor(DRY): align logError helper signature with standard pattern a014202
    • refactor: centralize processor payload field names 34836ce
    • refactor(DRY): apply logError utility in DocumentProcessor 42f5b3e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.0 3ce4950
    • docs: add guides index pages for foldable typedoc sections 1827505
    • fix(openclaw): remove deployment-specific content from skill 1df6a25
    • fix: plugin installer now claims memory slot in OpenClaw config 020c6cd
    • fix: remove plugins.allow management from CLI, only manage entries and tools.allow 64106b4
    • fix(openclaw): correct embedding alignment config path in skill 4965dec
    • fix: conditionally manage plugins.allow only when already populated c486c3a
    • chore: release @karmaniverous/jeeves-watcher v0.5.1 b11e44e
    • fix: resolve typecheck errors in tests and initialization 47b92e1
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.2.0 a6d4d7e
    • fix(openclaw): use error.cause for precise connection error detection 3bdd267
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.2 c019f41
    • refactor(OCP): allow custom extractors via additionalExtractors parameter 36b7ae2
    • chore: release @karmaniverous/jeeves-watcher v0.6.6 b64faf3
    • chore: fix knip after monorepo split e16460b
    • fix(lint): resolve unsafe-assignment and unbound-method in tests 9e41021
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.4.0 db0673c
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.6 e864fec
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.1 008e757
    • added env local template 74aaa72
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.11 5ff129d
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.8 28a92a1
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.4 5b11938
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.1 de3215a
    • chore: release @karmaniverous/jeeves-watcher v0.6.9 e22e72e
    • chore: release @karmaniverous/jeeves-watcher v0.6.4 b41bfc3
    • chore: release @karmaniverous/jeeves-watcher v0.6.2 fa2304d
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.13 43d8d07
    • chore: release @karmaniverous/jeeves-watcher v0.6.7 a692378
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.4.2 fcd75a2
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.10 3b4b22c
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.9 97c635e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.5 837a941
    • chore: release @karmaniverous/jeeves-watcher v0.6.1 037d9c9
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.4.1 7863ad4
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.7 4c12277
    • fix: use glob instead of pattern for virtual rule matching (case-insensitive on Windows) 0526d5a
    • chore: release @karmaniverous/jeeves-watcher v0.6.3 da7414c
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.3 9db834e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.2 99be8d8
    • chore: release @karmaniverous/jeeves-watcher v0.6.8 a465d72
    • fix: read CLI version from package.json instead of hardcoding 22a9727
    • chore: release @karmaniverous/jeeves-watcher v0.6.5 1c5a7fe
    • fix: normalizePath preserves drive letter case to match service path normalization b79c8c4
    • chore: remove temp commit script 31d35a7
    • fix(openclaw): add deployment-discovery guidance to skill, prevent assumption of specific domains 3da7cf3
    • lintfix d410046
    • fix(openclaw): skill proactive check matches positive case only 4e9be5f
    • package version 0 eda1c58
    • chore: tune docs warnPattern to ignore Zod enum TSDoc warnings b09909a
    • fix: revert unconditional ensureTextIndex from initialization.ts 7ae6b62
    • removed docs from release script 8878235

    23 February 2026

    1 March 2026

    • feat(openclaw): add complete bootstrap sequence to skill #78
    • feat(openclaw)!: remove memory slot takeover #77
    • chore: change default port from 3456 to 1936 #75
    • chore: fix all eslint errors (210 → 0) #76
    • feat(openclaw): add memory → archive escalation pattern to skill #74
    • feat(openclaw): disable memory-core when installing with --memory #73
    • feat(openclaw): brand memory tool responses with provider field #71
    • docs(openclaw): add bootstrap, install modes, and proactive posture to skill #70
    • feat(openclaw): --memory flag for install CLI #69
    • feat(openclaw): decouple plugin from watcher config vocabulary #68
    • fix: fresh QdrantClient for write ops to avoid stale keep-alive ECONNRESET #67
    • fix: use domains (plural array) in virtual rules and search filter #66
    • feat: POST /rules/reapply endpoint + plugin auto-reapply after registration #65
    • fix: disable AJV strict mode to suppress schema type warnings #55
    • fix: case-insensitive glob matching in AJV rule keyword #64
    • fix: use glob instead of pattern for virtual rule matching #62
    • fix: normalizePath preserves drive letter case to match service #61
    • fix: ensure text index on startup + re-register virtual rules after watcher restart #60
    • fix: plugin config lookup uses correct entry key (jeeves-watcher-openclaw) #59
    • fix: update test fixture to include slots for idempotency check #58
    • chore: bump @karmaniverous/jsonmap to 2.1.1 #57
    • fix: plugin installer claims memory slot in OpenClaw config #56
    • docs: update guides for v0.6.0 changes #54
    • refactor: extract modules to fix 300 LOC violations #53
    • refactor: DRY fixes and comprehensive test coverage for openclaw package #52
    • refactor+test: service SOLID/DRY fixes + 54 new tests #51
    • feat: memory slot takeover with virtual rules API #49
    • feat: support external rule file references in inferenceRules config #50
    • feat(service): add hybrid search with BM25 text index and RRF fusion #48
    • feat(service): Handlebars set expressions + date normalization #47
    • feat(service): add filesystem date metadata and line offsets #46
    • fix(openclaw): skill review feedback #45
    • chore(openclaw): merge skills, simplify build, improve error messaging #44
    • docs: document self-installer CLI and Windows workaround #41
    • fix: resolve lint errors in openclaw CLI #40
    • feat: add install/uninstall CLI for OpenClaw plugin #39
    • chore: fix monorepo release-it tags, plugin id, and version sync #38
    • feat: convert to monorepo with service and openclaw plugin packages #37
    • docs(skill): add theory of operation, remove stale SKILL.md #36
    • feat: v0.5.0 — plugin expansion, two-skill architecture, API extensions #35
    • fix: use pathToFileURL for dynamic imports on Windows #31
    • feat: support custom JsonMap lib functions via config #29
    • fix: resolve file path references in named maps config #28
    • fix: resolve chokidar v5 ignored glob patterns via picomatch matchers #27
    • feat(service): add hybrid search with BM25 text index and RRF fusion (#48) #35
    • feat(service): add filesystem date metadata and line offsets (#46) #24
    • fix: use pathToFileURL for dynamic imports on Windows (#31) #30
    • updated docs 3028f04
    • chore: release v0.5.0-0 0c181d9
    • docs: complete v0.5.0 documentation pass e563ee8
    • docs: export missing symbols, add TSDoc, fix typedoc warnings 85f5f02
    • docs: fix TypeDoc warnings — constructor params, JsonFileStore props, handlebars highlight 388bed4
    • feat(openclaw)!: remove memory slot takeover, simplify to pure extension 0b1bdcb
    • feat(schema): implement Phase 1 - core schema system 4b538ad
    • feat: foundation for v0.5.0 - issues, values, named rules, config schema a81cfa9
    • refactor(DRY): split config schemas into logical modules fc24cb4
    • feat: API endpoints for v0.5.0 — query validate apply issues reindex tracking 97b0f75
    • feat: validate metadata and align issues + skill docs 1ffdc0c
    • chore: release v0.5.0 aa5a5aa
    • chore: release v0.5.0-1 2b330da
    • feat: helper namespace prefixing and JSDoc introspection ffbaba5
    • docs: update guides for v0.5.0 endpoints, config, and CLI 0c79850
    • feat: complete v2 spec implementation gaps (P0-P2) fa45008
    • chore: release v0.4.3 8b82d0c
    • chore: release v0.4.2 4ea9215
    • chore: release v0.4.4 f3a284c
    • chore: release v0.4.1 c736409
    • refactor: DRY helper module loading into shared utility fef881a
    • test: add critical test coverage for utilities and handlers b9b94d7
    • refactor(DRY): add withApiOptions helper for CLI commands 26df301
    • fix: replace eslint-disable comments with properly typed mocks 025e322
    • feat: expand plugin to 8 tools for v0.5.0 bde15f4
    • refactor(SRP): extract app initialization logic to separate module 63147f4
    • feat: two-skill architecture with build pipeline 898db5e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.0 97e2834
    • refactor(SRP/OCP): split embedding providers into separate files d07f4c9
    • feat: add install/uninstall CLI to bypass OpenClaw spawn EINVAL bug on Windows 1ad7fbb
    • docs: fix template syntax, stale references, and add missing API/tool docs 8af92ef
    • refactor: extract shared mergeAndValidateConfig aecab7f
    • test: update test files to use new schema format 336ff00
    • refactor: extract shared executeReindex to eliminate duplication 7658108
    • test: add DocumentProcessor unit tests 987012f
    • test: add more critical test coverage 233082c
    • feat: implement Phase 3 API endpoints eb697cf
    • refactor(DIP): introduce VectorStore interface and update consumers 1975dee
    • refactor(DRY): extract repeated patterns to utilities 12842de
    • chore: fix docs, READMEs, and rollup config for monorepo 0b92399
    • fix: resolve all lint errors in test files and wrapHandler bbcde3f
    • docs(skill): add theory of operation narrative, remove stale plugin/skill/SKILL.md 979993d
    • refactor: DRY API handler error handling with wrapHandler; fix writeFileSync in configApply 8995d2e
    • test: add EventQueue tests 93a7eab
    • refactor: extract JsonFileStore base for issues/values c36112f
    • test: add mergedDocument tests 41a2561
    • revert: remove manual CHANGELOG.md edits (auto-generated on release) c20e149
    • test: add configValidate handler tests 00d52fd
    • test: add configApply handler tests 5fb3b43
    • fix: resolve eslint unbound-method and prettier errors 36b5803
    • chore: align release-it config for monorepo 938a3e0
    • test: add configQuery handler tests 6adfcab
    • fix: resolve all STAN lint errors and reduce docs warnings 062594f
    • refactor(DIP): add DocumentProcessor interface and update factory/consumers 8a30433
    • refactor(ISP): convert buildMergedMetadata to options object pattern 0d67913
    • chore: make service package ESM-only, remove CJS and IIFE outputs 9a16492
    • fix: resolveReferences only resolves known config reference positions 1890bf9
    • fix(lint): address majority of lint issues in new tests aec00f8
    • test: add configReindex handler tests 506b638
    • fix: resolve lint errors in openclaw CLI and add rollup externals b4e8514
    • refactor(ISP): narrow API handler deps to required fields 309daa3
    • fix: add nocase and dot options to AJV glob keyword 3f7cb9b
    • fix: resolve lint errors and align tests with spec 29c5217
    • docs: document self-installer CLI and Windows spawn EINVAL workaround e3d6351
    • refactor(SRP): extract shared template/map helper wiring from JeevesWatcher 7d1b629
    • chore: release @karmaniverous/jeeves-watcher v0.6.0 b7b207e
    • test: add ReindexTracker tests 5830048
    • lintfix cd4c841
    • refactor(DRY): extract vectorStore payload type inference 8f70a7c
    • fix: use fresh QdrantClient for write ops to avoid stale keep-alive connections e8215d5
    • fix: implement actual rule matching in testPaths validation dba6f4e
    • chore: convert repo to npm workspaces monorepo d8fc6e8
    • fix: apply same conditional logic to tools.allow as plugins.allow 4549569
    • refactor(DRY): align logError helper signature with standard pattern a014202
    • refactor: centralize processor payload field names 34836ce
    • refactor(DRY): apply logError utility in DocumentProcessor 42f5b3e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.0 3ce4950
    • docs: add guides index pages for foldable typedoc sections 1827505
    • fix(openclaw): remove deployment-specific content from skill 1df6a25
    • fix: plugin installer now claims memory slot in OpenClaw config 020c6cd
    • fix: remove plugins.allow management from CLI, only manage entries and tools.allow 64106b4
    • fix(openclaw): correct embedding alignment config path in skill 4965dec
    • fix: conditionally manage plugins.allow only when already populated c486c3a
    • chore: release @karmaniverous/jeeves-watcher v0.5.1 b11e44e
    • fix: resolve typecheck errors in tests and initialization 47b92e1
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.2.0 a6d4d7e
    • fix(openclaw): use error.cause for precise connection error detection 3bdd267
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.2 c019f41
    • refactor(OCP): allow custom extractors via additionalExtractors parameter 36b7ae2
    • chore: release @karmaniverous/jeeves-watcher v0.6.6 b64faf3
    • chore: fix knip after monorepo split e16460b
    • fix(lint): resolve unsafe-assignment and unbound-method in tests 9e41021
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.4.0 db0673c
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.6 e864fec
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.1 008e757
    • added env local template 74aaa72
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.11 5ff129d
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.8 28a92a1
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.4 5b11938
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.1 de3215a
    • lintfix c36da17
    • chore: release @karmaniverous/jeeves-watcher v0.6.9 e22e72e
    • chore: release @karmaniverous/jeeves-watcher v0.6.4 b41bfc3
    • chore: release @karmaniverous/jeeves-watcher v0.6.2 fa2304d
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.13 43d8d07
    • chore: release @karmaniverous/jeeves-watcher v0.6.7 a692378
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.10 3b4b22c
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.9 97c635e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.5 837a941
    • chore: release @karmaniverous/jeeves-watcher v0.6.1 037d9c9
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.4.1 7863ad4
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.7 4c12277
    • fix: use glob instead of pattern for virtual rule matching (case-insensitive on Windows) 0526d5a
    • chore: release @karmaniverous/jeeves-watcher v0.6.3 da7414c
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.3 9db834e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.2 99be8d8
    • chore: release @karmaniverous/jeeves-watcher v0.6.8 a465d72
    • fix: read CLI version from package.json instead of hardcoding 22a9727
    • chore: release @karmaniverous/jeeves-watcher v0.6.5 1c5a7fe
    • fix: normalizePath preserves drive letter case to match service path normalization b79c8c4
    • chore: remove temp commit script 31d35a7
    • fix(openclaw): add deployment-discovery guidance to skill, prevent assumption of specific domains 3da7cf3
    • lintfix d410046
    • fix(openclaw): skill proactive check matches positive case only 4e9be5f
    • package version 0 eda1c58
    • chore: tune docs warnPattern to ignore Zod enum TSDoc warnings b09909a
    • fix: revert unconditional ensureTextIndex from initialization.ts 7ae6b62
    • removed docs from release script 8878235

    23 February 2026

    1 March 2026

    • feat(openclaw)!: remove memory slot takeover #77
    • feat(openclaw)!: remove memory slot takeover, simplify to pure extension 0b1bdcb
    • fix(openclaw): remove deployment-specific content from skill 1df6a25
    • fix(openclaw): correct embedding alignment config path in skill 4965dec
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.4.0 db0673c
    • chore: release @karmaniverous/jeeves-watcher v0.6.9 e22e72e
    • fix(openclaw): add deployment-discovery guidance to skill, prevent assumption of specific domains 3da7cf3

    1 March 2026

    • chore: change default port from 3456 to 1936 #75
    • chore: fix all eslint errors (210 → 0) #76
    • feat(openclaw): add memory → archive escalation pattern to skill #74
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.13 43d8d07

    28 February 2026

    • feat(openclaw): disable memory-core when installing with --memory #73
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.11 5ff129d
    • chore: release @karmaniverous/jeeves-watcher v0.6.7 a692378
    • chore: release @karmaniverous/jeeves-watcher v0.6.8 a465d72
    • fix: read CLI version from package.json instead of hardcoding 22a9727
    • lintfix d410046

    28 February 2026

    • feat(openclaw): brand memory tool responses with provider field #71
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.10 3b4b22c
    • fix(openclaw): skill proactive check matches positive case only 4e9be5f

    28 February 2026

    • docs(openclaw): add bootstrap, install modes, and proactive posture to skill #70
    • chore: release @karmaniverous/jeeves-watcher v0.6.6 b64faf3
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.9 97c635e

    28 February 2026

    • feat(openclaw): --memory flag for install CLI #69
    • feat(openclaw): decouple plugin from watcher config vocabulary #68
    • fix: fresh QdrantClient for write ops to avoid stale keep-alive ECONNRESET #67
    • lintfix cd4c841
    • fix: use fresh QdrantClient for write ops to avoid stale keep-alive connections e8215d5
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.8 28a92a1

    28 February 2026

    • fix: use domains (plural array) in virtual rules and search filter #66
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.7 4c12277

    28 February 2026

    • feat: POST /rules/reapply endpoint + plugin auto-reapply after registration #65
    • fix: disable AJV strict mode to suppress schema type warnings #55
    • fix: case-insensitive glob matching in AJV rule keyword #64
    • fix: add nocase and dot options to AJV glob keyword 3f7cb9b
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.6 e864fec
    • chore: release @karmaniverous/jeeves-watcher v0.6.4 b41bfc3
    • chore: release @karmaniverous/jeeves-watcher v0.6.5 1c5a7fe

    28 February 2026

    • fix: use glob instead of pattern for virtual rule matching #62
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.5 837a941
    • fix: use glob instead of pattern for virtual rule matching (case-insensitive on Windows) 0526d5a

    28 February 2026

    • fix: normalizePath preserves drive letter case to match service #61
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.4 5b11938
    • chore: release @karmaniverous/jeeves-watcher v0.6.2 fa2304d
    • chore: release @karmaniverous/jeeves-watcher v0.6.3 da7414c
    • fix: normalizePath preserves drive letter case to match service path normalization b79c8c4
    • fix: revert unconditional ensureTextIndex from initialization.ts 7ae6b62

    28 February 2026

    • fix: ensure text index on startup + re-register virtual rules after watcher restart #60
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.3 9db834e

    28 February 2026

    • fix: plugin config lookup uses correct entry key (jeeves-watcher-openclaw) #59
    • fix: update test fixture to include slots for idempotency check #58
    • chore: bump @karmaniverous/jsonmap to 2.1.1 #57
    • fix: plugin installer claims memory slot in OpenClaw config #56
    • docs: update guides for v0.6.0 changes #54
    • refactor: extract modules to fix 300 LOC violations #53
    • refactor: DRY fixes and comprehensive test coverage for openclaw package #52
    • refactor+test: service SOLID/DRY fixes + 54 new tests #51
    • feat: memory slot takeover with virtual rules API #49
    • feat: support external rule file references in inferenceRules config #50
    • feat(service): add hybrid search with BM25 text index and RRF fusion #48
    • feat(service): Handlebars set expressions + date normalization #47
    • feat(service): add filesystem date metadata and line offsets #46
    • fix(openclaw): skill review feedback #45
    • chore(openclaw): merge skills, simplify build, improve error messaging #44
    • docs: document self-installer CLI and Windows workaround #41
    • fix: resolve lint errors in openclaw CLI #40
    • feat: add install/uninstall CLI for OpenClaw plugin #39
    • chore: fix monorepo release-it tags, plugin id, and version sync #38
    • feat: convert to monorepo with service and openclaw plugin packages #37
    • docs(skill): add theory of operation, remove stale SKILL.md #36
    • feat: v0.5.0 — plugin expansion, two-skill architecture, API extensions #35
    • fix: use pathToFileURL for dynamic imports on Windows #31
    • feat: support custom JsonMap lib functions via config #29
    • fix: resolve file path references in named maps config #28
    • fix: resolve chokidar v5 ignored glob patterns via picomatch matchers #27
    • fix: adapt to chokidar v4 glob removal — watch directory roots with picomatch filtering #26
    • feat: Content Templates (v0.4.0) — Handlebars-based content transformation at index time #23
    • feat(service): add hybrid search with BM25 text index and RRF fusion (#48) #35
    • feat(service): add filesystem date metadata and line offsets (#46) #24
    • fix: use pathToFileURL for dynamic imports on Windows (#31) #30
    • fix: resolve chokidar glob pattern failure on Windows by extracting directory roots #25
    • updated docs 3028f04
    • chore: release v0.5.0-0 0c181d9
    • docs: complete v0.5.0 documentation pass e563ee8
    • feat: add template engine dependencies (handlebars, mdast-util-from-adf, etc.) f6d090c
    • docs: export missing symbols, add TSDoc, fix typedoc warnings 85f5f02
    • docs: fix TypeDoc warnings — constructor params, JsonFileStore props, handlebars highlight 388bed4
    • feat(schema): implement Phase 1 - core schema system 4b538ad
    • feat: foundation for v0.5.0 - issues, values, named rules, config schema a81cfa9
    • refactor(DRY): split config schemas into logical modules fc24cb4
    • chore: release v0.4.0 79f7f8d
    • feat: API endpoints for v0.5.0 — query validate apply issues reindex tracking 97b0f75
    • feat: validate metadata and align issues + skill docs 1ffdc0c
    • chore: release v0.5.0 aa5a5aa
    • chore: release v0.5.0-1 2b330da
    • chore: update deps (hast, knip, rollup) 3790582
    • feat: helper namespace prefixing and JSDoc introspection ffbaba5
    • docs: update guides for v0.5.0 endpoints, config, and CLI 0c79850
    • feat: complete v2 spec implementation gaps (P0-P2) fa45008
    • chore: release v0.4.3 8b82d0c
    • chore: release v0.4.2 4ea9215
    • chore: release v0.4.4 f3a284c
    • chore: release v0.4.1 c736409
    • refactor: DRY helper module loading into shared utility fef881a
    • feat: export template engine types, fix knip (add hast dep) 7ae0597
    • refactor: decompose app/index.ts into factories and startFromConfig modules (300 LOC limit) 33736c2
    • test: add critical test coverage for utilities and handlers b9b94d7
    • feat: add template engine module and config schema changes 968132f
    • refactor(DRY): add withApiOptions helper for CLI commands 26df301
    • fix: replace eslint-disable comments with properly typed mocks 025e322
    • feat: expand plugin to 8 tools for v0.5.0 bde15f4
    • refactor(SRP): extract app initialization logic to separate module 63147f4
    • feat: two-skill architecture with build pipeline 898db5e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.0 97e2834
    • refactor(SRP/OCP): split embedding providers into separate files d07f4c9
    • feat: add install/uninstall CLI to bypass OpenClaw spawn EINVAL bug on Windows 1ad7fbb
    • docs: fix template syntax, stale references, and add missing API/tool docs 8af92ef
    • refactor: extract shared mergeAndValidateConfig aecab7f
    • test: update test files to use new schema format 336ff00
    • refactor: extract shared executeReindex to eliminate duplication 7658108
    • test: add DocumentProcessor unit tests 987012f
    • test: add more critical test coverage 233082c
    • feat: integrate template engine into pipeline (applyRules, processFile, config reload) 64cc135
    • feat: implement Phase 3 API endpoints eb697cf
    • refactor(DIP): introduce VectorStore interface and update consumers 1975dee
    • test: add template engine tests and update existing rule tests for new return shape d6ef7d7
    • refactor(DRY): extract repeated patterns to utilities 12842de
    • chore: fix docs, READMEs, and rollup config for monorepo 0b92399
    • fix: resolve all lint errors in test files and wrapHandler bbcde3f
    • docs(skill): add theory of operation narrative, remove stale plugin/skill/SKILL.md 979993d
    • refactor: DRY API handler error handling with wrapHandler; fix writeFileSync in configApply 8995d2e
    • test: add EventQueue tests 93a7eab
    • refactor: extract JsonFileStore base for issues/values c36112f
    • docs: add content templates section to inference-rules guide ebf74ef
    • test: add mergedDocument tests 41a2561
    • revert: remove manual CHANGELOG.md edits (auto-generated on release) c20e149
    • test: add configValidate handler tests 00d52fd
    • test: add configApply handler tests 5fb3b43
    • fix: resolve eslint unbound-method and prettier errors 36b5803
    • chore: align release-it config for monorepo 938a3e0
    • test: add configQuery handler tests 6adfcab
    • fix: resolve all STAN lint errors and reduce docs warnings 062594f
    • refactor(DIP): add DocumentProcessor interface and update factory/consumers 8a30433
    • refactor(ISP): convert buildMergedMetadata to options object pattern 0d67913
    • chore: make service package ESM-only, remove CJS and IIFE outputs 9a16492
    • fix: resolveReferences only resolves known config reference positions 1890bf9
    • fix(lint): address majority of lint issues in new tests aec00f8
    • test: add configReindex handler tests 506b638
    • fix: resolve lint errors in openclaw CLI and add rollup externals b4e8514
    • refactor(ISP): narrow API handler deps to required fields 309daa3
    • fix: resolve lint errors and align tests with spec 29c5217
    • docs: document self-installer CLI and Windows spawn EINVAL workaround e3d6351
    • docs: add production directory structure guidance for maps and templates 14c51c8
    • refactor(SRP): extract shared template/map helper wiring from JeevesWatcher 7d1b629
    • chore: release @karmaniverous/jeeves-watcher v0.6.0 b7b207e
    • test: add ReindexTracker tests 5830048
    • refactor(DRY): extract vectorStore payload type inference 8f70a7c
    • fix: implement actual rule matching in testPaths validation dba6f4e
    • chore: convert repo to npm workspaces monorepo d8fc6e8
    • fix: apply same conditional logic to tools.allow as plugins.allow 4549569
    • refactor(DRY): align logError helper signature with standard pattern a014202
    • refactor: centralize processor payload field names 34836ce
    • refactor(DRY): apply logError utility in DocumentProcessor 42f5b3e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.0 3ce4950
    • docs: add guides index pages for foldable typedoc sections 1827505
    • fix: plugin installer now claims memory slot in OpenClaw config 020c6cd
    • fix: remove plugins.allow management from CLI, only manage entries and tools.allow 64106b4
    • fix: conditionally manage plugins.allow only when already populated c486c3a
    • chore: release @karmaniverous/jeeves-watcher v0.5.1 b11e44e
    • fix: resolve typecheck errors in tests and initialization 47b92e1
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.2.0 a6d4d7e
    • fix(openclaw): use error.cause for precise connection error detection 3bdd267
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.2 c019f41
    • refactor(OCP): allow custom extractors via additionalExtractors parameter 36b7ae2
    • chore: fix knip after monorepo split e16460b
    • fix(lint): resolve unsafe-assignment and unbound-method in tests 9e41021
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.1 008e757
    • added env local template 74aaa72
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.1 de3215a
    • lintfix c36da17
    • chore: release @karmaniverous/jeeves-watcher v0.6.1 037d9c9
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.2 99be8d8
    • chore: remove temp commit script 31d35a7
    • package version 0 eda1c58
    • chore: tune docs warnPattern to ignore Zod enum TSDoc warnings b09909a
    • removed docs from release script 8878235

    23 February 2026

    28 February 2026

    • fix: update test fixture to include slots for idempotency check #58
    • chore: bump @karmaniverous/jsonmap to 2.1.1 #57
    • fix: plugin installer claims memory slot in OpenClaw config #56
    • docs: update guides for v0.6.0 changes #54
    • refactor: extract modules to fix 300 LOC violations #53
    • refactor: DRY fixes and comprehensive test coverage for openclaw package #52
    • refactor+test: service SOLID/DRY fixes + 54 new tests #51
    • feat: memory slot takeover with virtual rules API #49
    • feat: support external rule file references in inferenceRules config #50
    • feat(service): add hybrid search with BM25 text index and RRF fusion #48
    • feat(service): Handlebars set expressions + date normalization #47
    • feat(service): add filesystem date metadata and line offsets #46
    • fix(openclaw): skill review feedback #45
    • chore(openclaw): merge skills, simplify build, improve error messaging #44
    • docs: document self-installer CLI and Windows workaround #41
    • fix: resolve lint errors in openclaw CLI #40
    • feat: add install/uninstall CLI for OpenClaw plugin #39
    • chore: fix monorepo release-it tags, plugin id, and version sync #38
    • feat: convert to monorepo with service and openclaw plugin packages #37
    • docs(skill): add theory of operation, remove stale SKILL.md #36
    • feat: v0.5.0 — plugin expansion, two-skill architecture, API extensions #35
    • fix: use pathToFileURL for dynamic imports on Windows #31
    • feat: support custom JsonMap lib functions via config #29
    • fix: resolve file path references in named maps config #28
    • fix: resolve chokidar v5 ignored glob patterns via picomatch matchers #27
    • fix: adapt to chokidar v4 glob removal — watch directory roots with picomatch filtering #26
    • feat: Content Templates (v0.4.0) — Handlebars-based content transformation at index time #23
    • fix: restore shebang in CLI output for correct npm .cmd wrapper generation #20
    • feat(service): add hybrid search with BM25 text index and RRF fusion (#48) #35
    • feat(service): add filesystem date metadata and line offsets (#46) #24
    • fix: use pathToFileURL for dynamic imports on Windows (#31) #30
    • fix: resolve chokidar glob pattern failure on Windows by extracting directory roots #25
    • updated docs 3028f04
    • chore: release v0.5.0-0 0c181d9
    • docs: complete v0.5.0 documentation pass e563ee8
    • feat: add template engine dependencies (handlebars, mdast-util-from-adf, etc.) f6d090c
    • docs: export missing symbols, add TSDoc, fix typedoc warnings 85f5f02
    • docs: fix TypeDoc warnings — constructor params, JsonFileStore props, handlebars highlight 388bed4
    • feat(schema): implement Phase 1 - core schema system 4b538ad
    • feat: foundation for v0.5.0 - issues, values, named rules, config schema a81cfa9
    • refactor(DRY): split config schemas into logical modules fc24cb4
    • chore: release v0.4.0 79f7f8d
    • feat: API endpoints for v0.5.0 — query validate apply issues reindex tracking 97b0f75
    • feat: validate metadata and align issues + skill docs 1ffdc0c
    • chore: release v0.5.0 aa5a5aa
    • chore: release v0.5.0-1 2b330da
    • chore: update deps (hast, knip, rollup) 3790582
    • feat: helper namespace prefixing and JSDoc introspection ffbaba5
    • docs: update guides for v0.5.0 endpoints, config, and CLI 0c79850
    • feat: complete v2 spec implementation gaps (P0-P2) fa45008
    • chore: release v0.4.3 8b82d0c
    • chore: release v0.4.2 4ea9215
    • chore: release v0.4.4 f3a284c
    • chore: release v0.4.1 c736409
    • refactor: DRY helper module loading into shared utility fef881a
    • feat: export template engine types, fix knip (add hast dep) 7ae0597
    • chore: release v0.3.1 8a6de18
    • refactor: decompose app/index.ts into factories and startFromConfig modules (300 LOC limit) 33736c2
    • test: add critical test coverage for utilities and handlers b9b94d7
    • feat: add template engine module and config schema changes 968132f
    • refactor(DRY): add withApiOptions helper for CLI commands 26df301
    • fix: replace eslint-disable comments with properly typed mocks 025e322
    • feat: expand plugin to 8 tools for v0.5.0 bde15f4
    • refactor(SRP): extract app initialization logic to separate module 63147f4
    • feat: two-skill architecture with build pipeline 898db5e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.0 97e2834
    • refactor(SRP/OCP): split embedding providers into separate files d07f4c9
    • feat: add install/uninstall CLI to bypass OpenClaw spawn EINVAL bug on Windows 1ad7fbb
    • docs: fix template syntax, stale references, and add missing API/tool docs 8af92ef
    • refactor: extract shared mergeAndValidateConfig aecab7f
    • test: update test files to use new schema format 336ff00
    • refactor: extract shared executeReindex to eliminate duplication 7658108
    • test: add DocumentProcessor unit tests 987012f
    • test: add more critical test coverage 233082c
    • feat: integrate template engine into pipeline (applyRules, processFile, config reload) 64cc135
    • feat: implement Phase 3 API endpoints eb697cf
    • refactor(DIP): introduce VectorStore interface and update consumers 1975dee
    • test: add template engine tests and update existing rule tests for new return shape d6ef7d7
    • refactor(DRY): extract repeated patterns to utilities 12842de
    • chore: fix docs, READMEs, and rollup config for monorepo 0b92399
    • fix: resolve all lint errors in test files and wrapHandler bbcde3f
    • docs(skill): add theory of operation narrative, remove stale plugin/skill/SKILL.md 979993d
    • refactor: DRY API handler error handling with wrapHandler; fix writeFileSync in configApply 8995d2e
    • test: add EventQueue tests 93a7eab
    • refactor: extract JsonFileStore base for issues/values c36112f
    • docs: add content templates section to inference-rules guide ebf74ef
    • test: add mergedDocument tests 41a2561
    • revert: remove manual CHANGELOG.md edits (auto-generated on release) c20e149
    • test: add configValidate handler tests 00d52fd
    • test: add configApply handler tests 5fb3b43
    • fix: resolve eslint unbound-method and prettier errors 36b5803
    • chore: align release-it config for monorepo 938a3e0
    • test: add configQuery handler tests 6adfcab
    • fix: resolve all STAN lint errors and reduce docs warnings 062594f
    • refactor(DIP): add DocumentProcessor interface and update factory/consumers 8a30433
    • refactor(ISP): convert buildMergedMetadata to options object pattern 0d67913
    • chore: make service package ESM-only, remove CJS and IIFE outputs 9a16492
    • fix: resolveReferences only resolves known config reference positions 1890bf9
    • fix(lint): address majority of lint issues in new tests aec00f8
    • test: add configReindex handler tests 506b638
    • fix: resolve lint errors in openclaw CLI and add rollup externals b4e8514
    • refactor(ISP): narrow API handler deps to required fields 309daa3
    • fix: resolve lint errors and align tests with spec 29c5217
    • docs: document self-installer CLI and Windows spawn EINVAL workaround e3d6351
    • docs: add production directory structure guidance for maps and templates 14c51c8
    • refactor(SRP): extract shared template/map helper wiring from JeevesWatcher 7d1b629
    • chore: release @karmaniverous/jeeves-watcher v0.6.0 b7b207e
    • test: add ReindexTracker tests 5830048
    • refactor(DRY): extract vectorStore payload type inference 8f70a7c
    • fix: implement actual rule matching in testPaths validation dba6f4e
    • chore: convert repo to npm workspaces monorepo d8fc6e8
    • fix: apply same conditional logic to tools.allow as plugins.allow 4549569
    • refactor(DRY): align logError helper signature with standard pattern a014202
    • refactor: centralize processor payload field names 34836ce
    • refactor(DRY): apply logError utility in DocumentProcessor 42f5b3e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.0 3ce4950
    • docs: add guides index pages for foldable typedoc sections 1827505
    • fix: plugin installer now claims memory slot in OpenClaw config 020c6cd
    • fix: remove plugins.allow management from CLI, only manage entries and tools.allow 64106b4
    • fix: conditionally manage plugins.allow only when already populated c486c3a
    • chore: release @karmaniverous/jeeves-watcher v0.5.1 b11e44e
    • fix: resolve typecheck errors in tests and initialization 47b92e1
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.2.0 a6d4d7e
    • fix(openclaw): use error.cause for precise connection error detection 3bdd267
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.2 c019f41
    • refactor(OCP): allow custom extractors via additionalExtractors parameter 36b7ae2
    • chore: fix knip after monorepo split e16460b
    • fix(lint): resolve unsafe-assignment and unbound-method in tests 9e41021
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.1 008e757
    • added env local template 74aaa72
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.1 de3215a
    • lintfix c36da17
    • chore: release @karmaniverous/jeeves-watcher v0.6.1 037d9c9
    • chore: remove temp commit script 31d35a7
    • package version 0 eda1c58
    • chore: tune docs warnPattern to ignore Zod enum TSDoc warnings b09909a
    • removed docs from release script 8878235

    22 February 2026

    27 February 2026

    • docs: update guides for v0.6.0 changes #54
    • refactor: extract modules to fix 300 LOC violations #53
    • refactor: DRY fixes and comprehensive test coverage for openclaw package #52
    • refactor+test: service SOLID/DRY fixes + 54 new tests #51
    • feat: memory slot takeover with virtual rules API #49
    • feat: support external rule file references in inferenceRules config #50
    • feat(service): add hybrid search with BM25 text index and RRF fusion #48
    • feat(service): Handlebars set expressions + date normalization #47
    • feat(service): add filesystem date metadata and line offsets #46
    • fix(openclaw): skill review feedback #45
    • chore(openclaw): merge skills, simplify build, improve error messaging #44
    • docs: document self-installer CLI and Windows workaround #41
    • fix: resolve lint errors in openclaw CLI #40
    • feat: add install/uninstall CLI for OpenClaw plugin #39
    • chore: fix monorepo release-it tags, plugin id, and version sync #38
    • feat: convert to monorepo with service and openclaw plugin packages #37
    • docs(skill): add theory of operation, remove stale SKILL.md #36
    • feat: v0.5.0 — plugin expansion, two-skill architecture, API extensions #35
    • fix: use pathToFileURL for dynamic imports on Windows #31
    • feat: support custom JsonMap lib functions via config #29
    • fix: resolve file path references in named maps config #28
    • fix: resolve chokidar v5 ignored glob patterns via picomatch matchers #27
    • fix: adapt to chokidar v4 glob removal — watch directory roots with picomatch filtering #26
    • feat: Content Templates (v0.4.0) — Handlebars-based content transformation at index time #23
    • fix: restore shebang in CLI output for correct npm .cmd wrapper generation #20
    • feat: OpenClaw plugin with agent tools and skill (v0.3.0) #19
    • docs: sync all documentation with implementation #17
    • feat(service): add hybrid search with BM25 text index and RRF fusion (#48) #35
    • feat(service): add filesystem date metadata and line offsets (#46) #24
    • fix: use pathToFileURL for dynamic imports on Windows (#31) #30
    • fix: resolve chokidar glob pattern failure on Windows by extracting directory roots #25
    • updated docs 3028f04
    • chore: release v0.5.0-0 0c181d9
    • docs: complete v0.5.0 documentation pass e563ee8
    • feat: add template engine dependencies (handlebars, mdast-util-from-adf, etc.) f6d090c
    • docs: export missing symbols, add TSDoc, fix typedoc warnings 85f5f02
    • docs: fix TypeDoc warnings — constructor params, JsonFileStore props, handlebars highlight 388bed4
    • feat(schema): implement Phase 1 - core schema system 4b538ad
    • feat: foundation for v0.5.0 - issues, values, named rules, config schema a81cfa9
    • refactor(DRY): split config schemas into logical modules fc24cb4
    • chore: release v0.4.0 79f7f8d
    • feat: API endpoints for v0.5.0 — query validate apply issues reindex tracking 97b0f75
    • feat: validate metadata and align issues + skill docs 1ffdc0c
    • chore: release v0.3.0 0e03c00
    • chore: release v0.5.0 aa5a5aa
    • chore: release v0.5.0-1 2b330da
    • chore: update deps (hast, knip, rollup) 3790582
    • feat: helper namespace prefixing and JSDoc introspection ffbaba5
    • docs: update guides for v0.5.0 endpoints, config, and CLI 0c79850
    • feat: complete v2 spec implementation gaps (P0-P2) fa45008
    • chore: release v0.4.3 8b82d0c
    • chore: release v0.4.2 4ea9215
    • chore: release v0.4.4 f3a284c
    • chore: release v0.4.1 c736409
    • refactor: DRY helper module loading into shared utility fef881a
    • feat: export template engine types, fix knip (add hast dep) 7ae0597
    • chore: release v0.3.1 8a6de18
    • refactor: decompose app/index.ts into factories and startFromConfig modules (300 LOC limit) 33736c2
    • test: add critical test coverage for utilities and handlers b9b94d7
    • feat: add template engine module and config schema changes 968132f
    • refactor(DRY): add withApiOptions helper for CLI commands 26df301
    • fix: replace eslint-disable comments with properly typed mocks 025e322
    • feat: expand plugin to 8 tools for v0.5.0 bde15f4
    • refactor(SRP): extract app initialization logic to separate module 63147f4
    • feat: two-skill architecture with build pipeline 898db5e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.0 97e2834
    • refactor(SRP/OCP): split embedding providers into separate files d07f4c9
    • feat: add install/uninstall CLI to bypass OpenClaw spawn EINVAL bug on Windows 1ad7fbb
    • docs: fix template syntax, stale references, and add missing API/tool docs 8af92ef
    • refactor: extract shared mergeAndValidateConfig aecab7f
    • test: update test files to use new schema format 336ff00
    • refactor: extract shared executeReindex to eliminate duplication 7658108
    • test: add DocumentProcessor unit tests 987012f
    • test: add more critical test coverage 233082c
    • feat: integrate template engine into pipeline (applyRules, processFile, config reload) 64cc135
    • feat: implement Phase 3 API endpoints eb697cf
    • refactor(DIP): introduce VectorStore interface and update consumers 1975dee
    • test: add template engine tests and update existing rule tests for new return shape d6ef7d7
    • refactor(DRY): extract repeated patterns to utilities 12842de
    • chore: fix docs, READMEs, and rollup config for monorepo 0b92399
    • fix: resolve all lint errors in test files and wrapHandler bbcde3f
    • docs(skill): add theory of operation narrative, remove stale plugin/skill/SKILL.md 979993d
    • docs: sync documentation with implementation 8442160
    • refactor: DRY API handler error handling with wrapHandler; fix writeFileSync in configApply 8995d2e
    • test: add EventQueue tests 93a7eab
    • refactor: extract JsonFileStore base for issues/values c36112f
    • docs: add content templates section to inference-rules guide ebf74ef
    • test: add mergedDocument tests 41a2561
    • revert: remove manual CHANGELOG.md edits (auto-generated on release) c20e149
    • test: add configValidate handler tests 00d52fd
    • test: add configApply handler tests 5fb3b43
    • fix: resolve eslint unbound-method and prettier errors 36b5803
    • chore: align release-it config for monorepo 938a3e0
    • test: add configQuery handler tests 6adfcab
    • fix: resolve all STAN lint errors and reduce docs warnings 062594f
    • refactor(DIP): add DocumentProcessor interface and update factory/consumers 8a30433
    • refactor(ISP): convert buildMergedMetadata to options object pattern 0d67913
    • chore: make service package ESM-only, remove CJS and IIFE outputs 9a16492
    • fix: resolveReferences only resolves known config reference positions 1890bf9
    • fix(lint): address majority of lint issues in new tests aec00f8
    • test: add configReindex handler tests 506b638
    • fix: resolve lint errors in openclaw CLI and add rollup externals b4e8514
    • refactor(ISP): narrow API handler deps to required fields 309daa3
    • fix: resolve lint errors and align tests with spec 29c5217
    • docs: document self-installer CLI and Windows spawn EINVAL workaround e3d6351
    • docs: add production directory structure guidance for maps and templates 14c51c8
    • refactor(SRP): extract shared template/map helper wiring from JeevesWatcher 7d1b629
    • chore: release @karmaniverous/jeeves-watcher v0.6.0 b7b207e
    • test: add ReindexTracker tests 5830048
    • refactor(DRY): extract vectorStore payload type inference 8f70a7c
    • fix: implement actual rule matching in testPaths validation dba6f4e
    • chore: convert repo to npm workspaces monorepo d8fc6e8
    • fix: apply same conditional logic to tools.allow as plugins.allow 4549569
    • refactor(DRY): align logError helper signature with standard pattern a014202
    • refactor: centralize processor payload field names 34836ce
    • refactor(DRY): apply logError utility in DocumentProcessor 42f5b3e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.3.0 3ce4950
    • docs: add guides index pages for foldable typedoc sections 1827505
    • fix: remove plugins.allow management from CLI, only manage entries and tools.allow 64106b4
    • fix: conditionally manage plugins.allow only when already populated c486c3a
    • chore: release @karmaniverous/jeeves-watcher v0.5.1 b11e44e
    • fix: resolve typecheck errors in tests and initialization 47b92e1
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.2.0 a6d4d7e
    • fix(openclaw): use error.cause for precise connection error detection 3bdd267
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.2 c019f41
    • refactor(OCP): allow custom extractors via additionalExtractors parameter 36b7ae2
    • chore: fix knip after monorepo split e16460b
    • fix(lint): resolve unsafe-assignment and unbound-method in tests 9e41021
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.1 008e757
    • added env local template 74aaa72
    • lintfix c36da17
    • chore: remove temp commit script 31d35a7
    • package version 0 eda1c58
    • chore: tune docs warnPattern to ignore Zod enum TSDoc warnings b09909a
    • removed docs from release script 8878235

    22 February 2026

    • fix: remove shebang from ESM CLI output #16
    • [ISSUE-15] fix: remove shebang from ESM CLI output (closes #15) #15
    • chore: release v0.2.6 2fe3b56

    22 February 2026

    • feat: respect .gitignore patterns in watched directories #14
    • chore: release v0.2.5 6e86776
    • feat: add gitignore filter service with ignore package b840a9d
    • feat: add respectGitignore config option ec34a48
    • test: add gitignore integration test 4993208
    • fix: support glob watch paths in gitignore filter scan dbccaf0
    • feat: integrate gitignore filtering into processing pipeline 9f5bf1b
    • docs: document gitignore support in README 86d1329

    22 February 2026

    • feat: graceful error handling with BOM stripping, system health tracking, and exponential backoff #12
    • chore: release v0.2.4 6d4d18e
    • feat: graceful error handling with BOM stripping, system health tracking, and exponential backoff (#11) ad01be1
    • chore: lint fixes and regenerate config schema (#11) eb5d57b
    • docs: add JSDoc to JeevesWatcher class (#11) c3825fc
    • updated diagrams 22eaf09

    21 February 2026

    • docs: document env var pass-through behavior #10
    • fix: leave unresolvable env var expressions untouched in config #9
    • [ISSUE-8] fix: leave unresolvable env var expressions untouched in config (closes #8) #8
    • chore: release v0.2.3 d7d9a90
    • [ISSUE-8] docs: document env var pass-through behavior in README ca379f3

    21 February 2026

    • fix: resolve issues #4 and #5 #7
    • chore: release v0.2.2 3d07303
    • [ISSUES-4] fix: improve error serialization for pino logging 021d18c
    • [ISSUES-4] feat: implement ${ENV_VAR} substitution in config strings 5bbb09f
    • lint:fix b6446c5
    • [ISSUES-4] fix: skip frontmatter parsing when markdown doesn't start with --- 468c71a

    21 February 2026

    • feat: schema-first config with Zod + JsonMap, SOLID/DRY refactor #6
    • refactor: decompose rules module into focused submodules (ajvSetup, attributes, compile, templates, apply) 5fc1fe8
    • chore: release v0.2.1 1f9b997
    • refactor: extract API route handlers into api/handlers with narrow deps 058d6f3
    • refactor: extract shared utilities (normalizePath, errors, logger, constants, CLI defaults) 880e9a2
    • refactor: decompose JeevesWatcher with ConfigWatcher + injectable factories ee92af5
    • refactor: DRY CLI API commands via shared runApiCommand + formatResponse cb71522
    • docs: add TSDoc to exported RuleLogger and JeevesWatcherFactories members 1bc80c7
    • refactor: remove unused errors utility e826dfd

    21 February 2026

    27 February 2026

    • fix(openclaw): skill review feedback #45
    • chore(openclaw): merge skills, simplify build, improve error messaging #44
    • updated docs 3028f04
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.2.0 a6d4d7e
    • fix(openclaw): use error.cause for precise connection error detection 3bdd267
    • chore: remove temp commit script 31d35a7

    25 February 2026

    • docs: document self-installer CLI and Windows workaround #41
    • fix: resolve lint errors in openclaw CLI #40
    • feat: add install/uninstall CLI for OpenClaw plugin #39
    • feat: add install/uninstall CLI to bypass OpenClaw spawn EINVAL bug on Windows 1ad7fbb
    • fix: resolve lint errors in openclaw CLI and add rollup externals b4e8514
    • docs: document self-installer CLI and Windows spawn EINVAL workaround e3d6351
    • fix: apply same conditional logic to tools.allow as plugins.allow 4549569
    • fix: remove plugins.allow management from CLI, only manage entries and tools.allow 64106b4
    • fix: conditionally manage plugins.allow only when already populated c486c3a
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.2 c019f41

    25 February 2026

    • chore: fix monorepo release-it tags, plugin id, and version sync #38
    • feat: convert to monorepo with service and openclaw plugin packages #37
    • docs(skill): add theory of operation, remove stale SKILL.md #36
    • feat: v0.5.0 — plugin expansion, two-skill architecture, API extensions #35
    • fix: use pathToFileURL for dynamic imports on Windows #31
    • feat: support custom JsonMap lib functions via config #29
    • fix: resolve file path references in named maps config #28
    • fix: resolve chokidar v5 ignored glob patterns via picomatch matchers #27
    • fix: adapt to chokidar v4 glob removal — watch directory roots with picomatch filtering #26
    • feat: Content Templates (v0.4.0) — Handlebars-based content transformation at index time #23
    • fix: restore shebang in CLI output for correct npm .cmd wrapper generation #20
    • feat: OpenClaw plugin with agent tools and skill (v0.3.0) #19
    • docs: sync all documentation with implementation #17
    • fix: remove shebang from ESM CLI output #16
    • feat: respect .gitignore patterns in watched directories #14
    • feat: graceful error handling with BOM stripping, system health tracking, and exponential backoff #12
    • docs: document env var pass-through behavior #10
    • fix: leave unresolvable env var expressions untouched in config #9
    • fix: resolve issues #4 and #5 #7
    • feat: schema-first config with Zod + JsonMap, SOLID/DRY refactor #6
    • feat: schema-first config (Zod 4), JsonMap integration, DRY/SOLID refactor #3
    • fix: use pathToFileURL for dynamic imports on Windows (#31) #30
    • fix: resolve chokidar glob pattern failure on Windows by extracting directory roots #25
    • [ISSUE-15] fix: remove shebang from ESM CLI output (closes #15) #15
    • [ISSUE-8] fix: leave unresolvable env var expressions untouched in config (closes #8) #8
    • chore: release v0.5.0-0 0c181d9
    • docs: complete v0.5.0 documentation pass e563ee8
    • feat: add template engine dependencies (handlebars, mdast-util-from-adf, etc.) f6d090c
    • docs: export missing symbols, add TSDoc, fix typedoc warnings 85f5f02
    • docs: fix TypeDoc warnings — constructor params, JsonFileStore props, handlebars highlight 388bed4
    • feat(schema): implement Phase 1 - core schema system 4b538ad
    • chore: release v0.2.0 f0d1ce2
    • feat: foundation for v0.5.0 - issues, values, named rules, config schema a81cfa9
    • refactor(DRY): split config schemas into logical modules fc24cb4
    • chore: release v0.4.0 79f7f8d
    • feat: API endpoints for v0.5.0 — query validate apply issues reindex tracking 97b0f75
    • fix: resolve typedoc warnings, export schemas, update deps, add logging 9b75e80
    • feat: validate metadata and align issues + skill docs 1ffdc0c
    • chore: release v0.3.0 0e03c00
    • chore: release v0.5.0 aa5a5aa
    • chore: release v0.5.0-1 2b330da
    • chore: update deps (hast, knip, rollup) 3790582
    • feat: helper namespace prefixing and JSDoc introspection ffbaba5
    • feat: add Zod schema descriptions 531939f
    • refactor: DRY API routes and CLI commands 1b8cb4f
    • docs: add PlantUML architecture diagrams and embed in documentation 79daf6b
    • docs: update guides for v0.5.0 endpoints, config, and CLI 0c79850
    • feat: complete v2 spec implementation gaps (P0-P2) fa45008
    • refactor: decompose rules module into focused submodules (ajvSetup, attributes, compile, templates, apply) 5fc1fe8
    • chore: release v0.4.3 8b82d0c
    • chore: release v0.4.2 4ea9215
    • chore: release v0.4.4 f3a284c
    • chore: release v0.4.1 c736409
    • chore: release v0.2.5 6e86776
    • refactor: DRY helper module loading into shared utility fef881a
    • chore: release v0.2.4 6d4d18e
    • test: add CLI command tests (status, search, reindex, configReindex, rebuildMetadata, service) 094c333
    • feat: export template engine types, fix knip (add hast dep) 7ae0597
    • chore: release v0.3.1 8a6de18
    • chore: release v0.2.1 1f9b997
    • chore: release v0.2.6 2fe3b56
    • feat: schema-first config with Zod 4 fd8987b
    • feat: generate config JSON schema and standardize defaults d56659f
    • feat: graceful error handling with BOM stripping, system health tracking, and exponential backoff (#11) ad01be1
    • refactor: decompose app/index.ts into factories and startFromConfig modules (300 LOC limit) 33736c2
    • feat: add gitignore filter service with ignore package b840a9d
    • chore: release v0.2.2 3d07303
    • chore: release v0.2.3 d7d9a90
    • refactor: extract API route handlers into api/handlers with narrow deps 058d6f3
    • test: add critical test coverage for utilities and handlers b9b94d7
    • feat: add template engine module and config schema changes 968132f
    • refactor: decompose DocumentProcessor (SRP) 99db65f
    • refactor(DRY): add withApiOptions helper for CLI commands 26df301
    • fix: replace eslint-disable comments with properly typed mocks 025e322
    • feat: expand plugin to 8 tools for v0.5.0 bde15f4
    • refactor(SRP): extract app initialization logic to separate module 63147f4
    • feat: two-skill architecture with build pipeline 898db5e
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.0 97e2834
    • refactor(SRP/OCP): split embedding providers into separate files d07f4c9
    • refactor: extract shared mergeAndValidateConfig aecab7f
    • test: update test files to use new schema format 336ff00
    • refactor: extract shared executeReindex to eliminate duplication 7658108
    • test: add DocumentProcessor unit tests 987012f
    • refactor: extract shared utilities (normalizePath, errors, logger, constants, CLI defaults) 880e9a2
    • test: add more critical test coverage 233082c
    • feat: integrate template engine into pipeline (applyRules, processFile, config reload) 64cc135
    • feat: implement Phase 3 API endpoints eb697cf
    • refactor(DIP): introduce VectorStore interface and update consumers 1975dee
    • test: add template engine tests and update existing rule tests for new return shape d6ef7d7
    • refactor: decompose JeevesWatcher with ConfigWatcher + injectable factories ee92af5
    • feat: execute jsonmap in inference rules 2f48426
    • docs: document jsonmap maps and regenerate schema a6db501
    • refactor: DRY CLI API commands via shared runApiCommand + formatResponse cb71522
    • test: add integration error-path coverage (skip if qdrant down) fb4e646
    • refactor(DRY): extract repeated patterns to utilities 12842de
    • chore: fix docs, READMEs, and rollup config for monorepo 0b92399
    • fix: resolve all lint errors in test files and wrapHandler bbcde3f
    • feat: add respectGitignore config option ec34a48
    • docs(skill): add theory of operation narrative, remove stale plugin/skill/SKILL.md 979993d
    • [ISSUES-4] fix: improve error serialization for pino logging 021d18c
    • docs: sync documentation with implementation 8442160
    • refactor: DRY API handler error handling with wrapHandler; fix writeFileSync in configApply 8995d2e
    • test: add EventQueue tests 93a7eab
    • docs: fix all documentation gaps and inaccuracies 1c7128d
    • refactor: extractor and embedding provider registries (OCP) 9fbf9e3
    • test: add gitignore integration test 4993208
    • test: add config loading and schema validation edge cases 878a888
    • [ISSUES-4] feat: implement ${ENV_VAR} substitution in config strings 5bbb09f
    • feat: centralize config defaults 4310e75
    • refactor: extract JsonFileStore base for issues/values c36112f
    • docs: add content templates section to inference-rules guide ebf74ef
    • test: add mergedDocument tests 41a2561
    • revert: remove manual CHANGELOG.md edits (auto-generated on release) c20e149
    • fix: replace console.warn with pino logger in retry logic 63a9888
    • test: add configValidate handler tests 00d52fd
    • test: add configApply handler tests 5fb3b43
    • chore: align release-it config for monorepo 938a3e0
    • test: add configQuery handler tests 6adfcab
    • feat: implement enrich CLI command 1abda09
    • fix: resolve all STAN lint errors and reduce docs warnings 062594f
    • test: cover rules engine edge cases e631e48
    • refactor(DIP): add DocumentProcessor interface and update factory/consumers 8a30433
    • refactor(ISP): convert buildMergedMetadata to options object pattern 0d67913
    • chore: make service package ESM-only, remove CJS and IIFE outputs 9a16492
    • fix: resolveReferences only resolves known config reference positions 1890bf9
    • fix(lint): address majority of lint issues in new tests aec00f8
    • test: add configReindex handler tests 506b638
    • refactor(ISP): narrow API handler deps to required fields 309daa3
    • fix: resolve lint errors and align tests with spec 29c5217
    • feat: add @module TSDoc, checkCompatibility, mark enrich as planned d3aae8a
    • docs: add production directory structure guidance for maps and templates 14c51c8
    • refactor(SRP): extract shared template/map helper wiring from JeevesWatcher 7d1b629
    • fix: support glob watch paths in gitignore filter scan dbccaf0
    • docs: add TSDoc to exported RuleLogger and JeevesWatcherFactories members 1bc80c7
    • feat: integrate gitignore filtering into processing pipeline 9f5bf1b
    • refactor: narrow processor interface (ISP) + misc cleanup 975daf1
    • test: add ReindexTracker tests 5830048
    • lint:fix b6446c5
    • refactor(DRY): extract vectorStore payload type inference 8f70a7c
    • feat: add jsonmap to config schema (maps + map on rules) 5e70229
    • chore: lint fixes and regenerate config schema (#11) eb5d57b
    • fix: implement actual rule matching in testPaths validation dba6f4e
    • refactor: replace hand-rolled utilities with radash (get) ae1e537
    • fix: align diagram paths with .vscode/settings.json conventions 9430b98
    • chore: convert repo to npm workspaces monorepo d8fc6e8
    • refactor(DRY): align logError helper signature with standard pattern a014202
    • refactor: centralize processor payload field names 34836ce
    • refactor: remove unused errors utility e826dfd
    • refactor(DRY): apply logError utility in DocumentProcessor 42f5b3e
    • docs: add guides index pages for foldable typedoc sections 1827505
    • [ISSUES-4] fix: skip frontmatter parsing when markdown doesn't start with --- 468c71a
    • chore: release @karmaniverous/jeeves-watcher v0.5.1 b11e44e
    • fix: resolve typecheck errors in tests and initialization 47b92e1
    • refactor(OCP): allow custom extractors via additionalExtractors parameter 36b7ae2
    • chore: fix knip after monorepo split e16460b
    • fix(lint): resolve unsafe-assignment and unbound-method in tests 9e41021
    • [ISSUE-8] docs: document env var pass-through behavior in README ca379f3
    • chore: release @karmaniverous/jeeves-watcher-openclaw v0.1.1 008e757
    • added env local template 74aaa72
    • lintfix c36da17
    • docs: document gitignore support in README 86d1329
    • docs: add JSDoc to JeevesWatcher class (#11) c3825fc
    • package version 0 eda1c58
    • chore: tune docs warnPattern to ignore Zod enum TSDoc warnings b09909a
    • rendered diagrams ecdef44
    • merge: resolve package-lock conflict with main a358b80
    • updated plantuml settings 002dbf2
    • docs: remove OpenAI embedding provider (not implemented) abf0b9c
    • chore: install radash 30a456d
    • fix: make rebuild-metadata system keys mutable 93fbb42
    • fix: make queue drain timeout check lint-friendly 8cd217e
    • fix: make queue drain timeout check lint-friendly 7dd8534
    • fix: relax search command header assertion to satisfy lint 82a6a68
    • fix: align buildMergedMetadata logger type with applyRules 78455eb
    • fix: remove unused error variable in enrich command cd61437
    • removed docs from release script 8878235
    • updated diagrams 22eaf09

    20 February 2026

    • Initial commit 5981aa4
    • updated docs 688bb79
    • fix: resolve typedoc cross-reference anchors and add highlight languages 1a05a39
    • feat: initial scaffolding for jeeves-watcher b2aa733
    • docs: add comprehensive guide pages and update typedoc config 9c79760
    • chore: update package.json keywords a9147f6
    • chore: release v0.1.0 87b4650
    • updated docs d65d32b
    • chore: replace npm-package-template-ts with jeeves-watcher d1a8014
    • updated changelog ec215ea
    • feat: add inference rules engine with glob matching and templated metadata 0b1a60b
    • chore: regenerate typedoc output c751fd6
    • feat: add config reindex endpoint and CLI b103059
    • test: add Qdrant integration tests 129070f
    • feat: document processor pipeline fc3f239
    • docs: add contributing guide 549231f
    • docs: expand README with comprehensive documentation 558eb10
    • feat: implement DOCX text extractor a0e3eb8
    • feat(api): implement reindex and rebuild-metadata 45a6fd7
    • feat: add JeevesWatcher app entry point and wire CLI commands effb2df
    • feat: add logger module, expand config types with defaults and ajv validation 244a318
    • feat: Qdrant vector store client wrapper e3b5152
    • feat: add debounced rate-limited event queue with concurrency and drain 19aec40
    • feat: add text extractors for markdown, plaintext, and json 521435e
    • feat: add content hashing, metadata persistence, and deterministic point IDs f8aabe8
    • test: expand integration tests with full lifecycle, metadata enrichment API, and search endpoint 4e81704
    • feat: implement Gemini embedding provider 88959bb
    • feat: add config file watching with debounced reload 9c27c0e
    • feat: implement PDF text extraction using unpdf 4ddff5a
    • feat: add FileSystemWatcher module 29f8875
    • feat: add API server module 7001681
    • feat(cli): wire reindex rebuild-metadata and search 104d35f
    • feat: embedding provider abstraction with mock provider 90b40a5
    • feat(cli): add service install/uninstall instructions de6c363
    • feat(cli): add init command dcb7462
    • feat: implement Gemini embedding provider 40d46f1
    • feat: update public exports with all new modules 0ef5413