feat(pwa): make control panel notification-ready with opt-in model and PWA baseline - #203
Conversation
|
@JSONbored Could you plz review my PR? |
JSONbored
left a comment
There was a problem hiding this comment.
@jonathanchang31 This needs another pass. Merge conflicts, etc.
The current failures are Prettier/ESLint formatting issues in the notification readiness UI. Please run the UI formatting/lint gate, commit the formatted output, and rerun validation. Since this touches apps/gittensory-ui, the expected gate is npm run ui:openapi:check, npm run ui:lint, npm run ui:typecheck, and npm run ui:build.
Signed-off-by: Jonathan Chang <55106972+jonathanchang31@users.noreply.github.com>
|
@JSONbored Could you plz review my PR? Thanks && I love gittensory. |
@jonathanchang31 This is ready from my side. The prior UI formatting and /v1/app/notification-model failures are fixed, current checks are green, and the merge tree is clean.
A few notes:
- The PWA baseline, service worker registration, manifest, notification readiness card, API route, OpenAPI spec, and integration coverage are all included.
- The notification model is opt-in/readiness-oriented rather than claiming delivery that does not exist yet.
- Since this touches
apps/gittensory-ui, the UI/OpenAPI artifact freshness gate matters; the current branch passes validation.
No requested changes from me.
Summary
This PR implements issue #149 by making the control panel notification-ready without adding any native app dependency.
It adds:
manifest.webmanifest+sw.js)Related Issue
Closes: #149
Change Type (select all)
Real Behavior Proof
API behavior
GET /v1/app/notification-modelreturns200for operator/admin auth with:mode: "opt_in"defaultState: "disabled"browser_push.defaultEnabled: falsepwa.nativeDependency: false403for unknown/no-role browser session.Runtime behavior
wrangler dev --local ...Ready on http://127.0.0.1:8792Test/validation outputs
npm run typecheck✅npm run test:integration -- test/integration/api.test.ts✅npm run ui:openapi:check✅npm run ui:typecheck✅npm run ui:build✅npm run test:unit✅ (44 files,540 testspassed)Public/Private Boundary Notes
Checklist