Repository navigation
NOTO v1.4.0
Highlights
- Accounts work. Sign in with an email and password and Noto is signed in — a real profile on the Home and Account screens, and this browser listed as a device. Everything before this read a fixture.
- Sign-up, protected by Cloudflare Turnstile. Creating an account now goes through a bot check that is verified server-side, where the secret that makes a token mean anything never reaches a browser.
- Signed out is still the whole application. Nothing here is a gate. Noto opens, writes and searches with no account, and a build with no Supabase credentials behaves exactly as it did before.
- Signing out ends the session. It used to walk you to the sign-in screen and leave the session in storage, so the next reload signed you straight back in. It is an action on the account now — offered from the header menu and from the account screen — and the stored session goes whatever the server answers.
Improvements
- The account screen is a protected route. Signed out, it sends you to sign in and remembers what for, so you land back on it afterwards rather than on Home; a profile, a device list and a security history belonging to nobody are never drawn. Everything else stays open to everyone, because Noto is local-first and the work belongs to the device.
- A session coming back is no longer mistaken for no session. Reloading the account screen used to throw you off it for the moment the session took to restore.
- Noto now notices when a session ends somewhere else — another tab, or a refresh token that ran out — and says so, rather than carrying on as though you were still signed in until the next reload.
- The cloud loads only when it is needed.
@supabase/supabase-jsmoved out of the entry bundle behind a dynamic import, so a visitor who has never signed in no longer downloads 164 kB to be told they are signed out. - Password rules are stated once, in
@noto/config. The sign-up form and the service previously kept their own minimum and disagreed by four characters, which the person signing up discovered on submit. - Validation failures arrive on the field that caused them. The server has always sent per-field detail; nothing was displaying it.
Bug fixes
- Sign-out did nothing but change the screen. Until this, ending a session meant closing the browser and hoping.
- A sign-in whose profile could not be loaded reported success and left you on an account screen with nothing on it. It is reported as the failure it is, and the session survives for the retry.
- Sign-in and sign-up failed from a browser with "Could not reach the server". The Edge Functions' CORS preflight did not name the
apikeyheader that every Supabase call sends. - Edge Functions can now import the workspace packages they were always meant to share. Deno could not resolve the extensionless relative imports the bundler accepted, so no function using
@noto/backendhad ever deployed.
A note on password strength
The Have I Been Pwned lookup, the common-sequence list and the email-substring
rule have been removed from sign-up, and the minimum length is six characters.
A password already present in a public breach corpus is now accepted. Turnstile
and the per-IP rate limit are what guard the endpoint.
Downloads
Windows
| Package | File |
|---|---|
| Installer (x64) | Noto-1.4.0-win-x64.exe |
| Installer (ARM64) | Noto-1.4.0-win-arm64.exe |
macOS
| Package | File |
|---|---|
| Disk image (Apple Silicon) | Noto-1.4.0-mac-arm64.dmg |
| Disk image (Intel) | Noto-1.4.0-mac-x64.dmg |
| Archive (Apple Silicon) | Noto-1.4.0-mac-arm64.zip |
| Archive (Intel) | Noto-1.4.0-mac-x64.zip |
Linux
| Package | File |
|---|---|
| AppImage (x64) | Noto-1.4.0-linux-x64.AppImage |
| Debian package (x64) | Noto-1.4.0-linux-x64.deb |
| RPM package (x64) | Noto-1.4.0-linux-x64.rpm |
Android
| Package | File |
|---|---|
| APK (64-bit) | Noto-1.4.0-android.apk |
| APK (32-bit) | Noto-1.4.0-android-armeabi-v7a.apk |
| App bundle (Play Store) | Noto-1.4.0-android.aab |
The web application needs no download and is always at the latest version.
Verifying a download
Checksums for every asset are published as SHA256SUMS.txt.
sha256sum --check --ignore-missing SHA256SUMS.txtUpdating
Windows and macOS installations update themselves: Noto checks for a new version on startup, downloads it in the background, and applies it on the next restart.
On Linux, replace the AppImage or install the new .deb/.rpm through your package manager.
System requirements
| Platform | Requirements |
|---|---|
| Windows | Windows 10 or later, x64 or ARM64, 4 GB RAM, 500 MB storage |
| macOS | A supported modern macOS version, Apple Silicon or Intel, 4 GB RAM, 500 MB storage |
| Linux | x64, 4 GB RAM, 500 MB storage |
| Web | A current version of Chrome, Edge, Firefox or Safari |
Full details: System requirements
Full Changelog: v1.3.0...v1.4.0