Releases: Mombuyish/stashium-releases
Stashium v0.9.0
Stashium v0.9.0 — macOS universal build (Apple Silicon + Intel).
What's new
Discover (RSS) gets smarter URL input
- Paste a regular website URL and Stashium auto-discovers the RSS / Atom feed via
<link rel="alternate">in the page's HTML. No more hunting for/feed.xml. http://orhttps://is now optional — just typenytimes.comand it works.- More forgiving error messages when a site has no feed at all.
Save feed items into your stash
- New "save" action in the feed item hover toolbar — moves a Discover article into a folder of your choice in one click.
- Mark every item in a group / category as read in one shot.
- Per-feed manual refresh button so you don't have to wait for the next poll.
Smart Folder is actually smart now
- Reworked the AI classification prompt so it stops dumping every clip into one generic "Articles" folder. Now it identifies the specific topic first, then either reuses an existing folder for a true match or creates a new specific one. Temperature lowered for consistent topic-matching across clips.
Anonymous, opt-in usage telemetry (off by default)
- New Settings → Capture → Privacy toggle: "Share anonymous usage data".
- When ON, sends event counts (which features get used) and basic context (app version, OS, anonymous device UUID) to help guide what to build next.
- When OFF, nothing is sent. Default is OFF.
- Never sends clip content, URLs, folder names, AI prompts, or anything you typed or copied.
Brutalist polish
- Unsubscribe confirmation button now matches the rest of the brutalist palette (transparent + outline) instead of the previous solid red block.
Install
- Download
Stashium.dmg - Open the DMG and drag
Stashium.appintoApplications - Launch from Launchpad or Spotlight
- Signed with Apple Developer ID
- Notarized by Apple
- Requires macOS 11 (Big Sur) or later
- Auto-updater built in — future versions install with one click
Issues
Email mombuartworks@gmail.com.
Stashium v0.8.0
Stashium v0.8.0 — macOS universal build (Apple Silicon + Intel).
- Signed with Apple Developer ID
- Notarized by Apple
- Requires macOS 11 (Big Sur) or later
What's new
0.8.0 ships the headline feature: cloud sync via any folder you already trust — iCloud Drive, Google Drive, Dropbox, OneDrive, Syncthing. No new account, no Stashium-hosted server, no Apple App Store entitlement. The OS-level sync engine you already use does the upload; Stashium just reads and writes a folder.
Cloud sync — your stash, on every Mac
Settings → Sync turns it on. Pick a folder, point your other Macs at the same folder, and clips, folders, file blobs, and og:image previews flow between them.
- Multi-cloud by design — works with iCloud Drive, Google Drive, Dropbox, OneDrive, Syncthing, any provider that mounts as a folder on disk
- Snapshot + per-row LWW merge — two Macs with different clip histories actually converge (not just "last writer wipes everyone"); per-row last-write-wins on
updated_at - Stable cross-device identity — every clip and folder gets a 128-bit
sync_idthat never reuses, so AUTOINCREMENT id collisions across devices stop being a problem - Fresh-install restore — install Stashium on a new Mac, point at your sync folder, your stash materializes from the newest peer snapshot
- Conflict log — when two Macs edit the same clip during the same interval, the losing version is appended to
sync_folder/conflicts/{device}-{ts}.jsonl. Nothing is silently lost - Blob sync, transparently — file clips (screenshots, dropped PDFs, EPUBs, etc.) and URL clips' og:image previews are SHA-256-hashed and copied into
sync_folder/blobs/. Peer devices'file_pathandog_imageare auto-rewritten to point at the blob folder, so opening a clip on Mac B Just Works the moment your cloud sync engine has materialized the file - Garbage collection — when you permanently delete a clip, its blob gets swept from the sync folder on a later cycle (kept for trashed-but-recoverable clips)
- Folder deletes propagate too (with the v0.8 caveat that v1.1 snapshot mode can't replicate every edge case yet — see "Known limitations")
- No encryption in v1, by design — your cloud provider can read clip content. Trade-off chosen to keep onboarding to two clicks. v2 may add E2E
Sync settings UI
Settings → Sync gives you:
- One-click toggle, status banner showing next sync ETA + last sync result
- Native folder picker with suggested paths for iCloud / Google Drive / Dropbox
- Sync interval picker — 1 / 5 / 15 / 30 / 60 minutes (default 5)
- Editable device name (shown to peers)
- Manual "Sync now" button
- Other devices list — every Mac that's ever written into the sync folder shows up with its name + last seen
- Per-clip diagnostic (advanced):
sync_diagnosecommand surfaces every clip's sync-readiness so "why isn't my PDF syncing" has a concrete answer
Sync performance optimizations
So the 5-minute heartbeat doesn't quietly thrash your cloud quota:
- Skip snapshot when DB unchanged — idle devices with no edits since last cycle don't re-upload the same DB
- Single-flight cycle — spamming "Sync now" or scheduler-coinciding-with-manual-fire can no longer stack concurrent SQLite backup + zstd + upload passes
- Throttled blob GC — orphan-blob sweep runs every ~hour instead of every cycle (deletion is eventually-consistent regardless)
- Hash caching —
content_hashandog_image_hashcached on first compute, never re-hashed - Atomic snapshot writes — staging
.tmprename, peer scanners ignore in-flight writes - Bounded by
MAX_CONCURRENT_FETCHES = 3— already in place from Discover, also caps any concurrent peer-snapshot merges
Other fixes
- Stale detail pane when current view is empty — opening the app on All (now = unfiled only) used to render the previously-selected clip in the right pane even though the list was empty. The detail pane now strictly derives its clip from the currently-visible list, so anything that's filtered out of the middle pane is also gone from the right pane
- AI Summary / Smart Folder / Generate ToC race — clicking AI on clip A, then switching to clip B before the stream finished, used to: (a) show A's streaming content on B, AND (b) silently save A's result into B's DB. Fixed with per-request clip-id capture and full local-state reset on clip switch
- Jump to existing — toast → Jump now correctly navigates to the clip's folder (or Archive) instead of leaving you on All; race in
loadClipsthat was clobbering selected clip via stale closure also fixed unminimizepermission — was missing from capabilities, made toast's Jump fail silently- Folder browser
+button — now creates a new folder even when the list is empty - Folders → Discover navigation — switching between sidebar sections no longer gets stuck on the folder pane
- Archive ↔ folder drag — archived clips can now be dragged to folders (archive is a state, not a category); dragging an archived clip to All un-archives it
- All view = unfiled inbox — once a clip lives in a folder, it stops showing in All. Stops accidental bulk-delete of curated content
- Sidebar feed groups — collapsible with persisted state
- Feed article font — Discover feed article body now respects the same typography settings as clips (font family, size, line height, content width)
Known limitations
- Folder deletions don't propagate across devices in v1.0 — a deleted folder may resurrect after syncing with a peer that still has it. Fixed properly in Phase 2 (event log)
- Article inline images embedded in URL clips' article body don't sync yet — only the og:image preview does. v1.2
- No encryption — cloud provider can read clip content. v2
Install
- Download
Stashium.dmg - Open the DMG and drag
Stashium.appintoApplications - Launch from Launchpad or Spotlight
Existing 0.4.0+ installs will auto-update on next launch.
Issues
Email mombuartworks@gmail.com.
Stashium v0.7.0
Stashium v0.7.0 — macOS universal build (Apple Silicon + Intel).
- Signed with Apple Developer ID
- Notarized by Apple
- Requires macOS 11 (Big Sur) or later
What's new
0.7.0 is the biggest release since launch. Stashium is now a full RSS reader alongside the clipboard manager, and a long list of stability + extraction issues that quietly degraded the experience have been fixed.
Discover — a real RSS reader
Subscribe to feeds, read articles inline, save the good ones to your stash. Lives in the sidebar below your folders.
- Subscribe by pasting either a feed URL or a regular site URL — Stashium auto-discovers
<link rel="alternate">so most homepages just work. - Groups organize your feeds. Create / rename / delete them in Discover settings → Groups. Each group in the sidebar is independently collapsible, and the collapsed state survives a relaunch.
- One-click save to stash — every feed item has a save button that promotes it into a normal URL clip with the cached article body, og:image, and title. No extra fetch.
- Read / unread / archive / reset-read per feed item, plus a per-feed and bulk Refresh all.
- Article body cached locally the first time you open an item — subsequent reads are instant and work offline.
- 6-month retention — items older than 180 days are purged automatically. Anything you saved to stash is untouched.
OPML import / export
For people migrating from another reader, or just sharing their subscription list.
- Import OPML from NetNewsWire, Reeder, Feedly, Inoreader, or anything else that exports the format. Tolerant parser handles real-world quirks (unescaped
&, BOM, mismatched tags). - Big imports don't block the UI anymore — feeds appear in the sidebar instantly with placeholder titles, then hydrate in the background at 3 concurrent fetches.
- Groups in the OPML become Stashium groups (or reuse existing same-name ones).
- Re-importing the same file just shows previously-subscribed feeds as
skippedinstead of erroring. - Export OPML dumps every subscription as a standards-clean OPML 2.0 file you can drop into any other reader.
- Clear all unsubscribes from everything in one shot — saved clips and groups are preserved.
Articles that previously came back blank now render
Sites like 4gamers, ETtoday, and Apple Daily — short CJK posts heavy on images — used to come back empty because the article-extraction heuristic is tuned for English long-form text. Stashium now falls back to a chain of standard article containers ([itemprop="articleBody"], article.render-content, .article-content, .post-content, .entry-content, .article-body, main article, article) when the primary extractor returns nothing.
Items that previously failed to extract are automatically retried the next time you open them, so the fix applies retroactively without any user action.
The crashes are fixed
- The ~30-minute SIGTRAP crash that hit anyone who pasted a lot of URLs is gone. Two root causes were addressed: an unbounded
to_vec()on giant clipboard images (now capped at 100 MB), and a per-callreqwest::blocking::Clientthat leaked file descriptors (now a shared client). - Drag a clip onto a folder in the sidebar to assign it — this was broken because Tauri's OS-level drag-drop intercepted the HTML5 events. The OS-level handler is now disabled.
- Clicking links inside an article opens them in your default browser instead of replacing the Stashium UI.
Reliability hardening
- Every background thread (URL pipeline, feed poller, manual refresh, OPML hydration, OCR) is wrapped in
catch_unwind— a single malformed payload can no longer take down the app. - OCR concurrency capped at 2 workers so a screenshot backlog doesn't spawn unlimited Vision threads.
- Favicon fetcher backed off — sites whose
/favicon.icoreturns 404 are no longer re-tried every 60 seconds forever. Failed attempts retry after 7 days. - OPML parser is double-stacked: strict XML first, tolerant hand-rolled scanner as fallback. Real-world OPML files with stray
>inside attributes or BOM headers now import cleanly. - HTTP client now properly handles gzip and brotli content-encoding — CDNs that force compression (CloudFront, Cloudflare) no longer feed downstream parsers raw compressed bytes.
- Full Chrome User-Agent so picky edge rules serve the real article instead of a stripped fallback.
- Bounded HTTP body sizes on feed (10 MB) and favicon (1 MB) requests prevent a misbehaving server from blowing memory.
UI polish
- Discover settings → Feeds tab toolbar redesigned to match the project's mono-uppercase + sharp-corner design language. Buttons are grouped by intent with vertical dividers:
[⟳ REFRESH] | [↑ IMPORT] [↓ EXPORT] | [🗑 CLEAR]. - Sidebar feed groups collapse with a chevron; empty groups don't show a chevron at all.
- Save to stash from a feed is now fully optimistic — no more 2-second pause after clicking.
- Folder browser — the top-right
+button now creates a new folder even when the folder list is empty, and the empty-state message correctly points to the+button (was incorrectly pointing to the sidebar). - Switching from Folders to Discover in the sidebar now actually navigates to Discover (was previously stuck on the folder pane because the folder-browser flag wasn't reset).
Install
- Download
Stashium.dmg - Open the DMG and drag
Stashium.appintoApplications - Launch from Launchpad or Spotlight
Existing 0.4.0+ installs will auto-update on next launch.
Issues
Email mombuartworks@gmail.com.
Stashium v0.6.0
Stashium v0.6.0 — macOS universal build (Apple Silicon + Intel).
- Signed with Apple Developer ID
- Notarized by Apple
- Requires macOS 11 (Big Sur) or later
What's new
0.6.0 is about making the AI feature actually feel good to use, and the clip list smarter about your work. A handful of long-standing edges got smoothed out too — drag-drop PDFs, IME-aware Quick Paste, real-time list reorder.
One AI button, one model, one key
- The three separate AI buttons (Summary / ToC / Smart Folder) are now a single AI ▼ dropdown on each clip. Cleaner toolbar, same actions one tap away.
- AI provider simplified to Ollama Cloud running Gemma 4 31B — predictable per-account free tier, no shared rate-limit pool, strong on Traditional Chinese + English. OpenRouter is gone (its
:freetier shared a global Google AI Studio quota and threw 429s constantly). - First-run flow is now three lines: sign up free at
ollama.com/signup, generate a key atollama.com/settings/keys, paste it in Settings. No credit card.
Summary and ToC redesigned
- Summary and Contents now render as minimal left-bar blocks (fuchsia for Summary, amber for Contents) instead of bordered cards — they sit in the content flow like a quote rather than a chunk of system UI.
- Always-visible coloured label so the section is identifiable at a glance.
- Model ID badge is gone. Clear / status flashes only when relevant.
Clip list: sort by what matters to you
- New
updated_atis bumped on every user action — note edits, title changes, highlight toggles, pin / archive / move, AI runs. - Background jobs (OCR, og:image cache, article scrape) intentionally do not bump it, so an old screenshot won't randomly resurface when a delayed job lands.
- Settings → Capture → Clip list now has a Sort by dropdown: Date created · Last modified · Title (A→Z). Pinned clips always float on top.
- Reorder happens instantly the moment you save an edit — no need to switch folders to "refresh" the order.
Clip detail toolbar redone
- New Info ⓘ menu pops a Statistics panel with Words / Characters / Paragraphs / Read Time + a clean "Apr 7, 2026 at 6:41PM · Created" timestamp. Copy / Refresh / Delete live inside the menu.
- Primary toolbar stays minimal: Open in browser · Highlights · Lock-to-edit · Archive · ⓘ. Secondary stuff hides behind one tap.
- The little raw
2026-05-14 12:24:34timestamp next to "No folder" is gone (the Info menu has it formatted nicely now).
Drag files into the window become clips
- Previously dropping a PDF onto the app would replace the whole UI with the inline PDF viewer. Now any dropped file becomes a
fileclip and goes through the normal pipeline (dedup, OCR, text extraction for PDF/EPUB). - Multi-file drop works — each path gets its own clip.
Quick Paste polish
- IME-aware Enter: typing Chinese / Japanese / Korean and pressing Enter to commit a candidate no longer triggers paste-the-first-result. The Enter goes to the IME first; the next Enter after composition is the real submit.
- Quick Paste search now matches the full clip body (article, OCR text, rich content, notes) — not just the title. Mirrors what main-window search does.
Mouse box-select in the clip list
- Drag a rectangle in the clip list (or hold Option while dragging on any row) to marquee-select multiple clips. Right-click any selected one → bulk Archive / Delete / Move-to-folder.
- Auto-scrolls when you drag near the top or bottom edge of the list.
URL clip improvements
- Cmd+C on a webpage: toast appears in ~500 ms with the page title + thumbnail instead of the raw URL. The article body fetches asynchronously and slots in after — no more multi-second wait staring at the URL.
- Twitter / X URLs fall back to the page favicon when og:image isn't available, so the toast always has a thumbnail.
- WordPress lazy-loaded inline images (
data-srcinstead ofsrc) are now captured correctly — every article image survives the scrape. - Re-copying the same URL skips the HTTP round-trip entirely: dedup-toast lands in under 50 ms.
Smaller wins
- Rich-text Copy preserves formatting — paste into Notes / Pages / Word / Mail keeps bold/italics/colours. Previously only plain text survived.
- Archive button added to the clip-detail toolbar (next to Open / Highlights / Lock).
- Toast right-to-left swipe no longer occasionally opens the app instead of dismissing — fixed a touch-back-near-start gesture misread.
- Toast at MAX stack still shows new clips correctly — fixed a state effect that skipped
win.show()when length didn't change. - macOS dock icon click when the window is hidden now reopens it (was a no-op before).
- Settings → Appearance redesigned with a live typography preview and mini-app preview cards for each theme.
Install
- Download
Stashium.dmg - Open the DMG and drag
Stashium.appintoApplications - Launch from Launchpad or Spotlight
(Already on 0.5.0? Stashium will offer the update on launch — you don't need to download manually.)
Issues
Email mombuartworks@gmail.com.
Stashium v0.5.0
Stashium v0.5.0 — macOS universal build (Apple Silicon + Intel).
- Signed with Apple Developer ID
- Notarized by Apple
- Requires macOS 11 (Big Sur) or later
What's new
The headline of 0.5.0: anything you stash becomes searchable text, even when it isn't text. Screenshots, PDFs, EPUBs — all of it goes through on-device extraction, and the searchable text feeds straight into AI Summary and Smart Folder.
Screenshots become searchable
- Pasted images and screenshots now run through on-device OCR (Apple's Live Text engine + Vision framework). CJK supported, no cloud calls, no network.
- The recognized text lands in regular search — typing "invoice 2024" surfaces the screenshot whose pixels say so.
- Highlights of OCR'd words on the image are visible in the detail view (Latin script; CJK uses transcript-only search).
- Runs once per image in the background. Existing screenshots from before this version get processed on next launch.
PDFs and EPUBs are indexed too
- Drop a PDF or EPUB into Stashium and the text layer gets pulled out (PDFs with embedded text — exports from Word, Pages, Notion, etc.).
- Same downstream as OCR: the text is searchable AND feeds AI Summary / Smart Folder.
- Capped at 30K characters per document so AI prompts stay focused on the topic rather than drowning in a whole novel.
- Scanned PDFs (no embedded text layer) are skipped — the AI buttons just don't appear. No silent garbage.
AI works on more than text now
- AI Summary and Smart Folder buttons now appear on screenshot, PDF, and EPUB clips — anywhere on-device text extraction succeeded.
- Short OCR fragments (icons, app chrome) intentionally hide the buttons to prevent the model from hallucinating a topic out of two words.
Quick Paste overlay (⌥S)
- A searchable popup that appears wherever your cursor is. Type to filter, ↵ to paste, ⎋ to dismiss.
- Default shortcut ⌥S — rebindable in Settings → Shortcuts.
- Lands on the monitor you're actively using, not whichever screen Tauri picks as primary.
Search now reaches into the body, not just the title
- Search previously matched only previews and titles. Now it also matches:
- Full article body of URL clips
- Rich-text/HTML body of formatted clips
- OCR text from images
- Text extracted from PDF/EPUB
- Lookups still feel instant — the index is the same SQLite store, just with more columns in the LIKE clause.
WordPress sites capture images properly
- Many WordPress sites lazy-load inline images (WP Smush, a3 Lazy Load, WP Rocket, etc.) — the real URL sits in
data-src, whilesrc=is a 1×1 placeholder. - Previously: only the cover image survived the scrape; every inline article image came out blank.
- Now: lazy-loaded URLs are detected and pulled into the local cache like normal images. Your saved articles render with their pictures intact, online and offline.
Keyboard shortcuts page
- New Settings → Shortcuts tab lets you rebind global and in-app shortcuts (Quick Paste, capture trigger, window toggle, etc.) without leaving the app.
Install
- Download
Stashium.dmg - Open the DMG and drag
Stashium.appintoApplications - Launch from Launchpad or Spotlight
(Already on 0.4.0? Stashium will offer the update on launch — you don't need to download manually.)
Issues
Email mombuartworks@gmail.com.
Stashium v0.4.0
Stashium v0.4.0 — macOS universal build (Apple Silicon + Intel).
- Signed with Apple Developer ID
- Notarized by Apple
- Requires macOS 11 (Big Sur) or later
What's new
Auto-update
- Stashium now checks for new versions on launch and offers to install them in-place. No more manual DMG hunting.
- Updates are signature-verified end-to-end (Ed25519 on top of Apple's notarization), so a bad CDN or replaced binary can't trick the app into installing something it shouldn't.
- "Install" downloads the new version, swaps it in, and restarts Stashium. You can still trigger a manual check from Stashium → Check for Updates any time.
Won't save the same clip twice
- Re-copying something Stashium already has no longer creates a second entry. The toast says "Already in your library" and offers a one-click Jump to existing to take you straight to the original.
- Works across every clip type:
- Text / URL / Markdown / Rich text — exact-content match
- Files (Finder copy) — file name + size match
- Screenshots & pasteboard images — byte-level fingerprint
- Trash exclusion is intentional: if you trashed a clip and copy the same content again, it's treated as a fresh capture. Archived clips DO count as duplicates.
Smaller fixes that add up
- Dock icon click reopens the main window. Closing Stashium with ⌘W used to leave the dock icon as a no-op — clicking it now brings the window right back.
- Menu-bar icon click opens the menu instead of force-showing the window. Clicking "Show Stashium" in that menu still does what it always did.
- A handful of subtler edges around toast behavior and capture timing.
Install
- Download
Stashium.dmg - Open the DMG and drag
Stashium.appintoApplications - Launch from Launchpad or Spotlight
(Already on 0.3.0? You'll need this download once. From 0.4.0 onward, Stashium updates itself.)
Issues
Email mombuartworks@gmail.com.
Stashium v0.3.0
Stashium v0.3.0 — macOS universal build (Apple Silicon + Intel).
- Signed with Apple Developer ID
- Notarized by Apple
- Requires macOS 11 (Big Sur) or later
What's new
AI now runs on OpenRouter
- One API key, every model. Pick from GPT-5.4 Nano, GPT-5.4 Mini, Gemini 3 Flash, or Claude Sonnet 4.6 in Settings → AI.
- Each summary remembers which model produced it, so the label stays correct even if you switch models later.
- Friendlier errors for the common API states (invalid key / out of credits / model not found / rate-limited).
- Legacy bare model IDs (e.g.
gpt-4o) auto-migrate to OpenRouter'sprovider/modelform.
Summaries in your language
- New Summary language picker: Same as content / English / Traditional Chinese / Simplified Chinese / Japanese.
- The whole summary is translated end-to-end, including the bullet category labels — no more English headers on a Chinese summary.
Smart Folder
- A new button next to AI: click it on any clip and the model picks the best folder (or invents one) and moves the clip there for you.
- New folders ship with an AI-picked Lucide icon — validated against the real icon set so it never falls back to a default.
- Existing folders keep their icon — the AI never overwrites your choices.
- Toggleable in Settings → AI → Smart Folder (on by default).
Folder right-click: delete with clips
- Folder context menu now offers two actions: Delete folder (keep clips) and Delete folder & N clips.
- The cascade option shows an inline confirm before sending all the folder's clips to Trash, so you can still recover them.
Bug fix
- Editing a clip's title in the content view now updates the clip list immediately.
Install
- Download
Stashium.dmg - Open the DMG and drag
Stashium.appintoApplications - Launch from Launchpad or Spotlight
Issues
Email mombuartworks@gmail.com.
Stashium v0.2.0
Stashium v0.2.0 — macOS universal build (Apple Silicon + Intel).
What's new
Brand-new design language
- Rebuilt the UI on an xAI-inspired brutalist system: monochromatic palette, monospace display type, sharp 0px corners, zero shadows.
- Buttons now use Geist Mono uppercase with tracked-out letter-spacing.
- Hover states dim instead of brighten — more "command line", less "consumer app".
- "Stashium" wordmark in About / Updates renders in Geist Mono.
App icon: 8 color choices (was 2)
- Six new colored variants alongside the original Light and Dark: Ocean, Ocean Dark, Rose, Forest, Midnight, Amber.
- Theme and app icon are independent — mix any combination (Light theme + Ocean icon, Dark theme + Amber icon, etc.).
- Change in Settings → Appearance → App icon. The Dock icon swap is live.
Theme color audit
- Filled in missing
--destructive,--sidebar-ring, and--chart-*tokens across all 8 themes so destructive buttons and chart-style components render correctly on every palette. - Theme picker swatches now match the actual rendered look.
Install
- Download
Stashium.dmg - Open the DMG and drag
Stashium.appintoApplications - Launch from Launchpad or Spotlight
- Signed with Apple Developer ID
- Notarized by Apple
- Requires macOS 11 (Big Sur) or later
Issues
Email mombuartworks@gmail.com.
Stashium v0.1.0
Stashium v0.1.0 — macOS universal build (Apple Silicon + Intel).
- Signed with Apple Developer ID
- Notarized by Apple
- Requires macOS 11 (Big Sur) or later
Install
- Download
Stashium.dmg - Open the DMG and drag
Stashium.appintoApplications - Launch from Launchpad or Spotlight
Issues
Email mombuartworks@gmail.com.