native-update 2.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/Readme.md +28 -14
  2. package/android/manifest-additions.xml +28 -0
  3. package/android/src/main/AndroidManifest.xml +3 -7
  4. package/android/src/main/java/com/aoneahsan/nativeupdate/BackgroundNotificationManager.kt +21 -13
  5. package/android/src/main/java/com/aoneahsan/nativeupdate/LiveUpdatePlugin.kt +196 -29
  6. package/android/src/main/java/com/aoneahsan/nativeupdate/NativeUpdatePlugin.kt +21 -36
  7. package/cli/AGENTS.md +15 -1
  8. package/cli/CLAUDE.md +15 -1
  9. package/cli/commands/backend-create.js +56 -15
  10. package/cli/commands/bundle-create.js +39 -7
  11. package/cli/commands/monitor.js +72 -51
  12. package/cli/index.js +10 -24
  13. package/cli/package.json +11 -3
  14. package/dist/esm/app-review/app-review-manager.js +0 -1
  15. package/dist/esm/app-review/index.js +0 -1
  16. package/dist/esm/app-review/platform-review-handler.js +0 -1
  17. package/dist/esm/app-review/review-conditions-checker.js +0 -1
  18. package/dist/esm/app-review/review-rate-limiter.js +0 -1
  19. package/dist/esm/app-review/types.js +0 -1
  20. package/dist/esm/app-update/app-update-checker.js +0 -1
  21. package/dist/esm/app-update/app-update-installer.d.ts +1 -0
  22. package/dist/esm/app-update/app-update-installer.js +19 -8
  23. package/dist/esm/app-update/app-update-manager.js +0 -1
  24. package/dist/esm/app-update/app-update-notifier.js +0 -1
  25. package/dist/esm/app-update/index.js +0 -1
  26. package/dist/esm/app-update/platform-app-update.js +12 -3
  27. package/dist/esm/app-update/types.js +0 -1
  28. package/dist/esm/background-update/background-scheduler.js +0 -1
  29. package/dist/esm/background-update/index.js +0 -1
  30. package/dist/esm/background-update/notification-manager.js +0 -1
  31. package/dist/esm/config/support.js +0 -1
  32. package/dist/esm/core/analytics.d.ts +13 -0
  33. package/dist/esm/core/analytics.js +15 -1
  34. package/dist/esm/core/cache-manager.js +0 -1
  35. package/dist/esm/core/config.d.ts +0 -15
  36. package/dist/esm/core/config.js +0 -4
  37. package/dist/esm/core/errors.d.ts +1 -0
  38. package/dist/esm/core/errors.js +1 -1
  39. package/dist/esm/core/event-emitter.d.ts +0 -3
  40. package/dist/esm/core/event-emitter.js +8 -3
  41. package/dist/esm/core/logger.js +0 -1
  42. package/dist/esm/core/performance.js +0 -1
  43. package/dist/esm/core/plugin-manager.js +3 -1
  44. package/dist/esm/core/security.d.ts +11 -0
  45. package/dist/esm/core/security.js +27 -1
  46. package/dist/esm/definitions.d.ts +0 -11
  47. package/dist/esm/definitions.js +0 -1
  48. package/dist/esm/index.d.ts +3 -2
  49. package/dist/esm/index.js +3 -1
  50. package/dist/esm/live-update/bundle-manager.d.ts +8 -0
  51. package/dist/esm/live-update/bundle-manager.js +20 -1
  52. package/dist/esm/live-update/certificate-pinning.js +0 -1
  53. package/dist/esm/live-update/delta-processor.d.ts +1 -1
  54. package/dist/esm/live-update/delta-processor.js +3 -1
  55. package/dist/esm/live-update/download-manager.js +9 -2
  56. package/dist/esm/live-update/rollout-checker.d.ts +1 -1
  57. package/dist/esm/live-update/rollout-checker.js +5 -6
  58. package/dist/esm/live-update/update-manager.js +0 -1
  59. package/dist/esm/live-update/version-manager.d.ts +0 -12
  60. package/dist/esm/live-update/version-manager.js +0 -68
  61. package/dist/esm/plugin.js +69 -43
  62. package/dist/esm/security/crypto.js +11 -7
  63. package/dist/esm/security/validator.js +0 -1
  64. package/dist/esm/types/rollout.d.ts +85 -0
  65. package/dist/esm/types/rollout.js +25 -0
  66. package/dist/esm/web.d.ts +8 -0
  67. package/dist/esm/web.js +148 -54
  68. package/dist/plugin.cjs.js +1 -2
  69. package/dist/plugin.esm.js +1 -2
  70. package/dist/plugin.js +2 -3
  71. package/docs/CHANGELOG.md +124 -0
  72. package/docs/CLAUDE.md +1 -1
  73. package/docs/MANUAL-TASKS.md +17 -0
  74. package/docs/MARKETING_WEBSITE_TRACKER.md +18 -2
  75. package/docs/MIGRATION.md +83 -0
  76. package/docs/PACKAGES.md +167 -0
  77. package/docs/PERFORMANCE.md +110 -0
  78. package/docs/PROJECT_COMPLETION_TRACKER.md +4 -35
  79. package/docs/README.md +0 -1
  80. package/docs/REMAINING_FEATURES.md +123 -76
  81. package/docs/ROADMAP.md +200 -120
  82. package/docs/SECURITY-IF-REPO-PUBLIC.md +232 -0
  83. package/docs/TESTING_REQUIREMENTS.md +1 -112
  84. package/docs/ai-knowledge-base/00-project-profile.md +38 -0
  85. package/docs/ai-knowledge-base/01-features.md +46 -0
  86. package/docs/ai-knowledge-base/02-routes.md +72 -0
  87. package/docs/ai-knowledge-base/03-tech-stack.md +57 -0
  88. package/docs/ai-knowledge-base/README.md +23 -0
  89. package/docs/analytics-tracking.md +37 -0
  90. package/docs/capacitor-official-plugins.md +46 -0
  91. package/docs/capawesome-plugins.md +29 -0
  92. package/docs/deployment/HOSTINGER_DEPLOY.md +75 -34
  93. package/docs/deployment/PRODUCTION-DEPLOY-CHECKLIST.md +184 -0
  94. package/docs/docs-site/plan.md +201 -0
  95. package/docs/docs-site/scope.md +127 -0
  96. package/docs/docs-site/tracker.json +235 -0
  97. package/docs/error-handling-tracking.md +37 -0
  98. package/docs/guides/testing-guide.md +15 -41
  99. package/docs/package-audit.md +41 -0
  100. package/docs/play-store/ASO-METADATA.md +5 -0
  101. package/docs/play-store/DATA-SAFETY.md +5 -0
  102. package/docs/play-store/DECLARATIONS.md +5 -0
  103. package/docs/play-store/README.md +27 -0
  104. package/docs/play-store/RELEASE-NOTES.md +99 -0
  105. package/docs/play-store/RELEASE-STEPS.md +6 -0
  106. package/docs/play-store/STORE-LISTING.md +7 -0
  107. package/docs/play-store/SUBMISSION-CHECKLIST.md +5 -0
  108. package/docs/production-readiness.md +1 -1
  109. package/docs/project-audit/2026-05-16/00-FINALIZATION-PLAN.md +123 -0
  110. package/docs/project-audit/2026-05-16/01-BATCH-PLAN.md +227 -0
  111. package/docs/project-audit/2026-05-16/02-AUDIT-FINDINGS.md +144 -0
  112. package/docs/project-audit/2026-05-16/sessions/batch-01.md +42 -0
  113. package/docs/project-audit/2026-05-16/sessions/batch-02.md +74 -0
  114. package/docs/project-audit/2026-05-16/sessions/batch-03.md +71 -0
  115. package/docs/project-audit/2026-05-16/sessions/batch-04.md +88 -0
  116. package/docs/project-audit/2026-05-16/sessions/batch-05.md +63 -0
  117. package/docs/project-audit/2026-05-16/sessions/batch-06.md +103 -0
  118. package/docs/project-audit/2026-05-16/sessions/batch-07.md +61 -0
  119. package/docs/project-audit/2026-05-16/sessions/batch-08.md +101 -0
  120. package/docs/project-audit/2026-05-16/sessions/batch-09.md +105 -0
  121. package/docs/project-audit/2026-05-16/sessions/batch-10.md +102 -0
  122. package/docs/project-audit/AUDIT-HISTORY.md +74 -0
  123. package/docs/project-audit/BATCH-PLAN.md +168 -0
  124. package/docs/project-audit/MARKETING-WEBSITE-FINDINGS-2026-05-11.md +73 -0
  125. package/docs/project-audit/PRODUCTION-READINESS-AUDIT-2026-05-08.md +275 -0
  126. package/docs/project-finalization/00-tracker.json +60 -0
  127. package/docs/project-knowledge-base/01-system-overview.md +39 -30
  128. package/docs/project-knowledge-base/02-routes-pages-forms-users.md +87 -81
  129. package/docs/project-knowledge-base/03-tech-stack-modules-services.md +140 -108
  130. package/docs/project-knowledge-base/04-data-models-integrations.md +191 -254
  131. package/docs/project-knowledge-base/05-docs-corpus-inventory.md +83 -20
  132. package/docs/project-knowledge-base/06-operations-testing-legal-content.md +67 -29
  133. package/docs/project-knowledge-base/README.md +27 -14
  134. package/docs/project-profiles/native-update-capacitor-update-platform-project-profile-last-updated-2026-05-19.md +81 -0
  135. package/docs/rules-tracker.md +102 -0
  136. package/docs/security/PRE-LAUNCH-PENTEST-CHECKLIST.md +116 -0
  137. package/docs/social-media-marketing/README.md +81 -0
  138. package/docs/social-media-marketing/posts-batch-01.md +613 -0
  139. package/docs/social-media-marketing/posts-batch-02.md +528 -0
  140. package/docs/social-media-marketing/whatsapp-messages-batch-01.md +458 -0
  141. package/docs/social-media-marketing/whatsapp-status-batch-01.md +355 -0
  142. package/docs/tracking/finalization-2026-05-16-tracker.json +346 -0
  143. package/docs/tracking/full-audit-tracker.json +121 -0
  144. package/docs/tracking/production-readiness-audit-tracker.json +429 -0
  145. package/ios/Plugin/BackgroundUpdate/BackgroundUpdatePlugin.swift +16 -3
  146. package/ios/Plugin/LiveUpdate/LiveUpdatePlugin.swift +71 -47
  147. package/ios/Plugin/NativeUpdatePlugin.swift +14 -9
  148. package/package.json +29 -29
  149. package/cli/node_modules/.yarn-integrity +0 -16
  150. package/cli/node_modules/commander/LICENSE +0 -22
  151. package/cli/node_modules/commander/Readme.md +0 -1148
  152. package/cli/node_modules/commander/esm.mjs +0 -16
  153. package/cli/node_modules/commander/index.js +0 -26
  154. package/cli/node_modules/commander/lib/argument.js +0 -145
  155. package/cli/node_modules/commander/lib/command.js +0 -2179
  156. package/cli/node_modules/commander/lib/error.js +0 -43
  157. package/cli/node_modules/commander/lib/help.js +0 -462
  158. package/cli/node_modules/commander/lib/option.js +0 -329
  159. package/cli/node_modules/commander/lib/suggestSimilar.js +0 -100
  160. package/cli/node_modules/commander/package-support.json +0 -16
  161. package/cli/node_modules/commander/package.json +0 -80
  162. package/cli/node_modules/commander/typings/esm.d.mts +0 -3
  163. package/cli/node_modules/commander/typings/index.d.ts +0 -884
  164. package/cli/yarn.lock +0 -8
  165. package/dist/esm/__tests__/bundle-manager.test.d.ts +0 -1
  166. package/dist/esm/__tests__/bundle-manager.test.js +0 -151
  167. package/dist/esm/__tests__/bundle-manager.test.js.map +0 -1
  168. package/dist/esm/__tests__/config.test.d.ts +0 -1
  169. package/dist/esm/__tests__/config.test.js +0 -70
  170. package/dist/esm/__tests__/config.test.js.map +0 -1
  171. package/dist/esm/__tests__/delta-processor.test.d.ts +0 -1
  172. package/dist/esm/__tests__/delta-processor.test.js +0 -77
  173. package/dist/esm/__tests__/delta-processor.test.js.map +0 -1
  174. package/dist/esm/__tests__/firestore-schema.test.d.ts +0 -1
  175. package/dist/esm/__tests__/firestore-schema.test.js +0 -74
  176. package/dist/esm/__tests__/firestore-schema.test.js.map +0 -1
  177. package/dist/esm/__tests__/integration.test.d.ts +0 -1
  178. package/dist/esm/__tests__/integration.test.js +0 -78
  179. package/dist/esm/__tests__/integration.test.js.map +0 -1
  180. package/dist/esm/__tests__/manifest-reader.test.d.ts +0 -1
  181. package/dist/esm/__tests__/manifest-reader.test.js +0 -271
  182. package/dist/esm/__tests__/manifest-reader.test.js.map +0 -1
  183. package/dist/esm/__tests__/rollout-checker.test.d.ts +0 -1
  184. package/dist/esm/__tests__/rollout-checker.test.js +0 -210
  185. package/dist/esm/__tests__/rollout-checker.test.js.map +0 -1
  186. package/dist/esm/__tests__/security-enforcement.test.d.ts +0 -1
  187. package/dist/esm/__tests__/security-enforcement.test.js +0 -95
  188. package/dist/esm/__tests__/security-enforcement.test.js.map +0 -1
  189. package/dist/esm/__tests__/security.test.d.ts +0 -1
  190. package/dist/esm/__tests__/security.test.js +0 -54
  191. package/dist/esm/__tests__/security.test.js.map +0 -1
  192. package/dist/esm/__tests__/version-manager.test.d.ts +0 -1
  193. package/dist/esm/__tests__/version-manager.test.js +0 -45
  194. package/dist/esm/__tests__/version-manager.test.js.map +0 -1
  195. package/dist/esm/app-review/app-review-manager.js.map +0 -1
  196. package/dist/esm/app-review/index.js.map +0 -1
  197. package/dist/esm/app-review/platform-review-handler.js.map +0 -1
  198. package/dist/esm/app-review/review-conditions-checker.js.map +0 -1
  199. package/dist/esm/app-review/review-rate-limiter.js.map +0 -1
  200. package/dist/esm/app-review/types.js.map +0 -1
  201. package/dist/esm/app-update/app-update-checker.js.map +0 -1
  202. package/dist/esm/app-update/app-update-installer.js.map +0 -1
  203. package/dist/esm/app-update/app-update-manager.js.map +0 -1
  204. package/dist/esm/app-update/app-update-notifier.js.map +0 -1
  205. package/dist/esm/app-update/index.js.map +0 -1
  206. package/dist/esm/app-update/platform-app-update.js.map +0 -1
  207. package/dist/esm/app-update/types.js.map +0 -1
  208. package/dist/esm/background-update/background-scheduler.js.map +0 -1
  209. package/dist/esm/background-update/index.js.map +0 -1
  210. package/dist/esm/background-update/notification-manager.js.map +0 -1
  211. package/dist/esm/config/support.js.map +0 -1
  212. package/dist/esm/core/analytics.js.map +0 -1
  213. package/dist/esm/core/cache-manager.js.map +0 -1
  214. package/dist/esm/core/config.js.map +0 -1
  215. package/dist/esm/core/errors.js.map +0 -1
  216. package/dist/esm/core/event-emitter.js.map +0 -1
  217. package/dist/esm/core/logger.js.map +0 -1
  218. package/dist/esm/core/performance.js.map +0 -1
  219. package/dist/esm/core/plugin-manager.js.map +0 -1
  220. package/dist/esm/core/security.js.map +0 -1
  221. package/dist/esm/definitions.js.map +0 -1
  222. package/dist/esm/firestore/firestore-client.d.ts +0 -109
  223. package/dist/esm/firestore/firestore-client.js +0 -264
  224. package/dist/esm/firestore/firestore-client.js.map +0 -1
  225. package/dist/esm/firestore/index.d.ts +0 -11
  226. package/dist/esm/firestore/index.js +0 -11
  227. package/dist/esm/firestore/index.js.map +0 -1
  228. package/dist/esm/firestore/manifest-reader.d.ts +0 -87
  229. package/dist/esm/firestore/manifest-reader.js +0 -294
  230. package/dist/esm/firestore/manifest-reader.js.map +0 -1
  231. package/dist/esm/firestore/schema.d.ts +0 -507
  232. package/dist/esm/firestore/schema.js +0 -73
  233. package/dist/esm/firestore/schema.js.map +0 -1
  234. package/dist/esm/index.js.map +0 -1
  235. package/dist/esm/live-update/bundle-manager.js.map +0 -1
  236. package/dist/esm/live-update/certificate-pinning.js.map +0 -1
  237. package/dist/esm/live-update/delta-processor.js.map +0 -1
  238. package/dist/esm/live-update/download-manager.js.map +0 -1
  239. package/dist/esm/live-update/rollout-checker.js.map +0 -1
  240. package/dist/esm/live-update/update-manager.js.map +0 -1
  241. package/dist/esm/live-update/version-manager.js.map +0 -1
  242. package/dist/esm/plugin.js.map +0 -1
  243. package/dist/esm/security/crypto.js.map +0 -1
  244. package/dist/esm/security/validator.js.map +0 -1
  245. package/dist/esm/web.js.map +0 -1
  246. package/dist/plugin.cjs.js.map +0 -1
  247. package/dist/plugin.esm.js.map +0 -1
  248. package/dist/plugin.js.map +0 -1
  249. package/docs/FIREBASE_INTEGRATION_TRACKER.md +0 -321
  250. package/docs/FIREBASE_QUERIES_AND_INDEXES_AUDIT.md +0 -221
  251. package/docs/examples/firebase-backend-example.md +0 -27
  252. package/docs/features/laravel-nova-backend/credentials.ignore.md +0 -34
  253. package/docs/guides/no-cost-backend-implementation-plan.md +0 -77
  254. package/docs/guides/no-cost-firestore-google-drive-backend.md +0 -60
  255. package/docs/project-profiles/native-update-capacitor-update-platform-project-profile-last-updated-2026-03-16.md +0 -454
  256. package/docs/project-profiles/native-update-capacitor-update-platform-project-profile-last-updated-2026-03-24.md +0 -66
  257. package/docs/project-profiles/native-update-capacitor-update-platform-project-profile-last-updated-2026-03-25.md +0 -67
  258. /package/docs/{MARKETING_WEBSITE_PLAN.md → archive/MARKETING_WEBSITE_PLAN.md} +0 -0
