Changelog - bjsi/incremental-everything GitHub Wiki
Changelog
This page documents the major changes and improvements for each version of the Incremental Everything (Plus) plugin.
Let me search for more specific information about the swipe gesture feature:I don't see the swipe/slide gesture feature in the current codebase search results. This appears to be a new feature that was described by the developer but may not be fully implemented in the project knowledge yet. Based on the developer's description, here's the changelog entry:
v0.2.39 - December 9th, 2025
- Added a plugin setting “Show regular Rems in isolated view (Queue)” so Extracts Incremental Rems can use the isolated card layout and still toggle to context (ExtractViewer) if desired, using the button (and switch back and forth).
- Fixed Priority Shield for Cards not showing relative priorities
v0.2.37 - December 7th, 2025
✨ New Feature: Quick Reschedule Gesture on "Next" Button
Swipe-to-Reschedule for Incremental Rems
A new gesture has been added to the "Next" button for faster scheduling when reviewing Incremental Rems:
How to use:
- Normal click → Schedules the next repetition using the standard SRS multiplier (same as before)
- Click and slide UP → Schedules for tomorrow
- Click and slide DOWN → Schedules for today (later in the same day)
When to use: This is particularly useful for content you're actively working through, like reading a book chapter by chapter. Instead of the SRS algorithm potentially scheduling your next reading session days or weeks away, you can quickly force the content to reappear today or tomorrow — keeping your momentum without opening the Reschedule popup.
✨ New Feature: "Create Incremental Rem" from PDF Highlights
New "Create Incremental Rem" Button in PDF Highlight Menu
A new option has been added to the PDF highlight popup menu that streamlines the process of turning extracts into standalone incremental reading items.
How it works:
- When you select text in a PDF and create a highlight, click on it to open the highlight menu
- Click "Create Incremental Rem" (identified by the second puzzle icon)
- A Parent Selector popup appears, showing all Rems associated with this PDF (sorted with Incremental Rems first, ordered by priority)
- Select the parent where you want to place your new Rem
- The plugin creates a new Incremental Rem under your chosen parent, containing the highlight text plus a pinned reference back to the original highlight
What happens automatically:
- The new Rem inherits the Incremental tag and gets scheduled for review
- The original highlight is "consumed" — its Incremental tag is removed (if existing) and its color resets to yellow
- The new Rem maintains a link to the source highlight for easy navigation back to the PDF context
When to use:
This is ideal for workflows where you want to:
- Extract key ideas from PDFs into your main note structure rather than leaving them as orphan highlights (it will be much easier to process this extract, cloze keywords, create flashcards, etc)
- Organize extracts under topic-specific Incremental Rems (e.g., placing all extracts about "Navigation Systems" under a dedicated parent)
- Build a hierarchical structure where child extracts inherit context and priority from their parent
Difference from "Toggle Incremental Rem":
- Toggle Incremental Rem: Marks the highlight itself as an Incremental Rem (stays in place inside the PDF structure)
- Create Incremental Rem: Creates a new Rem with the highlight content under a parent of your choice, with a reference back to the source
v0.2.33 - November 26, 2025
✨ New Features
Isolated Card Viewer for PDF Highlights
- Added isolated card view for highlights and rems in queue, providing a focused review experience
- Create Rem button allows creating new rems directly from the viewer
- Create Inc Rem button with option to remove incremental status from original
- Parent Selection for PDF Highlights
- New parent selection feature when creating rems from PDF highlights
- Shows all PDF rems that has the specific PDF as source, including Done/untagged ones
- Type badge and hover feedback for better visual distinction
Priority Dialog Redesign
- Visual priority slider with unified badges
- Keeps the direct input field for typing priority values
- Relative priority for slider color feedback
- Improved UI and badge design
- What is displays:
- (1) [Absolute] Priority input field (selected when the dialog opens, so that you can just type the priority and press Enter to save)
- (2) Priority Badge: the number shows the absolute priority; the color code provides visual indication of the relative priority (shown in 4)
- (3) You can slide this button to select the priority. Pay attention that the position on the slider indicates absolute priority, but the color of the button indicates the relative priority (shown in 4)
- (4) Relative priority of the IncRem (or flashcard), in the scope shown on 6, as well as the number of items that form this scope
- (5) The priority of the closest ancestor, for reference. Shows the name of the closest ancestor, its relationship with the current rem (e.g. parent, grandparent), and if it is an IncRem or a flashcard.
- (6) The scope to be used for the calculation of the Relative Priority. May be "All KB" or a Document. If you select the Document tab, it will display a document scope. You can then use the arrows to go up and down on the hierarchy, and see how the current rem is proportionally positioned in relation to each of these scopes.
Incremental Rem List Improvements
- Redesigned with compact layout, sorting, and aligned columns
- Type badges with descriptive tooltips
- Time spent tracking displayed in Inc Rem list
- Redesigned "View All" with compact professional layout
PDF Control Panel Enhancements
- Time spent tracking per session and total time spent in a PDF
- Review history and data persists even after rem is marked Done
🐛 Bug Fixes
- Fixed: PDF extracts now properly counted in document scope
- Fixed: Queue advances correctly when incremental powerup is removed
- Fixed: Review history no longer recorded twice with incorrect page
- Fixed: CSS properly imported in inc_rem widgets in an attempt to improve mobile styling
- Fixed: Show highlight name instead of PDF name in View In Context metadata
- Fixed: Context-independent function used for parent selector PDF search
⚙️ UI/UX Improvements
- Clickable breadcrumbs in PDF Reader for easy navigation
- Modernized queue buttons with dark mode support
- Green left border for IncRem indicator (changed from blue to avoid confusion with portals)
- Now uses RemNote CSS variables throughout for consistent theming:
- Answer buttons
- PDF control panel
- IsolatedCardViewer
🔧 Refactoring
- Extracted reusable components: Breadcrumb, StatBadge, IncRemTable
- Consolidated editing state in page-range widget
- Extracted shared incRem helper functions and formatCountdown utility
- Improved page-range.tsx with component extraction and cleanup
- Uses tracker for incremental rems with fixed priority badge colors
v0.2.32 - November 25, 2025
🚀 New Features & Improvements
- PDF Time Tracking: The PDF Control Panel now displays the time spent in each session and the total review time for the document.
- Persistent Reading Stats: Reading statistics and history are now visible for all Rems associated with a PDF, even after they have been marked as "Done" (untagged).
🐛 Bug Fixes
- Fixed History Duplication: Resolved an issue where history entries were duplicated on every page turn. History is now saved correctly only when leaving the card.
- Queue Stability Fix: Fixed a bug where removing the
Incrementalpowerup from the current item would break the queue. The queue now detects this change and automatically advances to the next item.
v0.2.30 - November 22, 2025
Improvements
- Added a blue left border to Incremental Rems, to make it easier to spot your "extracts" among other rems (if you prefer, you can disable this in your settings).
v0.2.29 - November 18, 2025
🐛 Bug Fixes & Improvements
(thanks to @randygrok )
- Fixed PDF highlights and extracts not being counted in incremental rem scopes.
v0.2.28 - November 17, 2025
✨ Main view for incremental rems with filtering and sorting
(thanks to @randygrok )
- New comprehensive main view widget for managing incremental rems
- Advanced filtering by status (all/due/scheduled), priority range, and text search
- Sorting by priority, due date, or review count with ascending/descending toggle
- "View All" button added to counter widget with keyboard shortcut (Opt+Shift+I)
- Auto-close popup when clicking on a rem item
v0.2.27 - November 15, 2025
✨ PDF Control Panel improvements
(thanks to @randygrok )
- Modernized PDF Control Panel UI
- Added menu item in PDF viewer (Document Menu) for direct access to control panel (3-dot icon at the top-right of Documents)
- Replaced hardcoded colors with RemNote CSS variables for theme consistency
v0.2.26 - November 15, 2025
✨ New Widgets (thanks to @randygrok )
- Added a document-scoped counter widget that displays due/total incremental rems for the current document
- Added a clickable popup that shows a detailed list of all incremental rems with their status, priority, and review history
v0.2.24 - November 14, 2025
🐛 Bug Fixes & Improvements
- Optimized priority widget loading and ensure proper IncRem initialization (thanks to @randygrok )
v0.2.23 - November 13, 2025
- Reorganized code structure with better module boundaries (thanks to @randygrok )
v0.2.22 - November 10, 2025
- Improved Closest Ancestor info in the Priority widget (corrected logic and improved styling).
v0.2.21 - November 10, 2025
- Major code refactor (thanks to @randygrok )
v0.2.20 - November 8, 2025
🐛 Bug Fix
- Fixed race condition preventing IncRems from displaying in queues empty of flashcards. (Thanks to @randygrok )
v0.2.19 - November 8, 2025
Improvement: Visual feedback for Incremental PDF Highlights
- Toggle PDF highlights incremental now turn the highlights blue (or other user-configured setting) when tagged and yellow when untagged.
- Obs: you would have to adopt this convention (blue highlights [or your configured color] are incremental; yellow highlights are non incremental).
Available Colors
Users can choose from 5 highlight colors:
- 🔴 Red
- 🟠 Orange
- 🟢 Green
- 🔵 Blue (default)
- 🟣 Purple
Behavior
- Toggling ON (Adding Incremental tag): Uses the color selected in settings
- Toggling OFF (Removing Incremental tag): Always resets to Yellow
- Default: If no setting is configured, defaults to Blue
v0.2.17 - November 7, 2025
New Feature (Execute IncRem Repetition): Review Incremental Rems Directly in the Editor
You can now review Incremental Rems without entering the queue! Use the new command "Execute Incremental Rem Repetition (Review in Editor)" (Ctrl+Shift+J) to register the processing of IncRems while working in the Editor.
Key Features:
Manual Review Mode:
- Focus on any IncRem and trigger the command
- Enter how long you spent reviewing (in minutes)
- Adjust the next review interval (the initially suggested one is that you would get if reviewing in the queue) and priority
- Click "Confirm" to save your review
Timer Mode:
- Click "Start Timer" to track your review time automatically
- A timer appears above your document while you work
- Click "End Review" when finished to save everything with precise timing
Use Cases:
- Deep work sessions: Review a complex document in the editor with full editing capabilities, then log your review time when done
- Flexible scheduling: Manually set longer or shorter intervals based on how well you understood the content
- Batch processing: Quickly review multiple IncRems during a focused editor session without switching to queue mode
- Interruption recovery: If you exit the queue mid-session, you can still record reviews for IncRems you studied
All reviews are tracked with the same rich history data as queue reviews, including timing, interval, and scheduling metrics for your learning analytics.
🐛 Bug Fix #1: Priority Editor Widget Not Rendering for Inheritance-Only Rems
- Files: index.tsx (2 functions)
- Fix: Cache now includes Rems with cardPriority tag even without flashcards
- Impact: Inheritance priorities now work correctly
🐛 Bug Fix #2: Priority Value 0 Treated as Missing
- Files: cardPriority.ts, priority_editor.tsx, batch_card_priority.tsx
- Fix: Replaced || with ?? operator and proper NaN checks
- Impact: Priority 0 (highest priority) now works throughout the plugin
v0.2.16 - November 4, 2025
🐛 Bug Fixes & Improvements
Solved card_priority_display widget Light Mode detection bug that prevented it from being shown on web browser and Android.
v0.2.14 - November 4, 2025
Performance Optimization: Pre-compute Card Priorities
Improved efficiency of the Pre-compute Card Priorities command:
- Skip unnecessary updates: Now only retags and updates
lastUpdatedtimestamp when a card's priority value or source actually changes - Avoid redundant syncing: Rems with unchanged priorities are skipped entirely, reducing RemNote sync and wiring operations and improving performance
- Accurate reporting: Fixed logic that was incorrectly detecting the presence of cardPriority tags, eliminating false "newly tagged" reports on subsequent runs
Result: Now you can run pre-computation frequently to ensure the few priorities you have manually set in between will be inherited by many other cards, significantly improving the flashcard prioritization based on a few manual inputs that can be inherited by many other flashcards.
v0.2.13 - November 3rd, 2025
Web Browser Light Mode Detection
No need to fear the Full Mode anymore! This implementation adds automatic Light Mode detection for web browsers, similar to the existing mobile detection feature. When users access RemNote through a web browser, the plugin will automatically use Light Mode for better performance and stability.
v0.2.12 - November 3rd, 2025
Mobile Detection Fix - Session Storage Migration
Problem When using RemNote on both mobile and desktop simultaneously, the mobile detection was syncing across devices via synced storage, causing the desktop app to incorrectly switch to Light Mode.
Root Cause
The isMobileDeviceKey was stored in synced storage (plugin.storage.getSynced()), which synchronizes data across all devices connected to the same RemNote account.
Solution
Change isMobileDeviceKey from synced storage to session storage (plugin.storage.getSession()), which is device-specific and doesn't sync. (File: mobileUtils.ts)
Why This Works
Session Storage
- Device-specific: Each device maintains its own value
- No sync: Data stays on the current device only
- Perfect for device detection: Mobile stays mobile, desktop stays desktop
Synced Storage (kept for lastDetectedOSKey)
- Cross-device: Values sync across all devices
- Good for: User preferences, history tracking
- Not good for: Device-specific hardware characteristics
Impact
✅ Mobile device: Will correctly detect as mobile and use Light Mode (if enabled)
✅ Desktop device: Will correctly detect as desktop and use Full Mode (if selected)
✅ Concurrent usage: Both can run simultaneously without interfering with each other
Note on lastDetectedOSKey
The lastDetectedOSKey intentionally remains in synced storage because:
- It tracks OS history across devices for comparison
- Used for the "switched from mobile to desktop" detection message
- Doesn't affect the actual mode determination, only informational toasts
v0.2.11 - November 3rd, 2025
Summary of 🐛 Bug Fixes & Improvements
- PDF Viewer and Extract Viewer: metadata section statistics now do not block the UI. For long documents, the viewer will show the PDF/Document immediately, and when the stats calculation is finished, the Metadata section updates to show the statistics.
- Card Priority Display Widget in the queue is now clickable. In the mobile, tap over it to change card priority.
- "Done (untag)" button intelligently handle card priority inheritance when removing the Incremental tag from a Rem.
"Done (untag)" button smart Card Priority Inheritance Implementation
Overview
Enhanced the "Done (untag)" button in the Incremental Everything Plugin to intelligently handle card priority inheritance when removing the Incremental tag from a Rem.
Problem Solved
When removing the Incremental tag from a Rem, descendant flashcards could lose their priority reference for inheritance. This implementation ensures that if the Rem or any of its descendants have flashcards, the Rem is automatically tagged with cardPriority to maintain the inheritance chain.
Implementation Details
Key Features:
- Smart Detection: Only adds cardPriority tag when actually needed (Rem or descendants up to the 3rd level have flashcards)
- Early Termination: Stops searching as soon as any flashcard is found for optimal performance
- Batch Processing: Processes descendants in batches of 50 for better performance
- Reasonable Limits: Checks up to 500 descendants to avoid performance issues with very large hierarchies
- Error Handling: Fails gracefully without interrupting the Done action if errors occur
Function: handleCardPriorityInheritance
This function:
- First checks if the Rem already has a cardPriority set (avoids redundant work)
- Checks if the Rem itself has flashcards (immediate return if found)
- Processes descendants in batches with early termination
- Sets cardPriority with source='manual' using the IncRem's priority value
Performance impact:
- Synchronous execution: Despite the effort to reduce impact of performance, the new function can block the UI for a few seconds after pressing the Done button, while the check for flashcards in the descendants takes place.
Benefits:
- Minimal UI clutter: Only adds cardPriority tags when necessary
- Inheritance Preservation: Ensures flashcard priorities are maintained
- Backward Compatible: Works with existing priority system
Console Logging: The implementation includes console logging for debugging:
[Done Button] Set card priority X for Rem with direct flashcards- when Rem has its own cards[Done Button] Set card priority X for Rem with descendant flashcards- when descendants have cards[Done Button] No flashcards found in Rem or descendants, skipping card priority- when no cards found[Done Button] Error in handleCardPriorityInheritance:- if any error occurs
Files Modified:
answer_buttons.tsx: Added the smart card priority inheritance logic to the Done buttonpdfUtils.ts: Now getDescendantsToDepth function is exported.
v0.2.10 - November 1st, 2025
New Feature: Reschedule Command
Added keyboard shortcut Ctrl+J (Windows and macOS) to quickly reschedule Incremental Rems. Works both in the queue (same as pressing the Reschedule button) and in the editor when focused on an Incremental Rem.
Note: This command only works with Incremental Rems, not regular flashcards.
v0.2.9 - November 1st, 2025 - New Feature: Mobile Light Mode Auto-Switch 📱⚡
What's New
Added a new setting "Always use Light Mode on Mobile" that automatically optimizes performance when using RemNote on mobile devices (iOS/Android).
Why This Matters
The Full performance mode can be resource-intensive and potentially cause crashes on mobile devices. This new feature automatically switches to Light Mode when you open RemNote on your phone or tablet, ensuring a stable and smooth experience.
How It Works
- Automatic Detection: The plugin detects your device's operating system on startup
- Smart Switching: When on mobile (iOS/Android), the plugin automatically uses Light Mode regardless of your performance mode setting
- Desktop Freedom: On desktop (macOS/Windows/Linux), your chosen performance mode setting is always respected
- Toast Notifications: You'll see a friendly notification showing what was detected and which mode is active
Settings
Location: Plugin Settings → "Always use Light Mode on Mobile"
- Default: Enabled (recommended)
- When Enabled: Light Mode is automatically used on mobile devices for stability
- When Disabled: Your performance mode setting applies on all devices (use with caution on mobile)
Benefits
✅ Prevents mobile crashes - No more app freezes or force closes on phones/tablets
✅ Seamless experience - Works automatically without manual intervention
✅ Device-aware - Remembers which device you're on
✅ User control - Can be disabled if you want to use Full Mode on mobile (not recommended)
Toast Examples
When you open the plugin, you'll see messages like:
- 📱
"iOS detected: using Light Mode (Full Mode disabled on mobile for stability)" - 💻
"macOS detected: running in Full Mode" - ⚠️
"Android detected: Full Mode can crash mobile. Consider enabling 'Always use Light Mode on mobile' in settings"
Technical Details
The plugin now tracks your device type and automatically adjusts which features run:
- Light Mode: Essential features only, fast and stable
- Full Mode Override: When on mobile with auto-switch enabled, intensive features like priority shields and relative percentiles are disabled for performance
This ensures RemNote remains responsive and stable on all devices! 🎉
v0.2.8 - October 31, 2025
🐛 Bug Fixes & Improvements
- In reader metadata page control section, added self-check for IncRem (now PDF directly tagged Incremental will also show page controls)
- Reader breadcrumb and metadata sections now adapt to dark and light modes.
v0.2.5 - October 30, 2025
- Light Mode in now default performance mode. It keeps manual priority tools for flashcards, while all the automatic, performance-intensive background work (including pre-tagging flashcards) are reserved for the "Full Mode".
- Light Mode enhancements: Event Listeners AppEvents.QueueCompleteCard and AppEvents.GlobalRemChanged are now conditional, to ensure that no automatic caching or priority assignment happens in "Light Mode".
v0.2.4 - October 29, 2025 - Priority Shield Enhancement - Universe Size Tracking
🎯 Overview
Enhanced the Priority Shield system to display the total universe size (count of items) being tracked, providing crucial context for understanding priority changes over time.
📊 What's New
Priority Shield Graph Improvements
- Added Universe Size Tracking: A third metric line (dashed) now displays the total count of IncRems/Cards in each scope
- Triple Y-Axis Display:
- Left axis: Absolute Priority (0-100)
- Right axis: Relative Priority Percentile (0-100%)
- Far-right axis: Universe Size (with smart formatting: "1.5k" for 1500+ items)
- Enhanced Tooltips: Custom tooltips now clearly show all three values when hovering over data points
Data Tracking Enhancements
- Universe Size History: Now stores the total count of items alongside priority shield values
- Comprehensive Scope Tracking:
- Knowledge Base level: Total IncRems and Cards across entire KB
- Document level: Total items within document/folder scopes reviewed in a given day
- Priority Review Documents: Correctly tracks original document scope, not the review document itself
💡 Why This Matters
Better Context for Priority Changes
Users can now distinguish:
- Genuine Progress: Priority shield improving due to processing high-priority items
- Progress hidden by the Universe Shrinkage of IncRems: Percentiles remain low due to processed IncRems (and therefore untagged) being removed from the IncRem queue
- Queue Growth: Understanding how new content affects relative priorities
Workflow Insights
The universe size line reveals:
- Processing Efficiency of IncRems: Decreasing universe = successful completion and untagging of IncRems
- Content Inflow Rate: Increasing universe = new material being added
- Optimal Queue Size: Helps users find their sustainable learning capacity
🔧 Technical Changes
Modified Files
-
priority_shield_graph.tsx- Added universe size as third line in all charts
- Implemented three Y-axes layout
- Added smart number formatting for large values
- Fixed container scrolling issues
-
priority_shield.ts- Extended
PriorityShieldStatusandCardPriorityShieldStatusinterfaces - Added
universeSizefield tracking - Returns universe size even when no items are due
- Extended
-
index.tsx- Updated QueueExit event handler to save universe sizes:
- KB IncRem:
allRems.length - Doc IncRem:
scopedRems.length - KB Card:
allCardInfos.length - Doc Card:
docCardInfos.length
- KB IncRem:
- Updated QueueExit event handler to save universe sizes:
📈 Visual Examples
The graph now shows three synchronized metrics:
- Solid lines: Absolute and Relative Priority (existing metrics)
- Dashed line: Universe Size (new metric)
Example insights from the new visualization:
- "Priority dropped from 10% to 5%, but universe size halved" → Good progress, not regression
- "Priority stable at 4%, universe growing" → Need to increase review volume or reduce inflow
- "Universe size stable, priority improving" → Workflow is optimally balanced
🎓 User Guidance
New description added to help users understand:
- Universe Size Changes: How item removal/addition affects percentiles
- Priority Shield Interpretation: Context-aware understanding of shield values
- Workflow Optimization: Using universe size trends to adjust learning strategies
⚙️ Backward Compatibility
- Fully backward compatible with existing data
- Old history entries without universe size display as 0 or handle gracefully
- No migration required
This enhancement provides users with a complete picture of their learning queue dynamics, enabling more informed decisions about content management and review strategies in the Incremental Reading workflow.
Other Improvements
- Priority widget in Editor can now be set to show for both IncRem and Cards, only for IncRem or be disabled.
v0.2.3 - October 29, 2025 - Card Priority System Enhancements
This update introduces powerful new tools for managing card priorities in bulk and provides clearer visual feedback in the editor.
✨ New Widget: Batch Card Priority Assignment by Tag
- You can now assign
CardPriorityto hundreds of rems at once, based on a tag. - Use Case: If you used to use tags to prioritize your cards (before Incremental Everything prioritization system), like
#important!,#P1,#P2,#P3, you can convert your old and more primitive system to the new one in bulk. - Access by focusing a tag rem and using the command
Batch Assign Card Priority for tagged rems(or via the Document Menu). - Features:
- Assign random priorities within a specific range (e.g., 20-40).
- Intelligently handles IncRems, allowing you to use their existing IncRem priority as their Card Priority.
- Safely updates rems with existing
manualpriorities by requiring explicit "Overwrite" confirmation.
🎨 Improvements
- Priority Editor Widget: Manual Priority Feedback
- The
priority_editor(the small widget in the right-hand editor margin) now provides immediate visual feedback. - The priority number for Cards will appear bold if its source is
"manual", making it easy to distinguish manually-set priorities from inherited or default ones.
- The
v0.2.2 - October 28, 2025
🐛 Bug Fixes & Improvements
- Added a plugin setting to hide cardPriority tags in the editor to reduce clutter, as the priority_editor widget already gives visual feedback.
- Corrected IncRem counter CSS injection and adapted it to the Light mode.
v0.2.1 - October 28, 2025
🐛 Bug Fixes & Improvements
- Now the Priority Review Document creator popup widget is visible properly when in dark mode.
v0.2.0 - October 28, 2025
🎯 Major Feature: Flashcard Priority System
Implemented a comprehensive priority management system for flashcards, bringing the same level of control to spaced repetition that already exists for Incremental Reading.
Core Capabilities
- Manual Priority Assignment: Set priorities (0-100) on any flashcard Rem through an integrated priority widget
- Automatic Inheritance: Child flashcards inherit priorities from parent Rems (both from IncRem priorities and flashcard priorities)
- Priority Sources: Three priority types tracked:
- Manual: Explicitly set by user
- Inherited: Automatically inherited from ancestors
- Default: Unset (priority 50)
- Dual Priority Management: Rems can have both IncRem priority and flashcard priority independently, with smart conflict resolution UI
- Relative Priority Percentiles: View each flashcard's ranking within its scope (document or full KB)
- Priority Shield for Flashcards: Track your capacity to keep up with high-priority flashcard reviews
- Comprehensive Caching: High-performance system pre-calculates all flashcard priorities and due counts at queue start
Priority Widget Enhancements
The priority widget now handles both Incremental Rems and flashcards:
- Unified Interface: Single widget manages both IncRem and flashcard priorities
- Smart Sections: Shows relevant sections based on content type:
- IncRem section for Incremental Rems
- Flashcard section for Rems with cards
- Inheritance section for setting priorities on parent Rems
- Context-Aware Scope:
- Calculate relative priorities against document scope or entire KB
- Automatic scope detection when in Priority Review Documents (uses original document scope)
- Fast cache utilization when in queue sessions
- Conflict Resolution: When IncRem and flashcard priorities differ, offers clear options:
- Save both as-is
- Sync flashcard priority to IncRem priority
- Sync IncRem priority to flashcard priority
- Inheritance Visualization: Shows closest ancestor with priority and its source type
- Universe Statistics: Display total items in scope and breakdown by priority source
Priority Shield for Flashcards
Track your progress on high-priority flashcard reviews:
- KB-Level Shield: Shows highest missed priority across all flashcards
- Document-Level Shield: Shows highest missed priority within document scope
- Historical Tracking: Graph displays both absolute priority and percentile over time
- Dual Graphs: Separate visualizations for IncRem shields and flashcard shields
- Session Awareness: Updates automatically as you review items
Technical Implementation
- Global Cache System:
allCardPriorityInfoKeystores all flashcard priorities in session - Queue Session Cache: Pre-calculated percentiles for ultra-fast lookups during review
- Incremental Updates: Light cache updates during review, bulk refresh on queue exit
- Priority Inheritance Algorithm: Traverses ancestor tree to find closest priority source
- Flashcards start with inherited priorities from their ancestors, or default priority (the one specified in your plugin settings, default: 50), until manually set
- Users shall use the "Pre-compute Card Priorities" command regularly to update the automatically added card priorities (by inheritance, of default if there is no ancestor to inherit priority from)
- Comprehensive Scope Integration: Flashcard priorities respect the same scope calculation as IncRems
Access Points
- Keyboard Shortcut:
Alt+Pto open priority widget on any Rem - Queue Widget: Opens automatically when clicking priority indicators in queue
- Command Palette: "Set Priority" command
Performance Considerations
⚠️ Important: This feature adds significant computational overhead:
- Initial cache building: may take more than 2 min on plugin load (depending on KB size) [in the Desktop App, for a KB with 41k rems with cards, it took 2 min 15 sec]
- Queue entry calculations: May be up to 25 seconds for large documents
- Memory usage: Maintains cache of all flashcard Rems with priorities
Recommended: Use Desktop App for best performance. Browser version may experience lag, especially on large knowledge bases (>10,000 flashcards).
🎯 New Feature: Priority Review Document
Create custom review sessions that combine flashcards and Incremental Reading items based on their priorities, ensuring you review the most important content first.
Key Capabilities
- Create Mixed Review Documents: Generate documents containing both flashcards and Incremental Rems (IncRems) sorted by priority
- Flexible Scope Selection: Review from a specific document/folder or your entire knowledge base
- Customizable Content Mix: Control the ratio of flashcards to IncRems (e.g., 6 flashcards per IncRem, only flashcards, or only IncRems)
- Priority-Based Selection: Items are selected using the same sorting criteria and randomness settings as your regular queue
- Rem Reference-Based Review: All items appear as rem references in the review document
- Tagged for Easy Management: Documents are tagged with "Priority Review Queue" for easy finding and bulk management
Use Cases
- Overwhelmed Queues: When you have thousands of due items, create a manageable review session of your top 50-100 priority items
- Focused Study Sessions: Review high-priority content from a specific course or project without distractions
- Priority Triage: Ensure critical information gets reviewed even when you can't complete your entire queue (the norm in Incremental Reading workflows)
- Document-Specific Practice: Review due items from a particular document while respecting their priorities
- Mixed Learning Sessions: Alternate between passive reading (IncRems) and active recall (flashcards) in a single session
Access Points
- Keyboard Shortcut:
Opt+Shift+R(Mac) /Alt+Shift+R(Windows/Linux) to create from current document - Document Menu: use the 3-dots menu at the top right of any document to create a review from its scope
- Queue Menu: Create while in queue to use current queue scope (using the 3-dots menu)
- Command Palette: "Create Priority Review Document" command
Priority Review Document Workflow
- Navigate to a document or focus on a rem
- Create a Priority Review Document (via shortcut or menu)
- Configure:
- Scope: Current document, parent folder, or full KB
- Item Count: Number of items to include (e.g., 50, 100)
- Card Ratio and Sorting Criteria: Mix of flashcards to IncRems (e.g., 6:1, cards only, IncRems only) and priority randomness are inherited from your queue randomness settings
- Review the generated document as a regular RemNote document queue
- Priority Widget and Priority Shields reflect the original document scope, not the review document
- Delete the review document after completion (or keep for later)
- Priority history and statistics are preserved under the original scope
🔧 Technical Implementation
Smart Scope Detection
Priority Review Documents maintain awareness of their original source:
- Rem Reference in Title: Document titles contain actual rem references to their source scope
- Dual Scope System:
- Item selection uses Priority Review Document contents
- Priority calculations use original document scope
- Session Storage:
originalScopeIdtracks the source document throughout the session
Accurate Priority Calculations
When reviewing through a Priority Review Document:
- Priority Widget: Displays relative priorities against original document, not the filtered review document
- Priority Shields: Calculate highest missed priorities from original scope
- Scope Indicator: Visual indicator in the Priority popup shows "Scope: [Original Document] (Original Document)"
- History Tracking: All priority shield history saved under original document ID
Comprehensive Scope Calculation
Reviews include all relevant content from the source:
- Document descendants
- Portal contents
- Table Views
- Referenced rems (backlinks to scope rem)
- Sources (of scope rem)
- Folder queue items
This ensures Priority Review Documents capture the full semantic context of the source material.
Performance Optimizations
- Pre-calculated Cache: Queue entry builds session cache with percentiles for instant lookups
- Fast Path: Subsequent priority widget opens use cached data
- Fallback Path: Comprehensive scope recalculated only when cache unavailable
Why This Matters
Priority Review Documents solve the fundamental challenge of Incremental Reading: information overflow. When you have thousands of due items, you need a way to guarantee that your most important material gets reviewed first. This feature makes that guarantee tangible by creating focused, priority-based review sessions that respect both your time constraints and learning priorities.
🎯 Comprehensive Scope System
Overview
Implemented a comprehensive scope calculation system that significantly expands what content is included when studying a document queue or generating a Priority Review Document. The plugin now captures all semantically related content, not just hierarchical descendants.
What's Included in Document Scope
When you study a document, the queue now includes (IncRems only for regular RemNote queue; IncRems + Flashcards for Priority Review Documents):
- Hierarchical Descendants - All child rems (as before)
- Document/Portal Context - Rems appearing in portals, tables, and search portals within the document
- Folder Queue Rems - Content from RemNote's native folder queue system
- Sources - Source documents (e.g., PDFs) attached to the scope document
- Backlinks - Rems that reference this document (with smart filtering to exclude property values)
What Changed
Updated Components:
- QueueEnter Event Handler - Builds comprehensive scope cache at queue start for ultra-fast lookups
- Priority Widget - Uses comprehensive scope for accurate relative priority calculations
- Card Priority Shield and IncRem Priority Shield - Display shield values based on comprehensive scope
- Priority Review Document Generator - Creates review documents with comprehensive scope
Performance Optimization:
- Scope is calculated once at queue start and cached in session storage
- All subsequent lookups use the pre-calculated cache for instant performance
- Cache includes pre-calculated percentiles for both Incremental Rems and Flashcards
Why This Matters
Before: Studying a literature note would only show IncRems (+ flashcards in Priority Review Documents) from that note's children.
After: Studying a literature note now includes IncRems (+ flashcards in Priority Review Documents):
- From the note itself and its children
- From source papers referenced in the note
- From notes that reference this literature note
- Appearing in any portals/tables within the note
- From the document's folder queue
This creates a much more contextually complete study session, especially useful for:
- 📚 Literature review documents with many source citations
- 🗂️ Index documents that aggregate content via portals
- 🔗 Hub notes with extensive backlinks
- 📊 Documents using tables and search portals to organize content
Technical Implementation
The comprehensive scope uses RemNote SDK methods:
scopeRem.getDescendants()- Hierarchical childrenscopeRem.allRemInDocumentOrPortal()- Portal/table contextscopeRem.allRemInFolderQueue()- Folder queue remsscopeRem.getSources()- Sources (of the scope document only; does not include sources of descendants)scopeRem.remsReferencingThis()- Backlinks (with property filtering; to scope document only; does not include backlinks to descendants)
All sources are deduplicated and stored in currentScopeRemIdsKey session storage for consistent access across the plugin.
User Experience
No configuration needed - the comprehensive scope is automatic! When you:
- Enter a document queue → Scope is calculated and cached
- View priority in queue → Uses fast cached scope
- Check priority shield → Reflects comprehensive scope
- Create Priority Review Document → Includes comprehensive scope
The plugin now provides a more complete and intelligent view of what content is truly related to the document you're studying.
🐛 Bug Fixes & Improvements
- Fixed register powerup error of version 0.1.7
- Priority Widget Scope Management: Fixed scope initialization to correctly handle Priority Review Documents
- Cache Consistency: Improved cache synchronization between queue sessions and widget interactions
- Memory Management: Optimized cache storage to prevent memory leaks during long review sessions
- Visual Feedback: Added loading states and progress indicators for cache building operations
- Error Handling: Enhanced error recovery for malformed priority data and missing rem references
⚠️ Breaking Changes
None. This release is fully backward compatible with existing Incremental Rem priorities and workflows.
📝 Migration Notes
If upgrading from v0.1.x:
- Existing IncRem priorities are preserved
- Flashcards start with inherited priorities from their ancestors, or default priority (the one specified in your plugin settings, default: 50), until manually set
- Cache will build automatically on first plugin load (may take more than 2 min for large KB)
- No action required from users
🔮 Known Limitations
- Performance: Initial cache building can be slow on large knowledge bases (>10,000 flashcards)
- Mobile Support: Not optimized for mobile devices; use Desktop App for best experience
- Browser Performance: May experience lag in browser version with large KBs
- Cache Invalidation: Requires manual plugin reload if priorities changed outside of queue session
v0.1.7 - October 27, 2025
✨ New Feature: 🚀 Introducing Batch Priority Change!
This version introduces a powerful new widget for managing the priorities of multiple incremental Rems at once. This feature is designed to streamline your workflow, especially in large documents with many nested items. Now you can modify all incremental Rems under a specific parent with a single, unified interface. You can use it after a test to batch decrease priority of a document/branch, or when your interest for a given subject increases or decreases.
- Access the widget in multiple ways:
- Via the Command Palette by searching for "Batch Priority Change".
- Using the new keyboard shortcut
Option+Shift+P(opt+shift+p). - From the Document Menu (
...on a Rem) on any Rem to act on it and its descendants.
-
Powerful Priority Operations: Select a group of Rems and apply one of four bulk operations:
- Increase Priority: Makes items more important by multiplying their priority value by a percentage.
- Decrease Priority: Makes items less important.
- Spread Evenly: Distributes priorities linearly across a range you define.
- Adjust Proportionally: Remaps priorities to a new range while maintaining their relative spacing.
-
Advanced Table and Filtering:
- View all incremental Rems within a hierarchy in a single, interactive table.
- See detailed information including current priority, percentile rank, type, next repetition date, and repetition count.
- Filter your view by name, item type (e.g., Extract, PDF, YouTube), or a specific priority range.
- Sort the table by any column to organize your Rems exactly how you need them.
- Includes a "Preview Changes" mode to see the impact of your operations before committing and an "Export to CSV" option for external analysis.
✨ New Feature: No Incremental Rem Mode (especially for mobile)
- 15-minute timer: When activated, incremental rems are disabled for exactly 15 minutes _ Auto-cleanup: The timer automatically clears itself when expired
- Visual feedback: Toast notifications inform the user when the timer is activated/cancelled
- Manual cancel option: Users can cancel the timer early via a command
- Queue refresh: The queue automatically updates when the timer is set or expires
- Mobile-friendly: Allows mobile users to focus on flashcard review without incremental rem editing
This solution effectively creates a temporary "flashcards-only" mode that's designed for mobile users who want to review without dealing with the complexities of incremental reading on a small screen.
⚙️ UI/UX Improvements for Answer Buttons and PDF Reader Metadata
Summary
Redesigned the answer buttons and PDF reader metadata section to improve visual hierarchy and user experience.
Changes Made
Answer Buttons (answer_buttons.tsx)
- Improved visual hierarchy:
- Primary actions (Next, Reschedule, Done) grouped together
- Secondary actions separated by visual dividers
- Color-coded buttons (blue primary, gray secondary, red destructive)
- Enhanced priority display: Combined priority badge and shield info into single compact bar with dynamic color visualization
- Highlight button emphasis: Added golden color scheme and pulse animation to "Scroll to Highlight" button for better visibility when reviewing highlights
PDF Reader Metadata (Reader.tsx)
- Streamlined metadata bar:
- Reduced padding (6px → 4px vertical)
- Removed redundant "Incremental Rem" label
- Prevented line wrapping with
flexWrap: 'nowrap'
- Fixed reading history: Changed to record only one entry per reading session (on component unmount) instead of multiple entries during navigation
- Improved page controls: Fixed input field to properly track page changes in real-time
Visual Improvements
- More compact design saves ~60px of vertical space
- Cleaner, more professional appearance with consistent spacing
- Better accessibility with clear button labels and sublabels
- Responsive design maintains functionality on different screen sizes
Technical Improvements
- Fixed page tracking reliability by removing DOM detection methods
- Optimized reading history to prevent duplicate entries
- Improved component performance with proper React hooks usage
Other minor improvements / bug fixes
- As RemNote SDK
queueInfo.numCardsRemaininginfo wasn't showing to be reliable, we ensured the plugin will not interfere in the queue card counter, except by adding the <+ nr of inc rem> after the remaining number of flashcards. - Reverted a change to the "Done" button that was causing the untagged rem to reappear in the same session.
- Solved strange rendering issues of iOS (iPhone) that were crashing RemNote and making the plugin unusable; in my testes PDF Reader and ExtractViewer now render in iOS, although PDFs will not show the metadata section (will be hidden by the PDFWebViewer). Best possible solution for the moment.
v0.1.6 - September 25, 2025
This update introduces four powerful new features designed to make your workflow faster and more intuitive: PDF Advanced page controls to help you track your progress within longer PDFs, Priority Shield to allow you to grasp your degree of processing of your high priority material, Priority Inheritance for smarter topic management and an "Open Editor in New Tab" button to restore a critical PDF review workflow.
✨ New Feature: PDF Control Panel (Advanced PDF Page Controls)
- You can now set specific start and end page ranges for any Rem that has a PDF source, allowing you to break large documents into smaller, manageable incremental items (e.g., chapters).
- A new "Set Page Range" popup can be opened from the editor or directly from the queue.
- The popup intelligently discovers and lists all other Rems using the same PDF, with visual indicators for those that are also incremental items.
- From the PDF Control Panel you can set the page ranges of all other rems using the same PDF source, as well as their priorities, and even tag one of these rems "incremental".
- Page range settings are saved persistently and remain even if a Rem is untagged as incremental.
- You can also see the Reading History of any of these PDF "Chapters", making a full assessment of your progress in that PDF.
✨ New Feature: Priority Shield & History Graph (= Priority Protection)
Inspired by advanced metrics in SuperMemo, this update introduces the Priority Shield, a powerful diagnostic tool to help you understand and manage your learning process. This feature gives you a clear, numerical value for your "Priority Protection"—your capacity to process high-priority material on any given day.
The core purpose of the Priority Shield is to move beyond guessing and provide you with concrete data to build a sustainable and effective study strategy. By knowing the exact priority of the most important Incremental Rem you have yet to review, you can answer critical questions about your learning habits:
- Am I creating new material faster than I can review it? If you consistently see a low Priority Shield value (e.g., your Relative Priority Shield is only protecting 4% of your top priority Incremental Rems), it's a strong indicator that the inflow of new Incremental Rems is too high, and your most important knowledge is at risk of being forgotten.
- Is my "Sorting Criteria " setting right for me? The Priority Shield gives you direct feedback on your randomness setting. If your shield value is too low, you might want to decrease the randomness to focus more strictly on high-priority material. Conversely, if you feel your reviews are too rigid, you can increase randomness and watch how it affects your shield value over time.
- Am I at risk of burnout? The history graph allows you to see trends. If you notice your Priority Shield value steadily declining over days or weeks, it may be a sign that your workload is becoming unmanageable, allowing you to adjust your strategy before you feel overwhelmed.
This new feature includes:
- Real-Time Status in the Queue: A "Priority Shield" display appears below the answer buttons, giving you an at-a-glance status of your protection for both your entire Knowledge Base and the current document you are studying.
- Historical Graph: A new "Priority Shield History" menu item in the queue opens a popup with a detailed graph, allowing you to track your performance over time with two key metrics: Absolute Priority and Relative Priority (%).
- Customizable Display: The real-time display can be toggled on or off in the plugin's settings to keep your UI as clean as you prefer.
✨ New Feature: Priority Inheritance System
This feature mimics SuperMemo's hierarchical priority system, making the management of complex topics effortless.
The Problem It Solves
When breaking down a large topic (like a key chapter in a textbook) into smaller incremental rems (sections, extracts...), you had to manually set the priority for each new item. This was repetitive and made it easy for child rems to be badly prioritized.
How It Works & When to Use It
Now, when you create a new incremental rem, it automatically inherits the priority of its closest parent or ancestor that is also an incremental rem.
- Use Case 1: Deconstructing a High-Priority Document
Imagine you have a PDF of a crucial research paper with a priority of 10. As you read and create highlights (extracts) from it, each new highlight will automatically be assigned a priority of 10. This ensures that all the core concepts from that paper are reviewed together and with the urgency they deserve, without any manual adjustments.
- Use Case 2: Hierarchical Note-Taking
If you have a parent rem for a broad topic like "Quantum Mechanics" with a set priority, any new child rems you create under it (e.g., "Wave-Particle Duality," "Superposition") will inherit that priority. This keeps your knowledge hierarchy organized and ensures that foundational topics and their sub-topics are treated with the same level of importance in your reviews.
The "Set Priority" and "Reschedule" popups have also been updated to display the ancestor's priority, giving you immediate context when you decide to manually override the inherited value.
✨ New Feature: "Open Editor in New Tab " Button for PDFs
This button is a direct response to a recent RemNote UI change and serves as an essential workaround to restore a seamless PDF review workflow.
The Problem It Solves
RemNote recently removed the ability to open an editor pane on the left side of the screen when reviewing a PDF highlight in the queue (PDFWebViewer). This made it impossible to take notes and paste extracts without exiting the queue entirely, breaking the review flow (not always the Previewer - pressing "P" - is sufficient to this flow, nor does it allow having the PDF and editor side by side).
How It Works & When to Use It
This new button appears in the answer bar exclusively for PDF and PDF highlight rems. Clicking it instantly opens the full source document in a new browser tab, right at the location of your highlight/PDF document.
- Use Case: In-Depth Note-Taking During Review A highlight sparks a complex new idea that requires more space than a simple comment. Or you want to take notes of what you are reading in a PDF section, and paste highlighted extracts right there (tagging it "incremental" in the editor note rather than in the PDF highlight itself, for easier manipulation and future flashcard creation). Use the button to open the full editor, where you have access to all of RemNote's formatting tools, can link to other ideas, and can write extensive notes alongside the original PDF. This allows you to capture detailed thoughts without being constrained by the queue's limited interface.
⚙️ New Setting: Preferred RemNote Environment
For users who primarily work on the beta version of RemNote, a new "Preferred RemNote Environment" setting has been added. This dropdown menu in the plugin settings allows you to choose whether the "Open Editor in New Tab" button directs you to the stable (www.remnote.com) or beta (beta.remnote.com) environment. This ensures a seamless workflow by keeping you in your preferred version of RemNote.
⚙️ UI/UX Improvements
Enhanced Queue Viewer UI
- Breadcrumbs: Both the PDF Reader and the Extract Viewer now feature a breadcrumb navigator at the top to show the document's position in your knowledge base.
- Metadata Footers: A rich metadata footer has been added to the viewers, displaying useful statistics like direct children, descendant, flashcard, and highlight counts.
- PDF Page registry: The PDF Reader now includes a footer bar where you can manually track your current page number (easier to find where you were in the next review). -- Automatic Page Saving: The reader automatically saves your last-viewed page for each incremental PDF item and returns to it on your next review.
v0.1.5 - September 5, 2025
- Improved the visibility of buttons for mobile.
v0.1.4 (Plus Version release) - September 3, 2025
This initial version is a fork of the original Incremental Everything plugin, focused on enhancing the user interface, adding powerful new features for prioritization, and fixing core layout and compatibility issues.
✨ New Features & Major Enhancements
-
Interactive Priority Popup: The "Set Priority" popup has been completely redesigned for a more intuitive workflow. It now features a new "Relative Priority" slider with a full-color gradient, allowing you to set a Rem's priority by either typing an absolute value or visually selecting its desired percentile rank.
-
At-a-Glance Priority Assessment: The "Change Priority" button is now enhanced with a color-coded indicator (red for high priority, blue for low) and a label showing the Rem's relative rank within your entire Knowledge Base (
% of KB) and the current document (% of Doc). -
Reschedule Button: A new button has been added to the answer bar that opens a popup for manually setting the next review interval in days.
-
"Scroll to Highlight" Button: A convenient button now appears for PDF highlight cards, allowing you to instantly jump back to the highlight's position in the PDF.
-
"Change Priority" Button: You can now quickly change a Rem's priority directly from the queue via a new button on the answer bar.
-
Customizable Default Priority: A new option in the plugin settings allows you to set your own default priority for new incremental Rem.
-
Improved Sorting Logic: The "Flashcard Ratio" slider in the Sorting Criteria has been completely overhauled to be more linear and intuitive. This fixes persistent bugs in the queuing logic, ensuring the selected card sequence is now reliable and accurate. Of course. Here are the summaries for your Changelog and README files.
-
"Review & Open" Button: A new button has been added to the answer bar that performs a repetition (like the "Next" button) and then immediately opens the Rem in the main editor. This provides a seamless workflow for when you need the full power of the editor for a specific item in your queue.
⚙️ UI/UX Improvements
- "Enter" Key to Close Popup: The priority popup can now be submitted and closed by pressing the "Enter" key, speeding up your workflow.
- Streamlined PDF Highlighting: Creating an incremental Rem from a PDF highlight now immediately triggers the priority popup, allowing you to instantly set the priority or press enter to accept the default.
- "Press 'P' to Edit" Hint: A helpful, non-intrusive button now appears for applicable cards, reminding users of the native shortcut to open the editor and avoid keyboard conflicts.
🐛 Bug Fixes & Compatibility
- Conditional Queue Styling: The plugin no longer applies a permanent style to the queue. Layout fixes are now applied conditionally only when an incremental Rem is active, preserving the native layout for standard flashcards.
- Plugin Compatibility: A conflict with the "Flashcard Repetition History" plugin has been resolved. Its widget is now automatically hidden during incremental reviews to prevent layout issues.