Changelog

What’s new

Every release, newest first. Installers for the current version are on the downloads table.

0.16.0

Latest2026-10-25
  • AddedTen model providers, your own key, nothing proxied · Reading their APIs showed there are not twenty… · A key is stored on this device and sent only to… · Agents · +5 more
  • FixedFound while verifying · A hidden row stayed on screen because display
Full notes

Added

  • Ten model providers, your own key, nothing proxied. Anthropic, OpenAI, Google Gemini, OpenRouter, Groq, Mistral, DeepSeek, xAI, Ollama on this machine, and anything OpenAI-compatible. Pick a provider, pick a model, paste a key, press Test — the reply says what the model said and how long it took, or exactly why it was refused.
  • Reading their APIs showed there are not twenty of them but three wire shapes: most speak OpenAI's dialect, Anthropic and Google have their own. Adding a provider is now a row in a table.
  • A key is stored on this device and sent only to the provider it belongs to. Ollama needs no key and nothing leaves the machine at all.
  • Agents — jobs you can hand over. An agent is a name, a model, a brief and the tools it may use. Two presets ship so the page is not empty.
  • Seven tools: search, list, read, list tasks, create a note, append to a note, tick a task.
  • A read runs. A write stops and asks, showing the tool and its exact arguments, with Allow it and Not this time. A tool can be trusted per agent if you want it to run unattended.
  • Every step is listed as it happens — which tool, which arguments, what came back — so a run can be read rather than guessed at.
  • A model that only ever calls tools is stopped after eight steps rather than looping.
  • A test suite, where there was none. 50 tests over the wire formats and the run loop: npm test.

Fixed

  • Found while verifying: the agent editor and run view opened behind Settings, because every overlay shared one z-index.
  • A hidden row stayed on screen because display: flex beats the browser's rule for the hidden attribute. This had bitten three times, so it is now stated once globally and a test fails if any element is hidden-but-visible.

Checked

Every settings pane, all three editor views, the date picker, the command

palette, the editor themes and fonts, the provider list, the agent list and

the whole run loop — in light and dark, with no console exceptions.

0.15.2

2026-10-25
  • AddedA bare URL in a plain-text note is a link
  • FixedA link in a note could have replaced the whole app · The Language property label wrapped onto two…
Full notes

Added

  • A bare URL in a plain-text note is a link. Hold ⌘ (Ctrl on Windows) and click to open it in your browser; a plain click puts the caret where you clicked, because this is text you are editing. Only the URL pass runs — bold, italics and code would change what a .txt file means, a link does not, and the text stays exactly the URL, so the file is untouched. Checked byte-identical through a round trip.

Fixed

  • A link in a note could have replaced the whole app. The anchors the rich view writes had no click handler, and nothing stopped the webview following one in place — in the desktop app that navigates away from GlissNotes entirely. Every anchor in the editor is now intercepted, and only a modifier-click opens anything. Middle-click opens too.
  • The Language property label wrapped onto two lines in the narrower column.

0.15.1

2026-10-24
  • FixedThe properties sprawled across a wide window · The due-date placeholder was being truncated to…
Full notes

Fixed

  • The properties sprawled across a wide window. Letting them fill the width put all seven in a single thin strip, which is harder to read than the seven stacked rows it replaced — a value ended up a long way from its own label. They are capped at three columns and 760px now, so they stay a block of metadata the eye takes in at once: three columns where there is room, two when the assistant panel is open, and never one and never seven.
  • The due-date placeholder was being truncated to "Add a due dat" in the narrower cell. A call to action that is cut off reads as broken, so it is now "Set a date", which fits at every width. Checked for clipping at five window widths.

0.15.0

2026-10-23
  • AddedThe sticky note can shrink to a badge · Minimising the app brings the sticky out · This watches the page's own visibility, not a…
  • FixedThe window could not be moved, and… · A pasted image pushed the whole note sideways · A pasted image was then lost on the next save · The properties took most of a screen
Full notes

Added

  • The sticky note can shrink to a badge. The mark and three small actions in a pill the size of a dock icon — open the note, choose a different one, or close. The window shrinks with it, so it takes no more screen than it shows, and it remembers how big the note was so growing comes back to it. Esc toggles between the two.
  • Minimising the app brings the sticky out. A note stays to hand when the window is out of the way, as the badge or as the note itself, whichever it was left as. It can be switched off in Settings → Appearance.
  • This watches the page's own visibility, not a window event: macOS delivers no window event at all when a window is minimised. Tauri saw nothing and is_minimized() stayed false, so the first attempt could never have fired. The webview is occluded either way.

Fixed

  • The window could not be moved, and double-clicking the top bar did nothing. The title band was a ::before pseudo-element carrying -webkit-app-region: drag — a Chromium property that macOS, which runs this in WKWebView, ignores; and a pseudo-element cannot carry data-tauri-drag-region, which is what actually provides dragging and double-click-to-zoom. The band is now a real element, and the editor column's toolbar — the only one visible in the editor layout — has a drag region for the first time. Verified with real mouse events: dragging from both, double-click to zoom and restore on both, and resizing from the corner and two edges.
  • A pasted image pushed the whole note sideways. Images now fit the column they are pasted into, and nothing in a note can widen the page.
  • A pasted image was then lost on the next save. The Markdown round trip had no case for an image at all, so it was silently dropped. Images now survive as ![alt](src) and come back.
  • The properties took most of a screen. Seven stacked rows of a short label and a short value pushed the writing a long way down. They now flow across the width — three columns where there is room, fewer where there is not — which is 121px instead of 257px on a typical window.

0.14.1

2026-10-23
  • FixedThe window could not be moved, and… · The editor column's own toolbar never had a drag… · Verified with real mouse events rather than by…
Full notes

Fixed

  • The window could not be moved, and double-clicking the top bar did nothing. Two causes, both mine. The title band added in 0.14.0 was a ::before pseudo-element carrying -webkit-app-region: drag — a Chromium property that macOS, which runs this in WKWebView, ignores entirely; and a pseudo-element cannot carry data-tauri-drag-region, which is what actually provides dragging and double-click-to-zoom. The band is now a real element with that attribute.
  • The editor column's own toolbar never had a drag region at all. Only the app toolbar did, and that one is hidden in the editor layout — so in that layout there was nothing to grab.
  • Verified with real mouse events rather than by inspection: dragging from the band and from the toolbar, double-click to zoom and to restore on both, and resizing from the bottom-right corner, the left edge and the bottom edge.