@@ -2,14 +2,16 @@
2
2
 
3
3
  ## Metadata
4
4
 
5
- - **Reference Date:** 2026-03-16
6
- - **Last Updated:** 2026-03-16
5
+ - **Reference Date:** 2026-05-18
6
+ - **Last Updated:** 2026-05-18
7
7
  - **Goal:** Enumerate the current `/docs` folder so AI tools know what documentation already exists before planning, writing, or duplicating work
8
8
 
9
9
  ## Coverage Note
10
10
 
11
11
  This file inventories the docs currently present in `/docs`. It is a high-context index, not a replacement for reading the source documents when exact wording or implementation detail is needed.
12
12
 
13
+ There is also a separate **public Docusaurus site** at the sibling repo `native-update-docs/` (deployed to Firebase Hosting). That site mirrors the curated user-facing subset (Tutorials, How-to, Reference, Explanation — Diátaxis), and is not duplicated here.
14
+
13
15
  ## Root-Level Docs
14
16
 
15
17
  | Path | Purpose / Notes |
@@ -21,26 +23,35 @@ This file inventories the docs currently present in `/docs`. It is a high-contex
21
23
  | `docs/COMPREHENSIVE_AUDIT_REPORT.md` | Broad audit/reporting artifact |
22
24
  | `docs/EXAMPLE_APPS_SIMPLIFICATION_PLAN.md` | Plan for simplifying example apps |
