Repository navigation
Releases: crims0n/scratchpad
Release list
Scratchpad v1.1.0
Scratchpad v1.1.0
Highlights
- Native ARM64 packages join the stable release: Windows ARM64 EXE/MSI installers and Linux ARM64 AppImage/DEB packages. Windows and Linux x64 packages and the macOS Universal package remain available.
- The download website includes operating-system and processor choices. Supported browser architecture hints can suggest a matching download; otherwise, choose your processor manually. macOS uses Universal for Apple Silicon and Intel. Each package lists its size and SHA-256 hash.
- All four Linux packages share one signed
SHA256SUMSmanifest. Windows installers and their application payloads retain Authenticode signing and timestamps; macOS packages retain Developer ID signing, notarization and stapling.
Choosing a package and upgrading
Choose the package for your operating system and processor. Windows/Linux ARM64 packages require an ARM64 system; x64 (Intel / AMD) packages target x64 systems. See Download selection for browser detection limits and manual selection.
Before upgrading, back up local notes and workspace collections, resolve any failed-save or recovery message, and quit Scratchpad and its MCP clients. AppImage users should replace their chosen file and update launchers and MCP commands if its path changes.
The production app/data identity and executable names are retained. Check notes, folders/order, pins, trash, preferences, workspace reconnection and MCP access after installation and restart. Collection backups do not include preferences or MCP configuration; preserve those separately. Do not delete app data or use an app cleaner during an upgrade.
The first native ARM64 packages have no earlier native stable package to upgrade from. Switching an emulated x64 installation to ARM64, or changing installer formats, is a separate migration; do not assume these paths preserve an existing installation.
Upgrading directly from Beta
The Beta-to-stable upgrade guide also applies when upgrading directly to v1.1.0. Keep the same processor architecture and installer format for this transition.
- On macOS, install
Scratchpad.appand check your data before removing the oldScratchpad Beta.appbundle. Keep its associated app data and update MCP clients to the new app path. - Windows MSI retains the Beta upgrade family. The EXE installer detects the old per-user Beta installation and removes it with app-data deletion disabled; close Beta and its MCP clients first. A locked executable or failed removal stops the transition.
- The Debian package replaces
scratchpad-beta. AppImage users should replace their chosen file and update launchers and MCP commands containing the old filename.
Verification and limitations
The Linux checksum manifest covers both architectures; use the entry for your exact filename.
Windows signatures identify Patrick McDowell as the publisher; SmartScreen may still warn while download reputation builds.
Notes, workspace files, backups, trash and recovery copies are unencrypted. Do not run multiple instances against the same collection or workspace file. Keep important backups outside the app data directory. Folding remains limited to 100,000 characters and 10,000 lines. Encryption, remote sync, dedicated PDF export and in-app update installation are not included; native printing can save to PDF where the operating system supports it. Update checks remain optional, off by default, and installation is manual.
Verifying Linux downloads
Linux packages are covered by SHA256SUMS, signed as SHA256SUMS.asc with the Scratchpad release-signing key (fingerprint 1AD2 0240 0B0C 14AD 86F4 3E14 4F6B 122C D9DC CB40). Follow Verifying Linux downloads before installing.
What's Changed
- Verify live release metadata after Pages deployment by @crims0n in #131
- docs: add README section navigation by @crims0n in #134
- ci: verify native ARM64 package feasibility by @crims0n in #135
- ci: validate ARM64 signing before release integration by @crims0n in #136
- fix: initialize isolated signing keyring before GPG lookup by @crims0n in #137
- Integrate native ARM64 builds into stable release candidates by @crims0n in #138
- Add explicit architecture selection to website downloads by @crims0n in #139
- Prepare v1.1.0 signed release candidate by @crims0n in #140
Full Changelog: v1.0.0...v1.1.0
Scratchpad v1.0.0
Scratchpad v1.0.0
Highlights
- Scratchpad's first stable release brings the existing local-first Markdown editor, dual-note view and comparison, search, folders, persistent trash, themes, and optional local MCP agent access into one release stream.
- macOS universal packages are Developer ID-signed and notarized. Windows EXE/MSI installers and installed executables are Authenticode-signed and timestamped. Linux AppImage and Debian downloads are covered by a GPG-signed checksum manifest; the AppImage also carries an embedded signature.
- Complete collection backup/restore and guarded local collection clearing retain verified safety copies. Unreadable local data is preserved for recovery instead of being silently replaced.
- Collection switches, window closing, and macOS Quit flush pending saves while both panes are read-only. Failed saves cancel the operation; a stalled macOS Quit offers a native choice without automatically discarding edits.
- Automatic format detection and editor coloring include Splunk SPL. In-app Help includes a user guide alongside shortcuts, Markdown examples, and the MCP function reference.
- Updates use one preferred release feed. Existing beta clients can discover 1.0, and newer clients no longer select a channel from the internal application identifier. Update checks remain optional and off by default; installation is manual.
Upgrading from beta
Back up local notes and workspace collections, resolve any failed-save or recovery message, and quit Scratchpad and its MCP clients before upgrading. Follow Upgrading from beta to 1.0 for the platform-specific procedure.
- Existing data locations and the published executable name are retained. Do not delete or reset app data during the transition.
- On macOS the new app is
Scratchpad.app. The oldScratchpad Beta.apphas a different filename; remove the old application bundle after checking the new app, without removing its associated data. Update MCP clients to the new application path. - The Windows MSI retains the beta upgrade identity. The EXE installer detects the old per-user Beta install, removes it with app-data deletion disabled, and stops if the previous executable is locked or removal fails. Use the same installer format for this transition and update MCP paths as needed.
- The Debian package replaces
scratchpad-beta. AppImage users should replace their chosen file and update launchers/MCP commands containing the old filename. - Check local notes, folders/order, pins, trash, preferences, and workspace reconnection after installation and restart. Collection backups do not include preferences or MCP configuration.
Verification and limitations
Verify Linux packages using SHA256SUMS, SHA256SUMS.asc, and the published release-signing key. Follow Verifying Linux downloads. Launching an AppImage does not automatically validate its signature, and a directly downloaded Debian package requires explicit verification.
Windows signatures identify Patrick McDowell as the publisher; SmartScreen may still warn while download reputation builds. Signing and automated checks do not replace installed-package acceptance on each supported platform.
Notes, workspace files, backups, trash, and recovery copies are unencrypted. Do not run multiple instances against the same collection or workspace file. Keep important backups outside the app data directory. Folding remains limited to 100,000 characters and 10,000 lines. In-app update installation, encryption, remote sync, and dedicated PDF export remain outside 1.0; native printing can save to PDF where the operating system supports it.
Verifying Linux downloads
Linux packages are covered by SHA256SUMS, signed as SHA256SUMS.asc with the Scratchpad release-signing key (fingerprint 1AD2 0240 0B0C 14AD 86F4 3E14 4F6B 122C D9DC CB40). Follow Verifying Linux downloads before installing.
What's Changed
- Prepare upgrade identity and release discovery for 1.0 by @crims0n in #110
- Prepare signed stable v1.0.0 releases and retire beta packaging by @crims0n in #111
- Bind release drafts to signature-verified artifacts by @crims0n in #113
- Show detected note format in the status bar by @crims0n in #114
- Detect and highlight Splunk SPL notes by @crims0n in #115
- Restrict native workspace access and isolate window commands by @crims0n in #119
- Separate signed builds from release write access by @crims0n in #120
- Validate imported theme colors and normalize names by @crims0n in #121
- Create private workspace files and preferences on Unix by @crims0n in #122
- chore(deps): bump swatinem/rust-cache from 2.9.2 to 2.9.3 by @dependabot[bot] in #116
- chore(deps): bump the frontend-dependencies group across 1 directory with 3 updates by @dependabot[bot] in #117
- chore(deps): bump the rust-dependencies group across 1 directory with 2 updates by @dependabot[bot] in #118
- Protect pending saves when quitting on macOS by @crims0n in #127
- Preserve edits across collection switches and closing by @crims0n in #128
- Review 1.0 documentation, architecture, and in-app guidance by @crims0n in #129
Full Changelog: scratchpad-beta-v0.8.2...v1.0.0
Scratchpad Beta v0.8.2
Scratchpad Beta v0.8.2
Highlights
- The macOS app and DMG are now signed with a Developer ID certificate and notarized by Apple, so they open without a security bypass. The universal app uses the hardened runtime with no entitlements.
- Windows application executables and both installers are now Authenticode-signed and timestamped with Azure Artifact Signing, identifying the publisher as Patrick McDowell.
- Linux packages are now signed. Each release includes a
SHA256SUMSfile covering the AppImage and.deb, signed with the Scratchpad release-signing key asSHA256SUMS.asc. The AppImage also carries an embedded GPG signature. - The website's new Verify Linux packages section publishes the release-signing key and its full fingerprint,
1AD2 0240 0B0C 14AD 86F4 3E14 4F6B 122C D9DC CB40, with step-by-step verification instructions.
Release signing
- The macOS release job notarizes and staples both the app and the DMG, then verifies the uploaded artifacts: Developer ID signature from the expected team, secure timestamp, hardened runtime, Gatekeeper acceptance, and a launch of the signed binary on both architectures. Any failure stops the release.
- The Windows release job verifies both installers and every executable and DLL they install. Missing or invalid signatures, an unexpected publisher, or a missing timestamp fail the job.
- The release workflow signs Linux artifacts with a dedicated signing subkey held in a protected environment. A signing or verification failure stops the release.
- Before publishing, the workflow verifies the final uploaded packages using only the published key, and confirms that modified packages or checksums are rejected.
- Launching an AppImage does not check its signature, and
apt/dpkgdo not verify a.debyou downloaded directly. Use theSHA256SUMSprocedure to verify either package before installing. - Application features and behavior are unchanged from v0.8.1. See the v0.8.1 release for the CodeMirror 6 editors, format detection, section folding, HTML export, and printing.
Compatibility and beta notice
- v0.8.2 retains the existing beta application identity and packaging. No manual collection migration is required from v0.8.0 or v0.8.1.
- Existing notes, folders, trash, themes, preferences, and workspace files continue to use their existing locations. Back up important data before upgrading, and do not delete app data while recovery is pending.
- macOS and Windows packages are signed, but SmartScreen may still warn about new downloads while reputation builds. Automated checks do not replace installed-package acceptance testing on macOS, Windows, and Linux.
Verifying Linux downloads
Linux packages are covered by SHA256SUMS, signed as SHA256SUMS.asc with the Scratchpad release-signing key (fingerprint 1AD2 0240 0B0C 14AD 86F4 3E14 4F6B 122C D9DC CB40). Follow Verifying Linux downloads before installing.
What's Changed
- Sign Linux release artifacts and document verification by @crims0n in #96
- Link Linux download verification from every release by @crims0n in #97
- Bump @tauri-apps/cli from 2.11.5 to 2.12.1 in the frontend-dependencies group by @dependabot[bot] in #99
- Bump the rust-dependencies group in /src-tauri with 4 updates by @dependabot[bot] in #100
- Bump actions/setup-node from 7.0.0 to 7.1.0 by @dependabot[bot] in #101
- Bump the rust-dependencies group in /src-tauri with 3 updates by @dependabot[bot] in #103
- Bump the frontend-dependencies group with 4 updates by @dependabot[bot] in #102
- chore(deps): bump the rust-dependencies group in /src-tauri with 8 updates by @dependabot[bot] in #105
- chore(deps): bump the frontend-dependencies group with 2 updates by @dependabot[bot] in #104
- Sign Windows builds with Azure Artifact Signing by @crims0n in #107
- chore: prepare v0.8.2 beta release by @crims0n in #98
- feat(release): sign and notarize macOS builds with Developer ID by @crims0n in #108
- chore(release): finalize v0.8.2 signing checks by @crims0n in #109
Full Changelog: scratchpad-beta-v0.8.1...scratchpad-beta-v0.8.2
Scratchpad Beta v0.8.1
Scratchpad Beta v0.8.1
Highlights
- Both note editors now use CodeMirror 6, with editor-managed undo, aligned gutters, and the existing Markdown helpers, Find/Replace, Compare, wrapping, and appearance settings.
- Detect TXT, Markdown, JSON, XML, YAML, and CSV notes automatically, with sidebar format badges and optional format-aware editor colors in both panes.
- Collapse Markdown, JSON, XML, and YAML sections using gutter arrows and hidden-line placeholders. Find reveals hidden matches, and Compare starts expanded.
- Export a note as a standalone HTML file with embedded styles for offline reading, or print the active note through the system print dialog with Cmd/Ctrl+P.
- Improve large-note responsiveness, preserve editor sessions during MCP appends, and protect existing files when native exports fail.
- Match the folding gutter to the editor background and reduce editor margins for a more compact writing area.
Editing and format detection
- CodeMirror 6 powers both editor panes while preserving Markdown continuation, pair completion, selection wrapping, smart paste, tables, context-menu insertion, and line-number preferences.
- Sidebar badges update as notes change. Editor colors follow detected Markdown, JSON, XML, YAML, and CSV formats; TXT stays plain. CSV uses repeating column colors, including quoted multiline fields.
- Detection favors Markdown and ordinary prose over ambiguous YAML or CSV, while supporting structured YAML with leading comments. Non-Markdown snippets keep literal characters in previews.
- Fold Markdown headings and fenced code, JSON objects and arrays, XML elements, and YAML nested mappings, sequences, and scalar blocks. Click a hidden-line placeholder to expand it. CSV and TXT stay unfolded.
- Folding is available for notes up to 100,000 characters and 10,000 lines to keep typing responsive. Larger notes remain editable without folding. Collapsing only changes the editor view; saved, copied, exported, and printed content retains the full source.
- MCP appends preserve undo history, selection, scroll position, and valid collapsed sections in both panes showing the note.
Export, printing, and collections
- Export HTML file saves the active note with preview formatting and embedded styles. In split view, it exports the active pane. Remote images remain blocked.
- Print Note… or Cmd/Ctrl+P opens a formatted, note-only print preview with a paper-friendly light palette and the system print dialog. In split view, it prints the active pane. Cancel leaves the note unchanged; use Print… to retry and Close when finished.
- Closing the main editor saves pending edits and exits the app, including any open print preview. A failed save cancels closing.
- Native HTML, Markdown, recovery, and collection-backup exports stage, sync, and verify a new file before replacing the destination, preserving an existing file if preparation fails.
- Menu labels, action descriptions, Help, and the welcome note clarify the active collection, workspace storage, and which collection each action affects.
Compatibility and beta notice
- v0.8.1 retains the existing beta application identity and packaging. No manual collection migration is required from v0.8.0.
- Existing notes, folders, trash, themes, preferences, and workspace files continue to use their existing locations. Back up important data before upgrading, and do not delete app data while recovery is pending.
- Builds are not yet production-signed; macOS and Windows may display a security warning. Automated checks do not replace installed-package acceptance testing on macOS, Windows, and Linux.
What's Changed
- Clarify collections, workspace storage, and menu action scope by @crims0n in #71
- Add standalone HTML note export by @crims0n in #73
- Add note-only native printing by @crims0n in #75
- Add detected file format badges to sidebar notes by @crims0n in #76
- Highlight detected note formats in both editor panes by @crims0n in #77
- Migrate both note editors to CodeMirror 6 by @crims0n in #79
- Add format-aware section folding in both editors by @crims0n in #80
- Keep large-note typing responsive by bounding folding by @crims0n in #87
- Preserve existing files when native exports fail by @crims0n in #88
- Keep Markdown and prose out of ambiguous YAML and CSV detection by @crims0n in #89
- Preserve folds and undo history during MCP appends by @crims0n in #90
- Exit when the saved editor closes with print preview open by @crims0n in #91
- Tighten editor spacing and match gutter background by @crims0n in #94
- chore: prepare v0.8.1 beta release by @crims0n in #95
Full Changelog: scratchpad-beta-v0.8.0...scratchpad-beta-v0.8.1
Scratchpad Beta v0.8.0
Scratchpad Beta v0.8.0
Highlights
- Back up and restore a complete local-only or workspace collection, including folders, ordering, pins, and trash.
- Preserve unreadable local notes and folders instead of overwriting them, with read-only protection and a recovery/export path.
- Clear only the local notes, folders, and trash through an explicit DELETE confirmation, with a verified safety backup retained first.
- Keep intentionally empty collections empty, with a clear prompt to create or select a note before editing.
- Improve MCP collection switching, top-level folder filtering, and listener resilience.
Complete collection backup and restore
- Choose Back Up Collection… in the desktop app to save the currently open collection as a versioned JSON file. Pending edits are saved first; the backup is staged, synced, and verified before replacing an existing backup file.
- Choose Restore Collection… to validate a backup and preview its destination and note, folder, and trash counts before confirming Replace collection. Restore replaces the current collection; it does not merge collections. Invalid, truncated, or unsupported files are rejected before replacement.
- Backup/restore dialogs separate paragraphs for readability and remove pre-operation reminders from completion and failure messages.
- Backups preserve supported note and folder metadata, including IDs, titles, bodies, timestamps, title locks, folder assignments, pins, ordering, empty folders, and deleted-note metadata. They can be restored into local-only or workspace collections; restoring a workspace keeps its file and connection.
- Before replacement, Scratchpad saves and verifies a restorable safety backup in the app data directory's
collection-backupsfolder and shows its path. Keep this file until you have checked the restored data; restore it through the same menu action to undo a replacement. - Workspace replacement uses a SQLite transaction. Local replacement uses a durable checkpoint to recover the previous values after failed or interrupted writes, including on the next launch. If recovery cannot complete, local data stays read-only and Retry reading retries recovery.
- Editing, collection switching, MCP writes, and closing the app are blocked while the restore dialog is open. Close other Scratchpad instances using the same collection first: backup/restore does not lock other processes.
- Backups and safety copies are unencrypted and include trashed note content. They exclude preferences, themes, collapsed sections, workspace paths, MCP tokens/permissions, and previous recovery archives. Store them privately and copy important backups outside the app data directory; safety copies have no automatic expiry.
Local data preservation and empty collections
- Clear Local Collection… is available in the desktop app while local notes are active. Review the counts and type the exact word DELETE to enable clearing; Cancel/Escape makes no collection change. Pending edits and a verified safety backup are saved before clearing, using the local restore checkpoint/rollback path. Preferences, themes, workspace files, and existing backup/recovery copies are retained. This is not secure erasure; keep the unencrypted safety backup private and use Restore Collection… to recover it if needed.
- Unreadable or structurally invalid local notes/folders no longer silently become an empty collection. Local writes are blocked while the recovery warning is active, preserving the original stored values.
- Recovery controls let you retry reading, export preserved raw data for manual recovery, or explicitly replace unreadable notes/folders only after an independent native recovery copy has been saved and verified. Healthy collection data and trash are retained by that recovery action.
- Recovery exports contain raw damaged data and are distinct from collection backups; they cannot be imported through Restore Collection…. Replacement through the recovery controls is desktop-only.
- Empty and trash-only restored collections remain empty after reopening. With no note selected, title and editor fields are read-only, with a prompt to create or select a scratchpad. Creating or selecting a note enables editing; no placeholder note is inserted automatically.
MCP reliability and maintenance
- Collection switching publishes and awaits the new MCP snapshot before reopening writes.
- List/search folder filters now distinguish an omitted
folderId(all notes) fromnull(top-level notes). - Transient listener accept failures retry with bounded exponential backoff; unusable-listener errors stop the listener.
- Update Marked to 18.0.14, Tauri to 2.11.6, the Tauri CLI to 2.11.5, rmcp to 3.4.1, dirs to 7.0.0, reqwest to 0.13.5, and uuid to 1.26.1.
Compatibility and beta notice
- v0.8.0 retains the existing beta application identity and packaging. No manual collection migration is required from v0.7.3; this is not the 1.0 branding or release-discovery transition.
- Existing notes, folders, trash, themes, preferences, and workspace files continue to use their existing locations. Back up important data before upgrading, and do not delete app data while recovery is pending.
- Builds are not yet production-signed; macOS and Windows may display a security warning. Automated checks do not replace installed-package acceptance testing on macOS, Windows, and Linux.
What's Changed
- Fix remaining MCP follow-ups by @crims0n in #52
- Bump marked from 18.0.11 to 18.0.12 in the frontend-dependencies group by @dependabot[bot] in #53
- Bump the rust-dependencies group across 1 directory with 4 updates by @dependabot[bot] in #55
- Bump the rust-dependencies group in /src-tauri with 2 updates by @dependabot[bot] in #57
- Bump the frontend-dependencies group with 2 updates by @dependabot[bot] in #56
- Preserve unreadable local notes and add a recovery path by @crims0n in #60
- Add complete collection backup and safe restore by @crims0n in #61
- chore: prepare v0.8.0 beta release by @crims0n in #64
- fix: clarify collection backup and restore dialogs by @crims0n in #65
- Add guarded clear-local-collection action by @crims0n in #67
Full Changelog: scratchpad-beta-v0.7.3...scratchpad-beta-v0.8.0
Scratchpad Beta v0.7.3
Scratchpad Beta v0.7.3
Highlights
- Create a scratchpad by double-clicking empty space below the sidebar list. New blank scratchpads open ready to edit, even when Preview was selected.
- Keep imported themes readable with sidebar and active-note tones derived from the theme's own colors.
- Use RGB, HSL, named colors, and
color(srgb …)in custom themes without light themes being mistaken for dark ones. - On macOS, About Scratchpad in the native application menu now opens the same in-app About and update panel as the Scratchpad menu.
Faster note creation
- Double-click the empty sidebar area to create and select a new scratchpad. Double-clicks on notes, folders, buttons, and other controls keep their existing behavior.
- A newly created blank scratchpad switches from Preview to Edit automatically so there is always somewhere to type. Split view remains in place because it already includes an editor, and notes created with content retain the selected layout.
- The in-app Help and welcome guide describe the new sidebar gesture.
Theme readability
- Secondary and muted sidebar text is now derived from each theme's foreground, background, sidebar, hover, and active-row surfaces instead of inheriting tones measured for the built-in palette.
- Across all 17 built-in themes, secondary and muted text meets the 4.5:1 contrast target on idle and hover surfaces, as does every text tone on active rows. GitHub Dark's active-row background is adjusted so both its title and dimmer preview remain readable.
- Imported opaque RGB, HSL, named, and
color(srgb …)colors are resolved by the browser and measured like equivalent hex colors. This fixes light non-hex themes receiving dark fallback tones. - Switching themes clears previously derived tones before applying the new set, preventing colors from the prior theme leaking into partially measurable themes.
- Translucent colors are preserved rather than flattened for contrast calculations. Colors that the browser retains in another color space, such as
oklch()or Display P3, also remain unchanged and use the documented dark fallback when light/dark classification cannot be measured safely.
Menu and agent-access polish
- The native macOS About command focuses the main window and opens Scratchpad's existing About panel, including release notes and update controls. Reopening it does not disturb the element that receives focus when the panel closes.
- Enabling MCP access now says that reads are available immediately while writes remain disabled until explicitly allowed in MCP Configuration. Connection metadata no longer describes the whole session as read-only after write permissions are enabled.
- The MCP permission summary now has its own status identity, keeping its live read/write count distinct and reliable for assistive technology.
Compatibility and beta notice
- Existing local notes, folders, trash, themes, preferences, and workspace files continue to work; no manual migration is required from v0.7.2.
- Existing welcome notes are left untouched. The updated guide is used for newly created welcome notes.
- v0.7.3 retains the existing beta application identity and packaging. Builds are not yet production-signed; macOS and Windows may display a security warning.
What's Changed
- Fix MCP access permission messaging by @crims0n in #41
- Rename MCP permission summary identifier by @crims0n in #42
- fix: derive sidebar text tones from the active theme by @crims0n in #46
- fix: route native About to app panel by @crims0n in #48
- feat: create a scratchpad by double-clicking empty sidebar space, and open blank ones in edit mode by @crims0n in #49
- fix: classify non-hex theme colours by resolving them first by @crims0n in #50
- chore: prepare v0.7.3 beta release by @crims0n in #51
Full Changelog: scratchpad-beta-v0.7.2...scratchpad-beta-v0.7.3
Scratchpad Beta v0.7.2
Scratchpad Beta v0.7.2
Highlights
- Check for updates from Scratchpad menu → About Scratchpad, and read the release notes inside the app before deciding to download.
- Opt into quiet automatic update checks, off by default, with separate Beta and Stable release channels.
- Type more smoothly while comparing large notes: live comparisons refresh after a brief pause instead of recalculating on every input frame.
- Open an empty remembered workspace reliably when your local collection contains folders but no notes.
Optional update checks
- About shows the installed version, release channel, last check time, and any available update. The About menu item and a quiet menu indicator show when a newer release is available.
- Read release notes expands the specific release’s notes inside the app. Notes are displayed as plain text without loading remote images.
- Download Update opens that version’s GitHub release page in your browser. Later closes the panel; Skip This Version suppresses background notices for that version. Manual checks can still reveal a skipped release.
- Automatically check for updates is off by default. When enabled, checks run shortly after launch and at most once every 24 hours, including failed attempts. The preference, last attempt time, and skipped version are saved locally.
- Checks contact GitHub Pages for public release information. GitHub receives normal connection information such as your IP address, but no notes or workspace data. Background failures do not interrupt editing; manual failures offer Retry.
- Beta and Stable releases stay separate. Semantic-version comparison prevents older releases published later from being offered as updates or downgrades.
- Turning automatic checks off cancels future checks; a request already sent may finish. Scratchpad never installs updates automatically.
Comparison and workspace reliability
- Live note comparison waits for a 150 ms pause in typing and reuses results when neither note has changed. Opening Compare still computes the initial comparison immediately.
- While a comparison is pending, the toolbar shows Updating comparison… and old diff highlights are hidden so they do not mark the wrong text. Closing Compare or changing the selected notes cancels pending work.
- Startup seeding now saves a folders-only local collection into an empty remembered workspace in one transaction. If the save fails, Scratchpad falls back to local notes without leaving a partially seeded workspace or reporting a successful connection.
Maintenance
- Updated the Rust dependencies and GitHub Pages deployment action.
- Updated the README, in-app Help, welcome guide, and MCP privacy reference for optional update checks.
Compatibility and beta notice
- Existing local notes, folders, trash, and workspace files continue to work; no manual migration is required from v0.7.1.
- Existing welcome notes are left untouched. The updated guide is used for newly created welcome notes.
- v0.7.2 retains the existing beta application identity and packaging. Builds are not yet production-signed; macOS and Windows may display a security warning.
- This release adds update discovery and download links, not in-app installation. Install downloaded packages using the usual platform process.
What's Changed
- docs: document pull request workflow by @crims0n in #26
- Bump actions/deploy-pages from 5.0.0 to 5.0.1 by @dependabot[bot] in #24
- Bump the rust-dependencies group in /src-tauri with 2 updates by @dependabot[bot] in #25
- Make folders-only startup seeding atomic by @crims0n in #28
- Fix compare-mode typing stalls by @crims0n in #29
- Add optional update checks and in-app release notes by @crims0n in #30
- Prepare Scratchpad Beta v0.7.2 by @crims0n in #31
Full Changelog: scratchpad-beta-v0.7.1...scratchpad-beta-v0.7.2
Scratchpad Beta v0.7.1
Scratchpad Beta v0.7.1
Highlights
- Fix MCP stdio authentication for beta builds by resolving the token from the merged beta application configuration.
- Connect a local MCP agent to the collection open in Scratchpad, with five read functions and eight individually enabled write functions.
- Choose exactly which functions agents can use in MCP Configuration. Access starts off; every time you enable it, reads start on and writes start off.
- Recover deleted notes from persistent trash. Click the bottom-right trash icon to restore a note, or right-click it to empty trash after confirmation.
- See MCP listening beside the save status whenever agent access is enabled.
MCP agent access
Open Scratchpad menu → Agent access and turn access On. MCP Configuration provides the executable path, the --mcp-stdio argument, copy buttons, and a generic JSON example for clients that launch local stdio MCP servers. Scratchpad must remain open. No separate server or runtime is required.
| Read functions — enabled by default when access starts | Write functions — individually opt in |
|---|---|
list_folders — folder IDs, names, revisions, and note counts |
create_note — create a titled note, optionally in a folder |
list_notes — note metadata and previews |
create_folder — create a folder |
search_notes — search titles and Markdown |
append_to_note — append exact text to an existing note |
get_note — read note content and its revision |
rename_note — set and lock a note title |
list_trash — deleted-note metadata |
move_note — move to a folder or the top level |
rename_folder — rename without changing note assignments |
|
delete_note — move a note to recoverable trash |
|
delete_folder — remove an empty folder |
- Select individual permissions or all functions within the Read or Write section. Changes apply immediately to connected clients. Permissions reset when access is restarted.
- Agents read the current collection, including unsaved edits. Opening or disconnecting a workspace changes the collection they see.
- Writes require the current collection ID and a request ID. Existing-item changes also check a revision, preventing a stale request from overwriting intervening edits.
- Retry the same request ID with identical arguments after a timeout or save failure. Accepted changes that fail to save remain visible with Save failed; a retry saves without applying them twice.
move_noteaccepts an explicit JSONnulldestination for the top level. Omission and the string"null"are not substitutes.- MCP folder deletion requires an empty folder, including any pinned notes assigned to it. There is no cascading deletion or whole-note replacement.
- Access uses an authenticated local channel. Scratchpad itself sends no notes to a service; the connected agent may send returned content to its model provider.
See the MCP reference for setup, parameters, pagination, limits, and recovery behavior. If you tested an earlier HTTP configuration, replace its URL and authorization header with the local stdio command and argument.
Trash and recovery
- Delete Note is available in the note's right-click menu. Both it and the sidebar delete button use the same recovery path as MCP deletion.
- Trash retains full Markdown, titles, pin state, title-lock state, and original folder information. It is separate for local notes and each workspace, survives restarts, and has no automatic expiry.
- Click the trash icon and choose Restore. Notes return to their original folder, or the top level if that folder no longer exists. Restoration cannot overwrite an active note with the same ID.
- Right-click the icon, or focus it and press Shift+F10, then choose Empty Trash…. Confirmation defaults to Cancel. Notes deleted after the confirmation opens are retained.
- Agents can list trash metadata, but cannot read trashed note bodies, restore notes, or empty trash. Permanent removal is available only through the user interface.
- Deleting the last active note leaves a new blank note. Deleting a folder from the sidebar continues to return its notes to the top level.
Interface and reliability
- Workspace is now the first section in the Scratchpad menu. The Agent access On/Off toggle matches the appearance controls and keeps the menu open when changed.
- MCP Configuration remains available while access is off. Function permissions appear above the generic configuration example, which wraps without an internal scrollbar.
- Menu labels, spacing, and alignment are consistent. The listening dot uses the interface accent color alongside the existing save or workspace-file status.
- SQLite structural changes commit notes, folders, and trash together, with folder-reference validation. Save queues coordinate agent changes, typing, workspace switching, and window close.
- Local deletion writes recovery data before removing active notes. Interrupted local saves may retain duplicate recovery copies rather than lose a note. Confirmed Empty Trash can free local storage after a quota failure.
- The README, welcome note, About text, and Help reference now cover agent access and note recovery.
Compatibility and beta notice
- Existing local notes, folders, preferences, and workspace files continue to work. SQLite workspaces gain an additive trash table automatically; no manual migration is required.
- Local notes and workspace notes remain separate. An empty workspace is seeded with active notes and folders; local trash stays local. A workspace containing only trash opens its own collection.
- Agent access is off on launch. Reconnect your client after restarting Scratchpad or re-enabling access. Old collection IDs and retry receipts do not survive a collection session change.
- Trash protects deletions made with this version; it cannot recover notes permanently deleted by earlier versions. Keep backups of important workspace files.
- v0.7.1 retains the existing beta application identity and packaging. Builds are not yet production-signed; macOS and Windows may display a security warning.
Full Changelog: scratchpad-beta-v0.7.0...scratchpad-beta-v0.7.1
Scratchpad Beta v0.7.0
Scratchpad Beta v0.7.0
Highlights
- Connect a local MCP agent to the collection open in Scratchpad, with five read functions and eight individually enabled write functions.
- Choose exactly which functions agents can use in MCP Configuration. Access starts off; every time you enable it, reads start on and writes start off.
- Recover deleted notes from persistent trash. Click the bottom-right trash icon to restore a note, or right-click it to empty trash after confirmation.
- See MCP listening beside the save status whenever agent access is enabled.
MCP agent access
Open Scratchpad menu → Agent access and turn access On. MCP Configuration provides the executable path, the --mcp-stdio argument, copy buttons, and a generic JSON example for clients that launch local stdio MCP servers. Scratchpad must remain open. No separate server or runtime is required.
| Read functions — enabled by default when access starts | Write functions — individually opt in |
|---|---|
list_folders — folder IDs, names, revisions, and note counts |
create_note — create a titled note, optionally in a folder |
list_notes — note metadata and previews |
create_folder — create a folder |
search_notes — search titles and Markdown |
append_to_note — append exact text to an existing note |
get_note — read note content and its revision |
rename_note — set and lock a note title |
list_trash — deleted-note metadata |
move_note — move to a folder or the top level |
rename_folder — rename without changing note assignments |
|
delete_note — move a note to recoverable trash |
|
delete_folder — remove an empty folder |
- Select individual permissions or all functions within the Read or Write section. Changes apply immediately to connected clients. Permissions reset when access is restarted.
- Agents read the current collection, including unsaved edits. Opening or disconnecting a workspace changes the collection they see.
- Writes require the current collection ID and a request ID. Existing-item changes also check a revision, preventing a stale request from overwriting intervening edits.
- Retry the same request ID with identical arguments after a timeout or save failure. Accepted changes that fail to save remain visible with Save failed; a retry saves without applying them twice.
move_noteaccepts an explicit JSONnulldestination for the top level. Omission and the string"null"are not substitutes.- MCP folder deletion requires an empty folder, including any pinned notes assigned to it. There is no cascading deletion or whole-note replacement.
- Access uses an authenticated local channel. Scratchpad itself sends no notes to a service; the connected agent may send returned content to its model provider.
See the MCP reference for setup, parameters, pagination, limits, and recovery behavior. If you tested an earlier HTTP configuration, replace its URL and authorization header with the local stdio command and argument.
Trash and recovery
- Delete Note is available in the note's right-click menu. Both it and the sidebar delete button use the same recovery path as MCP deletion.
- Trash retains full Markdown, titles, pin state, title-lock state, and original folder information. It is separate for local notes and each workspace, survives restarts, and has no automatic expiry.
- Click the trash icon and choose Restore. Notes return to their original folder, or the top level if that folder no longer exists. Restoration cannot overwrite an active note with the same ID.
- Right-click the icon, or focus it and press Shift+F10, then choose Empty Trash…. Confirmation defaults to Cancel. Notes deleted after the confirmation opens are retained.
- Agents can list trash metadata, but cannot read trashed note bodies, restore notes, or empty trash. Permanent removal is available only through the user interface.
- Deleting the last active note leaves a new blank note. Deleting a folder from the sidebar continues to return its notes to the top level.
Interface and reliability
- Workspace is now the first section in the Scratchpad menu. The Agent access On/Off toggle matches the appearance controls and keeps the menu open when changed.
- MCP Configuration remains available while access is off. Function permissions appear above the generic configuration example, which wraps without an internal scrollbar.
- Menu labels, spacing, and alignment are consistent. The listening dot uses the interface accent color alongside the existing save or workspace-file status.
- SQLite structural changes commit notes, folders, and trash together, with folder-reference validation. Save queues coordinate agent changes, typing, workspace switching, and window close.
- Local deletion writes recovery data before removing active notes. Interrupted local saves may retain duplicate recovery copies rather than lose a note. Confirmed Empty Trash can free local storage after a quota failure.
- The README, welcome note, About text, and Help reference now cover agent access and note recovery.
Compatibility and beta notice
- Existing local notes, folders, preferences, and workspace files continue to work. SQLite workspaces gain an additive trash table automatically; no manual migration is required.
- Local notes and workspace notes remain separate. An empty workspace is seeded with active notes and folders; local trash stays local. A workspace containing only trash opens its own collection.
- Agent access is off on launch. Reconnect your client after restarting Scratchpad or re-enabling access. Old collection IDs and retry receipts do not survive a collection session change.
- Trash protects deletions made with this version; it cannot recover notes permanently deleted by earlier versions. Keep backups of important workspace files.
- v0.7.0 retains the existing beta application identity and packaging. Builds are not yet production-signed; macOS and Windows may display a security warning.
Scratchpad Beta v0.6.0
Scratchpad Beta v0.6.0
Highlights
- Organize scratchpads into collapsible folders from the sidebar. Drag notes onto folders, reorder folders, or use each folder's context menu to add notes, rename, move, and delete it.
- Compare two notes live in Dual-Note Split View. Scratchpad highlights removed source on the left and added source on the right without changing either note.
- Pinned notes now stay at the very top of the sidebar as top-level notes. Notes without a folder remain below folders instead of appearing in a synthetic “Unfiled” section.
- Folder structure and note assignments persist in both local storage and portable SQLite workspaces.
Folder organization
- Create folders with the new sidebar folder button, collapse them to reduce clutter, and drag them into the preferred order.
- Drag a note onto a folder or choose Move to Folder from its context menu. Deleting a folder safely returns its notes to the top level rather than deleting them.
- Sidebar search temporarily expands matching folders while preserving their collapsed state for later.
- Pinned notes retain their previous folder assignment so unpinning returns them to the right place. Creating or importing from a pinned note correctly creates at the top level.
- The secondary-note selector groups ordinary notes by folder while leaving pinned and folderless notes at the top level.
Note comparison
- Choose Compare while two different notes are open side by side to enable line-level and contiguous substring highlighting.
- The comparison count reports changed lines, updates as either note is edited, and uses a change rail so blank-line and whitespace-only differences remain visible even when line numbers are off.
- Comparison composes with Markdown syntax coloring and Find highlights, and turns off automatically when split view closes or both panes show the same note.
- Split-view headers now align both notes side by side, with each title positioned consistently and the secondary-note selector beside its title.
Interface and reliability
- Subtle dividers distinguish pinned notes, folders, and top-level notes without adding empty sidebar sections.
- The About dialog now gives a fuller description of Scratchpad's local-first, cross-platform design and privacy model.
- Closing Dual-Note Split View immediately clears its temporary enabled notification.
- Workspace structural updates save folders and notes in one SQLite transaction. Failed workspace loads or first-time seeds leave the local collection intact.
- jsdiff 9.0.0 is bundled with the application for offline note comparison under its BSD 3-Clause License.
Compatibility
- Existing local notes, pinned state, sidebar order, preferences, and Markdown editing settings remain intact.
- Existing SQLite workspace files are upgraded automatically with optional folder assignments and a folders table; no manual migration is required.
- Local notes and workspace notes remain separate collections when connecting or disconnecting a workspace.
- Scratchpad remains fully offline; jsdiff is bundled locally and no note content is sent to an external service.
Beta notice
Back up important workspace files before testing. These builds are not yet production-signed, so macOS and Windows may display a security warning.
Full Changelog: scratchpad-beta-v0.5.6...scratchpad-beta-v0.6.0