0.14.0

2026-10-23
  • AddedA sticky note that floats over everything · Open it with ⌘⇧P, the toolbar button, Tools →… · The title bar is a picker · Pin keeps it above other windows · +3 more
  • FixedFound while testing the sticky
Full notes

Added

  • A sticky note that floats over everything. A small always-on-top window showing one note, which you can read and edit while working in any other app. It follows you between desktops and sits over full-screen windows.
  • Open it with ⌘⇧P, the toolbar button, Tools → Sticky note, or the command palette. It opens on the note you are looking at.
  • The title bar is a picker: search your notes and switch which one the sticky shows, or start a new one. It remembers the last note it had.
  • Pin keeps it above other windows; turn it off and it behaves like any other window. Esc hides it, ⌘W closes it, and the arrow opens the note in the main app.
  • Edits save after a short pause and appear in the main window at once — and the other way round. Neither window polls; the Rust side emits an event after every write. A change arriving while you are typing waits for a pause rather than overwriting what you are in the middle of.
  • It is its own page, not the app in a small window: 5.8 kB of script and 4 kB of CSS, so it opens instantly and carries no editor, sidebar or palette it would never show.
  • Its window is granted notes access, dragging and always-on-top, and nothing else — no dialogs, no file system, no external links.

Fixed

  • Found while testing the sticky: it decided whether a note was file-backed by looking only at path, but the app also treats any name ending in an extension as a file. A note called Links.txt was therefore renamed to its own first line the moment the sticky saved it. Both now share one rule, and the round trip is checked to be lossless for file-backed, path-backed, ordinary and empty notes.

0.13.5

2026-10-23
  • FixedA bullet typed in a .txt file turned into a dash · The update check could never have worked
Full notes

Fixed

  • A bullet typed in a .txt file turned into a dash. The rich editor writes - item when you make a list, but plain-text notes were rendered strictly literally, so on the next render that line came back as the characters - item rather than a bullet — leaving a note where older lines showed dashes and the line being typed showed a bullet. Plain text now reads lists back. Headings, tables and code fences stay literal, so a .txt file still reads as what it is, and the round trip leaves the file byte-identical.
  • The update check could never have worked. It asked the GitHub API, which answers an unauthenticated request about a private repository with a 404 rather than a release. It now reads a manifest the website publishes next to the installers it already hosts, and offers the right file for the machine asking — the Apple Silicon disk image on an M-series Mac, the APK on Android — rather than a generic download page.

0.13.4

2026-10-23
  • FixedThe traffic lights straddled a seam
  • AddedThe app now tells you when there is a new version · Nothing about you is sent · Every check is written to the activity log · It can be switched off in Settings → About,… · +2 more
Full notes

Fixed

  • The traffic lights straddled a seam. Reserving the strip was not enough: the buttons sit across the join between the activity rail and the panel beside it, so the rail's right border ran as a hairline between the yellow and the green one, with two panel backgrounds either side of it. The top of the window is now one continuous band, painted over that border and in one colour, and 38px tall so the buttons have room rather than sitting against the edge.

Added

  • The app now tells you when there is a new version. Once a day it asks GitHub what the newest release is and says so if there is one. It never installs anything by itself — the app is unsigned, so replacing its own binary quietly is not something it should do.
  • Nothing about you is sent: it is a plain read of the public releases list.
  • Every check is written to the activity log.
  • It can be switched off in Settings → About, where there is also a Check now button and the time of the last check.
  • A version is only mentioned once, so the same banner does not return every day.
  • Version comparison is numeric, not alphabetical — 0.10.0 is correctly newer than 0.9.0.

0.13.3

2026-10-23
  • FixedThe macOS traffic lights sat on top of the toolbar · A button that cannot be pressed no longer looks…
  • AddedThe MCP page now covers seven clients, not two · Adding merges into the client's existing config
Full notes

Fixed

  • The macOS traffic lights sat on top of the toolbar. macOS hides the title bar, so its close, minimise and zoom buttons are drawn over whatever the app puts in the top-left corner. The sidebar and activity rail already reserved that strip, but when either was closed the editor toolbar slid underneath it and the menu button ended up directly below the green button. Checked at eight widths from 1440 down to 680, in both layouts and with the sidebar open and closed — nothing interactive is drawn in that corner now.
  • A button that cannot be pressed no longer looks pressable.

Added

  • The MCP page now covers seven clients, not two: Claude Code, Claude Desktop, Codex, Cursor, VS Code, Windsurf and Zed. Each is a row showing where that client keeps its config, whether GlissNotes is already in it, and one button to add, re-add or remove it — plus Show to reveal the file. A client whose settings folder is missing is marked "Not found" rather than silently failing.
  • Adding merges into the client's existing config: every other server and every unrelated key is kept, a .bak is written first, and a file that cannot be parsed is refused rather than overwritten. Codex's TOML is edited line-wise so only our own table changes. Nine tests cover this, including that a second add replaces rather than duplicates, and that a Windows path survives TOML escaping.

0.13.2

2026-10-23
  • FixedThe font settings looked broken because the… · The font settings only reached the Code view · The app no longer loads anything from Google…
  • AddedThree typography settings, one per surface,…
Full notes

Fixed

  • The font settings looked broken because the fonts were not there. The list offered Consolas, which does not exist on macOS, and JetBrains Mono, which was loaded from Google and so was not installed either — a font named in a CSS stack but missing falls back in silence, so choosing one changed nothing visible. Ten open-licence families are now bundled with the app (747 kB, SIL OFL): JetBrains Mono, Fira Code, IBM Plex Mono, Source Code Pro, Inter, Nunito Sans, Atkinson Hyperlegible, Literata, Lora and Source Serif 4. Every one has a real bold rather than a synthesised one.
  • The font settings only reached the Code view. The Rich text view — the main writing surface — followed neither the font nor the size, and there was no size control for prose at all.
  • The app no longer loads anything from Google Fonts, so the desktop and Android builds render text with no network at all.

