An attempt at documenting the changes/new features introduced in each release.
Edge
Whenever a commit is pushed to the main branch, within ~10 minutes, it will be released as a docker image with the :v2 tag, and a binary in the edge release. If you want to live on the bleeding edge of SilverBullet goodness (or regression) this is where to do it.
2.3.0
This release (re)introduces Share, formalizes Library, and introduces in initial version of the Library Manager, a type of package manager for SilverBullet. It also progresses on Lua 5.4 compatibility.
Here’s what’s new:
- Share: a new mechanism to push content to external places and pull external content in (also used as the foundation of Library). This partially replaces many Export use cases. Export will be more for one-off use cases.
- Library: are now a more “real” thing, and can be distributed via the Library Manager and curated with Repository. For instructions on how to build your own libraries, see Library/Development. Eventually, this mechanism will succeed the
plugs configuration and Plugs: Update mechanism. Plug authors can already start to update their plugs to get ready, usually all that needs to be done is to add a PLUG.md file to their repository: example.
- Service: a new mechanism used behind the scenes to power Share, but also Export and likely other features in the future. Built on top of Event.
- URI are now a more formalized and centralized mechanism, used by Share and likely other features in the future.
- Removed “Import” support, succeeded by Share.
- Tag Picker: to quickly navigate to tag pages
- Space Lua improvements (courtesy of Matouš Jan Fialka):
- Support for
goto (yes, I said I’d never add it, but Matouš did anyway)
- More of an in-your-face error when you’re not using TLS and you should, with instructions how to fix it: even though using plain HTTP was never a supported configuration, it hard-broke in 2.2.1
- Plugs are now loaded from anywhere in the space, as long as they end with
.plug.js (so no longer need to be in _plug, in fact all shipped core plugs are now mounted under Library/Std/Plugs)
Upgrade notes:
- If you have third-party plugs installed and intend to reinstall them as Libraries: be sure to delete the old versions first. You can do so by cleaning out your
_plug folder right on the file system, or use the document picker, filter on plug.js and delete every single document that’s in the _plug folder that way.
- If you somehow end up in a state where SilverBullet doesn’t load properly, have a look at Troubleshooting for hints on what to try to fix it.
2.2.0
This is a dot release primarily because due to changes in how IndexedDB databases are named, a fully resync and reindex of your space will happen on all your devices. I’m sorry for the inconvenience, we try to limit how often this is required. If you’d like to clean up unnecessary databases afterwards you can run the Client: Clean command (once) afterwards.
- Client Encryption: when using a untrusted device (e.g. a public computer), enable this option when logging in (only supported with built-in Authentication) to encrypt all locally stored data (at a performance penalty).
- Lua fixes, making Space Lua more compatible with Lua 5.4 (most courtesy of of Matouš Jan Fialka):
- More video embeds in standard library (courtesy of Andy Costanza):
- New
widget.htmlBlock and widget.markdownBlock convenience APIs for creating block widgets (that take the full width of the screen rather than being inlined)
- The ^Library/Std/APIs/DOM API now supports embedded widgets and markdown
- The markdown renderer now renders ${"
inline code"} as a code tag with .sb-code class
- Atomic upgrades with
silverbullet update and silverbullet update-edge (by Mihai Maruseac)
- Added
Client : Clean command that deletes all redundant IndexedDB databases (ones the client is not using)
- Very basic Prometheus metrics (see Install/Configuration#Metrics)
- Fix: bottom search bar dark mode styling (by numan)
- Fix: navigation with auto links (by MrMugame)
- Fix:
SB_USER now works with SB_URL_PREFIX
2.1.8
2.1.7
- Restructure of the
Library/Std library, added some more (self) documentation. See ^Library/Std as an entry point.
- Re-added
page:saved event that was removed in 2.1
- When the clipboard API is used in Safari, will now give a proper error (Safari restriction) by (Noah Stanley)
- Full text search results now show full page path
- Space folders now support symlinks again (regression from 2.1)
- Lua: fixes in arithmetic model (by Matouš Jan Fialka)
- Lua: Removed unary plus from grammar (wasn’t actually supported) (by Matouš Jan Fialka)
- Bugfix: auth and service worker caching fixes
- Bugfix: docker health check failed when SB_URL_PREFIX was used
- Bugfix: infinite item index loop in obscure cases
2.1.4 - 2.1.6
- Fixed broken auth in Safari
- Renamed the inconstently named
index.search.enable to index.search.enabled
- Last opened (for pages) and last run (for commands) timestamps are now kept persistently between client loads (and tabs)
- Fixed docker user and group creation issues
- Removed
file:deleted triggering when checking for getFileMeta (causing an infinite indexing loop in SilverSearch)
- Server: HTTP Gzip compression is now enabled for sensible content types
- Nicer syntax to query tag objects from the index:
tags.page becomes an alias for index.tag "page" (implemented here: ^Library/Std/APIs/Tag)
- Hidden files and folders (starting with
.) are no longer synced, as well as files without a file extension (those were not support anyway)
2.1.2
This is a major architectural overhaul compared to 2.0. Please — as always — make sure you regularly backup your space files to avoid any data loss. Nothing should happen, but better be safe than sorry!
- All new server written in Go (previously written using Deno). Uses significantly less memory and is significantly smaller in size.
- Docker base image is now based on Alpine (previously Ubuntu), further reducing memory and disk space usage.
- Significant engine re-architecture: see Architecture and Sync, now lives in the service worker and parallelizes sync. Once upgrading a full resync will need to happen. Documents are no longer synced by default (you can enable this via config, see Sync).
- More configuration options for what to index (see ^Library/Std/Config under the
index section) for the purpose of reducing local storage size and needless CPU waste. Some useful ones:
config.set("index.search.enabled", false) to disable Full Text Search entirely (saves on processing and storage if you don’t use it)
config.set("index.paragraph.all", false) to disable indexing all (untagged) paragraphs. This is also somewhat wasteful if you don’t query these.
- Disable ability to rename pages in read-only mode (by Jelenkee)
- Improved docker build + health check (by Zef)
- Added
templates.tagItem template (by Andy Costanza)
- Support links in table queryable objects (by Alex Dobin)
- Refactor of document editors (by MrMugame)
- Command to toggle markdown syntax rendering (by aphymi)
- Fix transclusions not being indexed as links (by MrMugame)
- Render links inside frontmatter code as clickable anchors (by Andy Constanza)
- New
SB_LOG_PUSH option asking clients to push their browser JS logs to the server so they’re visible there.
- Hot reloading plugs has been disabled because it caused some nasty race condition. To explicitly reload plugs without restarting the client, use the
Plugs: Reload command.
2.0.0
For previous versions, see the v1 CHANGELOG