Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"." : "1.0.1"}
{".":"2.0.0"}
98 changes: 98 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,103 @@
# Changelog

## [2.0.0](https://github.com/ddulic/supernote/compare/v1.0.1...v2.0.0) (2026-03-16)


### ⚠ BREAKING CHANGES

* first public stable release

### Features

* add automated release workflow triggered by version tags ([b3eac0a](https://github.com/ddulic/supernote/commit/b3eac0a708aed55361246727c3dd98ed5ceddc2a))
* add dark theme support ([05b190f](https://github.com/ddulic/supernote/commit/05b190f8454008950ec6b308de38a0a45d1adb9f))
* add dark theme support with persistent toggle ([9cf2d67](https://github.com/ddulic/supernote/commit/9cf2d678bac4eff9091dc4eba6838a32f42cbde4))
* automate releases with release-please ([03623b6](https://github.com/ddulic/supernote/commit/03623b66990637b648fd5a419af4575403685637))
* constitution alignment — type safety, quota enforcement, code hygiene ([4a14873](https://github.com/ddulic/supernote/commit/4a148739558dc3e4b1fbcf559f83ce4719d7a075))
* default dark theme to OS preference ([4ea07f9](https://github.com/ddulic/supernote/commit/4ea07f92de06467262bbee89cdc9ec7f5b1fd3c3))
* default dark theme to OS preference when no saved setting ([07c19e3](https://github.com/ddulic/supernote/commit/07c19e36ab6752c5a11fab8414612f553d045b66))
* enable dynamic client registration for MCP OAuth ([861de24](https://github.com/ddulic/supernote/commit/861de2450f10d1158be58a065f21e2a76c8938e7))
* enable dynamic client registration for MCP OAuth ([e6ffdf3](https://github.com/ddulic/supernote/commit/e6ffdf38ed3d74b68a31de7aa60669330030b646))
* expose OAuth sessions in Keys UI with disconnect support ([d5bcaa1](https://github.com/ddulic/supernote/commit/d5bcaa10ccf26edf841b3f52b0eba045a7fd999b))
* expose OAuth sessions in Keys UI with disconnect support ([f3caabc](https://github.com/ddulic/supernote/commit/f3caabcbd59264ef1b6fbf423ee2cc8f1c830dde))
* improve system status modal layout and add pagination ([b7242cf](https://github.com/ddulic/supernote/commit/b7242cf33afab1c9783c4a1aaae62d24aef699d7))
* improve system status modal layout and add pagination ([ac1d96c](https://github.com/ddulic/supernote/commit/ac1d96cccfc210a7da89705ccebfbed5a8771126))
* initial public release at v1.0.0 ([54d6703](https://github.com/ddulic/supernote/commit/54d670370d08bcab48f2107fbc89ed0db38b6258))
* proper GitHub releases with release-please and versioned Docker tags ([c75f32e](https://github.com/ddulic/supernote/commit/c75f32e302347f7f4db9e5f04b3fc2006694b89c))
* replace browser alerts with toast notifications ([2761926](https://github.com/ddulic/supernote/commit/27619261c5ae72bf1c9450d04a871c357f56b5f9))
* **us1:** complete type safety — zero mypy errors across all modules ([31fb70b](https://github.com/ddulic/supernote/commit/31fb70b6407a3bba119ffa18ee1b6d2a3c515907))
* **us2,us3:** security gaps closed + code hygiene complete ([228a9bb](https://github.com/ddulic/supernote/commit/228a9bbb770e42caaf4ac4ef6ac8729c3de3a341))


### Bug Fixes

* add 'none' to token_endpoint_auth_methods_supported for public clients ([b734e2a](https://github.com/ddulic/supernote/commit/b734e2a763190cf3bd2333268e89c7169e8f745b))
* add 'none' to token_endpoint_auth_methods_supported for public clients ([e7965c4](https://github.com/ddulic/supernote/commit/e7965c42473c77d687cf9d8005b135b09e733105))
* bump version to 1.0.1 ([f99f864](https://github.com/ddulic/supernote/commit/f99f8642bd096ec982c551230c85395e82aeb394))
* **cli:** add from __future__ import annotations to fix Python 3.13 compat ([acc11ba](https://github.com/ddulic/supernote/commit/acc11ba355846e311bd396ba32c0b3895a73fd99))
* compute folder size in query_file_list used by web UI ([0164dca](https://github.com/ddulic/supernote/commit/0164dca64f220b99de1580dd16f52332de1694cb))
* correct release-please manifest to bootstrap at v1.0.0 ([6afd7ac](https://github.com/ddulic/supernote/commit/6afd7ac4c7f6a19c3f43e5750d2c6a54434061e7))
* correct URL state when closing note viewer ([043ce26](https://github.com/ddulic/supernote/commit/043ce26c08930f4729236221ebd04648e7e5309d))
* encode navigation path in URL hash ([4757059](https://github.com/ddulic/supernote/commit/47570592f2f195840a4a6c316e38c0fffcb0ba6b))
* encode navigation path in URL hash instead of sessionStorage ([0455486](https://github.com/ddulic/supernote/commit/04554867b810393afab658c4b2c6689d498b14b4))
* file sync duplicates, folder sizes, and system folder naming ([0c88506](https://github.com/ddulic/supernote/commit/0c88506a0a0ad15d2ad845d74883e6d9a84ba29d))
* handle socket.io requests explicitly to avoid ASGI crash ([177a4bb](https://github.com/ddulic/supernote/commit/177a4bbef00525824867b8e41a63be2ea97b15e5))
* handle socket.io requests explicitly to avoid ASGI crash ([94649f8](https://github.com/ddulic/supernote/commit/94649f87c16dd96204fce5da73564214880258dd))
* handle socket.io requests to prevent ASGI crash ([29d200f](https://github.com/ddulic/supernote/commit/29d200f237226f026c183029faed6b6559639645))
* implement Engine.IO v3 WebSocket stub to resolve sync failures ([5f2a56c](https://github.com/ddulic/supernote/commit/5f2a56ced50241d53d627362f900c37e62179b39))
* implement Engine.IO v3 WebSocket stub to resolve sync failures ([de5022e](https://github.com/ddulic/supernote/commit/de5022edb2edfb84375aeb1baf7763054819bb3d))
* improve toast notifications for file operations ([523e30b](https://github.com/ddulic/supernote/commit/523e30b47619e1b6afad353d86d460290de272ba))
* improve toast notifications for file operations ([5ad2a35](https://github.com/ddulic/supernote/commit/5ad2a352575b01dfd54e8cb837893cc09c538f8f))
* invalidate summary task when note pages change ([951fab6](https://github.com/ddulic/supernote/commit/951fab63317d17a4f4d70b45491196c63159c6a7))
* invalidate summary task when note pages change ([f8f1b35](https://github.com/ddulic/supernote/commit/f8f1b358221092a8f8756f40bd156f663821e6a2))
* match device firmware folder names to prevent duplicate sync folders ([e41007a](https://github.com/ddulic/supernote/commit/e41007a15dba845832604aff125c7fdd409fa805))
* mount auth routes on MCP server for same-host OAuth discovery ([a59ef21](https://github.com/ddulic/supernote/commit/a59ef21baf683725fbafe89a1debc6c49a0de4f7))
* mount auth routes on MCP server for same-host OAuth discovery ([243ea50](https://github.com/ddulic/supernote/commit/243ea500bb83d808cc67c24f2f96d7c73ab17e02))
* mount auth routes on MCP server for same-host OAuth discovery ([f500ffd](https://github.com/ddulic/supernote/commit/f500ffdb2f4e43d7df1ac198a2c1563fba250741))
* preserve original folder name casing from device ([e9f2969](https://github.com/ddulic/supernote/commit/e9f29690a62a691f549372b7361b9e5f96ca32f0))
* preserve original folder name casing from device ([a665ecf](https://github.com/ddulic/supernote/commit/a665ecf3f7c0fd6f7efae1127d97e506a6e0e385))
* preserve original name for user folders sharing a system directory name ([7f6fe44](https://github.com/ddulic/supernote/commit/7f6fe44d33be32c3b732e95380d95346f3047e70))
* preserve original name for user folders sharing a system directory name ([2f1ebf3](https://github.com/ddulic/supernote/commit/2f1ebf3b59289d25f8cac5ed7d943bef43c376f2))
* prevent duplicate insights on note re-upload ([02a57bb](https://github.com/ddulic/supernote/commit/02a57bbfd5e5e5bdba7191caede98f3f23479f57))
* prevent duplicate synced files and show correct folder sizes ([88f86ff](https://github.com/ddulic/supernote/commit/88f86ff488c55429e16835d9db22fe01c00d8b1b))
* prevent duplicate synced files and show correct folder sizes ([a6a37c7](https://github.com/ddulic/supernote/commit/a6a37c7a2bb0de02aa80f1a62ff2925ddbba0a0a))
* prevent duplicate synced files and show correct folder sizes ([fc979a2](https://github.com/ddulic/supernote/commit/fc979a2161a2f63ce466631413337c6ad7fc001e))
* prevent theme icon flash on page load ([dfc36d0](https://github.com/ddulic/supernote/commit/dfc36d09fbe1d2d6d1127d8b533e1494d1fc630d))
* resolve merge conflict in ApiKeysPanel, add dark mode to sessions section ([c822a9a](https://github.com/ddulic/supernote/commit/c822a9a6edb7afcacc37d78c9e7a9aedd701e7f2))
* resolve SPA fallback routing conflict with MCP OAuth ASGI resource ([9647225](https://github.com/ddulic/supernote/commit/9647225401ce2282b9f52bd20da0e907867e63af))
* restore navigation state on page refresh ([e427758](https://github.com/ddulic/supernote/commit/e427758ca218764aef45381eaabdb9430a4261b5))
* restore navigation state on page refresh ([025ba2f](https://github.com/ddulic/supernote/commit/025ba2f333e03c81a1f6bb0d571fbf3d5b34c781))
* restore navigation state on refresh ([714282b](https://github.com/ddulic/supernote/commit/714282bed38ab247d7872e268696252ec76ff319))
* restore open note viewer on page refresh ([9268e0c](https://github.com/ddulic/supernote/commit/9268e0cd0345157c36dbbe121aec6c43869aeeed))
* restore open note viewer state on page refresh ([df1c4e8](https://github.com/ddulic/supernote/commit/df1c4e871201da270652fe41c1f52a3e89e846dd))
* revoke access tokens immediately on OAuth session disconnect ([589038a](https://github.com/ddulic/supernote/commit/589038aec117b11bc8d6f98c44b3bcd1f1fefa72))
* revoke access tokens immediately on OAuth session disconnect ([1acd5e4](https://github.com/ddulic/supernote/commit/1acd5e4b3351d7d997ecd19a6b4542044772e880))
* serve JS/CSS with Cache-Control: no-store to prevent stale ES modules ([1deb44f](https://github.com/ddulic/supernote/commit/1deb44f7ab79139ca2c6fb0aed527a90b0ffe42a))
* show system folders (EXPORT, INBOX, SCREENSHOT) with their actual names ([b7be03a](https://github.com/ddulic/supernote/commit/b7be03a8091b0c5dd2a46de990c77e6a5958059d))
* show system folders with their actual names (EXPORT, INBOX, SCREENSHOT) ([893f12d](https://github.com/ddulic/supernote/commit/893f12d740864760093a720795dd73a85ccaa92b))
* **tests:** distinguish is_file() vs direct stat() call to avoid Python 3.13 breakage ([aaef83b](https://github.com/ddulic/supernote/commit/aaef83b3a5a4c4aafd7110d7d807821d72200ad3))
* **tests:** make cleanup patch tests compatible with Python 3.13 ([97ad2bb](https://github.com/ddulic/supernote/commit/97ad2bb4441d9cf9ed54ef577d565f6483f50a9c))
* **tests:** scope stat patch to .part. files to avoid breaking exists() on Python 3.13 ([405beb4](https://github.com/ddulic/supernote/commit/405beb4e047206d1db3e80f8885b150a24697e36))
* trigger docker and pypi builds on tag push instead of release event ([b0e2972](https://github.com/ddulic/supernote/commit/b0e2972a36807d179879fbe9905b68a0bc6a48b9))
* trigger docker and pypi builds on tag push, not release event ([093e0f0](https://github.com/ddulic/supernote/commit/093e0f0b7b70759ae41037dbe87a6c899b652f3a))
* update test to expect original folder name casing ([dc962ab](https://github.com/ddulic/supernote/commit/dc962ab3c5e32ed5da6481fc635a0cf495eaad90))
* update tests to use file_id for summary UUID assertions ([b595c19](https://github.com/ddulic/supernote/commit/b595c195793556e9c145f346eee7c9dff23a24e2))
* use clean name-based URL paths for navigation state ([8ba2b08](https://github.com/ddulic/supernote/commit/8ba2b08d002108bf3d08444776e62846cf9a5542))
* use device-compatible schedule API routes and WebSocket token auth ([a9738a9](https://github.com/ddulic/supernote/commit/a9738a9491e872b68c2bf5cd1b67387801c7f012))
* use device-compatible schedule routes and support token query param auth ([ac2238a](https://github.com/ddulic/supernote/commit/ac2238acfee2d6403a1cfbb64c599353d5ee372f))
* use display names for web API immutability checks ([ffc6c0b](https://github.com/ddulic/supernote/commit/ffc6c0b30493457b77731865bf4c55024908b759))
* use display names for web API immutability checks ([0e184c6](https://github.com/ddulic/supernote/commit/0e184c6132a6e19b14d05127eb15696f2268771a))
* use issuer_url to build login-bridge return_to URL ([50d1c65](https://github.com/ddulic/supernote/commit/50d1c6538827836b0fde807ef04efff708503288))
* use issuer_url to build login-bridge return_to URL ([fb4ad60](https://github.com/ddulic/supernote/commit/fb4ad6097375fa25334f2b450fd424ec30f7c58c))
* use real URL paths instead of hash for navigation state ([e0745da](https://github.com/ddulic/supernote/commit/e0745da16f603d729de99a946dcf19d9767bd7b6))
* use stable file_id for summary UUID to prevent duplicates ([baea270](https://github.com/ddulic/supernote/commit/baea270ea242ec667a2dc8cf3f0aff47ee3cc94e))


### Documentation

* update MCP and security docs to cover API key auth ([d059344](https://github.com/ddulic/supernote/commit/d059344e2680dd7344e95b99580d8a6c9220c116))
* update spec files to reflect release-please implementation ([981f77f](https://github.com/ddulic/supernote/commit/981f77f28390cf50973f2276c1ea05aab1555c3f))

## [1.0.0](https://github.com/ddulic/supernote/compare/v0.14.8...v1.0.0) (2026-03-16)


Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ requires = ["setuptools>=77.0"]

[project]
name = "supernote"
version = "1.0.1"
version = "2.0.0"
license = "Apache-2.0"
license-files = ["LICENSE"]
description = "All-in-one toolkit for Supernote devices: parse notebooks, self-host services, access services"
Expand Down