23
25
  | `docs/EXAMPLE_APPS_SIMPLIFICATION_TRACKER.md` | Tracking file for example-app simplification |
24
- | `docs/FIREBASE_INTEGRATION_TRACKER.md` | Firebase integration tracking/status notes |
25
- | `docs/FIREBASE_QUERIES_AND_INDEXES_AUDIT.md` | Firestore query/index audit reference |
26
26
  | `docs/KNOWN_LIMITATIONS.md` | Explicit limitations and caveats |
27
27
  | `docs/LIVE_UPDATES_GUIDE.md` | OTA/live update guidance |
28
- | `docs/MARKETING_WEBSITE_PLAN.md` | Marketing website planning document |
29
- | `docs/MARKETING_WEBSITE_TRACKER.md` | Marketing website progress tracker |
30
- | `docs/MIGRATION.md` | Migration information |
28
+ | `docs/archive/MARKETING_WEBSITE_PLAN.md` | Marketing website planning document — SUPERSEDED, archived 2026-05-18 (also removed from public sitemap + website/public/package-docs/ mirror) |
29
+ | `docs/MARKETING_WEBSITE_TRACKER.md` | Marketing website progress tracker (SUPERSEDED — kept in `docs/` because the 2026-05-11 audit-batch entry in CLAUDE.md still references it; the SUPERSEDED notice in the file body explains why) |
30
+ | `docs/MIGRATION.md` | Migration information (includes v2 → v3.0.0 breaking-change notes for the Firestore removal) |
31
31
  | `docs/NATIVE_UPDATES_GUIDE.md` | Native app update guidance |
32
+ | `docs/PERFORMANCE.md` | Real-world OTA framing + microbenchmark targets + hot-paths map |
32
33
  | `docs/PROJECT_COMPLETION_TRACKER.md` | Completion/progress tracker |
33
34
  | `docs/QUICK_START.md` | Fast-start implementation guidance |
35
+ | `docs/README.md` | Top-level docs overview |
34
36
  | `docs/REMAINING_FEATURES.md` | Remaining or planned feature notes |
35
37
  | `docs/ROADMAP.md` | Roadmap/status file |
36
38
  | `docs/SECURITY.md` | High-level security documentation |
39
+ | `docs/SECURITY-IF-REPO-PUBLIC.md` | Preventive runbook for the day this repo goes public (secret-rotation table + history-scrub commands) |
37
40
  | `docs/TESTING_REQUIREMENTS.md` | Testing expectations and requirements |
41
+ | `docs/analytics-tracking.md` | Analytics tracking conventions |
38
42
  | `docs/background-updates.md` | Background update feature guide |
43
+ | `docs/capacitor-official-plugins.md` | Official Capacitor plugin status registry |
44
+ | `docs/capawesome-plugins.md` | Capawesome plugin status registry |
39
45
  | `docs/cli-reference.md` | CLI usage reference |
40
- | `docs/play-console-rejection-rules.json` | Policy/rules reference JSON |
41
- | `docs/production-readiness.md` | Production readiness checklist/context |
46
+ | `docs/error-handling-tracking.md` | Error handling + tracking registry |
47
+ | `docs/package-audit.md` | Dependency audit notes |
48
+ | `docs/production-readiness.md` | Production readiness checklist/context (refreshed 2026-05-18) |
49
+ | `docs/rules-tracker.md` | Generic Project Rules application tracker |
50
+ | `docs/seo-aeo-rules.json` | SEO/AEO rules JSON |
42
51
  | `docs/server-requirements.md` | Backend/server requirement notes |
43
52
 
53
+ Note: `docs/play-console-rejection-rules.json` is intentionally NOT kept here — the canonical file lives at `~/.claude/play-console-rejection-rules.json`. Old local copies were removed per the IRON-SOLID rule in CLAUDE.md.
54
+
44
55
  ## API Docs
45
56
 
46
57
  | Path | Purpose / Notes |
@@ -68,6 +79,10 @@ This file inventories the docs currently present in `/docs`. It is a high-contex
68
79
  | `docs/features/app-reviews.md` | In-app review feature details |
69
80
  | `docs/features/app-updates.md` | Native app update feature details |
70
81
  | `docs/features/live-updates.md` | OTA/live update feature details |
