diff --git a/public/screenshots/0.15.0/agent-run-changes-undo.webp b/public/screenshots/0.15.0/agent-run-changes-undo.webp new file mode 100644 index 0000000..a411a1f Binary files /dev/null and b/public/screenshots/0.15.0/agent-run-changes-undo.webp differ diff --git a/public/screenshots/0.15.0/chat-message-search.webp b/public/screenshots/0.15.0/chat-message-search.webp new file mode 100644 index 0000000..234f5fe Binary files /dev/null and b/public/screenshots/0.15.0/chat-message-search.webp differ diff --git a/public/screenshots/0.15.0/database-board-swimlanes.webp b/public/screenshots/0.15.0/database-board-swimlanes.webp new file mode 100644 index 0000000..f65870e Binary files /dev/null and b/public/screenshots/0.15.0/database-board-swimlanes.webp differ diff --git a/public/screenshots/0.15.0/database-chart-view.webp b/public/screenshots/0.15.0/database-chart-view.webp new file mode 100644 index 0000000..62f0cc1 Binary files /dev/null and b/public/screenshots/0.15.0/database-chart-view.webp differ diff --git a/public/screenshots/0.15.0/database-two-way-relations.webp b/public/screenshots/0.15.0/database-two-way-relations.webp new file mode 100644 index 0000000..dfb297e Binary files /dev/null and b/public/screenshots/0.15.0/database-two-way-relations.webp differ diff --git a/public/screenshots/0.15.0/notes-tabs-block.webp b/public/screenshots/0.15.0/notes-tabs-block.webp new file mode 100644 index 0000000..d09a432 Binary files /dev/null and b/public/screenshots/0.15.0/notes-tabs-block.webp differ diff --git a/public/screenshots/0.15.0/notes-version-history.webp b/public/screenshots/0.15.0/notes-version-history.webp new file mode 100644 index 0000000..19d6559 Binary files /dev/null and b/public/screenshots/0.15.0/notes-version-history.webp differ diff --git a/public/screenshots/0.15.0/settings-scheduled-backups.webp b/public/screenshots/0.15.0/settings-scheduled-backups.webp new file mode 100644 index 0000000..9f3a784 Binary files /dev/null and b/public/screenshots/0.15.0/settings-scheduled-backups.webp differ diff --git a/public/screenshots/0.15.0/shell-split-view.webp b/public/screenshots/0.15.0/shell-split-view.webp new file mode 100644 index 0000000..b17b787 Binary files /dev/null and b/public/screenshots/0.15.0/shell-split-view.webp differ diff --git a/src/content/releases/0.15.0.md b/src/content/releases/0.15.0.md new file mode 100644 index 0000000..1899030 --- /dev/null +++ b/src/content/releases/0.15.0.md @@ -0,0 +1,147 @@ +--- +date: 2026-10-19T12:00:00Z +version: "0.15.0" +channel: beta +status: draft +summary: "Forty-eight additions across Database, Notes, the shell, the Agent and Chat, each one a gap people in this product category keep asking to have closed. Link objects both ways, work in two panes, step back through any object's history, and let the app back itself up on a schedule." +highlights: + - "Two-way relations. Link a deliverable to its project and the project lists it back on its own, with both sides kept in step on every add, remove and delete." + - "Split view. Open any object to the side and work in two panes, each with its own app and shortcuts." + - "Version history for every object. Idle edits are captured on their own, an agent run is one checkpoint, and a restore is a forward edit you can undo." + - "Scheduled backups. The vault backs itself up hourly, keeps a bounded set of restore points, and restores only what is missing." + - "Database grows up. Views inside an object, rich text cells, chart view, board swimlanes, bulk edit, and changing a property's type with a preview." + - "Notes gains the block tools people reach for: an insert menu, synced blocks you can edit in place, a tabs block, an outline panel, regex find and replace, and media from the vault." + - "The Agent lists what each run changed and can undo the whole run, and an object an agent created says so." + - "Chat gets search, read state that follows you across devices, pins, typing indicators and a bigger composer. Invite links pre-fill the share dialog and never grant anything by themselves." +assets: + - platform: mac + label: Apple silicon + href: https://gitlab.com/api/v4/projects/brainstorm-os%2Fshell/packages/generic/brainstorm/0.15.0/Brainstorm-0.15.0-arm64.dmg + - platform: mac + label: Intel + href: https://gitlab.com/api/v4/projects/brainstorm-os%2Fshell/packages/generic/brainstorm/0.15.0/Brainstorm-0.15.0.dmg + - platform: windows + label: Installer (.exe) + href: https://gitlab.com/api/v4/projects/brainstorm-os%2Fshell/packages/generic/brainstorm/0.15.0/Brainstorm-Setup-0.15.0.exe + - platform: linux + label: AppImage (x86_64) + href: https://gitlab.com/api/v4/projects/brainstorm-os%2Fshell/packages/generic/brainstorm/0.15.0/Brainstorm-0.15.0-x86_64.AppImage + - platform: linux + label: AppImage (arm64) + href: https://gitlab.com/api/v4/projects/brainstorm-os%2Fshell/packages/generic/brainstorm/0.15.0/Brainstorm-0.15.0-arm64.AppImage + - platform: linux + label: Debian (.deb) + href: https://gitlab.com/api/v4/projects/brainstorm-os%2Fshell/packages/generic/brainstorm/0.15.0/Brainstorm-0.15.0-amd64.deb +--- + +The last release was a polish pass. This one is the opposite: forty-eight +additions, and almost every one of them closes a gap that people who use +products like this one keep asking about. I went through the requests, checked +each one against the code, and built the ones that were real gaps. + +## Database + +**Relations run both ways.** Link a deliverable to its project and the project +lists it back under Deliverables without you doing anything. Adding, removing +and deleting keep both sides in step, and if the far object is locked the change +is refused rather than half-applied. + +![A project in Database showing the deliverables linked back to it](/screenshots/0.15.0/database-two-way-relations.webp) + +**A view can live inside the object it belongs to.** An embedded view can filter +on "This object", so one project template shows each project its own tasks. + +**Columns, boards and galleries do what you ask.** Name is an ordinary column you +can reorder. A column can carry a different name in one view, show as an icon +only, and wrap the way you choose. Boards split into swimlanes by a second +property, order groups by how many items they hold, and collapse every group at +once. Galleries pick their cover from a property, the first image, or none. + +![A board split into swimlanes by a second property](/screenshots/0.15.0/database-board-swimlanes.webp) + +**Change your mind about a type.** Switch a property between text, number, +checkbox and date with a preview of every value that converts and every one that +would be cleared. Numbers can carry a unit. A property can also hold rich text, +and a chart view draws bars, lines, pies and single numbers over any grouping. + +![A chart view drawing a bar chart over a grouped collection](/screenshots/0.15.0/database-chart-view.webp) + +**Work on many rows at once.** Select rows and set a property or add them to a +collection in one go, with a one-step undo. Step through a view from the +inspector with Alt and the arrow keys. Pin a view to the dashboard from its tab. + +## Notes + +The gutter plus opens the whole block catalogue. A synced block can be edited in +place, writing into its source with the source's own undo. Blocks and table cells +take a background colour that holds contrast on all fourteen themes. `/task` +creates a real task and leaves a live checkbox in the text. One command turns a +block into a page. A side outline tracks your headings. Find and replace +understands regular expressions, with limits so a bad pattern cannot freeze the +editor. Images and files already in the vault can be inserted and resized inline, +and images now reach HTML and Markdown exports. There is a tabs block, guide +lines on lists, outliner keys inside toggles, and a spell-check language picker. + +![A tabs block in Notes with three named tabs](/screenshots/0.15.0/notes-tabs-block.webp) + +## The shell + +**Split view.** Alt-click any object, or choose "Open to the side", and work in +two panes with their own apps, divider and shortcuts. + +![Two apps side by side in one window](/screenshots/0.15.0/shell-split-view.webp) + +**A history for every object.** Idle edits are captured on their own, an agent +run is one checkpoint, and restoring is a forward edit you can undo. Retention +keeps the newest version of every object no matter how full the history gets. + +![The version history panel of a note](/screenshots/0.15.0/notes-version-history.webp) + +**Backups that happen without you.** An hour after launch and hourly after that, +the vault writes a backup, keeps a bounded set of restore points, and a restore +only brings back what is missing. Whole-vault Markdown export writes one dated +folder with one file per object and its assets alongside. + +![Scheduled backups in Settings with the restore points listed](/screenshots/0.15.0/settings-scheduled-backups.webp) + +Also: a startup page, search that shows saved searches and recents before you +type, remembered "don't ask again" on Move-to-Bin prompts, auto-hide sidebars, +close to tray on Windows and Linux, visibility preferences for higher contrast and +a stronger cursor, and a Recent row in the emoji and icon pickers. + +## The Agent + +Custom endpoints, an OpenRouter preset, an Ollama tile and a per-conversation +model. Every provider call goes through the network broker now, and usage is +estimated when a provider reports none, so a budget holds for every provider. +Each run lists what it changed, and "Undo this run" checks the whole run first +and refuses it whole, with a reason, if anything was edited since. An object an +agent created says so in a read-only row, and that mark cannot be forged. + +![An agent conversation listing what the run changed, with Undo this run](/screenshots/0.15.0/agent-run-changes-undo.webp) + +## Chat and collaboration + +Search the open channel with Mod+F. What you have read is yours and follows you +across devices. Pin up to fifty messages per channel, see who is typing, expand +the composer, and show full dates. A `brainstorm://invite` link pre-fills the +share dialog and never grants anything by itself; Viewer is the default role. + +![Message search in a Chat channel jumping to a hit](/screenshots/0.15.0/chat-message-search.webp) + +## Everywhere else + +A task checkbox cycles open, done and won't do, and a closed task never nags. +Journal takes quick captures, and a `#collection` tag files the line as an +object in that collection. Files filters by kind, size, date and extension, +finds duplicates by content, and takes files dropped from your desktop into a +collection. Preview has a context panel with the caption, every backlink and +Move to Bin. A whiteboard reopens where you left it. + +macOS builds are signed with a Developer ID and notarized by Apple, so they open +without a Gatekeeper warning. Windows is currently unsigned, so you may see a +SmartScreen "unknown publisher" prompt, where the option you want is **More info** +then **Run anyway**. Existing installs update in-app from **Settings → Updates**. + +It is still a beta, so keep backups of anything important. Your vault is a plain +folder you control completely.