@terreno/mcp 0.31.0 → 56.0.0-beta.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 (209) hide show
  1. package/dist/bootstrap.d.ts.map +1 -1
  2. package/dist/bootstrap.js +15 -16
  3. package/dist/bootstrap.js.map +1 -1
  4. package/dist/docs/templates/bootstrap/backend/types/models/userTypes.template.md +4 -5
  5. package/dist/docs/templates/bootstrap/frontend/app/_layout.template.tsx +1 -1
  6. package/dist/docs/templates/tools/model.template.md +2 -4
  7. package/dist/docs/versioned/next/README.md +1 -0
  8. package/dist/docs/versioned/next/explanation/README.md +1 -7
  9. package/dist/docs/versioned/next/how-to/README.md +2 -8
  10. package/dist/docs/versioned/next/how-to/deploy-to-gcp.md +228 -20
  11. package/dist/docs/versioned/next/how-to/migrate-rtk-to-syncdb.md +445 -0
  12. package/dist/docs/versioned/next/implementationPlans/PLAN_INDEX.md +4 -57
  13. package/dist/docs/versioned/next/implementationPlans/README.md +30 -56
  14. package/dist/docs/versioned/next/implementationPlans/agentic-sdlc-plugin.md +1 -2
  15. package/dist/docs/versioned/next/implementationPlans/ai-dev-loop-boost.md +0 -1
  16. package/dist/docs/versioned/next/implementationPlans/build-terreno-app-validation.md +0 -1
  17. package/dist/docs/versioned/next/implementationPlans/deploy-to-gcp.md +0 -1
  18. package/dist/docs/versioned/next/implementationPlans/deploy-to-vercel.md +0 -1
  19. package/dist/docs/versioned/next/implementationPlans/deployment-foundation.md +0 -1
  20. package/dist/docs/versioned/next/implementationPlans/docs-reference-coverage.md +0 -1
  21. package/dist/docs/versioned/next/implementationPlans/docs-tutorials-ai-first.md +0 -1
  22. package/dist/docs/versioned/next/implementationPlans/examples-demo-coverage.md +0 -1
  23. package/dist/docs/versioned/next/implementationPlans/oss-governance-baseline.md +0 -1
  24. package/dist/docs/versioned/next/implementationPlans/positioning-django-rails-universal.md +0 -1
  25. package/dist/docs/versioned/next/implementationPlans/public-roadmap-github.md +0 -1
  26. package/dist/docs/versioned/next/implementationPlans/rtk-to-syncdb-migration-docs.md +52 -47
  27. package/dist/docs/versioned/next/implementationPlans/syncdb-api-inventory.md +303 -0
  28. package/dist/docs/versioned/next/implementationPlans/syncdb-codegen.md +252 -0
  29. package/dist/docs/versioned/next/implementationPlans/syncdb-local-first.md +468 -420
  30. package/dist/docs/versioned/next/implementationPlans/syncdb-phase-c-design.md +425 -0
  31. package/dist/docs/versioned/next/implementationPlans/terreno-syncdb-2.md +800 -0
  32. package/dist/docs/versioned/next/implementationPlans/upgrade-guides-and-skill.md +0 -1
  33. package/dist/docs/versioned/next/implementationPlans/web-ssr-and-admin-spa.md +0 -1
  34. package/dist/docs/versioned/next/reference/README.md +1 -4
  35. package/dist/docs/versioned/next/reference/environment-variables.md +382 -220
  36. package/dist/docs/versioned/next/reference/syncdb.md +456 -0
  37. package/dist/docs/versioned/next/superpowers/plans/2026-07-28-admin-mobile-navigation.md +97 -0
  38. package/dist/docs/versioned/next/superpowers/specs/2026-07-28-admin-mobile-navigation-design.md +36 -0
  39. package/dist/docs/versioned/next/tasks/agentic-sdlc-plugin.md +5 -5
  40. package/dist/docs/versioned/next/tasks/deploy-to-gcp.md +11 -11
  41. package/dist/docs/versioned/next/tasks/deployment-foundation.md +12 -12
  42. package/dist/docs/versioned/next/tasks/docs-reference-coverage.md +4 -4
  43. package/dist/docs/versioned/next/tasks/oss-governance-baseline.md +18 -18
  44. package/dist/docs/versioned/next/tasks/positioning-django-rails-universal.md +4 -4
  45. package/dist/docs/versioned/next/tasks/public-roadmap-github.md +15 -15
  46. package/dist/docs/versioned/next/tasks/rtk-to-syncdb-migration-docs.md +10 -10
  47. package/dist/docs/versioned/next/tasks/syncdb-codegen.md +65 -0
  48. package/dist/docs/versioned/next/tasks/syncdb-local-first.md +434 -117
  49. package/package.json +4 -5
  50. package/src/docs/templates/bootstrap/backend/types/models/userTypes.template.md +4 -5
  51. package/src/docs/templates/bootstrap/frontend/app/_layout.template.tsx +1 -1
  52. package/src/docs/templates/tools/model.template.md +2 -4
  53. package/src/docs/versioned/next/README.md +1 -0
  54. package/src/docs/versioned/next/explanation/README.md +1 -7
  55. package/src/docs/versioned/next/how-to/README.md +2 -8
  56. package/src/docs/versioned/next/how-to/deploy-to-gcp.md +228 -20
  57. package/src/docs/versioned/next/how-to/migrate-rtk-to-syncdb.md +445 -0
  58. package/src/docs/versioned/next/implementationPlans/PLAN_INDEX.md +4 -57
  59. package/src/docs/versioned/next/implementationPlans/README.md +30 -56
  60. package/src/docs/versioned/next/implementationPlans/agentic-sdlc-plugin.md +1 -2
  61. package/src/docs/versioned/next/implementationPlans/ai-dev-loop-boost.md +0 -1
  62. package/src/docs/versioned/next/implementationPlans/build-terreno-app-validation.md +0 -1
  63. package/src/docs/versioned/next/implementationPlans/deploy-to-gcp.md +0 -1
  64. package/src/docs/versioned/next/implementationPlans/deploy-to-vercel.md +0 -1
  65. package/src/docs/versioned/next/implementationPlans/deployment-foundation.md +0 -1
  66. package/src/docs/versioned/next/implementationPlans/docs-reference-coverage.md +0 -1
  67. package/src/docs/versioned/next/implementationPlans/docs-tutorials-ai-first.md +0 -1
  68. package/src/docs/versioned/next/implementationPlans/examples-demo-coverage.md +0 -1
  69. package/src/docs/versioned/next/implementationPlans/oss-governance-baseline.md +0 -1
  70. package/src/docs/versioned/next/implementationPlans/positioning-django-rails-universal.md +0 -1
  71. package/src/docs/versioned/next/implementationPlans/public-roadmap-github.md +0 -1
  72. package/src/docs/versioned/next/implementationPlans/rtk-to-syncdb-migration-docs.md +52 -47
  73. package/src/docs/versioned/next/implementationPlans/syncdb-api-inventory.md +303 -0
  74. package/src/docs/versioned/next/implementationPlans/syncdb-codegen.md +252 -0
  75. package/src/docs/versioned/next/implementationPlans/syncdb-local-first.md +468 -420
  76. package/src/docs/versioned/next/implementationPlans/syncdb-phase-c-design.md +425 -0
  77. package/src/docs/versioned/next/implementationPlans/terreno-syncdb-2.md +800 -0
  78. package/src/docs/versioned/next/implementationPlans/upgrade-guides-and-skill.md +0 -1
  79. package/src/docs/versioned/next/implementationPlans/web-ssr-and-admin-spa.md +0 -1
  80. package/src/docs/versioned/next/reference/README.md +1 -4
  81. package/src/docs/versioned/next/reference/environment-variables.md +382 -220
  82. package/src/docs/versioned/next/reference/syncdb.md +456 -0
  83. package/src/docs/versioned/next/superpowers/plans/2026-07-28-admin-mobile-navigation.md +97 -0
  84. package/src/docs/versioned/next/superpowers/specs/2026-07-28-admin-mobile-navigation-design.md +36 -0
  85. package/src/docs/versioned/next/tasks/agentic-sdlc-plugin.md +5 -5
  86. package/src/docs/versioned/next/tasks/deploy-to-gcp.md +11 -11
  87. package/src/docs/versioned/next/tasks/deployment-foundation.md +12 -12
  88. package/src/docs/versioned/next/tasks/docs-reference-coverage.md +4 -4
  89. package/src/docs/versioned/next/tasks/oss-governance-baseline.md +18 -18
  90. package/src/docs/versioned/next/tasks/positioning-django-rails-universal.md +4 -4
  91. package/src/docs/versioned/next/tasks/public-roadmap-github.md +15 -15
  92. package/src/docs/versioned/next/tasks/rtk-to-syncdb-migration-docs.md +10 -10
  93. package/src/docs/versioned/next/tasks/syncdb-codegen.md +65 -0
  94. package/src/docs/versioned/next/tasks/syncdb-local-first.md +434 -117
  95. package/LICENSE +0 -21
  96. package/dist/__tests__/bootstrap.test.d.ts +0 -2
  97. package/dist/__tests__/bootstrap.test.d.ts.map +0 -1
  98. package/dist/__tests__/bootstrap.test.js +0 -299
  99. package/dist/__tests__/bootstrap.test.js.map +0 -1
  100. package/dist/__tests__/databaseQuery.test.d.ts +0 -2
  101. package/dist/__tests__/databaseQuery.test.d.ts.map +0 -1
  102. package/dist/__tests__/databaseQuery.test.js +0 -83
  103. package/dist/__tests__/databaseQuery.test.js.map +0 -1
  104. package/dist/__tests__/docsRoot.test.d.ts +0 -2
  105. package/dist/__tests__/docsRoot.test.d.ts.map +0 -1
  106. package/dist/__tests__/docsRoot.test.js +0 -59
  107. package/dist/__tests__/docsRoot.test.js.map +0 -1
  108. package/dist/__tests__/inferPackages.test.d.ts +0 -2
  109. package/dist/__tests__/inferPackages.test.d.ts.map +0 -1
  110. package/dist/__tests__/inferPackages.test.js +0 -35
  111. package/dist/__tests__/inferPackages.test.js.map +0 -1
  112. package/dist/__tests__/preload.d.ts +0 -2
  113. package/dist/__tests__/preload.d.ts.map +0 -1
  114. package/dist/__tests__/preload.js +0 -12
  115. package/dist/__tests__/preload.js.map +0 -1
  116. package/dist/__tests__/prompts.test.d.ts +0 -2
  117. package/dist/__tests__/prompts.test.d.ts.map +0 -1
  118. package/dist/__tests__/prompts.test.js +0 -295
  119. package/dist/__tests__/prompts.test.js.map +0 -1
  120. package/dist/__tests__/resources.test.d.ts +0 -2
  121. package/dist/__tests__/resources.test.d.ts.map +0 -1
  122. package/dist/__tests__/resources.test.js +0 -352
  123. package/dist/__tests__/resources.test.js.map +0 -1
  124. package/dist/__tests__/search.test.d.ts +0 -2
  125. package/dist/__tests__/search.test.d.ts.map +0 -1
  126. package/dist/__tests__/search.test.js +0 -163
  127. package/dist/__tests__/search.test.js.map +0 -1
  128. package/dist/__tests__/tools.test.d.ts +0 -2
  129. package/dist/__tests__/tools.test.d.ts.map +0 -1
  130. package/dist/__tests__/tools.test.js +0 -540
  131. package/dist/__tests__/tools.test.js.map +0 -1
  132. package/dist/__tests__/upgradeGuide.test.d.ts +0 -2
  133. package/dist/__tests__/upgradeGuide.test.d.ts.map +0 -1
  134. package/dist/__tests__/upgradeGuide.test.js +0 -22
  135. package/dist/__tests__/upgradeGuide.test.js.map +0 -1
  136. package/dist/docs/upgrades/0.31.0.md +0 -60
  137. package/dist/docs/versioned/next/explanation/deployment-architecture-gcp.md +0 -65
  138. package/dist/docs/versioned/next/explanation/deployment-baseline.md +0 -78
  139. package/dist/docs/versioned/next/explanation/positioning.md +0 -164
  140. package/dist/docs/versioned/next/explanation/repository-settings.md +0 -44
  141. package/dist/docs/versioned/next/explanation/roadmap-process.md +0 -330
  142. package/dist/docs/versioned/next/explanation/roadmap-seed-issues.md +0 -866
  143. package/dist/docs/versioned/next/how-to/build-for-web.md +0 -69
  144. package/dist/docs/versioned/next/how-to/deploy-backend-to-cloud-run.md +0 -115
  145. package/dist/docs/versioned/next/how-to/deploy-web-to-gcs-cdn.md +0 -183
  146. package/dist/docs/versioned/next/implementationPlans/b2b-platform-program.md +0 -114
  147. package/dist/docs/versioned/next/implementationPlans/billing-stripe.md +0 -158
  148. package/dist/docs/versioned/next/implementationPlans/comms-abstraction.md +0 -240
  149. package/dist/docs/versioned/next/implementationPlans/comms-adapter-expo-push.md +0 -107
  150. package/dist/docs/versioned/next/implementationPlans/comms-adapter-sendgrid.md +0 -107
  151. package/dist/docs/versioned/next/implementationPlans/comms-adapter-twilio-sms.md +0 -102
  152. package/dist/docs/versioned/next/implementationPlans/comms-adapter-twilio-verify.md +0 -93
  153. package/dist/docs/versioned/next/implementationPlans/infra-mcp-research.md +0 -188
  154. package/dist/docs/versioned/next/implementationPlans/infra-mcp.md +0 -269
  155. package/dist/docs/versioned/next/implementationPlans/native-module-baseline.md +0 -105
  156. package/dist/docs/versioned/next/implementationPlans/orgs-and-teams.md +0 -158
  157. package/dist/docs/versioned/next/implementationPlans/password-reset-and-email-verification.md +0 -147
  158. package/dist/docs/versioned/next/reference/admin-spa.md +0 -130
  159. package/dist/docs/versioned/next/reference/ai.md +0 -519
  160. package/dist/docs/versioned/next/reference/test.md +0 -108
  161. package/dist/docs/versioned/next/roadmap.md +0 -9
  162. package/dist/docs/versioned/next/tasks/README.md +0 -42
  163. package/dist/docs/versioned/next/tasks/billing-stripe.md +0 -75
  164. package/dist/docs/versioned/next/tasks/comms-abstraction.md +0 -77
  165. package/dist/docs/versioned/next/tasks/comms-adapter-expo-push.md +0 -29
  166. package/dist/docs/versioned/next/tasks/comms-adapter-sendgrid.md +0 -29
  167. package/dist/docs/versioned/next/tasks/comms-adapter-twilio-sms.md +0 -29
  168. package/dist/docs/versioned/next/tasks/comms-adapter-twilio-verify.md +0 -19
  169. package/dist/docs/versioned/next/tasks/infra-mcp.md +0 -43
  170. package/dist/docs/versioned/next/tasks/native-module-baseline.md +0 -42
  171. package/dist/docs/versioned/next/tasks/orgs-and-teams.md +0 -70
  172. package/dist/docs/versioned/next/tasks/password-reset-and-email-verification.md +0 -60
  173. package/src/docs/upgrades/0.31.0.md +0 -60
  174. package/src/docs/versioned/next/explanation/deployment-architecture-gcp.md +0 -65
  175. package/src/docs/versioned/next/explanation/deployment-baseline.md +0 -78
  176. package/src/docs/versioned/next/explanation/positioning.md +0 -164
  177. package/src/docs/versioned/next/explanation/repository-settings.md +0 -44
  178. package/src/docs/versioned/next/explanation/roadmap-process.md +0 -330
  179. package/src/docs/versioned/next/explanation/roadmap-seed-issues.md +0 -866
  180. package/src/docs/versioned/next/how-to/build-for-web.md +0 -69
  181. package/src/docs/versioned/next/how-to/deploy-backend-to-cloud-run.md +0 -115
  182. package/src/docs/versioned/next/how-to/deploy-web-to-gcs-cdn.md +0 -183
  183. package/src/docs/versioned/next/implementationPlans/b2b-platform-program.md +0 -114
  184. package/src/docs/versioned/next/implementationPlans/billing-stripe.md +0 -158
  185. package/src/docs/versioned/next/implementationPlans/comms-abstraction.md +0 -240
  186. package/src/docs/versioned/next/implementationPlans/comms-adapter-expo-push.md +0 -107
  187. package/src/docs/versioned/next/implementationPlans/comms-adapter-sendgrid.md +0 -107
  188. package/src/docs/versioned/next/implementationPlans/comms-adapter-twilio-sms.md +0 -102
  189. package/src/docs/versioned/next/implementationPlans/comms-adapter-twilio-verify.md +0 -93
  190. package/src/docs/versioned/next/implementationPlans/infra-mcp-research.md +0 -188
  191. package/src/docs/versioned/next/implementationPlans/infra-mcp.md +0 -269
  192. package/src/docs/versioned/next/implementationPlans/native-module-baseline.md +0 -105
  193. package/src/docs/versioned/next/implementationPlans/orgs-and-teams.md +0 -158
  194. package/src/docs/versioned/next/implementationPlans/password-reset-and-email-verification.md +0 -147
  195. package/src/docs/versioned/next/reference/admin-spa.md +0 -130
  196. package/src/docs/versioned/next/reference/ai.md +0 -519
  197. package/src/docs/versioned/next/reference/test.md +0 -108
  198. package/src/docs/versioned/next/roadmap.md +0 -9
  199. package/src/docs/versioned/next/tasks/README.md +0 -42
  200. package/src/docs/versioned/next/tasks/billing-stripe.md +0 -75
  201. package/src/docs/versioned/next/tasks/comms-abstraction.md +0 -77
  202. package/src/docs/versioned/next/tasks/comms-adapter-expo-push.md +0 -29
  203. package/src/docs/versioned/next/tasks/comms-adapter-sendgrid.md +0 -29
  204. package/src/docs/versioned/next/tasks/comms-adapter-twilio-sms.md +0 -29
  205. package/src/docs/versioned/next/tasks/comms-adapter-twilio-verify.md +0 -19
  206. package/src/docs/versioned/next/tasks/infra-mcp.md +0 -43
  207. package/src/docs/versioned/next/tasks/native-module-baseline.md +0 -42
  208. package/src/docs/versioned/next/tasks/orgs-and-teams.md +0 -70
  209. package/src/docs/versioned/next/tasks/password-reset-and-email-verification.md +0 -60
