Releases: grub-basket/SP
0.103.10
0.103.10 — Internal API cleanup
Replaces two Obsidian APIs that are now deprecated with their current equivalents
(setDestructive for the destructive encryption-settings buttons; messageEl for the
split-progress notice). Purely internal — no visible change in behavior or appearance.
0.103.9
0.103.9 — Reload action easier to find
The Reload without saving item in the mobile ⚡ actions menu now sits near the top
(right after Notification history) and shows regardless of selection, instead of being
tucked at the very bottom. It's the quick fix when the view looks reverted to a stale
state. No other changes.
0.103.8
0.103.8 — Reload shortcut + smoother folder conversion
Small quality-of-life release. Still alpha; keep backups.
Convert into a Stashpad now imports your files
Turning an existing vault folder into a Stashpad (the "Convert into a Stashpad?" prompt)
used to leave the folder's existing files untouched, so you then had to run "Import
loose files & folders" separately. Now it does both in one step: on confirm it adds the
Home note and also sweeps the folder's loose files and subfolders into notes. Files
already structured as notes, and reserved subfolders, are left alone.
Reload without saving, from the actions menu (mobile)
The mobile ⚡ actions menu has a new Reload without saving item. It's the quick fix
when the view looks like it reverted to an earlier state: it rebuilds from the files on
disk (your notes are safe). It's hidden while notes are selected so it can't be tapped
mid-action. On desktop, Obsidian's built-in "Reload app without saving" command does the
same thing.
0.103.6
0.103.6 — Better note splitting
Capturing or splitting a wall of text into many notes is now faster, calmer, and more
predictable. Still alpha; keep backups.
Split-on-submit (composer)
- New notes land where you submitted them. Previously, if you pasted a long block
with split-on-newlines on and then navigated to another level mid-creation, the
remaining notes followed you there. Now the destination is fixed at submit time, so
the whole batch stays put. - Split by line, paragraph, or heading. Right-click the split button in the
composer to choose how a paste is broken up — every line (the original behavior),
blank-line paragraphs, or Markdown headings. - Long pastes show progress and are created as one batch: a single redraw at the
end instead of a flickery note-by-note repaint, and a single undo for the whole
paste.
Split modal (splitting one note into several)
- Split into many at once. A new "Split by:" row breaks a note into multiple notes
in one click (each line / paragraphs / headings), with a live count — no more placing
one divider at a time. The original line/cursor two-way split is still there. - Friendlier divider. Clicking a line puts the split point just below it, and the
divider now centers in the view so you can see context above and below it. Navigating
the split point no longer jumps the list back to the top.
Smoothness
- Big splits, the Rebootstrap maintenance command, and Open Knowledge Format
auto-rebuilds no longer repaint the list once per affected note, so the view stays
calm during bulk changes.
0.102.20
0.102.20 — Shorter store description
Listing-only update: trimmed the plugin description to fit the community-store's
200-character limit and removed a wording ("in-place editing") that could be read as
inline text editing, which Stashpad doesn't do (editing a note body opens it in
Obsidian's normal editor). No code or feature changes.
0.102.19
0.102.19 — Plugin-store review compliance (round 2)
Housekeeping release continuing the community-plugin-store review pass. No feature
changes. Still alpha; keep backups.
Compatibility
- Minimum Obsidian version is now 1.13.0. Stashpad leans on APIs (the declarative
settings/search, workspace and encryption APIs) that the store review requires the
manifest to declare. The plugin already ran against 1.13+; this just makes the floor
explicit. If you're on an older Obsidian, update to 1.13 or later to install.
Under the hood
- Cached note bodies are now re-hydrated with Obsidian's own
sanitizeHTMLToDom
(the sanctioned, safe HTML-to-DOM API) instead of a lower-level call the review
flagged. Rendering is unchanged. - Fixed an internal lint nit: a regex that strips a leading byte-order mark now uses an
escape sequence instead of a literal invisible character. No behavior change.
0.102.16
0.102.16 — Plugin-store review compliance
Housekeeping release: changes to satisfy Obsidian's automated community-plugin review.
No behavior changes — same features as 0.102.12, just cleaner under the hood. Still
alpha; keep backups.
Under the hood
- Zip handling switched from JSZip to
fflate..zip/.tar.gz/.stash
export and import, plus encrypted-bundle handling, now use the dependency-free
fflatelibrary. This removes legacy polyfill code the review flagged and trims the
bundle. Bundles round-trip identically (text, attachments, and nested paths
verified); existing.stashfiles still import. - Code-quality cleanups for the store guidelines: OS detection via Obsidian's
PlatformAPI, inline styles moved tosetCssStyles, settings headings use the
standardSetting().setHeading(), cached note bodies are re-hydrated without
innerHTML, and unused imports removed. No visible change.
CSS
- Internal stylesheet tidy-up (a mislabeled grid gap), with the remaining intentional
rules documented. No visual change.
0.102.12
0.102.12 — Open Knowledge Format (OKF) support
Turn a Stashpad folder into a browsable Open Knowledge Format bundle — the open,
vendor-neutral way to share curated knowledge with LLMs and agents — without
hand-authoring any of it. See docs/okf-guide.md for a from-scratch walkthrough.
OKF (new)
- New "Open Knowledge Format (OKF)" settings tab. Flip it on, and a folder you
opt in becomes a valid OKF bundle while staying a normal Stashpad folder —
nothing of yours is renamed or removed. - Opt in per folder via a template. Enabling OKF creates an
OKF Template.md;
assign it to the folders you want (all, some, or none) in Settings → Templates.
A one-click "Create template + open Templates" gets you there. - Complementary frontmatter. OKF folders get
okfType/okfTitle/
okfTimestamp(yours to edit) plusokfParent/okfChildrenas relative-
Markdown links that mirror your note tree — added alongside Stashpad's own fields. - Generated
index.mdper OKF folder (an OKF table-of-contents) with a legend
explaining the fields. - Export as OKF. Right-click a note (or selection) → "Export as OKF…" and pick
any of .zip / .tar.gz (portable OKF bundles) or .stash (re-importable).
Bundles map theokf*fields to OKF's standard keys, keep the originals for
lossless re-import, include a scope-adjustedindex.md, and bundle attachments. - Stays in sync automatically. Adding, moving, or deleting notes refreshes the
folder's OKF fields +index.mda few seconds later (a manual "Rebuild" button
forces it immediately). Archive folders are always excluded.
Folder panel
- Pinned folders now appear in the top "Pinned" section, mixed with pinned
notes, so notes and folders share one quick-access area. The folder list below is
unchanged (pinned folders still rank first there).
Templates
- The per-folder template field's autocomplete is now keyboard-driven: ↑/↓ to
move through suggestions, Enter to pick, Esc to close, and Tab to complete the
path one segment at a time.
Encryption
- Added a clear, prominent disclaimer in the Encryption settings: the encryption
feature is AI-built and not human-audited or security-tested — a best-effort
nice-to-have, not a guarantee. Don't rely on it for anything sensitive, and keep
your own unencrypted backups. (Still beta.)
Polish
- Settings text alignment fixes across several sections, monospaced code references
in the settings copy, and clearer setup guidance.
0.100.0
0.100.0 — Shared-key collaboration for encryption (BETA)
⚠️ Beta, and not yet tested across real devices. Vault encryption — and
especially this new shared-key collaboration — is beta software handling data
that has no recovery if the key is lost. The multi-device sync of the key
file has only been verified in simulation, not on two real synced devices yet.
Keep your own unencrypted backups of anything important, and treat this as
"protects against a casual snoop," not "trust it with secrets," until it's had
wider testing and a security review. No.stashencformat changes — existing
encrypted notes keep working and single-device vaults upgrade automatically.
Share an encrypted vault with collaborators
Two people on one synced vault can now share encrypted content. The vault has a
single key, distributed through a synced key file (.stashpad/keys.json, with
rolling backups in _keys/). Pick whichever sharing style you prefer — or use
both:
- Shared password — set one passphrase that everyone types to unlock. Share
it through a password manager or secure message. Simplest; the trade-off is a
shared secret and no per-person removal. - Device approval — a new device taps Request access, an existing member
taps Approve, and the key is shared to that device by public key. No shared
secret ever changes hands; each person keeps their own password.
Manage both under Settings → Stashpad → Encryption → Sharing: set/change/turn
off the shared password, and approve, deny, or remove devices.
Notes:
- Removing a member or turning off the shared password stops future access; it
does not claw back copies someone already synced (true revocation would require
rotating the key — a future feature). - The key file is safe to sync: it only ever contains public keys and the key
wrapped under a password/public key, never anything in the clear.
Also in this release
- List refresh on external delete — deleting a note on the filesystem (sync,
another device) now updates the list immediately. - Decrypt-all is faster — "Decrypt all locked notes" no longer rewrites
settings once per note; it batches a single save at the end. - Encryption UX polish — a clearer "Forget password on this device" action
(distinct from removing encryption), a BETA badge in the encryption screens,
the type-to-confirm phrase is case-insensitive, and the remembered password is
now namespaced per vault so it can't collide between vaults on one machine.
0.99.23
0.99.23 — Cross-folder note paste
Cut or copy notes in one Stashpad folder and paste them into another. Previously
the clipboard worked only within a single folder; a different-folder paste was
refused.
Paste across folders
- Cut → move, copy → clone. Pasting in the list of a different folder now
moves the notes there (cut) or drops a fresh duplicate (copy). The whole
subtree comes along — the note and all of its children. - Attachments travel with the notes. A moved or copied subtree carries its
referenced attachments into the destination folder's_attachments, so the
result is self-contained — no links pointing back at the original folder.
On a move, the source's now-unused attachments are cleaned up; attachments
shared with other notes are left in place. - Copies get new identities; moves keep theirs. A copy is a true duplicate
(fresh ids), so it's independent of the original. A move preserves each note's
id. Pasted roots land where your cursor is. - Archive folders are protected. An auto-encrypting archive folder is
declined as a cross-folder paste target (its key might not be on this device),
with a pointer to the explicit "Move to archive" command. Archive folders also
stay out of cross-folder search, so they don't surface as targets.
Undo / redo
- Every cross-folder paste is undoable and redoable. Undo a move and the
notes (and their attachments) return to the source folder; undo a copy and the
duplicate is removed. Redo replays it. The same applies to pasting a cut into a
note's composer.
Composer paste
- Pasting a cross-folder cut into a note's composer drops the full subtree in
as an indented bullet outline — the note plus its children, nested by depth and
ordered to match the list — then removes the originals (undoable).