Releases: inattendu/dashreader
v1.4.3 - Plugin Review Fixes
Fixes for Obsidian Plugin Review
This release addresses issues identified during plugin submission review:
- Add
@eslint/jsto devDependencies - Add await expressions to
onOpen/onCloselifecycle methods - Remove "settings" word from settings tab headings
- Remove plugin name from settings headings
- Remove deprecated
ConditionalGroupConfiginterface
No functional changes - code quality and guidelines compliance only.
1.4.2
Obsidian Guidelines Compliance
Overview
This release focuses on full compliance with Obsidian plugin guidelines to ensure smooth approval for the Community Plugins directory. All ESLint errors identified by the Obsidian plugin review bot have been resolved.
Bot Review: All issues from the official review comment have been addressed and fixed.
🔧 Technical Improvements
Security & Memory Management
- Fixed memory leak in plugin view registration (no longer stores view reference in plugin)
- Implemented safe
getView()helper method to access view instances - Proper cleanup in view lifecycle methods
Code Quality (75 ESLint errors fixed)
- ✅ Type safety: Replaced
anytypes withunknownor proper types throughout codebase - ✅ Promise handling: Added proper
voidoperators and error handling for all floating promises - ✅ Console logging: Changed
console.logtoconsole.debugper Obsidian guidelines - ✅ Regex patterns: Fixed unnecessary escape characters in regular expressions
- ✅ Async/await: Proper async method signatures for Obsidian API compatibility
UI/UX Consistency
- Sentence case: All UI text now follows Obsidian's sentence case convention
- Example: "Toggle Play/Pause" → "Toggle play/pause"
- Removed redundant plugin name from UI elements
- Settings headings: Using
Setting.setHeading()instead of manual HTML elements - Command IDs: Simplified to avoid redundant plugin ID prefix
Styling Best Practices
- Replaced direct
element.stylemanipulation with proper CSS methods - Better theming compatibility and maintainability
📦 Installation
From Community Plugins (pending approval)
- Open Settings → Community plugins
- Browse and search for "DashReader"
- Install and enable
Manual Installation
- Download
main.js,manifest.json,styles.cssfrom this release - Create folder
.obsidian/plugins/dashreader/in your vault - Copy the downloaded files to this folder
- Reload Obsidian
- Enable DashReader in Settings → Community plugins
🔄 Changelog
Fixed
- Memory leak in view registration (obsidianmd/no-view-references-in-plugin)
- Command IDs now exclude plugin ID prefix (obsidianmd/commands/no-plugin-id-in-command-id)
- All UI text converted to sentence case (obsidianmd/ui/sentence-case)
- Console methods restricted to warn/error/debug (no-console)
- Settings headings use proper API (obsidianmd/settings-tab/no-manual-html-headings)
- Eliminated all
anytypes (@typescript-eslint/no-explicit-any) - Fixed floating promise warnings (@typescript-eslint/no-floating-promises)
- Proper async/await in view lifecycle methods
Technical
- Upgraded TypeScript to 5.7.2
- Added ESLint 9 with obsidianmd plugin
- Improved type safety across entire codebase
- Better error handling and logging
🚀 Features (from v1.4.0-1.4.1)
- Breadcrumb navigation with hierarchical document structure
- Visual minimap showing heading positions
- Slow start feature for comfortable reading initiation
- Full callout support for Obsidian callouts
- Extended WPM range (50-5000)
- Editable numeric inputs for all sliders
- 8 configurable micropause multipliers
📝 Notes
This is a maintenance release focused on code quality and Obsidian guidelines compliance. No functional changes or breaking changes for users.
1.4.1
DashReader v1.4.1 - Production Release
Release Type: Quality & Compliance Update
Date: October 2025
Status: ✅ Production-ready, Obsidian plugin directory submission ready
🎯 What's New
Navigation & Document Awareness
- Breadcrumb navigation - Track your position in document structure (H1 › H2 › H3)
- Click any heading to jump instantly
- Dropdown menus for navigating between same-level headings
- Works smoothly during active reading
- Visual minimap - Vertical overview of entire document
- Heading markers positioned proportionally
- Click to jump to any section
- Hover tooltips with heading text
- Nearly invisible design, reveals on hover
- Auto-positioning - Automatically starts from cursor position in editor
- Real-time position tracking with optimized updates
Ultra-Fast Reading Support
- WPM range extended to 5000 (previously capped at 1000)
- Enables advanced speed reading techniques for experienced users
- Default remains at comfortable 400 WPM
Enhanced Stability & Performance
- Timer management - Precise timeout handling with automatic cleanup
- No memory leaks from orphaned timers
- Proper cleanup on pause/stop/reset
- Background task management
- Complete code refactoring for better reliability
- Improved memory management
- Faster UI updates and smoother reading experience
- Zero console warnings in production
Obsidian Plugin Directory Ready
- Passes all Obsidian automated security checks
- XSS-safe DOM manipulation
- Clean, professional codebase
- Ready for official plugin directory submission
🔧 Technical Improvements
For developers and contributors:
- Architecture: 6 monolithic files → 20+ focused modules
- Type Safety: 99% (eliminated nearly all type casts)
- Services: 4 dedicated services with Strategy Pattern
- Code Quality: Functions <50 lines average, clear separation of concerns
📚 Documentation
- Fixed outdated information in README and architecture docs
- All documentation verified against current codebase
- Complete project structure documented
1.3.1
Security and Compliance Update
Critical Security Fixes
- 🔒 XSS Prevention: Added HTML escaping for all user-generated content (note text, file names)
- 🔧 Resource Management: Fixed leaf management during plugin updates per Obsidian guidelines
Compliance
- ✅ Fully compliant with Obsidian Plugin Guidelines
- ✅ Passed security review requirements
This update is recommended for all users.
1.3.0
DashReader v1.3.0
Speed reading plugin using RSVP (Rapid Serial Visual Presentation) technique.
Features
- Word-by-word display with center character highlighting
- Intelligent pacing with heading-aware micropauses (H1=3x, H2=2.5x, etc.)
- Progressive acceleration support
- Smart cursor position tracking
- Full Markdown support (code blocks, callouts, headings)
- Proportional heading display
- Real-time statistics and progress tracking
Installation
Available through Obsidian's Community Plugins browser (coming soon) or manual installation.