Files
BadNote/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png

3 lines
704 B
Plaintext
Raw Normal View History

Fix bugs across app + server, optimize UI/UX, add Gitea CI Bug fixes (Flutter): - Wrap multi-statement DB writes (insert/update/delete note, deleteDocument, deletePageData, OCR FTS merge, migrations) in transactions to prevent data loss on interruption and a read-modify-write FTS race. - Fix PdfDocument leaks on exception (try/finally dispose) and preserve image aspect ratio when stamping images onto PDF pages. - Guard file-picker against empty selection (was .single -> crash). - Fix eraser ConcurrentModificationError and unmodifiable-list crash on PDF pages; capture page synchronously on save to stop wrong-page data loss. - Fix Riverpod DB-not-ready races, broken pull-to-refresh, settings load race, and search N+1; transform stored annotations on PDF page rotation. - Normalize pen pressure for devices without a pressure range. - PPT: single source of truth for slide strokes so ink displays and exports. UI/UX: - Material 3 typography, theme-aware colors (dark-mode fixes), hover cursors and right-click/visible actions on desktop, keyboard shortcuts (undo/redo/ save/find), toolbar overflow handling, friendlier empty states, semantic OCR status badges, relative timestamps, 1-based page indicators, large-deck PPT navigation, and a scratchpad-scope label in split view. Server (optional backend): - Persist JWT secret (was per-process random), block path traversal in storage, fix CORS '*'+credentials, add OCR job ownership checks, last-writer-wins sync guard, constant-time login, and split out heavy OCR deps so the API/tests run without them. CI: Gitea workflows for format+analyze+test (Linux, system sqlite) and a Windows release build; pristine `flutter analyze`, all Flutter and server tests green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 03:18:00 +08:00
<EFBFBD>PNG

IHDRWWF)^<00>PLTE<54><45><EFBFBD>T<EFBFBD><54>)<29><>W<><57><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>W<EFBFBD><57>U<EFBFBD><55><EFBFBD><7F>|<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>i<>Y<><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>y<EFBFBD><79>V<><56><EFBFBD><EFBFBD>R<EFBFBD><52><EFBFBD><EFBFBD><EFBFBD>P<><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>d<EFBFBD>³<EFBFBD><C2B3>M<EFBFBD><4D>S<><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8<EFBFBD><38>.<2E><>y<>K<>@r<><72><EFBFBD>:<3A><>z<EFBFBD><7A>u<EFBFBD><75><19><>_<EFBFBD><5F><EFBFBD><EFBFBD><EFBFBD>7<EFBFBD><37>q<EFBFBD><71>U<EFBFBD><55><18><>U<>3Z<33><5A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>i<>H~4]0S%<25>0p<01>IDATX<54><58><EFBFBD>kS<6B>@<14>q<EFBFBD>]4<>Z<>yK<79>,<2C><><EFBFBD><EFBFBD>\<5C>j<>=6<><36><EFBFBD><EFBFBD><EFBFBD>?<3F><19><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!<21><><EFBFBD>u<EFBFBD>p<EFBFBD><70>6j<36><6A>^S\{ <0C><>ޕ<EFBFBD>v<06><>n<EFBFBD><6E>%<25>mC<6D>.<2E>uK<75><4B><EFBFBD><EFBFBD><EFBFBD>h=q-<2D>Zv`Z<>O<06>5<0F>w@<40>•i<C295><69><EFBFBD>ΠV<CEA0>vr-<2D><>4ko<6B>x<EFBFBD><78>הg\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>gZB<5A><0E><><EFBFBD><EFBFBD><EFBFBD>]<5D>3N<33><4E> <0B>q~<7E><><EFBFBD><EFBFBD>6U<36><55>˾;<3B><><EFBFBD>@6t<36><74>3<07><><EFBFBD><13>A-Q*<2A><><EFBFBD>Z<EFBFBD>6<><36>nur <0C>qj<71>*<2A><><EFBFBD>e<EFBFBD>8<EFBFBD><12><>h<EFBFBD>8<38>M<EFBFBD>~<7E><>W@[U<><55>8<EFBFBD>F<EFBFBD><46>u>l<><6C><EFBFBD><03><>/<2F>x<EFBFBD>XD<58><44><EFBFBD>N<EFBFBD><4E>GI6 h99}<7D><>4<EFBFBD><34>k<EFBFBD>F<EFBFBD>X<EFBFBD><58><EFBFBD>õb3<62>M<EFBFBD><4D><EFBFBD><EFBFBD><<3C><>%<25><><EFBFBD>CE|<7C><03><>˖<EFBFBD><CB96>a1<1B>7<18><><EFBFBD><EFBFBD>]<5D><> <09><>v<EFBFBD><76>}U=<3D><08>ϾD<CFBE>.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>t<12>׾<1A>1<EFBFBD><EFBFBD>d<EFBFBD><64>4L<34>o<EFBFBD><6F>裊&<26><>F<EFBFBD>V<EFBFBD><56><EFBFBD>S<EFBFBD><53>UL<55>JC<11><>/b<>ݕ<EFBFBD>wb<77>[<5B>,<2C>x<EFBFBD>"<22>a<03>lΟ<6C><CE9F>[P<><50>G<EFBFBD>99<39><EFBFBD>w<01>(*<2A><>7<EFBFBD>IEND<4E>B`<60>