82
+ | `docs/features/laravel-nova-backend/ASSESSMENT-SUMMARY.md` | Laravel + Nova backend assessment summary |
83
+ | `docs/features/laravel-nova-backend/IMPLEMENTATION-PLAN.md` | Laravel + Nova implementation plan |
84
+ | `docs/features/laravel-nova-backend/progress-tracker.json` | Laravel + Nova progress tracker |
85
+ | `docs/features/laravel-nova-backend/credentials.ignore.md` | gitignored credentials reference (not committed) |
71
86
 
72
87
  ## Guide Docs
73
88
 
@@ -81,12 +96,12 @@ This file inventories the docs currently present in `/docs`. It is a high-contex
81
96
  | `docs/guides/end-to-end-workflow.md` | Full workflow from setup to production |
82
97
  | `docs/guides/key-management.md` | Key generation and management |
83
98
  | `docs/guides/migration-from-codepush.md` | CodePush migration guide |
84
- | `docs/guides/no-cost-backend-implementation-plan.md` | Planning file for no-cost backend path |
85
- | `docs/guides/no-cost-firestore-google-drive-backend.md` | Key recommended backend architecture guide |
86
99
  | `docs/guides/security-best-practices.md` | Secure update implementation guidance |
87
100
  | `docs/guides/testing-guide.md` | Testing procedures and expectations |
88
101
  | `docs/guides/troubleshooting.md` | Troubleshooting and issue resolution guide |
89
102
 
103
+ Note: `no-cost-firestore-google-drive-backend.md` and `no-cost-backend-implementation-plan.md` were removed on 2026-05-18 — the no-cost Firestore + Drive architecture was deliberately abandoned in v3.0.0 (Laravel + MySQL is the only backend now).
104
+
90
105
  ## Examples Docs
91
106
 
92
107
  | Path | Purpose / Notes |
@@ -94,10 +109,11 @@ This file inventories the docs currently present in `/docs`. It is a high-contex
94
109
  | `docs/examples/advanced-scenarios.md` | More advanced use cases and patterns |
95
110
  | `docs/examples/android-manifest-example.xml` | Android manifest example |
96
111
  | `docs/examples/basic-usage.md` | Basic implementation examples |
97
- | `docs/examples/firebase-backend-example.md` | Firebase backend example |
98
112
  | `docs/examples/node-express-backend-example.md` | Node/Express backend example |
99
113
  | `docs/examples/react-capacitor-example.md` | React + Capacitor frontend example |
100
114
 
115
+ Note: `firebase-backend-example.md` was removed during post-closure cleanup (commit `3a8dda6`).
116
+
101
117
  ## Plans
102
118
 
103
119
  | Path | Purpose / Notes |
@@ -106,13 +122,15 @@ This file inventories the docs currently present in `/docs`. It is a high-contex
106
122
  | `docs/plans/TASK_1_ANDROID_EXAMPLE_APP.md` | Android example-app planning task |
107
123
  | `docs/plans/TASK_2_API_ENDPOINTS.md` | API endpoint planning |
108
124
  | `docs/plans/TASK_2_DASHBOARD_UI_UX.md` | Dashboard UX planning |
109
- | `docs/plans/TASK_2_DATABASE_SCHEMA.md` | Database schema planning |
125
+ | `docs/plans/TASK_2_DATABASE_SCHEMA.md` | Database schema planning (historical — may pre-date Laravel + MySQL adoption) |
110
126
  | `docs/plans/TASK_2_GOOGLE_DRIVE_INTEGRATION.md` | Drive integration planning |
111
127
  | `docs/plans/TASK_2_SAAS_ARCHITECTURE.md` | SaaS architecture planning |
112
- | `docs/plans/TASK_2_USER_AUTHENTICATION.md` | Auth planning |
128
+ | `docs/plans/TASK_2_USER_AUTHENTICATION.md` | Auth planning (historical — predates the Socialite + Sanctum swap) |
113
129
 
114
130
  ## Reports
115
131
 
132
+ Historical status, audit, and verification reports. Useful as timeline artifacts; not authoritative for current state.
133
+
116
134
  | Path | Purpose / Notes |
117
135
  |------|------------------|
118
136
  | `docs/reports/AUDIT_SUMMARY_2025-12-26.md` | Historical audit summary |
@@ -139,6 +157,31 @@ This file inventories the docs currently present in `/docs`. It is a high-contex
139
157
  | Path | Purpose / Notes |
140
158
  |------|------------------|
141
159
  | `docs/security/certificate-pinning.md` | Certificate pinning details |
160
+ | `docs/security/PRE-LAUNCH-PENTEST-CHECKLIST.md` | DIY pentest checklist (dep hygiene, authN/authZ, CORS/CSRF, bundle integrity, file safety, data handling, operational safety, mobile platform, 9 specific attack paths) |
161
+
162
+ ## Deployment Subfolder
163
+
164
+ | Path | Purpose / Notes |
165
+ |------|------------------|
166
+ | `docs/deployment/PRODUCTION-DEPLOY-CHECKLIST.md` | Production deploy runbook |
167
+ | `docs/deployment/HOSTINGER_DEPLOY.md` | Hostinger-specific deploy notes |
168
+
169
+ ## Docs Site Subfolder
170
+
171
+ | Path | Purpose / Notes |
172
+ |------|------------------|
173
+ | `docs/docs-site/scope.md` | Public Docusaurus site scope |
174
+ | `docs/docs-site/plan.md` | Public Docusaurus site plan (10-batch flow) |
175
+ | `docs/docs-site/tracker.json` | Public Docusaurus site progress tracker (status: COMPLETE; 7-day cooldown) |
176
+
177
+ ## Project Audit Subfolder
178
+
179
+ | Path | Purpose / Notes |
180
+ |------|------------------|
181
+ | `docs/project-audit/PRODUCTION-READINESS-AUDIT-2026-05-08.md` | Production-readiness audit findings (39 items + 5 roadmap) |
182
+ | `docs/project-audit/BATCH-PLAN.md` | 10-batch production-readiness fix plan |
183
+ | `docs/project-audit/MARKETING-WEBSITE-FINDINGS-2026-05-11.md` | Marketing-website specific findings |
184
+ | `docs/project-audit/2026-05-16/` | Finalization audit for Play Store publishing (10 batches, all complete) |
142
185
 
143
186
  ## Tracking Subfolder
144
187
 
@@ -147,12 +190,26 @@ This file inventories the docs currently present in `/docs`. It is a high-contex
147
190
  | `docs/tracking/IMPLEMENTATION_TRACKER.md` | Implementation tracking |
148
191
  | `docs/tracking/capacitor-rollout-note-2026-03-01.md` | Rollout note / dated tracking artifact |
149
192
  | `docs/tracking/completion-tracker-2026-02-24.json` | JSON completion tracker |
193
+ | `docs/tracking/full-audit-tracker.json` | Retired full-audit tracker (superseded by production-readiness tracker) |
194
+ | `docs/tracking/production-readiness-audit-tracker.json` | Authoritative production-readiness audit tracker |
195
+ | `docs/tracking/finalization-2026-05-16-tracker.json` | Finalization-audit tracker (status: COMPLETE) |
196
+ | `docs/tracking/seo-checklist-tracker.json` | SEO checklist tracker |
197
+
198
+ ## Social Media Marketing Subfolder
199
+
200
+ | Path | Purpose / Notes |
201
+ |------|------------------|
202
+ | `docs/social-media-marketing/README.md` | Per-file/batch policy + run history + char-limit + content-honesty rules |
203
+ | `docs/social-media-marketing/posts-batch-01.md` | 10 LinkedIn/Facebook posts (2700–2900 chars each) |
204
+ | `docs/social-media-marketing/posts-batch-02.md` | 10 LinkedIn/Facebook posts |
205
+ | `docs/social-media-marketing/whatsapp-messages-batch-01.md` | 30 WhatsApp messages (400–600 chars) |
206
+ | `docs/social-media-marketing/whatsapp-status-batch-01.md` | 30 WhatsApp status messages (240–400 chars) |
150
207
 
151
208
  ## Existing Project Profile and AI-Oriented Docs
152
209
 
153
210
  | Path | Purpose / Notes |
154
211
  |------|------------------|