Added

  • Three typography settings, one per surface, because they are read differently: Writing (font and size, applied to the Rich text and Plain views, with headings scaling with the body), Code (font and size), and Interface (menus, sidebar, buttons and dialogs). Each has a live preview.

Checked

Every control in Settings → Editor was verified against the rendered

document, not just the stored preference: writing font and size reaching all

three prose surfaces including the plain view's backdrop, code font and size,

interface font reaching the chrome and the dialog itself, tab width at 2, 4

and 8, the line-number, document-map, current-line and show-all-characters

switches, and all six editor themes.

0.13.1

2026-10-23
  • AddedA brand kit agents can read · The Brand Kit MCP server, design/mcp/brandkit.mjs · review_styles, which checks CSS or HTML against… · Every screen as HTML in the repository · +3 more
  • Fixedreview_styles found these on its first run · Kit sheet 06 still said the note's text stops at… · Storage sizes above a gigabyte read as "10240.00 MB"
Full notes

Added

  • A brand kit agents can read. design/brand/brand.json holds what the system means — colour roles and pairings, voice, the mark's construction, and the rules that do not bend. Values are not duplicated there: the MCP server reads them out of src/style.css at call time, so it can never report a colour the product does not use.
  • The Brand Kit MCP server, design/mcp/brandkit.mjs — no dependencies, registered for this repository in .mcp.json. Seven tools: brand_overview, get_tokens, get_rules, list_screens, get_screen, review_styles and check_consistency.
  • review_styles, which checks CSS or HTML against the system before it ships. Every check is a bug that actually shipped here: raw colours, grid tracks that can collapse or have no floor, animations over 220ms, fill-mode animations on a base class, removed focus rings, native date inputs, and keyframes with no reduced-motion fallback.
  • Every screen as HTML in the repository. design/screens/ holds 36 standalone artboards — the nine kit sheets, 18 Mac screens and 9 Android — plus index.html, which shows all of them as live previews.
  • Two new kit sheets for UI that did not exist when the kit was drawn: 09 · The date picker, and Mac · Settings, editor and advanced.
  • Settings → Advanced: what is stored on this device and how big each part is, what the app is allowed to do, what this build can do, and export, import, reset preferences and delete everything.
  • The activity log can be filtered by kind and searched, shows what this session has done, and exports to a file.

Fixed

  • review_styles found these on its first run: .app and .notes-wrap declared their stretching track as a bare 1fr at the point of definition, and six rules still styled the native date inputs that no longer exist.
  • Kit sheet 06 still said the note's text stops at 720px. It stopped doing that in 0.12.2 — the sheet was describing a layout the product had left.
  • Storage sizes above a gigabyte read as "10240.00 MB".

0.13.0

2026-10-23
  • AddedA date picker we control · The full Notepad++ / Sublime text toolkit · Editor themes · Settings → Editor, a pane for how the editor… · +2 more
  • FixedEvery editor command is now reachable on the desktop · The editor theme is set on the document root… · Insert date and time in the Tools menu ran Word… · Join lines moved from ⌘J, which already toggled… · +1 more
Full notes

Added

  • A date picker we control. The browser's own calendar on a date field cannot be styled and arrives at the operating system's size — rows a few pixels tall, in the wrong colours. The replacement is a popover that matches the app: 38px targets on a desktop, 46px on a phone where it becomes a sheet, the week starting on Monday, six shortcuts (Today, Tomorrow, This weekend, Next week, In two weeks, Next month) with the date each one resolves to, Clear, and full keyboard control — arrows by day and week, Page Up and Down by month, Home and End for the week, Escape to close. It is used by the note's Due property and by task detail.
  • The full Notepad++ / Sublime text toolkit. Thirty-two operations, each working on the selection when there is one and the whole note when there is not: five case conversions (including Sentence case and iNVERT cASE), seven sorts (A→Z, Z→A, ignoring case, by length, numerically, reverse, shuffle), duplicate and empty-line removal, six whitespace operations including tabs to spaces and back, hard wrap at 80 or 100 and unwrap, and Base64, URL and HTML encoding and decoding. They live in src/textops.js as plain string-to-string functions, so each one is testable on its own.
  • Editor themes. Six syntax palettes — GlissNotes, Paper, No colour, Solarized light, Nord and Dracula — in Settings → Editor, with a live preview. A theme only repaints text and the page behind it; the app's own light or dark mode is untouched, and the two themes that bring no colours of their own follow it.
  • Settings → Editor, a pane for how the editor looks and behaves: syntax theme, code font and size, plain-text font, tab width, line numbers, document map, show all characters, and highlighting the line the caret is on.
  • Insert date, date and time, and UUID, and a Document statistics dialog with words, characters with and without spaces, lines, blank lines, the longest line and a reading time.
  • Select line (⌘⇧L) and expand selection to word (⌘D), both of which the menus listed nowhere.

Fixed

  • Every editor command is now reachable on the desktop. The in-app menu bar is hidden there, because macOS and Windows use the native bar — and the native bar does not carry the text operations, so dozens of commands that the code had implemented could not be run at all. The command palette (⌘K) now lists the whole menu tree, grouped by menu and section, with shortcuts.
  • The editor theme is set on the document root rather than the window, so the settings dialog — which sits outside it — previews the theme it is about to apply rather than the app's defaults.
  • Insert date and time in the Tools menu ran Word count instead: it reached into the menu tree by index, and the index was wrong.
  • Join lines moved from ⌘J, which already toggled the results panel, to ⌘⇧J.
  • Sliders use the brand accent rather than the browser's blue.

0.12.2

2026-10-23
  • FixedThe note still sat in a narrow column with dead… · The due date was too small to aim at
Full notes

Fixed

  • The note still sat in a narrow column with dead space either side. The width was capped three times in the stylesheet, and the last cap — 720px from an earlier pass — was winning over the rule that was supposed to free it. There is one rule now: the column takes the pane, with margins that grow from 20 to 180 as the window does. At 1680 wide the text went from 720px between two 150px gaps to 1025px.
  • The due date was too small to aim at. It is a 36px control with a real calendar button and a hover state, and the editable properties beside it are 34px rows that highlight, so it is clear they can be changed.

0.12.1

