Fix local web issues and update dependencies - #131
Conversation
- Fix local note persistence, archive and pin behavior, route aliases, anonymous auth, and PWA fallback - Upgrade web, Android, Gradle, and GitHub Actions dependencies with compatible tooling configuration - Remove Dependabot configuration and document manual dependency maintenance - Add focused browser coverage for local note and anonymous session flows
PR Agent ReviewNote
Coverage partial: correctness specialist failed. Prompt to fix — P1 · Test bootstrap 204 clears stale cached userPrompt to fix — P2 · knip ignore not widened for .tsx testsFix all findings (agent prompt)See the review map in the PR description. e84087e ⋅ general ⋅ 25m 26s ⋅ meta/muse-spark-1.2-contributor |
There was a problem hiding this comment.
Note
Track this run on the progress stub in the PR conversation.
tests Here's what the tests found.
There was a problem hiding this comment.
Note
Track this run on the progress stub in the PR conversation.
quality Here's what the quality found.
There was a problem hiding this comment.
Note
Track this run on the progress stub in the PR conversation.
correctness Here's what the correctness found.
- Close IndexedDB connections on failures and share transaction-complete write handling - Cover auth redirects, anonymous refreshes, local note ordering, and service worker fallback behavior - Keep one PWA manifest and document transitive dependency overrides
|
/review |
There was a problem hiding this comment.
Note
Track this run on the progress stub in the PR conversation.
quality Here's what the quality found.
There was a problem hiding this comment.
Note
Track this run on the progress stub in the PR conversation.
tests Here's what the tests found.
- Share IndexedDB read and write transaction lifecycle handling - Cover refresh failures, transaction errors, sort ties, and service worker cache branches
|
/review |
There was a problem hiding this comment.
Note
Track this run on the progress stub in the PR conversation.
tests Here's what the tests found.
- Reject IndexedDB open failures and close handles that arrive after rejection - Cover service worker request bypass and database open error paths
There was a problem hiding this comment.
Note
Track this run on the progress stub in the PR conversation.
tests Here's what the tests found.
There was a problem hiding this comment.
Note
Track this run on the progress stub in the PR conversation.
quality Here's what the quality found.
- Refresh malformed or near-expiry access tokens and tolerate invalid refresh JSON - Simplify IndexedDB read and write lifecycle helpers - Share service-worker cache writes and expand edge-case coverage
|
/review |
There was a problem hiding this comment.
Note
Track this run on the progress stub in the PR conversation.
tests Here's what the tests found.
There was a problem hiding this comment.
Note
Track this run on the progress stub in the PR conversation.
correctness Here's what the correctness found.
- Verify cached API fallback and navigation behavior when cache storage fails - Verify read transaction errors and aborts reject and close IndexedDB
|
/review |
There was a problem hiding this comment.
Note
Track this run on the progress stub in the PR conversation.
tests Here's what the tests found.
- Cover authenticated and cached-offline AuthProvider bootstrap paths - Preserve sessions when token refresh fails with a server error - Cover service-worker API success and static asset cache misses
|
/review |
There was a problem hiding this comment.
Note
Track this run on the progress stub in the PR conversation.
tests Here's what the tests found.
There was a problem hiding this comment.
Note
Track this run on the progress stub in the PR conversation.
quality Here's what the quality found.
There was a problem hiding this comment.
Note
Track this run on the progress stub in the PR conversation.
correctness Here's what the correctness found.
- Prevent concurrent Android sync executions from racing device metadata - Cover auth recovery, revision pruning, and cache write failures
|
/review |
There was a problem hiding this comment.
Note
Track this run on the progress stub in the PR conversation.
tests Here's what the tests found.
- Verify serialized Android syncs reuse one persisted device ID - Cover cached auth cleanup, token expiry edges, and service worker installation failure - Include TSX test files in the Knip ignore glob
Summary
/notes/newand/notes/dailyaliasesValidation
npm testnpm run lintnpm run format:checknpm run knipnpm auditnpm run buildnpx playwright test e2e/local-notes.spec.ts./gradlew :app:testDebugUnitTest./gradlew spotlessCheck./gradlew detekt./gradlew :app:lintDebug./gradlew :app:compileDebugAndroidTestKotlin./gradlew :app:assembleDebugFixes #130
PR Agent Description
PR Type
Bug fix, Enhancement, Other
Description
POST /api/v1/auth/refreshreturn 204 when no refresh token exists (web/src/app/api/v1/auth/refresh/route.ts);web/src/lib/api-client.tstreats 204 as anonymous anddocs/openapi.yamldocuments the 204 case.web/src/lib/api-client.tsmakestokenExpiresWithinMinutesinternal andweb/src/components/AuthProvider.tsxchecks cached user before redirect to avoidsession_expiredfor anonymous users.web/src/lib/local-notes.tssorts pinned notes first bypinned_atthenupdated_at, switchesput/delete/cleartotx.oncomplete/onabort, removescountLocalNotes, and hidesopenLocalDB.web/src/lib/api-utils.tshidesgetAuthUserandREFRESH_COOKIE,revisions.tshides limits and helpers,wiki-links.tsandexport-markdown.tshide types,backup-import-server.tshidesvalidateBackupBundle.recall-v3and addOFFLINE_URLfallback inweb/public/sw.js, precache new PNG icons andmanifest.webmanifest, updateweb/public/manifest.jsonandweb/src/app/layout.tsx, and addweb/public/offline.htmlandweb/src/app/not-found.tsx..github/dependabot.yml, notes manual dependency updates inAGENTS.md, and bumps workflows (build-apk,db-push,deploy-web,secret-scan,web-test) tocheckout@v7,setup-java@v5,setup-android@v4,upload-artifact@v7.gradle-wrapper.jar/properties,gradlew) and build files, and applies repository-wide Spotless/ktlint/Prettier reformatting across ~60 Kotlin files and web code; reviewers should hide whitespace.web/src/lib/api-client.test.tsasserts 204 means anonymous,web/e2e/local-notes.spec.tsadds local-notes flow, and backup/markdown and reminder tests change only for formatting.Changes Diagram
Review map
web/src/app/api/v1/auth/refresh/route.ts: Auth now returns 204 for anonymous — verify contract changeweb/src/lib/api-client.ts: Client handles 204 and hides expiry helper — check error flowweb/src/lib/local-notes.ts: Pinned sort and IDB transaction handling changedweb/src/components/AuthProvider.tsx: Conditional session_expired redirect — verify UX riskweb/public/sw.js: Service worker cache v3 and offline fallback — check PWA install