Releases: lightmorphic/notespice
Releases · lightmorphic/notespice
Release list
1.8.1 — 2026-08-05
- Fixed the "New note" button being unreachable on real phones. The
page sized itself with100vh, which is the largest possible
mobile viewport (it includes the strip hidden behind the browser's
collapsible address bar); combined withoverflow: hidden, that
strip clipped off anything pinned near the bottom of the screen -
including the FAB - whenever the address bar was showing, which on
a real phone is most of the time. Now sized with100dvh(falling
back to100vhon older browsers), which always tracks the actual
visible viewport. - Fixed the editor chrome (toolbar, blank canvas) rendering behind the
"No notes yet" message before any note had ever been created. A
.editor { display: flex }rule was winning a same-specificity tie
against the[hidden]attribute, the same class of bug already
fixed for.format-barin 1.5.x but missed on.editoritself.
1.8.0 — 2026-08-05
Full pre-deployment polish pass over the whole app, verified in a real
browser at every step (16-step click-through, 58-scenario converter
suite, and targeted reproductions).
- Fixed a data-loss bug: switching notes or logging out while an
autosave was still pending (the editor debounces saves until 500ms
after the last keystroke) silently dropped everything typed since
the last completed save. Pending saves are now flushed before the
editor switches away, and closing or backgrounding the tab sends the
save withkeepaliveso it completes even after the page is gone. - Security headers on every response, set by the app itself so every
deployment gets them with or without a reverse proxy:
Content-Security-Policy(own-origin scripts and styles only;
notes can still embed images by https URL),X-Content-Type-Options: nosniff,X-Frame-Options: DENY, andReferrer-Policy: no-referrer. - PWA manifest colors caught up with the redesign: theme color is now
the app's yellow (#FFC107) and the splash background the dark navy
(#10141C). Installed-app splash screens previously still showed the
pre-redesign orange and graphite. - Accessibility: the search box, note title, Writer surface, and
Markdown textarea now expose proper labels and roles to screen
readers. All color pairs measured at AA contrast or better (weakest
6.1:1). - "New note" no longer opens the freshly created note twice (two
redundant requests when no note was open). - The zip-import per-entry cap now derives from the single-file
upload cap instead of restating the same number. - Removed the unused
favicon.png(nothing referenced it), the
finished one-time backfill-releases workflow, and a stale
.gitignoreentry. - README corrected: the Docker publish workflow authenticates with
theGHCR_PATrepository secret, not the defaultGITHUB_TOKEN. - Writing sweep across the README, SECURITY.md, UI copy, and code
comments per the house style rules; wording only, no functional
changes. cargo audit: clean, 0 advisories across all 120 dependencies.
Service worker cache bumped to v4 so updated files are picked up.
1.7.2 — 2026-07-29
- Reverted 1.7.1: the login screen logo is back to its previous
32px inline size next to the app name.
1.7.1 — 2026-07-29
- The login screen now shows the logo at its original size (192px),
centered above the app name — it was previously scaled down to a
32px inline icon next to the title.
1.5.9 — 2026-07-28
- Typeface changed from Urbanist to Geist, everywhere — UI, Writer,
Markdown view, and code blocks. Urbanist is removed completely:
font files, license file,@font-facerules, stylesheet
references, service-worker cache entries, and documentation.
Geist is self-hosted as a variable font (weights 100-900, latin +
latin-ext, SIL Open Font License) — verified in a real browser
that the page loads it from local files with zero external
network requests of any kind. Geist ships no italic faces, so
italics render as a browser-synthesized oblique. Service-worker
cache bumped (v3) so installed PWAs pick up the new font on next
load.
1.5.8 — 2026-07-28
- Dark theme recolored from warm browns to a cool navy palette: the
main surface is now#10141Cand container boxes (sidebar drawer,
code blocks, login card) are#19212B, with borders, input fields,
canvas, and muted text derived from the same hue family. The brand
yellow and the light theme are unchanged.
1.5.7 — 2026-07-28
- Removed the emoji icons from the README's feature list.
1.5.6 — 2026-07-28
- Blank lines in Writer are now REAL lines, not spacing tricks. The
parser previously split plain text into separate paragraph blocks
with a CSS margin as the visible gap — which meant the blank line
between two paragraphs wasn't actually there: pressing the down
arrow jumped straight from one paragraph to the next, skipping the
gap the eye could see, unlike the Markdown view where every blank
line is a real line the cursor can land on. Consecutive text
paragraphs now parse into a single flow where a paragraph break is
a real rendered blank line (and each explicit<br>line one
more), exactly matching what typing in Writer produces. Verified in
a real browser: arrow keys now move one visual line per press
through blank lines, identically to the Markdown textarea; every
gap is pixel-identical between the two views (24px per line, blank
lines included); the full 58-scenario round-trip suite still
passes; and the saved markdown is byte-identical through repeated
mode switches.
1.5.5 — 2026-07-27
- The sidebar now shows "Notespice vX.Y.Z" beneath Log out, linking
to the GitHub repository — so which build is running is always one
glance away. The version comes from the server itself (baked in
from Cargo.toml at compile time and reported via/api/session),
not from the frontend files, so it can't drift from the binary
actually serving the app.
1.5.4 — 2026-07-27
- A paragraph break now renders in Writer as exactly one full blank
line — the same gap the Markdown view shows for its literal blank
line. Previously it rendered as only a small spacing bump, so a
note with a paragraph break followed by plain line breaks showed
three subtly-different line gaps in Writer while Markdown mode
showed a clear blank line: the two views disagreed about the same
content. Measured in-browser after the fix: paragraph gap 48px,
plain line break 24px, in both views identically. - The release workflow can now also be run manually (workflow
dispatch with a version input): it creates the tag at main's head
and the release in one step, for situations where pushing a tag
directly isn't possible.