2026-10-23
  • FixedA note opened from a file could not be given a… · Two rows of controls above an empty list
  • ChangedThe note uses the window
Full notes

Fixed

  • A note opened from a file could not be given a project, a date or tags. Its properties were drawn read-only: file, language, project as plain text. The file's path and language are facts about the file, but everything else belongs to the note, so status, due, project and tags are now editable for every note.
  • Two rows of controls above an empty list. List and Board sat above All, Rich, Plain and Code, above nothing at all. They are one row now, and when a project has no notes the row stands down entirely and an empty state offers the one action that fixes it. A filter that matches nothing offers its own way back.

Changed

  • The note uses the window. The reading column grew from a fixed 720 to clamp(680px, 66vw, 1080px), so a wide window is used rather than framed by two empty gutters, with margins that scale from 20 to 56.

0.12.0

2026-10-23
  • AddedSettings has sections · Privacy and activity · This device · Public IP address · +2 more
  • ChangedThe log is deliberately small
Full notes

Added

  • Settings has sections. Account and sync, Appearance, Claude and MCP, Privacy and activity, Notes and backups, About — one pane at a time instead of one long scroll where features went to hide.
  • Privacy and activity. A new section that answers what the app knows and what it has done:
  • This device — app version, runtime, screen and window, language, time zone and whether you are online. All of it read locally; none of it sent.
  • Public IP address — looked up only when you press the button, which names the service it asks (api.ipify.org) before asking, and records that it was asked.
  • Activity log — signing in, syncing, sharing, failed saves and other problems, newest first, last 400, kept on this device. Copy as diagnostics for a bug report, or clear it.
  • Shared links — every public link you made, how many times it was opened and how long it has left, so a link in use is visible.

Changed

  • The log is deliberately small: it records what the app did, never what you wrote. Nothing in it leaves the device unless you copy it yourself.

0.11.1

2026-10-23
  • FixedThe sidebar could still collapse to a sliver · The assistant covered the note instead of…
  • ChangedThe selected note lost its coloured edge
Full notes

Fixed

  • The sidebar could still collapse to a sliver. Yesterday's fix wrote the sidebar track as minmax(0, 248px), which lets a grid track shrink to nothing under pressure — the opposite of what was wanted. It is a fixed 248px column again, and only the content beside it gives way. Measured at 1500, 1300, 1150, 1000, 880 and 760: the sidebar holds its width and nothing overflows.
  • The assistant covered the note instead of standing down. Below 1280 it floats over the editor rather than sitting beside it, so it now stays closed until it is asked for, and closes itself if the window is made smaller while it is open.

Changed

  • The selected note lost its coloured edge. It is a neutral card with a heavier title now. Colour marks states that mean something — overdue, due, done — not which row you are looking at.

0.11.0

2026-10-23
  • FixedThe window stopped collapsing properly
  • ChangedPlain text is a page, not a buffer · Links behave like links · Selection is quieter · The status bar keeps what a writer reads
Full notes

Fixed

  • The window stopped collapsing properly. Three panes and the assistant do not fit a small window, and instead of standing down they overflowed: the sidebar was squeezed to a sliver of floating icons. Each pane now steps aside at the width where it stops earning its place — the assistant first, then the sidebar into a drawer, then the list.

Changed

  • Plain text is a page, not a buffer. It opens with the note's name, its project and when it was edited, the way the rich view always did. A two-line note no longer begins cold at the top of an empty window.
  • Links behave like links. A bare URL is underlined in plain text and ⌘-click opens it; in rich text it becomes a real link, www. included. Typing one no longer leaves dead text on the page.
  • Selection is quieter. A selected note was a block of orange; it is now a neutral card with an accent edge, so colour marks the one thing that matters rather than a whole rectangle.
  • The status bar keeps what a writer reads. Mode, length, position and whether it saved. Encoding, line endings and insert mode moved out of sight; they are still in the menus that set them.

0.10.2

2026-10-23
  • FixedThe workspace header said "Local workspace"…
Full notes

Fixed

  • The workspace header said "Local workspace" while signed in. The footer knew about the account and the sync state, but the header above the search box was never told, so a synced workspace still described itself as local. It now reads "Synced workspace", says "Syncing…" while a sync is running, and names the signed-in address on hover.

0.10.1

2026-10-21
  • FixedmacOS stopped asking for the login password on…
Full notes

Fixed

  • macOS stopped asking for the login password on every launch. The app kept the sign-in session in the keychain, but it is not signed with a stable identity: each rebuild looks like a different program, so the keychain asked again every time and "Always Allow" could never stick — even when nobody was signed in, because a stale entry from an older build was still there. The session now lives in a file in the app's own data directory, readable only by you, which is what the Android build already did. The app no longer links against the keychain at all.

0.10.0

2026-10-21
  • ChangedA new mark · Orange instead of indigo · Motion that explains something
  • FixedAn empty toast could sit on screen
Full notes

Changed

  • A new mark. One solid tile, one stroke: the glide the name is about, drawn heavy enough to hold together at 16 pixels. It replaces the old four-line sketch everywhere — the Mac app, the Android launcher, the web app's home-screen icons, the favicon and the loading screen.
  • Orange instead of indigo. The accent is now a deep orange, #cc3f1b in light and a brighter #ff7a4d in dark, where it carries dark text rather than white so it still passes contrast. Due dates moved off amber onto a yellow so they cannot be mistaken for the brand, and the website was repainted to match.
  • Motion that explains something. Overlays grow from where they were summoned, rows arrive in order rather than all at once, a tick scales as it lands, panels slide in from their own edge and views cross-fade. Everything is under a quarter of a second, and all of it stops under reduced motion.

Fixed

  • An empty toast could sit on screen. The new entrance animation held the notification visible after it finished; it now only animates while shown.

0.9.0

2026-10-21
  • AddedTasks · A task carries its own detail · Links inside a task · Email the beta list @2026-10-22 ! Launch…
Full notes

