Changelog
All notable changes to this project will be documented in this file. Dates are displayed in UTC.
fix: remove state.json and dead keyRotatedAt code (#192) #193
fix: remove state.json and dead keyRotatedAt code #192
fix: resolve state.json from state root instead of package directory (#185) #186
feat: add copy button to table cell hover controls (#188) #189
fix: add /api prefix to OAuth API routes (#190) #191
fix: add /api prefix to OAuth API routes #190
feat: add copy button to table cell hover controls #188
fix: store insider seeds in config.json instead of state.json (#185) #187
fix: store insider seeds in config.json instead of state.json #185
fix: resolve state.json from state root instead of package directory #185
fix: authenticate embedded images for all outsider shares (#183) #184
feat: /go/:slug shortlink redirects (#180) #182
fix: resolve serverRoot via package.json discovery (#178) #179
fix: edit popup scrollbar and word wrap #173
fix: dev server white screen — serve built client under tsx #171
fix: constrain edit popup height to prevent overflow #169
feat: markdown-it migration, inline block editing, OAuth2 flow (#162, #163) #165
fix: make clear-cache visible to outsiders in download menu #161
refactor: simplify checkbox toggle to fire-and-forget #160
fix: checkbox indexing for loose list items #159
fix: post-merge checkbox toggle, Gemini review, CI wildcard #158
feat: v3.7.0 / v0.8.0 — shareable URLs, insider checkbox toggles, events route fix #157
[V3-7] feat: wire MarkdownView checkbox toggling #154
[V3-7] feat: add POST /api/file/*/toggle-checkbox endpoint #154
[V3-7] feat: add checkbox indexing and mtime to markdown pipeline #154
[V3-7] feat: update TOOLS guidance to note automatic URL rewriting #152
[V3-7] feat: add publicUrl config for shareable URL rewriting #145
[V3-7] fix: correct /events route path to /api/events #156
fix: consume core importMetaUrl for plugin install (#150, #147) #151
[150] fix: consume core importMetaUrl for plugin install #150
chore: dependency updates — jeeves ^0.5.3, jsonmap ^2.1.1, @types/node ^25.5.2, and minor/patch bumps #149
feat: v3.6.0 core v0.5.1 adoption + core service alignment + UX improvements #146
[53] Fix pre-existing lint + knip errors (Commander type resolution) #140
[53] Integrate core v0.4.6: init() before descriptor.run() + knip fixes #139
[51] Integrate descriptor.run from core v0.4.5 #137
Fix config validate test assertion #136
[35] Component SDK adoption (core v0.4.4) + plugin/CLI factories #134
[35] refactor: replace hand-rolled package.json walk with packageDirectorySync #96
[35] fix: show user-friendly search error messages #98
[35] fix: decode HTML entities in TOC heading text #102
Remove /health proxy, rename /stats to /status, align client types #122
Fix runner proxy routes calling wrong endpoints #121
Bump core to v0.3.0 and consolidate status endpoint #119
Add configurable host bind + metaUrl service probe #114
feat: core v0.2.0 SDK adoption #111
feat(openclaw): adopt jeeves core component writer #105
docs: document scope override precedence in OpenClaw skill #95
feat: explicit scope overrides take precedence over named scopes #94
fix: parse inline tokens in heading renderer #93
fix: prevent full data reload on tab switch #91
fix: Rendered tab persists when switching to Raw on watcher-rendered files #90
feat: extend /api/status with ?events=N for recent event log #89
fix: server_share sends POST with JSON body instead of GET #87
docs: guide index content + typedoc jsonl highlight #86
docs: refresh README + guides for v3 #85
feat: named access scopes #84
fix: plugin auth chain, status endpoint improvements #83
fix: resetConfig should reload, not clear #82
chore: integrate client as npm workspace member #81
fix: force white background in panzoom fullscreen (dark mode) #80
chore: make both packages releasable #79
fix: address Gemini code review feedback (PRs #65-#76) #78
chore: fix all gap analysis findings (10 items) #77
Phase 4, Steps 16-18: Document rendering pipeline #76
Phase 3, Steps 11-15: OpenClaw plugin #75
Phase 2, Steps 9-10: Search facets proxy + filter UI #74
Phase 2, Step 8: Scroll anchoring #73
chore: SOLID/DRY/coverage audit pass 2 #72
Phase 2, Step 7: Link availability endpoint #71
Phase 1, Step 6: Port migration #70
Phase 1, Step 5: Diagram dependency internalization #69
Phase 1, Step 4: Server Status API #68
Phase 1, Step 3: CLI commands #67
Phase 1, Step 2: Config migration (jiti → cosmiconfig) #66
Phase 1: Monorepo & Config (v3.0.0) #65
feat: align search browse filter with watcher domains convention #64
fix: exit edit mode after save #63
chore: add default port 1934 #62
chore: add default port 1934 #61
[150] fix: consume core importMetaUrl for plugin install (#150) #150 #147
[360] feat: Phase 3 — UX improvements (CSV tables, directory item counts, collapsible frontmatter, collapsible TOC) #48
[360] feat: Phase 1 — core service adoption (getServiceUrl, getBindAddress, Node 22 fast-fail) #135
[35] refactor: remove Connected Services from TOOLS.md writer (closes #128) #128
fix: parse inline tokens in heading renderer (code spans, bold, italic) #92
feat: markdown-it migration, block editing, OAuth2 flow (#162, #163) ceebc33
[35] chore: update deps (peer-safe) c87c3a1
chore: add docs workflow, gitignore generated docs 10bffb8
updated docs cbd8537
chore: release @karmaniverous/jeeves-server-openclaw v0.3.1 11309c1
chore: update @karmaniverous/jeeves to ^0.5.3 and bump minor/patch deps a73fd37
refactor: remove hardcoded filters, fix lazy facet loading ffb0f2a
[35] refactor: migrate openclaw plugin to core v0.4.4 SDK e29773a
[35] refactor: SOLID/DRY cleanup 78a0b2d
npm audit fix 9390169
[53] chore: bump core to v0.4.6 (init before run) + fix knip issues e5f466a
[360] test: add missing test coverage for v3.6.0 features c23f7a1
[53] chore: bump core to v0.4.6 (init before run) + fix knip issues cc2adb6
[35] refactor: replace hand-rolled CLI with createServiceCli(descriptor) (#106) 9b7517f
feat: block type label in edit popup 8178540
[35] refactor: adopt createPluginToolset, health-nested status, event endpoint (#87, #112, #118, #128) 8ead7ae
[35] test: add tests for diagramExport and sharing helpers 1caaa1b
[35] feat: replace cosmiconfig with direct JSON config loading 6f888c6
chore: release @karmaniverous/jeeves-server-openclaw v0.10.0 26942bd
test(openclaw): expand coverage for openclawPaths, pluginRemove, serviceCommands b38ecac
chore(openclaw): update deps, clean knip config 82cb058
feat: two-step facet selection + garbage value filtering 6c60e97
[V3-7] fix: address Gemini review — URL boundary, checkbox regex, Cheerio, race condition 718b60a
fix(openclaw): bundle @karmaniverous/jeeves into plugin dist 61fb7ac
chore: update @types/node to ^25.5.2 696da29
feat: schema-driven facet rendering by uiHint 97af834
[35] docs: sync documentation with SDK adoption changes aefbf73
fix: resolve remaining React lint errors e7a291c
chore: release @karmaniverous/jeeves-server-openclaw v0.7.0 3cce7a2
feat: client-side undo/redo stack fc7fc1c
[V3-7] refactor: simplify checkbox toggle to fire-and-forget (no mtime, no conflict) 013f19e
docs: full documentation pass with PlantUML diagrams 537a9d7
[360] refactor: address code review — async directory reads, CSV row normalization, extract mapDirectoryEntry 3a1a389
refactor(openclaw): resolve SOLID/DRY violations 87df443
fix: unify cell/block editor, pure flex height chain, SOLID/DRY cleanup (#172) 0318740
chore: release @karmaniverous/jeeves-server v3.2.0 fda70c6
feat: metadata chips on search results with click-to-filter a11ce3d
chore: update @karmaniverous/jsonmap ^0.3.1 → ^2.1.1 12a848d
fix: move undo/redo to header, preserve scroll on save (#174, #176) cd5de16
[35] refactor: migrate GET /status to createStatusHandler factory 3526b46
docs: add guide index content and fix typedoc trailing comma 3844271
npm audit fix 0be936a
[360] refactor: split TocSection.tsx — move utilities to tocUtils.ts (fixes react-refresh lint) d8e8d57
chore: release @karmaniverous/jeeves-server-openclaw v0.6.0 bfa7501
[V3-7] fix: checkbox click handler — use native capture-phase delegation via ref callback, fix mtime stale-write flow 56ef58f
fix: address Gemini review — undo correctness, reactivity, DRY, cleanup 9ad8661
refactor(openclaw): use createAsyncContentCache from jeeves v0.1.1 9732ad9
docs: add CONTRIBUTING.md with dev server setup guide (#170) 9df7937
npm audit fix a2db7c5
perf: lazy-load facets only when 'Add filter' is clicked d0b111c
chore: release @karmaniverous/jeeves-server-openclaw v0.5.1 3aa5827
updated jeeves core 0860b2d
feat: garbage value diagnostics for inference rule debugging 06e4f82
chore: release @karmaniverous/jeeves-server v3.1.0 0688333
chore: release @karmaniverous/jeeves-server-openclaw v0.9.1 604c72f
[35] fix: resolve lint errors from core v0.4.4 migration 4b0c11d
[51] feat: integrate descriptor.run from core v0.4.5 74bebef
updated docs 075a6f3
chore: release @karmaniverous/jeeves-server v3.1.1 736ec35
[117] feat: bump core to v0.3.0 and consolidate status endpoint (#117) c80be62
chore: release @karmaniverous/jeeves-server-openclaw v0.9.0 44c2a72
fix: move undo/redo to document toolbar next to width buttons (#174) 0127aa2
[V3-7] refactor: SOLID/DRY pass across v3.7.0 changes 8747489
hoisted jeeves 0dd00f7
chore: release @karmaniverous/jeeves-server v3.0.1 67cf001
[V3-7] test: improve coverage and remove trivial tests 5a9086a
[360] chore: remove TASK.md build artifact, DRY up Node version check and fix minor issues 3e569db
fix: resolve all pre-existing eslint errors ef4e175
[35] chore: bump @karmaniverous/jeeves to ^0.4.3, remove cosmiconfig dep 8d3162b
chore: release @karmaniverous/jeeves-server-openclaw v0.6.1 b0a4bec
npm audit fix 7c578d4
[360] docs: Phase 4 — documentation updates for v3.6.0 8e0be64
fix: preserve source mapping on diagrams and HTML blocks for block editing 04be709
chore: release @karmaniverous/jeeves-server-openclaw v0.7.1 35299d1
npm audit fix 020edff
fix: address Gemini review — env vars, path-based detection, cross-platform docs (#170) a591a69
[V3-7] docs: sync documentation with v3.7.0 implementation 11b400e
[35] feat: define JeevesComponentDescriptor for server component 16c5b56
chore: release @karmaniverous/jeeves-server-openclaw v0.4.0 566e438
chore: release @karmaniverous/jeeves-server-openclaw v0.7.2 88ac709
chore: release @karmaniverous/jeeves-server v3.5.0 f41da11
[113] feat: add host bind and metaUrl config options 798d133
test(openclaw): cover service commands 08f478c
feat: render text/number facets as text inputs, chips for select/multiselect 282adf8
ci: replace bespoke docs workflow with shared version 9521d00
chore: release @karmaniverous/jeeves-server v3.9.0 de4c069
chore: release @karmaniverous/jeeves-server v3.8.0 9409a4b
[35] feat: use getBindAddress from core, replace localhost with 127.0.0.1 1df9dc6
fix(openclaw): address Gemini review — error handling and writer cleanup 293b6bc
[360] feat: Phase 2 — core v0.5.1 wiring (cleanup escalation, getPackageVersion, substituteEnvVars TODO) 2b97c20
chore: release @karmaniverous/jeeves-server-openclaw v0.6.2 f120979
[35] docs: add title front matter to all guides 840f9c7
[35] fix: encode browse path segments in API calls, add SPA catch-all (#50, #127) dce3f11
npm audit fix d43be1b
fix: text/number facets skip value cleaning, cast values to String c9af039
fix: resolve built client dir when running under tsx (#170) 5c7aa9c
chore: release @karmaniverous/jeeves-server-openclaw v0.5.0 5f29c12
chore: release @karmaniverous/jeeves-server-openclaw v0.4.1 01a64b8
updated jeeves-core d21bd1f
chore: release @karmaniverous/jeeves-server v3.6.0 40341f4
chore: release @karmaniverous/jeeves-server-openclaw v0.7.5 3708480
chore: release @karmaniverous/jeeves-server-openclaw v0.7.3 70d398a
[35] fix: use static bind default, bump openclaw core dep, remove local stub 6420e8c
ci: refactor linux-compat to use shared workflow + dedicated smoke-tests job e2f91f1
[35] feat: add GET /api/events endpoint for event log queries c5e6505
chore: release @karmaniverous/jeeves-server v3.10.3 90e48bc
chore: release @karmaniverous/jeeves-server-openclaw v0.7.4 8e79660
feat: cell edit popup textarea 448ddd8
fix: move DownloadDropdown outside isInsider gate in DirectoryRow 94dac57
chore: release @karmaniverous/jeeves-server v3.1.2 d15fa4c
chore: release @karmaniverous/jeeves-server-openclaw v0.2.1 3881f52
fix: add line wrapping and contained positioning to popup CodeEditor (#172) 4c217a8
[35] feat: add POST /config/apply endpoint using createConfigApplyHandler d1281b8
docs: document ?events=N query param on /api/status 4a25f3b
chore: release @karmaniverous/jeeves-server v3.6.1 b539679
[120] fix: runner proxy routes call /status instead of /stats and /health (#120) 6a9aa21
chore: release @karmaniverous/jeeves-server v3.5.2 08f6a37
chore: release @karmaniverous/jeeves-server v3.4.1 9a338bb
chore: release @karmaniverous/jeeves-server v3.2.1 f13677b
chore: release @karmaniverous/jeeves-server v3.8.4 93ca2af
chore: release @karmaniverous/jeeves-server v3.8.3 a38d69f
unhoisted jeeves 8af782b
chore: release @karmaniverous/jeeves-server v3.6.2 c69a014
chore: release @karmaniverous/jeeves-server v3.4.0 ed98759
[117] refactor(openclaw): use resolveOptionalPluginSetting for getPluginKey (#112) 6b36937
chore: release @karmaniverous/jeeves-server v3.3.1 bf01414
chore(openclaw): use resolveWorkspacePath from jeeves 0.1.4 71ddd58
chore: release @karmaniverous/jeeves-server v3.10.0 767f496
chore: release @karmaniverous/jeeves-server v3.8.1 20acfaa
chore: release @karmaniverous/jeeves-server v3.5.1 fd56acc
fix: restore eager facet loading on modal open a625bd0
chore: release @karmaniverous/jeeves-server v3.10.2 3cf0e72
chore: release @karmaniverous/jeeves-server v3.8.2 d77489e
chore: release @karmaniverous/jeeves-server v3.6.5 86abc4b
chore: release @karmaniverous/jeeves-server v3.6.4 7f61abb
chore: release @karmaniverous/jeeves-server v3.6.3 3492ac5
[360] chore: Phase 5 — quality gates clean (knip fixes, remove package-directory dep) a436c46
[35] fix: resolve startCommand path absolutely for CI compatibility 25d23cd
chore: release @karmaniverous/jeeves-server v3.4.2 30e700c
chore: release @karmaniverous/jeeves-server v3.3.0 1b1aec6
chore(openclaw): update jeeves to 0.1.6, add servicePackage/pluginPackage 1847ff7
chore: release @karmaniverous/jeeves-server-openclaw v0.2.0 2e0319f
chore: release @karmaniverous/jeeves-server-openclaw v0.1.1 abfee9f
chore: release @karmaniverous/jeeves-server v3.10.1 1e3542e
chore: release @karmaniverous/jeeves-server v3.8.5 cd69a3e
[V3-7] fix: checkbox toggle click handling for dangerouslySetInnerHTML 49a49d8
fix: exclude dist/src from source-mode detection to fix CI smoke tests (#170) d9e663c
[V3-7] fix: toggle-checkbox route wildcard position (CI fix) 34a0cbd
[35] ci: add cloud-sync workflow (parity with watcher/runner) aed95e7
chore: bump @karmaniverous/jeeves to 0.3.1 df78ac9
chore(openclaw): update @karmaniverous/jeeves to 0.1.5 c8b040b
chore(openclaw): update @karmaniverous/jeeves to 0.1.3 6de1c66
fix(openclaw): derive plugin version from package.json at runtime 1a78435
fix: add tagPrefix to auto-changelog config for monorepo tags 4540873
chore: release @karmaniverous/jeeves-server v3.1.3 801d362
fix: Ctrl+Enter save keybinding — use Prec.highest to override basicSetup (#175) 34f0731
[V3-7] fix: prettier formatting in toggleCheckbox route 71ab635
lint:fix 538b87d
[V3-7] style: fix prettier formatting in markdown tests e0177c8
fix: address Gemini review — remove redundant variable, handle indented HTML blocks (#168) 62cfcf1
Change license to BSD-3-Clause and add credits bcb8225
fix: constrain edit popup height to prevent overflow (#168) a726119
[35] fix: add missing dirs param to server_share plugin tool (#99, #87) 359189a
docs: fix diagram image paths in guides e870be6
chore: release @karmaniverous/jeeves-server-openclaw v0.3.0 b684be1
fix: guard navigator.clipboard before writeText calls 7e2d435
fix: make +N more chip overflow a clickable link that expands the result d56ed6a
fix: increase facets timeout to 15s, add error logging dfda5dd
fix: use type=number input for number facets c245b6a
fix: use path.dirname/basename for state dir resolution 6b2fe9f
Merge pull request #166 from karmaniverous/feature/edit-ux-refinements c5538f0
[V3-7] chore: bump versions (service 3.7.0, openclaw 0.8.0) 312ab26
[120] fix: runner proxy routes call /status instead of /stats and /health (#120) 8310b32
npm audit fix a07adac
fix: prevent full data reload on tab switch (only reload on path change) 6390b14
fix: close SearchableSelect dropdown on outside click (capture phase) f85d8dd
[V3-7] fix: use descendant selector for checkbox indexing (li > input -> li input) 61db2b0
[360] ci: drop Node 20 from Linux compatibility matrix (engine floor is now 22) 5b690e6
[360] docs: fix Node version in deployment guide (20 → 22) dde5cd2
fix: align config validate test assertion with core SDK output 5c776ca
Revert "fix: Rendered tab persists when switching to Raw on watcher-rendered files" 71b79d4
feat: search facets, metadata chips, and click-to-filter 20eeee8
chore: add client as workspace member, align puppeteer versions 6e3a40d
feat: internalize diagram dependencies (mermaid/plantuml) 9c7f8a7
updated docs 86d88c7
feat: implement OpenClaw plugin (Phase 3, Steps 11-15) 72a04e0
docs: refresh README and guides for v3 CLI + config e437387
refactor: monorepo scaffolding (Phase 1, Step 1) 15cf2ba
feat: migrate config from jiti/TS to cosmiconfig/JSON adfba33
fix: resolve all client ESLint errors and warnings 768541a
chore: release @karmaniverous/jeeves-server v3.0.0-0 07a6e47
chore: SOLID/DRY pass #3 + plugin test coverage 7dcc4c3
feat: add CLI commands (start, config validate/show, service) 0437984
fix: resolve knip unused files, dependencies, and exports 964beba
chore: release @karmaniverous/jeeves-server-openclaw v0.1.0-0 b6c0f6d
docs: add typedoc config and dependencies 761bb8c
fix: address all gap analysis findings 1eb02ab
npm audit fix 3a144b4
feat: add GET /api/link-info endpoint 02ece39
test: add resolve.ts unit tests (21 tests) 7c988ef
fix: cosmiconfig searchPlaces, SOLID/DRY pass, test coverage 08de751
feat: add GET /api/status endpoint 764c3a7
chore: SOLID/DRY/test coverage pass e491bfb
refactor: extract buildRuntimeConfig to resolve.ts (DRY) 87bd749
chore: add knip configs, remove dead exports, clean all code quality checks 2a81072
fix: address Gemini code review feedback across PRs #65-#76 2fef919
fix: make resetConfig reload runtime config 79e8602
refactor: extract shared renderMarkdownContent pipeline 244dddf
feat: schema-driven search facet filters (Step 10) c305c2a
feat: add scroll anchoring for async diagram renders e4bd972
feat: document rendering pipeline (Phase 4, Steps 16-18) 56095ee
npm audit fix 3810c0f
lintfix 00dc2b2
fix: resolve package.json path portably for version 29d775c
feat: add GET /api/search/facets proxy endpoint 28fc200
ni e40deac
docs: add changelogs as children of package guide indexes fd16b5b
lintfix 38a9376
chore: migrate default port to 1934 4614a5f
chore: add tsdoc.json to both package roots 9ccf217
chore: add tsdoc.json to both package roots 173cf94
chore: release @karmaniverous/jeeves-server v3.0.0-1 db96bc1
fix: set rootDir and update start script path for monorepo layout a2fd77c
fix: resolve TS2352 warnings in openclaw test mocks 88950e2
fix: CI failures and SvgViewer panzoom re-init bug 7392712
fix: resolve remaining lint errors (type annotations, unused params, unnecessary conditionals) e7714ae
fix: remove unnecessary auth from /api/status calls (endpoint is public) f651fe7
fix: update linux-compat CI for monorepo paths 22dd30f
chore: release @karmaniverous/jeeves-server-openclaw v0.1.0-1 d08e571
chore: eliminate all lint warnings ed12c86
fix: CI rimraf resolution and remove redundant client steps 757c45c
chore: release @karmaniverous/jeeves-server v3.0.0 ef408c3
chore: release @karmaniverous/jeeves-server-openclaw v0.1.0 bbeac17
fix: server_browse and server_export route mismatches 82ef907
npm audit fix 2f3b5c8
publishconfig public access 8e4358c
fix: restore light mode text-foreground on Add Filter menu labels 9bb9c7f
fix: cap schema-driven facet chips to fields with ≤30 values de625e2
fix: add pattern to StatusResponse events type f64e6af
fix: normalize path for watcher render (Windows backslash + uppercase drive) f6c229d
zero version 2c0db75
merge: incorporate main (PR #77 gap-analysis) 845268d
fix: add missing return-await in facets handler b08d4a3
fix: remove unused parameter in linkInfo test 36fca9a
ci: add Node 24 to linux-compat matrix 66f1008
fix: adjust relative paths for monorepo dist/src/ layout dcaf9dc
fix: adjust rootDir depth for monorepo dist/src/config path 5427014
lintfix bacf460
26 February 2026
feat: render YAML frontmatter as code block #60
feat: render YAML frontmatter as code block in markdown view 3045a94
chore: release v2.9.3 1475596
24 February 2026
feat: sortable columns on runner dashboard 023a473
chore: release v2.9.2 d3db011
24 February 2026
fix: dark mode status pills via custom-variant 30454de
chore: release v2.9.1 d34fd62
chore: release v2.9.0 7cdc030
24 February 2026
feat: add runner dashboard #59
fix: event queue byte/char cursor mismatch + postbuild client #52
fix: client TS errors + picomatch dot matching #51
gitignores 601737f
chore: release v2.9.0 7813907
23 February 2026
[GH-46] Semantic search UI #47
[GH-46] GH-46: Semantic search — backend proxy + frontend modal 80383d1
[GH-46] GH-46: Date range filtering (relative + absolute) e775502
[GH-46] GH-46: Accordion chunks with scrollable container d9462e0
[GH-46] GH-46: Persistent search state + reset control 8fba6ea
[GH-46] GH-46: File type (extension) filter chips fcab7b2
[GH-46] GH-46: Enlarge search modal (max-w-4xl, 85vh, less top offset) 83d8ad2
22 February 2026
[GH-44] Cache exports + Clear Cache control #45
[GH-44] GH-44: Add export cache + Clear Cache endpoint and UI bf41cd0
[GH-44] Clear cache covers standalone diagram files (mmd/puml) 63ba5c8
[GH-44] Add .export-cache/ to gitignore 80ade63
22 February 2026
GH-42: Unify raw view on CodeMirror 6 with code folding #43
[GH-42] Replace highlight.js raw view with CodeMirror 6 read-only viewer 547315c
[GH-42] Remove highlight.js — CM6 handles all syntax highlighting 52415ae
[GH-42] Fix DOCX code block rendering — per-line paragraphs with NBSP indent 61db677
[GH-42] Fix lint: unnecessary conditional in export.ts 528c740
[GH-42] Revert custom fold markers to basicSetup defaults 37fc320
[GH-42] Skip CM6 for PDF/DOCX export — use plain pre/code blocks 6706f68
22 February 2026
GH-40: Retry button for failed inline diagram renders #41
[GH-40] Add retry button to failed inline diagram renders 1fe10bd
[GH-40] Improve error message and add reload hint on retry failure b0c02c8
22 February 2026
GH-38: Terms of Service, Privacy Policy & search engine blocking #39
21 February 2026
SOLID/DRY codebase audit — comprehensive refactor #37
21 February 2026
GH-32 + GH-33: Diagram cache + lazy-load embedded diagrams 74b68be
20 February 2026
feat: in-browser text editing (GH-30) #31
chore: bump version to 2.6.0 7d54aa3
20 February 2026
feat: Render embedded Mermaid/PlantUML code blocks (GH-23) #27
chore: bump version to 2.5.0 2c42e14
20 February 2026
feat: Native PlantUML support (GH-22) #25
chore: bump version to 2.4.0 ddf9d87
20 February 2026
fix: case-insensitive email comparison for insider matching #24
19 February 2026
refactor: Copy Raw Link builds /api/raw/ URL directly, remove raw=1 redirect #21
19 February 2026
feat: raw=1 on /browse/* redirects to /api/raw/* for raw file delivery #20
19 February 2026
fix: forward auth params on downloads, show error popup on failure #19
18 February 2026
refactor: replace hand-rolled glob matching with picomatch #18
18 February 2026
[GH-16] feat(GH-16): utility share-for endpoint + outsider policy #17
18 February 2026
Allow/deny scopes for insiders and keys #15
chore: update repo description and add keywords to package.json 5130698
17 February 2026
GH-13: Linux compatibility #14
17 February 2026
[GH-11] Deep share links with depth and directory controls #12
docs: add platform support section, sync requirements with GH-11 implementation, call out Linux as next-up 261ff4d
fix: header button hover in light mode - use white/10 overlay instead of accent bg eeb370c
17 February 2026
Fix PDF/DOCX export rendering #10
Decommission path routes #8
[GH-9] fix DOCX SVG export — render SVGs in clean isolated pages #9
[GH-9] fix DOCX SVG screenshot offset — use element.screenshot() instead of clip #9
[GH-9] fix SVG rendering in SPA and PDF/DOCX export issues #9
[GH-9] fix PDF/DOCX exports rendering panzoom container chrome #9
[GH-7] decommission /path routes — migrate to /api/raw, /api/export, /browse redirect #7
[GH-7] remove legacy server.js — replaced by src/server.ts 6a701e6
[GH-7] remove server-rendered about page, templates, and test PDFs bad31ca
[GH-9] render DOCX SVGs at full page width (1152px) dbb5bae
fix: increase mobile bottom padding to pb-32 (8rem) e19b653
fix: use md:px-6 md:pt-6 instead of md:p-6 so pb-16 isn't overridden at md breakpoint 6b1c19f
fix: add pb-16 bottom padding to scroll containers for mobile browser chrome clearance 7319d00
fix: pass puppeteer.json config to mmdc for NSSM service compatibility 769610f
[GH-9] render DOCX SVG screenshots at 2x device scale for crisp output 68c04f4
16 February 2026
v2.0.0: React SPA migration #6
[GH-5] merge: resolve conflicts with main (keep feature branch for frozen server pages) 2c57b6f
[GH-5] feat: React + Vite scaffold with file browser, API endpoints, and SPA serving (GH-5) 6a8ffb5
[GH-5] Dropdown menus, TS config, state separation, local static assets 16f40b4
[GH-5] docs: add all guides - event gateway, exports, deployment, API integration 45e026a
[GH-5] docs: move requirements to .stan/system/stan.requirements.md, slim README 43214d0
[GH-5] docs: add setup and sharing guides, link from README ac32dc9
[GH-5] docs: update README to reflect current architecture - Fastify, Zod 4 config, React SPA, dual auth, prose width toggle e0da626
[GH-5] feat: per-row share icons on drives listing page (GH-5) 35a04a6
[GH-5] Fix header wrapping + unified fixed top bar 26baa15
[GH-5] feat: responsive header - single row wide, progressive collapse - Action bar wraps to row 2 below lg breakpoint - Info/theme fold into account menu below lg - Breadcrumbs scroll horizontally (hat pinned) - Thin scrollbar styling for breadcrumb overflow c20ea7a
[GH-5] Fixed header/tabs, key auth for SPA, dropdown hover variants 808c024
[GH-5] feat: replace expiry text input with dropdown (never/1h/1d/1w/1m/1y) (GH-5) 7691a69
[GH-5] Responsive header layout - two-row design 1c7fbda
[GH-5] feat: Panzoom for SVG images embedded in rendered markdown - Finds img tags with .svg sources in rendered articles - Fetches SVG content and replaces img with interactive Panzoom container - Scroll to zoom, drag to pan - Graceful fallback to original img on fetch failure 1cd0dd4
feat: replace expiry text input with dropdown (never/1h/1d/1w/1m/1y) 4a0f8ae
[GH-5] refactor: replace lodash with radash in event gateway JsonMap lib 5c2f322
feat: per-row share icons on drives listing page dcc2fbc
[GH-5] feat: fullscreen toggle for inline SVG Panzoom viewers 2806878
[GH-5] Scrollbar under tabs, main as scroll container 65b4dcc
[GH-5] fix: pre-process SVG to 100% width/height before render — prevents overflow on tab switch 3da142d
[GH-5] fix: SVG viewer zoom-to-fit — entire image visible in viewport, centered f0927ec
[GH-5] docs: Mermaid diagram for event gateway, link first repo references in guides 3c5e98e
[GH-5] docs: rewrite README - position as AI-to-business publishing bridge c6e7c6e
[GH-5] fix: remove fullscreen toggle from SVG viewer — rendered view is the experience f744eea
[GH-5] docs: replace ASCII access decision flow with Mermaid SVG in sharing guide f1455d0
[GH-5] feat: prose width toggle (narrow/wide) for rendered markdown 2e5f19f
[GH-5] fix: SVG fullscreen fits drawing to viewport, allow zoom out feat: README prominently features Event Gateway 080161c
[GH-5] Mobile TOC: hamburger menu left of Rendered/Raw tabs 4b00ff6
[GH-5] feat: add medium prose width option (three-way toggle) 2b3dad4
[GH-5] docs: clarify key derivation in event gateway guide e03c97e
[GH-5] fix: defer SvgViewer Panzoom init to next frame — fixes tab switch overflow 39c28b5
[GH-5] Fix mobile header overflow and simplify sticky layout 505bd5e
[GH-5] fix: center SVG vertically and horizontally in fullscreen panzoom ec683bc
[GH-5] Fix code block contrast in light mode 2051d65
[GH-5] chore: bump version to 2.0.0 8864eaa
[GH-5] Fix CodeBlock component theme awareness 678b7bb
[GH-5] Fix TOC sidebar sticky position and anchor scroll offset 6f2aa3f
[GH-5] fix: remove backtick pseudo-elements from inline code in prose f47cd60
[GH-5] fix: anchor scroll offset - use getBoundingClientRect relative to scroll container a8f5e0c
[GH-5] fix: SVG fullscreen center/center - remove CSS centering, let Panzoom startX/startY handle positioning 54c5aca
[GH-5] Fix TOC sticky top to match header + tabs + gap (7rem) c0d1a40
[GH-5] Fix prose typography colors for light/dark mode 39ce6f9
[GH-5] fix: prose width buttons only appear for rendered markdown, not SVG/Mermaid 4067119
[GH-5] docs: fix insider description — may be scoped, not always full access b481d3a
[GH-5] docs: mention front-end event link button in event gateway guide bdb203c
feat: replace expiry text input with dropdown (never/1h/1d/1w/1m/1y) b247aa3
15 February 2026
fix: wrap entire startup in try/catch, surface errors instead of silent exit 1913fe1
fix: mobile header — hide redundant share UI on directories, allow header wrapping (GH-4) 6306f27
fix: header stretches to full content width when zoomed out bbebeec
fix: restore header share UI on directories — shares current page, not redundant with per-row icons 1f77d96
15 February 2026
Merge feature/GH-4-google-oauth: Google OAuth + per-row share icons 4706828
[GH-4] feat: add Google OAuth and cookie sessions (GH-4) 89b6d72
[GH-4] feat: directory outsider links, new share UI, per-insider key age (GH-4) 4cbc001
[GH-4] refactor: merge configs into jeeves.config.json (GH-4) dae22f9
[GH-4] feat: per-row share icons in directory listings — 🔗 page + ⬇ raw with shared expiry input (GH-4) f0e005e
[GH-4] feat: remove dangerous executable distinction — all files navigable and downloadable (GH-4) d974f3b
[GH-4] feat: outsider directory shares show navigable breadcrumbs from share root (GH-4) 0e93d19
[GH-4] feat: copy-key button, insider seeds for outsider URL auth (GH-4) aa4f42b
[GH-4] feat: remove key params from insider links — cookie auth makes them unnecessary (GH-4) 5509823
[GH-4] fix: share endpoint supports insider seeds and session cookie auth (GH-4) 4541572
[GH-3] Log full body for unmatched events (remove 200-char truncation) 639c4df
[GH-4] fix: serve favicon.svg route — was referenced in HTML but never served (GH-4) 5543ff8
[GH-4] fix: redirect URI uses Host header for correct port (GH-4) 2b6e43f
[GH-4] feat: Raw option in link dropdown for embeddable URLs (GH-4) 14098a0
[GH-4] fix: session cookie secure flag for http dev 903e00f
15 February 2026
v1.1.0: TypeScript/Fastify refactor, event gateway, named keys with scopes f3711f8
Merge feature/GH-3-ts-refactor: TypeScript/Fastify refactor with event gateway and named keys a920a99
[GH-3] TypeScript refactor scaffolding and core modules 8dd0b92
[GH-3] Decompose path route into sub-modules c369969
[GH-3] Complete path and about routes ffef74a
[GH-3] implement event gateway with durable queue and logging 2eaef85
[GH-3] Add comprehensive tests for util modules (crypto, formatters, fileDetection) 3536fdd
[GH-3] Auth: multiple API key seeds with optional scopes (preserve HMAC model) 00b1e67
Document event gateway and config redesign in README 3f904ca
[GH-3] Fix lint errors 09d8c28
[GH-3] Fix tsconfig, add prebuild clean, add tsconfig.eslint.json 8d08742
[GH-3] Fix stan: add placeholder test, configure knip for in-progress refactor e91697d
[GH-3] fix build scripts: increase typecheck memory, ensure dist dir for lint, exclude dist from vitest d909a60
8 February 2026
Reduce PDF/DOCX font sizes to 10pt base 2617ac9
Fix PDF font size - add 10pt to PDF-specific styles 18b3505
7 February 2026
Fix raw download for markdown files 25952cd
Add top hat branding to outsider pages, improve filename display cacbb60
Add 'Jeeves Server' tooltip to top hat in all modes 26902d4
7 February 2026
21 April 2026
fix: edit popup scrollbar and word wrap #173
fix: dev server white screen — serve built client under tsx #171
fix: constrain edit popup height to prevent overflow #169
feat: markdown-it migration, inline block editing, OAuth2 flow (#162, #163) #165
feat: markdown-it migration, block editing, OAuth2 flow (#162, #163) ceebc33
feat: block type label in edit popup 8178540
chore: release @karmaniverous/jeeves-server-openclaw v0.10.0 26942bd
fix: resolve remaining React lint errors e7a291c
feat: client-side undo/redo stack fc7fc1c
fix: unify cell/block editor, pure flex height chain, SOLID/DRY cleanup (#172) 0318740
fix: move undo/redo to header, preserve scroll on save (#174, #176) cd5de16
fix: address Gemini review — undo correctness, reactivity, DRY, cleanup 9ad8661
docs: add CONTRIBUTING.md with dev server setup guide (#170) 9df7937
fix: move undo/redo to document toolbar next to width buttons (#174) 0127aa2
fix: resolve all pre-existing eslint errors ef4e175
fix: preserve source mapping on diagrams and HTML blocks for block editing 04be709
fix: address Gemini review — env vars, path-based detection, cross-platform docs (#170) a591a69
chore: release @karmaniverous/jeeves-server v3.9.0 de4c069
fix: resolve built client dir when running under tsx (#170) 5c7aa9c
feat: cell edit popup textarea 448ddd8
fix: add line wrapping and contained positioning to popup CodeEditor (#172) 4c217a8
fix: exclude dist/src from source-mode detection to fix CI smoke tests (#170) d9e663c
fix: Ctrl+Enter save keybinding — use Prec.highest to override basicSetup (#175) 34f0731
fix: address Gemini review — remove redundant variable, handle indented HTML blocks (#168) 62cfcf1
fix: constrain edit popup height to prevent overflow (#168) a726119
Merge pull request #166 from karmaniverous/feature/edit-ux-refinements c5538f0
15 April 2026
fix: make clear-cache visible to outsiders in download menu #161
refactor: simplify checkbox toggle to fire-and-forget #160
fix: checkbox indexing for loose list items #159
fix: post-merge checkbox toggle, Gemini review, CI wildcard #158
[V3-7] refactor: simplify checkbox toggle to fire-and-forget (no mtime, no conflict) 013f19e
[V3-7] fix: checkbox click handler — use native capture-phase delegation via ref callback, fix mtime stale-write flow 56ef58f
chore: release @karmaniverous/jeeves-server-openclaw v0.9.1 604c72f
updated jeeves-core d21bd1f
fix: move DownloadDropdown outside isInsider gate in DirectoryRow 94dac57
chore: release @karmaniverous/jeeves-server v3.8.4 93ca2af
chore: release @karmaniverous/jeeves-server v3.8.3 a38d69f
chore: release @karmaniverous/jeeves-server v3.8.1 20acfaa
chore: release @karmaniverous/jeeves-server v3.8.2 d77489e
chore: release @karmaniverous/jeeves-server v3.8.5 cd69a3e
[V3-7] fix: checkbox toggle click handling for dangerouslySetInnerHTML 49a49d8
[V3-7] fix: prettier formatting in toggleCheckbox route 71ab635
lint:fix 538b87d
[V3-7] fix: use descendant selector for checkbox indexing (li > input -> li input) 61db2b0
lintfix bacf460
11 April 2026
feat: v3.7.0 / v0.8.0 — shareable URLs, insider checkbox toggles, events route fix #157
[V3-7] feat: wire MarkdownView checkbox toggling #154
[V3-7] feat: add POST /api/file/*/toggle-checkbox endpoint #154
[V3-7] feat: add checkbox indexing and mtime to markdown pipeline #154
[V3-7] feat: update TOOLS guidance to note automatic URL rewriting #152
[V3-7] feat: add publicUrl config for shareable URL rewriting #145
[V3-7] fix: correct /events route path to /api/events #156
[V3-7] fix: address Gemini review — URL boundary, checkbox regex, Cheerio, race condition 718b60a
chore: release @karmaniverous/jeeves-server-openclaw v0.9.0 44c2a72
[V3-7] refactor: SOLID/DRY pass across v3.7.0 changes 8747489
[V3-7] test: improve coverage and remove trivial tests 5a9086a
[V3-7] docs: sync documentation with v3.7.0 implementation 11b400e
chore: release @karmaniverous/jeeves-server v3.8.0 9409a4b
npm audit fix d43be1b
[V3-7] fix: toggle-checkbox route wildcard position (CI fix) 34a0cbd
[V3-7] style: fix prettier formatting in markdown tests e0177c8
[V3-7] chore: bump versions (service 3.7.0, openclaw 0.8.0) 312ab26
8 April 2026
npm audit fix 9390169
chore: release @karmaniverous/jeeves-server-openclaw v0.7.5 3708480
chore: release @karmaniverous/jeeves-server v3.6.5 86abc4b
5 April 2026
chore: release @karmaniverous/jeeves-server-openclaw v0.7.4 8e79660
unhoisted jeeves 8af782b
chore: release @karmaniverous/jeeves-server v3.6.4 7f61abb
5 April 2026
hoisted jeeves 0dd00f7
chore: release @karmaniverous/jeeves-server-openclaw v0.7.3 70d398a
chore: release @karmaniverous/jeeves-server v3.6.3 3492ac5
5 April 2026
fix: consume core importMetaUrl for plugin install (#150, #147) #151
[150] fix: consume core importMetaUrl for plugin install #150
[150] fix: consume core importMetaUrl for plugin install (#150) #150 #147
chore: release @karmaniverous/jeeves-server-openclaw v0.7.2 88ac709
chore: release @karmaniverous/jeeves-server v3.6.2 c69a014
5 April 2026
chore: dependency updates — jeeves ^0.5.3, jsonmap ^2.1.1, @types/node ^25.5.2, and minor/patch bumps #149
chore: update @karmaniverous/jeeves to ^0.5.3 and bump minor/patch deps a73fd37
chore: update @types/node to ^25.5.2 696da29
chore: update @karmaniverous/jsonmap ^0.3.1 → ^2.1.1 12a848d
chore: release @karmaniverous/jeeves-server-openclaw v0.7.1 35299d1
npm audit fix 020edff
chore: release @karmaniverous/jeeves-server v3.6.1 b539679
3 April 2026
feat: v3.6.0 core v0.5.1 adoption + core service alignment + UX improvements #146
[360] feat: Phase 3 — UX improvements (CSV tables, directory item counts, collapsible frontmatter, collapsible TOC) #48
[360] feat: Phase 1 — core service adoption (getServiceUrl, getBindAddress, Node 22 fast-fail) #135
[360] test: add missing test coverage for v3.6.0 features c23f7a1
chore: release @karmaniverous/jeeves-server-openclaw v0.7.0 3cce7a2
[360] refactor: address code review — async directory reads, CSV row normalization, extract mapDirectoryEntry 3a1a389
npm audit fix 0be936a
[360] refactor: split TocSection.tsx — move utilities to tocUtils.ts (fixes react-refresh lint) d8e8d57
[360] chore: remove TASK.md build artifact, DRY up Node version check and fix minor issues 3e569db
[360] docs: Phase 4 — documentation updates for v3.6.0 8e0be64
[360] feat: Phase 2 — core v0.5.1 wiring (cleanup escalation, getPackageVersion, substituteEnvVars TODO) 2b97c20
chore: release @karmaniverous/jeeves-server v3.6.0 40341f4
[360] chore: Phase 5 — quality gates clean (knip fixes, remove package-directory dep) a436c46
[360] ci: drop Node 20 from Linux compatibility matrix (engine floor is now 22) 5b690e6
[360] docs: fix Node version in deployment guide (20 → 22) dde5cd2
31 March 2026
[53] Fix pre-existing lint + knip errors (Commander type resolution) #140
[53] Integrate core v0.4.6: init() before descriptor.run() + knip fixes #139
[53] chore: bump core to v0.4.6 (init before run) + fix knip issues e5f466a
[53] chore: bump core to v0.4.6 (init before run) + fix knip issues cc2adb6
chore: release @karmaniverous/jeeves-server-openclaw v0.6.2 f120979
chore: release @karmaniverous/jeeves-server v3.5.2 08f6a37
31 March 2026
[51] Integrate descriptor.run from core v0.4.5 #137
[51] feat: integrate descriptor.run from core v0.4.5 74bebef
chore: release @karmaniverous/jeeves-server-openclaw v0.6.1 b0a4bec
chore: release @karmaniverous/jeeves-server v3.5.1 fd56acc
30 March 2026
Fix config validate test assertion #136
[35] Component SDK adoption (core v0.4.4) + plugin/CLI factories #134
[35] refactor: replace hand-rolled package.json walk with packageDirectorySync #96
[35] fix: show user-friendly search error messages #98
[35] fix: decode HTML entities in TOC heading text #102
[35] refactor: remove Connected Services from TOOLS.md writer (closes #128) #128
[35] chore: update deps (peer-safe) c87c3a1
[35] refactor: migrate openclaw plugin to core v0.4.4 SDK e29773a
[35] refactor: SOLID/DRY cleanup 78a0b2d
[35] refactor: replace hand-rolled CLI with createServiceCli(descriptor) (#106) 9b7517f
[35] refactor: adopt createPluginToolset, health-nested status, event endpoint (#87, #112, #118, #128) 8ead7ae
[35] test: add tests for diagramExport and sharing helpers 1caaa1b
[35] feat: replace cosmiconfig with direct JSON config loading 6f888c6
[35] docs: sync documentation with SDK adoption changes aefbf73
[35] refactor: migrate GET /status to createStatusHandler factory 3526b46
chore: release @karmaniverous/jeeves-server-openclaw v0.6.0 bfa7501
npm audit fix a2db7c5
[35] fix: resolve lint errors from core v0.4.4 migration 4b0c11d
[35] chore: bump @karmaniverous/jeeves to ^0.4.3, remove cosmiconfig dep 8d3162b
[35] feat: define JeevesComponentDescriptor for server component 16c5b56
chore: release @karmaniverous/jeeves-server v3.5.0 f41da11
[35] feat: use getBindAddress from core, replace localhost with 127.0.0.1 1df9dc6
[35] docs: add title front matter to all guides 840f9c7
[35] fix: encode browse path segments in API calls, add SPA catch-all (#50, #127) dce3f11
[35] fix: use static bind default, bump openclaw core dep, remove local stub 6420e8c
ci: refactor linux-compat to use shared workflow + dedicated smoke-tests job e2f91f1
[35] feat: add GET /api/events endpoint for event log queries c5e6505
[35] feat: add POST /config/apply endpoint using createConfigApplyHandler d1281b8
[35] fix: resolve startCommand path absolutely for CI compatibility 25d23cd
[35] ci: add cloud-sync workflow (parity with watcher/runner) aed95e7
[35] fix: add missing dirs param to server_share plugin tool (#99, #87) 359189a
fix: align config validate test assertion with core SDK output 5c776ca
25 March 2026
Remove /health proxy, rename /stats to /status, align client types #122
Fix runner proxy routes calling wrong endpoints #121
chore: release @karmaniverous/jeeves-server-openclaw v0.5.1 3aa5827
ci: replace bespoke docs workflow with shared version 9521d00
[120] fix: runner proxy routes call /status instead of /stats and /health (#120) 6a9aa21
chore: release @karmaniverous/jeeves-server v3.4.1 9a338bb
chore: release @karmaniverous/jeeves-server v3.4.2 30e700c
chore: bump @karmaniverous/jeeves to 0.3.1 df78ac9
[120] fix: runner proxy routes call /status instead of /stats and /health (#120) 8310b32
23 March 2026
Bump core to v0.3.0 and consolidate status endpoint #119
[117] feat: bump core to v0.3.0 and consolidate status endpoint (#117) c80be62
chore: release @karmaniverous/jeeves-server-openclaw v0.5.0 5f29c12
chore: release @karmaniverous/jeeves-server v3.4.0 ed98759
[117] refactor(openclaw): use resolveOptionalPluginSetting for getPluginKey (#112) 6b36937
22 March 2026
Add configurable host bind + metaUrl service probe #114
[113] feat: add host bind and metaUrl config options 798d133
chore: release @karmaniverous/jeeves-server-openclaw v0.4.1 01a64b8
chore: release @karmaniverous/jeeves-server v3.3.1 bf01414
npm audit fix a07adac
21 March 2026
feat: core v0.2.0 SDK adoption #111
chore: release @karmaniverous/jeeves-server-openclaw v0.4.0 566e438
chore: release @karmaniverous/jeeves-server v3.3.0 1b1aec6
19 March 2026
feat(openclaw): adopt jeeves core component writer #105
chore: release @karmaniverous/jeeves-server-openclaw v0.3.1 11309c1
test(openclaw): expand coverage for openclawPaths, pluginRemove, serviceCommands b38ecac
chore(openclaw): update deps, clean knip config 82cb058
fix(openclaw): bundle @karmaniverous/jeeves into plugin dist 61fb7ac
docs: full documentation pass with PlantUML diagrams 537a9d7
refactor(openclaw): resolve SOLID/DRY violations 87df443
chore: release @karmaniverous/jeeves-server v3.2.0 fda70c6
refactor(openclaw): use createAsyncContentCache from jeeves v0.1.1 9732ad9
npm audit fix 7c578d4
test(openclaw): cover service commands 08f478c
fix(openclaw): address Gemini review — error handling and writer cleanup 293b6bc
chore: release @karmaniverous/jeeves-server v3.2.1 f13677b
chore(openclaw): use resolveWorkspacePath from jeeves 0.1.4 71ddd58
chore(openclaw): update jeeves to 0.1.6, add servicePackage/pluginPackage 1847ff7
chore(openclaw): update @karmaniverous/jeeves to 0.1.5 c8b040b
chore(openclaw): update @karmaniverous/jeeves to 0.1.3 6de1c66
fix(openclaw): derive plugin version from package.json at runtime 1a78435
fix: add tagPrefix to auto-changelog config for monorepo tags 4540873
Change license to BSD-3-Clause and add credits bcb8225
docs: fix diagram image paths in guides e870be6
14 March 2026
chore: release @karmaniverous/jeeves-server-openclaw v0.3.0 b684be1
11 March 2026
docs: document scope override precedence in OpenClaw skill #95
feat: explicit scope overrides take precedence over named scopes #94
fix: parse inline tokens in heading renderer #93
fix: prevent full data reload on tab switch #91
fix: Rendered tab persists when switching to Raw on watcher-rendered files #90
fix: parse inline tokens in heading renderer (code spans, bold, italic) #92
chore: add docs workflow, gitignore generated docs 10bffb8
chore: release @karmaniverous/jeeves-server v3.1.1 736ec35
chore: release @karmaniverous/jeeves-server v3.1.2 d15fa4c
chore: release @karmaniverous/jeeves-server-openclaw v0.2.1 3881f52
chore: release @karmaniverous/jeeves-server v3.1.3 801d362
fix: prevent full data reload on tab switch (only reload on path change) 6390b14
Revert "fix: Rendered tab persists when switching to Raw on watcher-rendered files" 71b79d4
9 March 2026
feat: extend /api/status with ?events=N for recent event log #89
fix: server_share sends POST with JSON body instead of GET #87
docs: guide index content + typedoc jsonl highlight #86
docs: refresh README + guides for v3 #85
feat: named access scopes #84
fix: plugin auth chain, status endpoint improvements #83
fix: resetConfig should reload, not clear #82
chore: integrate client as npm workspace member #81
fix: force white background in panzoom fullscreen (dark mode) #80
chore: make both packages releasable #79
fix: address Gemini code review feedback (PRs #65-#76) #78
chore: fix all gap analysis findings (10 items) #77
Phase 4, Steps 16-18: Document rendering pipeline #76
Phase 3, Steps 11-15: OpenClaw plugin #75
Phase 2, Steps 9-10: Search facets proxy + filter UI #74
Phase 2, Step 8: Scroll anchoring #73
chore: SOLID/DRY/coverage audit pass 2 #72
Phase 2, Step 7: Link availability endpoint #71
Phase 1, Step 6: Port migration #70
Phase 1, Step 5: Diagram dependency internalization #69
Phase 1, Step 4: Server Status API #68
Phase 1, Step 3: CLI commands #67
Phase 1, Step 2: Config migration (jiti → cosmiconfig) #66
Phase 1: Monorepo & Config (v3.0.0) #65
feat: align search browse filter with watcher domains convention #64
fix: exit edit mode after save #63
chore: add default port 1934 #62
chore: add default port 1934 #61
feat: render YAML frontmatter as code block #60
feat: add runner dashboard #59
fix: event queue byte/char cursor mismatch + postbuild client #52
fix: client TS errors + picomatch dot matching #51
[GH-46] Semantic search UI #47
[GH-44] Cache exports + Clear Cache control #45
GH-42: Unify raw view on CodeMirror 6 with code folding #43
GH-40: Retry button for failed inline diagram renders #41
GH-38: Terms of Service, Privacy Policy & search engine blocking #39
SOLID/DRY codebase audit — comprehensive refactor #37
feat: in-browser text editing (GH-30) #31
feat: Render embedded Mermaid/PlantUML code blocks (GH-23) #27
feat: Native PlantUML support (GH-22) #25
fix: case-insensitive email comparison for insider matching #24
refactor: Copy Raw Link builds /api/raw/ URL directly, remove raw=1 redirect #21
feat: raw=1 on /browse/* redirects to /api/raw/* for raw file delivery #20
fix: forward auth params on downloads, show error popup on failure #19
refactor: replace hand-rolled glob matching with picomatch #18
[GH-16] feat(GH-16): utility share-for endpoint + outsider policy #17
Allow/deny scopes for insiders and keys #15
GH-13: Linux compatibility #14
[GH-11] Deep share links with depth and directory controls #12
Fix PDF/DOCX export rendering #10
Decommission path routes #8
v2.0.0: React SPA migration #6
[GH-9] fix DOCX SVG export — render SVGs in clean isolated pages #9
[GH-9] fix DOCX SVG screenshot offset — use element.screenshot() instead of clip #9
[GH-9] fix SVG rendering in SPA and PDF/DOCX export issues #9
[GH-9] fix PDF/DOCX exports rendering panzoom container chrome #9
[GH-7] decommission /path routes — migrate to /api/raw, /api/export, /browse redirect #7
chore: add client as workspace member, align puppeteer versions 6e3a40d
updated docs 86d88c7
updated docs cbd8537
docs: refresh README and guides for v3 CLI + config e437387
refactor: remove hardcoded filters, fix lazy facet loading ffb0f2a
fix: resolve all client ESLint errors and warnings 768541a
chore: release @karmaniverous/jeeves-server v3.0.0-0 07a6e47
fix: resolve knip unused files, dependencies, and exports 964beba
chore: release @karmaniverous/jeeves-server-openclaw v0.1.0-0 b6c0f6d
docs: add typedoc config and dependencies 761bb8c
feat: metadata chips on search results with click-to-filter a11ce3d
docs: add guide index content and fix typedoc trailing comma 3844271
perf: lazy-load facets only when 'Add filter' is clicked d0b111c
chore: add knip configs, remove dead exports, clean all code quality checks 2a81072
feat: garbage value diagnostics for inference rule debugging 06e4f82
fix: make resetConfig reload runtime config 79e8602
chore: release @karmaniverous/jeeves-server v3.1.0 0688333
updated docs 075a6f3
chore: release @karmaniverous/jeeves-server v3.0.1 67cf001
chore: release @karmaniverous/jeeves-server-openclaw v0.2.0 2e0319f
feat: search facets, metadata chips, and click-to-filter 20eeee8
feat: internalize diagram dependencies (mermaid/plantuml) 9c7f8a7
feat: implement OpenClaw plugin (Phase 3, Steps 11-15) 72a04e0
[GH-46] GH-46: Semantic search — backend proxy + frontend modal 80383d1
refactor: monorepo scaffolding (Phase 1, Step 1) 15cf2ba
feat: migrate config from jiti/TS to cosmiconfig/JSON adfba33
chore: SOLID/DRY pass #3 + plugin test coverage 7dcc4c3
feat: add CLI commands (start, config validate/show, service) 0437984
[GH-44] GH-44: Add export cache + Clear Cache endpoint and UI bf41cd0
fix: address all gap analysis findings 1eb02ab
npm audit fix 3a144b4
feat: two-step facet selection + garbage value filtering 6c60e97
feat: add GET /api/link-info endpoint 02ece39
feat: schema-driven facet rendering by uiHint 97af834
test: add resolve.ts unit tests (21 tests) 7c988ef
fix: cosmiconfig searchPlaces, SOLID/DRY pass, test coverage 08de751
feat: sortable columns on runner dashboard 023a473
feat: add GET /api/status endpoint 764c3a7
chore: SOLID/DRY/test coverage pass e491bfb
[GH-46] GH-46: Date range filtering (relative + absolute) e775502
gitignores 601737f
refactor: extract buildRuntimeConfig to resolve.ts (DRY) 87bd749
[GH-44] Clear cache covers standalone diagram files (mmd/puml) 63ba5c8
fix: address Gemini code review feedback across PRs #65-#76 2fef919
refactor: extract shared renderMarkdownContent pipeline 244dddf
feat: schema-driven search facet filters (Step 10) c305c2a
feat: add scroll anchoring for async diagram renders e4bd972
feat: document rendering pipeline (Phase 4, Steps 16-18) 56095ee
npm audit fix 3810c0f
[GH-46] GH-46: Accordion chunks with scrollable container d9462e0
lintfix 00dc2b2
fix: resolve package.json path portably for version 29d775c
feat: add GET /api/search/facets proxy endpoint 28fc200
feat: render text/number facets as text inputs, chips for select/multiselect 282adf8
ni e40deac
docs: add changelogs as children of package guide indexes fd16b5b
lintfix 38a9376
feat: render YAML frontmatter as code block in markdown view 3045a94
chore: migrate default port to 1934 4614a5f
fix: dark mode status pills via custom-variant 30454de
[GH-46] GH-46: Persistent search state + reset control 8fba6ea
fix: text/number facets skip value cleaning, cast values to String c9af039
[GH-46] GH-46: File type (extension) filter chips fcab7b2
fix: resolve TS2352 warnings in openclaw test mocks 88950e2
merge: incorporate main (PR #77 gap-analysis) 845268d
[GH-7] remove legacy server.js — replaced by src/server.ts 6a701e6
GH-32 + GH-33: Diagram cache + lazy-load embedded diagrams 74b68be
[GH-5] docs: add all guides - event gateway, exports, deployment, API integration 45e026a
[GH-7] remove server-rendered about page, templates, and test PDFs bad31ca
[GH-5] docs: move requirements to .stan/system/stan.requirements.md, slim README 43214d0
[GH-5] docs: add setup and sharing guides, link from README ac32dc9
[GH-5] docs: update README to reflect current architecture - Fastify, Zod 4 config, React SPA, dual auth, prose width toggle e0da626
[GH-42] Replace highlight.js raw view with CodeMirror 6 read-only viewer 547315c
[GH-42] Remove highlight.js — CM6 handles all syntax highlighting 52415ae
[GH-5] feat: responsive header - single row wide, progressive collapse - Action bar wraps to row 2 below lg breakpoint - Info/theme fold into account menu below lg - Breadcrumbs scroll horizontally (hat pinned) - Thin scrollbar styling for breadcrumb overflow c20ea7a
[GH-5] Responsive header layout - two-row design 1c7fbda
[GH-5] feat: Panzoom for SVG images embedded in rendered markdown - Finds img tags with .svg sources in rendered articles - Fetches SVG content and replaces img with interactive Panzoom container - Scroll to zoom, drag to pan - Graceful fallback to original img on fetch failure 1cd0dd4
[GH-5] refactor: replace lodash with radash in event gateway JsonMap lib 5c2f322
docs: add platform support section, sync requirements with GH-11 implementation, call out Linux as next-up 261ff4d
[GH-40] Add retry button to failed inline diagram renders 1fe10bd
[GH-5] feat: fullscreen toggle for inline SVG Panzoom viewers 2806878
[GH-5] fix: pre-process SVG to 100% width/height before render — prevents overflow on tab switch 3da142d
[GH-5] fix: SVG viewer zoom-to-fit — entire image visible in viewport, centered f0927ec
[GH-42] Fix DOCX code block rendering — per-line paragraphs with NBSP indent 61db677
[GH-5] docs: Mermaid diagram for event gateway, link first repo references in guides 3c5e98e
[GH-5] docs: rewrite README - position as AI-to-business publishing bridge c6e7c6e
[GH-5] fix: remove fullscreen toggle from SVG viewer — rendered view is the experience f744eea
[GH-5] docs: replace ASCII access decision flow with Mermaid SVG in sharing guide f1455d0
[GH-5] feat: prose width toggle (narrow/wide) for rendered markdown 2e5f19f
[GH-40] Improve error message and add reload hint on retry failure b0c02c8
[GH-5] fix: SVG fullscreen fits drawing to viewport, allow zoom out feat: README prominently features Event Gateway 080161c
[GH-5] feat: add medium prose width option (three-way toggle) 2b3dad4
[GH-42] Fix lint: unnecessary conditional in export.ts 528c740
[GH-42] Revert custom fold markers to basicSetup defaults 37fc320
chore: update repo description and add keywords to package.json 5130698
fix: header button hover in light mode - use white/10 overlay instead of accent bg eeb370c
[GH-5] docs: clarify key derivation in event gateway guide e03c97e
[GH-5] fix: defer SvgViewer Panzoom init to next frame — fixes tab switch overflow 39c28b5
[GH-42] Skip CM6 for PDF/DOCX export — use plain pre/code blocks 6706f68
[GH-9] render DOCX SVGs at full page width (1152px) dbb5bae
[GH-5] fix: center SVG vertically and horizontally in fullscreen panzoom ec683bc
chore: bump version to 2.6.0 7d54aa3
chore: bump version to 2.5.0 2c42e14
chore: bump version to 2.4.0 ddf9d87
fix: increase mobile bottom padding to pb-32 (8rem) e19b653
fix: use md:px-6 md:pt-6 instead of md:p-6 so pb-16 isn't overridden at md breakpoint 6b1c19f
fix: add pb-16 bottom padding to scroll containers for mobile browser chrome clearance 7319d00
fix: pass puppeteer.json config to mmdc for NSSM service compatibility 769610f
[GH-9] render DOCX SVG screenshots at 2x device scale for crisp output 68c04f4
[GH-5] merge: resolve conflicts with main (keep feature branch for frozen server pages) 2c57b6f
[GH-3] TypeScript refactor scaffolding and core modules 8dd0b92
[GH-5] feat: React + Vite scaffold with file browser, API endpoints, and SPA serving (GH-5) 6a8ffb5
[GH-5] Dropdown menus, TS config, state separation, local static assets 16f40b4
[GH-3] Decompose path route into sub-modules c369969
[GH-3] Complete path and about routes ffef74a
[GH-3] implement event gateway with durable queue and logging 2eaef85
[GH-4] feat: add Google OAuth and cookie sessions (GH-4) 89b6d72
[GH-3] Add comprehensive tests for util modules (crypto, formatters, fileDetection) 3536fdd
[GH-5] feat: per-row share icons on drives listing page (GH-5) 35a04a6
[GH-3] Auth: multiple API key seeds with optional scopes (preserve HMAC model) 00b1e67
Document event gateway and config redesign in README 3f904ca
[GH-4] feat: directory outsider links, new share UI, per-insider key age (GH-4) 4cbc001
[GH-5] Fix header wrapping + unified fixed top bar 26baa15
[GH-3] Fix lint errors 09d8c28
[GH-4] refactor: merge configs into jeeves.config.json (GH-4) dae22f9
[GH-4] feat: per-row share icons in directory listings — 🔗 page + ⬇ raw with shared expiry input (GH-4) f0e005e
[GH-5] Fixed header/tabs, key auth for SPA, dropdown hover variants 808c024
[GH-5] feat: replace expiry text input with dropdown (never/1h/1d/1w/1m/1y) (GH-5) 7691a69
[GH-4] feat: remove dangerous executable distinction — all files navigable and downloadable (GH-4) d974f3b
[GH-4] feat: outsider directory shares show navigable breadcrumbs from share root (GH-4) 0e93d19
feat: replace expiry text input with dropdown (never/1h/1d/1w/1m/1y) 4a0f8ae
feat: per-row share icons on drives listing page dcc2fbc
[GH-4] feat: copy-key button, insider seeds for outsider URL auth (GH-4) aa4f42b
[GH-4] feat: remove key params from insider links — cookie auth makes them unnecessary (GH-4) 5509823
[GH-4] fix: share endpoint supports insider seeds and session cookie auth (GH-4) 4541572
[GH-5] Scrollbar under tabs, main as scroll container 65b4dcc
fix: wrap entire startup in try/catch, surface errors instead of silent exit 1913fe1
[GH-3] Log full body for unmatched events (remove 200-char truncation) 639c4df
[GH-3] Fix tsconfig, add prebuild clean, add tsconfig.eslint.json 8d08742
fix: mobile header — hide redundant share UI on directories, allow header wrapping (GH-4) 6306f27
[GH-5] Mobile TOC: hamburger menu left of Rendered/Raw tabs 4b00ff6
fix: header stretches to full content width when zoomed out bbebeec
[GH-3] Fix stan: add placeholder test, configure knip for in-progress refactor e91697d
chore: add tsdoc.json to both package roots 9ccf217
chore: add tsdoc.json to both package roots 173cf94
[GH-4] fix: serve favicon.svg route — was referenced in HTML but never served (GH-4) 5543ff8
chore: release @karmaniverous/jeeves-server v3.0.0-1 db96bc1
docs: document ?events=N query param on /api/status 4a25f3b
fix: set rootDir and update start script path for monorepo layout a2fd77c
fix: restore header share UI on directories — shares current page, not redundant with per-row icons 1f77d96
Reduce PDF/DOCX font sizes to 10pt base 2617ac9
fix: CI failures and SvgViewer panzoom re-init bug 7392712
fix: restore eager facet loading on modal open a625bd0
fix: resolve remaining lint errors (type annotations, unused params, unnecessary conditionals) e7714ae
[GH-4] fix: redirect URI uses Host header for correct port (GH-4) 2b6e43f
[GH-4] feat: Raw option in link dropdown for embeddable URLs (GH-4) 14098a0
chore: release @karmaniverous/jeeves-server-openclaw v0.1.1 abfee9f
fix: remove unnecessary auth from /api/status calls (endpoint is public) f651fe7
[GH-44] Add .export-cache/ to gitignore 80ade63
fix: update linux-compat CI for monorepo paths 22dd30f
Fix PDF font size - add 10pt to PDF-specific styles 18b3505
chore: release @karmaniverous/jeeves-server-openclaw v0.1.0-1 d08e571
chore: eliminate all lint warnings ed12c86
Fix raw download for markdown files 25952cd
fix: CI rimraf resolution and remove redundant client steps 757c45c
[GH-5] Fix mobile header overflow and simplify sticky layout 505bd5e
chore: release @karmaniverous/jeeves-server v3.0.0 ef408c3
[GH-5] Fix code block contrast in light mode 2051d65
chore: release @karmaniverous/jeeves-server-openclaw v0.1.0 bbeac17
chore: release v2.9.3 1475596
chore: release v2.9.2 d3db011
chore: release v2.9.1 d34fd62
chore: release v2.9.0 7cdc030
[GH-5] chore: bump version to 2.0.0 8864eaa
[GH-5] Fix CodeBlock component theme awareness 678b7bb
[GH-5] Fix TOC sidebar sticky position and anchor scroll offset 6f2aa3f
v1.1.0: TypeScript/Fastify refactor, event gateway, named keys with scopes f3711f8
[GH-3] fix build scripts: increase typecheck memory, ensure dist dir for lint, exclude dist from vitest d909a60
fix: make +N more chip overflow a clickable link that expands the result d56ed6a
fix: increase facets timeout to 15s, add error logging dfda5dd
fix: use type=number input for number facets c245b6a
[GH-5] fix: remove backtick pseudo-elements from inline code in prose f47cd60
[GH-5] fix: anchor scroll offset - use getBoundingClientRect relative to scroll container a8f5e0c
fix: close SearchableSelect dropdown on outside click (capture phase) f85d8dd
fix: server_browse and server_export route mismatches 82ef907
npm audit fix 2f3b5c8
[GH-46] GH-46: Enlarge search modal (max-w-4xl, 85vh, less top offset) 83d8ad2
[GH-5] fix: SVG fullscreen center/center - remove CSS centering, let Panzoom startX/startY handle positioning 54c5aca
[GH-5] Fix TOC sticky top to match header + tabs + gap (7rem) c0d1a40
publishconfig public access 8e4358c
[GH-5] Fix prose typography colors for light/dark mode 39ce6f9
fix: restore light mode text-foreground on Add Filter menu labels 9bb9c7f
fix: cap schema-driven facet chips to fields with ≤30 values de625e2
fix: add pattern to StatusResponse events type f64e6af
fix: normalize path for watcher render (Windows backslash + uppercase drive) f6c229d
zero version 2c0db75
fix: add missing return-await in facets handler b08d4a3
fix: remove unused parameter in linkInfo test 36fca9a
ci: add Node 24 to linux-compat matrix 66f1008
fix: adjust relative paths for monorepo dist/src/ layout dcaf9dc
fix: adjust rootDir depth for monorepo dist/src/config path 5427014
[GH-5] fix: prose width buttons only appear for rendered markdown, not SVG/Mermaid 4067119
[GH-5] docs: fix insider description — may be scoped, not always full access b481d3a
[GH-5] docs: mention front-end event link button in event gateway guide bdb203c
feat: replace expiry text input with dropdown (never/1h/1d/1w/1m/1y) b247aa3
Merge feature/GH-4-google-oauth: Google OAuth + per-row share icons 4706828
[GH-4] fix: session cookie secure flag for http dev 903e00f
Merge feature/GH-3-ts-refactor: TypeScript/Fastify refactor with event gateway and named keys a920a99
7 February 2026
8 March 2026
docs: guide index content + typedoc jsonl highlight #86
docs: refresh README + guides for v3 #85
feat: named access scopes #84
fix: plugin auth chain, status endpoint improvements #83
fix: resetConfig should reload, not clear #82
chore: integrate client as npm workspace member #81
fix: force white background in panzoom fullscreen (dark mode) #80
chore: make both packages releasable #79
fix: address Gemini code review feedback (PRs #65-#76) #78
chore: fix all gap analysis findings (10 items) #77
Phase 4, Steps 16-18: Document rendering pipeline #76
Phase 3, Steps 11-15: OpenClaw plugin #75
Phase 2, Steps 9-10: Search facets proxy + filter UI #74
Phase 2, Step 8: Scroll anchoring #73
chore: SOLID/DRY/coverage audit pass 2 #72
Phase 2, Step 7: Link availability endpoint #71
Phase 1, Step 6: Port migration #70
Phase 1, Step 5: Diagram dependency internalization #69
Phase 1, Step 4: Server Status API #68
Phase 1, Step 3: CLI commands #67
Phase 1, Step 2: Config migration (jiti → cosmiconfig) #66
Phase 1: Monorepo & Config (v3.0.0) #65
feat: align search browse filter with watcher domains convention #64
fix: exit edit mode after save #63
chore: add default port 1934 #62
chore: add default port 1934 #61
feat: render YAML frontmatter as code block #60
feat: add runner dashboard #59
fix: event queue byte/char cursor mismatch + postbuild client #52
fix: client TS errors + picomatch dot matching #51
[GH-46] Semantic search UI #47
[GH-44] Cache exports + Clear Cache control #45
GH-42: Unify raw view on CodeMirror 6 with code folding #43
GH-40: Retry button for failed inline diagram renders #41
GH-38: Terms of Service, Privacy Policy & search engine blocking #39
SOLID/DRY codebase audit — comprehensive refactor #37
feat: in-browser text editing (GH-30) #31
feat: Render embedded Mermaid/PlantUML code blocks (GH-23) #27
feat: Native PlantUML support (GH-22) #25
fix: case-insensitive email comparison for insider matching #24
refactor: Copy Raw Link builds /api/raw/ URL directly, remove raw=1 redirect #21
feat: raw=1 on /browse/* redirects to /api/raw/* for raw file delivery #20
fix: forward auth params on downloads, show error popup on failure #19
refactor: replace hand-rolled glob matching with picomatch #18
[GH-16] feat(GH-16): utility share-for endpoint + outsider policy #17
Allow/deny scopes for insiders and keys #15
GH-13: Linux compatibility #14
[GH-11] Deep share links with depth and directory controls #12
Fix PDF/DOCX export rendering #10
Decommission path routes #8
v2.0.0: React SPA migration #6
[GH-9] fix DOCX SVG export — render SVGs in clean isolated pages #9
[GH-9] fix DOCX SVG screenshot offset — use element.screenshot() instead of clip #9
[GH-9] fix SVG rendering in SPA and PDF/DOCX export issues #9
[GH-9] fix PDF/DOCX exports rendering panzoom container chrome #9
[GH-7] decommission /path routes — migrate to /api/raw, /api/export, /browse redirect #7
chore: add client as workspace member, align puppeteer versions 6e3a40d
updated docs 86d88c7
updated docs cbd8537
feat: implement OpenClaw plugin (Phase 3, Steps 11-15) 72a04e0
docs: refresh README and guides for v3 CLI + config e437387
fix: resolve all client ESLint errors and warnings 768541a
chore: release @karmaniverous/jeeves-server v3.0.0-0 07a6e47
chore: SOLID/DRY pass #3 + plugin test coverage 7dcc4c3
fix: resolve knip unused files, dependencies, and exports 964beba
chore: release @karmaniverous/jeeves-server-openclaw v0.1.0-0 b6c0f6d
docs: add typedoc config and dependencies 761bb8c
fix: address all gap analysis findings 1eb02ab
npm audit fix 3a144b4
feat: add GET /api/link-info endpoint 02ece39
test: add resolve.ts unit tests (21 tests) 7c988ef
docs: add guide index content and fix typedoc trailing comma 3844271
chore: add knip configs, remove dead exports, clean all code quality checks 2a81072
fix: address Gemini code review feedback across PRs #65-#76 2fef919
fix: make resetConfig reload runtime config 79e8602
refactor: extract shared renderMarkdownContent pipeline 244dddf
feat: schema-driven search facet filters (Step 10) c305c2a
updated docs 075a6f3
feat: add scroll anchoring for async diagram renders e4bd972
feat: document rendering pipeline (Phase 4, Steps 16-18) 56095ee
npm audit fix 3810c0f
chore: release @karmaniverous/jeeves-server v3.0.1 67cf001
lintfix 00dc2b2
feat: add GET /api/search/facets proxy endpoint 28fc200
ni e40deac
docs: add changelogs as children of package guide indexes fd16b5b
lintfix 38a9376
chore: add tsdoc.json to both package roots 9ccf217
chore: add tsdoc.json to both package roots 173cf94
chore: release @karmaniverous/jeeves-server v3.0.0-1 db96bc1
fix: resolve TS2352 warnings in openclaw test mocks 88950e2
fix: CI failures and SvgViewer panzoom re-init bug 7392712
fix: resolve remaining lint errors (type annotations, unused params, unnecessary conditionals) e7714ae
chore: release @karmaniverous/jeeves-server-openclaw v0.1.1 abfee9f
fix: remove unnecessary auth from /api/status calls (endpoint is public) f651fe7
chore: release @karmaniverous/jeeves-server-openclaw v0.1.0-1 d08e571
chore: eliminate all lint warnings ed12c86
fix: CI rimraf resolution and remove redundant client steps 757c45c
chore: release @karmaniverous/jeeves-server v3.0.0 ef408c3
chore: release @karmaniverous/jeeves-server-openclaw v0.1.0 bbeac17
npm audit fix 2f3b5c8
publishconfig public access 8e4358c
fix: add pattern to StatusResponse events type f64e6af
fix: normalize path for watcher render (Windows backslash + uppercase drive) f6c229d
zero version 2c0db75
merge: incorporate main (PR #77 gap-analysis) 845268d
[GH-5] feat: React + Vite scaffold with file browser, API endpoints, and SPA serving (GH-5) 6a8ffb5
[GH-5] Dropdown menus, TS config, state separation, local static assets 16f40b4
[GH-5] docs: add all guides - event gateway, exports, deployment, API integration 45e026a
[GH-5] docs: move requirements to .stan/system/stan.requirements.md, slim README 43214d0
[GH-5] docs: add setup and sharing guides, link from README ac32dc9
[GH-5] docs: update README to reflect current architecture - Fastify, Zod 4 config, React SPA, dual auth, prose width toggle e0da626
[GH-5] feat: per-row share icons on drives listing page (GH-5) 35a04a6
[GH-5] Fix header wrapping + unified fixed top bar 26baa15
[GH-5] feat: responsive header - single row wide, progressive collapse - Action bar wraps to row 2 below lg breakpoint - Info/theme fold into account menu below lg - Breadcrumbs scroll horizontally (hat pinned) - Thin scrollbar styling for breadcrumb overflow c20ea7a
[GH-5] Fixed header/tabs, key auth for SPA, dropdown hover variants 808c024
[GH-5] feat: replace expiry text input with dropdown (never/1h/1d/1w/1m/1y) (GH-5) 7691a69
[GH-5] Responsive header layout - two-row design 1c7fbda
[GH-5] feat: Panzoom for SVG images embedded in rendered markdown - Finds img tags with .svg sources in rendered articles - Fetches SVG content and replaces img with interactive Panzoom container - Scroll to zoom, drag to pan - Graceful fallback to original img on fetch failure 1cd0dd4
feat: replace expiry text input with dropdown (never/1h/1d/1w/1m/1y) 4a0f8ae
[GH-5] refactor: replace lodash with radash in event gateway JsonMap lib 5c2f322
feat: per-row share icons on drives listing page dcc2fbc
[GH-5] feat: fullscreen toggle for inline SVG Panzoom viewers 2806878
[GH-5] Scrollbar under tabs, main as scroll container 65b4dcc
[GH-5] fix: pre-process SVG to 100% width/height before render — prevents overflow on tab switch 3da142d
[GH-5] fix: SVG viewer zoom-to-fit — entire image visible in viewport, centered f0927ec
fix: wrap entire startup in try/catch, surface errors instead of silent exit 1913fe1
[GH-5] docs: Mermaid diagram for event gateway, link first repo references in guides 3c5e98e
[GH-5] docs: rewrite README - position as AI-to-business publishing bridge c6e7c6e
[GH-5] fix: remove fullscreen toggle from SVG viewer — rendered view is the experience f744eea
[GH-5] docs: replace ASCII access decision flow with Mermaid SVG in sharing guide f1455d0
[GH-5] feat: prose width toggle (narrow/wide) for rendered markdown 2e5f19f
fix: mobile header — hide redundant share UI on directories, allow header wrapping (GH-4) 6306f27
[GH-5] fix: SVG fullscreen fits drawing to viewport, allow zoom out feat: README prominently features Event Gateway 080161c
[GH-5] Mobile TOC: hamburger menu left of Rendered/Raw tabs 4b00ff6
fix: header stretches to full content width when zoomed out bbebeec
[GH-5] feat: add medium prose width option (three-way toggle) 2b3dad4
fix: restore header share UI on directories — shares current page, not redundant with per-row icons 1f77d96
[GH-5] docs: clarify key derivation in event gateway guide e03c97e
[GH-5] fix: defer SvgViewer Panzoom init to next frame — fixes tab switch overflow 39c28b5
[GH-5] Fix mobile header overflow and simplify sticky layout 505bd5e
[GH-5] fix: center SVG vertically and horizontally in fullscreen panzoom ec683bc
fix: use md:px-6 md:pt-6 instead of md:p-6 so pb-16 isn't overridden at md breakpoint 6b1c19f
fix: add pb-16 bottom padding to scroll containers for mobile browser chrome clearance 7319d00
fix: pass puppeteer.json config to mmdc for NSSM service compatibility 769610f
[GH-5] merge: resolve conflicts with main (keep feature branch for frozen server pages) 2c57b6f
[GH-5] Fix code block contrast in light mode 2051d65
[GH-5] chore: bump version to 2.0.0 8864eaa
[GH-5] Fix CodeBlock component theme awareness 678b7bb
[GH-5] Fix TOC sidebar sticky position and anchor scroll offset 6f2aa3f
[GH-5] fix: remove backtick pseudo-elements from inline code in prose f47cd60
[GH-5] fix: anchor scroll offset - use getBoundingClientRect relative to scroll container a8f5e0c
[GH-5] fix: SVG fullscreen center/center - remove CSS centering, let Panzoom startX/startY handle positioning 54c5aca
[GH-5] Fix TOC sticky top to match header + tabs + gap (7rem) c0d1a40
[GH-5] Fix prose typography colors for light/dark mode 39ce6f9
[GH-5] fix: prose width buttons only appear for rendered markdown, not SVG/Mermaid 4067119
[GH-5] docs: fix insider description — may be scoped, not always full access b481d3a
[GH-5] docs: mention front-end event link button in event gateway guide bdb203c
feat: replace expiry text input with dropdown (never/1h/1d/1w/1m/1y) b247aa3
Merge feature/GH-4-google-oauth: Google OAuth + per-row share icons 4706828
[GH-3] TypeScript refactor scaffolding and core modules 8dd0b92
feat: internalize diagram dependencies (mermaid/plantuml) 9c7f8a7
[GH-7] remove legacy server.js — replaced by src/server.ts 6a701e6
[GH-3] Decompose path route into sub-modules c369969
Add HTML wrapper for SVG files with proper constraints edf794b
[GH-3] Complete path and about routes ffef74a
GH-32 + GH-33: Diagram cache + lazy-load embedded diagrams 74b68be
[GH-3] implement event gateway with durable queue and logging 2eaef85
[GH-7] remove server-rendered about page, templates, and test PDFs bad31ca
[GH-46] GH-46: Semantic search — backend proxy + frontend modal 80383d1
refactor: monorepo scaffolding (Phase 1, Step 1) 15cf2ba
feat: migrate config from jiti/TS to cosmiconfig/JSON adfba33
[GH-4] feat: add Google OAuth and cookie sessions (GH-4) 89b6d72
[GH-3] Add comprehensive tests for util modules (crypto, formatters, fileDetection) 3536fdd
[GH-42] Replace highlight.js raw view with CodeMirror 6 read-only viewer 547315c
feat: add CLI commands (start, config validate/show, service) 0437984
[GH-3] Auth: multiple API key seeds with optional scopes (preserve HMAC model) 00b1e67
Document event gateway and config redesign in README 3f904ca
[GH-44] GH-44: Add export cache + Clear Cache endpoint and UI bf41cd0
[GH-4] feat: directory outsider links, new share UI, per-insider key age (GH-4) 4cbc001
[GH-42] Remove highlight.js — CM6 handles all syntax highlighting 52415ae
[GH-3] Fix lint errors 09d8c28
fix: cosmiconfig searchPlaces, SOLID/DRY pass, test coverage 08de751
feat: sortable columns on runner dashboard 023a473
feat: add GET /api/status endpoint 764c3a7
[GH-4] refactor: merge configs into jeeves.config.json (GH-4) dae22f9
chore: SOLID/DRY/test coverage pass e491bfb
[GH-4] feat: per-row share icons in directory listings — 🔗 page + ⬇ raw with shared expiry input (GH-4) f0e005e
[GH-46] GH-46: Date range filtering (relative + absolute) e775502
gitignores 601737f
refactor: extract buildRuntimeConfig to resolve.ts (DRY) 87bd749
[GH-4] feat: remove dangerous executable distinction — all files navigable and downloadable (GH-4) d974f3b
[GH-4] feat: outsider directory shares show navigable breadcrumbs from share root (GH-4) 0e93d19
[GH-44] Clear cache covers standalone diagram files (mmd/puml) 63ba5c8
Allow clickthrough on binary files, block only dangerous executables be338eb
[GH-4] feat: copy-key button, insider seeds for outsider URL auth (GH-4) aa4f42b
docs: add platform support section, sync requirements with GH-11 implementation, call out Linux as next-up 261ff4d
[GH-4] feat: remove key params from insider links — cookie auth makes them unnecessary (GH-4) 5509823
[GH-4] fix: share endpoint supports insider seeds and session cookie auth (GH-4) 4541572
[GH-40] Add retry button to failed inline diagram renders 1fe10bd
[GH-46] GH-46: Accordion chunks with scrollable container d9462e0
[GH-42] Fix DOCX code block rendering — per-line paragraphs with NBSP indent 61db677
fix: resolve package.json path portably for version 29d775c
[GH-3] Log full body for unmatched events (remove 200-char truncation) 639c4df
[GH-3] Fix tsconfig, add prebuild clean, add tsconfig.eslint.json 8d08742
[GH-40] Improve error message and add reload hint on retry failure b0c02c8
feat: render YAML frontmatter as code block in markdown view 3045a94
chore: migrate default port to 1934 4614a5f
Fix panzoom overlay sizing for tall SVGs - strip inline styles, size based on aspect ratio 1fabf75
fix: dark mode status pills via custom-variant 30454de
[GH-46] GH-46: Persistent search state + reset control 8fba6ea
[GH-3] Fix stan: add placeholder test, configure knip for in-progress refactor e91697d
Panzoom SVG overlay: pan/zoom wrapper div (overflow visible) to prevent initial right-shift e5d85c0
Simplify panzoom SVG sizing - use max-width/max-height constraints 9e61f4e
Fix zoom focal point: use margin centering instead of flex to avoid coordinate mismatch 96d170d
Fix panzoom overlay: calculate explicit pixel dimensions from viewBox to fit viewport 5f5d9ce
[GH-46] GH-46: File type (extension) filter chips fcab7b2
[GH-4] fix: serve favicon.svg route — was referenced in HTML but never served (GH-4) 5543ff8
[GH-42] Fix lint: unnecessary conditional in export.ts 528c740
[GH-42] Revert custom fold markers to basicSetup defaults 37fc320
chore: update repo description and add keywords to package.json 5130698
fix: set rootDir and update start script path for monorepo layout a2fd77c
Reduce PDF/DOCX font sizes to 10pt base 2617ac9
[GH-4] fix: redirect URI uses Host header for correct port (GH-4) 2b6e43f
[GH-4] feat: Raw option in link dropdown for embeddable URLs (GH-4) 14098a0
fix: header button hover in light mode - use white/10 overlay instead of accent bg eeb370c
Fix tall SVG diagrams: remove width=100% attr and inline max-width style e9557ff
[GH-44] Add .export-cache/ to gitignore 80ade63
fix: update linux-compat CI for monorepo paths 22dd30f
Fix PDF font size - add 10pt to PDF-specific styles 18b3505
Fix raw download for markdown files 25952cd
[GH-42] Skip CM6 for PDF/DOCX export — use plain pre/code blocks 6706f68
[GH-9] render DOCX SVGs at full page width (1152px) dbb5bae
Add top hat branding to outsider pages, improve filename display cacbb60
chore: release v2.9.3 1475596
chore: release v2.9.2 d3db011
chore: release v2.9.1 d34fd62
chore: release v2.9.0 7cdc030
chore: bump version to 2.6.0 7d54aa3
chore: bump version to 2.5.0 2c42e14
chore: bump version to 2.4.0 ddf9d87
fix: increase mobile bottom padding to pb-32 (8rem) e19b653
v1.1.0: TypeScript/Fastify refactor, event gateway, named keys with scopes f3711f8
[GH-3] fix build scripts: increase typecheck memory, ensure dist dir for lint, exclude dist from vitest d909a60
Add 'Jeeves Server' tooltip to top hat in all modes 26902d4
v1.0.1: Fix SVG panzoom overlay sizing and zoom focal point da64150
Serve SVG files as images, not as code bdb021f
Force SVG max-width with !important to override inline styles 2ac1093
[GH-46] GH-46: Enlarge search modal (max-w-4xl, 85vh, less top offset) 83d8ad2
Fix zoom focal point offset: attach wheel listener to panzoom target element b58f1b0
fix: add missing return-await in facets handler b08d4a3
fix: remove unused parameter in linkInfo test 36fca9a
ci: add Node 24 to linux-compat matrix 66f1008
fix: adjust relative paths for monorepo dist/src/ layout dcaf9dc
fix: adjust rootDir depth for monorepo dist/src/config path 5427014
[GH-9] render DOCX SVG screenshots at 2x device scale for crisp output 68c04f4
[GH-4] fix: session cookie secure flag for http dev 903e00f
Merge feature/GH-3-ts-refactor: TypeScript/Fastify refactor with event gateway and named keys a920a99
Force panzoom.reset() after init to ensure scale=1 991b9d2
Fix server.js template literal nesting bug 4e73f87
Force panzoom to start at scale=1 with no translation 6cbce2d
7 February 2026
8 March 2026
feat: named access scopes #84
fix: plugin auth chain, status endpoint improvements #83
fix: resetConfig should reload, not clear #82
chore: integrate client as npm workspace member #81
fix: force white background in panzoom fullscreen (dark mode) #80
chore: make both packages releasable #79
fix: address Gemini code review feedback (PRs #65-#76) #78
chore: fix all gap analysis findings (10 items) #77
Phase 4, Steps 16-18: Document rendering pipeline #76
Phase 3, Steps 11-15: OpenClaw plugin #75
Phase 2, Steps 9-10: Search facets proxy + filter UI #74
Phase 2, Step 8: Scroll anchoring #73
chore: SOLID/DRY/coverage audit pass 2 #72
Phase 2, Step 7: Link availability endpoint #71
Phase 1, Step 6: Port migration #70
Phase 1, Step 5: Diagram dependency internalization #69
Phase 1, Step 4: Server Status API #68
Phase 1, Step 3: CLI commands #67
Phase 1, Step 2: Config migration (jiti → cosmiconfig) #66
Phase 1: Monorepo & Config (v3.0.0) #65
feat: align search browse filter with watcher domains convention #64
fix: exit edit mode after save #63
chore: add default port 1934 #62
chore: add default port 1934 #61
feat: render YAML frontmatter as code block #60
feat: add runner dashboard #59
fix: event queue byte/char cursor mismatch + postbuild client #52
fix: client TS errors + picomatch dot matching #51
[GH-46] Semantic search UI #47
[GH-44] Cache exports + Clear Cache control #45
GH-42: Unify raw view on CodeMirror 6 with code folding #43
GH-40: Retry button for failed inline diagram renders #41
GH-38: Terms of Service, Privacy Policy & search engine blocking #39
SOLID/DRY codebase audit — comprehensive refactor #37
feat: in-browser text editing (GH-30) #31
feat: Render embedded Mermaid/PlantUML code blocks (GH-23) #27
feat: Native PlantUML support (GH-22) #25
fix: case-insensitive email comparison for insider matching #24
refactor: Copy Raw Link builds /api/raw/ URL directly, remove raw=1 redirect #21
feat: raw=1 on /browse/* redirects to /api/raw/* for raw file delivery #20
fix: forward auth params on downloads, show error popup on failure #19
refactor: replace hand-rolled glob matching with picomatch #18
[GH-16] feat(GH-16): utility share-for endpoint + outsider policy #17
Allow/deny scopes for insiders and keys #15
GH-13: Linux compatibility #14
[GH-11] Deep share links with depth and directory controls #12
Fix PDF/DOCX export rendering #10
Decommission path routes #8
v2.0.0: React SPA migration #6
[GH-9] fix DOCX SVG export — render SVGs in clean isolated pages #9
[GH-9] fix DOCX SVG screenshot offset — use element.screenshot() instead of clip #9
[GH-9] fix SVG rendering in SPA and PDF/DOCX export issues #9
[GH-9] fix PDF/DOCX exports rendering panzoom container chrome #9
[GH-7] decommission /path routes — migrate to /api/raw, /api/export, /browse redirect #7
chore: add client as workspace member, align puppeteer versions 6e3a40d
feat: internalize diagram dependencies (mermaid/plantuml) 9c7f8a7
feat: implement OpenClaw plugin (Phase 3, Steps 11-15) 72a04e0
feat: migrate config from jiti/TS to cosmiconfig/JSON adfba33
fix: resolve all client ESLint errors and warnings 768541a
chore: release @karmaniverous/jeeves-server v3.0.0-0 07a6e47
chore: SOLID/DRY pass #3 + plugin test coverage 7dcc4c3
feat: add CLI commands (start, config validate/show, service) 0437984
fix: resolve knip unused files, dependencies, and exports 964beba
chore: release @karmaniverous/jeeves-server-openclaw v0.1.0-0 b6c0f6d
fix: address all gap analysis findings 1eb02ab
npm audit fix 3a144b4
feat: add GET /api/link-info endpoint 02ece39
test: add resolve.ts unit tests (21 tests) 7c988ef
fix: cosmiconfig searchPlaces, SOLID/DRY pass, test coverage 08de751
feat: add GET /api/status endpoint 764c3a7
chore: SOLID/DRY/test coverage pass e491bfb
refactor: extract buildRuntimeConfig to resolve.ts (DRY) 87bd749
chore: add knip configs, remove dead exports, clean all code quality checks 2a81072
fix: address Gemini code review feedback across PRs #65-#76 2fef919
fix: make resetConfig reload runtime config 79e8602
refactor: extract shared renderMarkdownContent pipeline 244dddf
feat: schema-driven search facet filters (Step 10) c305c2a
feat: add scroll anchoring for async diagram renders e4bd972
feat: document rendering pipeline (Phase 4, Steps 16-18) 56095ee
npm audit fix 3810c0f
lintfix 00dc2b2
fix: resolve package.json path portably for version 29d775c
feat: add GET /api/search/facets proxy endpoint 28fc200
ni e40deac
lintfix 38a9376
chore: migrate default port to 1934 4614a5f
chore: add tsdoc.json to both package roots 9ccf217
chore: add tsdoc.json to both package roots 173cf94
chore: release @karmaniverous/jeeves-server v3.0.0-1 db96bc1
fix: resolve TS2352 warnings in openclaw test mocks 88950e2
fix: CI failures and SvgViewer panzoom re-init bug 7392712
fix: resolve remaining lint errors (type annotations, unused params, unnecessary conditionals) e7714ae
fix: remove unnecessary auth from /api/status calls (endpoint is public) f651fe7
chore: release @karmaniverous/jeeves-server-openclaw v0.1.0-1 d08e571
chore: eliminate all lint warnings ed12c86
fix: CI rimraf resolution and remove redundant client steps 757c45c
chore: release @karmaniverous/jeeves-server-openclaw v0.1.0 bbeac17
publishconfig public access 8e4358c
fix: add pattern to StatusResponse events type f64e6af
fix: normalize path for watcher render (Windows backslash + uppercase drive) f6c229d
zero version 2c0db75
merge: incorporate main (PR #77 gap-analysis) 845268d
[GH-7] remove legacy server.js — replaced by src/server.ts 6a701e6
GH-32 + GH-33: Diagram cache + lazy-load embedded diagrams 74b68be
[GH-7] remove server-rendered about page, templates, and test PDFs bad31ca
[GH-46] GH-46: Semantic search — backend proxy + frontend modal 80383d1
refactor: monorepo scaffolding (Phase 1, Step 1) 15cf2ba
[GH-42] Replace highlight.js raw view with CodeMirror 6 read-only viewer 547315c
[GH-44] GH-44: Add export cache + Clear Cache endpoint and UI bf41cd0
[GH-42] Remove highlight.js — CM6 handles all syntax highlighting 52415ae
feat: sortable columns on runner dashboard 023a473
[GH-46] GH-46: Date range filtering (relative + absolute) e775502
gitignores 601737f
[GH-44] Clear cache covers standalone diagram files (mmd/puml) 63ba5c8
docs: add platform support section, sync requirements with GH-11 implementation, call out Linux as next-up 261ff4d
[GH-40] Add retry button to failed inline diagram renders 1fe10bd
[GH-46] GH-46: Accordion chunks with scrollable container d9462e0
[GH-5] fix: pre-process SVG to 100% width/height before render — prevents overflow on tab switch 3da142d
[GH-42] Fix DOCX code block rendering — per-line paragraphs with NBSP indent 61db677
[GH-40] Improve error message and add reload hint on retry failure b0c02c8
feat: render YAML frontmatter as code block in markdown view 3045a94
fix: dark mode status pills via custom-variant 30454de
[GH-46] GH-46: Persistent search state + reset control 8fba6ea
[GH-46] GH-46: File type (extension) filter chips fcab7b2
[GH-42] Fix lint: unnecessary conditional in export.ts 528c740
[GH-42] Revert custom fold markers to basicSetup defaults 37fc320
chore: update repo description and add keywords to package.json 5130698
fix: set rootDir and update start script path for monorepo layout a2fd77c
fix: header button hover in light mode - use white/10 overlay instead of accent bg eeb370c
[GH-44] Add .export-cache/ to gitignore 80ade63
fix: update linux-compat CI for monorepo paths 22dd30f
[GH-5] fix: defer SvgViewer Panzoom init to next frame — fixes tab switch overflow 39c28b5
[GH-42] Skip CM6 for PDF/DOCX export — use plain pre/code blocks 6706f68
[GH-9] render DOCX SVGs at full page width (1152px) dbb5bae
chore: release v2.9.3 1475596
chore: release v2.9.2 d3db011
chore: release v2.9.1 d34fd62
chore: release v2.9.0 7cdc030
chore: bump version to 2.6.0 7d54aa3
chore: bump version to 2.5.0 2c42e14
chore: bump version to 2.4.0 ddf9d87
fix: increase mobile bottom padding to pb-32 (8rem) e19b653
fix: use md:px-6 md:pt-6 instead of md:p-6 so pb-16 isn't overridden at md breakpoint 6b1c19f
fix: add pb-16 bottom padding to scroll containers for mobile browser chrome clearance 7319d00
fix: pass puppeteer.json config to mmdc for NSSM service compatibility 769610f
[GH-5] chore: bump version to 2.0.0 8864eaa
[GH-46] GH-46: Enlarge search modal (max-w-4xl, 85vh, less top offset) 83d8ad2
fix: add missing return-await in facets handler b08d4a3
fix: remove unused parameter in linkInfo test 36fca9a
ci: add Node 24 to linux-compat matrix 66f1008
fix: adjust relative paths for monorepo dist/src/ layout dcaf9dc
fix: adjust rootDir depth for monorepo dist/src/config path 5427014
[GH-9] render DOCX SVG screenshots at 2x device scale for crisp output 68c04f4
[GH-5] merge: resolve conflicts with main (keep feature branch for frozen server pages) 2c57b6f
[GH-5] feat: React + Vite scaffold with file browser, API endpoints, and SPA serving (GH-5) 6a8ffb5
[GH-5] Dropdown menus, TS config, state separation, local static assets 16f40b4
[GH-5] docs: add all guides - event gateway, exports, deployment, API integration 45e026a
[GH-5] docs: move requirements to .stan/system/stan.requirements.md, slim README 43214d0
[GH-5] docs: add setup and sharing guides, link from README ac32dc9
[GH-5] docs: update README to reflect current architecture - Fastify, Zod 4 config, React SPA, dual auth, prose width toggle e0da626
[GH-5] feat: per-row share icons on drives listing page (GH-5) 35a04a6
[GH-5] Fix header wrapping + unified fixed top bar 26baa15
[GH-5] feat: responsive header - single row wide, progressive collapse - Action bar wraps to row 2 below lg breakpoint - Info/theme fold into account menu below lg - Breadcrumbs scroll horizontally (hat pinned) - Thin scrollbar styling for breadcrumb overflow c20ea7a
[GH-4] feat: per-row share icons in directory listings — 🔗 page + ⬇ raw with shared expiry input (GH-4) f0e005e
[GH-5] Fixed header/tabs, key auth for SPA, dropdown hover variants 808c024
[GH-5] feat: replace expiry text input with dropdown (never/1h/1d/1w/1m/1y) (GH-5) 7691a69
[GH-5] Responsive header layout - two-row design 1c7fbda
[GH-5] feat: Panzoom for SVG images embedded in rendered markdown - Finds img tags with .svg sources in rendered articles - Fetches SVG content and replaces img with interactive Panzoom container - Scroll to zoom, drag to pan - Graceful fallback to original img on fetch failure 1cd0dd4
feat: replace expiry text input with dropdown (never/1h/1d/1w/1m/1y) 4a0f8ae
[GH-5] refactor: replace lodash with radash in event gateway JsonMap lib 5c2f322
feat: per-row share icons on drives listing page dcc2fbc
[GH-4] feat: remove key params from insider links — cookie auth makes them unnecessary (GH-4) 5509823
[GH-5] feat: fullscreen toggle for inline SVG Panzoom viewers 2806878
[GH-5] Scrollbar under tabs, main as scroll container 65b4dcc
[GH-5] fix: SVG viewer zoom-to-fit — entire image visible in viewport, centered f0927ec
fix: wrap entire startup in try/catch, surface errors instead of silent exit 1913fe1
[GH-5] docs: Mermaid diagram for event gateway, link first repo references in guides 3c5e98e
[GH-5] docs: rewrite README - position as AI-to-business publishing bridge c6e7c6e
[GH-5] fix: remove fullscreen toggle from SVG viewer — rendered view is the experience f744eea
[GH-5] docs: replace ASCII access decision flow with Mermaid SVG in sharing guide f1455d0
[GH-5] feat: prose width toggle (narrow/wide) for rendered markdown 2e5f19f
fix: mobile header — hide redundant share UI on directories, allow header wrapping (GH-4) 6306f27
[GH-5] fix: SVG fullscreen fits drawing to viewport, allow zoom out feat: README prominently features Event Gateway 080161c
[GH-5] Mobile TOC: hamburger menu left of Rendered/Raw tabs 4b00ff6
fix: header stretches to full content width when zoomed out bbebeec
[GH-5] feat: add medium prose width option (three-way toggle) 2b3dad4
[GH-4] fix: serve favicon.svg route — was referenced in HTML but never served (GH-4) 5543ff8
fix: restore header share UI on directories — shares current page, not redundant with per-row icons 1f77d96
[GH-5] docs: clarify key derivation in event gateway guide e03c97e
[GH-5] Fix mobile header overflow and simplify sticky layout 505bd5e
[GH-5] fix: center SVG vertically and horizontally in fullscreen panzoom ec683bc
[GH-5] Fix code block contrast in light mode 2051d65
[GH-5] Fix CodeBlock component theme awareness 678b7bb
[GH-5] Fix TOC sidebar sticky position and anchor scroll offset 6f2aa3f
[GH-5] fix: remove backtick pseudo-elements from inline code in prose f47cd60
[GH-5] fix: anchor scroll offset - use getBoundingClientRect relative to scroll container a8f5e0c
[GH-5] fix: SVG fullscreen center/center - remove CSS centering, let Panzoom startX/startY handle positioning 54c5aca
[GH-5] Fix TOC sticky top to match header + tabs + gap (7rem) c0d1a40
[GH-5] Fix prose typography colors for light/dark mode 39ce6f9
[GH-5] fix: prose width buttons only appear for rendered markdown, not SVG/Mermaid 4067119
[GH-5] docs: fix insider description — may be scoped, not always full access b481d3a
[GH-5] docs: mention front-end event link button in event gateway guide bdb203c
feat: replace expiry text input with dropdown (never/1h/1d/1w/1m/1y) b247aa3
Merge feature/GH-4-google-oauth: Google OAuth + per-row share icons 4706828
[GH-3] TypeScript refactor scaffolding and core modules 8dd0b92
[GH-3] Decompose path route into sub-modules c369969
Add HTML wrapper for SVG files with proper constraints edf794b
[GH-3] Complete path and about routes ffef74a
[GH-3] implement event gateway with durable queue and logging 2eaef85
[GH-4] feat: add Google OAuth and cookie sessions (GH-4) 89b6d72
[GH-3] Add comprehensive tests for util modules (crypto, formatters, fileDetection) 3536fdd
[GH-3] Auth: multiple API key seeds with optional scopes (preserve HMAC model) 00b1e67
Document event gateway and config redesign in README 3f904ca
[GH-4] feat: directory outsider links, new share UI, per-insider key age (GH-4) 4cbc001
[GH-3] Fix lint errors 09d8c28
[GH-4] refactor: merge configs into jeeves.config.json (GH-4) dae22f9
[GH-4] feat: remove dangerous executable distinction — all files navigable and downloadable (GH-4) d974f3b
[GH-4] feat: outsider directory shares show navigable breadcrumbs from share root (GH-4) 0e93d19
Fix DOCX image sizing: preserve aspect ratio within max bounds 9755b15
Allow clickthrough on binary files, block only dangerous executables be338eb
[GH-4] feat: copy-key button, insider seeds for outsider URL auth (GH-4) aa4f42b
[GH-4] fix: share endpoint supports insider seeds and session cookie auth (GH-4) 4541572
[GH-3] Log full body for unmatched events (remove 200-char truncation) 639c4df
docs: add integration guide for other projects 4512d9b
[GH-3] Fix tsconfig, add prebuild clean, add tsconfig.eslint.json 8d08742
feat: detect text files by content (null bytes) instead of extension whitelist cf8c99a
Fix panzoom overlay sizing for tall SVGs - strip inline styles, size based on aspect ratio 1fabf75
[GH-3] Fix stan: add placeholder test, configure knip for in-progress refactor e91697d
Panzoom SVG overlay: pan/zoom wrapper div (overflow visible) to prevent initial right-shift e5d85c0
Simplify panzoom SVG sizing - use max-width/max-height constraints 9e61f4e
Fix zoom focal point: use margin centering instead of flex to avoid coordinate mismatch 96d170d
Fix panzoom overlay: calculate explicit pixel dimensions from viewBox to fit viewport 5f5d9ce
fix: constrain images to fit within page dimensions in PDF/DOCX export 2e47e5a
Reduce PDF/DOCX font sizes to 10pt base 2617ac9
fix: preserve image aspect ratio in PDF/DOCX export ee60f23
[GH-4] fix: redirect URI uses Host header for correct port (GH-4) 2b6e43f
[GH-4] feat: Raw option in link dropdown for embeddable URLs (GH-4) 14098a0
Fix tall SVG diagrams: remove width=100% attr and inline max-width style e9557ff
Fix PDF font size - add 10pt to PDF-specific styles 18b3505
fix: constrain SVGs and images to page dimensions for PDF export 10993c7
Fix raw download for markdown files 25952cd
Add top hat branding to outsider pages, improve filename display cacbb60
v1.1.0: TypeScript/Fastify refactor, event gateway, named keys with scopes f3711f8
Add 'Jeeves Server' tooltip to top hat in all modes 26902d4
v1.0.1: Fix SVG panzoom overlay sizing and zoom focal point da64150
[GH-4] fix: session cookie secure flag for http dev 903e00f
Merge feature/GH-3-ts-refactor: TypeScript/Fastify refactor with event gateway and named keys a920a99
[GH-3] fix build scripts: increase typecheck memory, ensure dist dir for lint, exclude dist from vitest d909a60
Serve SVG files as images, not as code bdb021f
Force SVG max-width with !important to override inline styles 2ac1093
Fix zoom focal point offset: attach wheel listener to panzoom target element b58f1b0
Force panzoom.reset() after init to ensure scale=1 991b9d2
Fix server.js template literal nesting bug 4e73f87
Force panzoom to start at scale=1 with no translation 6cbce2d
7 February 2026
8 March 2026
feat: named access scopes #84
fix: plugin auth chain, status endpoint improvements #83
fix: resetConfig should reload, not clear #82
chore: add knip configs, remove dead exports, clean all code quality checks 2a81072
fix: make resetConfig reload runtime config 79e8602
lintfix 00dc2b2
lintfix 38a9376
chore: release @karmaniverous/jeeves-server v3.0.0-1 db96bc1
fix: resolve remaining lint errors (type annotations, unused params, unnecessary conditionals) e7714ae
fix: remove unnecessary auth from /api/status calls (endpoint is public) f651fe7
chore: release @karmaniverous/jeeves-server-openclaw v0.1.0-1 d08e571
fix: add pattern to StatusResponse events type f64e6af
fix: normalize path for watcher render (Windows backslash + uppercase drive) f6c229d
openclaw/0.1.0-0
8 March 2026
chore: integrate client as npm workspace member #81
fix: force white background in panzoom fullscreen (dark mode) #80
chore: make both packages releasable #79
fix: address Gemini code review feedback (PRs #65-#76) #78
chore: fix all gap analysis findings (10 items) #77
Phase 4, Steps 16-18: Document rendering pipeline #76
Phase 3, Steps 11-15: OpenClaw plugin #75
Phase 2, Steps 9-10: Search facets proxy + filter UI #74
Phase 2, Step 8: Scroll anchoring #73
chore: SOLID/DRY/coverage audit pass 2 #72
Phase 2, Step 7: Link availability endpoint #71
Phase 1, Step 6: Port migration #70
Phase 1, Step 5: Diagram dependency internalization #69
Phase 1, Step 4: Server Status API #68
Phase 1, Step 3: CLI commands #67
Phase 1, Step 2: Config migration (jiti → cosmiconfig) #66
Phase 1: Monorepo & Config (v3.0.0) #65
feat: align search browse filter with watcher domains convention #64
fix: exit edit mode after save #63
chore: add default port 1934 #62
chore: add default port 1934 #61
feat: render YAML frontmatter as code block #60
feat: add runner dashboard #59
fix: event queue byte/char cursor mismatch + postbuild client #52
fix: client TS errors + picomatch dot matching #51
[GH-46] Semantic search UI #47
[GH-44] Cache exports + Clear Cache control #45
GH-42: Unify raw view on CodeMirror 6 with code folding #43
GH-40: Retry button for failed inline diagram renders #41
GH-38: Terms of Service, Privacy Policy & search engine blocking #39
SOLID/DRY codebase audit — comprehensive refactor #37
feat: in-browser text editing (GH-30) #31
feat: Render embedded Mermaid/PlantUML code blocks (GH-23) #27
feat: Native PlantUML support (GH-22) #25
fix: case-insensitive email comparison for insider matching #24
refactor: Copy Raw Link builds /api/raw/ URL directly, remove raw=1 redirect #21
feat: raw=1 on /browse/* redirects to /api/raw/* for raw file delivery #20
fix: forward auth params on downloads, show error popup on failure #19
refactor: replace hand-rolled glob matching with picomatch #18
[GH-16] feat(GH-16): utility share-for endpoint + outsider policy #17
Allow/deny scopes for insiders and keys #15
GH-13: Linux compatibility #14
[GH-11] Deep share links with depth and directory controls #12
Fix PDF/DOCX export rendering #10
Decommission path routes #8
v2.0.0: React SPA migration #6
[GH-9] fix DOCX SVG export — render SVGs in clean isolated pages #9
[GH-9] fix DOCX SVG screenshot offset — use element.screenshot() instead of clip #9
[GH-9] fix SVG rendering in SPA and PDF/DOCX export issues #9
[GH-9] fix PDF/DOCX exports rendering panzoom container chrome #9
[GH-7] decommission /path routes — migrate to /api/raw, /api/export, /browse redirect #7
chore: add client as workspace member, align puppeteer versions 6e3a40d
feat: internalize diagram dependencies (mermaid/plantuml) 9c7f8a7
feat: implement OpenClaw plugin (Phase 3, Steps 11-15) 72a04e0
refactor: monorepo scaffolding (Phase 1, Step 1) 15cf2ba
feat: migrate config from jiti/TS to cosmiconfig/JSON adfba33
fix: resolve all client ESLint errors and warnings 768541a
chore: release @karmaniverous/jeeves-server v3.0.0-0 07a6e47
chore: SOLID/DRY pass #3 + plugin test coverage 7dcc4c3
feat: add CLI commands (start, config validate/show, service) 0437984
fix: resolve knip unused files, dependencies, and exports 964beba
chore: release @karmaniverous/jeeves-server-openclaw v0.1.0-0 b6c0f6d
fix: address all gap analysis findings 1eb02ab
npm audit fix 3a144b4
feat: add GET /api/link-info endpoint 02ece39
test: add resolve.ts unit tests (21 tests) 7c988ef
fix: cosmiconfig searchPlaces, SOLID/DRY pass, test coverage 08de751
feat: sortable columns on runner dashboard 023a473
feat: add GET /api/status endpoint 764c3a7
chore: SOLID/DRY/test coverage pass e491bfb
[GH-46] GH-46: Date range filtering (relative + absolute) e775502
gitignores 601737f
refactor: extract buildRuntimeConfig to resolve.ts (DRY) 87bd749
fix: address Gemini code review feedback across PRs #65-#76 2fef919
refactor: extract shared renderMarkdownContent pipeline 244dddf
feat: schema-driven search facet filters (Step 10) c305c2a
feat: add scroll anchoring for async diagram renders e4bd972
feat: document rendering pipeline (Phase 4, Steps 16-18) 56095ee
npm audit fix 3810c0f
fix: resolve package.json path portably for version 29d775c
feat: add GET /api/search/facets proxy endpoint 28fc200
ni e40deac
feat: render YAML frontmatter as code block in markdown view 3045a94
chore: migrate default port to 1934 4614a5f
fix: dark mode status pills via custom-variant 30454de
[GH-46] GH-46: Persistent search state + reset control 8fba6ea
chore: add tsdoc.json to both package roots 9ccf217
chore: add tsdoc.json to both package roots 173cf94
fix: set rootDir and update start script path for monorepo layout a2fd77c
fix: resolve TS2352 warnings in openclaw test mocks 88950e2
fix: CI failures and SvgViewer panzoom re-init bug 7392712
fix: update linux-compat CI for monorepo paths 22dd30f
chore: eliminate all lint warnings ed12c86
fix: CI rimraf resolution and remove redundant client steps 757c45c
chore: release v2.9.3 1475596
publishconfig public access 8e4358c
zero version 2c0db75
merge: incorporate main (PR #77 gap-analysis) 845268d
[GH-7] remove legacy server.js — replaced by src/server.ts 6a701e6
GH-32 + GH-33: Diagram cache + lazy-load embedded diagrams 74b68be
[GH-5] docs: add all guides - event gateway, exports, deployment, API integration 45e026a
[GH-7] remove server-rendered about page, templates, and test PDFs bad31ca
[GH-46] GH-46: Semantic search — backend proxy + frontend modal 80383d1
[GH-5] docs: move requirements to .stan/system/stan.requirements.md, slim README 43214d0
[GH-5] docs: add setup and sharing guides, link from README ac32dc9
[GH-5] docs: update README to reflect current architecture - Fastify, Zod 4 config, React SPA, dual auth, prose width toggle e0da626
[GH-42] Replace highlight.js raw view with CodeMirror 6 read-only viewer 547315c
[GH-44] GH-44: Add export cache + Clear Cache endpoint and UI bf41cd0
[GH-42] Remove highlight.js — CM6 handles all syntax highlighting 52415ae
[GH-5] feat: responsive header - single row wide, progressive collapse - Action bar wraps to row 2 below lg breakpoint - Info/theme fold into account menu below lg - Breadcrumbs scroll horizontally (hat pinned) - Thin scrollbar styling for breadcrumb overflow c20ea7a
[GH-5] feat: Panzoom for SVG images embedded in rendered markdown - Finds img tags with .svg sources in rendered articles - Fetches SVG content and replaces img with interactive Panzoom container - Scroll to zoom, drag to pan - Graceful fallback to original img on fetch failure 1cd0dd4
[GH-44] Clear cache covers standalone diagram files (mmd/puml) 63ba5c8
[GH-5] refactor: replace lodash with radash in event gateway JsonMap lib 5c2f322
docs: add platform support section, sync requirements with GH-11 implementation, call out Linux as next-up 261ff4d
[GH-40] Add retry button to failed inline diagram renders 1fe10bd
[GH-5] feat: fullscreen toggle for inline SVG Panzoom viewers 2806878
[GH-46] GH-46: Accordion chunks with scrollable container d9462e0
[GH-5] fix: pre-process SVG to 100% width/height before render — prevents overflow on tab switch 3da142d
[GH-5] fix: SVG viewer zoom-to-fit — entire image visible in viewport, centered f0927ec
[GH-42] Fix DOCX code block rendering — per-line paragraphs with NBSP indent 61db677
[GH-5] docs: Mermaid diagram for event gateway, link first repo references in guides 3c5e98e
[GH-5] docs: rewrite README - position as AI-to-business publishing bridge c6e7c6e
[GH-5] fix: remove fullscreen toggle from SVG viewer — rendered view is the experience f744eea
[GH-5] docs: replace ASCII access decision flow with Mermaid SVG in sharing guide f1455d0
[GH-40] Improve error message and add reload hint on retry failure b0c02c8
[GH-5] fix: SVG fullscreen fits drawing to viewport, allow zoom out feat: README prominently features Event Gateway 080161c
[GH-46] GH-46: File type (extension) filter chips fcab7b2
[GH-5] feat: add medium prose width option (three-way toggle) 2b3dad4
[GH-42] Fix lint: unnecessary conditional in export.ts 528c740
[GH-42] Revert custom fold markers to basicSetup defaults 37fc320
chore: update repo description and add keywords to package.json 5130698
fix: header button hover in light mode - use white/10 overlay instead of accent bg eeb370c
[GH-44] Add .export-cache/ to gitignore 80ade63
[GH-5] docs: clarify key derivation in event gateway guide e03c97e
[GH-5] fix: defer SvgViewer Panzoom init to next frame — fixes tab switch overflow 39c28b5
[GH-42] Skip CM6 for PDF/DOCX export — use plain pre/code blocks 6706f68
[GH-9] render DOCX SVGs at full page width (1152px) dbb5bae
[GH-5] fix: center SVG vertically and horizontally in fullscreen panzoom ec683bc
chore: release v2.9.2 d3db011
chore: release v2.9.1 d34fd62
chore: release v2.9.0 7cdc030
chore: bump version to 2.6.0 7d54aa3
chore: bump version to 2.5.0 2c42e14
chore: bump version to 2.4.0 ddf9d87
fix: increase mobile bottom padding to pb-32 (8rem) e19b653
fix: use md:px-6 md:pt-6 instead of md:p-6 so pb-16 isn't overridden at md breakpoint 6b1c19f
fix: add pb-16 bottom padding to scroll containers for mobile browser chrome clearance 7319d00
fix: pass puppeteer.json config to mmdc for NSSM service compatibility 769610f
[GH-9] render DOCX SVG screenshots at 2x device scale for crisp output 68c04f4
[GH-5] merge: resolve conflicts with main (keep feature branch for frozen server pages) 2c57b6f
[GH-3] TypeScript refactor scaffolding and core modules 8dd0b92
[GH-5] feat: React + Vite scaffold with file browser, API endpoints, and SPA serving (GH-5) 6a8ffb5
[GH-5] Dropdown menus, TS config, state separation, local static assets 16f40b4
[GH-3] Decompose path route into sub-modules c369969
[GH-3] Complete path and about routes ffef74a
[GH-3] implement event gateway with durable queue and logging 2eaef85
[GH-4] feat: add Google OAuth and cookie sessions (GH-4) 89b6d72
[GH-3] Add comprehensive tests for util modules (crypto, formatters, fileDetection) 3536fdd
[GH-5] feat: per-row share icons on drives listing page (GH-5) 35a04a6
[GH-3] Auth: multiple API key seeds with optional scopes (preserve HMAC model) 00b1e67
Document event gateway and config redesign in README 3f904ca
[GH-4] feat: directory outsider links, new share UI, per-insider key age (GH-4) 4cbc001
[GH-5] Fix header wrapping + unified fixed top bar 26baa15
[GH-3] Fix lint errors 09d8c28
[GH-4] refactor: merge configs into jeeves.config.json (GH-4) dae22f9
[GH-4] feat: per-row share icons in directory listings — 🔗 page + ⬇ raw with shared expiry input (GH-4) f0e005e
[GH-5] Fixed header/tabs, key auth for SPA, dropdown hover variants 808c024
[GH-5] feat: replace expiry text input with dropdown (never/1h/1d/1w/1m/1y) (GH-5) 7691a69
[GH-4] feat: remove dangerous executable distinction — all files navigable and downloadable (GH-4) d974f3b
[GH-4] feat: outsider directory shares show navigable breadcrumbs from share root (GH-4) 0e93d19
[GH-5] Responsive header layout - two-row design 1c7fbda
feat: replace expiry text input with dropdown (never/1h/1d/1w/1m/1y) 4a0f8ae
feat: per-row share icons on drives listing page dcc2fbc
[GH-4] feat: copy-key button, insider seeds for outsider URL auth (GH-4) aa4f42b
[GH-4] feat: remove key params from insider links — cookie auth makes them unnecessary (GH-4) 5509823
[GH-4] fix: share endpoint supports insider seeds and session cookie auth (GH-4) 4541572
[GH-5] Scrollbar under tabs, main as scroll container 65b4dcc
fix: wrap entire startup in try/catch, surface errors instead of silent exit 1913fe1
[GH-3] Log full body for unmatched events (remove 200-char truncation) 639c4df
[GH-3] Fix tsconfig, add prebuild clean, add tsconfig.eslint.json 8d08742
[GH-5] feat: prose width toggle (narrow/wide) for rendered markdown 2e5f19f
fix: mobile header — hide redundant share UI on directories, allow header wrapping (GH-4) 6306f27
[GH-5] Mobile TOC: hamburger menu left of Rendered/Raw tabs 4b00ff6
fix: header stretches to full content width when zoomed out bbebeec
[GH-3] Fix stan: add placeholder test, configure knip for in-progress refactor e91697d
[GH-4] fix: serve favicon.svg route — was referenced in HTML but never served (GH-4) 5543ff8
fix: restore header share UI on directories — shares current page, not redundant with per-row icons 1f77d96
Reduce PDF/DOCX font sizes to 10pt base 2617ac9
[GH-4] fix: redirect URI uses Host header for correct port (GH-4) 2b6e43f
[GH-4] feat: Raw option in link dropdown for embeddable URLs (GH-4) 14098a0
Fix PDF font size - add 10pt to PDF-specific styles 18b3505
Fix raw download for markdown files 25952cd
[GH-5] Fix mobile header overflow and simplify sticky layout 505bd5e
Add top hat branding to outsider pages, improve filename display cacbb60
[GH-5] Fix code block contrast in light mode 2051d65
[GH-5] Fix CodeBlock component theme awareness 678b7bb
[GH-5] Fix TOC sidebar sticky position and anchor scroll offset 6f2aa3f
v1.1.0: TypeScript/Fastify refactor, event gateway, named keys with scopes f3711f8
[GH-3] fix build scripts: increase typecheck memory, ensure dist dir for lint, exclude dist from vitest d909a60
Add 'Jeeves Server' tooltip to top hat in all modes 26902d4
[GH-5] Fix TOC sticky top to match header + tabs + gap (7rem) c0d1a40
[GH-5] Fix prose typography colors for light/dark mode 39ce6f9
feat: replace expiry text input with dropdown (never/1h/1d/1w/1m/1y) b247aa3
Merge feature/GH-4-google-oauth: Google OAuth + per-row share icons 4706828
[GH-4] fix: session cookie secure flag for http dev 903e00f
Merge feature/GH-3-ts-refactor: TypeScript/Fastify refactor with event gateway and named keys a920a99
Add HTML wrapper for SVG files with proper constraints edf794b
feat: track key rotation timestamp, display relative time, DRY up header components 993023e
Add heading anchors, TOC, and Windows path linking f49962d
Initial commit: Express server with webhook receiver, file server, and path-key auth 31c83ca
feat: add /about page with usage instructions, info button in header, adjust glow to 1px 0.2 opacity e0492c6
Add directory browser with breadcrumbs, drive listing, skip binaries 06b66ea
Sticky TOC sidebar, TOC on by default, HTML viewer for all text files 55ae006
Check path existence before linking, skip templates, handle directories, add syntax highlighting d2c6af9
docs: add 'Why Markdown?' value proposition to about page and README 77a5769
Fix DOCX image sizing: preserve aspect ratio within max bounds 9755b15
Allow clickthrough on binary files, block only dangerous executables be338eb
Pre-process paths before marked, support all drives, serve jsonl as text 00f1140
feat: add Raw/PDF/DOCX export buttons to about page 5141a78
Add breadcrumb navigation to all file views e3cd472
feat: add key rotation to about page for insiders dcbb328
docs: add integration guide for other projects 4512d9b
Fix inline code path linking, add noindex/nofollow e3b7967
feat: detect text files by content (null bytes) instead of extension whitelist cf8c99a
Fix panzoom overlay sizing for tall SVGs - strip inline styles, size based on aspect ratio 1fabf75
Panzoom SVG overlay: pan/zoom wrapper div (overflow visible) to prevent initial right-shift e5d85c0
Simplify panzoom SVG sizing - use max-width/max-height constraints 9e61f4e
feat: display volume names on drives page 86308a1
Fix zoom focal point: use margin centering instead of flex to avoid coordinate mismatch 96d170d
Fix panzoom overlay: calculate explicit pixel dimensions from viewBox to fit viewport 5f5d9ce
fix: constrain images to fit within page dimensions in PDF/DOCX export 2e47e5a
feat: add top hat favicon 541ca76
fix: preserve image aspect ratio in PDF/DOCX export ee60f23
feat: add tooltips to all header buttons 9c6ecbf
Fix tall SVG diagrams: remove width=100% attr and inline max-width style e9557ff
fix: constrain SVGs and images to page dimensions for PDF export 10993c7
fix: change TOC to position:fixed to prevent scroll jitter 33257a8
fix: TOC sticky position below header (top: 42px) 954027c
[GH-5] chore: bump version to 2.0.0 8864eaa
v1.0.1: Fix SVG panzoom overlay sizing and zoom focal point da64150
Serve SVG files as images, not as code bdb021f
feat: add download icon to files that will download in directory view 78f5bea
Handle bare drive letter paths (c -> C:\) 49b10d6
[GH-5] fix: remove backtick pseudo-elements from inline code in prose f47cd60
[GH-5] fix: anchor scroll offset - use getBoundingClientRect relative to scroll container a8f5e0c
Force SVG max-width with !important to override inline styles 2ac1093
style: truncate breadcrumb paths with ellipsis, nowrap header actions c53a82f
fix: update in-memory API_KEY after rotation so new key works immediately c876198
[GH-46] GH-46: Enlarge search modal (max-w-4xl, 85vh, less top offset) 83d8ad2
[GH-5] fix: SVG fullscreen center/center - remove CSS centering, let Panzoom startX/startY handle positioning 54c5aca
style: replace info emoji with bold question mark 90f2a48
style: add padding-top to TOC title for more whitespace fae3a97
Fix zoom focal point offset: attach wheel listener to panzoom target element b58f1b0
Force panzoom.reset() after init to ensure scale=1 991b9d2
style: add subtle shadow to header in light mode 42e1bfe
fix: add missing return-await in facets handler b08d4a3
fix: remove unused parameter in linkInfo test 36fca9a
ci: add Node 24 to linux-compat matrix 66f1008
fix: adjust relative paths for monorepo dist/src/ layout dcaf9dc
fix: adjust rootDir depth for monorepo dist/src/config path 5427014
[GH-5] fix: prose width buttons only appear for rendered markdown, not SVG/Mermaid 4067119
[GH-5] docs: fix insider description — may be scoped, not always full access b481d3a
[GH-5] docs: mention front-end event link button in event gateway guide bdb203c
Fix server.js template literal nesting bug 4e73f87
Force panzoom to start at scale=1 with no translation 6cbce2d
fix: add explicit font-family to header for consistency across pages 19418f4
fix: include insider key in about link for insiders 33172c9
fix: restore spacing around breadcrumb separators with nbsp 3b85d55
style: vertically center header items (align-items: center) 68c9a57
style: align header items to bottom (flex-end) b60b30b
style: change header shadow to white outer glow 4f72ef8
fix: increase scroll-margin-top to 80px c4a1ee0
fix: add scroll-margin-top to headings for sticky header offset 9c649d1
Fix View Raw link to include key 65fafdf
style: vertically center breadcrumb text with flexbox 19cebb9