155
- | `docs/project-profiles/native-update-capacitor-update-platform-project-profile-last-updated-2026-03-16.md` | Portfolio/resume/social-facing project profile |
212
+ | `docs/project-profiles/native-update-capacitor-update-platform-project-profile-last-updated-2026-05-19.md` | Current dated project profile (refreshed 2026-05-19 after v3.0.0 + Sanctum swap + finalization audit + Phase A purge); older 2026-03-* dated profiles deleted in the same commit per the weekly-refresh-with-history-cap rule |
156
213
 
157
214
  ## How AI Should Use The Docs Corpus
158
215
 
@@ -162,15 +219,16 @@ This file inventories the docs currently present in `/docs`. It is a high-contex
162
219
 
163
220
  ### For Product Positioning
164
221
 
165
- - Use `docs/README.md`, feature docs, dashboard guides, website pages, and the project profile
222
+ - Use `docs/README.md`, feature docs, dashboard guides, website pages, and the most recent project profile
166
223
 
167
224
  ### For Architecture or Backend Planning
168
225
 
169
- - Use no-cost backend guides, schema planning docs, API endpoint plans, Firestore audit docs, and website config pages
226
+ - Use `docs/features/laravel-nova-backend/*`, `docs/api/*`, `docs/deployment/*`, and the live Laravel codebase at `backend/`
227
+ - DO NOT use the historical `docs/plans/TASK_2_*` files as architectural truth — they predate the Laravel adoption
170
228
 
171
229
  ### For Testing
172
230
 
173
- - Use `docs/TESTING_REQUIREMENTS.md`, testing guide, verification reports, and test files in source
231
+ - Use `docs/TESTING_REQUIREMENTS.md`, `docs/guides/testing-guide.md`, verification reports, and test files in source
174
232
 
175
233
  ### For Historical Context
176
234
 
@@ -178,7 +236,7 @@ This file inventories the docs currently present in `/docs`. It is a high-contex
178
236
 
179
237
  ### For Legal / Compliance / Security
180
238
 
181
- - Use `docs/SECURITY.md`, security-best-practices guide, certificate pinning doc, website legal pages, and production-readiness docs
239
+ - Use `docs/SECURITY.md`, `docs/SECURITY-IF-REPO-PUBLIC.md`, `docs/security/*`, `docs/guides/security-best-practices.md`, website legal pages, and `docs/production-readiness.md`
182
240
 
183
241
  ## Important Interpretation Rule
184
242
 
@@ -190,4 +248,9 @@ The `/docs` folder mixes:
190
248
  - historical reports
191
249
  - status snapshots
192
250
 
193
- AI tools should not treat all documents as equally current. For current technical truth, validate against source code and the most recent files.
251
+ AI tools should not treat all documents as equally current. For current technical truth, validate against:
252
+
253
+ 1. Source code (`src/`, `website/src/`, `backend/`)
254
+ 2. The newest dated documents (look at file dates and dated audit folders)
255
+ 3. This knowledge base (refreshed 2026-05-18)
256
+ 4. The root `CLAUDE.md` Audit Record table
@@ -2,8 +2,8 @@
2
2
 
3
3
  ## Metadata
4
4
 
5
- - **Reference Date:** 2026-03-16
6
- - **Last Updated:** 2026-03-16
5
+ - **Reference Date:** 2026-05-18
6
+ - **Last Updated:** 2026-05-18
7
7
 
8
8
  ## Operations Context
9
9
 
@@ -11,8 +11,9 @@
11
11
 
12
12
  - Plugin code ships via npm as `native-update`
13
13
  - Dashboard supports browser-driven ZIP upload workflows
14
- - Google Drive stores release bundles and manifest JSON files in the recommended no-cost path
15
- - Firestore stores manifest metadata, rollout settings, app records, and analytics batches
14
+ - Google Drive stores release bundles (server-side OAuth, encrypted tokens on the User row)
15
+ - Laravel + MySQL stores user accounts, apps, API keys, signing keys, builds, rollouts, subscriptions, and analytics events
16
+ - Nova admin at `/nova` provides full CRUD + custom actions over the same MySQL data
16
17
 
17
18
  ### Channel Model
18
19
 
@@ -27,46 +28,53 @@ Observed product messaging and docs position these as the primary update channel
27
28
  - percentage-based rollout
28
29
  - pause/resume support
29
30
  - gradual or scheduled rollout concepts in schema/docs
30
- - rollout configuration stored in manifest docs
31
+ - rollout configuration stored on the Build row (`rollout_enabled`, `rollout_percentage`, `rollout_start_time`, `rollout_end_time`, `target_segments`)
32
+
33
+ ### Deployment Model
34
+
35
+ - **Backend (Laravel):** deployed to any PHP 8.2+ host. Runbook in `docs/deployment/PRODUCTION-DEPLOY-CHECKLIST.md`. Hostinger-specific notes in `docs/deployment/HOSTINGER_DEPLOY.md`. Queue worker required for async jobs (systemd unit template included).
36
+ - **Website (React SPA):** deployed to Firebase Hosting via the `website/firebase.json` config. Firebase Hosting is the ONLY Firebase usage; there is no Firestore, no Firebase Auth, no Firebase Functions in the live architecture.
37
+ - **Public docs site (Docusaurus):** sibling repo `native-update-docs/`, also Firebase Hosting (same hosting-only pattern).
38
+ - **Mobile dashboard wrapper:** website Capacitor-wrapped for Play Store publishing (see `docs/project-audit/2026-05-16/` for the publishing flow).
31
39
 
32
40
  ## Testing Context
33
41
 
34
42
  ### Test Layers Present In Repo
35
43
 
36
- - TypeScript unit and integration tests under `src/__tests__/`
44
+ - Backend Pest/PHPUnit tests under `backend/tests/` (~136 passing including OAuth + Sanctum + Spatie + UpdateBuildRequest FormRequest + PayPal webhook + BundleUpload + UserLicense)
37
45
  - iOS XCTest files under `ios/Tests/NativeUpdateTests/`
38
46
  - Android JUnit/Kotlin tests under `android/src/test/java/com/aoneahsan/nativeupdate/`
39
- - E2E tests under `e2e/specs/`
40
-
41
- ### E2E Areas Mentioned
42
-
43
- - OTA update lifecycle
44
- - error handling
45
- - download progress
46
- - channel switching
47
47
 
48
48
  ### Testing Documentation Present
49
49
 
50
50
  - `docs/TESTING_REQUIREMENTS.md`
51
51
  - `docs/guides/testing-guide.md`
52
+ - `docs/PERFORMANCE.md` (microbenchmark targets + regression workflow)
52
53
  - verification and audit reports under `docs/reports/`
53
54
 
54
55
  ## Security Context
55
56
 
56
57
  ### Security Themes Repeated Across Repo
57
58
 
58
- - checksum validation
59
- - signing and verification
59
+ - SHA-256 checksum validation
60
+ - RSA-SHA256 signing and verification
60
61
  - HTTPS enforcement
61
62
  - certificate pinning support
62
63
  - manifest/file integrity
63
64
  - secure update delivery
65
+ - fail-closed on integrity violation; fail-open on availability (documented philosophy in the Docusaurus site `error-handling-philosophy.md`)
66
+ - private keys never leave the Laravel host
67
+ - Drive OAuth tokens encrypted at rest (Laravel encrypter)
68
+ - Sanctum tokens hashed at rest; plain-text shown once on issuance
69
+ - ProGuard/R8 + signing config on Android release builds
64
70
 
65
71
  ### Security Docs Present
66
72
 
67
73
  - `docs/SECURITY.md`
74
+ - `docs/SECURITY-IF-REPO-PUBLIC.md` (preventive runbook for the day the repo flips public — secret-rotation table + history-scrub commands)
68
75
  - `docs/BUNDLE_SIGNING.md`
69
76
  - `docs/security/certificate-pinning.md`
77
+ - `docs/security/PRE-LAUNCH-PENTEST-CHECKLIST.md` (10-section DIY pentest checklist)
70
78
  - `docs/guides/security-best-practices.md`
71
79
  - SecurityPage on website
72
80
 
@@ -81,34 +89,56 @@ Observed product messaging and docs position these as the primary update channel
81
89
  - `/security`
82
90
  - `/contact`
83
91
 
