Skip to content

Releases: inattendu/dashreader

v1.4.3 - Plugin Review Fixes

05 Jan 21:56
0ba8ee1

Choose a tag to compare

Fixes for Obsidian Plugin Review

This release addresses issues identified during plugin submission review:

  • Add @eslint/js to devDependencies
  • Add await expressions to onOpen/onClose lifecycle methods
  • Remove "settings" word from settings tab headings
  • Remove plugin name from settings headings
  • Remove deprecated ConditionalGroupConfig interface

No functional changes - code quality and guidelines compliance only.

1.4.2

04 Nov 11:36
0cd0b49

Choose a tag to compare

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 any types with unknown or proper types throughout codebase
  • Promise handling: Added proper void operators and error handling for all floating promises
  • Console logging: Changed console.log to console.debug per 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.style manipulation with proper CSS methods
  • Better theming compatibility and maintainability

📦 Installation

From Community Plugins (pending approval)

  1. Open Settings → Community plugins
  2. Browse and search for "DashReader"
  3. Install and enable

Manual Installation

  1. Download main.js, manifest.json, styles.css from this release
  2. Create folder .obsidian/plugins/dashreader/ in your vault
  3. Copy the downloaded files to this folder
  4. Reload Obsidian
  5. 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 any types (@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

28 Oct 08:46
4529d0e

Choose a tag to compare

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

27 Oct 13:03

Choose a tag to compare

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

27 Oct 11:13

Choose a tag to compare

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.