Added

  • Tasks. Every checklist item in every note now also appears in one place, grouped by Overdue, Today and tomorrow, This week, Later and No date, with filters for open, important and done. Ticking a task in the list writes - [x] back into the note it came from, so there is no second copy of anything to keep in step.
  • A task carries its own detail. Open one and you get a title you can edit, a due date with Today, Tomorrow and Next week shortcuts, an important flag, and the note it lives in with its line number.
  • Links inside a task. [[Note name]] links another note and a pasted URL links a resource; both are listed in the task's detail and open from there. New links can be added from the panel. The task line stays plain Markdown:
  • [ ] Email the beta list @2026-10-22 ! [[Launch checklist]] #launch @ sets the date, ! marks it important, # tags it. @today and @tomorrow work too, and the add box understands all of it as you type.

0.8.3

2026-10-21
  • AddedTable controls · A borders choice
Full notes

Added

  • Table controls. Put the caret in a table and a toolbar appears above it: insert a row above or below, insert a column left or right, delete the row or the column, turn the first row into a header or back, and delete the table. Rows and columns are written straight back to the note's Markdown, so they survive the round-trip through plain text and code views.
  • A borders choice. The same toolbar cycles tables between all borders, outline only and no borders. It is a reading preference, remembered across notes, since Markdown tables carry no styling of their own.

0.8.2

2026-10-21
  • ChangedThe redesigned layout is now what opens, in the…
  • FixedThe macOS traffic lights no longer sit on top of…
Full notes

Changed

  • The redesigned layout is now what opens, in the desktop app and the web app alike. The workspace layout — sidebar, notes list, note — is the one the redesign was drawn for; the app had still been starting in the old Notepad-style editor layout, which is why it looked unchanged. Existing installs are moved across once, and both layouts remain in View.

Fixed

  • The macOS traffic lights no longer sit on top of the sidebar. The icon toolbar used to reserve that strip; with it gone, nothing did, so the window buttons landed over the Explorer heading. The top strip is reserved again and drags the window.

0.8.1

2026-10-21
  • ChangedThe editor chrome is gone · Formatting follows the selection · Quieter tabs and activity rail
Full notes

Changed

  • The editor chrome is gone. 0.8.0 restyled the app but kept the cockpit: a twenty-button icon toolbar above every note. The editor layout now opens as a page — a header with the breadcrumb, the Rich/Plain/Code switch and the panel toggles, and nothing else. Every command in that toolbar is still in the menu and in ⌘K.
  • Formatting follows the selection. The permanent formatting band is now a floating toolbar that appears over the text being styled and leaves when nothing is selected. It keeps its place on resize and flips below the line when there is no room above.
  • Quieter tabs and activity rail. Transparent instead of filled, with the open note marked by the accent rather than a grey slab.

0.8.0

2026-10-21
  • ChangedA redesign across all three apps · The design is written down
  • FixedDue dates no longer wrap mid-date · The sidebar search label no longer wraps onto…
Full notes

Changed

  • A redesign across all three apps. One accent instead of several, soft containers that each carry a meaning — indigo for the app and selection, amber for due dates and reminders, red for overdue and blocked, green for done, teal for databases and callouts — and a reading column that behaves like paper: 38px title, 16px body at 1.75, margins that give way on a narrow window. Chrome is quieter: thinner lines, 10px controls, 13px cards, 38px rows. Dark mode was rebuilt on the same palette rather than inverted.
  • The design is written down. Sixteen screens and a foundations board covering colour, type, controls and the layout rules now live under design/, so the app and the drawings stay the same thing.

Fixed

  • Due dates no longer wrap mid-date. At narrow list widths a pill could break "23 Oct" across two lines inside one rounded chip. Pills never wrap or shrink now, the card's meta row wraps instead of clipping, and the project name truncates with an ellipsis.
  • The sidebar search label no longer wraps onto two lines.

0.7.4

2026-10-21
  • FixedThe Android app launched to a crash
  • ChangedThe loading screen keeps its mark · New Android screenshots on the website
Full notes

Fixed

  • The Android app launched to a crash. The splash screen added in 0.7.3 used a theme that is not an AppCompat descendant, so the activity died on start with You need to use a Theme.AppCompat theme. The splash is now a plain window background: the logo centred on the app's own backdrop, light and dark.

Changed

  • The loading screen keeps its mark. The logo stroke used to animate past zero and vanish for part of every cycle. It now draws in and holds over a faint full outline, with the progress bar carrying the motion.
  • New Android screenshots on the website. Captured from the running app and shown in light, rounded frames with captions instead of a heavy black bezel, including the slash command menu and the project sidebar.

0.7.3

2026-10-20
  • ChangedInserted blocks are ready to type in
Full notes

Changed

  • Inserted blocks are ready to type in. /code drops you inside an empty code block where Enter makes a new line and ⌘↵ leaves it; /table starts in the first header cell, Tab moves between cells and Enter past the last one adds a row; /list, /todo and /quote put the caret in the first item. Enter in a list makes the next item, and on an empty item it leaves the list. Everything still round-trips to Markdown.

0.7.2

2026-10-20
  • FixedSettings in the Workspace layout · A way back to the Editor layout · Slash commands now work in every view
Full notes

Fixed

  • Settings in the Workspace layout. The gear lives in the activity bar, which that layout hides, so Settings could not be reached at all — including in the web app. There is now a settings button in the sidebar footer.
  • A way back to the Editor layout. The Workspace layout had no control for switching, only Settings. Both toolbars now carry a layout button.
  • Slash commands now work in every view. They only ran in the rich editor, so they did nothing in plain text or code — which is where most notes start, since the + button creates a plain note. Typing / in those views opens the same menu and inserts Markdown instead of HTML: headings, lists, to-dos, tables, code fences, quotes, dividers, and /page still creates a linked note.

0.7.1

2026-10-20
  • AddedFavourites in the Explorer
Full notes

Added

  • Favourites in the Explorer. The Open notes section is now Favourites, and a star appears on every note and project row in the tree — click it to pin or unpin. Starred projects and notes sit together at the top, and the star in the list removes them again.

0.7.0

2026-10-20
  • AddedSlash commands · /page makes a real page
  • ChangedBlock insertion uses the Range API rather than…
Full notes

Added

  • Slash commands. Type / on an empty line in the rich view and pick a block: Text, Heading 1–3, bulleted, numbered and to-do lists, Table, Code block, Quote, Divider, Page and Link to note. Keep typing to filter, arrows and Enter to choose.
  • /page makes a real page. It creates a new note and leaves a link behind; clicking any [[link]] opens that note, creating it if it does not exist yet.