84
- These pages are explicitly called out in `website/CLAUDE.md` as important and app-store-relevant.
92
+ These pages are explicitly called out in `website/CLAUDE.md` as important and app-store-relevant. They were updated in 2026-05-16 Batch 7 to reflect the Sanctum + Laravel stack (Firebase Auth references removed).
85
93
 
86
94
  ### Legal Messaging Themes In Website
87
95
 
88
96
  - privacy handling
89
- - no third-party analytics tracking emphasis in some legal copy
90
- - account deletion path
97
+ - account deletion path (revokes Sanctum tokens, soft-deletes User row, clears encrypted Drive tokens, cascades to apps/builds)
91
98
  - support/contact identity
92
- - security positioning
99
+ - security positioning (no fabricated SOC/ISO/SLA claims — removed in 2026-05-16 Batch 7)
93
100
  - ownership/control messaging around Google Drive files
94
101
 
102
+ ### Play Store Compliance Notes
103
+
104
+ - Merged AndroidManifest at `android/app/build/intermediates/merged_manifests/*/AndroidManifest.xml` MUST be inspected before every AAB upload — Capacitor/Cordova plugins auto-inject permissions
105
+ - Sensitive permissions (CAMERA, RECORD_AUDIO, ACCESS_FINE_LOCATION, READ_CONTACTS, etc.) require: matching privacy-policy section + Data Safety row + runtime-prompt UX + non-permission fallback
106
+ - Branded launcher icons (15 PNGs), splash (11 PNGs), 3 Play Store graphics rendered from SVG via rsvg-convert in 2026-05-16 Batch 9
107
+ - Play Store rejection rules: read from `~/.claude/play-console-rejection-rules.json` (single global source — never copy into project)
108
+
95
109
  ## Content and SEO Context
96
110
 
97
111
  ### Built-In Public Content Surfaces
98
112
 
99
113
  - Home page
100
- - Features page
101
- - About page
114
+ - Features page (1492+ words, FAQ schema, HowTo schema, SoftwareApplication schema)
115
+ - Pricing page (1457+ words, Product schema with real $0/$29/$199 Offers)
116
+ - About page (1913+ words, Person + FAQPage schema)
102
117
  - Docs page
103
118
  - Examples page
104
119
  - Feed page
105
120
  - Sitemap page
106
121
  - Contact page
107
122
 
123
+ ### Built-In Discovery Files
124
+
125
+ - `robots.txt` (30+ AI bots allow-listed)
126
+ - `sitemap.xml` (auto-generated, every public URL with `<lastmod>`)
127
+ - `sitemap-index.json`
128
+ - `feed.xml` (RSS 2.0 with runtime `lastBuildDate`)
129
+ - `llms.txt` (Jeremy Howard spec)
130
+ - `llms-full.txt` (long-form AI profile)
131
+ - `ai.txt` (training/citation policy)
132
+ - `humans.txt`
133
+ - `.well-known/security.txt` (RFC 9116)
134
+ - `pricing.md` (machine-readable pricing for AI buying agents)
135
+
108
136
  ### Social/Portfolio Context Already Added
109
137
 
110
138
  - Project profile exists under `docs/project-profiles/`
111
- - this knowledge base should support future content generation with technical accuracy
139
+ - Portfolio info file at root: `NATIVE-UPDATE_portfolio-info_YYYY-MM-DD.md` (weekly refresh)
140
+ - Social-media marketing content under `docs/social-media-marketing/` (posts, WhatsApp messages, status)
141
+ - This knowledge base supports future content generation with technical accuracy
112
142
 
113
143
  ### Best Content Angles
114
144
 
@@ -116,9 +146,9 @@ These pages are explicitly called out in `website/CLAUDE.md` as important and ap
116
146
  - OTA update engineering
117
147
  - secure mobile release workflows
118
148
  - dashboard and release-ops UX
119
- - no-cost backend architecture with Firestore + Google Drive
120
- - cross-platform engineering across TypeScript, Swift, Kotlin, and React
121
- - AI-ready docs and developer enablement
149
+ - Laravel + Nova self-hostable backend (CodePush alternative without vendor lock-in)
150
+ - cross-platform engineering across TypeScript, Swift, Kotlin, PHP, and React
151
+ - AI-ready docs and developer enablement (llms.txt, JSON-LD, machine-readable pricing)
122
152
 
123
153
  ## Planning and Decision-Making Rules For AI
124
154
 
@@ -126,15 +156,17 @@ These pages are explicitly called out in `website/CLAUDE.md` as important and ap
126
156
  - Prefer current source code and route definitions over older historical reports.
127
157
  - Treat roadmap items as future-facing unless code confirms they are already shipped.
128
158
  - When recommending changes for the website, consider sitemap/feed/legal page maintenance.
129
- - When recommending backend changes for the website, preserve the no-cost Firestore + Google Drive path unless a stronger requirement forces a different architecture.
159
+ - When recommending backend changes, propose them against the Laravel codebase at `backend/`. The no-cost Firestore + Drive architecture was abandoned in v3.0.0 do not resurrect it.
160
+ - When recommending storage changes, prefer Google Drive (already wired with server-side OAuth) or FilesHub (already wired for misc user assets). Don't propose S3 or Firebase Storage.
130
161
 
131
162
  ## Known Constraints and Notes
132
163
 
133
164
  - The repo contains both current and historical status documents.
134
165
  - Some legacy docs describe earlier incomplete states.
135
- - Route guards reference `/verify-email`, but that route is not visible in the current router file; this is a project-context note worth re-checking before auth-related changes.
166
+ - Admin access is determined through `spatie/laravel-permission` role assignment, not a `users.is_admin` boolean.
167
+ - `super-admin` role bypasses every `can:` gate via `Gate::before`.
136
168
  - The dashboard is optimized for authenticated operators, not end users.
137
- - Admin access is currently determined through Firestore `isAdmin` state.
169
+ - The website `DocsPage.tsx` was refactored 2026-05-19 from 1,406 lines into a 166-line shell + 2 helpers (`docs-page/components/`) + 13 per-section components (`docs-page/sections/`). All files now satisfy the workspace 500-line max; largest sub-file is `ExamplesSection.tsx` at 157 lines.
138
170
 
139
171
  ## AI Usage Recommendations By Category
140
172
 
@@ -142,25 +174,30 @@ These pages are explicitly called out in `website/CLAUDE.md` as important and ap
142
174
 
143
175
  - Use this knowledge base first
144
176
  - then inspect source modules and exact docs files tied to the feature
177
+ - For backend work: read `backend/app/Http/Controllers/Dashboard/<thing>` + its FormRequest + its test before proposing changes
145
178
 
146
179
  ### For Testing
147
180
 
148
181
  - map the feature to its page/module/native component
149
182
  - use testing docs plus test files to derive coverage strategy
183
+ - backend test pattern: `backend/tests/Feature/<Thing>Test.php` (Pest); run via `php artisan test`
150
184
 
151
185
  ### For Legal or Policy Work
152
186
 
153
187
  - review legal pages and security/privacy docs together
154
188
  - do not rely only on marketing copy
189
+ - when scoping data-handling claims, validate against the actual Laravel models + migrations
155
190
 
156
191
  ### For Marketing or Social Content
157
192
 
158
193
  - use product profile + this knowledge base + current website messaging
159
194
  - avoid unsupported performance or adoption claims
195
+ - per `docs/social-media-marketing/README.md`: max 7 hashtags per post; honesty rules apply; only describe features that exist in the live codebase
160
196
 
161
197
  ### For Planning
162
198
 
163
199
  - check roadmap, remaining-features docs, plans, and code reality together
200
+ - per-feature trackers live in `docs/features/<feature-slug>/00-tracker.json` (resumable JSON schema)
164
201
 
165
202
  ## Maintenance Rule For This Knowledge Base
166
203
 
@@ -168,3 +205,4 @@ These pages are explicitly called out in `website/CLAUDE.md` as important and ap
168
205
  - Update sooner when routes, forms, data models, docs, modules, legal pages, or backend assumptions change
169
206
  - Keep `Reference Date` and `Last Updated` current in each file
170
207
  - Keep this folder aligned with actual repo state, not just historical docs
208
+ - When the Laravel schema changes (new migration), update `04-data-models-integrations.md` in the same task
@@ -5,8 +5,8 @@
5
5
  - **Project:** Native Update
