WIP: VERIFY ONLY: remove UnifiedPush and build generic notifications #93

Draft
morten-olsen wants to merge 3 commits from verify/01a155ed-without-unifiedpush into feat/01a155ed-presentation-state
Owner

Verification only — never merge

Disposable deletion experiment against PR94 at d53cf5567d. Proof head 44336dbb51. This is an acceptance artifact for adapter removability, not a proposed product change.

Delete UnifiedPush adapter source/tests and connector dependency. Exactly three surviving production wiring files change:

  • packages/server/src/api/api.ts
  • packages/server/src/services/secret/secret.ts
  • apps/app/src/app/_layout.tsx

All39 checked generic production files are byte-identical, including current-unread eligibility, owned preferences/grants, bounded delivery queue, Android reconciliation/presentation history, Inbox UI/source handling and focus behavior. Generic retained census is2,248/2,300 physical production lines, including conservative migration compatibility history. Applied migrations040–044 and registry remain intact. Generic delivery through a test adapter remains tested; no replacement production provider is introduced.

Separately itemized surviving edits: server dependency declarations, lockfile, generated client, mixed credential fixture, contributor command and one CI verification workflow restoring automatic generic checks and adding full-APK compilation under the existing release resource envelope. A disposable Taskfile defines that build without changing generic production modules. Two added verification files provide opaque-protocol generic HTTP cases and check generated Android outputs for connector/module absence. No generic runtime behavior edits.

The large diff consists mostly of adapter/test deletion and introduces no production runtime code. The production-deletion size was reported before opening this experiment. NEVER merge this branch into main or a feature branch.

Evidence and limits

PR655/push654 are fully green at44336db, including940 remaining repository tests, quality/build/docs/images and unchanged generic Android debug/release JVM/build checks. The native stage inspects actual production merged manifests, runtime dependency graph and Expo module list: no UnifiedPush connector/module. https://woodpecker.olsen.cloud/repos/32/pipeline/655 .

The earlier pre-presentation removal copy passed27 focused generic/Inbox/HTTP cases and16 phone/desktop browser cases; those are explicitly earlier evidence. Normal presentation-head browser checks also passed16 cases. Current generic Android presentation tests run on this exact proof. The refreshed proof also compiles a complete arm64 release APK and confirms assets/index.android.bundle is packaged (641 Gradle tasks; full assembly successful). This is a verification artifact without production signing credentials, never for installation. Actual device behavior and the normal signed product APK remain separate acceptance gates.

Rollback and verification

Closing this draft leaves normal source unchanged. No migration reversal, release, deployment, installation, data/PVC deletion or new storage occurs. Software Engineer retains delivery and final verification ownership. Refresh the proof if generic source changes again.

