Changelog
v0.10.1 Current
Section titled “v0.10.1 ”Scorecard empty-state polish and writetracker UX improvements.
Bug Fixes
Section titled “Bug Fixes”- Scorecard cells and detail panel no longer show “flagged” status when session has insufficient data
- Empty compact charts no longer display placeholder text
- Fixed scorecard flag section appearing on empty sessions
v0.10.0
Section titled “v0.10.0”Redesigned scorecard with new chart components, share/download actions, and improved empty-state handling.
Redesigned Scorecard New
Section titled “Redesigned Scorecard ”- New 6-cell grid with compact chart previews for each analysis category
- Content origin bar showing typed vs pasted proportion at a glance
- Share and download action buttons with PNG export
<wt-edit-beeswarm>— per-keystroke edit visualization<wt-badge>— headline metric badges for key session stats
Improvements
Section titled “Improvements”- More responsive chart rendering
- Improved license validation error messages
- Reduced false positives for paste-heavy sessions
Bug Fixes
Section titled “Bug Fixes”- Fixed paste source labeling in scorecard
- Fixed indicator formatting and priority ordering
v0.9.1
Section titled “v0.9.1”Detection improvements and bug fixes.
Detection
Section titled “Detection”- Enhanced modifier key tracking for automation detection
- Three new indicators targeting uniform timing, headless execution, and synthetic input patterns
- Reduced false positives for autocomplete and paste-heavy sessions
- Richer burst analysis diagnostics
Bug Fixes
Section titled “Bug Fixes”- Fixed paste event capture in nested contenteditable elements
- Fixed stale timestamps on persisted session restore
- Fixed
analysis.versionreporting hardcoded1.0.0instead of SDK version - Fixed persistence race condition on async session restore
- Fixed chart rendering artifacts on speed timeline
v0.9.0
Section titled “v0.9.0”Better editor integration, active session tracking, and improved paste-edit heuristics.
Editor Input Source Classification New
Section titled “Editor Input Source Classification ”All editor integrations now classify the source of each input event — keyboard, paste, drop, cut, autocomplete, spellcheck, composition, undo, redo, or api. Uses editor transaction metadata with W3C beforeinput fallback for plain elements. New inputSourceProvider option for custom integrations.
Active Session Duration New
Section titled “Active Session Duration ”Track how long a user has been actively writing without rolling your own timer. on('tick', handler) fires every second while the session is active and the tab is visible, providing activeTime and totalTime in milliseconds. getActiveTime() returns active time on demand.
Paste-Edit Analysis
Section titled “Paste-Edit Analysis”- Per-paste
reworkRatiometric tracking edits within paste regions over a 60-second window - 6 aggregate paste metrics in
PasteEditSummary - New WT-105/106/107 paste rework indicators
v0.8.0
Section titled “v0.8.0”Writing Process Stage Detection New
Section titled “Writing Process Stage Detection ”New analysis category that classifies temporal windows as planning, drafting, or revision using existing keystroke metrics. Outputs phase transition matrix for flow visualization, aggregate time-in-phase percentages, and per-segment phase labels with confidence scores.
Editor Integrations New
Section titled “Editor Integrations ”Three new first-party editor integrations:
- Lexical (
writetrack/lexical) — cursor tracking via$getSelection() - Slate (
writetrack/slate) — element-to-path cursor tracking - TinyMCE (
writetrack/tinymce) — inline mode with init/destroy lifecycle
Analysis & Bug Fixes
Section titled “Analysis & Bug Fixes”- Paste-edit correlation metrics — track edits within paste regions
- Fixed false Physical Plausibility flags caused by dwell time encoding bugs
- Improved burst ratio and timing threshold accuracy
- Zero-latency events now flagged as physically implausible
- Documentation hardening and stale reference cleanup
v0.7.0
Section titled “v0.7.0”This release adds a visualization module with 9 chart components, a redesigned session scorecard, and improvements across the analysis pipeline.
Visualization Module New
Section titled “Visualization Module ”New writetrack/viz subpath export with chart components rendered as web components powered by Observable Plot.
- Analysis charts — SpeedTimeline, CompositionTimeline, RhythmHeatmap, PauseDistribution
- Event-detail charts — Sparkline, DocumentGrowth, DocumentRibbon, EditWaterfall, CorrectionsBubble
- Session scorecard — Experimental
<wt-scorecard>implementation with indicator grid, detail panels, and integrity verification - Theming — CSS custom properties with warm editorial palette (light/dark), overridable fonts via
--wt-scorecard-font-* - Extract functions — Standalone data-extraction functions for each chart, usable without web components
- Hover tooltips — Interactive tooltips on all chart components
- LTTB downsampling — Time-series charts automatically downsample large datasets via WASM for responsive rendering
Analysis
Section titled “Analysis”- Improved analysis module with new indicators and metrics for more accurate detection of automated and authentic writing patterns
Bug Fixes
Section titled “Bug Fixes”- Fixed paste content capture in ProseMirror/TipTap editors
- Fixed contenteditable cursor position tracking
- Fixed WASM loading reliability across deployment environments
v0.6.1
Section titled “v0.6.1”- Improved bundler compatibility — WASM analysis module works reliably across webpack 5, Rollup, Next.js, and Vite
- Bug fixes — Improvements to the customer portal
v0.6.0
Section titled “v0.6.0”This release improves analysis accuracy and adds convenience methods for managing persisted sessions.
Analysis Improvements
Section titled “Analysis Improvements”- New analysis features — Enhanced timing, behavioral, and revision pattern detection for more accurate indicators
- Consistent indicator codes — Indicators now use a category-prefixed scheme (WT-1xx through WT-6xx)
Persistence Management New
Section titled “Persistence Management ”listPersistedSessions()— List all stored sessions without creating a tracker instancedeletePersistedSession()— Delete sessions bycontentId, useful for cleanup when users delete content
Editor Integrations
Section titled “Editor Integrations”- All integrations (TipTap, CKEditor, ProseMirror, Quill, React hook, Vue hook) now support
persistandwasmUrloption passthrough
Verification API New
Section titled “Verification API ”New writetrack/verify subpath export for standalone session verification without a DOM element.
v0.5.0
Section titled “v0.5.0”The latest version of WriteTrack introduces typing pattern analysis, session persistence, and expanded input capture.
Analysis Module New
Section titled “Analysis Module ”WriteTrack now includes an integrated analysis engine. Each indicator returns a standardized diagnostic code and human-readable explanation. Results include a signed integrity proof.
- Content origin — typed vs. pasted vs. autocompleted ratio
- Timing authenticity — keystroke rhythm and variability
- Session continuity — tab-away events and behavioral shifts
- Physical plausibility — input consistency checks
- Revision behavior — correction rate and editing patterns
- Temporal patterns — speed variation, fatigue, and burst detection
Session Persistence New
Section titled “Session Persistence ”Sessions can now survive page reloads. Pass persist: true with a contentId to automatically save session state to IndexedDB and restore it on the next page load. New clearPersistedData() method for cleanup.
Capture Improvements
Section titled “Capture Improvements”- IME composition support — CJK input methods, dead keys, and accent input now tracked correctly
- Tab blur detection — keystrokes arriving while the tab is backgrounded are identified
- Paste source classification — pastes categorized by source
- Programmatic insertion — now captures the browser’s
inputTypefor finer-grained classification
Bug Fixes
Section titled “Bug Fixes”- Fixed memory leak where event listeners weren’t removed on
stop() - Improved accuracy of behavioral analysis
- Various fixes to contenteditable support and React hook
v0.4.3
Section titled “v0.4.3”Editor Integrations New
Section titled “Editor Integrations ”We’ve added support for the most popular rich-text editors via dedicated imports. Each editor library is an optional peer dependency, only included in your bundle if you use it.
- TipTap – headless and extensible (
writetrack/tiptap) - CKEditor 5 – feature-rich, used by enterprise teams (
writetrack/ckeditor) - ProseMirror – low-level toolkit for custom editors (
writetrack/prosemirror) - Quill – lightweight and easy to get started (
writetrack/quill)
Documentation
Section titled “Documentation”- Consolidated API reference into a single page
- Improved styling and clarity across all docs pages
v0.3.1
Section titled “v0.3.1”- Documentation now accurately reflects the public npm package API
v0.3.0
Section titled “v0.3.0”This release introduces the output sink system for routing session data to external services, alongside broader browser support and improved event capture.
Output Sinks New
Section titled “Output Sinks ”New .pipe() API for routing session data to one or more destinations. Ships with built-in sinks for Webhook, Datadog, Segment, and OpenTelemetry, plus support for custom sinks.
Event Capture New
Section titled “Event Capture ”isTrustedflag — Keystroke events now include the browser’sisTrustedproperty to distinguish real user input from synthetic events- Programmatic insertion detection — Browser autofill, predictive text, and other non-keystroke insertions are captured as dedicated events
- Context fields — New
userId,contentId, andmetadataconstructor options that flow through togetData()output and all sinks
Browser Support
Section titled “Browser Support”- Broader browser support for license validation — now works in Chrome 37+, Firefox 34+, Safari 11+, Edge 12+
v0.1.0
Section titled “v0.1.0”Initial release of the SDK and writetrack.dev.
SDK New
Section titled “SDK ”- Keystroke Capture — Keydown/keyup events with high-resolution timestamps, dwell time, flight time, cursor position and selection tracking
- Paste & Edit Tracking — Clipboard event capture with before/after text states, selection events via mouse/keyboard/programmatic methods, edit sequence pattern detection, revision depth tracking
- Privacy-First Architecture — Client-side only processing, no data transmitted externally, offline license validation, no PII collection or device fingerprinting
- Framework Support — React hook (
useWriteTrack), Vue 3 composable, Next.js (App Router and Pages Router), vanilla JS - Multi-Format Output — ESM, CommonJS, and browser bundle. Zero dependencies
Documentation New
Section titled “Documentation ”- Getting Started — Introduction, quickstart guide, configuration reference
- Framework Guides — React, Vue, and Next.js integration walkthroughs
- Core API — WriteTrack class reference, feature extraction guide, full TypeScript type definitions
- Advanced — Data schema specification, privacy and security guidance
- Reference — API quick-reference tables, testing strategies, troubleshooting guide
Customer Portal New
Section titled “Customer Portal ”- Authentication — Email/password login and signup with email verification
- License Dashboard — License tier display, expiry tracking
- Domain Management — Add/remove licensed domains with tier-based limits