6
6
  - **Knowledge Base Purpose:** High-context reference set for AI tools, planning, development, QA, legal review, content generation, and portfolio/social reuse
7
7
  - **Coverage Goal:** Provide a practical, current map of the product, codebase, docs corpus, routes, forms, users, modules, integrations, and operating assumptions
8
- - **Reference Date:** 2026-03-16
9
- - **Last Updated:** 2026-03-16
8
+ - **Reference Date:** 2026-05-18
9
+ - **Last Updated:** 2026-05-18
10
10
  - **Update Cadence:** Every 2 weeks minimum while the project is active, plus any time major product or docs changes land
11
11
  - **History Policy:** Keep update history in this file and keep only the latest 10 entries
12
12
 
@@ -27,28 +27,29 @@ This folder is intentionally different from the public docs. Public docs explain
27
27
 
28
28
  ## File Map
29
29
 
30
- - `01-system-overview.md`
30
+ - `01-system-overview.md`
31
31
  Product scope, capabilities, platform coverage, user types, URLs, and decision context.
32
32
 
33
- - `02-routes-pages-forms-users.md`
33
+ - `02-routes-pages-forms-users.md`
34
34
  Website routes, dashboard/admin routes, page purposes, major interactions, forms, and access rules.
35
35
 
36
- - `03-tech-stack-modules-services.md`
36
+ - `03-tech-stack-modules-services.md`
37
37
  Repo architecture, package structure, frontend services, stores, plugin modules, CLI commands, native modules, and backend components.
38
38
 
39
- - `04-data-models-integrations.md`
40
- Firestore schema, document purposes, authentication model, Google Drive flow, manifest publishing flow, and system boundaries.
39
+ - `04-data-models-integrations.md`
40
+ MySQL schema, model purposes, authentication model (Sanctum + Spatie RBAC), Google Drive flow, manifest publishing flow, and system boundaries.
41
41
 
42
- - `05-docs-corpus-inventory.md`
42
+ - `05-docs-corpus-inventory.md`
43
43
  Full inventory of the current `/docs` folder, grouped and described so AI can understand what knowledge already exists.
44
44
 
45
- - `06-operations-testing-legal-content.md`
45
+ - `06-operations-testing-legal-content.md`
46
46
  Testing posture, production/release considerations, legal pages, SEO/content context, and known constraints for planning or messaging.
47
47
 
48
48
  ## Primary Project URLs
49
49
 
50
50
  - Marketing website: `https://nativeupdate.aoneahsan.com`
51
51
  - Docs entry: `https://nativeupdate.aoneahsan.com/docs`
52
+ - Public docs site (Docusaurus): `https://nativeupdate-docs.aoneahsan.com`
52
53
  - Contact page: `https://nativeupdate.aoneahsan.com/contact`
53
54
  - NPM package page: `https://www.npmjs.com/package/native-update`
54
55
 
@@ -62,10 +63,21 @@ Native Update is an open-source Capacitor update platform. It combines:
62
63
  - background update checks
63
64
  - release manifests and rollout control
64
65
  - security validation and signing support
65
- - a web dashboard for app/build management
66
- - example backends and example apps
66
+ - a Laravel 11 + Nova 5 web dashboard for app/build management
67
+ - example backends (Node.js + Express) and example apps (React + Capacitor)
67
68
  - CLI tooling for release workflows
68
69
 
70
+ ## Backend Architecture (v3.0.0+)
71
+
72
+ The hosted SaaS and self-host paths both run the same Laravel backend at `backend/`. There is no Firestore branch. The plugin SDK no longer ships any Firestore code.
73
+
74
+ - Identity: Google OAuth via `laravel/socialite` → Sanctum personal access tokens
75
+ - RBAC: `spatie/laravel-permission` with `sanctum` guard; roles `super-admin`, `admin`, `user`
76
+ - Persistence: MySQL (Laravel migrations + Eloquent)
77
+ - Admin UI: Laravel Nova 5
78
+ - Storage: Google Drive (server-side OAuth, encrypted tokens) + FilesHub for misc user assets
79
+ - Mobile API key plane: per-app API keys via `ValidateApiKey` middleware (separate from Sanctum)
80
+
69
81
  ## Recommended Use Of This Folder
70
82
 
71
83
  - Use this folder as the first-stop AI context before generating plans, code proposals, QA checklists, legal summaries, portfolio content, SEO drafts, social content, or roadmap suggestions.
@@ -75,10 +87,10 @@ Native Update is an open-source Capacitor update platform. It combines:
75
87
  ## Update Checklist
76
88
 
77
89
  - Re-check all routes in `website/src/router.tsx`
78
- - Re-check user/auth/admin assumptions in auth context and route guards
90
+ - Re-check user/auth/admin assumptions in `backend/app/Http/Controllers/Auth/` + the spatie permission seeder
79
91
  - Re-check forms and fields on dashboard pages
80
- - Re-check package versions and tech stack
81
- - Re-check Firestore types and backend assumptions
92
+ - Re-check package versions and tech stack across root, `website/`, `backend/`, `cli/`
93
+ - Re-check MySQL schema in `backend/database/migrations/`
82
94
  - Re-check `/docs` inventory for added/removed files
83
95
  - Re-check any new `CLAUDE.md` files in nested subprojects
84
96
  - Update `Reference Date`, `Last Updated`, and `Update History`
@@ -87,4 +99,5 @@ Native Update is an open-source Capacitor update platform. It combines:
87
99
 
88
100
  | Date | Summary |
89
101
  |------|---------|
102
+ | 2026-05-18 | Full regeneration after v3.0.0 (Firestore removed) + 2026-05-11 auth swap (Firebase Auth → Socialite + Sanctum + Spatie RBAC). Removed all Firebase/Firestore references; rewrote tech-stack, data-model, routes, and operations files against the live Laravel + MySQL + Nova architecture. |
90
103
  | 2026-03-16 | Initial AI knowledge-base folder created with project-wide coverage across product, routes, forms, modules, data models, docs corpus, and operations context. |
