Releases: edwardsayer/obsidian-folder-spaces
Releases · edwardsayer/obsidian-folder-spaces
Release list
0.4.6
0.4.6
- Declarative settings migration: Replaced full-vault scanning in settings with Obsidian 1.13+ declarative settings interface (
getSettingDefinitions) to address Community Store review feedback. - Clean up deprecated APIs: Removed deprecated
SettingTab.display()while maintaining declarative custom rendering for the preset reference table. - CSS compatibility fix: Resolved Community Store review warning regarding partial browser support for
text-decoration.
Folder Spaces 0.4.5
0.4.5
Maintenance
- Synchronized the shared popout engine with Window Spaces canonical type-safety fixes after the 0.4.4 release.
- Preserved the Community Store compatibility and test-environment fallbacks introduced in 0.4.4.
Tests
- 129/129 Folder Spaces tests and 223/223 Window Spaces tests passing.
- Lint, TypeScript, project checks, shared-engine byte comparison, production build, and build-artifact verification passing.
Full Changelog: 0.4.4...0.4.5
Folder Spaces 0.4.4
0.4.4
Fixes
- Raised the minimum Obsidian version to 1.13.0 for the settings search API.
- Resolved Community Store type-safety findings across settings, folder-note compatibility, file explorer compatibility, and popout integration code.
- Synchronized the shared popout engine with Window Spaces and added safe DOM-query fallbacks for test and older runtime contexts.
- Added CSS fallbacks for folder-note text decoration.
Tests
- 129/129 Folder Spaces unit tests passing; 223/223 Window Spaces tests passing.
- ESLint, TypeScript checks, project checks, shared-engine byte comparison, production build, and build-artifact verification passing.
Full Changelog: 0.4.3...0.4.4
0.4.3
0.4.3
Changes
- Settings search support: added declarative setting definitions for Folder Spaces settings, allowing Obsidian's settings search to find and navigate to the plugin's toggles and dropdowns.
- Settings controls stay synchronized: declarative search controls read and update the existing plugin settings without changing the existing settings UI or stored data format.
Maintenance
- Updated the development toolchain to TypeScript 7 with the legacy parser alias used by ESLint.
- Updated the Obsidian API development dependency to 1.13.1.
Tests
- 129/129 unit tests passing; ESLint 0 errors 0 warnings;
tscclean;npm run check:projectall checks passing; production build and build-artifact verification passing.
0.4.2
0.4.2
Fixes
- Terminal-folder dot now behaves like a row-background click: on endpoint folders (
.is-terminal-folder, e.g. empty folders or folders at the depth/content-mode limit) the chevron is restyled as a small square dot by CSS. Clicking that dot previously kept the native (no-op) toggle path; it now acts exactly like clicking the folder's row background — a single panel drills down in place, and a dual-panel (child following) setup cascades focus to the bound child. Real chevrons on expandable folders keep their native toggle behavior. - Build blocking TS2532 in shared popout engine fixed:
leafContents[i]accessed under strictnoUncheckedIndexedAccessis now safely read with optional chaining. Synced from the canonical Window Spaces source (implementation revision2026-09-07T04:05:00Z, API v6), unblockingnpm run build.
Changes
- Added
isTerminalFolderDotClick()helper and applied it at every click-interception point (followParentScopeOnFolderClick,blockParentToggleOnFolderNameClick,resolveClickedFolderPath) so only real collapse chevrons keep native toggle semantics while terminal dots route to the standard 3-zone click dispatch. - Updated the 3-zone click dispatch contract test to cover the
terminal-dotzone (single panel → drill-down, dual panel → cascade). - README (EN / zh-TW / zh-CN): documented terminal-panel dot behavior and in-place drill-down usage.
Maintenance
- Synced shared popout engine with canonical source (5/5 files byte-identical, implementation revision
2026-09-07T04:05:00Z).
Tests
- 129/129 unit tests passing; ESLint 0 errors 0 warnings;
tscclean;npm run check:projectall checks passing; production build verified and deployed to both local test vaults (byte-identical).
0.4.1
0.4.1
Fixes
- Popout restore crash (Critical): fixed
RangeError: Maximum call stack size exceededwhen restoring a Popout window. The window-active-file tracker no longer calls back into the interceptedworkspace.getActiveFile()(which recursed infinitely while the popout had focus); it now readsactiveLeaf.view.filedirectly, and the interceptor gained anisResolvingActiveFilereentrancy guard. Synced from the shared popout engine (Window Spaces 1.2.1, API v6). - File opens from a Folder Space in a Popout side column now route to that window's center leaf instead of falling through to the main-window content-area logic.
- Long-press drill-down no longer requires a linked child panel to be present before starting the timer.
Changes
- Initial preset selection respects the sync-focus setting: a child panel now applies
defaultChildPresetonly when parent-link sync focus is actually enabled for the target window (same window vs. new window), otherwise it falls back todefaultPreset. - Cross-window safe element checks: replaced direct
instanceof HTMLElement/Elementtests withisElement()/isHTMLElement()helpers (Obsidian.instanceOf()based withnodeTypefallback) so popout windows with separate DOM prototypes are handled correctly. - Synced shared popout engine with canonical source (5/5 files byte-identical, implementation revision
2026-09-05T17:30:00Z).
Maintenance
- Typed internal-API layer replacing
unsafe-anyusage; window-typed access instead ofglobalThisprobes; cross-window-safe.instanceOf()checks; removed inline style assignment andonunloadleaf detach; CSS specificity cleanup (removed!important, prefixedtext-decoration). - Build falls back to the in-repo
src/sharedcopy when the canonical Window Spaces source is unavailable (required for community-store build verification).
Tests
- 129/129 unit tests passing; ESLint 0 errors 0 warnings;
tscclean; production build verified.
0.4.0
Folder Spaces 0.4.0
Turn any folder into an independent, dockable File Explorer space — now with smarter navigation, richer panels, and deeper Window Spaces integration.
✨ New Features
Cascading panel navigation (Miller columns)
- Drill-down navigation — clicking a terminal folder drills down in place; the header status icon becomes an Up-to-parent button to climb back.
- Long-press cascade — long-press a folder to cascade its preset horizontally across child panels.
- Adaptive parent navigation — parent panels auto-follow when you navigate deeper in a child.
- Keyboard focus cascade — keyboard focus changes cascade to bound child panels.
- Folder Notes integration — folder notes are detected and handled consistently in cascades.
Smarter toolbar & views
- Per-folder sort order — sort by name / modified / created (asc / desc), remembered per folder.
- In-panel path filter — filter the current panel by a path substring instantly.
- 7 view presets — Explorer, Navigate, Columns, Context, Contents, Files, List; apply per panel or cascade horizontally.
- Single-row compact header — keeps native file actions available with a truncated root path and hover tooltip.
Native explorer enhancements
- Terminal folder indicators — empty or depth-limited folders in the native File Explorer get a subtle dot instead of an ineffective chevron.
- Parent-link actions — enable/disable or remove parent panel links from the context menu.
Engine & routing
- Smart content-area routing — new Folder Space views open in the right zone of the workspace (sidebar / editor / popout) without navigation leaks.
- Shared popout engine sync — three-scope last-active pane routing, per-window active-file tracking, and View
onFileOpengatekeeper, byte-identical with Window Spaces.
📚 Documentation
- New trilingual developer API docs (
docs/api.md, zh-TW, zh-CN) and a fully revamped README in English, 繁體中文, and 简体中文 with a visual showcase.
🛠 Internal
- Aligned 3-zone click dispatch (chevron / name / row) with community conventions.
- Fixed sidebar/popout navigation leaks and files-only flat-view depth limiting.
Requires Obsidian 1.7.2+ (Desktop only). Full changelog: 0.3.0...0.4.0
Folder Spaces 0.3.0
What's new in 0.3.0
📚 Not just the File Explorer — open any sidebar view in a new/popout window
Folder Spaces is no longer limited to folder-scoped explorers. You can now open Obsidian's other sidebar views — outline, backlinks, outgoing links, search, tags, properties, and more (not limited to these) — in a new/popout window too:
- Running a native sidebar-view command (Tags, Outline, Backlinks, Outgoing links, Properties, Search, ...) from inside a popout window now opens it in that same popout window, draggable between splits and tab groups.
- Panels are never replaced: inside a popout window, sidebar panels (backlink, outline, outgoing links, search, ...) and Folder Space explorers are never replaced by an opened note — the note opens on the previously active note tab, or as a new tab in that tab group, while unpinned note tabs keep the normal open-in-current-tab behavior.
- Draggable after layout restore: search panels and other popout sidebar views stay draggable after restoring a saved layout (e.g. via Window Spaces).
Other changes
- Header bar: removed the Change folder button — left-click the folder title to open the folder picker (right-click still shows the native context menu).
Verified: npm run check, npm test (35/35), npm run build all pass.
Folder Spaces 0.2.0
What's new in 0.2.0
- Popout-aware opening: running the
Open Folder Spacecommand or theFolder Spacescontext-menu submenu from inside a popout window now opens the new Folder Space in that same popout window — reusing or creating a full-height left/right sidebar pane, or opening in the popout's editor area — instead of jumping back to the main window. - Search in the same window: when a Folder Space lives in a popout window, the native Search in folder context-menu action shows its results in that same popout window.
- Per-folder custom icons: set a custom icon for each root folder from the header bar, overriding the global icon.
- Quick open: new ribbon icon and
Open Folder Spacecommand to pick a folder and open it in the default location. - Per-window default open location: choose separately where new Folder Spaces open in the main window vs. popout windows.
- Header bar:
Change folderpicker, Tree/Flat toggle, and folder-icon button.
Verified: npm run check, npm test (35/35), npm run build all pass.