One update, four epics. The version number jumped to match:
0.6.6: Typography & Theme. Font family and size settings, semantic type scale.
0.6.7: Instant Large File Previews. Chunked reads as you scroll.
0.6.8: Full PDF Controls + Preview Toggles. Working toolbar, optional previews.
0.6.9: Mouse Buttons & Hardening. Side-button navigation, security overhaul. Internally called N.I.C.E.: Navigation, Integrity, Controls, Ergonomics.
The Appearance section is now Typography & Theme. Choose a font family and slide the size between 14px and 20px. The slider carries its own value bubble on hover, keyboard focus, or drag, with tick marks every 2px, and the whole app rescales live behind it. Your choices save across sessions. Underneath, the type system moved to semantic roles, so every size stays proportional no matter what you pick. Contrast improved with it.
Text previews used to stop at 10KB. Now files load in chunks as you scroll: small ones open instantly, big ones stream with a button showing how much has loaded so far. Files over 64 MB are too large to preview. I put this on the v0.6.5 roadmap. Consider it delivered. Before the final build, a polish pass tightened the streaming further: load-more steps are 4 MB each now, so a 20 MB file loads in about five steps instead of forty; your scroll position stays pinned while new content arrives; and the load-more button survives the app rebuilding its state mid-load.
One toolbar, and every button works. First and last page joined, rotate finally rotates, refresh works, and Ctrl+wheel zooms just like the buttons. Page navigation targets a stable anchor line, so Previous and Next work at narrow widths where they used to do nothing.
Code and PDF previews are now optional, OFF by default to keep the runtime light. Toggle them in Settings; toggling preview modes straight from the Preview screen is coming in a future version. ON gives code files the full editor and PDFs an inline viewer; OFF falls back to plain text and an Open External notice. Markdown follows the code preview choice too. Both previews run fully local as well: no CDN scripts, no network fetches.
The two buttons next to your main click now move panes forward and backward, and the wheel button (middle click) can be bound too. All of them route through the same keybind system as everything else, so contexts and saved bindings apply. Space for Quick Look is configurable in the keybinds menu now too. Your existing bindings survive the upgrade untouched.
Pane splitters stopped drifting. Plain clicks and font size changes can no longer move panes.
If the render process crashes, FileSurfer recovers on its own instead of going dark.
Every file operation now passes through one central path guard, including archive extraction and compression destinations. Relative paths, drive roots, and junction tricks are rejected at the boundary.
Automation imports are validated before anything runs, and rename targets can no longer escape their source directory.
The built-in media server requires an origin check and a token, and its startup handshake is race-free now, so audio and video play from the first click. External pages in the mini-browser are sandboxed away from app internals, including the requests those pages can send.
Markdown previews now sanitize their content before rendering, so page markup can't be used to reach into the app's file operations.
Admin-level operations now write their temp files with unguessable names and exclusive creation, so a local process can no longer plant one in their place.
Dependencies updated, runtime advisories patched.
The sidebar width now tracks the app window as a percentage instead of a fixed 256px, so it scales with your screen size, and your drag position is remembered across sessions.
Buttons and sliders across the app now show the pointing-hand cursor where they should.
The Theme Library's sidebar and live preview no longer auto-collapse on scroll. You control them with explicit toggles, collapsed rails stay reachable as slim header bars, and nothing overflows at any window size.
Double-clicking an item in the command palette jumps straight to its file in the pane.
Theme colors now apply consistently across every surface in the app.
The status bar only shows a selection count and size when you have actually selected something; the always-on file count is gone.
The shortcut hints in the status bar are buttons now. Click Rename, Copy, Move, New Folder, Delete, or Preview there and it runs.
Long keybind combos no longer spill past the edge of the status bar; they truncate with an ellipsis and show the full combo in a tooltip on hover.
Built-in theme token swatches now read as non-editable, so you can tell them apart from your own custom tokens at a glance.
The little white box where the two scrollbars meet is gone.
Next up: native thumbnails. Video, PDFs, and documents will get real preview images through the Windows shell, not just photos, so you'll get instant previews for the media Windows already knows about. Groundwork is in place for this and the rest of the pipeline: file operations moving onto the Windows shell engine with native undo and recycle bin safety, rich metadata from EXIF to audio tags to document details, the OS terminal reachable from the toolbar and context menu, and maybe taskbar jump lists with your frequent folders or some other goodies. Feel like FileSurfer is missing a feature? Something feels off after this update? Tell me. Bug reports heavily influence what ships next!