Changed

  • Block insertion uses the Range API rather than execCommand, which silently refuses whenever the document is not focused.

0.6.1

2026-10-20
  • ChangedRemoved the gradient bar above every note title,…
Full notes

Changed

  • Removed the gradient bar above every note title, on desktop, Android and the web app.

0.6.0

2026-10-20
  • AddedAndroid app · Google sign-in works on Android
  • Changedkeyring, window-state and single-instance are… · The native menu bar and window permissions are… · The assistant panel starts closed on phones,…
Full notes

Added

  • Android app. A real APK, not the web app in a shortcut: Tauri mobile with the same Rust core, 6.6 MB, minimum Android 7. The notes list is the home screen, a note opens over it with a back control, and content clears the status bar and gesture bar.
  • Google sign-in works on Android: the manifest registers app.glissnotes.app as a verified App Link, so the OAuth round trip returns into the app.

Changed

  • keyring, window-state and single-instance are desktop-only dependencies now; Android keeps its cloud session in the app's private storage, which only that app can read.
  • The native menu bar and window permissions are gated to desktop, with a separate mobile capability granting only what Android has.
  • The assistant panel starts closed on phones, where it would cover the screen.

0.5.6

2026-10-20
  • AddedThe app works properly on a phone
  • ChangedWebsite · The macOS download button asks the GPU whether… · Docs gained an Android and iPhone section…
Full notes

Added

  • The app works properly on a phone. Below 1080px the notes list used to be hidden entirely, leaving only the editor. Now the list is the home screen: tap a note to open it, tap the chevron to go back. Phones also start in the workspace layout instead of the Notepad-style one, which has no room for a tab strip and menu bar.

Changed

  • Website: phones are served legible detail crops of each screenshot instead of a 2880px desktop capture shrunk to 356px, and every screenshot now sits in a window frame.
  • The macOS download button asks the GPU whether the machine is Apple Silicon, because every Mac browser reports "Intel Mac OS X" in its user agent. The downloads table says "Apple Silicon (M1–M4)" and "Intel" explicitly, and the docs explain what to do if macOS offers to install Rosetta.
  • Docs gained an Android and iPhone section covering home-screen install.

0.5.5

2026-10-20
  • FixedYou can now delete every note · Projects can be deleted down to none
  • AddedTooltips on every control · The Claude & MCP section is now visible in the…
Full notes

Fixed

  • You can now delete every note. Three code paths quietly recreated a note whenever the last one went, so the workspace could never be emptied. Deleting the last note shows a proper empty state with buttons to start again, and the app no longer crashes when it is reopened with nothing in it.
  • Projects can be deleted down to none. The last project was pinned in place; the Explorer now says “No projects” and the note’s Project row reads “No project” and still opens the menu. Creating a note with no projects left recreates a default one rather than throwing.

Added

  • Tooltips on every control. A readable bubble appears after a short hover (and on keyboard focus) for toolbar buttons, menus, the format bar, status bar and dialogs, including controls drawn after start-up.
  • The Claude & MCP section is now visible in the web app, explaining that the server runs on your computer with a link to the desktop download, instead of being hidden with no explanation.

0.5.4

2026-10-20
  • AddedPublic share links · See who opened a share · Website
  • FixedWebsite screenshots were stretched · Phone-width layout
Full notes

Added

  • Public share links. Any note can become a read-only web page, with or without an account: right-click a note or use Share note…, choose an expiry (1 hour to never), and copy the link. A snapshot is shared, so editing the note afterwards only changes what visitors see when you press Update link.
  • See who opened a share. The dialog lists every link with a countdown, view count, and one line per visitor: device (“Safari on iOS”), a partial IP, first and last seen, and how many times. Full IP addresses are never stored. Stop sharing deletes the share immediately.
  • Website: a light theme by default (dark still follows the system), a documented privacy position — no cookies, no analytics — and a page explaining where notes live in each mode.

Fixed

  • Website screenshots were stretched: a global img rule set max-width but not height: auto, so the explicit height attribute won and the hero rendered 1738px tall. The hero is now capped and faded at the fold.
  • Phone-width layout: the downloads table, the docs grid and long words in the changelog each pushed the page wider than the viewport.

0.5.3

2026-10-19
  • AddedA real website · Installers are served from the site itself, so…
  • ChangedThe board now uses the whole workspace width
  • FixedSwitching to the Editor layout while the board… · The website showed “Latest
Full notes

Added

  • A real website: pages for features, docs and the changelog, with actual screenshots of the app instead of a drawing. The changelog page is generated from this file at deploy time.
  • Installers are served from the site itself, so downloads no longer depend on the GitHub API (which 404s while the repository is private).

Changed

  • The board now uses the whole workspace width — four columns never fitted in the notes list pane. Clicking a card opens the note and returns to the list.

Fixed

  • Switching to the Editor layout while the board was open left the window blank.
  • The website showed “Latest: undefined · Invalid Date” and an empty downloads table, and still described the old Electron build.

0.5.2

2026-10-17
  • AddedProjects can be created and edited from the… · Web app moves to app.glissnotes.app
  • ChangedSupabase redirect allow-list and site URL now…
Full notes

Added

  • Projects can be created and edited from the Explorer too: a + in the Projects header, a ⋯ on every project row (and right-click) with New note here, Rename, six colours and Delete, plus New project… in the note's Project dropdown.
  • Web app moves to app.glissnotes.app; the website keeps a copy at /app/. npm run deploy:web publishes both.

Changed

  • Supabase redirect allow-list and site URL now point at app.glissnotes.app.

0.5.1

2026-10-17
  • AddedAccount & sync is back · One-click MCP connector
  • FixedThe account button in the activity bar did nothing
Full notes

Added

  • Account & sync is back. The account button (activity bar, sidebar footer, Settings → Account) opens a sign-in dialog: Google, email link, and any other provider enabled on the server. Signed in, notes sync across devices with a per-note last-write-wins merge and tombstones for deletions; notes opened from files stay local. Sync runs after every change, on focus and every 90 s. Desktop sign-in returns straight to the app through glissnotes://.
  • One-click MCP connector. Settings → Claude & MCP now has Add to Claude Desktop (merges the entry into claude_desktop_config.json, keeping a .bak) and Add to Claude Code (runs claude mcp add --scope user), beside Copy config.

