Maintenance release closing 19 review issues — correctness, robustness, security hardening, config scoping and build/CI tooling.
🐞 Fixed
- Accept/Reject could corrupt the document on a stale (debounced) cache (#52). Resolutions now flush any pending parse and verify the cached marker text before editing.
- Split view decorated only one pane (#56) — now every visible editor of the document.
- Changes-view group/flat toggle was inert under a workspace override (#57) — now writes into the scope that defines the setting.
- Comment date used UTC (#58) — now the local calendar date.
- Cursor jumped after a failed authoring edit (#59) — caret correction gated on the applied flag.
- Git author ignored multi-root workspaces (#60) — resolved per the active document's folder.
- Word diff fragmented non-ASCII words (#55) — Unicode-aware tokenizer (
\p{L}/\p{N}), so umlauts, ß and accents stay inside their word. - Track Changes shadow hardened against external mutations (#68) — resyncs instead of producing a malformed marker.
🔄 Changed
- Track Changes coupled to the enablement gate (#53, #54). Turning it on in a disabled document now enables kaicrit for that file; the normal-mode paste-flatten gets a cheap early-out and stays inert in disabled documents.
- Configuration read with a resource scope (#61) — folder-/language-specific overrides (
"[markdown]": { … }, multi-root) are honoured.
✨ Added
kaicrit.edit.maxParseLength(#63, default 2 000 000) — size guard bounding the marker regex's O(n²) worst case on pathological input.
🔒 Security
- Hardened the change-action hover (#62).
isTrustedscoped to kaicrit's own accept/reject commands instead of everycommand:URI; document-sourced comment author/date is escaped so it can't render a link.
🛠 Internal / build
- CI now runs lint + tests on every push/PR; release workflow runs the suite before packaging (#51).
- ESLint flat config (typescript-eslint recommended), wired into CI (#69).
- Extension bundled with esbuild for packaging — single ~40 KB
.vsixmodule; dev/F5 loop unchanged (#65). - Packaging cleanups: dev-only files excluded from the
.vsix(#64),out/cleaned before tests (#67), docs unified on@vscode/vsce(#66).
Full changelog: v0.9.0...v0.10.0