


# Zenith Filer - Version History

## [Unreleased]

## [0.41.4] - 2026-04-06 : Rubber band selection

### Added
- **Rubber band selection:** Drag on empty space in the file list to select multiple files with a rectangle. Works in both Details and Icon modes. Ctrl+drag for additive selection, auto-scrolls near edges

## [0.41.3] - 2026-04-06 : File conflict dialog, scan bar fix & auto-update improvement

### Added
- **File conflict dialog:** Shows a dialog with Replace/Skip/Rename/Keep newer/Keep larger options when copying or moving files that already exist at the destination. Supports "Apply to all" for batch operations

### Fixed
- **Scan bar limited to startup only:** Fixed scan bar animation firing during folder navigation and search operations instead of only during startup
- **Auto-update false positive fix:** Fixed incorrect "up to date" message when the Worker returned an error response causing version parse failure. Now falls back to GitHub API directly on error

## [0.41.2] - 2026-04-06 : Search bar overhaul, XP leaderboard & tab management improvements

### Added
- **XP Leaderboard System:** Upload challenge XP to the server and view user rankings. Auto-uploads on level up (24-hour interval). Three upload modes: disabled, named, or anonymous. Leaderboard dialog shows top 100
- **Search bar UI overhaul:** Replaced icon toggle mode switching with a 4-segment control (Search/Grep/Index/Filter). Intuitive mode switching with tooltips for each mode
- **Filter mode:** New mode for real-time incremental filtering of files in the current folder
- **Search mode theme customization:** Per-mode selection background/text colors and Normal/Filter search background/icon/focus border colors are now theme-configurable
- **Search icon color fix:** Icon colors for each search mode (Normal/Grep/Index/Filter) now properly reflect on segment control icons

### Fixed
- **Tab management view pane focus switching:** Fixed clicking on A pane/B pane areas (tabs and empty space) in the nav pane tab management view not switching pane focus
- **Hide tab bar option on startup:** Fixed the option to hide the tab bar when the tab management view is active not being applied on app startup

### Changed
- **Search mode shared per pane:** Search mode changed from per-tab to per-pane. Mode persists across tab switches and is restored on next launch
- **Disable options in Filter mode:** Size, date, and preset filter buttons are visually disabled when Filter mode is active

## [0.41.1] - 2026-04-05 : Theme UI unification, store enhancements & stability improvements

### Added
- **Individual text color control for selected state:** Added `OptionSelectedTextColor` key. Fixes unreadable text when selected button background and text are the same color in RetroTech themes
- **Dialog button text color control:** Added `DialogButtonTextColor` and `DialogPrimaryButtonTextColor` keys. Fixes invisible button text in themed dialogs
- **Theme customize search:** Added search box in the header to filter color items by key name or description, with auto-navigation to matching section
- **Collapsible My Uploads:** My Uploads section in theme store can now be collapsed/expanded via chevron toggle. State persists across sessions
- **Theme store pagination:** Theme listing paginated at 50 items per page to reduce load with large theme counts

### Changed
- **Unified admin identification via store ID:** Switched from email-based to Worker's isAdmin flag for admin detection, removing email dependency
- **Hide default themes from theme store:** Excluded built-in themes (auto-updated) from the store listing, showing only user-uploaded themes
- **Admin and author theme deletion from store:** Added delete option to store browse context menu. Admins can delete any theme, authors can delete their own
- **Stronger AI theme quality guidelines:** Added "modern, highly readable, harmonious, and cool" design principles to generation and customization prompts, reducing poorly readable or disharmonious theme output

### Fixed
- **Box Drive integration stability:** Changed async void methods to async Task, eliminating crash risk from unhandled exceptions
- **Cloud menu cache efficiency:** Improved oldest entry lookup from O(n log n) to O(n) during cache eviction
- **Breadcrumb text color:** Changed hardcoded white to theme's `OnePointDarkTextColor` for proper theme-aware display
- **Favorites virtual folder header text:** Unified hardcoded text/icon colors in group headers to `OnePointDarkTextColor` for readability across all themes
- **Individual address bar icon color control:** Added `AddressBarEditIconColor`, `AddressBarFavoriteIconColor`, and `AddressBarCopyIconColor` keys. Default values inherit from `OnePointDarkTextColor`, allowing designers to customize each icon independently
- **Unified tooltip theme:** All tooltips now use the same theme style as context menus (background color, rounded corners, shadow)
- **Tab list view selected+hover fix:** Applied `OptionSelectedHoverColor` on hover over selected tabs, maintaining `OptionSelectedTextColor` for text
- **Eliminated hardcoded white text:** Replaced 30 instances of `Foreground="White"` across buttons, badges, checkmarks, and step numbers with `DialogPrimaryButtonTextBrush` / `OnePointDarkTextBrush` for full theme support
- **Tab popup selected+hover fix:** Applied `OptionSelectedHoverColor` in FilePaneControl tab popup for selected+hover state
- **Themed ComboBox unification:** Restyled all dropdowns with modern theme-aware design matching context menus. Supports both regular and editable ComboBoxes
- **AccentButton text visibility fix:** Fixed `DialogPrimaryButtonTextColor` not applying to string-content buttons (update, license registration, etc.)

## [0.41.0] - 2026-04-04 : Faster startup, UI freeze fix, achievement history improvements

### Changed
- **Level banner click opens achievement history:** Clicking the level banner now opens the achievement history dialog directly instead of the challenges page
- **Draggable achievement history dialog:** The dialog can now be moved freely by dragging its header
- **Faster startup:** Theme list scanning (50 JSON files) pre-cached on background thread, FileLogger initialization moved before WPF startup. Combined with JIT parallelization effects, total startup reduced by ~1.5s (2.8s → 1.3s)
- **Deferred breadcrumb path segments:** Shell COM calls for path segments now execute after directory loading completes, avoiding COM contention during startup

### Fixed
- **Eliminated UI freeze after welcome message on startup:** Fixed the UI becoming unresponsive after the welcome message appears. Moved heavy initialization (CpuIdleService PerformanceCounter warmup, TrayIconService icon loading) to background threads, removing UI thread blocking

## [0.40.31] - 2026-04-04 : Tab management enhancements, AI theme quality, theme color expansion

### Added
- **Title History:** Added tab switching between "Achievements" and "Title History" in the history dialog. Past generated titles are displayed with date, source badges, and backstory. Up to 200 entries saved. Title banner click now opens title history directly
- **Quick Jump new tab/overwrite toggle:** Added a slide toggle to choose between opening in a new tab or overwriting the current tab. Defaults to new tab
- **Tab List view integration:** Added option to hide A/B pane tab bars when the Tab List view is active (configurable in Tab settings). Added drag-and-drop support from pane tab bars to the Tab List view for tab reordering and cross-pane moves
- **Folder drop on Tab List view:** Drop folders from Explorer or NavPane (favorites, history, frequent folders, tree) onto the Tab List view to create new tabs
- **Add tab button in Tab List view:** Added + button to each pane header in the Tab List view, allowing tab creation even when pane tab bars are hidden

### Changed
- **Eliminated post-display UI lock on startup:** Made tab restoration (InitializeAsync) fire-and-forget so UI is interactive immediately after window appears. Lowered favorites loading priority to Background to prioritize user input
- **Improved AI theme generation and customization quality:** Optimized temperature for both generation (0.5) and customization (0.4). Added WCAG contrast post-validation with automatic retry to both flows. Strengthened hover harmony rules, added NavPane, Control Deck, challenge card, and dialog button color keys to AI generation scope with detailed design rules. Customization also preserves theme identity via name, category, and description
- **Non-modal AI theme customization dialog:** The save confirmation screen now allows interacting with the main app (file lists, nav pane) while the dialog stays visible, so users can verify the applied theme before saving
- **Fixed AI theme color chip order:** Aligned the 4 color circles in the customization result with theme cards/store (Background → Sidebar → Accent → Text)
- **Reduced theme store category column spacing:** Decreased horizontal padding between category sections for a more compact theme gallery layout
- **Unified hover styles within Control Deck:** Standardized hover color to `DeckItemHoverBrush` across theme cards, store tiles, and category groups. Added hover effect (background color change + lift animation) to store tiles. Added `DeckItemHoverColor` to all theme JSONs for per-theme hover customization
- **Theme-aware banner text colors:** Changed level banner, title banner, and PRO banner text from hardcoded white to theme-defined colors (`LevelBadgeTextColor`/`TitleBadgeTextColor`/`ProBadgeTextColor`), enabling per-theme banner text customization
- **Unified apply mode tile hover colors:** Changed hover color of 4 apply mode tiles (Preset, Random, Pane, Schedule) to `DeckItemHoverBrush` for consistency with theme cards
- **Navigate from theme customizer to theme page:** Clicking DeckItemHoverColor / DeckItemSelectedColor in the customize dialog now closes the dialog and opens the theme settings page directly
- **Theme-aware title bar icon hover color:** Header icon buttons (settings, manual, etc.) now change icon color to `TitleBarIconHoverColor` on hover via new TitleBarIconButton style. Added to all theme JSONs
- **Theme-aware challenge cards and dialog buttons:** Added theme-customizable colors for challenge card backgrounds (incomplete/completed/text) and dialog buttons (normal/hover/primary/primary hover). New "Challenge Cards" and "Dialog Buttons" subgroups in theme customization

### Fixed
- **Fixed nav pane auto-width being slightly too wide:** Reduced padding from 24px to 8px so the sidebar fits snugly to the last column's right edge
- **Fixed blank space when left nav pane is hidden:** Added MaxWidth control on SidebarColumn and proper initial width=0 when sidebar is not visible, ensuring file list expands to full width
- **Fixed AI theme customization failing with JSON truncation:** Increased MaxTokens from 8192 to 16384 to accommodate expanded color keys. Contrast retry now gracefully falls back to original result on failure
- **Fixed default theme auto-update losing customized colors:** Upload now merges custom overrides into the theme JSON, and download prioritizes the Worker source to ensure the latest uploaded data is fetched
- **Fixed new tabs opening in address mode:** New tabs now always start in breadcrumb mode, automatically navigating to the home path
- **Fixed AI title generation leaking internal reasoning:** Added parsing logic to extract only the first title enclosed in 「」 from AI responses, preventing model thinking process from appearing in the title
- **Fixed backstory not generating on debug regeneration:** Backstory generation flag was not reset before calling the generator, causing it to be silently skipped
- **Fixed title history being lost on restart:** Title history was missing from the settings inheritance in the closing handler
- **Fixed right nav pane hover/selection colors not following theme customization:** NavPaneListViewStyle hover definitions were resolved at AppResources level, bypassing per-pane theme overrides. Added inline styles to all 7 nav pane views so DynamicResource resolves within the visual tree

## [0.40.30] - 2026-04-02 : Startup optimization, animation orchestration, achievement history, security hardening

### Added
- **Achievement History popup:** Added a popup window to browse completed challenge history from the challenge page. Shows timeline feed when filtering by category, table view when "All" is selected. Automatically records completion dates for new achievements
- **Startup bar growth animation:** Access count bars (favorites, recent files/folders) and file size bars now animate from zero to their target width at startup, synchronized with the welcome message exit. Controllable via Effects settings "A. Startup"

### Changed
- **Unified startup animation timing:** Welcome animation, theme toast, and greeting message now follow a strict sequence — theme toast and greeting start only after the welcome animation fully completes, eliminating the disjointed feel of multiple overlapping animations
- **Simplified authentication flow:** Registration now works with key-only input. Legacy email-based authentication remains supported
- **Internal security hardening:** Added revoked key detection mechanism with checks at startup and registration
- **Changed rename dialog pattern buttons to insert at cursor position:** Date, parent folder name, and custom preset buttons now insert text at the current cursor position instead of replacing the entire input. When text is selected, the selection is replaced with the button text

### Fixed
- **Fixed welcome message not appearing at startup:** Welcome message was not shown when startup effects were disabled. Now displays the welcome message as a notification regardless of effect settings. Also localized the welcome message text
- **Fixed AI requests failing with HTTP 400 when max_tokens exceeds model limit:** Added per-model maximum output token definitions and automatic capping before sending requests. Resolves errors with gpt-4.1-mini and similar models when using high-output features (favorites organize, folder organizer)
- **Fixed inability to drag tabs to the last position in Tab Management View:** The boundary check in same-pane tab reordering incorrectly rejected moves to the end of the list
- **Fixed "Please enter API key" error immediately after saving an API key:** Added in-memory key cache so the key is available instantly without waiting for the debounced disk write to complete
- **Fixed "Frequently Used Folders" slider not increasing beyond a certain count:** Increased the history database fetch limit from 50 to 200 to ensure enough candidates remain after matching with the favorites list
- **Fixed IME candidate window flickering in Quick Jump dialog:** Increased the search debounce timer from 50ms to 300ms to prevent frequent UI re-renders during IME composition
- **Fixed startup unresponsiveness blocking user interaction:** Path existence checks during tab restoration were synchronously blocking the UI thread, delaying window rendering. Fixed by making path validation fully async and deferring file system watcher setup to idle priority

## [0.40.29] - 2026-04-02 : Dialog UI unification, IME fix, update fix

### Changed
- **Added close (×) button to popup dialogs:** Added a consistent close button to 7 dialogs — AI Theme Wizard, AI Theme Customize, AI Theme Generate, AI Favorites Organize, Theme Wizard, ZenithDialog, and Rename Dialog
- **Standardized dialog footer button layout:** Right-aligned all confirmation dialog buttons with AccentButton style for primary actions (OK/Save). Unified button order to "Cancel → OK" (primary action on the right)

### Fixed
- **Fixed restart button not showing after update download:** The button visibility was updated from a background thread via code-behind, which silently failed. Replaced with XAML binding for reliable cross-thread UI updates
- **Fixed IME candidate window flickering during text input:** Added `Delay=300` to all TextBox bindings with `UpdateSourceTrigger=PropertyChanged` to prevent UI re-rendering from disrupting IME composition. Affects feedback, AI input, search, nav pane, and all other text input fields
- **Fixed missing internal security definition for AI folder creation:** Added AiFolderCreate usage limit that was missing from the configuration

## [0.40.28] - 2026-04-02 : Separate theme colors & customization dialog improvements

### Added
- **Quick Jump in context menu:** Added Quick Jump to the context menu when right-clicking on the file list background, folders, or files. Displays the keyboard shortcut
- **Separate theme colors for NavPane, ControlDeck, and file list:** Added 11 dedicated color keys — NavPane (normal/hover/selected background and text, 6 keys), ControlDeck (hover/selected, 2 keys), and file list text (normal/hover/selected, 3 keys). New "Navigation Pane" section in the theme customization dialog. GrepSearch 3 keys integrated into the Search section
- **Theme customization dialog improvements:** Widened the window to eliminate horizontal scrollbar. Color items within each section are now organized into sub-groups (backgrounds, text, buttons, etc.) with group headers for easier navigation

## [0.40.27] - 2026-04-02 : AI folder creation, Ollama improvements, recommendation tips

### Added
- **AI Folder Creation:** Generate optimal folder structures from natural language prompts. Supports new folder creation and integration with existing folders (including rename proposals). Shows self-evaluation on 4 axes (relevance, structure, naming, extensibility) with emphasis chip buttons to guide AI proposals. Supports regeneration with additional instructions and exhaustive pattern analysis of existing files (dates, serial numbers, etc.)
- **Automated screenshot capture mode:** Launch the app with `--capture-screenshots` to automatically capture predefined scenarios (main window, nav pane, Control Deck, etc.) and save as PNGs to `docs/screenshots/`. Used for automatic manual image updates

### Changed
- **Improved recommendation tips display:** Show the recommended feature name as a header (e.g., `💡 [Text Compare]`) to clearly indicate which feature is being suggested
- **Ollama setup guide:** Restructured the Ollama tab into a 3-step guide (① Install → ② Start Server → ③ Download Model). Display adapts to each step's completion state for clear guidance
- **AI provider switch model sync:** Fixed model list and API key display retaining previous provider's information when switching providers
- **Context menu implicit style:** Migrated from per-ContextMenu `ItemContainerStyle` to implicit MenuItem style, eliminating Separator type conflict crashes