Fixed

  • The account button in the activity bar did nothing.

0.5.0

2026-10-17
  • AddedNotes store in Rust · MCP server for Claude · Tags / topics · Deadlines · +3 more
  • ChangedRelease builds use fat LTO and target the Apple… · In-app dialogs replace browser prompts everywhere
Full notes

Added

  • Notes store in Rust: notes live in notes.json in the app data folder, written atomically with one snapshot per day (14 kept). Settings shows the file, lets you reveal it, and restores any backup. Web storage is migrated on first launch.
  • MCP server for Claude: glissnotes --mcp exposes list_projects, list_notes, search_notes, read_note, create_note, append_to_note, update_note and save_prompt over stdio, plus your prompts via prompts/list / prompts/get. Settings → Claude & MCP shows the config to paste into Claude Desktop or Claude Code. Notes changed by Claude appear in the app as soon as it regains focus.
  • Tags / topics: edit tags from a note's properties, filter by tag from the explorer's Tags section or any tag chip, search tags with #tag in the palette.
  • Deadlines: a due date on every note, Due section in the explorer, Upcoming and Overdue views, badges that turn amber when close and red when late; done notes stop nagging.
  • Board view: the Workspace layout has a List / Board switch; the board groups notes by status (Draft, In progress, In review, Done) with drag-and-drop between columns. Status and project are editable from the properties and the right-click menu.
  • Central search: the ⌘K palette now matches note bodies, tags and projects with a snippet, not only titles.
  • Adaptive toolbar: on narrow windows low-priority buttons move into a ⋯ menu.

Changed

  • Release builds use fat LTO and target the Apple M1 feature set on Apple Silicon; the macOS binary is under 5 MB.
  • In-app dialogs replace browser prompts everywhere.

0.4.1

2026-10-16
  • FixedThe toolbar is a window drag region again, and… · Intel macOS builds are produced on current runners
Full notes

Fixed

  • The toolbar is a window drag region again, and double-clicking it zooms the window (macOS).
  • Intel macOS builds are produced on current runners.

0.4.0

