From e44925b9711c6834660b0f754c9e21b16fc011e6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 16 Mar 2026 12:29:24 +0000 Subject: [PATCH] chore(main): release 2.0.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 98 +++++++++++++++++++++++++++++++++++ pyproject.toml | 2 +- 3 files changed, 100 insertions(+), 2 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 114d8f9..b7c9dac 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1 +1 @@ -{"." : "1.0.1"} +{".":"2.0.0"} diff --git a/CHANGELOG.md b/CHANGELOG.md index 69f50e0..9e0736c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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) diff --git a/pyproject.toml b/pyproject.toml index 514afe7..b5d5530 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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"