# Changelog — Recent Work ## v1.1.1 — Sortable Tables, Multi‑format Timestamps, Private Encryption Date: 2025-09-06 Highlights since 1.1.0: - Column sorting added to My Files and Search (persisted per context) - Updated column now toggles between Relative, Full date, and Raw timestamp - Replaced unicode/glyph icons with inline SVG for consistent rendering - Private services auto‑encrypt on publish (to your account’s public key) Details: - Sorting: Click any header to sort; click again to flip direction. Default is Updated (newest first). State is saved separately for My Files and Search. - Updated column: Small clock icon in the header cycles timestamp display: Relative → Full date → Raw. - Icons: Pagination chevrons, search/upload/trash/edit/folder/media controls now use inline SVG for cross‑platform fidelity. - Private encryption: When publishing to \*\_PRIVATE services, encryption is enforced automatically. Compose and publish flows display a helpful note when private services are detected. ## v1.1.0 — UI Polish and Search Sidebar Date: 2025-09-06 Highlights since 1.0.0: - Service & Name inputs with autocomplete for quicker entry - Search results integrated into the sidebar tree (grouped like My Files) - Avatars shown for names (sidebar leaves and in results) - Improved uniform button styles and results table formatting - Sticky table headers for Search and My Files (stay visible while scrolling) - Smarter width handling in My Files table to avoid horizontal scrolling - Identifier text styled as links (blue + underline) for clarity ## v1.0.0 — Overhaul and Stabilization Date: 2025-09-05 Highlights shipped in the 1.0 redesign: - **Single‑view routing:** Added `showSection()` and replaced ad‑hoc display toggles so pages never overlap. - **Search mode shell:** `setSearchMode(true)`, banner text/controls, “Back to My Files” wiring. - **Search results in tree:** Sidebar shows search results with the same grouping as My Files; clicking folders filters the Search table. - **Group by Name toggle:** In Search, a sidebar toggle groups results by publisher name (name → service → prefix → identifier). Leaves show a small avatar next to the identifier. - **Sidebar file tree:** Services as folders (counts, omit 0), prefix subfolders (collapsed), leaves open Preview. - **Preview page:** Full‑page preview with responsive sizing and header actions (Edit / Replace / Delete). - **Preview rendering:** JSON pretty‑print; HTML via sandboxed iframe; **PDF inline iframe**; images/audio/video sized to context. - **Global media:** Header controls; **promote-on-navigate** behavior; Stop revokes blob URL to free memory. - **Content table:** Identifier click opens Preview; compact thumbnails; summary bar with total size and bulk delete controls. - **Hide Deleted:** toggle with persisted setting; conservative heuristics for tiny files. - **Pagination:** Hash-based page, saved items‑per‑page; re-render without losing state; jump-to-page input. - **Auth/Name:** Auto-auth on load; name switcher refreshes lists cleanly. - **Tooling & tests:** ESLint + Prettier, Vitest + jsdom with coverage gate; docs/tests audits. Fixes and cleanups: - Removed duplicated `applyServiceFilter` and duplicated `preview-container` snippet. - Moved `searchModeActive/setSearchMode` to global scope (fix unused/scope errors). - Fixed stray syntax errors from an earlier merge (try/catch braces). - Adjusted media logic to not auto‑promote on play; ensure promotion before table re‑render to keep playback alive.