Releases: MarsLuay/handwriting-natively
Releases · MarsLuay/handwriting-natively
Release list
0.1.53 — Resilient handwriting input
What's Changed
- fix: Delegate non-draw mouse panning to ViewerMousePan by @MarsLuay in #34
- ⚡ perf: Optimize
textAtto remove unnecessary array allocation by @MarsLuay in #35 - 🧪 add tests for normalizeRotation by @MarsLuay in #36
- 🧪 [Testing] Add test suite for shapeResizeHandle function by @MarsLuay in #37
- 🧪 add tests for setElementCssProps by @MarsLuay in #38
- 🧪 test: add coverage for getDebugNodeId by @MarsLuay in #39
- 🧪 add tests for isToolId by @MarsLuay in #40
- 🧪 Add tests for TextAnnotationSession by @MarsLuay in #41
- 🧪 Add tests for normalizeVaultPath by @MarsLuay in #42
- 🧪 Add comprehensive tests for
isElementtype guard by @MarsLuay in #43 - 🧪 [Testing Improvement] Add tests for isHTMLElement and dom typeGuards by @MarsLuay in #45
- 🧪 Add tests for text annotation commands by @MarsLuay in #47
- 🔒 Fix weak PRNG used for IDs in ViewerInkSession by @MarsLuay in #49
- 🧹 Extract normalizedCoordinateScale to shared math utility by @MarsLuay in #57
- 🧪 Add missing error tests for unequal replacement set lengths in AnnotationCommands by @MarsLuay in #58
- 🧪 [testing improvement] Add tests for sameTextRunStyle by @MarsLuay in #61
- 🧪 Add tests for getDebugNodeId by @MarsLuay in #44
- 🧪 Add test coverage for resolveDrawingTool by @MarsLuay in #46
- ⚡ Optimize clearFreehandDrawings by retrieving only requested page strokes by @MarsLuay in #48
- 🧪 Add tests for TextAnnotationSession by @MarsLuay in #50
- 🧪 test: add missing tests for isHTMLCanvasElement by @MarsLuay in #51
- 🧪 Add unit tests for TextAnnotationCommands by @MarsLuay in #52
- 🧪 Add tests for Document Identity handling by @MarsLuay in #53
- ⚡ Optimize InkSession.all() redundant array allocation by @MarsLuay in #54
- ⚡ Optimize applyDeletedPagesToSession loop in ViewerInkSession by @MarsLuay in #55
- 🧹 Extract escapeXml into shared utility by @MarsLuay in #56
- 🧪 [testing improvement description] by @MarsLuay in #62
- 🧪 Add missing tests for isInkDrawTool and related tools in model.ts by @MarsLuay in #63
- 🧪 Add comprehensive unit tests for
isElementInDocumentcross-window type guard by @MarsLuay in #64 - 🧪 [Add tests for text annotation commands] by @MarsLuay in #65
- 🧪 [Add tests for ReplaceTextAnnotationCommand] by @MarsLuay in #66
- 🧹 Code Health: Refactor clamp functions into shared math utility by @MarsLuay in #59
- 🧹 Consolidate duplicate clampUnit and clamp01 utilities by @MarsLuay in #60
- 🐛 [bug fix] Prevent crash in touch panning and text hit testing by @MarsLuay in #67
- ⚡ Optimize StrokeSpatialIndex spatial query allocation overhead by @MarsLuay in #68
- ⚡ perf: remove O(N^2) complexity in zoomSettleQueue shift by @MarsLuay in #74
- ⚡ perf: optimize O(N^2) complexity in onPdfPageContentMutation by @MarsLuay in #73
- ⚡ Optimize O(N^2) complexity in onPdfPageContentMutation by @MarsLuay in #72
- ⚡ [performance] Optimize zoom settle queue O(N^2) array shift by @MarsLuay in #71
- ⚡ perf: optimize O(N^2) drifted page calculation by @MarsLuay in #70
- ⚡ perf(ViewerInkSession): prevent layout thrashing in zoomSettlePageOrder by @MarsLuay in #69
- 🧪 test: add error path coverage for rich text style parsing by @MarsLuay in #75
- 🧹 Remove redundant console logs in favor of VaultDebugLog by @MarsLuay in #76
- 🧹 [Code Health] Remove redundant console.error in notebook creation by @MarsLuay in #77
- 🔒 Fix incomplete HTML escaping in escapeXml by @MarsLuay in #94
- 🔒 Fix XSS Vulnerability in setElementCssProps by @MarsLuay in #97
- 🔒 Fix CSS Injection / XSS Vulnerability in PdfExportService by @MarsLuay in #95
- 🧪 test: add coverage for safeReleasePointerCapture by @MarsLuay in #81
- 🧪 test: add coverage for resolvePullStretchTarget by @MarsLuay in #78
- 🧪 [testing improvement] Add unit tests for resolveLastPdfPage by @MarsLuay in #90
- 🧹 [Code Health] Remove redundant console.error calls in main.ts by @MarsLuay in #79
- 🧹 refactor: remove redundant console calls in favor of vaultDebugLog by @MarsLuay in #80
- 🧹 [Code Health] Replace console.warn with proper logging framework by @MarsLuay in #82
- 🧪 test: add unit tests for
overlayOffsetInParentby @MarsLuay in #83 - 🧹 refactor: Replace raw console.warn calls with the proper logging framework by @MarsLuay in #84
- 🧪 add error path coverage for retainRecentEntries log parsing by @MarsLuay in #86
- 🧹 Extract common drawing tool width options mapping and preview logic into a shared helper function by @MarsLuay in #87
- 🧹 [Code Health] Refactor active touches tracking to reduce duplication by @MarsLuay in #88
- ⚡ Fix layout thrashing in
scheduleViewportPaintby @MarsLuay in #89 - 🧹 Extract duplicated targetLabel into describeTarget by @MarsLuay in #91
- 🧹 Refactor deeply nested logic in
diagnosePdfSidebarOverlapby @MarsLuay in #92 - 🧹 [Code Health] Replace console.warn with proper logging framework in BasePdfAdapter by @MarsLuay in #96
- 🧹 Refactor: Remove deprecated VaultSyncWriter file by @MarsLuay in #101
- ⚡ Optimize clearHitsOnPage DOM collection iteration by @MarsLuay in #102
- ⚡ perf: Optimize string allocation and array allocation in StrokeSpatialIndex cellsFor by @MarsLuay in #104
- 🧹 Refactor PointerRouter to use isTextToolRoute helper by @MarsLuay in #98
- 🧹 [Code Health] Extract complex condition in PullToAddPageGesture by @MarsLuay in #99
- 🧹 Refactor
createDefaultSettingsto improve code health by @MarsLuay in #100 - 🧹 Refactor
installPointerProbefor improved readability by @MarsLuay in #103 - ⚡ Debounce session traversal for file-open events by @MarsLuay in #105
- 🧹 [code health improvement] Restore normal PDF scrolling when Draw mode is inactive by @MarsLuay in #106
Full Changelog: 0.1.52...0.1.53
What's Changed
- fix: Delegate non-draw mouse panning to ViewerMousePan by @MarsLuay in #34
- ⚡ perf: Optimize
textAtto remove unnecessary array allocation by @MarsLuay in #35 - 🧪 add tests for normalizeRotation by @MarsLuay in #36
- 🧪 [Testing] Add test suite for shapeResizeHandle function by @MarsLuay in https://github.com/MarsLuay/handwriting-n...
0.1.52
Summary
- Improve stylus handling after pen hover and prevent palm contacts from interrupting drawing or touch gestures.
- Keep two-finger wheel panning in PDF content while native PDF sidebar scrolling stays native.
- Shift-click PDF thumbnails to select a page range, then use Delete or Backspace to remove the selected pages together.
Full Changelog: 0.1.51...0.1.52
0.1.51
Summary
- Zooming a PDF with ink feels snappier: the page under your tip soft-updates first, then sharpens a moment later instead of freezing on a long redraw.
- Drawing while zoomed or mid-gesture stays aligned with the soft ink layer, with fewer blank flashes and dual-scale glitches.
- Stabilized pen strokes look smoother on long freehand lines, and Apple Pencil / touch handling is less likely to lock scrolling or steal strokes at the page edge.
0.1.45
0.1.44
0.1.43
0.1.42
0.1.41
0.1.27
- Typed text annotations appear in Obsidian’s native PDF find bar (Cmd/Ctrl+F); freehand ink stays non-searchable.
- Fix PDF find missing Handwriting Natively text on first search (patch after lazy extract), dropping suffix hits (
_pageDiffs), rematch storms on scroll, and short scroll-to-match for overlay boxes. - Pull past the bottom of a PDF (trackpad, wheel, or grab-pan) to rubber-band, fill a progress ring, and snap in a new blank page (GoodNotes-style).
- Harden Draw-mode pointer routing after zoom/overlay reattach; ignore native textLayer hits while drawing; clear stale multi-touch IDs.
Full Changelog: 0.1.26...0.1.27