### Fixed
- **Fixed Ollama model pull freezing:** Throttled progress reporting to 100ms intervals to prevent UI thread saturation
- **AI folder creation token limit:** Increased MaxTokens to 32768, added truncation warning display and error logging
- **Fixed feature display name localization:** Some AI feature names were showing raw English keys in the token statistics screen
- **Manual image display support:** Document viewer can now display images in Markdown (`![alt](path)`). Supports automatic relative path resolution, rounded corners with border decoration, and MaxWidth constraint
- **Fixed recommendation tips disappearing instantly:** After the fade-out animation, Opacity remained at 0 due to WPF's HoldEnd behavior, making tips invisible on re-display
- **Fixed property overlap during recommendation tips:** File properties (path, size, timestamps) are now hidden while tips are displayed, eliminating visual overlap

## [0.40.26] - 2026-04-01 : UI unification, startup optimization, theme fixes

### Added
- **Tab management view D&D guide line:** Shows a horizontal insertion guide line when dragging and dropping tabs in the navigation pane's tab management view
- **Window recovery menus:** Added "Move to main monitor" and "Move to current monitor" to the taskbar right-click JumpList, title bar system menu, and tray icon context menu for recovering windows that end up off-screen
- **Ollama (local LLM) provider support:** Added Ollama provider for local AI execution without API keys. Features one-click auto-install, recommended model download management, and automatic server start/stop. Ollama settings tab shows status, endpoint configuration, installed models, and recommended model pull
- **AI settings page tab restructure:** Reorganized AI settings into 6 sub-tabs: Overview, Ollama, Gemini, Azure OpenAI, OpenAI, Claude. Added individual auto-feature toggles (greeting, rename suggestion, title generation, backstory generation, backup summary) to the Overview tab
- **Level-up and achievement banner glow:** Added a glow pulse effect around the level banner on level-up and the title banner on achievement unlock, using the accent color

### Changed
- **Removed AI manual section from settings page:** Eliminated redundancy as the AI manual is accessible from the app header
- **Improved inactive sub-tab visibility:** Disabled AI provider tabs now display at 35% opacity to clearly indicate they are not selectable
- **Tab management view pane mode awareness:** Show only A-pane tabs in single-pane mode; show both A/B panes in dual-pane mode. Summary display adapts to current pane count
- **Improved startup speed:** Skip unnecessary storyboard rebuilding for pane themes, defer nav layout rebuild after ContentRendered, defer input binding construction and tab height sync until after window display, background pre-cache theme custom overrides
- **Quick Jump improvements:** Closes on click outside the window, dialog appears near the mouse cursor

### Fixed
- **Fixed theme switching not working after theme customization:** Live preview was writing directly to top-level resources, causing old values to persist after theme switch. Now writes to the theme MergedDictionary for proper cleanup
- **Fixed level banner and title banner colors not syncing with theme:** LevelBadgeColor and TitleBadgeColor were missing from theme defaults, so they were never updated on theme change. Also added to theme customization screen
- **Unified language settings selected item style:** Changed to use the same OptionSelected style as other settings pages
- **Fully unified context menu styles:** Fixed theme settings and theme store context menus not changing font color to white on hover. Also applied missing ContextMenuItemStyle to store menus
- **Fixed property view periodic tips stopping permanently:** Fixed an issue where the recommendation timer would stop permanently when no candidates were temporarily available. Timer now continues and counter retrieval changed from file I/O to in-memory cache

## [0.40.25] - 2026-03-31 : Fixed tab multi-row positioning, challenge visual enhancements

### Added
- **Tier 10 crown pulse animation:** Crown icon on max-tier completed challenges now gently pulses with a breathing glow effect
- **Feedback button:** Added a feedback button to the title bar icon group. Click to open the feedback page in app settings
- **AI Manual button:** Added an AI Manual button to the title bar next to the manual button for quick access

### Fixed
- **Fixed tab row reordering in multi-row mode:** Fixed WPF default behavior where selecting a tab in the upper row would automatically move it to the bottom row. Tabs now maintain fixed positions

### Changed
- **Challenge page optimization:** Removed unnecessary initial DropShadowEffect for lighter rendering
- **Crown icon visibility:** Crown icon now only appears for challenge categories where Tier 10 has been completed
- **Completed challenge card glow:** Stone tablet icons on completed tier cards now glow permanently, with an enhanced glow on hover

## [0.40.24] - 2026-03-31 : Search bar second row, multi-display fixes, bug fixes

### Added
- **Search bar second row option:** Added a display setting to automatically move the search bar to a second row in dual-pane (left-right) mode, providing a wider search input area

### Changed
- **Default recursive search in normal mode:** Normal search now always includes subfolders, removing the hard-to-discover recursive search toggle button
- **Enhanced title backstory generation:** AI-generated backstories now include each category's highest-tier achievement backstory as reference material for richer, lore-consistent narratives
- **Mechanical backstory fallback:** When AI is unavailable, automatically generates a fallback backstory listing each category's highest-tier achievement name and description
- **Debug regeneration with mechanical fallback:** Debug page title and backstory regeneration now falls back to mechanical synthesis when AI is disabled

### Fixed
- **Fixed blank space when nav pane is hidden:** Fixed issue where hiding the right or left nav pane and restarting would leave blank space where the pane was. Added dynamic splitter column control and layout revalidation at ContentRendered
- **Fixed window stuck off-screen on external display disconnect:** Window no longer becomes inaccessible when an external monitor is disconnected. Detects display configuration changes at startup and runtime, automatically moving the window to the primary monitor maximized
- **Search result path link now opens folder:** Clicking the path column in search results now opens the containing folder instead of navigating to the file
- **AI toggle synchronization:** Status bar AI toggle and settings page AI checkbox now sync bidirectionally
- **AI toggle state not applied:** Fixed issue where AI ON/OFF toggle was not reflected in title/backstory generation, always producing the opposite behavior
- **Duplicate backstory AI requests:** Fixed issue where another challenge action firing during backstory generation would trigger a duplicate AI request
- **Tab list view close button not working:** Fixed issue where clicking the × button in the tab management view would incorrectly trigger a drag operation instead of closing the tab

## [0.40.23] - 2026-03-31 : Major tab management overhaul (shortcuts, management view, settings, AI integration)

### Added
- **Keyboard shortcuts for tab list and tab switching:** Ctrl+Shift+A opens the tab list popup for the focused pane, Ctrl+Tab / Ctrl+Shift+Tab switches to next/previous tab. Pane-specific tab list shortcuts (Ctrl+Shift+Alt+1/2) also supported. All shortcuts are customizable in the shortcut settings
- **Keyboard navigation in tab list popup:** Use ↑/↓ to navigate tabs, Enter to switch, Delete / Ctrl+W to close a tab, Escape to dismiss and return focus to the file list
- **Tab bar display settings:** New "Tab" category in settings. Configure tab width mode (fixed/auto), fixed width size (100-250px), wrap mode (single row/multi-row), and tab row height sync between panes
- **Tab management view in nav pane:** Side-by-side display of Pane A and Pane B tabs. Click to switch, close button to close, right-click for lock toggle and cross-pane move. Drag-and-drop for reordering and cross-pane transfer. AI suggestion dots (lock/close recommendations) displayed inline
- **Tab activity visualization:** Activity score progress bar displayed under each tab in the management view. Low-activity tabs are greyed out
- **Context-linked highlighting:** Tabs with parent/child path relationships to the current folder are highlighted with accent-colored dots, updating in real-time on folder navigation and pane switching
- **Working set integration:** Save current tab configuration as a working set from the tab management view header. Shows matching set name when current tabs match a saved set
- **Tab summary display:** Mini statistics panel at the bottom of the tab management view showing tab counts, total dwell time, and top 3 most-used folders

### Changed
- **Improved tab list selection behavior:** Arrow keys now only move the highlight without switching tabs; the actual tab switch occurs only on Enter
- **Improved cross-pane tab list display:** Ctrl+Shift+Alt+1/2 now switches focus to the target pane first, then opens the tab list
- **Focus pane indicator in tab management view:** Added PanelLeft/PanelRight icons to A/B pane headers with bold+accent color for the active pane. Click anywhere in a pane area to switch focus
- **Enhanced tab management tooltips:** Hover on tabs shows a composite tooltip with full path, lock status, AI recommendations, and context link indicators. Enlarged dots for easier hover targeting
- **Open new tabs in breadcrumb mode:** New tabs with a path now open with breadcrumb address bar instead of full path edit mode

### Fixed
- **Fixed tab row height sync infinite loop:** Resolved an issue where SizeChanged events chained during wrap mode height sync, causing UI freeze
- **Fixed tab management context menu crash:** Resolved crash when Separator element received MenuItem-only style
- **Fixed tab management hover background:** ListBoxItem hit-test area was missing transparent background, preventing hover color display

## [0.40.22] - 2026-03-30 : Settings UI overhaul + Bug fixes

### Added
- **Click level/title banners to open Challenges page:** Clicking the level banner or title banner in the header now opens the Challenges page. Same behavior as the existing challenges icon

### Changed
- **Unify button styles and hover effects across all settings pages:** Replaced inline styles with shared styles (TextButton/AccentButton). Unified hover effects for OptionRadioButton, theme mode cards, language settings, and Debug buttons. Fixed broken language selection hover. Added new theme color `ButtonIdleColor` to give unselected buttons a visible background distinct from card surfaces. Wrapped language list in a card for consistency, separated restart banner from language list layout
- **Redesign license page as a modern dashboard:** Inherits General settings design language (white cards, thin borders, consistent spacing). Vertical stream layout: Hero → Action → Telemetry. Slimmed usage gauges to 3px, Consolas numerics. Wrapped each group in cards for clean modern-flat aesthetic
- **Add persistent category anchors to theme page:** Fixed 5-category jump links (Standard/Lifestyle/Professional/Premium/RetroTech) below page header. Reduced spacing between category groups
- **Change schedule mode theme selection to card-based:** Replaced ComboBox dropdowns with RadioButton pattern matching Pane mode. Select day/night slot then click a theme card in the gallery to assign. Unified card size with other 3 modes (Width=320)
- **Add language settings notes:** Added AI translation nuance disclaimer and lang folder auto-detection note
- **Add background color to shortcut key binding area:** Applied ButtonIdleBrush to make clickable hotkey recorder visually identifiable
- **Route auto-update version check through Cloudflare Worker:** Avoids GitHub API rate limit (60/hour/IP). Worker caches for 5 minutes, consolidating API usage across all users. Auto-falls back to GitHub API if Worker fails

### Fixed
- **Fix settings left menu hover not showing background change:** Hover was invisible because the brush color matched the sidebar background
- **Fix pane mode theme not applied on first click:** SelectedPaneTarget remained None after mode switch, causing theme selection to be silently ignored. Now auto-selects LeftNav on mode entry
- **Fix language selection hover not working:** Referenced undefined HoverBrush, so hover background change never occurred
- **Fix add_theme_color.py missing comma bug:** New line insertion did not append trailing commas to the preceding and new lines, causing JSON parse errors

## [0.40.21] - 2026-03-30 : Ultra-fast themes + Theme JSON fix

### Changed
- **Ultra-fast theme switching:** Changed resource updates to MergedDictionaries swap method, consolidating DynamicResource notifications from 200+ to 1. Removed transition animation for instant theme application. Auto-preload theme JSON on switch

### Fixed
- **Fix all 50 theme JSON missing commas:** Missing comma after TitleBadgeColor caused JSON parse errors. Theme descriptions and color patterns were not displayed. Batch-fixed all themes

## [0.40.20] - 2026-03-30 : Faster themes + Bug fixes (#86, #87)

### Changed
- **Faster theme switching:** Shortened transition animations from 130ms→50ms / 250ms→120ms. Auto-preload theme JSON on switch