## Verification only — never merge Disposable deletion experiment against PR94 at d53cf5567dbc087cf96067c5bd188e842e5cbbc8. Proof head 44336dbb51e6a19de4f877cadf4f0d26dd9f6f32. This is an acceptance artifact for adapter removability, not a proposed product change. Delete UnifiedPush adapter source/tests and connector dependency. Exactly three surviving production wiring files change: - `packages/server/src/api/api.ts` - `packages/server/src/services/secret/secret.ts` - `apps/app/src/app/_layout.tsx` All39 checked generic production files are byte-identical, including current-unread eligibility, owned preferences/grants, bounded delivery queue, Android reconciliation/presentation history, Inbox UI/source handling and focus behavior. Generic retained census is2,248/2,300 physical production lines, including conservative migration compatibility history. Applied migrations040–044 and registry remain intact. Generic delivery through a test adapter remains tested; no replacement production provider is introduced. Separately itemized surviving edits: server dependency declarations, lockfile, generated client, mixed credential fixture, contributor command and one CI verification workflow restoring automatic generic checks and adding full-APK compilation under the existing release resource envelope. A disposable Taskfile defines that build without changing generic production modules. Two added verification files provide opaque-protocol generic HTTP cases and check generated Android outputs for connector/module absence. No generic runtime behavior edits. The large diff consists mostly of adapter/test deletion and introduces no production runtime code. The production-deletion size was reported before opening this experiment. NEVER merge this branch into main or a feature branch. ## Evidence and limits PR655/push654 are fully green at44336db, including940 remaining repository tests, quality/build/docs/images and unchanged generic Android debug/release JVM/build checks. The native stage inspects actual production merged manifests, runtime dependency graph and Expo module list: no UnifiedPush connector/module. https://woodpecker.olsen.cloud/repos/32/pipeline/655 . The earlier pre-presentation removal copy passed27 focused generic/Inbox/HTTP cases and16 phone/desktop browser cases; those are explicitly earlier evidence. Normal presentation-head browser checks also passed16 cases. Current generic Android presentation tests run on this exact proof. The refreshed proof also compiles a complete arm64 release APK and confirms assets/index.android.bundle is packaged (641 Gradle tasks; full assembly successful). This is a verification artifact without production signing credentials, never for installation. Actual device behavior and the normal signed product APK remain separate acceptance gates. ## Rollback and verification Closing this draft leaves normal source unchanged. No migration reversal, release, deployment, installation, data/PVC deletion or new storage occurs. Software Engineer retains delivery and final verification ownership. Refresh the proof if generic source changes again.
test(push): demonstrate generic notifications without UnifiedPush
Some checks failed
ci/woodpecker/push/deploy-tools Pipeline was successful
ci/woodpecker/pr/deploy-tools Pipeline was successful
ci/woodpecker/push/quality Pipeline failed
ci/woodpecker/push/docs Pipeline was skipped
ci/woodpecker/pr/quality Pipeline failed
ci/woodpecker/pr/docs Pipeline was skipped
ci/woodpecker/pr/image Pipeline was skipped
ci/woodpecker/pr/native-notifications Pipeline was canceled
ci/woodpecker/pr/image-agent Pipeline was canceled
9e1989ae26
style(test): format the provider removal fixture
All checks were successful
ci/woodpecker/pr/deploy-tools Pipeline was successful
ci/woodpecker/push/deploy-tools Pipeline was successful
ci/woodpecker/pr/image-agent Pipeline was successful
ci/woodpecker/pr/quality Pipeline was successful
ci/woodpecker/pr/docs Pipeline was successful
ci/woodpecker/pr/native-notifications Pipeline was successful
ci/woodpecker/push/quality Pipeline was successful
ci/woodpecker/pr/image Pipeline was successful
ci/woodpecker/push/docs Pipeline was successful
66a7dd97fe
morten-olsen changed target branch from feat/01a155ed-inbox-notifications to feat/01a155ed-presentation-state 2026-10-22 10:07:04 +02:00
morten-olsen force-pushed verify/01a155ed-without-unifiedpush from 66a7dd97fe
All checks were successful
ci/woodpecker/pr/deploy-tools Pipeline was successful
ci/woodpecker/push/deploy-tools Pipeline was successful
ci/woodpecker/pr/image-agent Pipeline was successful
ci/woodpecker/pr/quality Pipeline was successful
ci/woodpecker/pr/docs Pipeline was successful
ci/woodpecker/pr/native-notifications Pipeline was successful
ci/woodpecker/push/quality Pipeline was successful
ci/woodpecker/pr/image Pipeline was successful
ci/woodpecker/push/docs Pipeline was successful
to a1011fa6ad
Some checks failed
ci/woodpecker/pr/docs Pipeline is pending
ci/woodpecker/pr/image Pipeline is pending
ci/woodpecker/push/deploy-tools Pipeline was successful
ci/woodpecker/pr/deploy-tools Pipeline was successful
ci/woodpecker/pr/image-agent Pipeline was successful
ci/woodpecker/push/quality Pipeline was successful
ci/woodpecker/push/docs Pipeline was canceled
ci/woodpecker/pr/native-notifications Pipeline was canceled
ci/woodpecker/pr/quality Pipeline was canceled
2026-10-22 10:07:05 +02:00
Compare
morten-olsen force-pushed verify/01a155ed-without-unifiedpush from a1011fa6ad
Some checks failed
ci/woodpecker/pr/docs Pipeline is pending
ci/woodpecker/pr/image Pipeline is pending
ci/woodpecker/push/deploy-tools Pipeline was successful
ci/woodpecker/pr/deploy-tools Pipeline was successful
ci/woodpecker/pr/image-agent Pipeline was successful
ci/woodpecker/push/quality Pipeline was successful
ci/woodpecker/push/docs Pipeline was canceled
ci/woodpecker/pr/native-notifications Pipeline was canceled
ci/woodpecker/pr/quality Pipeline was canceled
to f71156f0d5
All checks were successful
ci/woodpecker/push/deploy-tools Pipeline was successful
ci/woodpecker/pr/deploy-tools Pipeline was successful
ci/woodpecker/push/quality Pipeline was successful
ci/woodpecker/pr/image-agent Pipeline was successful
ci/woodpecker/push/docs Pipeline was successful
ci/woodpecker/pr/native-notifications Pipeline was successful
ci/woodpecker/pr/quality Pipeline was successful
ci/woodpecker/pr/docs Pipeline was successful
ci/woodpecker/pr/image Pipeline was successful
2026-10-22 10:16:56 +02:00
Compare
test(push): compile bundled Android app after adapter removal
All checks were successful
ci/woodpecker/pr/deploy-tools Pipeline was successful
ci/woodpecker/push/deploy-tools Pipeline was successful
ci/woodpecker/pr/image-agent Pipeline was successful
ci/woodpecker/push/quality Pipeline was successful
ci/woodpecker/pr/native-notifications Pipeline was successful
ci/woodpecker/pr/quality Pipeline was successful
ci/woodpecker/push/docs Pipeline was successful
ci/woodpecker/pr/docs Pipeline was successful
ci/woodpecker/pr/image Pipeline was successful
44336dbb51
All checks were successful
ci/woodpecker/pr/deploy-tools Pipeline was successful
ci/woodpecker/push/deploy-tools Pipeline was successful
ci/woodpecker/pr/image-agent Pipeline was successful
ci/woodpecker/push/quality Pipeline was successful
ci/woodpecker/pr/native-notifications Pipeline was successful
ci/woodpecker/pr/quality Pipeline was successful
ci/woodpecker/push/docs Pipeline was successful
ci/woodpecker/pr/docs Pipeline was successful
ci/woodpecker/pr/image Pipeline was successful
This pull request is marked as a work in progress.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin 'verify/01a155ed-without-unifiedpush:verify/01a155ed-without-unifiedpush'
git switch 'verify/01a155ed-without-unifiedpush'

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch 'feat/01a155ed-presentation-state'
git merge --no-ff 'verify/01a155ed-without-unifiedpush'
git switch 'verify/01a155ed-without-unifiedpush'
git rebase 'feat/01a155ed-presentation-state'
git switch 'feat/01a155ed-presentation-state'
git merge --ff-only 'verify/01a155ed-without-unifiedpush'
git switch 'verify/01a155ed-without-unifiedpush'
git rebase 'feat/01a155ed-presentation-state'
git switch 'feat/01a155ed-presentation-state'
git merge --no-ff 'verify/01a155ed-without-unifiedpush'
git switch 'feat/01a155ed-presentation-state'
git merge --squash 'verify/01a155ed-without-unifiedpush'
git switch 'feat/01a155ed-presentation-state'
git merge --ff-only 'verify/01a155ed-without-unifiedpush'
git switch 'feat/01a155ed-presentation-state'
git merge 'verify/01a155ed-without-unifiedpush'
git push origin 'feat/01a155ed-presentation-state'
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
ai/mission-control!93
No description provided.