@@ -0,0 +1,81 @@
1
+ # Native Update - Capacitor Update Platform Project Profile
2
+
3
+ ## Document Metadata
4
+
5
+ - **Project Name:** Native Update
6
+ - **Project Type:** Open-source Capacitor plugin + Laravel-backed update management platform
7
+ - **Primary Domain:** Mobile app infrastructure / developer tooling / OTA delivery
8
+ - **Owner / Creator:** Ahsan Mahmood
9
+ - **Primary Contact:** aoneahsan@gmail.com
10
+ - **Package Name:** `native-update`
11
+ - **Current Package Version Reference:** `3.0.1`
12
+ - **License:** MIT
13
+ - **Primary Website:** `https://nativeupdate.aoneahsan.com`
14
+ - **Public Docs Site:** `https://nativeupdate-docs.aoneahsan.com` (Docusaurus, sibling repo `native-update-docs`)
15
+ - **Reference Date:** 2026-05-19
16
+ - **Last Updated:** 2026-05-19
17
+ - **Filename Rule:** Always keep `last-updated-YYYY-MM-DD` in the filename
18
+ - **Status Reference:** This profile reflects the repository state visible on 2026-05-19 from package metadata, source layout, docs, tests, dashboard docs, example apps, public Docusaurus docs site, and the 2026-05-16 finalization-audit closure.
19
+
20
+ ## Verification Snapshot
21
+
22
+ - **Tests (root TypeScript):** `yarn test:run` — **62/62 passing** (Vitest)
23
+ - **Tests (backend Laravel):** `php artisan test` — **136/136 passing** (Pest/PHPUnit)
24
+ - **Build:** `yarn build` exit 0 (root plugin Rollup + website Vite + Docusaurus docs site); `yarn lint` exit 0 across root + website
25
+ - **Capacitor sync:** `npx cap sync android` clean; gradle config parses
26
+ - **Architecture:** v3.0.0 (2026-05-04) removed Firestore; Laravel 11 + Nova 5 + MySQL is the only backend. 2026-05-11 swapped Firebase Auth for Laravel Socialite + Sanctum personal access tokens + `spatie/laravel-permission` RBAC. 2026-05-16 finalization audit closed Play Store publishability end-to-end. 2026-05-18 Phase A cleanup purged the last Firebase/Firestore content references.
27
+
28
+ ## Executive Summary
29
+
30
+ Native Update is a full update-management solution for Capacitor apps. It combines over-the-air web asset updates, native app store update flows, in-app review prompts, background update checks, security tooling, CLI utilities, two reference example apps, a public Docusaurus documentation site, and a Capacitor-wrapped React dashboard backed by a Laravel 11 + Nova 5 SaaS into one ecosystem. The project is positioned as both a reusable plugin and a broader release-operations platform for hybrid mobile products. After the v3.0.0 architectural simplification and the 2026-05-11 auth swap, the project runs on a single Laravel backend with Sanctum-token dashboard auth and Spatie RBAC — no Firebase backend.
31
+
32
+ ## Current Positioning
33
+
34
+ Native Update helps Capacitor teams ship fixes faster, manage native store updates more intelligently, improve review prompting, and centralize release operations through a dashboard-driven workflow. It is stronger than a simple plugin because it includes the operational layer around updates — not just device APIs — and ships with a complete self-hosting story (Laravel + Nova + MySQL backend + Capacitor-wrapped dashboard + public Docusaurus docs site).
35
+
36
+ ## Core Product Value
37
+
38
+ - **Speed:** OTA delivery for faster fixes and content changes
39
+ - **Control:** Channels, percentage rollouts, pause/resume, rollback support, target-segment hooks, and update-strategy choices
40
+ - **Security:** RSA-SHA256 signing, SHA-256 checksums, HTTPS posture, certificate pinning, encrypted Drive token storage, hashed-at-rest Sanctum tokens, fail-closed integrity rules
41
+ - **Productivity:** CLI tooling (8 commands), 58-page Diátaxis docs site, two reference example apps, dashboard with TanStack Query-backed admin pages
42
+ - **Ownership:** Open-source MIT-licensed plugin; self-hostable Laravel + Nova backend; private signing keys never leave the host
43
+
44
+ ## Proof Points In Current Repo State
45
+
46
+ - Native Android (Kotlin) and iOS (Swift) implementations are present and tested (XCTest + JUnit)
47
+ - CLI package present at `cli/` with 8 commands; `monitor` has signal handling + failure bail
48
+ - Two reference example apps under `example-apps/`: `react-capacitor` (with app-update / app-review / background-update capability cards), `node-express` (minimal manifest-endpoint backend)
49
+ - Capacitor-wrapped React dashboard at `website/` with TanStack Query data plane + Radix Dialog + URL-state forms
50
+ - Laravel 11 + Nova 5 backend at `backend/` with full Pest test coverage (OAuth, Sanctum, Spatie, FormRequests, PayPal webhook, BundleUpload, UserLicense)
51
+ - Public Docusaurus docs site at sibling repo `native-update-docs`: 58 pages, ~76k words, Diátaxis-organized, Firebase Hosting deploy-ready with 7 discovery files (robots / llms / llms-full / humans / security / sitemap-index / sitemap) and 3 JSON-LD blocks per page
52
+ - Vitest-bench microbenchmark scaffold at `tools/bench/` for security-critical hot paths (SHA-256 + RSA-SHA256 verify)
53
+ - 3 GitHub Actions workflows: `ci.yml`, `release.yml` (tag-driven npm publish with provenance), `example-bundle.yml` (release+manual+weekly-cron signed bundle attached to GitHub Release)
54
+ - Android release readiness: signingConfigs + ProGuard/R8 + network_security_config + 10-section BUILD_FOR_PLAY_STORE.md runbook + 15 branded launcher PNGs + 11 splash PNGs + 3 Play Store graphics + screenshots/CAPTURE-GUIDE.md
55
+ - Pre-launch DIY pentest checklist at `docs/security/PRE-LAUNCH-PENTEST-CHECKLIST.md` (10 sections + 9 specific attack paths)
56
+ - Preventive repo-goes-public runbook at `docs/SECURITY-IF-REPO-PUBLIC.md`
57
+ - Current automated verification passed cleanly on 2026-05-19
58
+
59
+ ## Resume / CV Summary
60
+
61
+ Built **Native Update**, an open-source Capacitor update platform (v3.0.1, MIT-licensed) that unifies OTA delivery, native app updates, in-app reviews, RSA signing and SHA-256 checksum verification, an 8-command CLI for release operations, two reference example apps, a Laravel 11 + Nova 5 SaaS backend with Sanctum-token + Spatie-RBAC dashboard auth, a Capacitor-wrapped React dashboard, a public 58-page Docusaurus docs site, and a Play-Store-publishable Android distribution.
62
+
63
+ ## Resume-Ready Achievement Bullets
64
+
65
+ - Built and ship `native-update` v3.0.1 on NPM — an open-source Capacitor update platform combining OTA updates, app-store update flows, and in-app reviews, with native Kotlin/Swift implementations, 62 passing root TypeScript tests, 136 passing backend Pest tests, and a Detox E2E suite.
66
+ - Shipped a v3.0.0 BREAKING release that removed Firestore as a backend (~3000+ deletions) and routed all device → server traffic through a single Laravel HTTP API — cleaner ops, single source of truth, simpler reasoning for integrators.
67
+ - Swapped Firebase popup auth for Laravel Socialite + Sanctum personal access tokens + `spatie/laravel-permission` RBAC (super-admin / admin / user roles, `Gate::before` super-admin bypass, per-route `can:` middleware) in a single 2026-05-11 cutover — production-shape auth without Firebase lock-in.
68
+ - Built an entire ecosystem around the plugin: a Laravel 11 + Nova 5 SaaS backend, an 8-command CLI for release management, two reference example apps (React + Capacitor, Node.js + Express), and a React 19 + Vite 7 marketing/dashboard site (Capacitor-wrapped for Play Store) with full observability (Sentry + Clarity + Amplitude + page-view auto-track).
69
+ - Shipped a public Docusaurus documentation site (`native-update-docs` sibling repo, Firebase Hosting) with 58 Diátaxis-organized pages (~76k words), 7 discovery files (robots / llms / llms-full / humans / security / sitemap-index / sitemap), and 3 JSON-LD blocks per page — measurably AI-citable.
70
+ - Closed a 10-batch finalization audit on 2026-05-16 that made the Capacitor-wrapped dashboard Play-Store-publishable end-to-end: signingConfigs.release + ProGuard/R8 + network_security_config + 10-section BUILD_FOR_PLAY_STORE runbook + 15 branded launcher PNGs + 11 splash PNGs + Data Safety form + 4 rewritten legal pages.
71
+ - Adopted `native-update` as the canonical OTA strategy across the Ahsan project portfolio, eliminating store-resubmission cycles for content-only updates.
72
+ - Gated full-codebase audits behind a 7-day cooldown tracker to keep audit churn out of the commit log while preserving reproducible quality.
73
+
74
+ ## Update History
75
+
76
+ | Date | Type | Notes |
77
+ | --- | --- | --- |
78
+ | 2026-05-19 | Material refresh | Major regeneration after 4 months of architecture change: covers v3.0.0 Firestore removal (2026-05-04), 2026-05-11 auth swap (Firebase Auth → Socialite + Sanctum + Spatie RBAC), 2026-05-11 public Docusaurus docs site shipped (58 pages, ~76k words), 2026-05-16 finalization audit closure (Play Store publishability), and 2026-05-18 Phase A Firebase/Firestore residue purge. Updated version 1.4.9 → 3.0.1, test counts 81 → 62/62 root + 136/136 backend, added public docs site URL, refreshed proof points to reflect Laravel + Nova + Capacitor-wrapped dashboard + GitHub Actions CI/CD + Android release readiness. Older dated profiles (2026-03-25, 2026-03-24, 2026-03-16) deleted in the same commit per user direction; this is the first dated profile for v3.x. |
79
+ | 2026-03-25 | Remediation | Updated verification snapshot to the Yarn-only root package workflow after removing npm and pnpm from the root package path. (file deleted 2026-05-19) |
80
+ | 2026-03-24 | Refreshed | Updated metadata, verification snapshot, and repo-state summary to match current package state. (file deleted 2026-05-19) |
81
+ | 2026-03-16 | Previous | Prior project profile version. (file deleted 2026-05-19) |