### Fixed
- **Fix theme page not displaying correctly after version upgrade (#87):** Now calls RefreshThemes when switching to theme page to rescan latest theme data. Also fixed built-in theme auto-update sending 404 requests to community endpoint (now prioritizes GitHub raw)
- **Fix auto-update failing due to GitHub rate limit (#86):** Separated download HttpClient from API check client to remove GitHub API headers. Monitors X-RateLimit-Remaining header and extends next check by 6 hours when rate limit is low. Falls back to opening release page in browser when download fails

## [0.40.19] - 2026-03-30 : On-demand search + Challenge stories + Default settings

### Added
- **Change normal search to on-demand file system search:** No longer depends on the index; now scans the current folder's file system in real time. Advanced query syntax: AND (space-separated: `report 2024`), OR (`|` separated: `doc|pdf`), exclusion (`-backup`), extension filter (`ext:pdf`), wildcards (`*.pdf`). Size/date filters still apply. Recursive search toggle (FolderTree icon) to include subfolders. Index search remains available via toggle
- **Challenge card backstories:** Each achievement tooltip now shows an evolving narrative (10 lines) from Tier 1 to 10. All 14 categories × 10 tiers = 140 stories, 10 languages

### Changed
- **Optimize default settings:** Sidebar width 280px, downloads sort-by-date enabled, greeting tone Lv.2, challenge info in greeting enabled, recently added section hidden by default

### Fixed
- **Fix always-on-top toggle not working:** Tray restore logic temporarily set Topmost=true then false, overriding the XAML binding. Now preserves Topmost when IsAlwaysOnTop is enabled
- **Fix level-up banner animation not firing:** Was guarded by ShowStartupEffectsEnabled, causing level-up effects to be skipped when startup effects were disabled. Level-up animation now always fires

## [0.40.18] - 2026-03-29 : Challenge effects + Multi-monitor DPI fix

### Added
- **Challenge card hover glow effect:** Gold glow around stone tablet icon on card hover. Smooth CircleEase transitions. Elegant effect limited to icon area only
- **Custom image icons for challenge cards:** Place images at images/challenges/{id}.png and they automatically replace Lucide icons with fallback support

### Fixed
- **Fix Quick Jump shortcut label in challenges:** Changed Ctrl+G to Ctrl+P (default shortcut) across all 10 languages
- **Fix challenge achievement names overflowing:** Enable text wrapping in fixed-width nodes with icon positioned above. Long names in English and other languages now display correctly
- **Fix window size/position drifting on restart in multi-monitor DPI environments:** Startup off-screen positioning (-100000, -100000) entered primary monitor coordinate space (DPI 125%), triggering PerMonitorV2 DPI rescaling. Fixed by keeping X coordinate unchanged during off-screen positioning (Y only). Position restored via SetWindowPos + NativeBounds, size via WPF properties

## [0.40.17] - 2026-03-29 : AI localization + Challenge fixes + Settings stability

### Added
- **AI features overview card in settings:** Shows 12 AI features in a 2-column grid layout with a note that API key configuration is required. Localized across all 10 languages

### Changed
- **Obfuscate challenge counters:** Challenge counters in settings.json are now stored as HMAC-signed Base64 encoded strings instead of plain integers. Auto-migration from legacy format included

### Fixed
- **Fix AI title generation retrying infinitely:** When no title existed, every user action triggered a new AI call, rapidly consuming tokens. Added a generation-in-progress flag to prevent re-entry
- **Localize AI title and backstory generation:** Added output language directive to prompts based on user locale. Mechanical fallback patterns also localized across all 10 languages
- **Fix unlocalized AI feature names in statistics:** "AI Challenge Title" and "AI Challenge Backstory" now use localized display names
- **Localize AI folder organizer and favorites organizer prompts:** Folder analysis section headings now render in the user's locale language. Favorites organizer example text unified to English with output text following the user's locale
- **Fix level banner not showing on fresh install:** XP/level calculation was skipped when counters were empty. Now shows Lv.1 even on initial state
- **Localize challenge category names and anchor links:** All 15 category names were hardcoded in Japanese; now localized across all 10 languages
- **Fix AI model settings lost on exit:** When the window was closed before the debounced save (800ms delay) completed, the old settings.json was read and settings reverted. Now flushes pending saves immediately before reading existing settings on shutdown
- **Fix AI model reset on provider switch:** Switching providers always reset the model to the first in the list. Now caches the selected model per provider and restores it when switching back
- **Fix title and backstory not auto-generating:** Title and backstory were not updated when achievements were unlocked outside the Challenges page. Now triggers background generation on any page when titles change
- **Remove unused fields:** MainWindow._savedPlacement, PerfDiagnosticsService._diskMax

## [0.40.16] - 2026-03-29 : Performance optimization + Level banner fix

### Changed
- **Performance optimization:** Added ConfigureAwait(false) to Box API and startup initialization paths to eliminate deadlock risk. Optimized index traversal string allocation (TrimEnd+concat→string.Concat). Changed properties summary from 3-pass LINQ to single-pass loop. Replaced LINQ ToList() with direct enumeration in folder size loading. Optimized PathHelper Substring to range syntax + string.Concat

### Fixed
- **Fix level banner tooltip showing incorrect values at startup:** Total XP, Next XP, and level progress were not calculated during startup load, remaining at default values. Now all XP/level properties are computed at startup

## [0.40.15] - 2026-03-29 : Challenge expansion + Just-in-time Tips + Terminal fix + Startup optimization

### Added
- **4 new challenge categories:** Working Set (📋), Terminal (💻), Compare (⚖), Create (✏). Now 15 categories × 10 tiers = 150 challenges, 10 languages
- **Challenge category anchor links:** Added jump links between the title banner and achievement list for quick navigation (hover shows progress tooltip). Reduces scrolling across 15 categories
- **Tier-based visual effects:** Challenge node borders, glow, and shadow scale up with tier level. Tier 10 nodes feature a gold glow for legendary presence
- **Just-in-time Tips system:** 3-layer feature discovery system. Layer 1: first-action hints (8), Layer 2: random unused feature recommendations (15), Layer 3: cross-recommendations based on usage patterns (21). Configurable via toggle + interval slider (1-60 min) in properties settings. 10 languages
- **Sticky challenge anchor links:** Anchor links stick to the top when scrolled out of view, enabling category jumps from any scroll position

### Changed
- **Challenge title in settings header:** Settings header shows "Challenges" with AI icon (Sparkles) when Challenges page is active
- **Optimize challenge category order:** Rearranged from daily operations (Navigate→Search→Create→Preview) → organization/customization → advanced features → niche

### Fixed
- **Fix terminal not accepting keyboard input:** TerminalSurface's OnKeyDown unconditionally set e.Handled=true, blocking WPF's TextInput pipeline and losing all normal character input. Changed to only mark Handled for special keys. Also fixed MainWindow's PreviewKeyDown not recognizing nav pane terminal, and InitMessage blocking hit-test
- **Fix sidebar terminal not accepting keyboard input:** MainWindow's PreviewKeyDown was intercepting all key events before they reached the sidebar TerminalView. Now bypasses interception when TerminalSurface has focus
- **Fix settings menu clipped on small window:** Added scrollbar to the left navigation panel so all menu items are accessible regardless of window size
- **Fix settings page freeze on category switch:** Synchronous disk I/O (WindowSettings.Load) and ObservableCollection sequential operations on the UI thread caused freezes on AI, Shortcut, Challenges, and Statistics pages. Moved disk I/O to background threads and converted all collections (StatItems/TopFolders/RecentFileRecords/AiTokenByModel etc.) to IReadOnlyList bulk replacement
- **Accurate window position restoration:** Save native coordinates via Win32 GetWindowPlacement on close, restore via SetWindowPos on startup. Eliminates DPI rounding position drift
- **Faster startup:** Tab restoration now synchronously restores only the selected tab, deferring remaining tabs. Fixed navigation counter tracking (moved from LoadDirectoryAsync to NavigateAsync)
- **Fix AI title repeatedly regenerating on Challenges page:** RefreshChallenges unconditionally called AutoGenerateTitleIfNeededAsync. Now skips if title already exists
- **Fix AI token stats missing title/backstory generation:** Added featureKey (AiChallengeTitle / AiChallengeBackstory) to SendAsync calls

## [0.40.14] - 2026-03-28 : Challenge level system + RPG presentation enhancement

### Added
- **Greeting challenge info toggle:** Added option to pass challenge title and backstory as context to AI welcome greeting. Only available when AI greeting is enabled. The title itself is not included in the message — used only as tone reference
- **Challenge category hint text:** Show a description under each category title explaining what actions count towards progress. All 11 categories, 10 languages
- **Challenge level display:** Replaced achievement count progress bar with XP-based level display. 1 level = 100 XP, shown with shield icon and progress bar in RPG style
- **Level banner in header bar:** Added "Lv.N" banner to the left of the title banner. Independent toggle from the title banner
- **Level-up animation:** Pop animation on header banner + toast notification on level up
- **Per-theme banner color customization:** PRO, level, and title banner colors can now be individually specified per theme (LevelBadgeColor / TitleBadgeColor). Defaults to AccentColor
- **Debug: Title & backstory regeneration buttons:** Individually regenerate AI title or backstory from the debug menu

### Changed
- **Real-time XP / level updates:** XP, level, and banner text recalculated immediately on each challenge counter change (no app restart needed)
- **Expand search challenge scope:** Search challenge now counts all search types (normal, index, and grep) instead of index search only. Tracking moved to after successful search execution
- **Increase navigation challenge tier thresholds:** 50–5,000 → 100–30,000. Redesigned to reward medium-to-long-term usage for this most frequent operation

## [0.40.13] - 2026-03-28 : Title banner enhancement + Single-pane freeze fix + Memory reduction

### Added
- **Challenge experience points (XP) display:** Show weighted XP on the Challenges page. Each action category has a unique multiplier (navigate ×1, icon customization ×20, etc.) rewarding depth of engagement
- **Challenge title welcome greeting:** On startup, greet users with their earned challenge title ("Welcome back, {title}"). When AI is enabled, transitions to a personalized AI-generated welcome message
- **Challenge system full 10-language localization:** Translated all 100 challenge titles and descriptions (10 categories × 10 levels) into 10 languages with fantasy RPG tone
- **Backstory tooltip on title banner:** Hovering over the title banner in the title bar shows the AI-generated backstory in a rich themed tooltip

### Changed
- **Significant memory reduction (1GB→300MB target):** Reduced Lucene RAMBufferSizeMB from 16→4MB, batched Auto-mode single-file commits with 1-second debounce (drastically reducing GC pressure), flush Writer buffer on index completion, set GC heap hard limit to 300MB, reduced inactive GC delay from 60→15 seconds
- **Add memory caps to static caches:** Color parse cache (500 entry cap), theme JSON preload (10 entry cap), directory tree event throttle (500 entries + 60s TTL). Also release stale SearcherManager readers on index completion

### Fixed
- **Fix app freeze when launching in single-pane mode:** After a Windows Update, DWM fails to complete rendering when the right pane is Collapsed during off-screen evacuation. Now starts with 2-pane layout and switches to single-pane after ContentRendered. Also added coordinate sanitization on settings load and Minimized fallback on close
- **Fix performance degradation after leaving Challenges page:** AI generation tasks (title & backstory) continued running in the background after navigating away from Challenges, preventing memory and thread recovery. Now cancels AI tasks on category exit and releases the visual tree (100 nodes)
- **Fix crash on nav pane icon click:** Layout rebuild failed to detect views not yet in the visual tree, causing "element is already a logical child" exception. Changed tree traversal to use logical tree instead of visual tree
- **Fix Challenges page freeze on category switch:** Adding/clearing 100 nodes in ObservableCollection one by one triggered render on each operation, blocking the UI thread. Changed to local assembly then bulk replacement, and removed unnecessary Clear on exit

## [0.40.12] - 2026-03-27 : Diagnostics leak fix + Multi-monitor DPI fix

### Fixed
- **Fix resource leaks in performance diagnostics:** Event handler accumulated on each toggle without unsubscription. Also fixed Process.GetCurrentProcess() OS handle leak
- **Fix window recovery not working on multi-monitor disconnect:** Screen.WorkingArea returns physical pixels while WPF uses logical units, causing off-screen detection to fail on high-DPI displays. Added DPI-aware coordinate conversion

## [0.40.11] - 2026-03-27 : Challenge title banner + Index performance fix

### Added
- **Challenge title banner:** Display AI-generated challenge title in the header bar with accent color. Toggleable in settings

### Fixed
- **Fix app-wide slowdown during indexing:** Introduced SearcherManager (NRT reader pooling) so searches run independently of Writer locks. Eliminated per-search FSDirectory/DirectoryReader creation. Removed redundant external locks around UpdateDocument (IndexWriter is thread-safe). Increased commit intervals from 500→2000 (local) and 100→500 (network), significantly reducing I/O blocking

## [0.40.10] - 2026-03-27 : Performance diagnostics logging

### Added
- **Performance diagnostics logging:** Debug menu toggle to record CPU, memory, GC, threads, index state, Lucene lock wait, UI delay, and directory load time in JSON Lines (.jsonl) at 2-second intervals. Auto-generates summary on stop. For AI-driven performance analysis

## [0.40.9] - 2026-03-27 : AI tracking unification + MaxTokens redesign + Challenge accuracy

### Changed
- **AI MaxTokens redesign:** Redesigned output limits for all AI features to support 300+ favorites. Favorites organize and folder analysis raised to 65536, theme generation to 8192, short-text features doubled. Prioritizes eliminating truncation errors
- **Backstory generation prompt improvement:** Strengthened SystemPrompt and MaxTokens to ensure 150-200 character stories always complete without truncation
- **AI challenge tracking unified across all AI features:** Single trigger point in AiService.SendAsync success path. All AI calls (favorites, folder analysis, theme, manual Q&A, rename, greeting) auto-counted
- **AI challenge tier redesign:** Tier 10 raised to 10000 (1→10→30→80→200→500→1000→2500→5000→10000)
- **Deprecated CompleteChallengeIfNeeded:** All triggers unified to TrackChallengeAction

## [0.40.8] - 2026-03-27 : Challenge System Evolution — Skill Tree + Titles + Backstory

### Added
- **100 Challenges Skill Tree:** 10 categories × 10 nodes, WrapPanel layout with progress bars, flavor text, crown goal markers
- **AI Auto Title Generation:** Automatically generates chuunibyou-style titles when achievements change. Mechanical fallback when AI unavailable
- **AI Backstory Generation:** Generates fantasy RPG hero backstory based on all achieved challenges
- **Title Certificate Panel:** Medal icon + title + achievement badges + compact progress bar in unified card UI

### Changed
- **Challenge display:** Vertical list → skill tree WrapPanel with fixed-width cards, 2-line flavor text, progress bars
- **Settings menu reorganization:** 5 sections with separators (Basic / Theme & Store / Features / Data & License / Other)
- **Favorites settings:** Font size and pinned count ComboBoxes replaced with sliders

### Fixed
- **Challenge progress not persisting:** Added challenge fields to MainWindow_Closing settings inheritance
- **Counters resetting each time:** Resolved DebouncedSettingsSaver timing issue with in-memory cache

## [0.40.7] - 2026-03-27 : Challenge / Achievement System

### Added
- **Challenge / Achievement System:** 10 challenges (favorites, themes, AI organize, quick jump, etc.) with toast notifications on completion. Trophy icon in title bar + settings page for direct access. Achievement status visualized with color badge icons + progress bar

## [0.40.6] - 2026-03-27 : Custom icons + Pinned count customization + UI improvements

### Added
- **Custom icons for favorite containers:** Set PackIconLucide-based color badge icons on virtual folders. 64 presets + context menu access. Modern accent-colored badge with white icon design
- **AI favorites organizer auto-assigns icons:** AI organizer now automatically sets appropriate Lucide icons on containers based on folder purpose
- **Customizable pinned favorites count:** Pinned section count now configurable (3-15) via slider

### Changed
- **Slider-based favorites settings:** Font size and pinned count ComboBoxes replaced with sliders + accent-colored value labels
- **Faster update history page display:** Split CHANGELOG at v0.30.0. Only recent versions are loaded immediately; older history is lazy-loaded via "Show older history" button in the TOC sidebar

### Fixed
- **Fix debug menu license toggle blocking features:** Added debug override bypass to CanUseSync/CanUseAsync during temporary Free state

## [0.40.5] - 2026-03-26 : Quick Jump + Theme customization enhancements + Debug menu

### Added
- **Quick Jump (Ctrl+P):** Floating search popup to search across favorites, frequent folders, and recent folders, and navigate instantly. Supports incremental search, keyboard navigation (Up/Down/Enter/Esc)
- **Developer Debug Menu:** Settings category accessible only by author (email-gated). License Free/Full toggle, license file deactivation, usage count reset, PRO/AI badge toggle, settings JSON export, diagnostics display
- **Theme customization auto-navigation:** Clicking a color item automatically opens the relevant UI area before highlighting (sidebar, index search, context menu, quick jump, etc.)
- **Theme customization usage hints:** All 66 color descriptions now include usage location text showing which UI elements each color applies to
- **Theme customization demo expansion:** GlowBar demo animation, loading overlay display, success flash, context menu with delete item, dual-pane expansion, settings panel open — visualize hard-to-see colors with actual UI behavior
- **Default theme merge & upload:** Debug menu button to merge customized default theme with base, upload to store, auto-delete override, and re-apply theme
- **Default theme auto-update:** When opening the store, automatically download and overwrite built-in themes if the store version is newer. Live re-apply if the current theme was updated

### Changed
- **Expand favorites description font size range:** Extended from 9-13 to 9-20

### Fixed
- **Fix QuickJump (Ctrl+P) crash:** Fixed InvalidOperationException when setting DialogResult on single-click or deactivation. Unified all close paths through a safe helper to prevent re-entrant and double-close scenarios
- **Fix left pane GridSplitter (additional fix):** Changed splitter column from Auto to fixed 9px width, removed explicit Width to let Stretch fill entire hit area. Combined with ClipToBounds and elevated ZIndex
- **Fix initial startup license display always showing English:** EULA_ja.md was missing, causing Japanese locale to always fall back to English version. Added Japanese EULA file
- **Fix performance degradation during extended use:** Comprehensive fix for event subscription leaks in TabContentControl, TerminalView, AiFolderOrganizerView, PropertiesView, and PaneTerminalControl where global event handlers were not unsubscribed on Unloaded. Balanced Loaded/Unloaded lifecycle to prevent unnecessary event firing when views are hidden
- **Fix AI favorites organize JSON escape repair bug:** Valid escape sequences (e.g., `\\`) were not skipping the next character, causing `C:\\Users` to be split and `\U` to be misidentified as an invalid escape
- **Fix theme schedule crash:** Fixed crash when scheduled theme name is null and ApplyThemeLive is called with null argument
- **Fix AI settings custom model not persisted:** Loading guard was ineffective on settings panel reopen, causing ComboBox item source update to overwrite custom model with defaults. Now resets guard during reload and auto-adds saved model to dropdown list

## [0.40.4] - 2026-03-26 : Fix left pane width adjustment + memory leak fix

### Fixed
- **Fix left pane GridSplitter unresponsive on some environments:** Cursor did not change to resize icon on hover. Added explicit ResizeDirection, Cursor, changed HorizontalAlignment to Stretch, and ensured hit-test priority with Panel.ZIndex
- **Fix performance degradation during extended use:** Fixed memory leak where global event subscriptions (key binding changes, locale changes) accumulated on each tab open/close without being unsubscribed. Also fixed hover thumbnail timer not being stopped on tab unload

## [0.40.3] - 2026-03-26 : AI favorites organize fix + real-time update

### Fixed
- **Fix FrequentFolders real-time update:** Fixed FrequentFolders view not updating when navigating to new folders. Now auto-refreshes on HistoryChanged event
- **Fix AI favorites organize JSON parse error:** Fixed issue where AI returns Windows paths with invalid JSON escape sequences (e.g., `\k` in `C:\known`). Added auto-repair logic for invalid escape sequences
- **Fix AI favorites organize error message:** Changed misleading "AI analysis failed" to "AI favorites organization failed" across all 10 languages

## [0.40.2] - 2026-03-26 : Stability fixes + UX improvements

### Changed
- **Restart prompt after language change:** Shows a restart banner with restart button after changing language in settings
- **AI favorites lock guidance:** When attempting AI organize while locked, blinks the lock checkbox instead of silently closing the dialog
- **AI generates descriptions for virtual folders:** AI favorites organizer now generates purpose descriptions for virtual folders (groups)
- **Author layout preset includes left bottom auto-width**
- **Default auto-width for bottom nav panes:** Left=Properties, Right=FrequentFolders

### Fixed
- **Fix startup freeze:** Fixed DispatcherPriority.Loaded await blocking forever during off-screen window positioning
- **Fix tab transition crash on startup:** Added guard for visual tree child access when children count is zero
- **Fix right nav pane auto-width:** Fixed auto-width adjustment only updating ViewModel value without actually changing the column width

## [0.40.1] - 2026-03-26 : Welcome window overhaul + instant locale switch + refactoring

### Added
- **English EULA:** EULA display now supports locale-based loading (EULA_{locale}.md → EULA_en.md → EULA.md fallback)

### Changed
- **Welcome window overhaul:** Added language selection as first page with system locale auto-detection. Improved theme selection with category grouping, color preview, and recommended section. Updated intro text with latest features
- **Instant locale switching:** Language changes now immediately update nav pane headers and toolbar tooltips. LocaleChanged event triggers NavViewItem label refresh and tooltip rebuild
- **Refactoring:** Extracted EnsureTwoPaneMode() / ApplyColumnWidth() helpers to eliminate duplication. Fixed timer memory leaks in PaneTerminalControl and MainWindow

### Fixed
- **Fix language JSON parse errors:** Fixed unescaped double quotes in 6 language files (de/es/ko-KR/pt/zh-CN/zh-TW) that prevented locale switching from working

## [0.40.0] - 2026-03-25 : UI refinements + Pro limit adjustments + bug fixes

### Added
- **Theme schedule switching (Pro):** New mode to automatically switch between day and night themes based on time. Select "Schedule" in theme settings, set day/night themes and switch times. Checks every minute and auto-applies
- **Pro exclusive theme "ProExclusive":** Deep navy × gold accent premium theme. Automatically granted on Pro registration
- **Vertical dual-pane split:** Added vertical (top/bottom) split button to status bar. Provides full width for each pane when file names are long. Split ratio is saved and restored
- **Expanded keyboard shortcuts (25→36 actions):** Tab operations (Ctrl+T/W/L/Shift+D), file operations (Ctrl+Shift+E: open in Explorer, Ctrl+Shift+C: copy path, Ctrl+D: add to favorites, Alt+Enter: properties), vertical split toggle — all customizable in settings

### Changed
- **Adjust free theme change limit:** Reduced free theme changes from 5/day to 3/day
- **Free layout preset save:** Free users can now save one layout preset (previously blocked entirely)
- **Dynamic column auto-hide:** Switched to dynamic threshold ensuring 250px minimum for name column. Normal mode hides Location→Type→Size→Date, search mode hides Location→Size→Date→Match→Name
- **Slim pane dividers:** Changed GridSplitter visual appearance to 1px while keeping 7px hit area. Added accent color glow effect on hover

### Fixed
- **Fix terminal tab keyboard input:** Fixed MainWindow's PreviewKeyDown/KeyDown intercepting key events meant for terminal tabs. Key events now pass through when a terminal tab is focused
- **Fix pane mode button highlight:** Fixed horizontal split button staying highlighted during vertical split. All three buttons (single/horizontal/vertical) now highlight exclusively
- **Fix arrow keys in vertical split:** Unified Left/Right arrow keys for pane switching regardless of split mode. Up/Down reserved for file navigation
- **Fix split direction preservation:** Fixed split direction (vertical/horizontal) not being preserved when restoring pane count after search, opening paths in other pane, and toggling pane count
- **Fix Box share link for folders:** Fixed issue where copying share link for a folder returned the parent folder's link instead. Now correctly retrieves the link for the selected folder itself
- **Fix nav pane width adjustment:** Fixed GridSplitter being too narrow (1px) to grab on high-DPI displays. Increased to 5px, changed background to theme-aware BorderBrush, enabled SnapsToDevicePixels
- **Fix favorites not restored after recovery:** Fixed favorites not being reloaded into memory after settings recovery. Now immediately reloads favorites from restored settings.json without requiring restart
- **Pro purchase celebration:** GlowBar celebration animation on license registration, "All features unlocked" notification, PRO badge in status bar, exclusive "ProExclusive" theme (navy × gold)
- **Fix update check rate limiting:** Fixed continuous update check failures due to GitHub API rate limit (403). Skips checks within 30 minutes of last check, with dedicated error handling for rate limit responses

## [0.39.3] - 2026-03-25 : Preview Enhancements

### Added
- **Code syntax highlighting:** Introduced AvalonEdit-based syntax highlighting for text preview (Space key). Supports C#, XML, JavaScript, HTML, CSS, SQL, Java, C/C++, PHP and more. Includes line numbers
- **Markdown rendering:** Preview .md files with Markdig HTML conversion, theme-aware styling for headings, lists, tables, code blocks, and more
- **Persistent preview pane:** Added "Preview" view to nav pane. Auto-updates with file selection, showing images, syntax-highlighted text, and file info
- **Video thumbnails:** Added thumbnail display for .mp4/.mkv/.avi and other video files in icon view, hover preview, and preview pane
- **Image EXIF metadata:** Properties pane now shows resolution, camera model, and date taken for image files
- **SVG preview:** Preview .svg files via WebView2 (Space key) or Shell thumbnail (preview pane)

## [0.39.2] - 2026-03-25 : Pro Limits + Refactoring + UX Improvements

### Added
- **Pro limits:** Added free-tier limits for Store Upload (1), Layout Preset Save (Pro only), AI Rename (2), AI Backup Summary (2). Lock icon badges shown on Pro features
- **Extension editing:** File rename dialog now separates extension into a dedicated editable text box

### Changed
- **Improved AI folder organizer suggestions:** Significantly enriched context sent to AI with parent hierarchy, sibling folders, project type detection, and subfolder item counts
- **Default settings:** Changed defaults to 2-pane mode + Espresso theme + right nav visible
- **Full update button removed:** Replaced with repository link text guidance
- **Pane mode buttons:** Added selection background color to active mode
- **Favorites font size:** Extended range to 10-20
- **Backup frequency optimization:** Skip backups when no monitored fields have changed

### Fixed
- **Fix nav pane layout switch crash:** Fixed header action parent detach issue
- **Startup performance:** Fixed Task.Result blocking, batched OnPropertyChanged, fixed async void
- **Zero build warnings:** Resolved all MVVMTK0039/0034/CS4014 warnings
- **AI MaxTokens fix:** Increased token limits for theme diagnosis (4096) and folder name suggestions (1024)
- **Fix nav pane layout switch crash:** Fixed "element is already a logical child of another element" crash when applying presets, toggling dock, or changing zones. Resolved view detach failures caused by visual/logical tree mismatch, and missing parent detach for header action elements

## [0.39.1] - 2026-03-25 : Layout Presets + Theme Store Diagnosis + Bug Fixes

### Added
- **Nav pane layout presets:** Save and restore nav pane configurations (view placement, favorites, zone settings) as presets. Includes 4 built-in presets (Standard, Compact, Dual, Author's Layout) plus user-saved presets. One-click switching from status bar preset button
- **Theme store diagnosis:** Added theme diagnosis (non-AI and AI versions) for the store theme catalog. Launch from Sparkles/BrainCircuit icons in the store toolbar. Preview and download recommended themes directly

### Fixed
- **Fix terminal crash on first launch:** Fixed app crash caused by theme applied event firing before WebView2 initialization was complete. Moved event subscription to after WebView2 init and added guards and try-catch to handlers
- **Fix browser URL drag-and-drop:** Fixed URL drag-and-drop from Edge not working on some environments. When the browser sends both FileDrop and URL formats, URL format is now prioritized
- **Fix nav pane dock toggle crash:** Fixed crash when clicking dock toggle button caused by header action element not being detached from its previous parent before re-adding
- **Always show right nav pane toggle:** Right nav pane toggle button is now always visible in the status bar even when no items are assigned. Toggling ON shows an empty frame
- **Fix AI greeting UI deadlock on startup:** Fixed deadlock caused by accessing Lazy&lt;AiService&gt; from startup path which competed with UI thread for the Lazy initialization lock. AI config check now uses static fields only, and Lazy initialization is deferred past the startup contention window
- **Fix preset apply crash:** Fixed logical child duplication crash when applying layout presets by suppressing RebuildLayout during LoadFromLayout
- **Fix AI theme diagnosis truncation:** Increased MaxTokens from 512 to 2048 to prevent JSON response truncation with Gemini and other providers

## [0.39.0] - 2026-03-24 : Theme Store + AI Greeting Enhancement

### Added
- **Theme store infrastructure:** Added ThemeStoreService for communicating with the theme store. Implements index retrieval, theme download & install, upload, and rating via GitHub raw + Cloudflare Worker endpoints. Includes automatic user ID generation/persistence and store rating data (average rating, count, downloads) on theme info
- **Theme Store UI:** Added Theme Store panel to Control Deck. Browse community themes with category filter and search, download & install, star rating, and view my upload statistics. Theme cards in the gallery now display store rating info (average stars, count, downloads). Upload to store directly from theme card context menu
- **Theme Store Worker:** Built Cloudflare Worker + D1 backend for theme store. Implements theme upload, rating (upsert), download count, my uploads stats, and user ratings retrieval API. User's existing ratings are automatically restored when opening the store
- **Theme author name:** Username can be entered during license registration. Used as author name for AI-generated themes and uploads. Editable from License and Theme pages. Free users are automatically set as "Free User"
- **Built-in theme control:** Default 50 themes display a shield icon and are excluded from upload/download. Customized built-in themes can be uploaded after renaming
- **Theme card UX improvements:** Right-click no longer applies theme, quick upload button on card, GlowBar progress during upload
- **Theme store sort:** Added sort dropdown to store list. Switch between newest, top rated, and most downloaded
- **Theme store preview:** Left-click a store theme card to temporarily apply and preview it. Right-click menu offers "Revert" and "Download". Leaving the store automatically reverts to the original theme
- **Faster theme switching:** Color parse result caching, file I/O skip for store preview, and SolidColorBrush freezing significantly improve theme switching speed
- **Theme re-upload:** Same author can re-upload a theme to update the JSON while preserving download count and ratings. Uploads with the same name by different users are rejected
- **Delete uploaded theme:** Right-click a My Uploads card and select "Delete from store" to remove your uploaded theme
- **AI greeting randomness:** Inject random style, keyword, and seed into prompts so each greeting is unique even at the same time of day
- **Greeting tone control:** Added "Business" and "Caring" buttons to the properties greeting. Each click shifts the tone one step (7 levels), shown as dot indicators

### Changed
- **Add full update button:** When an update is detected, a "Full update" button is now shown alongside the automatic update. Includes a hint message explaining that a full update may resolve issues with malfunctioning features or unapplied language settings

### Fixed
- **Async AI welcome message:** Made AI greeting generation in properties view fully async so the app remains responsive while waiting for AI response. Item selection no longer interrupts the greeting display; the latest selection is shown after the greeting auto-hides
- **Fix AI model selection:** Fixed user-specified AI model being overridden by fallback when not in the hardcoded available models list. The model set in settings (validated via connection test) is now used as-is
- **Fix my uploads card display:** Fixed my uploads theme cards missing description, author name, and color chips. Added labels, counts, and proportional bars to the rating distribution display
- **Fix settings file save error:** Fixed JSON serialization failure caused by Infinity/NaN values from nav pane width calculations. Added JsonNumberHandling.AllowNamedFloatingPointLiterals
- **Fix AI provider/model mismatch:** Fixed 401 auth errors caused by globally shared model name across providers. Added model compatibility validation at request time with automatic fallback to default model
- **Improve AI analysis JSON repair:** Enhanced truncated JSON repair logic for AI responses cut off by MaxTokens. Now detects mid-string truncation and safely removes unclosed strings and their parent properties before closing brackets
- **Fix nav pane width manual control failure:** Fixed an issue where manual width adjustment via GridSplitter stopped working after enabling auto-fit width. Replaced ColumnDefinition Style Setter binding with direct code-behind control to eliminate WPF DependencyProperty precedence conflicts

## [0.38.9] - 2026-03-22 : Update Type Selection

### Added
- **Update type selection:** After checking for updates, users can now choose the download type (Auto select, Delta patch, Patch, Full update) from a dropdown. File sizes are shown for each option. Selecting "Full update" ensures all files are downloaded, which is useful when new files (e.g., Assets) are added in a version

## [0.38.8] - 2026-03-22 : Terminal Independent Settings + Nav Pane Auto-Width + Properties Improvement

### Added
- **Pane terminal settings popup:** Added a settings popup to A/B pane terminal tabs accessible from the action bar. Configure font family, font size, background color, foreground color, and theme sync. "Sync all terminals" toggle switches between global and per-pane settings. In shared mode, settings apply to all terminals instantly; in independent mode, each pane retains its own settings
- **Nav pane auto-fit width:** Added an auto-fit width toggle button (ArrowLeftRight icon) to the bottom section header. When enabled, measures the bottom section content and auto-adjusts the nav pane width. Terminal view is excluded. Setting is persisted per item
- **Unified terminal cd dropdown:** All terminals (A/B pane and nav pane) now have "A cd" and "B cd" buttons in the action bar. Click to show a dropdown of the corresponding pane's folder tabs and instantly cd to the selected folder

### Changed
- **Properties view display improvement:** Removed the separate filename row and merged into the full path display. Full path field has a fixed 6-line height with slim scrollbar for longer paths. Changed TypeName from TextWrapping to TextTrimming for stable height
- **Right nav pane width persistence fix:** Fixed an issue where the right nav pane width was not correctly saved after splitter drag on app exit

## [0.38.7] - 2026-03-22 : Favorites Enhancement (Color Tags, Badges, ABC Sort, Recently Added)

### Added
- **Favorites color tags:** Assign one of 7 color labels (Red, Orange, Yellow, Green, Blue, Purple, Gray) to favorite items. Displays a macOS Finder-style colored dot before the item name. Set or clear via right-click context menu. Supports `tag:red` search prefix to filter by color tag. Visible across all views: tree, pinned, recently added, alphabetical sort, and search results. Persisted in JSON settings
- **Favorites child count badge:** Displays a leaf item count badge next to virtual folder (container) names in the favorites tree. Recursively counts items in nested containers. Toggle visibility from the favorites settings dialog
- **Favorites access count display:** Shows the history DB access count in `(N)` format next to each favorite item name in the tree. Toggle visibility from the favorites settings dialog. Also supported in the search results list
- **Drag & drop from Explorer to favorites:** Drag files or folders from Windows Explorer and drop them onto the favorites tree to register as favorites. Dropping onto a virtual folder adds items as children; dropping on an empty area adds to root. Includes duplicate detection, lock enforcement, and item count notification
- **Favorites "Recently Added" section:** Displays up to 5 items registered within the last 7 days below the "Frequent" section in the favorites view. Shows relative dates (Today, Yesterday, N days ago). Toggle visibility via the Clock icon in the header or the settings dialog
- **Favorites alphabetical sort:** Added a Tree/ABC sort mode toggle to the favorites view header. In alphabetical mode, all non-container items are flattened and sorted alphabetically (Japanese kana-aware). Displays a list view with path info, supporting double-click, middle-click, context menu, and drag operations. Setting persists across restarts

## [0.38.6] - 2026-03-22 : AI Token Statistics + Startup Speedup + Properties Greeting

### Added
- **Nav pane bottom dock:** Added a toggle icon to the bottom section header in split mode. When enabled, the bottom section auto-sizes to its content while the top section fills the remaining space. Ideal for fixed-height views like Properties or Recent Folders. Setting is persisted per item
- **A/B pane terminal tabs:** Open terminal (PowerShell) tabs alongside file browser tabs. Click the SquareTerminal icon in the tab bar to add a terminal tab. Launches with the current folder as working directory, enabling seamless switching between file browsing and terminal. Shares settings (font, colors, theme sync) with the nav pane terminal
- **Error-to-feedback reporting:** Added "Report problem" button to error dialogs and AI feature error panels. Clicking it opens the feedback form pre-filled with error details, with system info and log attachments enabled for quick reporting. Error dialog auto-closes on report
- **Properties startup greeting:** Shows a time-based greeting message in the Properties nav pane view for 5 seconds after launch (6 time-of-day patterns, 10 languages). Fades out and transitions to current folder properties
- **Properties current folder fallback:** When no items are selected, the Properties view automatically displays the active pane's current folder properties (name, path, dates, attributes). Eliminates size fluctuation in bottom-docked mode

### Changed
- **Log level system overhaul:** Reclassified all log output (~302 locations) across the entire application to proper Serilog levels (INF/WRN/ERR). Previously all logs were output at INF level, causing error logs to be missed during feedback submission
- **Enhanced feedback error log collection:** Feedback submissions now collect the most recent 5 error log entries (previously 1), with 3 preceding context entries for each error. Significantly improves error diagnosis accuracy
- **AI token statistics:** Added AI token usage section to the Statistics page in Settings. Displays per-model token counts and estimated costs, per-feature call counts and token totals, with monthly filtering. Includes cost estimation based on published pricing for major models (Claude/OpenAI/Gemini)
- **AI error message classification:** AI request failures now display cause-specific messages (auth error, rate limit, timeout, network issue, server error, etc.). Replaces generic messages and raw API response exposure with actionable user guidance
- **Structured AI request/response logging:** All AI communication phases (request, success, retry, error) are logged with structured tags (`[AI-REQ]`/`[AI-RES]`/`[AI-RETRY]`/`[AI-ERR]`) including provider name, model, status code, and duration for easier diagnostics via feedback

## [0.38.5] - 2026-03-20 : Text Compare Menu Label Improvement

### Changed
- **Text Compare Menu Label Improvement:** Added pane information to compare menu items. Same-pane compare now shows "Compare Text (in A pane)", and cross-pane compare shows "Compare Text (A ↔ B pane)", making it clear which panes are being compared

## [0.38.4] - 2026-03-20 : Text Compare + Diff Minimap + License Thank You Card

### Added
- **Text Compare (Diff):** Select two text files and right-click "Compare Text" for side-by-side diff view. Lightweight DiffPlex-based viewer with inserted/deleted line highlighting. Close with Esc or overlay click
- **Diff Minimap:** Added an overview bar on the left edge of the text compare screen showing diff positions across the entire file. Color-coded indicators for insertions (green), deletions (red), and modifications (yellow) with click/drag navigation to jump to any location
- **License Thank You Card:** Displays a special thank-you card with accent glow on the license page after full license registration. Shows registered email address and activation date

### Fixed
- **PRO Badge Timing Fix on Startup:** Fixed PRO badge dots not being hidden immediately on startup with full license. Now syncs UI state after background authentication completes
- **License Page Subtitle Localization:** Fixed hero card subtitle not updating when switching UI language
- **Settings Copy Omission on Exit:** Fixed favorites display settings, Box API credentials, AI folder organizer preferences, and legacy animation settings being lost on app exit and reset on next launch. Unchanged backup skip now works correctly
- **Backup Numeric Comparison Robustness:** Fixed floating-point precision differences in window dimensions causing false positives in backup comparison
- **NavPane Split Ratio Drift Fix:** Fixed NavPane top/bottom split ratio drifting by tiny amounts on every save, causing backups to be created even with no actual changes. Rounded to 2 decimal places for stability
- **Single-Pane Mode Startup Focus Fix:** Fixed focus landing on B-Pane when launching in single-pane mode. Now reliably focuses A-Pane on startup regardless of pane mode

### Changed
- **Hide PRO Badge on Full License:** PRO badge dots (Lock icons) are now hidden across all locations (NavPane, Control Deck, page headers, theme settings, context menus, statistics page) when full license is activated. AI badges remain visible regardless of license state
- **BOX Link Copy Speed Improvement:** Removed per-item URL retrieval phase, completing immediately after parent folder URL retrieval. Significantly improved processing speed
- **Backup Description Improvement:** Reorganized recovery settings description into two lines with proper punctuation
- **Skip Unchanged Backups:** Auto-backups on app exit are now skipped when settings haven't changed since the last backup. Manual backups are always created. Uses JSON semantic comparison to eliminate false positives from formatting differences

## [0.38.3] - 2026-03-20 : AI Favorites Organizer + AI Backup Summary + AI Settings Improvements

### Added
- **AI Backup Summary Auto-Generation:** AI automatically generates natural language summaries for backup change descriptions. Upgrades the latest backup summary in the background on next launch. Manual backups also get AI summaries immediately
- **AI Model Validation:** Added a "Validate Model" button to the model selection section in AI settings. Sends a minimal test request with the specified model to verify availability
- **AI Connection Error Details:** Displays provider-specific, HTTP status code-based guidance on test connection and model validation failures. Supports all 10 languages
- **AI Provider Verification Note:** Added a note under the provider selection indicating that only Gemini API has been verified by the developer
- **AI Favorites Organizer:** AI automatically analyzes and reorganizes the favorites tree. Supports batch removal of broken links, grouping related items into folders, and auto-tagging descriptions for improved searchability. Broken link removal works without AI (Pro feature, free version limited to 2 times per day)

### Changed
- **AI Settings UI Layout Optimization:** Integrated the test connection button into the API key section, removing the standalone connection test section. Simplified screen layout
- **AI Validation Results Per-Provider Persistence:** Test connection and model validation results are now retained per provider. Switching providers no longer shows another provider's results, and results are restored after app restart
- **AI Error Message Consolidation:** Unified model validation error messages from provider-specific to common messages, simplifying translation resources

### Fixed
- **Nav pane header icons right-alignment fix:** Fixed header action buttons not being placed in the correct grid column when badge icon columns were inserted, causing them to appear left-aligned instead of right-aligned

## [0.38.2] - 2026-03-20 : AI Tab Management + Statistics Analysis + Favorites Settings + Tab Activity Foundation

### Added
- **AI Usage Statistics Analysis:** Added an AI analysis section at the top of the Statistics page. Cross-analyzes 7 data sources (action stats, folder history, favorites, tab activity, co-occurrence patterns, search history, working sets) to surface up to 7 types of insights with actionable suggestions — including unregistered frequent folders, hidden workflows, search mode optimization, and more (Pro feature, free version limited to 2 uses per day)
- **Tab Activity Tracking Foundation:** Added TabActivityService that records tab usage patterns (access frequency, duration, co-occurrence) to SQLite. Foundation infrastructure for AI tab management features
- **Folder-Specific Display Auto-Restore:** Automatically remembers sort order, view mode, and folder-first settings per folder and auto-applies on revisit. Toggleable in settings
- **AI Tab Auto-Lock/Close Suggestions:** Scores tabs by access frequency, duration, and recency. Displays lock-recommended (green) and close-recommended (orange) indicator dots on tab headers. Batch "Apply all" action available
- **Working Set Auto-Detection:** Detects frequently co-occurring A+B pane folder combinations and suggests saving them as working sets
- **Smart Tab Suggestions:** Detects folders related to the current folder based on co-occurrence history and suggests opening them in new tabs
- **AI Tab Management Nav Pane View:** Added a nav pane view integrating lock/close suggestions, working set candidates, and related folder suggestions (Pro feature, free version limited to 2 uses per day)
- **Favorites Settings Dialog:** Added a gear icon to the nav pane icon bar for configuring favorites view display settings. Font family, font sizes, description/tree line/access count bar visibility, delete confirmation, and lock can be managed from a single dialog. Settings are applied in real-time

### Fixed
- **Feature Usage Display Name Fix:** Fixed 4 AI features (AI Manual, AI Folder Analysis, AI Tab Management, AI Statistics Analysis) showing raw variable names instead of localized display names in the license settings feature usage section. Added localization for all 10 languages
- **Feature Usage Layout Improvement:** Changed feature usage grid from 2 columns to 3 columns for a more compact display. Added missing icons for 8 features

### Changed
- **Feature Usage Basic/AI Section Display:** Split feature usage on the license settings page into "Basic Features" (9 items) and "AI Features" (5 items) sections with section headings
- **Optimized PRO Feature Free Usage Limits:** Adjusted to 3 tiers based on feature characteristics. Experience-focused (Theme Change: 5/day), standard (search, export, etc.: 3/day), high AI cost (AI features: 2/day)

## [0.38.1] - 2026-03-19 : AI Folder Analysis + Badge Color Theme Support + Nav Pane Improvements

### Added
- **AI / Pro Badge Color Theme Support:** AI badge (purple) and Pro badge (orange) colors are now customizable per theme. Editable from the Misc section in the theme customization dialog. All 50 themes include theme-matched colors
- **AI Manual Structure Awareness:** Added app structure metadata (settings properties, keybindings, themes, effect settings) to the AI manual index. AI can now answer questions about settings and features not explicitly documented in the manual
- **AI Folder Organizer:** Added a new AI folder organization view to the nav pane. AI analyzes the focused pane's current folder and generates proposals for folder creation, file moves, and renames. Interactive workflow with checkbox selection, batch execution, and undo support
- **Nav Pane View Name Header:** Added a header row below the icon bar showing the active view's name. Action buttons previously at the bottom of each view are now compactly placed on the header's right side, reclaiming vertical space
- **AI / Pro Badge Indicators:** Added micro-badges to nav pane icon bar, view headers, and view management dropdown to identify AI features (purple Sparkles) and license-gated features (orange Lock). Tooltips also show [AI] / [Pro] labels. Badge dot visibility can be toggled in settings
- **Settings Page Badge Dots:** Added badge dots to Control Deck left nav (AI / Index categories), Theme settings AI diagnosis/generation section headings and buttons, and right content header. Synced with ShowBadgeDots setting

### Changed
- **AI Folder Analysis Pro Feature:** AI Folder Analysis is now a Pro feature (free version limited to 3 uses per day). Pro badge displayed in nav pane
- Improved AI features (Manual QA, file name suggestions) to sync output language with the app's language setting
- **AI Folder Analysis Response Improvements:** Restructured analysis results into 3 sections (Current State → Issues → Improvement Suggestions). Added YES/NO buttons to approve suggestions before generating actions. User organization preferences are now learned and applied to future suggestions. Renamed view from "AI Folder Organizer" to "AI Folder Analysis"
- **AI Folder Analysis UI Improvements:** Added an inline "Analyze" button in the chat area for intuitive first-time use. Added a chat history clear button. Enabled text selection and copy for AI messages
- **AI Folder Analysis: Hint Text, Export & Clear Confirmation:** Added hint text below approval buttons explaining that individual actions can be selected. Added chat export to Markdown file. Added confirmation dialog before clearing chat

### Fixed
- Fixed properties view always showing Archive attribute for file attributes. Removed Archive flag and added Compressed/Encrypted attribute display instead

## [0.38.0] - 2026-03-19 : AI Theme Diagnosis, Generation, Adjustment + AI Manual

### Added
- **AI Theme Diagnosis:** Added AI-powered theme consultation that interactively asks about preferences and recommends the best themes from 50 available options. Completes in 3-5 rounds of multiple-choice questions
- **AI Theme Generation:** Describe your ideal theme in natural language and AI generates a complete original theme with all 52 colors. Supports live preview, iterative refinement requests, and save-and-apply workflow
- **Theme Wizard Section Split:** Separated "Theme Diagnosis" and "AI Theme Generation" into independent sections in Control Deck theme settings for clearer feature distinction
- **AI Generated Theme Category:** Added a 6th category "AI Generated" to the theme gallery. AI-generated themes are automatically classified into their own dedicated category
- **AI Theme Adjust:** Added "AI Adjust" to the theme context menu, allowing natural language customization of existing themes via AI
- **Theme Deletion:** Added ability to delete AI-generated themes from the context menu. Automatically switches to standard when the active theme is deleted
- **AI Manual:** Added the ability to ask AI questions about the manual in natural language. Uses Lucene.NET to search relevant sections and generates answers in a chat-style UI. Also accessible as a nav pane view
- **AI Manual Markdown Rendering:** Improved AI manual answers to render with Markdown formatting. Headings, bold text, bullet lists, code blocks, and more are now properly formatted for better readability
- **AI Manual Multi-Bubble Display:** Improved AI manual answers to split into multiple chat bubbles by section and display sequentially. Enhances readability for long responses

### Changed
- **Customized Theme Display:** Added an accent-colored stripe on the left edge of customized theme cards for improved visibility
- **Theme Customize Flash Highlight:** Replaced pick mode (eyedropper) with flash highlight — click to briefly flash the corresponding area in the main window
- **Theme Customize Row Click Trigger:** Changed flash highlight trigger from ScanEye button to row click. Clicking key name, description, or row whitespace fires the flash; TextBox, color swatch, and reset button retain their existing behavior

### Fixed
- **AI Theme Diagnosis:** Fixed recommendation reason text being cut off on a single line instead of wrapping to show the full text
- **Theme Customize Selection:** Fixed selected color key row not maintaining highlight, making it impossible to visually identify the active selection

## [0.37.0] - 2026-03-18 : AI Integration, Drive D&D, Independent Nav Pane Toggle

### Added
- **Drive Drag & Drop:** Drag drives from the nav pane drive list and drop onto A/B panes to open them
- **AI Integration:** Added AI foundation supporting 4 providers — Claude, OpenAI, Azure OpenAI, and Gemini
  - New "AI" settings category in Control Deck (provider selection, API key management, connection testing, model selection)
  - API keys are encrypted with DPAPI and stored locally (never sent externally)
  - Azure OpenAI supports custom endpoint configuration
  - Model selector changed to editable ComboBox (select from suggestions or type any model name directly)
  - Added "Active Provider" ComboBox — select which provider to use for AI features, independent of the radio button used for API key configuration
- **AI Enable/Disable Toggle:** Toggle AI features ON/OFF from the status bar (Sparkles icon) or Control Deck > AI settings
- **AI Folder Name Suggestions:** Added "AI Suggestions" section to rename dialog — AI suggests names based on parent folder and sibling naming conventions
- **AI Model List Auto-Refresh:** For OpenAI and Gemini providers, a refresh button next to the model selector fetches the latest model list from the API
- **AI Toggle Long-Press Navigation:** Long-press (500ms) the AI toggle button in the status bar to open AI settings in the Control Deck
- **Log Button Long-Press to View Today's Log:** Click the log button to open the log folder; long-press to open today's log file directly in the default text editor
- **Independent Left/Right Nav Pane Toggle:** Split the nav pane visibility button into separate "Hide left nav" and "Hide right nav" buttons, allowing independent show/hide control (right nav button only appears when right nav has items)

### Fixed
- **Fixed AI settings lost on app exit:** AI-related properties (API keys, provider, model name, etc.) were not carried over during exit-time settings save, causing them to be overwritten with null values
- **Fixed Azure OpenAI connection test failure:** Connection test immediately after entering an endpoint used the stale endpoint due to debounced settings save delay

### Changed
- **Renamed "About" product info card update:** Added GitHub repository and latest release links to the product info card in Control Deck's About page
- **Improved AI folder name suggestions:** Now provides folder full path, directory listing, and past rename history as context to AI, generating suggestions that match the user's naming style
- **Renamed "Frequent Folders" to "Recent Folders":** Updated display names across nav pane, settings, and keybindings (internal keys unchanged)

### Fixed
- **Fixed Recent Folders drag & drop not working:** FrequentFolderItemViewModel was not recognized in file list and tab header drop handlers, causing drops to be rejected
- Fixed "please enter API key" error when testing connection after saving API key (now falls back to saved key)
- Fixed AI folder name suggestions not appearing (changed silent hide on API failure to error display, added Markdown code fence handling in response parsing, added diagnostic logging)
- Fixed AI suggestions showing "API key not set" error after saving API key (resolved debounced save delay preventing provider from receiving the key)

## [0.36.1] - 2026-03-17 : Fix crash on exit after auto-update

### Fixed
- Fixed fatal error caused by missing index files when exiting after auto-update

## [0.36.0] - 2026-03-17 : File content search (grep)

### Added
- **File content search (grep):** Added "Content Search" toggle (FileSearch icon) to normal search mode. Enables high-speed file content search powered by ripgrep engine
  - Toggle ON/OFF via FileSearch icon on the left side of the search bar (lights up in teal)
  - Results include a Match column showing matched line preview and match count
  - Keyboard shortcut: Ctrl+Shift+G to enter grep mode + focus search bar
  - Grep search flag saved and restored in search history

### Changed
- Changed search result Path column to show parent folder path (directory path without filename) instead of full path

### Fixed
- Fixed pane operations (preview, D&D, copy, etc.) becoming unresponsive when Control Deck close animation was interrupted or failed
- Fixed adaptive column indices being misaligned during grep search, causing incorrect column visibility

## [0.35.12] - 2026-03-17 : Dynamic path tracking for terminal A/B buttons

### Changed
- Removed ZenithDocViewer (standalone viewer) to reduce distribution size. Manual and changelog remain accessible from within the main app

### Fixed
- Terminal A/B pane buttons now dynamically update folder names when navigating panes or switching tabs

## [0.35.11] - 2026-03-17 : Multi-language support for Manual and Changelog (ja+en)

### Added
- **Multi-language support for Manual and Changelog:** Separated documents into `docs/ja/` and `docs/en/`, automatically displaying the Japanese or English version based on the UI language
  - Japanese setting shows Japanese version; all other settings show English version

### Changed
- Moved `MANUAL.md` / `CHANGELOG.md` from root to `docs/ja/`, and created English versions in `docs/en/`
- Updated document discovery logic in ManualViewModel, ChangelogViewModel, and AppSettingsViewModel for locale awareness

## [0.35.10] - 2026-03-17 : Search preset/history improvements, terminal/theme customization usage limits added

### Added
- Added export/import buttons to shortcut key settings (transferable to other environments via JSON file)
- Bundled 8 built-in search presets (updated today, last 7 days, last 30 days, large files, images, Office documents, executables, small files)
  - Date-based presets are dynamically calculated at application time; built-in presets cannot be deleted
- Added usage limit to terminal feature (free version: 5 times per day)
- Added usage limit to theme customization feature (free version: 5 times per day)

### Changed
- Terminal settings Popup now saves settings when closed by clicking outside the window (previously discarded)
- Reorganized search preset popup into two sections: built-in and user-created (separated by dividers and labels, visually distinguished by icons)
- Nav pane search preset list also reorganized into built-in/user two-section layout
- Changed size/date filter active indicator from underline to background color
- Search history popup now auto-closes when pressing Enter to execute a search
- Removed underline indicator from preset button (was always lit due to built-in presets being always present)
- Suppressed individual event firing during select all/deselect all of search result filters, switching to batch processing (reduced from 11 refreshes to 1)
- Changed license usage retrieval from N+1 individual queries to a single GROUP BY query
- Consolidated duplicate search calls in search execution logic into a local function
- Consolidated terminal settings color field update processing into a helper method (eliminated 6 duplicated locations)

### Fixed
- Fixed issue where DateFilter mode was not set to Custom when applying search presets, causing underline to remain after clearing
- Fixed built-in presets to also appear in index search mode
- Fixed issue where applying a built-in preset during index search mode would revert to normal search mode
- Fixed issue where "Search Preset:" was incorrectly displayed in search history when no preset was used (replaced reverse-lookup approach for filter conditions with direct preset name propagation at application time)
- Fixed issue where preset name was not recorded in search history for manual searches after applying a built-in preset (removed early clear when SearchText is empty)
- Fixed issue where intermediate queries during instant search (e.g., "a", "aa") were being registered in search history (removed automatic search on each keystroke; now searches only execute on Enter key confirmation)

## [0.35.9] - 2026-03-16 : Added padding to terminal rendering

### Changed
- Added inner padding (left 8px / top 4px / right 4px) to terminal rendering surface for a modern appearance where text does not touch the edges

## [0.35.8] - 2026-03-16 : Compact terminal prompt

### Changed
- Shortened terminal prompt to display only the folder name (e.g., `myfolder> `), preserving input area in narrow widths
- Added `-NoLogo` flag to PowerShell startup to suppress banner display

## [0.35.7] - 2026-03-16 : Added dotnet run / publish / clear buttons to terminal

### Added
- Added "Run" (dotnet run), "Publish" (dotnet publish -c Release), and "Clear" (clear) buttons to the terminal bottom bar
- Added tooltip localization keys to all 10 language files

## [0.35.6] - 2026-03-16 : Fixed localization keys displayed raw in status bar

### Fixed
- Fixed bug where localization keys such as `notify.theme.changed` were displayed raw in the status bar (added approximately 80 missing keys to all 10 language files)

## [0.35.5] - 2026-03-16 : Fixed terminal and other settings lost on restart

### Fixed
- Fixed bug where terminal settings (font size, font, background color, foreground color, theme color sync) were overwritten with default values on app exit, causing them to be lost on restart
- Similarly fixed ShowSizeBar, ShowHoverThumbnail, ShowPinnedFavorites, FrequentFolderExclusions, and LastFeedbackSent being overwritten on exit

## [0.35.4] - 2026-03-16 : Terminal settings instant save, reset button styling, save notification

### Fixed
- Fixed terminal settings to flush debounce queue and save to disk immediately on OK click

### Changed
- Unified reset button to the same standard button style (with border) as OK/Cancel
- Display "Terminal settings saved" notification in status bar on OK save completion

## [0.35.3] - 2026-03-16 : Terminal settings popup outside-click restore + button style improvements

### Fixed
- Fixed persistence bug where preview values remained in runtime when closing the terminal settings popup by clicking outside (now executes the same restore process as Cancel)

### Changed
- Changed OK/Cancel buttons to WPF default style (with border) for consistency with other dialogs

## [0.35.2] - 2026-03-16 : Added OK/Cancel buttons to terminal settings popup

### Changed
- Added OK/Cancel buttons to the terminal settings popup for explicit confirm/discard of setting changes
- Settings changes are now previewed in real-time (immediately reflected on the rendering surface), with OK to save and Cancel to restore

## [0.35.1] - 2026-03-16 : Fixed terminal settings "Sync with theme colors" checkbox initialization

### Fixed
- Fixed issue where the "Sync with theme colors" checkbox in the terminal settings popup appeared unchecked while font color and background color were disabled

## [0.35.0] - 2026-03-16 : Terminal WPF native rendering, reduced footprint

### Changed
- Replaced terminal rendering engine from WebView2 + xterm.js to WPF native rendering (memory usage reduced from 300-400MB to approximately 15-20MB)
- Removed ControlDeck terminal hide workaround (Airspace issue resolved)
- Changed terminal default font size from 14 to 12

### Added
- Added font family selection ComboBox to terminal settings (selectable from monospaced fonts installed on the system)
- ANSI/VT100 escape sequence parser (supports SGR 256-color/RGB, cursor movement, scroll regions, alternate screen buffer)
- Text selection, copy (Ctrl+C), and paste (Ctrl+V) support in terminal
- Correct width calculation and rendering for CJK full-width characters

## [0.34.3] - 2026-03-16 : Terminal view improvements (theme support, scrollbar, Claude button)

### Added
- Added Claude launch button and Claude (skip permissions) button to the terminal bottom bar

### Changed
- Applied theme colors to terminal settings Popup controls (ComboBox, TextBox)
- Added DropShadowEffect to the terminal settings Popup (unified with other Popups)
- Unified xterm.js scrollbar with app-side styling (12px width, rounded Thumb, theme color tracking)

## [0.34.2] - 2026-03-16 : Terminal settings UI improvements (color picker, WebView2 display fix)

### Changed
- Changed terminal settings font size range to 5-20 in increments of 1
- Fixed font size ComboBox display area (resolved text clipping)
- Integrated color picker (PixiEditor.ColorPicker) into background/foreground color previews

### Fixed
- Fixed issue where terminal WebView2 appeared in front when ControlDeck was displayed (Airspace issue workaround)
- Fixed extremely slow theme switching while terminal was displayed (temporarily hide WebView2 during resource updates)

## [0.34.1] - 2026-03-16 : Terminal settings UI + ANSI color improvements

### Added
- Added settings Popup to the terminal view (opened via gear button)
- Font size change (10-24) with immediate preview
- User-specified background/foreground colors (when theme sync is OFF)
- Theme color sync ON/OFF toggle
- Auto-save settings and restore on startup

### Changed
- Automatic ANSI 16-color palette switching based on theme background lightness (dark/light support)
- Improved PSReadLine yellow command display (dark: `#CCCC00`/`#D7BA7D`, light: `#795E26`/`#B5A642`)
- Extended `SendThemeToXterm()` to send all 16 colors + cursor/selection

## [0.34.0] - 2026-03-16 : Added terminal view to nav pane

### Added
- Added "Terminal" view to nav pane (WebView2 + xterm.js + ConPTY approach)
- PowerShell can be operated directly as an embedded terminal
- Tab management for multiple terminals (new tab, close, switch)
- Pane path buttons for instantly cd-ing to A/B pane current paths
- Automatic terminal color scheme update synchronized with theme switching
- Full terminal emulation including ANSI colors, mouse, scrollback, etc.
- Localization support for all 10 languages

## [0.33.14] - 2026-03-16 : Externalized standard theme to JSON file

### Changed
- Externalized standard theme color values and descriptions to `themes/standard.json`, unifying management with the other 49 themes
- No C# code changes needed when adding languages (only JSON editing required)
- Maintained minimal ja/en fallback as a safety measure for theme folder loss or JSON corruption

## [0.33.13] - 2026-03-15 : Fixed nav pane icon bar overlap

### Fixed
- Fixed issue where view icons in the nav pane upper/lower icon bars overlapped with the dropdown menu button (ChevronDown) as icons increased (guaranteed display priority via Grid column separation)

## [0.33.12] - 2026-03-15 : Multi-language support (10 languages)

### Added
- Expanded language files to 10 languages (in addition to existing ja/en, added the following 8 languages)
  - Simplified Chinese (zh-CN), Traditional Chinese (zh-TW), Korean (ko-KR), German (de), Spanish (es), French (fr), Russian (ru), Portuguese (pt)

## [0.33.11] - 2026-03-15 : Dynamic language file detection and ja fallback

### Added
- Dynamic scanning of language files (`lang/*.json`) for automatic detection of user-added language files
- Added `_meta.displayName` field to each language JSON for defining display names within the language file
- Added fallback to Japanese (ja.json) when translation keys are undefined

## [0.33.10] - 2026-03-15 : Improved startup UI freeze

### Fixed
- Fixed issue where MergeItems/ApplySort ran at high priority (Normal) during startup, blocking input (changed to always use Background priority)
- Improved icon loading Dispatcher calls saturating the UI thread (batch size 100 to 200, inserted 5ms wait between batches)

## [0.33.9] - 2026-03-15 : Changed free version usage limits from lifetime 30 to daily 5 reset

### Changed
- Changed free version per-feature usage limit from lifetime 30 to 5 per day (daily reset model)
- Updated `GetUsageCountAsync` / `GetUsageCountSync` to filter by current UTC day
- Added "today" / "Today" to usage display text (ja/en)

## [0.33.8] - 2026-03-15 : Added notify.update.* localization keys

### Fixed
- **i18n**: Added 6 missing keys (`checking`, `check_failed`, `available_downloading`, `up_to_date`, `downloading`, `ready_to_restart`) to the `notify.update` section in `ja.json` / `en.json`, fixing update notifications displaying as raw key names

## [0.33.7] - 2026-03-15 : Instant locale switch reflection on theme page

### Fixed
- **i18n**: Fixed issue where theme page Description / CategoryDisplayName did not update immediately on language switch (added `RefreshThemes()` call in `OnSelectedLanguageChanged`)

## [0.33.6] - 2026-03-15 : i18n Phase 3 — Localized remaining hardcoded Japanese strings

### Changed
- **i18n**: Replaced 14 preview messages, file open error / D&D messages, tree D&D operation messages, all feedback service strings, update service progress display, Undo descriptions, shortcut helper, and model display names (file types, sort properties, size/date filters) with `App.L10n.Get()` / `App.L10n.Format()`
- **i18n**: Localized hardcoded strings in ManualWindow / DocViewerControl (shared project) via `LocalizationService.Instance`
- **i18n**: Added `LocalizationService.cs` as a linked reference to ZenithDocViewer (enabling static access from shared project)
- **i18n**: Expanded `lang/ja.json` / `lang/en.json` from 1295 to 1519+ keys (added preview, file_open, tree_drag, feedback, update, undo, shortcut_helper, model, doc sections)

## [0.33.5] - 2026-03-15 : i18n Phase 2 — Localized C# code-behind + remaining XAML

### Changed
- **i18n**: Replaced hardcoded Japanese strings throughout C# code-behind with `App.L10n.Get()` / `App.L10n.Format()` (~520 locations, 84 files)
- **i18n**: Made ZenithDialog button labels (OK/Cancel/Yes/No) dynamically localizable
- **i18n**: Localized all context menu items (36+), notification messages (~200), dialog messages (~70), services & helpers (~65)
- **i18n**: Refactored column header sort detection from Japanese text dependency to Tag-based approach (SortInfoToVisibilityConverter, IsColumnActiveConverter)
- **i18n**: Localized theme category display names, descriptions, drive types, key binding display names, usage statistics, file types, etc.
- **i18n**: Migrated dialog Titles from XAML hardcoded to code-behind `App.L10n.Get()` (10 dialogs)
- **i18n**: Replaced 6 XAML StringFormat locations with LocalizedFormatConverter
- **i18n**: Made `NavViewItem.AllViews` / `ThemeCategoryInfo` display names dynamically localizable
- **i18n**: Expanded `lang/ja.json` / `lang/en.json` from 668 to 1295 keys

## [0.33.4] - 2026-03-14 : i18n Phase 1 — Localized all XAML files

### Added
- **i18n**: Replaced hardcoded Japanese text in all XAML files (28 files) with `{loc:Localize}` markup extension (656 locations)
- **i18n**: Systematically organized 627 keys in `lang/ja.json` / `lang/en.json` (settings, dialogs, nav pane, tabs, welcome screen, etc.)
- **i18n**: Target files: ControlDeckView(320), TabContentControl(92), IndexSearchView(37), WelcomeWindow(33), MainWindow(23), FavoritesView(20), IndexItemSettingsDialog(18), ThemeWizardDialog(13), ProjectSetsView(12), BoxApiView(10), RecentFilesView(8), FrequentFoldersView(8), FilePaneControl(8), PropertiesView(7), HistoryView(6), DirectoryTreeView(6), ThemeCustomizeDialog(5), RenameDialog(4), DrivesView(4), SearchHistoryView(3), SavedSearchesView(3), InputBox(3), AddToFavoritesDialog(3), AddFolderDialog(3), SelectFolderDialog(2), SelectExplorerWindowsDialog(2), DescriptionEditDialog(2), NavPaneControl(1)

## [0.33.3] - 2026-03-14 : Language hot-switch (no restart required)

### Changed
- **i18n**: Language switching no longer requires restart. Refactored `LocalizeExtension` to Binding-based approach; all UI text updates immediately on locale change
- **i18n**: Removed restart banner and restart button from language settings page

## [0.33.2] - 2026-03-14 : Added language settings page

### Added
- **i18n**: Added "Language" settings page to Control Deck. Allows switching between Japanese and English
- **i18n**: `lang/en.json` — added keys for language page
- **Settings**: Persisted `PreferredLanguage` setting to `settings.json`, loaded on startup

## [0.33.1] - 2026-03-14 : i18n Phase 1 — ControlDeck + MainWindow tooltip replacement

### Added
- **i18n**: `lang/en.json` — English resource file (English versions of all keys, for end-to-end verification)
- **i18n**: Replaced 13 ControlDeck sidebar labels + 12 header locations with `{loc:Localize}`
- **i18n**: Replaced 21 MainWindow tooltip locations (title bar 6, window snap 6, status bar 5, preview 3, ControlDeck close 1) with `{loc:Localize}`
- **i18n**: Replaced unsupported preview text with `{loc:Localize Key=ui.preview.unsupported_format}`

### Changed
- **i18n**: `lang/ja.json` — Renamed `backup` to "Recovery", `effects` to "Effects", `shortcut` to "Shortcut Keys". Added new keys for `license/statistics/feedback/about`

## [0.33.0] - 2026-03-14 : i18n multi-language infrastructure (Phase 0)

### Added
- **i18n**: `LocalizationService` — JSON-based localization service (accessed via `App.L10n`, flattens nested JSON to dot-separated keys)
- **i18n**: `LocalizeExtension` — XAML markup extension (references translated strings via `{loc:Localize Key=...}`)
- **i18n**: `lang/ja.json` — Japanese resource file (settings categories, tooltips, actions, columns, notifications, status)

## [0.32.9] - 2026-03-14 : Fixed per-pane theme re-click application

### Fixed
- **Theme**: Fixed issue where clicking an already-selected theme in per-pane theme mode did not apply it

## [0.32.8] - 2026-03-14 : Added release notes to GitHub Release

### Changed
- **CI**: Improved GitHub Release page to auto-generate CHANGELOG-based release notes, app overview, and download description table

## [0.32.7] - 2026-03-14 : Fixed ShowPathInTitleBar not reflected on startup

### Fixed
- **Title bar**: Fixed issue where path was not reflected in the title bar on startup when ShowPathInTitleBar was enabled (explicitly called UpdateWindowTitle after tab restoration)

## [0.32.6] - 2026-03-14 : GitHub Actions Node.js 24 compatibility

### Fixed
- **CI**: Updated actions/checkout and actions/setup-dotnet to v5, resolving Node.js 20 deprecation warnings

## [0.32.5] - 2026-03-14 : Internal refactoring — extension constants centralization, ViewModel splitting

### Changed
- **Extension constants centralization**: Consolidated file extension HashSets scattered across files into `FileExtensions` class, resolving inconsistencies (e.g., missing .webp)
- **GetMainViewModel extension method**: Unified `Window.GetWindow(this)?.DataContext as MainViewModel` pattern to `this.GetMainViewModel()` (TabContentControl 12 locations, FilePaneControl 3 locations)
- **TabItemViewModel splitting**: Separated search (~850 lines) and navigation (~410 lines) into partial class files, reducing the main file to ~3,250 lines

## [0.32.4] - 2026-03-14 : Theme diagnostic wizard expanded to 6 steps

### Changed
- **Theme diagnostic**: Expanded questions from 3 to 6 (brightness, color temperature, vibrancy, contrast, mood, accent color)
- **Theme diagnostic**: Improved recommendation accuracy with 6-axis weighted scoring (CIE L*, color temperature, HSV saturation, WCAG contrast ratio, category, hue)
- **Theme diagnostic**: Display match percentage (%) on result cards
- **Theme diagnostic**: Added "monochrome/achromatic" option for accent color and "no preference" option for mood

## [0.32.3] - 2026-03-13 : Fixed context menu text color on highlight

### Fixed
- **Context menu**: Fixed issue where text color did not change on highlight (added scoped implicit TextBlock Style to ContentPresenter with Binding to MenuItem.Foreground for propagation)

## [0.32.2] - 2026-03-13 : Context menu color application fix + OnePointDarkText theming

### Fixed
- **Context menu**: Fixed issue where highlight text color was not properly propagated to child elements (removed TemplateBinding, switched to Style Setter approach)
- **OnePointDarkTextColor theming**: Changed one-point dark strip text color from hardcoded to theme color key, enabling per-theme customization

## [0.32.1] - 2026-03-13 : Theme customization dialog improvements

### Changed
- **Theme customization**: Control Deck now auto-closes when the dialog is displayed, making it easier to confirm live preview on the main screen
- **Theme customization**: Changed dialog position to screen center, placed color list scrollbar near window right edge

## [0.32.0] - 2026-03-13 : Theme customization feature

### Added
- **Theme customization**: Added dialog for editing all 62 color keys individually via right-click on theme card, then "Customize Theme"
- **Live preview**: Color changes in the color picker are immediately reflected on screen for pre-save confirmation
- **Section view**: Color keys organized into 6 sections (Basic UI, List, Search, Accent, Menu, Other) with tab switching
- **Custom overrides**: Only changed keys are saved to `themes/_custom/{theme_name}.json`, keeping original theme files untouched
- **Customized badge**: Theme cards with customizations display a palette icon
- **Reset to default**: Customizations can be bulk-reset via right-click menu

## [0.31.35] - 2026-03-13 : Transfer speed display stabilization (EMA smoothing)

### Fixed
- **Transfer speed display**: Fixed issue where speed was not displayed on high-speed storage such as NVMe SSDs (relaxed threshold from 0.5s to 0.15s)
- **Speed stability**: Changed from overall average to EMA (Exponential Moving Average) approach, reducing display fluctuations

## [0.31.34] - 2026-03-13 : Added transfer speed display to GlowBar

### Added
- **Transfer speed display**: Real-time transfer speed (KB/s to GB/s) displayed in the center of the status bar during copy operations
- **File operation status**: During operations, copy/move progress is displayed in center with AccentBrush highlight, taking priority over normal notification messages

### Changed
- **Move status**: Changed move display from percentage to file count based (`N / Total items`)

## [0.31.33] - 2026-03-13 : Fixed auto-update StateChanged subscription

### Fixed
- **Auto-update**: Fixed issue where UpdateService StateChanged event was not subscribed, preventing auto-download from firing (re-subscribed after lazy service initialization)

## [0.31.32] - 2026-03-13 : High-speed updates via Delta Patch

### Added
- **Delta update**: Added delta ZIP containing only changed files from the previous version to Release, significantly reducing update size for N-1 users
- **3-tier update priority**: Automatically selects optimal ZIP in order: delta (diff patch), patch, then full

### Changed
- **Release workflow**: Compares SHA256 with previous tag's full ZIP to auto-generate `_delta_from_{prevVer}.zip` containing only changed files
- **Update service**: Refined status messages into 3 types: "diff patch", "patch", "full update"; logs the ZIP type used

## [0.31.31] - 2026-03-13 : Save/restore split position in dual-pane mode

### Added
- **Pane width ratio persistence**: Split position in dual-pane mode is saved to settings.json and restored after app restart

### Fixed
- **GridSplitter**: Fixed issue where the split line could not be dragged in dual-pane mode (expanded hit area + set ZIndex to prevent obstruction by right pane)
- **Pane layout initialization**: Prevented double invocation of ApplyPaneLayout via PropertyChanged when setting PaneCount, fixing _savedRightPaneWidth being overwritten to 0

## [0.31.29] - 2026-03-13 : Changed patch ZIP to exclusion list approach

### Changed
- **Release workflow**: Changed patch ZIP creation from individual file copy approach to exclusion list approach, eliminating manual maintenance when adding new DLLs

## [0.31.28] - 2026-03-13 : Changed Box API credentials to user-registration approach

### Changed
- **Box API**: Removed hardcoded Client ID / Client Secret, switched to user-registered credentials approach
- **BoxApiView**: Implemented 3-state UI (credentials not registered, not authenticated, authenticated); redirect URI is also editable (initially blank); all 3 fields have required validation
- **WindowSettings**: Added `BoxApiClientIdEncrypted` / `BoxApiClientSecretEncrypted` / `BoxApiRedirectUri`, encrypted with DPAPI
- **File list row height default**: Changed initial default from 32px to 24px (compact)

## [0.31.27] - 2026-03-13 : Internal refactoring (flag simplification, cache consolidation)

### Changed
- **TabItemViewModel**: Removed `_skipNextExistsCheck` volatile flag, unified into `LoadDirectoryAsync` parameter to eliminate dual management
- **ThemeService**: Removed backward-compatible `_preloadedThemeJson` single cache, consolidated into `ConcurrentDictionary` cache
- **FeedbackService**: Replaced `DateTime.MinValue` sentinel value dependency with explicit `_lastSentLoaded` flag, clarifying initial load detection

## [0.31.26] - 2026-03-13 : Fundamental startup list display acceleration

### Changed
- **Async icon/thumbnail loading**: Changed `LoadIconsAsync` / `LoadThumbnailsForCurrentItemsAsync` to fire-and-forget, immediately displaying list with generic icons (individual icons auto-populate later)
- **Dispatcher call consolidation**: Merged MergeItems and ApplySort from 2 Dispatcher calls to 1, reducing layout passes
- **Changed startup Dispatcher priority to Normal**: Uses high priority only for initial load; normal navigation maintains Background priority
- **Relaxed watchdog timeout to 5 seconds**: Normally completes in under 500ms due to acceleration, but provides safety net for network paths

## [0.31.25] - 2026-03-13 : Improved A/B pane display delay on startup

### Fixed
- **Startup tab restoration acceleration**: Changed `DirectoryExistsSafeAsync` for local paths to synchronous check by skipping Task.Run/Delay, reduced redundant existence checks (3 per tab max to 1), parallelized tab path resolution
- **Properly await tab restoration completion**: Changed to await left/right pane `RestoreTabsAsync` with `Task.WhenAll`, fixing coordination with watchdog
- **Theme JSON pre-loading for pane mode**: Changed theme JSON cache to multi-theme support (ConcurrentDictionary), parallel preloading 4 themes in Pane mode

## [0.31.24] - 2026-03-13 : Feedback page card bottom alignment

### Fixed
- **Fixed bottom alignment gap between attachment info card and preview card**: Added same bottom margin to preview card Border as attachment info card, aligning both column bottoms

## [0.31.23] - 2026-03-13 : Fixed error log preview truncation

### Fixed
- **Fixed error log preview being truncated**: Wrapped the TextBlock (which had MaxHeight limiting full log display) with ScrollViewer, enabling scrolling within the same frame

## [0.31.22] - 2026-03-12 : Feedback feature improvements (error log extraction + introductory text)

### Changed
- **Limited log collection to error logs only**: Changed to `CollectRecentErrorLogs()`, collecting only `[ERR]`/`[WRN]`/`[FTL]` entries with stack traces from all log files (last 31 days)
- **Added explanatory text to feedback page**: Clearly stated destination (private repository), viewers (author only), purpose (quality improvement only), and no personal information collection within the hero card
- **Changed attachment checkbox to "Attach recent error logs"**: Added annotation text about auto-collected logs
- **Updated preview footer text**: Changed to align with destination description

## [0.31.21] - 2026-03-12 : Fixed feedback submission log attachment path

### Fixed
- **Fixed log collection path mismatch**: Aligned the log directory referenced by `FeedbackService.CollectRecentLogs()` with `FileLoggerService` output destination, resolving the issue where "No log files found" was always returned

## [0.31.20] - 2026-03-12 : Feedback page layout overhaul

### Changed
- **60:40 fixed ratio columns**: Fixed input form (60%) and preview (40%) ratio, eliminating layout jitter caused by input content
- **Preview card stabilization**: Fixed preview frame height with MinHeight + internal ScrollViewer. Empty state displays skeleton-style guidelines to eliminate empty appearance
- **Moved submit button to right column bottom**: Optimized eye flow from preview confirmation to submission. Button is full-width and always in a fixed position
- **Added focus state**: Input fields display accent color border on focus, visually navigating the current input position
- **Unified vertical rhythm**: Standardized label-to-input spacing at 8px and item spacing at 20px for a balanced form layout

## [0.31.19] - 2026-03-12 : Feedback page 2-column + real-time preview

### Changed
- **Redesigned feedback page to 2-column layout**: Form, attachments, and submit on the left; real-time preview on the right. Input content is immediately reflected in the preview, eliminating the preview button and confirmation step
- **Simplified submission requirements**: Only title input required for submission (removed mandatory preview confirmation)
- **Simplified attachment checkboxes to vertical layout**: Changed to a layout that doesn't break in narrow columns

## [0.31.18] - 2026-03-12 : Added feedback submission feature

### Added
- **Feedback submission feature**: Added "Feedback" category to Control Deck. Bug reports, feature requests, and other feedback can be sent directly via GitHub Issues
- **Privacy-conscious design**: System information and recent log attachment are opt-in via checkboxes. When checked, content is displayed in an expandable preview; full preview confirmation is required before submission
- **Rate limiting**: 5-minute cooldown prevents consecutive submissions

## [0.31.17] - 2026-03-12 : Fixed color persistence on theme switch (including startup crash fix)

### Fixed
- **Fixed startup crash on theme switch**: `DynamicResource` Color references violated WPF Freezable constraints (SolidColorBrush in ResourceDictionary, Animation in Storyboard, GradientStop, etc. are Frozen at BAML compile time), causing startup crash. Reverted all XAML `DynamicResource Color` to `StaticResource Color`; theme switching now refreshes residual resources from code-behind via `ThemeApplied` event
- **Fixed previous theme color persistence on switch**: Added `ThemeService.ThemeApplied` event to immediately update TreeView/ListView SystemColors overrides (selection highlight colors, etc.), ScanBar gradients/glow, and IndexSearchView drop highlight brushes from code after theme switch

## [0.31.15] - 2026-03-12 : Restore pane split position when returning to dual-pane

### Fixed
- **Pane split position restoration on dual-pane return**: A/B pane split position is now saved before switching to single-pane and restored when returning to dual-pane. Split ratios manually adjusted via GridSplitter are now maintained across single-pane to dual-pane transitions

## [0.31.14] - 2026-03-12 : Fixed screen toggle disabled after A/B pane split

### Fixed
- **Fixed screen toggle disabled after A/B pane split**: When manually adjusting A/B pane split position via GridSplitter, WPF would overwrite ColumnDefinition.Width bindings, causing single-pane/dual-pane toggle buttons to stop working. Switched from XAML binding to direct code-behind control, ensuring ColumnDefinition.Width is set reliably on PaneCount change

## [0.31.13] - 2026-03-12 : Fixed ScopeFilterPopup hover animation thread error

### Fixed
- **Fixed search scope filter Popup thread error**: Fixed `InvalidOperationException` (Storyboard timeline tree Seal error) occurring on ScopeFilterButton click. Replaced `ColorAnimation` + `DynamicResource` combination with Setter-based hover effects

## [0.31.12] - 2026-03-12 : Favorites "Frequently Used" section design improvements

### Changed
- **Favorites "Frequently Used" section design improvements**: Removed left accent line, switched to background color (BackgroundBrush) differentiation for header row. Changed icon to TrendingUp, expanded frequency bar width from 40 to 56px, added right-slide animation on hover for each item (2px, 150ms)

## [0.31.11] - 2026-03-12 : Favorites "Frequently Used" drag support + font size unification

### Added
- **Favorites "Frequently Used" drag & drop**: Items in the TOP5 section can now be dragged and dropped onto A/B panes to open folders. Implemented using the same pattern as search result list

### Changed
- **Favorites tree font size unification**: Explicitly added `FontSize="12"` to normal tree name TextBlock, unifying with "Frequently Used" section

## [0.31.10] - 2026-03-12 : Added frequency bar to Favorites "Frequently Used" section

### Added
- **Favorites "Frequently Used" section frequency bar**: Added horizontal access count bar inside TOP5 cards. Subtle design using AccentBrush x Opacity 0.13, with proportional display where the highest-access item gets the longest bar (28px). Count text is right-aligned

## [0.31.9] - 2026-03-12 : Improved visual distinction of Favorites "Frequently Used" section

### Changed
- **Favorites "Frequently Used" section**: Changed to card-style design with SelectionBrush background + left accent line + rounded corners for clear visual distinction from the regular tree. Adopted safe color scheme ensuring text visibility across all 50 themes

## [0.31.8] - 2026-03-12 : Favorites "Frequently Used" section + Expand All/Collapse All

### Added
- **Favorites "Frequently Used" section**: Compact display of top 5 items scored by access frequency x recency from history DB at the top of the tree. Double-click to navigate, middle-click for new tab, right-click for A/B pane selection
- **Pin toggle**: Added pin button to toolbar for toggling "Frequently Used" section visibility. Setting persists across restarts
- **Expand All/Collapse All**: Right-click on empty area of tree, then "Expand All" / "Collapse All" to bulk toggle expansion state of the entire favorites tree

## [0.31.7] - 2026-03-12 : Slimmer Nav Pane Search Bar

### Changed
- **Nav pane search bar**: Reduced margins and padding of the search bar in Favorites, Browsing History, and Recently Opened Files for a more compact display in limited space

## [0.31.6] - 2026-03-12 : Improved Visibility of Favorite Star Marks

### Changed
- **Recently opened folders star mark**: Registered stars are now displayed in gold (IndexSearchIconBrush), while unregistered stars are shown subtly at Opacity 0.3. Intuitively distinguishable regardless of theme
- **Star tooltip**: Dynamically switches based on state (unregistered: "Add to Favorites" / registered: "Already in Favorites")

## [0.31.5] - 2026-03-11 : Fix for Initial Display of Recently Opened Folders Star Marks

### Fixed
- **Recently opened folders star mark**: Fixed an issue where star marks for folders already registered as favorites were displayed as unregistered stars at app startup. Fixed initialization order to sync IsFavorite flags after loading favorites data

## [0.31.4] - 2026-03-11 : Box API Integration Phase 1 — OAuth Authentication + Read-Only File Listing

### Added
- **Box API connection**: Added functionality to directly call Box API and display files/folders in read-only mode via OAuth 2.0 authentication. Added a new "Box API" view to the nav pane, displaying the authenticated user's root folder
- **Virtual path scheme**: Navigation and listing of Box API folder hierarchies in A/B panes via `boxapi://{folderId}` virtual path format
- **Token persistence**: Access tokens and refresh tokens are securely stored with DPAPI encryption. No re-authentication required after app restart

## [0.31.3] - 2026-03-11 : Improved Visibility of Theme Diagnostics Section

### Changed
- **Theme diagnostics UI**: Removed the clickable card format and separated into section headings + description text + clear buttons. Hover and press feedback on buttons make the action targets intuitively clear

## [0.31.2] - 2026-03-11 : Added Theme Diagnostics Wizard

### Added
- **Theme diagnostics**: Added a wizard that recommends the top 5 themes from 50 available based on 3 questions (screen brightness / atmosphere / accent color). Trigger button placed at the top of the Control Deck theme tab. Click result cards for live preview, apply to confirm, cancel to revert to original theme

## [0.31.1] - 2026-03-11 : Nav Pane Drop List Exclusive Control Bug Fix

### Fixed
- **Nav pane zone move revert bug**: Fixed an issue where `EnsureActiveConsistency` reverted changes when moving items between upper and lower sections in the dropdown checklist, causing items to return to their original position. Fixed by switching Active references before zone movement to ensure exclusive control consistency

## [0.31.0] - 2026-03-11 : Comprehensive Refactoring — Async I/O, Resource Management, Error Handling Hardening

### Changed
- **Async I/O engine rebuild**: Migrated all file operations in WindowSettings / ThemeService / SettingsBackupService to `async/await` base. Settings saving, theme loading, and backup creation no longer block the UI thread
- **CancellationToken full adoption**: Introduced app-level shutdown token, propagated to startup background tasks (folder creation, logging, temporary cleanup, etc.). Added cancellation checks to IndexService search loop
- **COM operation timeout**: Added 60-second timeout to PdfConversionService Word/Excel/PowerPoint conversions. Prevents hangs from unresponsive COM servers
- **COM resource release hardening**: Added `Marshal.IsComObject` guard checks to all conversion methods in PdfConversionService for safe COM release
- **LicenseService sync helper optimization**: Changed `CanUseSync` / `GetRemainingSync` to direct synchronous DB access, eliminating unnecessary `Task.Run` overhead

### Fixed
- **Event handler unsubscribe leak**: Ensured proper unsubscription of 20+ event subscriptions (ViewModel PropertyChanged, FocusRequested, etc.) on MainWindow close. Guarantees GC memory reclamation
- **Unprotected Process.Start**: Added try/catch + logging to 4 locations in AppSettingsViewModel (restart after settings restore, folder display) and UpdateService (update batch launch)
- **Added logging to empty catch blocks**: Inserted debug logging into critical empty catches such as cleanup deletion on file copy failure and index commit failure
- **Converter exception logging**: Added diagnostic logging to ThumbnailFallbackConverter's broad catch

## [0.30.34] - 2026-03-11 : Fix for Dual Hover Highlight Bug After Theme Change

### Fixed
- **Hover highlight residual bug**: Fixed an issue where hovering over file list after theme change caused two items to highlight simultaneously. Replaced StaticResource animation colors (which retained old values after theme switch) with DynamicResource Setter approach (both Details view and Icon view)

## [0.30.33] - 2026-03-10 : Added Previous/Next Navigation Buttons to Preview Window

### Added
- **Preview navigation buttons**: Placed previous/next navigation buttons (ChevronLeft / ChevronRight) on the left and right edges of Quick Preview (Space). Enables file-to-file navigation with mouse only. Displayed with subtle transparency by default, rising on hover. Corresponding buttons auto-hide at first/last file

## [0.30.32] - 2026-03-10 : Hover Thumbnail Preview Polish

### Changed
- **Two-stage rendering**: Skeleton placeholder displayed immediately on hover, fading in the thumbnail after loading completes. Eliminates any sense of waiting
- **Floating glass effect**: Semi-transparent background + drop shadow (Blur 20px / 30%) creates a floating layer effect above the main pane. Border unified with theme AccentBrush
- **Entrance animation**: Scale (0.95->1.0) + Opacity (0->1) 150ms EaseOutCubic for a smooth, premium appearance
- **Info overlay**: Semi-transparent black bar at the bottom of the thumbnail showing image resolution (e.g., 1920 x 1080) and file size
- **Theme-specific design (AmberConsole)**: Scanline pattern + vignette reproduces the texture of an old monitor
- **Theme-specific design (DeepSea)**: Cyan neon glow border + luminous overlay emphasizes an underwater screen atmosphere

## [0.30.31] - 2026-03-10 : Thumbnail Preview on Image File Hover

### Added
- **Hover thumbnail preview**: In Details view, hovering over an image file displays a 200px thumbnail preview next to the cursor. 400ms debounce suppresses loading during fast mouse movement; follows cursor on same file (no reload). Auto-hides on scroll or drag
- **Hover thumbnail display setting**: Added an on/off toggle for hover thumbnails in Settings -> Display category

## [0.30.30] - 2026-03-10 : Added Drive List, Search Presets, and Search History Views to Nav Pane

### Added
- **Drive list view**: Added a view to the nav pane that displays all drives for one-click viewing and navigation. Shows drive name, free space, and usage bar. Double-click to navigate to active pane, right-click for A/B pane selection or Explorer launch
- **Search presets view**: Added a view to execute saved search presets directly from the nav pane. Icon distinction between normal search/index search, double-click for immediate execution, right-click for execution/deletion
- **Search history view**: Added a view to display and re-execute the latest 100 search history entries from the nav pane. Icon distinction between normal search/index search, display of size/date filter conditions, double-click for re-search with filter restoration

## [0.30.29] - 2026-03-10 : Added Horizontal Bar Display to Size Column

### Added
- **Size column horizontal bar display**: Added a horizontal bar proportional to file size in the file list size column. Visualizes relative size based on the largest file in the folder. Works in both normal view and search results
- **Size bar display setting**: Added an on/off toggle for size bars in Settings -> Display category

## [0.30.28] - 2026-03-10 : Slimmer Nav Pane Scrollbar

### Fixed
- **Fixed nav pane vertical scrollbar being too thick**: Applied slim scrollbar (6px width, effective 4px Thumb) correctly to Favorites, Recently Opened Files, Browsing History, and Properties views by removing global MinWidth constraints, adding Thumb margins for visual slimming, and using custom ListView templates to avoid template boundary issues

## [0.30.27] - 2026-03-10 : Internal Security Hardening

### Changed
- **Internal data format improvement**: Optimized data storage format for enhanced security
- **Device-specific information utilization**: Introduced device identification to application settings for improved integrity
- **Data integrity verification hardening**: Added tamper detection mechanism for stored data

## [0.30.26] - 2026-03-10 : Settings Page Authentication Flow Improvement

### Changed
- **Added authentication step during settings registration**: Introduced an authentication process through input information verification

## [0.30.25] - 2026-03-10 : Refactoring (Compiled Regex, DB Cleanup Optimization)

### Changed
- **Compiled Regex patterns**: Changed Regex patterns in ManualViewModel (changelog parser) and AppSettingsViewModel (release notes parser) to `static readonly` + `RegexOptions.Compiled` for improved performance on repeated calls
- **DB cleanup optimization**: Replaced search history and rename history cleanup from two-step SELECT->DELETE processing to a single NOT IN subquery, reducing memory usage and I/O
- **Fire-and-forget task exception handling**: Introduced `RunBackgroundCleanupAsync` wrapper for DatabaseService background cleanup to log exceptions
- **PaneSettings construction consolidation**: Consolidated duplicated PaneSettings construction code in ProjectSetsViewModel into a `BuildPaneSettings` helper
- **Rollback exception logging**: Added exception logging to FileLogger in empty catch blocks in ProjectSetsViewModel

## [0.30.24] - 2026-03-10 : New Theme Horizon + Changelog Summary Auto-Extraction

### Added
- **New theme "Horizon"**: Added a Standard theme with slate blue x sunset orange inspired by the dawn horizon

### Fixed
- **Changelog summary display**: Fixed an issue where summaries were not displayed in the table of contents for versions v0.24.1 and later. Improved to auto-extract from the first bullet point when the header has no summary

## [0.30.23] - 2026-03-10 : Product Key Registration + Internal Data Recording Fix

### Added
- **Product key registration**: Product keys can now be registered from the settings page

### Fixed
- **Fixed internal data recording issue**: Fixed an issue where some internal data was not being saved correctly

## [0.30.21] - 2026-03-10 : Usage Condition Adjustments for Some Features

### Changed
- **Adjusted usage conditions for some features**

## [0.30.20] - 2026-03-10 : Settings Page Card Background Color Fix

### Fixed
- **Settings page display fix**: Fixed an issue where card background colors were not displayed correctly on some settings pages

## [0.30.19] - 2026-03-10 : Recently Used File Statistics + About Page Enhancement

### Added
- **Usage statistics page**: Added a "Recently Used Files" section. Displays file name, path, last used date/time, and usage count for up to 100 entries. Click file name to open, also supports "Show in Explorer"

### Changed
- **About page improvements**: Applied accent color (blue background, white text) style to "Check for Updates" and "Restart and Apply" buttons for improved visibility. Expanded feature introduction cards from 12 to 18 (6x3) (added Backup, Single-Click Open, Notification System, Property View, Effects Control, Resident Mode). Added icons to feature introduction card headers

## [0.30.17] - 2026-03-10 : About Page Feature Introduction Card Integration

### Changed
- **About page improvements**: Corrected auto-update card height (reverted right column from DockPanel to StackPanel for natural height), set MaxHeight=260 on What's New. Consolidated feature introduction cards from two locations to one (4x3 grid, 12 items total), streamlining the layout

## [0.30.16] - 2026-03-10 : About Page Tagline Refresh + Feature Card Expansion

### Changed
- **About page improvements**: Refreshed tagline to "Turn organizing time into creative time." with added English subtext. Expanded feature cards from 3 to 6 (added Fast Search, Themes & Effects, Shortcuts) displayed in a 2x3 grid. Changed right column to DockPanel to align height with What's New

## [0.30.15] - 2026-03-10 : Settings Page Progress Bar Improvement

### Changed
- **Settings page UI improvement**: Improved progress bar display to a more intuitive design

## [0.30.14] - 2026-03-10 : Settings Page Card Layout Renewal

### Changed
- **Settings page design refresh**: Renewed some settings pages of Control Deck to a modern card layout

## [0.30.13] - 2026-03-10 : Inter-Pane D&D Unresponsive Bug Fix

### Fixed
- **Fixed inter-pane drag & drop becoming unresponsive**: Fixed an issue where `e.Handled = true` was missing in `ListView_Drop` file drop/URL drop branches, causing the Drop event to bubble up to parent elements and result in unstable behavior

## [0.30.12] - 2026-03-09 : Fix for Frequent Folders Exclusion Not Reflecting Immediately

### Fixed
- **Fixed frequent folders exclusion not immediately reflecting in Control Deck**: Fixed an issue where folders added via right-click -> "Exclude from statistics" were not reflected in `AppSettingsViewModel.FrequentFolderExclusions` (UI ObservableCollection) and did not appear in the Control Deck exclusion list

## [0.30.11] - 2026-03-09 : 1/2 Screen Toggle + Sidebar View Shortcuts Added

### Added
- **1/2 screen toggle shortcut**: Added a shortcut key (default: Ctrl+Shift+`) to toggle between single-screen and dual-screen modes. Existing individual shortcuts (Ctrl+Shift+Q/W) remain available
- **Sidebar new view shortcut keys**: Added shortcut keys for Frequent Folders (Ctrl+Shift+6), Recently Opened Files (Ctrl+Shift+7), and Properties (Ctrl+Shift+8). Customizable from Control Deck shortcut settings

## [0.30.10] - 2026-03-09 : Recently Opened Files Sorting, Search, and 100-Item Expansion

### Added
- **Recently opened files — Sorting, search, 100-item expansion, containing folder menu**: Expanded display from 10 to 100 items. Click column headers (Name/Opened Date/Count) to toggle ascending/descending sort. Added search box for filtering by file name/path (Fuzzy Search supported). Added "Open containing folder" to right-click menu to show file location in Explorer

## [0.30.9] - 2026-03-09 : Fix for Recently Opened Files On-Demand Update

### Fixed
- **Recently opened files on-demand update**: Fixed an issue where the list did not update immediately when opening a file while the "Recently Opened Files" view was displayed. Subscribed to `RecentFilesChanged` event for automatic refresh only when the view is displayed

## [0.30.8] - 2026-03-09 : Frequent Folders Statistics Exclusion Bug Fix + Right-Click Menu Crash Fix

### Fixed
- **Frequent folders right-click menu crash fix**: Fixed an `InvalidOperationException` caused by ContextMenu ItemContainerStyle being applied to Separator as well
- **Fixed frequent folders statistics exclusion only registering one item**: Fixed an issue where `DebouncedSettingsSaver` called `Load()` -> `ApplyStaticFlags()` on save, overwriting the in-memory exclusion list with old data from file. Introduced `LoadWithoutApplyFlags()` for save-only use to prevent static flag reset

## [0.30.7] - 2026-03-09 : Frequent Folders Statistics Exclusion Feature

### Added
- **Frequent folders statistics exclusion**: Right-click menu now allows "Exclude from statistics" to hide specific folders from the list. Exclusion can be removed from the Control Deck General category. Exclusion settings persist across app restarts

## [0.30.6] - 2026-03-09 : Auto-Update Read-Only File Deletion Error Fix

### Fixed
- **Auto-update UnauthorizedAccessException fix**: Fixed an issue where files with read-only attributes could not be deleted when reusing the temporary directory, causing failure. Files are now recursively reset to Normal attribute after ZIP extraction before deletion

## [0.30.5] - 2026-03-09 : About Page UI Improvement

### Changed
- **About page UI improvement**: Removed redundant badges from the header top-right (.NET 8 / WPF, K.AKASAKA). Added app stance introduction section below the header (smooth operation, safe design, flexible layout). Separated product information and auto-update into two independent cards

## [0.30.4] - 2026-03-09 : Nav Pane Area Refactoring (Performance and Reliability Improvement)

### Changed
- **Nav pane area refactoring (performance and reliability improvement)**:
  - Suppressed `RebuildLayout` multiple firing on icon click with `SuppressRebuild` (reduced from up to 3 times to 1 in split mode)
  - Eliminated duplicate nav pane rebuild on startup (suppressed auto-rebuild via PropertyChanged during `ApplySettings`)
  - Added `Unloaded` cleanup for static event `NavPaneDragSource.DragStarted` (memory leak prevention)
  - Prevented multiple calls to `InitializeNavLayout` with guard flag
  - Consolidated split ratio calculation logic into `CaptureSplitRatio()`
  - Moved `MarkInitializationComplete` to after `InitializeAsync` completion in `Window_Loaded` (suppressed unnecessary notifications on startup)
  - Merged duplicate logic between `OnSidebarModeChanged` and `InitializeViewForMode`
  - Consolidated `GetParent<T>` helper into `VisualTreeExtensions` (eliminated duplication in FavoritesView/DirectoryTreeView)
  - Consolidated drag handling for HistoryView / FrequentFoldersView into `NavPaneListDragHelper`
  - Shared GridView column header style as `NavPaneGridViewColumnHeaderStyle` resource (eliminated duplication across 3 views)

## [0.30.3] - 2026-03-09 : Fix for Nav Pane Splitter Position Not Saving

### Fixed
- **Fixed nav pane splitter drag position not being saved**: Ratio is now calculated and saved to settings.json immediately in the GridSplitter DragCompleted event. Previously, the position was lost unless RebuildLayout was triggered by an icon click or similar

## [0.30.2] - 2026-03-09 : Frequent Folders and Recently Opened Files View Improvements

### Changed
- **Frequent folders and recently opened files view improvements**: Unified column order to "Name -> Date -> Count". Limited display to top 10 items. Added a star button on the right edge of the frequent folders view for adding to favorites (registered items displayed in accent color)

## [0.30.1] - 2026-03-09 : Fix for Nav Pane Lower Section Click Freeze

### Fixed
- **Fixed freeze when clicking nav pane lower section icon bar**: Changed RadioButton `Checked` event (which also fires during template application) to `Click` event, resolving infinite loop with `RebuildLayout()`. Also set `GroupName` to prevent implicit group interference with the upper section