@@ -1,866 +0,0 @@
1
- # Roadmap seed issues
2
-
3
- Ready-to-paste GitHub issue bodies for IPs on the public roadmap — the
4
- [OSS launch program](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/oss-launch-program.md) IPs plus other
5
- roadmap-tracked work. Open one tracking issue per IP when the IP reaches **Approved**, then
6
- add it to the **Terreno Roadmap** project with the field values below.
7
-
8
- ---
9
-
10
- ## oss-governance-baseline
11
-
12
- **Title:** `[Roadmap] OSS governance baseline`
13
-
14
- **Labels:** `area:dx`, `type:chore`
15
- **Project fields:** Area=`dx`, Target=`Next`, Impact=`Improvement`, IP=`oss-governance-baseline`, Status=`Shipped`
16
-
17
- Establishes the legal and community foundation required before Terreno can launch as a public
18
- open-source project. It adds a root MIT license, contribution and security policies, a
19
- changelog, GitHub community health files, and CI checks so every published npm package ships
20
- with correct licensing. Without this work, the repository cannot credibly invite outside
21
- contributors or consumers.
22
-
23
- - **Implementation plan:** [oss-governance-baseline.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/oss-governance-baseline.md)
24
- - **Tasks:** [oss-governance-baseline.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/oss-governance-baseline.md)
25
- - **RTK flag:** None
26
- - **Depends on:** —
27
-
28
- ---
29
-
30
- ## public-roadmap-github
31
-
32
- **Title:** `[Roadmap] Public roadmap on GitHub`
33
-
34
- **Labels:** `area:dx`, `type:feature`
35
- **Project fields:** Area=`dx`, Target=`Next`, Impact=`Improvement`, IP=`public-roadmap-github`, Status=`In progress`
36
-
37
- Runs Terreno's public roadmap on GitHub while keeping Linear as the internal execution
38
- tracker. It sets up GitHub Discussions categories, a Terreno Roadmap project board, label
39
- taxonomy, automated ROADMAP.md generation, and a one-way GitHub-to-Linear bridge for tracked
40
- issues. Outside contributors can see priorities and propose work without maintainers
41
- duplicating sprint planning.
42
-
43
- - **Implementation plan:** [public-roadmap-github.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/public-roadmap-github.md)
44
- - **Tasks:** [public-roadmap-github.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/public-roadmap-github.md)
45
- - **RTK flag:** None
46
- - **Depends on:** oss-governance-baseline
47
-
48
- ---
49
-
50
- ## deploy-to-gcp
51
-
52
- **Title:** `[Roadmap] Deploy to GCP (generalized)`
53
-
54
- **Labels:** `area:deploy`, `type:docs`
55
- **Project fields:** Area=`deploy`, Target=`Next`, Impact=`Improvement`, IP=`deploy-to-gcp`, Status=`Planned`
56
-
57
- Turns Terreno's GCP deployment story from Flourish-specific infrastructure into a reusable
58
- guide any Terreno app can follow. It documents Cloud Run backend hosting, GCS plus CDN for
59
- static web export, a reusable Terraform module, parameterized scripts, and a deploy-gcp
60
- agent skill with confirmation gates. The guide covers websocket, replica-set, and
61
- session-affinity constraints that commonly break production Terreno deployments.
62
-
63
- - **Implementation plan:** [deploy-to-gcp.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/deploy-to-gcp.md)
64
- - **Tasks:** [deploy-to-gcp.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/deploy-to-gcp.md)
65
- - **RTK flag:** None
66
- - **Depends on:** deployment-foundation
67
-
68
- ---
69
-
70
- ## agentic-sdlc-plugin
71
-
72
- **Title:** `[Roadmap] Agentic SDLC plugin (/terreno-*)`
73
-
74
- **Labels:** `area:dx`, `type:feature`
75
- **Project fields:** Area=`dx`, Target=`Next`, Impact=`Feature`, IP=`agentic-sdlc-plugin`, Status=`Planned`
76
-
77
- Packages and documents Terreno's five-stage `/terreno-*` agentic SDLC pipeline as a portable,
78
- publicly installable Cursor plugin. The pipeline takes work from a raw request through
79
- planning, test-driven implementation, independent verification, submission with evidence,
80
- and a review loop until mergeable. Today the tooling exists inside the monorepo but is
81
- invisible and breaks in consumer apps.
82
-
83
- - **Implementation plan:** [agentic-sdlc-plugin.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/agentic-sdlc-plugin.md)
84
- - **Tasks:** [agentic-sdlc-plugin.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/agentic-sdlc-plugin.md)
85
- - **RTK flag:** Partial
86
- - **Depends on:** positioning-django-rails-universal, oss-governance-baseline
87
-
88
- ---
89
-
90
- ## rtk-to-syncdb-migration-docs
91
-
92
- **Title:** `[Roadmap] RTK deprecation and syncdb migration docs`
93
-
94
- **Labels:** `area:syncdb`, `type:docs`, `deprecation`, `status:blocked`
95
- **Project fields:** Area=`syncdb`, Target=`Next`, Impact=`Improvement`, IP=`rtk-to-syncdb-migration-docs`, Status=`Planned`
96
-
97
- > Blocked on PR #869. The Project **Status** field has no `Blocked` option, so gating is
98
- > tracked with the `status:blocked` issue label instead.
99
-
100
- Makes Better Auth plus `@terreno/syncdb` the documented, supported frontend platform and gives
101
- RTK Query consumers a tested migration path. It covers deprecation policy, a step-by-step
102
- migration guide, syncdb reference docs, auth repositioning, and updates to agent rules, MCP
103
- bootstrap output, and upgrade notes. Gates most Wave 1 launch documentation.
104
-
105
- - **Implementation plan:** [rtk-to-syncdb-migration-docs.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/rtk-to-syncdb-migration-docs.md)
106
- - **Tasks:** [rtk-to-syncdb-migration-docs.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/rtk-to-syncdb-migration-docs.md)
107
- - **RTK flag:** Blocked (PR #869)
108
- - **Depends on:** PR #869
109
-
110
- ---
111
-
112
- ## positioning-django-rails-universal
113
-
114
- **Title:** `[Roadmap] Positioning — Django/Rails for TypeScript`
115
-
116
- **Labels:** `area:docs`, `type:docs`
117
- **Project fields:** Area=`docs`, Target=`Next`, Impact=`Improvement`, IP=`positioning-django-rails-universal`, Status=`Planned`
118
-
119
- Aligns Terreno's messaging across README, docs site, agent context files, and npm package
120
- metadata under one positioning statement: Django/Rails for TypeScript with universal app
121
- support, organized around batteries included, universal by default, and AI-native pillars.
122
-
123
- - **Implementation plan:** [positioning-django-rails-universal.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/positioning-django-rails-universal.md)
124
- - **Tasks:** [positioning-django-rails-universal.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/positioning-django-rails-universal.md)
125
- - **RTK flag:** Partial
126
- - **Depends on:** rtk-to-syncdb-migration-docs
127
-
128
- ---
129
-
130
- ## docs-reference-coverage
131
-
132
- **Title:** `[Roadmap] Reference documentation coverage`
133
-
134
- **Labels:** `area:docs`, `type:docs`
135
- **Project fields:** Area=`docs`, Target=`Next`, Impact=`Improvement`, IP=`docs-reference-coverage`, Status=`Planned`
136
-
137
- Gives every published Terreno package a real README and a public docs/reference page instead
138
- of stubs. Adds missing reference pages, de-stubs package READMEs, sanitizes internal
139
- leakage, and extends docs-audit CI to catch drift.
140
-
141
- - **Implementation plan:** [docs-reference-coverage.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/docs-reference-coverage.md)
142
- - **Tasks:** [docs-reference-coverage.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/docs-reference-coverage.md)
143
- - **RTK flag:** Blocked
144
- - **Depends on:** rtk-to-syncdb-migration-docs, positioning-django-rails-universal
145
-
146
- ---
147
-
148
- ## docs-tutorials-ai-first
149
-
150
- **Title:** `[Roadmap] AI-first tutorials`
151
-
152
- **Labels:** `area:docs`, `type:docs`
153
- **Project fields:** Area=`docs`, Target=`Next`, Impact=`Feature`, IP=`docs-tutorials-ai-first`, Status=`Planned`
154
-
155
- Replaces Terreno's thin getting-started page with a full tutorial path where the
156
- AI-assisted workflow is the default. Six tutorials cover examples, first app, MCP, AI
157
- features, admin panel, and production deploy — all on syncdb + Better Auth.
158
-
159
- - **Implementation plan:** [docs-tutorials-ai-first.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/docs-tutorials-ai-first.md)
160
- - **Tasks:** [docs-tutorials-ai-first.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/docs-tutorials-ai-first.md)
161
- - **RTK flag:** Blocked
162
- - **Depends on:** docs-reference-coverage, ai-dev-loop-boost, deployment-foundation
163
-
164
- ---
165
-
166
- ## deployment-foundation
167
-
168
- **Title:** `[Roadmap] Deployment foundation`
169
-
170
- **Labels:** `area:deploy`, `type:docs`
171
- **Project fields:** Area=`deploy`, Target=`Next`, Impact=`Improvement`, IP=`deployment-foundation`, Status=`Planned`
172
-
173
- Defines the provider-agnostic deployment baseline every Terreno production app needs: core
174
- requirements, environment-variable reference, Expo web output modes, and a canonical
175
- example-backend Dockerfile with CI validation.
176
-
177
- - **Implementation plan:** [deployment-foundation.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/deployment-foundation.md)
178
- - **Tasks:** [deployment-foundation.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/deployment-foundation.md)
179
- - **RTK flag:** Partial
180
- - **Depends on:** —
181
-
182
- ---
183
-
184
- ## deploy-to-vercel
185
-
186
- **Title:** `[Roadmap] Deploy to Vercel`
187
-
188
- **Labels:** `area:deploy`, `type:docs`
189
- **Project fields:** Area=`deploy`, Target=`Next`, Impact=`Improvement`, IP=`deploy-to-vercel`, Status=`Planned`
190
-
191
- Documents Expo web export on Vercel, preview-deployment CORS and Better Auth origin handling,
192
- and a deploy-vercel skill with websocket verification. Requires a spike on backend hosting
193
- options.
194
-
195
- - **Implementation plan:** [deploy-to-vercel.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/deploy-to-vercel.md)
196
- - **Tasks:** [deploy-to-vercel.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/deploy-to-vercel.md)
197
- - **RTK flag:** Partial
198
- - **Depends on:** deployment-foundation
199
-
200
- ---
201
-
202
- ## upgrade-guides-and-skill
203
-
204
- **Title:** `[Roadmap] Upgrade guides and upgrading-terreno skill`
205
-
206
- **Labels:** `area:mcp`, `type:docs`
207
- **Project fields:** Area=`mcp`, Target=`Next`, Impact=`Improvement`, IP=`upgrade-guides-and-skill`, Status=`Planned`
208
-
209
- Makes upgrading Terreno across lockstep-published packages a documented, repeatable process.
210
- Backfills upgrade notes, adds versioning policy, ships an upgrading-terreno skill, and
211
- enforces upgrade-note requirements in release CI.
212
-
213
- - **Implementation plan:** [upgrade-guides-and-skill.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/upgrade-guides-and-skill.md)
214
- - **Tasks:** [upgrade-guides-and-skill.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/upgrade-guides-and-skill.md)
215
- - **RTK flag:** Blocked
216
- - **Depends on:** rtk-to-syncdb-migration-docs, oss-governance-baseline
217
-
218
- ---
219
-
220
- ## ai-dev-loop-boost
221
-
222
- **Title:** `[Roadmap] AI development loop (MCP Boost)`
223
-
224
- **Labels:** `area:mcp`, `type:feature`
225
- **Project fields:** Area=`mcp`, Target=`Next`, Impact=`Feature`, IP=`ai-dev-loop-boost`, Status=`Planned`
226
-
227
- Documents Terreno's AI-native development loop: search docs, generate code, run the app,
228
- observe merged logs and client state, then fix and iterate. Builds on MCP Boost parity (PR
229
- #802).
230
-
231
- - **Implementation plan:** [ai-dev-loop-boost.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/ai-dev-loop-boost.md)
232
- - **Tasks:** [ai-dev-loop-boost.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/ai-dev-loop-boost.md)
233
- - **RTK flag:** Partial
234
- - **Depends on:** PR #802
235
-
236
- ---
237
-
238
- ## build-terreno-app-validation
239
-
240
- **Title:** `[Roadmap] Dogfooding run and launch blog post`
241
-
242
- **Labels:** `area:docs`, `type:chore`
243
- **Project fields:** Area=`docs`, Target=`Next`, Impact=`Improvement`, IP=`build-terreno-app-validation`, Status=`Planned`
244
-
245
- Executes the OSS launch acceptance test: an agent builds and deploys a real universal app
246
- using only public docs and skills, then publishes a friction log and blog post.
247
-
248
- - **Implementation plan:** [build-terreno-app-validation.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/build-terreno-app-validation.md)
249
- - **Tasks:** [build-terreno-app-validation.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/build-terreno-app-validation.md)
250
- - **RTK flag:** Blocked
251
- - **Depends on:** docs-tutorials-ai-first, ai-dev-loop-boost, deploy-to-vercel, docs-reference-coverage
252
-
253
- ---
254
-
255
- ## examples-demo-coverage
256
-
257
- **Title:** `[Roadmap] Examples, demo, and test coverage`
258
-
259
- **Labels:** `area:examples`, `type:chore`
260
- **Project fields:** Area=`examples`, Target=`Future`, Impact=`Improvement`, IP=`examples-demo-coverage`, Status=`Planned`
261
-
262
- Closes credibility gaps in examples, the UI demo app, and CI coverage gates. Adds missing demo
263
- stories, extends coverage enforcement, and publishes an example-app feature matrix.
264
-
265
- - **Implementation plan:** [examples-demo-coverage.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/examples-demo-coverage.md)
266
- - **Tasks:** [examples-demo-coverage.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/examples-demo-coverage.md)
267
- - **RTK flag:** Partial
268
- - **Depends on:** docs-reference-coverage
269
-
270
- ---
271
-
272
- ## web-ssr-and-admin-spa
273
-
274
- **Title:** `[Roadmap] Web SSR and admin SPA`
275
-
276
- **Labels:** `area:ui`, `type:feature`
277
- **Project fields:** Area=`ui`, Target=`Future`, Impact=`Feature`, IP=`web-ssr-and-admin-spa`, Status=`Planned`
278
-
279
- Adds real server-side rendering for Terreno web apps so routes can be indexed and paint
280
- meaningful HTML before JavaScript loads. Starts with static output and admin-spa as proving
281
- ground; SSR is opt-in and depends on Expo SDK 55+.
282
-
283
- - **Implementation plan:** [web-ssr-and-admin-spa.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/web-ssr-and-admin-spa.md)
284
- - **Tasks:** [web-ssr-and-admin-spa.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/web-ssr-and-admin-spa.md)
285
- - **RTK flag:** Partial
286
- - **Depends on:** Expo SDK ≥ 55 (PR #779), deployment-foundation
287
-
288
- ---
289
-
290
- ## infra-mcp
291
-
292
- *Outside the OSS launch program.*
293
-
294
- **Title:** `[Roadmap] Infrastructure MCP server (@terreno/infra-mcp)`
295
-
296
- **Labels:** `area:mcp`, `type:feature`, `status:blocked`
297
- **Project fields:** Area=`mcp`, Target=`Future`, Impact=`Feature`, IP=`infra-mcp`, Status=`Planned`
298
-
299
- > Blocked on the RBAC permissions module. The Project **Status** field has no `Blocked`
300
- > option, so gating is tracked with the `status:blocked` issue label instead.
301
-
302
- Puts privileged infrastructure tooling — GCP, Sentry, MongoDB, and later Expo/EAS and Vercel —
303
- behind one deployable MCP server with per-user OAuth 2.1 authentication, RBAC-driven read and
304
- write tiers, per-call confirmation on write tools, and an audit trail. Read-only access covers
305
- log digging without handing anyone production credentials, and the server runs on its own Cloud
306
- Run runtime service account so injected service-account keys can be retired.
307
-
308
- - **Implementation plan:** [infra-mcp.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/infra-mcp.md)
309
- - **Tasks:** [infra-mcp.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/infra-mcp.md)
310
- - **RTK flag:** None
311
- - **Depends on:** rbac-permissions
312
-
313
- ---
314
-
315
- # B2B platform program
316
-
317
- Ready-to-paste GitHub issue bodies for the
318
- [B2B platform program](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/b2b-platform-program.md).
319
- Items marked *(IP pending)* are drafted ahead of their IP by maintainer decision; open the
320
- issue with `Status=Planned` and fill the IP field when the IP lands.
321
-
322
- ---
323
-
324
- ## comms-abstraction
325
-
326
- **Title:** `[Roadmap] Pluggable communications layer (@terreno/comms)`
327
-
328
- **Labels:** `area:api`, `type:feature`
329
- **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=`comms-abstraction`, Status=`Planned`
330
-
331
- Terreno backends have no way to send email, SMS, or push notifications today. This adds a
332
- new `@terreno/comms` package with provider interfaces for mail, SMS, push, and OTP
333
- verification, a `CommsApp` plugin that registers them on a Terreno app, push-token
334
- registration routes, a delivery log model, and console adapters for local development.
335
- Concrete providers (Twilio, SendGrid, Expo push) ship as separate adapters, each with its own
336
- roadmap item, so apps only install the SDKs they use.
337
-
338
- - **Implementation plan:** [comms-abstraction.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/comms-abstraction.md)
339
- - **Tasks:** [comms-abstraction.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/comms-abstraction.md)
340
- - **RTK flag:** None
341
- - **Depends on:** —
342
-
343
- ---
344
-
345
- ## comms-adapter-expo-push
346
-
347
- **Title:** `[Roadmap] Comms adapter — Expo push notifications`
348
-
349
- **Labels:** `area:api`, `type:feature`
350
- **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=`comms-adapter-expo-push`, Status=`Planned`
351
-
352
- Implements the `@terreno/comms` push provider on Expo's push service using
353
- `expo-server-sdk` (already a dependency of `@terreno/api`, currently unused). Covers token
354
- chunking, receipt polling, and automatic deactivation of dead device tokens. The client
355
- half — `getExpoPushTokenAsync` registration — already exists in example-frontend.
356
-
357
- - **Implementation plan:** [comms-adapter-expo-push.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/comms-adapter-expo-push.md)
358
- - **Tasks:** [comms-adapter-expo-push.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/comms-adapter-expo-push.md)
359
- - **RTK flag:** None
360
- - **Depends on:** comms-abstraction
361
-
362
- ---
363
-
364
- ## comms-adapter-twilio-sms
365
-
366
- **Title:** `[Roadmap] Comms adapter — Twilio SMS`
367
-
368
- **Labels:** `area:api`, `type:feature`
369
- **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=`comms-adapter-twilio-sms`, Status=`Planned`
370
-
371
- Implements the `@terreno/comms` SMS provider on Twilio Programmable Messaging: send via
372
- messaging service or from-number, delivery status callbacks through the inbound-webhook
373
- framework, and E.164 validation using the `libphonenumber-js` dependency already in the
374
- catalog.
375
-
376
- - **Implementation plan:** [comms-adapter-twilio-sms.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/comms-adapter-twilio-sms.md)
377
- - **Tasks:** [comms-adapter-twilio-sms.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/comms-adapter-twilio-sms.md)
378
- - **RTK flag:** None
379
- - **Depends on:** comms-abstraction; inbound-webhooks (status callbacks phase only)
380
-
381
- ---
382
-
383
- ## comms-adapter-twilio-verify
384
-
385
- **Title:** `[Roadmap] Comms adapter — Twilio Verify (OTP)`
386
-
387
- **Labels:** `area:api`, `type:feature`
388
- **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=`comms-adapter-twilio-verify`, Status=`Planned`
389
-
390
- Implements the `@terreno/comms` verification provider on Twilio Verify for SMS and email
391
- one-time codes. This is the delivery channel for phone verification and for the future MFA
392
- step-up work, without Terreno storing or rate-limiting codes itself.
393
-
394
- - **Implementation plan:** [comms-adapter-twilio-verify.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/comms-adapter-twilio-verify.md)
395
- - **Tasks:** [comms-adapter-twilio-verify.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/comms-adapter-twilio-verify.md)
396
- - **RTK flag:** None
397
- - **Depends on:** comms-abstraction
398
-
399
- ---
400
-
401
- ## comms-adapter-sendgrid
402
-
403
- **Title:** `[Roadmap] Comms adapter — transactional email (SendGrid)`
404
-
405
- **Labels:** `area:api`, `type:feature`
406
- **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=`comms-adapter-sendgrid`, Status=`Planned`
407
-
408
- Implements the first `@terreno/comms` mail provider on Twilio SendGrid so Terreno apps can
409
- send transactional email (password resets, invitations, verification), sharing the Twilio
410
- account story with the SMS and Verify adapters (decision D2). Other providers (Resend,
411
- SES, SMTP) get their own items when demand appears.
412
-
413
- - **Implementation plan:** [comms-adapter-sendgrid.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/comms-adapter-sendgrid.md)
414
- - **Tasks:** [comms-adapter-sendgrid.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/comms-adapter-sendgrid.md)
415
- - **RTK flag:** None
416
- - **Depends on:** comms-abstraction
417
-
418
- ---
419
-
420
- ## password-reset-and-email-verification
421
-
422
- **Title:** `[Roadmap] Password reset and email verification`
423
-
424
- **Labels:** `area:auth`, `type:feature`
425
- **Project fields:** Area=`auth`, Target=`Next`, Impact=`Feature`, IP=`password-reset-and-email-verification`, Status=`Planned`
426
-
427
- Closes a functional hole: the `@terreno/rtk` client already exposes a `resetPassword`
428
- endpoint but no backend route implements it, and there is no email verification flow.
429
- Adds token-issuing reset and verification routes to the JWT auth path, wires Better Auth's
430
- equivalents, and sends the emails through `@terreno/comms`.
431
-
432
- - **Implementation plan:** [password-reset-and-email-verification.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/password-reset-and-email-verification.md)
433
- - **Tasks:** [password-reset-and-email-verification.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/password-reset-and-email-verification.md)
434
- - **RTK flag:** None
435
- - **Depends on:** comms-abstraction, comms-adapter-sendgrid
436
-
437
- ---
438
-
439
- ## inbound-webhooks
440
-
441
- **Title:** `[Roadmap] Inbound webhook framework`
442
-
443
- **Labels:** `area:api`, `type:feature`
444
- **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
445
-
446
- Terreno has outbound notifiers (Slack, Google Chat, Zoom) but no framework for receiving
447
- webhooks from external services. Adds a plugin for registering webhook endpoints with
448
- signature verification, raw-body handling, idempotency/replay protection, and event
449
- dispatch — required by Stripe billing and by Twilio/Expo delivery status callbacks.
450
-
451
- - **Implementation plan:** *(not yet written)*
452
- - **Tasks:** *(not yet written)*
453
- - **RTK flag:** None
454
- - **Depends on:** —
455
-
456
- ---
457
-
458
- ## orgs-and-teams
459
-
460
- **Title:** `[Roadmap] Organizations, teams, and multi-tenant scoping`
461
-
462
- **Labels:** `area:api`, `type:feature`
463
- **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=`orgs-and-teams`, Status=`Planned`
464
-
465
- Terreno's data model is per-user: `ownerId`, `OwnerQueryFilter`, and owner permissions.
466
- B2B apps need organizations. This adds Organization and Membership models, an org-context
467
- middleware, an `OrgQueryFilter` and org-scoping schema plugin for modelRouter, and
468
- membership-aware permission classes — the tenant analog of the existing owner stack.
469
- Invitations and the management UI are separate items.
470
-
471
- - **Implementation plan:** [orgs-and-teams.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/orgs-and-teams.md)
472
- - **Tasks:** [orgs-and-teams.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/orgs-and-teams.md)
473
- - **RTK flag:** None
474
- - **Depends on:** —
475
-
476
- ---
477
-
478
- ## rbac-permissions
479
-
480
- **Title:** `[Roadmap] Role-based access control`
481
-
482
- **Labels:** `area:api`, `type:feature`
483
- **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=`rbac-permissions`, Status=`Planned`
484
-
485
- Replaces the binary `admin` flag + owner checks with a first-class RBAC module: a typed
486
- permission vocabulary on Better Auth's access-control engine, DB-backed roles editable in
487
- the admin panel, document-level scopes, field-level views, and one `can()` check enforced
488
- across REST, websockets, MCP tools, and admin. An API design draft already exists;
489
- `orgs-and-teams` extends it with org-scoped grants.
490
-
491
- - **Implementation plan:** [rbac-permissions.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/rbac-permissions.md)
492
- - **Tasks:** *(TBD — design doc predates task split)*
493
- - **RTK flag:** None
494
- - **Depends on:** —
495
-
496
- ---
497
-
498
- ## invitations-and-seats
499
-
500
- **Title:** `[Roadmap] Invitations and seat management`
501
-
502
- **Labels:** `area:api`, `type:feature`
503
- **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
504
-
505
- Lets an org admin invite teammates by email: invite tokens with expiry, accept/decline
506
- flows for existing and new users, role assignment on acceptance, and seat counting that
507
- billing can later enforce. Emails go through `@terreno/comms`.
508
-
509
- - **Implementation plan:** *(not yet written)*
510
- - **Tasks:** *(not yet written)*
511
- - **RTK flag:** None
512
- - **Depends on:** orgs-and-teams, comms-abstraction, comms-adapter-sendgrid
513
-
514
- ---
515
-
516
- ## org-management-ui
517
-
518
- **Title:** `[Roadmap] Org switcher and member management screens`
519
-
520
- **Labels:** `area:ui`, `type:feature`
521
- **Project fields:** Area=`ui`, Target=`Next`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
522
-
523
- The frontend counterpart of the tenancy track: an organization switcher, members list with
524
- roles, invite flow, and org settings screens in `@terreno/ui` + example-frontend, working
525
- on web and native.
526
-
527
- - **Implementation plan:** *(not yet written)*
528
- - **Tasks:** *(not yet written)*
529
- - **RTK flag:** Partial — screens should target the syncdb data layer where available
530
- - **Depends on:** orgs-and-teams, rbac-permissions, invitations-and-seats
531
-
532
- ---
533
-
534
- ## billing-stripe
535
-
536
- **Title:** `[Roadmap] Stripe billing and subscriptions`
537
-
538
- **Labels:** `area:api`, `type:feature`
539
- **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=`billing-stripe`, Status=`Planned`
540
-
541
- Adds a billing plugin on Stripe (web-first, decision D1): customers mapped to
542
- organizations, subscription and plan models, checkout/portal session routes,
543
- webhook-driven entitlement sync, and plan gating that plugs into the existing feature-flag
544
- layer. Includes basic plan-picker and billing settings screens. Mobile in-app purchases
545
- are a separate item.
546
-
547
- - **Implementation plan:** [billing-stripe.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/billing-stripe.md)
548
- - **Tasks:** [billing-stripe.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/billing-stripe.md)
549
- - **RTK flag:** None
550
- - **Depends on:** orgs-and-teams, inbound-webhooks
551
-
552
- ---
553
-
554
- ## native-module-baseline
555
-
556
- **Title:** `[Roadmap] Native module baseline for the next major release`
557
-
558
- **Labels:** `area:ui`, `type:chore`, `breaking`
559
- **Project fields:** Area=`ui`, Target=`Next`, Impact=`Breaking`, IP=*(not yet written)*, Status=`Planned`
560
-
561
- Adding a native module to a Terreno app forces a new dev-client/store binary, so every
562
- native dependency the B2B program needs lands in one major release: Stripe payment sheet,
563
- RevenueCat purchases, `expo-device`, `expo-crypto`, `expo-local-authentication`,
564
- `expo-system-ui`, and `react-native-otp-verify`, plus config plugins and refreshed EAS
565
- builds. After this release, the rest of the program ships as JS/OTA updates against the
566
- same binary. Manifest finalized 2026-08-09 (decisions D1/D3/D7); TenTap excluded
567
- (markdown stays).
568
-
569
- - **Implementation plan:** [native-module-baseline.md](https://github.com/FlourishHealth/terreno/blob/master/docs/implementationPlans/native-module-baseline.md)
570
- - **Tasks:** [native-module-baseline.md](https://github.com/FlourishHealth/terreno/blob/master/docs/tasks/native-module-baseline.md)
571
- - **RTK flag:** None
572
- - **Depends on:** —
573
-
574
- ---
575
-
576
- ## create-terreno-app
577
-
578
- **Title:** `[Roadmap] create-terreno-app scaffolding CLI`
579
-
580
- **Labels:** `area:dx`, `type:feature`
581
- **Project fields:** Area=`dx`, Target=`Next`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
582
-
583
- Today the MCP bootstrap tool returns markdown instructions and writes no files. This ships
584
- a real `create-terreno-app` CLI (or template repo) that produces a running, deployable app
585
- — backend, Expo app, env files, seeded auth — in one command, with the MCP bootstrap
586
- delegating to it.
587
-
588
- - **Implementation plan:** *(not yet written)*
589
- - **Tasks:** *(not yet written)*
590
- - **RTK flag:** Partial — scaffold output follows the syncdb + Better Auth direction
591
- - **Depends on:** deployment-foundation
592
-
593
- ---
594
-
595
- ## charts-and-dashboards
596
-
597
- **Title:** `[Roadmap] Charts and dashboard primitives`
598
-
599
- **Labels:** `area:ui`, `type:feature`
600
- **Project fields:** Area=`ui`, Target=`Next`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
601
-
602
- `@terreno/ui` has a stubbed `Chart` export and no implementation. Adds themed chart
603
- components (line, bar, area, donut) on `victory-native` — JS-only, since its Skia /
604
- Reanimated / Gesture Handler peers are already linked — plus a simple dashboard grid
605
- layout, with demo stories and docs.
606
-
607
- - **Implementation plan:** *(not yet written)*
608
- - **Tasks:** *(not yet written)*
609
- - **RTK flag:** None
610
- - **Depends on:** —
611
-
612
- ---
613
-
614
- ## dark-mode-theme
615
-
616
- **Title:** `[Roadmap] First-class dark mode`
617
-
618
- **Labels:** `area:ui`, `type:feature`
619
- **Project fields:** Area=`ui`, Target=`Next`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
620
-
621
- The theming system has three layers but no built-in dark theme; the example app fakes one
622
- by swapping primitives behind a feature flag. Ships a maintained dark palette, a
623
- `colorScheme` API on `TerrenoProvider` (system/light/dark), and `expo-system-ui` wiring so
624
- root views and system chrome follow the scheme.
625
-
626
- - **Implementation plan:** *(not yet written)*
627
- - **Tasks:** *(not yet written)*
628
- - **RTK flag:** None
629
- - **Depends on:** native-module-baseline (`expo-system-ui`)
630
-
631
- ---
632
-
633
- ## data-grid-server-filters
634
-
635
- **Title:** `[Roadmap] DataTable server-side filtering and search`
636
-
637
- **Labels:** `area:ui`, `type:feature`
638
- **Project fields:** Area=`ui`, Target=`Next`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
639
-
640
- DataTable sorts and paginates but has no filter UI. Adds per-column filter controls and a
641
- search box that emit modelRouter-compatible query params (`queryFields`, `$and`/`$or`), so
642
- list screens get server-side filtering without custom plumbing. Admin tables adopt it.
643
-
644
- - **Implementation plan:** *(not yet written)*
645
- - **Tasks:** *(not yet written)*
646
- - **RTK flag:** Partial — query wiring examples depend on the frontend data layer
647
- - **Depends on:** —
648
-
649
- ---
650
-
651
- ## mobile-iap-revenuecat
652
-
653
- **Title:** `[Roadmap] Mobile in-app purchases (RevenueCat)`
654
-
655
- **Labels:** `area:api`, `type:feature`
656
- **Project fields:** Area=`api`, Target=`Future`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
657
-
658
- Store-compliant mobile subscriptions via RevenueCat (`react-native-purchases`): entitlement
659
- sync into the billing models through webhooks, paywall UI, and unified entitlements with
660
- Stripe web billing (decision D1: web-first, mobile IAP later). The native SDK ships in the
661
- native module baseline regardless, so this lands as a JS/OTA feature when scheduled.
662
-
663
- - **Implementation plan:** *(not yet written)*
664
- - **Tasks:** *(not yet written)*
665
- - **RTK flag:** None
666
- - **Depends on:** billing-stripe, native-module-baseline, inbound-webhooks
667
-
668
- ---
669
-
670
- ## notification-center
671
-
672
- **Title:** `[Roadmap] In-app notification center`
673
-
674
- **Labels:** `area:ui`, `type:feature`
675
- **Project fields:** Area=`ui`, Target=`Next`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
676
-
677
- Adds a Notification model with per-user preferences, realtime delivery over the existing
678
- change-stream socket layer, and a bell/inbox UI in `@terreno/ui` with read/unread state —
679
- the in-app channel beside `@terreno/comms` mail/SMS/push.
680
-
681
- - **Implementation plan:** *(not yet written)*
682
- - **Tasks:** *(not yet written)*
683
- - **RTK flag:** Partial — inbox screens target the syncdb data layer where available
684
- - **Depends on:** comms-abstraction
685
-
686
- ---
687
-
688
- ## command-palette
689
-
690
- **Title:** `[Roadmap] Command palette (⌘K)`
691
-
692
- **Labels:** `area:ui`, `type:feature`
693
- **Project fields:** Area=`ui`, Target=`Future`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
694
-
695
- A themable ⌘K palette component for web (with a native fallback surface): registerable
696
- actions, navigation targets, and async search sources. Admin panel adopts it first.
697
-
698
- - **Implementation plan:** *(not yet written)*
699
- - **Tasks:** *(not yet written)*
700
- - **RTK flag:** None
701
- - **Depends on:** —
702
-
703
- ---
704
-
705
- ## wizard-stepper
706
-
707
- **Title:** `[Roadmap] Generic multi-step wizard component`
708
-
709
- **Labels:** `area:ui`, `type:feature`
710
- **Project fields:** Area=`ui`, Target=`Future`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
711
-
712
- Extracts the multi-step patterns hand-rolled in signup and consent flows into a generic
713
- wizard/stepper: step state, validation gates, progress indicator, and per-step persistence
714
- — the building block for onboarding and setup flows.
715
-
716
- - **Implementation plan:** *(not yet written)*
717
- - **Tasks:** *(not yet written)*
718
- - **RTK flag:** None
719
- - **Depends on:** —
720
-
721
- ---
722
-
723
- ## wysiwyg-editor
724
-
725
- **Title:** `[Roadmap] Rich text (WYSIWYG) editor`
726
-
727
- **Labels:** `area:ui`, `type:feature`
728
- **Project fields:** Area=`ui`, Target=`Future`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
729
-
730
- Terreno's rich text today is markdown-only (`MarkdownEditor`), and decision D3 keeps it
731
- that way for now. This item tracks a future adoption of a true WYSIWYG editor (candidate:
732
- TenTap, Tiptap-based). Because TenTap requires a native module that is **not** in the
733
- native module baseline, adopting it means waiting for a later major release.
734
-
735
- - **Implementation plan:** *(not yet written)*
736
- - **Tasks:** *(not yet written)*
737
- - **RTK flag:** None
738
- - **Depends on:** a future major release (native module not in the current baseline)
739
-
740
- ---
741
-
742
- ## global-search
743
-
744
- **Title:** `[Roadmap] Global search across entities`
745
-
746
- **Labels:** `area:api`, `type:feature`
747
- **Project fields:** Area=`api`, Target=`Future`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
748
-
749
- A search framework for modelRouter models: per-model searchable-field registration, a
750
- cross-model search endpoint with permission-aware results, Mongo text/Atlas Search backends,
751
- and a search UI hook — feeding the command palette and app-level search bars.
752
-
753
- - **Implementation plan:** *(not yet written)*
754
- - **Tasks:** *(not yet written)*
755
- - **RTK flag:** None
756
- - **Depends on:** —
757
-
758
- ---
759
-
760
- ## enterprise-sso
761
-
762
- **Title:** `[Roadmap] Enterprise SSO (SAML / OIDC)`
763
-
764
- **Labels:** `area:auth`, `type:feature`
765
- **Project fields:** Area=`auth`, Target=`Future`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
766
-
767
- Org-level single sign-on: SAML and OIDC via Better Auth's SSO tooling, per-organization
768
- IdP configuration, JIT user provisioning into org memberships, and domain-based login
769
- routing. The mobile flow uses `expo-auth-session` + `expo-crypto` (PKCE) from the native
770
- baseline.
771
-
772
- - **Implementation plan:** *(not yet written)*
773
- - **Tasks:** *(not yet written)*
774
- - **RTK flag:** None
775
- - **Depends on:** orgs-and-teams, native-module-baseline
776
-
777
- ---
778
-
779
- ## mfa-step-up-auth
780
-
781
- **Title:** `[Roadmap] MFA and biometric step-up auth`
782
-
783
- **Labels:** `area:auth`, `type:feature`
784
- **Project fields:** Area=`auth`, Target=`Future`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
785
-
786
- Second-factor support: TOTP enrollment, SMS/email OTP via the Twilio Verify adapter, and
787
- biometric step-up on native (`expo-local-authentication`) for sensitive actions, with
788
- enforcement hooks in the permission layer.
789
-
790
- - **Implementation plan:** *(not yet written)*
791
- - **Tasks:** *(not yet written)*
792
- - **RTK flag:** None
793
- - **Depends on:** comms-adapter-twilio-verify, native-module-baseline
794
-
795
- ---
796
-
797
- ## framework-audit-log
798
-
799
- **Title:** `[Roadmap] Framework-level audit log`
800
-
801
- **Labels:** `area:api`, `type:feature`
802
- **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
803
-
804
- Generalizes the admin/consent audit patterns into a first-class audit log: an AuditEvent
805
- model, modelRouter hooks that record who changed what (with before/after diffs), org
806
- scoping, retention policy, and an admin viewer — a hard requirement for compliance-minded
807
- B2B customers.
808
-
809
- - **Implementation plan:** *(not yet written)*
810
- - **Tasks:** *(not yet written)*
811
- - **RTK flag:** None
812
- - **Depends on:** orgs-and-teams
813
-
814
- ---
815
-
816
- ## rate-limiting
817
-
818
- **Title:** `[Roadmap] API rate limiting`
819
-
820
- **Labels:** `area:api`, `type:feature`
821
- **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
822
-
823
- Adds HTTP rate limiting to `@terreno/api`: per-user/per-org/per-IP policies, sensible
824
- defaults for auth and OTP endpoints, memory and Redis stores, and standard rate-limit
825
- headers. Today only realtime subscriptions are capped.
826
-
827
- - **Implementation plan:** *(not yet written)*
828
- - **Tasks:** *(not yet written)*
829
- - **RTK flag:** None
830
- - **Depends on:** —
831
-
832
- ---
833
-
834
- ## job-queues
835
-
836
- **Title:** `[Roadmap] Durable background jobs`
837
-
838
- **Labels:** `area:api`, `type:feature`
839
- **Project fields:** Area=`api`, Target=`Next`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
840
-
841
- Terreno has an in-process cron helper and admin script runner but no durable queue. Adds a
842
- job abstraction with retries, scheduling, and dead-lettering — Mongo-backed by default with
843
- a Redis/BullMQ driver — so email sends, webhook retries, and billing sync survive restarts.
844
-
845
- - **Implementation plan:** *(not yet written)*
846
- - **Tasks:** *(not yet written)*
847
- - **RTK flag:** None
848
- - **Depends on:** —
849
-
850
- ---
851
-
852
- ## mongo-migrations
853
-
854
- **Title:** `[Roadmap] MongoDB migrations tooling`
855
-
856
- **Labels:** `area:api`, `type:feature`
857
- **Project fields:** Area=`api`, Target=`Future`, Impact=`Feature`, IP=*(not yet written)*, Status=`Planned`
858
-
859
- A migrations runner for Terreno apps: versioned migration files, up/down with a lock
860
- collection, CI checks, and integration with the mongoose-schema-safety guidance — replacing
861
- ad-hoc backfill scripts.
862
-
863
- - **Implementation plan:** *(not yet written)*
864
- - **Tasks:** *(not yet written)*
865
- - **RTK flag:** None
866
- - **Depends on:** —