2026-10-16
  • ChangedNative app rebuilt on Rust + Tauri 2 (WKWebView… · New interface modelled on the workspace design · Three views of one text · Find and replace with match case / whole word /… · +2 more
  • RemovedElectron, the previous theme set, and the…
Full notes

GlissNotes 1.0 foundation: a new design and a new engine.

Changed

  • Native app rebuilt on Rust + Tauri 2 (WKWebView on macOS, WebView2 on Windows) instead of Electron: 5 MB download, cold start well under a second, about half the memory. Sessions live in the system keychain; window size and position are remembered; glissnotes:// deep links work on every platform.
  • New interface modelled on the workspace design: activity bar (Explorer, Outline, Search, AI, Settings), explorer side panel with open notes and projects, Notepad-style toolbar, tab strip with drag-to-reorder and a right-click menu, results panel, and a status bar with caret, line endings, zoom, and language. An alternate Workspace layout shows a notes list with filters.
  • Three views of one text: every note is Markdown. Rich renders it as an editable document with properties, callouts, checklists, tables and code blocks; Plain shows the raw text; Code adds line numbers, syntax colours (Markdown, JSON, CSS, JavaScript, Python), a document map, and show-all-characters. Switching never alters the text.
  • Find and replace with match case / whole word / regex, live match highlighting in all three views, replace one / all, and Find in all notes with clickable results in the side panel or results panel.
  • AI assistant panel calls your own OpenAI-compatible endpoint with the current note as context; replies can be inserted or copied. Configure it in Settings.
  • Notes persist locally and restore on launch; files opened from disk are kept in a Files project, autosave 1.2 s after typing stops, and save atomically.

Removed

  • Electron, the previous theme set, and the previous settings panels. Cloud sync and sign-in are temporarily unavailable in this version while they are rebuilt on the new engine; the web app keeps its local storage.

0.3.3

2026-10-14
  • AddedAccount menu · Settings is now tabbed
  • ChangedLook and feel
Full notes

Added

  • Account menu: the top-bar avatar opens a dropdown with your name, email and sync status, quick theme swatches, Sync now, Account & sync, Appearance, Editor settings, Keyboard shortcuts, and Sign out.
  • Settings is now tabbed — Appearance, Editor, Account & sync — and the Editor tab gains an Auto-close brackets switch.

Changed

  • Look and feel: sans-serif headings throughout, softer shadows, hover transitions, refined top-bar chip and dialog headers.

0.3.2

2026-10-14
  • FixedSettings opened an empty sheet
Full notes

Fixed

  • Settings opened an empty sheet: the new Keyboard Shortcuts overlay shared the Settings overlay class and was picked up first. Each overlay now has its own.

0.3.1

2026-10-14
  • AddedEditing commands familiar from Notepad++ and… · Find bar options · Auto-closing brackets and quotes (wraps a selection · Open Recent (File menu and palette), editor zoom… · +3 more
Full notes

Added

  • Editing commands familiar from Notepad++ and Sublime Text: duplicate, delete, and move lines; join lines; toggle comment per language; indent/outdent a multi-line selection with Tab/⇧Tab; select line; select word then next match; go to line; insert date and time; UPPER/lower/Title Case; sort A→Z/Z→A, reverse, remove duplicate and empty lines, trim trailing whitespace, and tabs ↔ spaces. All reachable from the Edit menu, the command palette, and shortcuts, and all undoable.
  • Find bar options: match case, whole word, and regular expressions (with capture groups in replacements); invalid patterns are flagged inline.
  • Auto-closing brackets and quotes (wraps a selection; toggle in the palette).
  • Open Recent (File menu and palette), editor zoom (⌘ + / − / 0), Always on Top, toggle sidebar (⌘B) and word wrap (⌥Z) from the View menu.
  • Help menu with a searchable Keyboard Shortcuts sheet (F1), release notes, issue reporting, and an About panel.
  • Instant tooltips on every toolbar, rail, sidebar, and find-bar control.
  • The window remembers its size and position, and opens maximised on first run.

0.3.0

2026-10-14
  • ChangedNew name and glide-line icon · Desktop sign-in returns through a hosted landing… · Sign-in scheme is now glissnotes:// (the old… · Bundle id com.glissnotes.editor · +1 more
Full notes

Renamed from Fenwrite to GlissNotes — the previous name was a homophone of

an existing company and could not be found in search. Workspaces, settings,

and documents from Fenwrite and Quenote installs carry over automatically.

Changed

  • New name and glide-line icon. The interface now uses square edges throughout, and the default theme is Clean — white with an indigo accent. The indigo dark palette lives on as the Carbon theme (thirteen themes in total).
  • Desktop sign-in returns through a hosted landing page that hands the session to the app and closes the browser tab, instead of leaving a blank tab behind.
  • Sign-in scheme is now glissnotes:// (the old fenwrite:// redirect stays in the Supabase allow list for installs that have not updated yet).
  • Bundle id com.glissnotes.editor; package, artifact, and repository names follow the new name.
  • Cloud workspace table renamed to glissnotes_workspaces.

0.2.0

2026-10-13
  • AddedSign in with Google, GitHub, Apple, or an… · Account panel in Settings · Six themes · Rename documents by double-clicking a tab or… · +2 more
  • ChangedRebranded from Quenote to Fenwrite · Sync conflicts now explain the age and size of… · Primary buttons use a per-theme text colour so…
  • FixedThe desktop app could not be closed or quit once… · Dropping a file or text onto the window replaced… · The top-bar logo disappeared in themes whose… · Primary buttons showed black text on Paper's…
Full notes

The first release under the Fenwrite name. The app was previously published as

Quenote; existing workspaces, settings, and documents carry over automatically.

Added

  • Sign in with Google, GitHub, Apple, or an emailed sign-in link. The set of providers shown is configurable per build with VITE_AUTH_PROVIDERS.
  • Account panel in Settings: avatar, name, provider, last-synced time, and document count, with Sync now, Sign out, Sign out everywhere, and Delete cloud data. A top-bar chip shows who is signed in.
  • Six themes: Ink (true black), Snow (pure white), Slate, Moss, Mist, and Ember. Twelve themes in total, all synced across devices with the rest of your settings.
  • Rename documents by double-clicking a tab or sidebar entry, pressing F2, or via the command palette. Enter in the name field applies the change.
  • Drag a file onto the window to open it; drag text to insert it at the cursor.
  • Apache 2.0 license, contributor guidelines, and a supabase/ config so the auth backend is provisioned from the repository (scripts/push-auth-config.sh).

Changed

  • Rebranded from Quenote to Fenwrite: new reed-and-water icon, a gold-on-teal default palette, fenwrite:// sign-in scheme, and com.fenwrite.editor bundle id. The old quenote.* local storage keys are still read.
  • Sync conflicts now explain the age and size of both copies before asking which one to keep.
  • Primary buttons use a per-theme text colour so pure-black, pure-white, and dark-accent light themes stay readable.

Fixed

  • The desktop app could not be closed or quit once any document had been edited; Electron silently honoured the "unsaved changes" veto. Unsaved work is kept in local recovery, so closing is no longer blocked.
  • Dropping a file or text onto the window replaced the editor with raw JavaScript; the window can no longer navigate away from the editor.
  • The top-bar logo disappeared in themes whose accent colour is dark.
  • Primary buttons showed black text on Paper's green and Snow's black accents.

0.1.0

2026-10-13
  • AddedTabbed plain-text, Markdown, code, and rich-text… · Native macOS and Windows packaging, menus,… · Find and replace, command palette, quick… · Six themes, four font stacks, and editor sizing… · +2 more
Full notes

Initial release as Quenote.

Added

  • Tabbed plain-text, Markdown, code, and rich-text editing with local recovery.
  • Native macOS and Windows packaging, menus, dialogs, and shortcuts.
  • Find and replace, command palette, quick switcher, and focus mode.
  • Six themes, four font stacks, and editor sizing controls.
  • Optional Google sign-in with cross-device workspace sync via Supabase.
  • Optional AI assist (improve, summarize, explain, proofread, custom prompts) against a user-supplied OpenAI-compatible endpoint.

[0.7.3]: https://github.com/rahulpatel84/glissnotes/releases/tag/v0.7.3

[0.7.2]: https://github.com/rahulpatel84/glissnotes/releases/tag/v0.7.2

[0.7.1]: https://github.com/rahulpatel84/glissnotes/releases/tag/v0.7.1

[0.7.0]: https://github.com/rahulpatel84/glissnotes/releases/tag/v0.7.0

[0.6.1]: https://github.com/rahulpatel84/glissnotes/releases/tag/v0.6.1

[0.6.0]: https://github.com/rahulpatel84/glissnotes/releases/tag/v0.6.0

[0.5.6]: https://github.com/rahulpatel84/glissnotes/releases/tag/v0.5.6

[0.5.5]: https://github.com/rahulpatel84/glissnotes/releases/tag/v0.5.5

[0.5.4]: https://github.com/rahulpatel84/glissnotes/releases/tag/v0.5.4

[0.5.3]: https://github.com/rahulpatel84/glissnotes/releases/tag/v0.5.3

[0.5.2]: https://github.com/rahulpatel84/glissnotes/releases/tag/v0.5.2

[0.5.1]: https://github.com/rahulpatel84/glissnotes/releases/tag/v0.5.1

[0.5.0]: https://github.com/rahulpatel84/glissnotes/releases/tag/v0.5.0

[0.4.1]: https://github.com/rahulpatel84/glissnotes/releases/tag/v0.4.1

[0.4.0]: https://github.com/rahulpatel84/glissnotes/releases/tag/v0.4.0

[0.3.3]: https://github.com/rahulpatel84/glissnotes/releases/tag/v0.3.3

[0.3.2]: https://github.com/rahulpatel84/glissnotes/releases/tag/v0.3.2

[0.3.1]: https://github.com/rahulpatel84/glissnotes/releases/tag/v0.3.1

[0.3.0]: https://github.com/rahulpatel84/glissnotes/releases/tag/v0.3.0

[0.2.0]: https://github.com/rahulpatel84/glissnotes/releases/tag/v0.2.0

[0.1.0]: https://github.com/rahulpatel84/glissnotes/releases/tag/v0.1.0