core-framework 2.3.3__tar.gz → 3.1.0__tar.gz

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 (1023) hide show
  1. core_framework-3.1.0/.cursor/rules/constitution.mdc +47 -0
  2. core_framework-3.1.0/.cursor/skills/code-review/SKILL.md +35 -0
  3. core_framework-3.1.0/.cursor/skills/sync-host-rules/SKILL.md +52 -0
  4. core_framework-3.1.0/.github/ci/package-lock.json +6064 -0
  5. core_framework-3.1.0/.github/ci/package.json +7 -0
  6. core_framework-3.1.0/.github/workflows/_deploy.yml +233 -0
  7. core_framework-3.1.0/.github/workflows/dev-ci-cd.yaml +235 -0
  8. core_framework-3.1.0/.github/workflows/manual-deployment.yaml +52 -0
  9. core_framework-3.1.0/.github/workflows/manual-observability-deployment.yaml +225 -0
  10. core_framework-3.1.0/.github/workflows/publish-pypi.yml +38 -0
  11. core_framework-3.1.0/.github/workflows/test.yaml +187 -0
  12. core_framework-3.1.0/.gitignore +38 -0
  13. core_framework-3.1.0/.pre-commit-config.yaml +63 -0
  14. core_framework-3.1.0/CHANGELOG.md +575 -0
  15. core_framework-3.1.0/PKG-INFO +144 -0
  16. core_framework-3.1.0/README.md +99 -0
  17. core_framework-3.1.0/alembic/notification/alembic/versions/2fdd68777706_notification_read_at_retention_index.py +28 -0
  18. core_framework-3.1.0/config.toml +139 -0
  19. core_framework-3.1.0/config.toml.template +123 -0
  20. core_framework-3.1.0/core_framework/api/admin/cache/schemas.py +91 -0
  21. core_framework-3.1.0/core_framework/api/admin/moderation/router.py +211 -0
  22. core_framework-3.1.0/core_framework/api/admin/outbox/router.py +61 -0
  23. core_framework-3.1.0/core_framework/api/admin/router.py +23 -0
  24. core_framework-3.1.0/core_framework/api/attachments/router.py +43 -0
  25. core_framework-3.1.0/core_framework/api/comments/authenticated/router.py +143 -0
  26. core_framework-3.1.0/core_framework/api/comments/authenticated/schemas.py +79 -0
  27. core_framework-3.1.0/core_framework/api/dependencies.py +145 -0
  28. core_framework-3.1.0/core_framework/api/events/schemas.py +21 -0
  29. core_framework-3.1.0/core_framework/api/posts/authenticated/router.py +111 -0
  30. core_framework-3.1.0/core_framework/api/posts/authenticated/schemas.py +77 -0
  31. core_framework-3.1.0/core_framework/api/system/router.py +100 -0
  32. core_framework-3.1.0/core_framework/api/upload.py +11 -0
  33. core_framework-3.1.0/core_framework/api/users/authenticated/router.py +542 -0
  34. core_framework-3.1.0/core_framework/application/analytics/refresh_service.py +54 -0
  35. core_framework-3.1.0/core_framework/application/analytics/registry.py +35 -0
  36. core_framework-3.1.0/core_framework/application/auth/auth_service.py +26 -0
  37. core_framework-3.1.0/core_framework/application/auth/token_verification.py +29 -0
  38. core_framework-3.1.0/core_framework/application/bootstrap.py +57 -0
  39. core_framework-3.1.0/core_framework/application/comments/authenticated_service.py +234 -0
  40. core_framework-3.1.0/core_framework/application/events/event_service.py +148 -0
  41. core_framework-3.1.0/core_framework/application/media/README.md +19 -0
  42. core_framework-3.1.0/core_framework/application/media/attachment_read.py +83 -0
  43. core_framework-3.1.0/core_framework/application/media/attachment_service.py +495 -0
  44. core_framework-3.1.0/core_framework/application/media/avatar_service.py +168 -0
  45. core_framework-3.1.0/core_framework/application/moderation/moderator_service.py +42 -0
  46. core_framework-3.1.0/core_framework/application/moderation/user_service.py +218 -0
  47. core_framework-3.1.0/core_framework/application/notifications/mute_service.py +34 -0
  48. core_framework-3.1.0/core_framework/application/notifications/notification_service.py +156 -0
  49. core_framework-3.1.0/core_framework/application/notifications/prune_service.py +8 -0
  50. core_framework-3.1.0/core_framework/application/outbox/events.py +122 -0
  51. core_framework-3.1.0/core_framework/application/outbox/ops_service.py +72 -0
  52. core_framework-3.1.0/core_framework/application/outbox/polling_service.py +69 -0
  53. core_framework-3.1.0/core_framework/application/outbox/processing_service.py +94 -0
  54. core_framework-3.1.0/core_framework/application/posts/aggregation_service.py +51 -0
  55. core_framework-3.1.0/core_framework/application/posts/authenticated_service.py +130 -0
  56. core_framework-3.1.0/core_framework/application/shared/worker_jobs.py +62 -0
  57. core_framework-3.1.0/core_framework/application/users/admin_service.py +308 -0
  58. core_framework-3.1.0/core_framework/application/users/authenticated_service.py +373 -0
  59. core_framework-3.1.0/core_framework/constants.py +15 -0
  60. core_framework-3.1.0/core_framework/core/__init__.py +33 -0
  61. core_framework-3.1.0/core_framework/core/cache.py +176 -0
  62. core_framework-3.1.0/core_framework/core/context.py +40 -0
  63. core_framework-3.1.0/core_framework/core/database.py +114 -0
  64. core_framework-3.1.0/core_framework/core/exception_handlers/common.py +66 -0
  65. core_framework-3.1.0/core_framework/core/http_client.py +64 -0
  66. core_framework-3.1.0/core_framework/core/http_probes.py +4 -0
  67. core_framework-3.1.0/core_framework/core/logging.py +120 -0
  68. core_framework-3.1.0/core_framework/core/middleware.py +160 -0
  69. core_framework-3.1.0/core_framework/core/observability.py +648 -0
  70. core_framework-3.1.0/core_framework/core/pagination.py +198 -0
  71. core_framework-3.1.0/core_framework/core/redis.py +61 -0
  72. core_framework-3.1.0/core_framework/core/settings.py +500 -0
  73. core_framework-3.1.0/core_framework/domains/analytics/__init__.py +22 -0
  74. core_framework-3.1.0/core_framework/domains/analytics/dependencies.py +64 -0
  75. core_framework-3.1.0/core_framework/domains/analytics/service.py +300 -0
  76. core_framework-3.1.0/core_framework/domains/auth/README.md +68 -0
  77. core_framework-3.1.0/core_framework/domains/auth/ports/auth.py +54 -0
  78. core_framework-3.1.0/core_framework/domains/auth/service.py +58 -0
  79. core_framework-3.1.0/core_framework/domains/comment/__init__.py +51 -0
  80. core_framework-3.1.0/core_framework/domains/comment/dependencies.py +61 -0
  81. core_framework-3.1.0/core_framework/domains/comment/repository.py +2394 -0
  82. core_framework-3.1.0/core_framework/domains/comment/service.py +946 -0
  83. core_framework-3.1.0/core_framework/domains/media/README.md +30 -0
  84. core_framework-3.1.0/core_framework/domains/media/__init__.py +59 -0
  85. core_framework-3.1.0/core_framework/domains/media/attachment/components/finals_publisher.py +46 -0
  86. core_framework-3.1.0/core_framework/domains/media/attachment/components/staging.py +166 -0
  87. core_framework-3.1.0/core_framework/domains/media/attachment/ports/staging.py +44 -0
  88. core_framework-3.1.0/core_framework/domains/media/avatar/components/finals_publisher.py +46 -0
  89. core_framework-3.1.0/core_framework/domains/media/avatar/ports/staging.py +42 -0
  90. core_framework-3.1.0/core_framework/domains/media/banner/components/finals_publisher.py +41 -0
  91. core_framework-3.1.0/core_framework/domains/media/banner/components/staging.py +142 -0
  92. core_framework-3.1.0/core_framework/domains/media/banner/components/variant_encoder.py +41 -0
  93. core_framework-3.1.0/core_framework/domains/media/banner/ports/staging.py +42 -0
  94. core_framework-3.1.0/core_framework/domains/media/banner/service.py +329 -0
  95. core_framework-3.1.0/core_framework/domains/media/dependencies.py +332 -0
  96. core_framework-3.1.0/core_framework/domains/media/shared/exceptions.py +14 -0
  97. core_framework-3.1.0/core_framework/domains/media/shared/utils.py +45 -0
  98. core_framework-3.1.0/core_framework/domains/moderation/__init__.py +41 -0
  99. core_framework-3.1.0/core_framework/domains/moderation/dependencies.py +90 -0
  100. core_framework-3.1.0/core_framework/domains/moderation/repository.py +1304 -0
  101. core_framework-3.1.0/core_framework/domains/moderation/service.py +884 -0
  102. core_framework-3.1.0/core_framework/domains/notification/README.md +156 -0
  103. core_framework-3.1.0/core_framework/domains/notification/__init__.py +16 -0
  104. core_framework-3.1.0/core_framework/domains/notification/dependencies.py +61 -0
  105. core_framework-3.1.0/core_framework/domains/notification/repository.py +629 -0
  106. core_framework-3.1.0/core_framework/domains/notification/service.py +301 -0
  107. core_framework-3.1.0/core_framework/domains/outbox/README.md +69 -0
  108. core_framework-3.1.0/core_framework/domains/outbox/__init__.py +19 -0
  109. core_framework-3.1.0/core_framework/domains/outbox/exceptions.py +10 -0
  110. core_framework-3.1.0/core_framework/domains/outbox/models.py +82 -0
  111. core_framework-3.1.0/core_framework/domains/outbox/ports/producer.py +42 -0
  112. core_framework-3.1.0/core_framework/domains/outbox/service.py +62 -0
  113. core_framework-3.1.0/core_framework/domains/post/__init__.py +42 -0
  114. core_framework-3.1.0/core_framework/domains/post/dependencies.py +61 -0
  115. core_framework-3.1.0/core_framework/domains/post/outcomes.py +12 -0
  116. core_framework-3.1.0/core_framework/domains/post/repository.py +2248 -0
  117. core_framework-3.1.0/core_framework/domains/post/service.py +935 -0
  118. core_framework-3.1.0/core_framework/domains/repository_sql.py +44 -0
  119. core_framework-3.1.0/core_framework/domains/user/__init__.py +55 -0
  120. core_framework-3.1.0/core_framework/domains/user/dependencies.py +90 -0
  121. core_framework-3.1.0/core_framework/domains/user/outcomes.py +26 -0
  122. core_framework-3.1.0/core_framework/domains/user/repository.py +1710 -0
  123. core_framework-3.1.0/core_framework/domains/user/service.py +981 -0
  124. core_framework-3.1.0/core_framework/domains/utils.py +241 -0
  125. core_framework-3.1.0/core_framework/infrastructure/__init__.py +0 -0
  126. core_framework-3.1.0/core_framework/infrastructure/firebase/__init__.py +0 -0
  127. core_framework-3.1.0/core_framework/infrastructure/firebase/firebase_auth_adapter.py +114 -0
  128. core_framework-3.1.0/core_framework/infrastructure/media/__init__.py +0 -0
  129. core_framework-3.1.0/core_framework/infrastructure/media/local_attachment_staging_adapter.py +76 -0
  130. core_framework-3.1.0/core_framework/infrastructure/media/local_avatar_staging_adapter.py +93 -0
  131. core_framework-3.1.0/core_framework/infrastructure/media/local_banner_staging_adapter.py +93 -0
  132. core_framework-3.1.0/core_framework/infrastructure/media/pillow_staging_image.py +69 -0
  133. core_framework-3.1.0/core_framework/infrastructure/media/ssh_attachment_finals_publisher_adapter.py +120 -0
  134. core_framework-3.1.0/core_framework/infrastructure/media/ssh_banner_finals_publisher_adapter.py +103 -0
  135. core_framework-3.1.0/core_framework/infrastructure/media/ssh_finals_publisher_adapter.py +123 -0
  136. core_framework-3.1.0/core_framework/infrastructure/media/staging_paths.py +46 -0
  137. core_framework-3.1.0/core_framework/infrastructure/outbox/__init__.py +0 -0
  138. core_framework-3.1.0/core_framework/infrastructure/outbox/outbox_consumer_adapter.py +166 -0
  139. core_framework-3.1.0/core_framework/infrastructure/outbox/outbox_producer_adapter.py +73 -0
  140. core_framework-3.1.0/core_framework/main.py +69 -0
  141. core_framework-3.1.0/core_framework/py.typed +0 -0
  142. core_framework-3.1.0/core_framework/testing/arq.py +121 -0
  143. core_framework-3.1.0/core_framework/testing/auth.py +304 -0
  144. core_framework-3.1.0/core_framework/testing/firebase.py +132 -0
  145. core_framework-3.1.0/core_framework/testing/httpx_test_client.py +28 -0
  146. core_framework-3.1.0/core_framework/testing/plugin.py +218 -0
  147. core_framework-3.1.0/core_framework/worker/__init__.py +0 -0
  148. core_framework-3.1.0/core_framework/worker/main.py +122 -0
  149. core_framework-3.1.0/core_framework/worker/schedules/__init__.py +138 -0
  150. core_framework-3.1.0/core_framework/worker/schedules/analytics_refresh_cron.py +20 -0
  151. core_framework-3.1.0/core_framework/worker/schedules/schedule_aggregate_comment_stats.py +45 -0
  152. core_framework-3.1.0/core_framework/worker/schedules/schedule_aggregate_post_stats.py +43 -0
  153. core_framework-3.1.0/core_framework/worker/schedules/schedule_aggregate_user_stats.py +43 -0
  154. core_framework-3.1.0/core_framework/worker/schedules/schedule_expired_account_deletions.py +37 -0
  155. core_framework-3.1.0/core_framework/worker/schedules/schedule_expired_mute_lifts.py +34 -0
  156. core_framework-3.1.0/core_framework/worker/schedules/schedule_prune_analytics_daily_facts.py +15 -0
  157. core_framework-3.1.0/core_framework/worker/schedules/schedule_prune_post_views.py +16 -0
  158. core_framework-3.1.0/core_framework/worker/schedules/schedule_prune_read_notifications.py +16 -0
  159. core_framework-3.1.0/core_framework/worker/schedules/schedule_purge_expired_create_idempotency_keys.py +17 -0
  160. core_framework-3.1.0/core_framework/worker/tasks/__init__.py +59 -0
  161. core_framework-3.1.0/core_framework/worker/tasks/process_media_asset_variants.py +32 -0
  162. core_framework-3.1.0/core_framework/worker/tasks/process_mute_lift.py +15 -0
  163. core_framework-3.1.0/deploy/README.md +27 -0
  164. core_framework-3.1.0/deploy/app/dockerfile +74 -0
  165. core_framework-3.1.0/deploy/observability/.env.example +7 -0
  166. core_framework-3.1.0/deploy/observability/README.md +11 -0
  167. core_framework-3.1.0/deploy/observability/docker-compose.yml +153 -0
  168. core_framework-3.1.0/deploy/observability/grafana/dashboards/application/api-http.json +297 -0
  169. core_framework-3.1.0/deploy/observability/grafana/dashboards/application/worker-jobs.json +250 -0
  170. core_framework-3.1.0/deploy/observability/grafana/dashboards/infrastructure/node-exporter.json +23900 -0
  171. core_framework-3.1.0/deploy/observability/grafana/dashboards/infrastructure/postgres-exporter.json +1453 -0
  172. core_framework-3.1.0/deploy/observability/grafana/dashboards/infrastructure/redis-exporter.json +1620 -0
  173. core_framework-3.1.0/deploy/observability/grafana/provisioning/dashboards/dashboards.yml +26 -0
  174. core_framework-3.1.0/deploy/observability/grafana/provisioning/datasources/datasources.yml +49 -0
  175. core_framework-3.1.0/deploy/observability/loki.yaml +61 -0
  176. core_framework-3.1.0/deploy/observability/otel-collector-config.yaml +54 -0
  177. core_framework-3.1.0/deploy/observability/prometheus.yml +39 -0
  178. core_framework-3.1.0/deploy/observability/targets/node/.gitkeep +0 -0
  179. core_framework-3.1.0/deploy/observability/targets/postgres/.gitkeep +0 -0
  180. core_framework-3.1.0/deploy/observability/targets/redis/.gitkeep +0 -0
  181. core_framework-3.1.0/deploy/observability/targets.example/README.md +19 -0
  182. core_framework-3.1.0/deploy/observability/targets.example/node.yml.example +9 -0
  183. core_framework-3.1.0/deploy/observability/targets.example/postgres.yml.example +5 -0
  184. core_framework-3.1.0/deploy/observability/targets.example/redis.yml.example +6 -0
  185. core_framework-3.1.0/deploy/observability/tempo.yaml +30 -0
  186. core_framework-3.1.0/docs/README.md +48 -0
  187. core_framework-3.1.0/docs/deployments/README.md +56 -0
  188. core_framework-3.1.0/docs/deployments/deploy-playbook.md +236 -0
  189. core_framework-3.1.0/docs/deployments/edge-rate-limits.md +63 -0
  190. core_framework-3.1.0/docs/deployments/edge-upload-limits.md +70 -0
  191. core_framework-3.1.0/docs/deployments/examples/Caddyfile.example +69 -0
  192. core_framework-3.1.0/docs/deployments/examples/Caddyfile.observability.example +13 -0
  193. core_framework-3.1.0/docs/deployments/guides/playbook/postgres-backup-playbook.md +303 -0
  194. core_framework-3.1.0/docs/deployments/guides/playbook/py-spy-playbook.md +203 -0
  195. core_framework-3.1.0/docs/deployments/guides/setup/app-server-deploy-ssh.md +72 -0
  196. core_framework-3.1.0/docs/deployments/guides/setup/caddy-setup.md +57 -0
  197. core_framework-3.1.0/docs/deployments/guides/setup/cloudflare-setup.md +129 -0
  198. core_framework-3.1.0/docs/deployments/guides/setup/image-server-ssh.md +99 -0
  199. core_framework-3.1.0/docs/deployments/guides/setup/observability-lgtm-setup.md +204 -0
  200. core_framework-3.1.0/docs/deployments/guides/setup/postgres-backup-setup.md +323 -0
  201. core_framework-3.1.0/docs/deployments/guides/setup/postgres-setup.md +165 -0
  202. core_framework-3.1.0/docs/deployments/guides/setup/py-spy-setup.md +42 -0
  203. core_framework-3.1.0/docs/deployments/guides/setup/redis-setup.md +117 -0
  204. core_framework-3.1.0/docs/deployments/guides/setup/ubuntu-server-setup.md +179 -0
  205. core_framework-3.1.0/docs/deployments/postgres-backup-design.md +176 -0
  206. core_framework-3.1.0/docs/deployments/release-playbook.md +84 -0
  207. core_framework-3.1.0/docs/design/README.md +31 -0
  208. core_framework-3.1.0/docs/design/create-idempotency-design.md +282 -0
  209. core_framework-3.1.0/docs/design/event-outbox-design.md +603 -0
  210. core_framework-3.1.0/docs/design/events-ingest-design.md +228 -0
  211. core_framework-3.1.0/docs/design/media-storage-topology.md +141 -0
  212. core_framework-3.1.0/docs/design/observability-lgtm-design.md +591 -0
  213. core_framework-3.1.0/docs/design/outbox-admin-ops-design.md +337 -0
  214. core_framework-3.1.0/docs/domains/README.md +23 -0
  215. core_framework-3.1.0/docs/domains/auth/access_control.md +70 -0
  216. core_framework-3.1.0/docs/domains/auth/registration.md +60 -0
  217. core_framework-3.1.0/docs/domains/comments/create_comment.md +174 -0
  218. core_framework-3.1.0/docs/domains/comments/edit_comment.md +74 -0
  219. core_framework-3.1.0/docs/domains/deletion/posts.md +312 -0
  220. core_framework-3.1.0/docs/domains/events/events.md +245 -0
  221. core_framework-3.1.0/docs/domains/media/banner-upload-design.md +150 -0
  222. core_framework-3.1.0/docs/domains/media/post-comment-attachments-design.md +521 -0
  223. core_framework-3.1.0/docs/domains/media/upload-pipeline-design.md +468 -0
  224. core_framework-3.1.0/docs/domains/moderation/restrictions.md +250 -0
  225. core_framework-3.1.0/docs/domains/notifications/notification_inbox.md +384 -0
  226. core_framework-3.1.0/docs/domains/outbox/admin_outbox_ops.md +187 -0
  227. core_framework-3.1.0/docs/domains/posts/README.md +34 -0
  228. core_framework-3.1.0/docs/domains/posts/create_post.md +120 -0
  229. core_framework-3.1.0/docs/domains/posts/delete_post.md +64 -0
  230. core_framework-3.1.0/docs/domains/users/account_deletion.md +111 -0
  231. core_framework-3.1.0/docs/domains/users/admin_users.md +166 -0
  232. core_framework-3.1.0/docs/domains/users/check_username_exists.md +57 -0
  233. core_framework-3.1.0/docs/domains/users/user_stats_aggregation.md +80 -0
  234. core_framework-3.1.0/docs/library/capability-wiring.md +127 -0
  235. core_framework-3.1.0/docs/library/core-framework-migration.md +253 -0
  236. core_framework-3.1.0/docs/library/overview.md +55 -0
  237. core_framework-3.1.0/docs/library/package-api.md +564 -0
  238. core_framework-3.1.0/docs/library/testing-plugin-design.md +317 -0
  239. core_framework-3.1.0/docs/library/workers.md +89 -0
  240. core_framework-3.1.0/docs/platform/architecture-decisions.md +537 -0
  241. core_framework-3.1.0/docs/platform/client-error-visibility.md +271 -0
  242. core_framework-3.1.0/docs/platform/conventions.md +100 -0
  243. core_framework-3.1.0/docs/platform/domain-services-and-adapters.md +60 -0
  244. core_framework-3.1.0/docs/reviews/README.md +11 -0
  245. core_framework-3.1.0/docs/reviews/log.md +12 -0
  246. core_framework-3.1.0/docs/reviews/review-playbook.md +192 -0
  247. core_framework-3.1.0/docs/reviews/slices.md +301 -0
  248. core_framework-3.1.0/docs/testing.md +150 -0
  249. core_framework-3.1.0/docs/todo.md +4 -0
  250. core_framework-3.1.0/makefile +61 -0
  251. core_framework-3.1.0/pyproject.toml +154 -0
  252. core_framework-3.1.0/tach.toml +176 -0
  253. core_framework-3.1.0/tests/__init__.py +0 -0
  254. core_framework-3.1.0/tests/e2e/_settings.py +40 -0
  255. core_framework-3.1.0/tests/e2e/smoke/system_test.py +31 -0
  256. core_framework-3.1.0/tests/integration/__init__.py +0 -0
  257. core_framework-3.1.0/tests/integration/analytics/_helpers.py +141 -0
  258. core_framework-3.1.0/tests/integration/api/__init__.py +0 -0
  259. core_framework-3.1.0/tests/integration/api/_destructive_delete_helpers.py +51 -0
  260. core_framework-3.1.0/tests/integration/api/_http_helpers.py +95 -0
  261. core_framework-3.1.0/tests/integration/api/_user_deletion_helpers.py +63 -0
  262. core_framework-3.1.0/tests/integration/api/_user_helpers.py +26 -0
  263. core_framework-3.1.0/tests/integration/api/admin/__init__.py +0 -0
  264. core_framework-3.1.0/tests/integration/api/admin/analytics/__init__.py +0 -0
  265. core_framework-3.1.0/tests/integration/api/admin/analytics/router_test.py +263 -0
  266. core_framework-3.1.0/tests/integration/api/admin/cache/__init__.py +0 -0
  267. core_framework-3.1.0/tests/integration/api/admin/cache/router_test.py +307 -0
  268. core_framework-3.1.0/tests/integration/api/admin/comments/__init__.py +0 -0
  269. core_framework-3.1.0/tests/integration/api/admin/comments/router_test.py +735 -0
  270. core_framework-3.1.0/tests/integration/api/admin/moderation/__init__.py +0 -0
  271. core_framework-3.1.0/tests/integration/api/admin/moderation/router_test.py +2545 -0
  272. core_framework-3.1.0/tests/integration/api/admin/outbox/__init__.py +0 -0
  273. core_framework-3.1.0/tests/integration/api/admin/outbox/router_test.py +337 -0
  274. core_framework-3.1.0/tests/integration/api/admin/posts/__init__.py +0 -0
  275. core_framework-3.1.0/tests/integration/api/admin/posts/router_test.py +472 -0
  276. core_framework-3.1.0/tests/integration/api/admin/users/__init__.py +0 -0
  277. core_framework-3.1.0/tests/integration/api/attachments/_helpers.py +210 -0
  278. core_framework-3.1.0/tests/integration/api/auth/__init__.py +0 -0
  279. core_framework-3.1.0/tests/integration/api/comments/__init__.py +0 -0
  280. core_framework-3.1.0/tests/integration/api/comments/authenticated/__init__.py +0 -0
  281. core_framework-3.1.0/tests/integration/api/comments/authenticated/comment_writes_integration_test.py +663 -0
  282. core_framework-3.1.0/tests/integration/api/comments/comment_attachments_integration_test.py +576 -0
  283. core_framework-3.1.0/tests/integration/api/comments/public/__init__.py +0 -0
  284. core_framework-3.1.0/tests/integration/api/comments/public/router_test.py +514 -0
  285. core_framework-3.1.0/tests/integration/api/create_idempotency_integration_test.py +486 -0
  286. core_framework-3.1.0/tests/integration/api/events/router_test.py +758 -0
  287. core_framework-3.1.0/tests/integration/api/mentions/mentions_integration_test.py +381 -0
  288. core_framework-3.1.0/tests/integration/api/notifications/__init__.py +0 -0
  289. core_framework-3.1.0/tests/integration/api/notifications/router_test.py +538 -0
  290. core_framework-3.1.0/tests/integration/api/posts/__init__.py +0 -0
  291. core_framework-3.1.0/tests/integration/api/posts/authenticated/post_writes_integration_test.py +311 -0
  292. core_framework-3.1.0/tests/integration/api/posts/comment_count_aggregation_test.py +140 -0
  293. core_framework-3.1.0/tests/integration/api/posts/followers_visibility_test.py +144 -0
  294. core_framework-3.1.0/tests/integration/api/posts/post_attachments_integration_test.py +660 -0
  295. core_framework-3.1.0/tests/integration/api/posts/post_deletion_integration_test.py +624 -0
  296. core_framework-3.1.0/tests/integration/api/posts/post_stats_dirty_marking_test.py +212 -0
  297. core_framework-3.1.0/tests/integration/api/posts/public/__init__.py +0 -0
  298. core_framework-3.1.0/tests/integration/api/posts/public/router_test.py +1015 -0
  299. core_framework-3.1.0/tests/integration/api/system/__init__.py +0 -0
  300. core_framework-3.1.0/tests/integration/api/system/router_test.py +56 -0
  301. core_framework-3.1.0/tests/integration/api/users/__init__.py +0 -0
  302. core_framework-3.1.0/tests/integration/api/users/authenticated/__init__.py +0 -0
  303. core_framework-3.1.0/tests/integration/api/users/authenticated/router_test.py +1100 -0
  304. core_framework-3.1.0/tests/integration/api/users/deletion_audit_integration_test.py +187 -0
  305. core_framework-3.1.0/tests/integration/api/users/public/__init__.py +0 -0
  306. core_framework-3.1.0/tests/integration/api/users/user_deletion_integration_test.py +371 -0
  307. core_framework-3.1.0/tests/integration/worker/__init__.py +0 -0
  308. core_framework-3.1.0/tests/integration/worker/_media_upload_helpers.py +84 -0
  309. core_framework-3.1.0/tests/integration/worker/account_deletion_test.py +385 -0
  310. core_framework-3.1.0/tests/integration/worker/aggregate_comment_stats_test.py +354 -0
  311. core_framework-3.1.0/tests/integration/worker/aggregate_post_stats_test.py +257 -0
  312. core_framework-3.1.0/tests/integration/worker/aggregate_user_stats_test.py +123 -0
  313. core_framework-3.1.0/tests/integration/worker/analytics_refresh_test.py +108 -0
  314. core_framework-3.1.0/tests/integration/worker/avatar_upload_test.py +370 -0
  315. core_framework-3.1.0/tests/integration/worker/banner_upload_test.py +367 -0
  316. core_framework-3.1.0/tests/integration/worker/create_idempotency_retention_test.py +280 -0
  317. core_framework-3.1.0/tests/integration/worker/moderation_outbox_test.py +313 -0
  318. core_framework-3.1.0/tests/integration/worker/mute_lift_test.py +166 -0
  319. core_framework-3.1.0/tests/integration/worker/read_notifications_retention_test.py +169 -0
  320. core_framework-3.1.0/tests/integration/worker/user_outbox_test.py +370 -0
  321. core_framework-3.1.0/tests/integration/worker/utils_test.py +116 -0
  322. core_framework-3.1.0/tests/unit/__init__.py +0 -0
  323. core_framework-3.1.0/tests/unit/application/comments/__init__.py +0 -0
  324. core_framework-3.1.0/tests/unit/core/bundled_alembic_test.py +27 -0
  325. core_framework-3.1.0/tests/unit/core/pagination_test.py +582 -0
  326. core_framework-3.1.0/tests/unit/domains/__init__.py +0 -0
  327. core_framework-3.1.0/tests/unit/domains/comment/__init__.py +0 -0
  328. core_framework-3.1.0/tests/unit/infrastructure/__init__.py +0 -0
  329. core_framework-3.1.0/tests/unit/infrastructure/media/__init__.py +0 -0
  330. core_framework-3.1.0/tests/unit/infrastructure/media/ssh_finals_publisher_adapter_test.py +282 -0
  331. core_framework-3.1.0/uv.lock +2587 -0
  332. core_framework-2.3.3/.cursor/rules/constitution.mdc +0 -42
  333. core_framework-2.3.3/.cursor/skills/code-review/SKILL.md +0 -34
  334. core_framework-2.3.3/.cursor/skills/sync-host-rules/SKILL.md +0 -41
  335. core_framework-2.3.3/.github/workflows/_deploy.yml +0 -201
  336. core_framework-2.3.3/.github/workflows/dev-ci-cd.yaml +0 -162
  337. core_framework-2.3.3/.github/workflows/manual-deployment.yaml +0 -36
  338. core_framework-2.3.3/.github/workflows/publish-pypi.yml +0 -34
  339. core_framework-2.3.3/.github/workflows/test.yaml +0 -109
  340. core_framework-2.3.3/.gitignore +0 -34
  341. core_framework-2.3.3/.pre-commit-config.yaml +0 -51
  342. core_framework-2.3.3/CHANGELOG.md +0 -466
  343. core_framework-2.3.3/PKG-INFO +0 -121
  344. core_framework-2.3.3/README.md +0 -83
  345. core_framework-2.3.3/config.toml +0 -137
  346. core_framework-2.3.3/config.toml.template +0 -121
  347. core_framework-2.3.3/core_framework/api/admin/cache/schemas.py +0 -91
  348. core_framework-2.3.3/core_framework/api/admin/moderation/router.py +0 -211
  349. core_framework-2.3.3/core_framework/api/admin/outbox/router.py +0 -71
  350. core_framework-2.3.3/core_framework/api/admin/router.py +0 -23
  351. core_framework-2.3.3/core_framework/api/attachments/router.py +0 -51
  352. core_framework-2.3.3/core_framework/api/comments/authenticated/router.py +0 -140
  353. core_framework-2.3.3/core_framework/api/comments/authenticated/schemas.py +0 -74
  354. core_framework-2.3.3/core_framework/api/dependencies.py +0 -145
  355. core_framework-2.3.3/core_framework/api/events/schemas.py +0 -21
  356. core_framework-2.3.3/core_framework/api/posts/authenticated/router.py +0 -105
  357. core_framework-2.3.3/core_framework/api/posts/authenticated/schemas.py +0 -72
  358. core_framework-2.3.3/core_framework/api/system/router.py +0 -112
  359. core_framework-2.3.3/core_framework/api/users/authenticated/router.py +0 -558
  360. core_framework-2.3.3/core_framework/application/analytics/refresh_service.py +0 -52
  361. core_framework-2.3.3/core_framework/application/analytics/registry.py +0 -36
  362. core_framework-2.3.3/core_framework/application/auth/auth_service.py +0 -24
  363. core_framework-2.3.3/core_framework/application/bootstrap.py +0 -43
  364. core_framework-2.3.3/core_framework/application/comments/authenticated_service.py +0 -226
  365. core_framework-2.3.3/core_framework/application/events/event_service.py +0 -143
  366. core_framework-2.3.3/core_framework/application/media/README.md +0 -19
  367. core_framework-2.3.3/core_framework/application/media/attachment_read.py +0 -78
  368. core_framework-2.3.3/core_framework/application/media/attachment_service.py +0 -492
  369. core_framework-2.3.3/core_framework/application/media/avatar_service.py +0 -174
  370. core_framework-2.3.3/core_framework/application/moderation/moderator_service.py +0 -42
  371. core_framework-2.3.3/core_framework/application/moderation/user_service.py +0 -196
  372. core_framework-2.3.3/core_framework/application/notifications/mute_service.py +0 -34
  373. core_framework-2.3.3/core_framework/application/notifications/notification_service.py +0 -166
  374. core_framework-2.3.3/core_framework/application/outbox/events.py +0 -118
  375. core_framework-2.3.3/core_framework/application/outbox/ops_service.py +0 -77
  376. core_framework-2.3.3/core_framework/application/outbox/polling_service.py +0 -64
  377. core_framework-2.3.3/core_framework/application/outbox/processing_service.py +0 -69
  378. core_framework-2.3.3/core_framework/application/posts/aggregation_service.py +0 -54
  379. core_framework-2.3.3/core_framework/application/posts/authenticated_service.py +0 -104
  380. core_framework-2.3.3/core_framework/application/shared/worker_jobs.py +0 -19
  381. core_framework-2.3.3/core_framework/application/users/admin_service.py +0 -305
  382. core_framework-2.3.3/core_framework/application/users/authenticated_service.py +0 -377
  383. core_framework-2.3.3/core_framework/constants.py +0 -5
  384. core_framework-2.3.3/core_framework/core/__init__.py +0 -33
  385. core_framework-2.3.3/core_framework/core/cache.py +0 -171
  386. core_framework-2.3.3/core_framework/core/context.py +0 -14
  387. core_framework-2.3.3/core_framework/core/database.py +0 -116
  388. core_framework-2.3.3/core_framework/core/exception_handlers/common.py +0 -63
  389. core_framework-2.3.3/core_framework/core/http_client.py +0 -64
  390. core_framework-2.3.3/core_framework/core/logging.py +0 -79
  391. core_framework-2.3.3/core_framework/core/middleware.py +0 -111
  392. core_framework-2.3.3/core_framework/core/observability.py +0 -31
  393. core_framework-2.3.3/core_framework/core/pagination.py +0 -200
  394. core_framework-2.3.3/core_framework/core/redis.py +0 -61
  395. core_framework-2.3.3/core_framework/core/settings.py +0 -411
  396. core_framework-2.3.3/core_framework/domains/analytics/__init__.py +0 -22
  397. core_framework-2.3.3/core_framework/domains/analytics/dependencies.py +0 -64
  398. core_framework-2.3.3/core_framework/domains/analytics/service.py +0 -300
  399. core_framework-2.3.3/core_framework/domains/auth/README.md +0 -68
  400. core_framework-2.3.3/core_framework/domains/auth/ports/auth.py +0 -53
  401. core_framework-2.3.3/core_framework/domains/auth/service.py +0 -57
  402. core_framework-2.3.3/core_framework/domains/comment/__init__.py +0 -51
  403. core_framework-2.3.3/core_framework/domains/comment/dependencies.py +0 -61
  404. core_framework-2.3.3/core_framework/domains/comment/repository.py +0 -2397
  405. core_framework-2.3.3/core_framework/domains/comment/service.py +0 -911
  406. core_framework-2.3.3/core_framework/domains/media/README.md +0 -30
  407. core_framework-2.3.3/core_framework/domains/media/__init__.py +0 -59
  408. core_framework-2.3.3/core_framework/domains/media/attachment/components/finals_publisher.py +0 -41
  409. core_framework-2.3.3/core_framework/domains/media/attachment/components/staging.py +0 -166
  410. core_framework-2.3.3/core_framework/domains/media/attachment/ports/staging.py +0 -46
  411. core_framework-2.3.3/core_framework/domains/media/avatar/components/finals_publisher.py +0 -41
  412. core_framework-2.3.3/core_framework/domains/media/avatar/ports/staging.py +0 -43
  413. core_framework-2.3.3/core_framework/domains/media/banner/components/finals_publisher.py +0 -27
  414. core_framework-2.3.3/core_framework/domains/media/banner/components/staging.py +0 -112
  415. core_framework-2.3.3/core_framework/domains/media/banner/components/variant_encoder.py +0 -34
  416. core_framework-2.3.3/core_framework/domains/media/banner/ports/staging.py +0 -43
  417. core_framework-2.3.3/core_framework/domains/media/banner/service.py +0 -335
  418. core_framework-2.3.3/core_framework/domains/media/dependencies.py +0 -333
  419. core_framework-2.3.3/core_framework/domains/media/shared/exceptions.py +0 -9
  420. core_framework-2.3.3/core_framework/domains/media/shared/utils.py +0 -43
  421. core_framework-2.3.3/core_framework/domains/moderation/__init__.py +0 -41
  422. core_framework-2.3.3/core_framework/domains/moderation/dependencies.py +0 -90
  423. core_framework-2.3.3/core_framework/domains/moderation/repository.py +0 -1267
  424. core_framework-2.3.3/core_framework/domains/moderation/service.py +0 -858
  425. core_framework-2.3.3/core_framework/domains/notification/README.md +0 -156
  426. core_framework-2.3.3/core_framework/domains/notification/__init__.py +0 -16
  427. core_framework-2.3.3/core_framework/domains/notification/dependencies.py +0 -61
  428. core_framework-2.3.3/core_framework/domains/notification/repository.py +0 -603
  429. core_framework-2.3.3/core_framework/domains/notification/service.py +0 -281
  430. core_framework-2.3.3/core_framework/domains/outbox/README.md +0 -65
  431. core_framework-2.3.3/core_framework/domains/outbox/__init__.py +0 -17
  432. core_framework-2.3.3/core_framework/domains/outbox/models.py +0 -79
  433. core_framework-2.3.3/core_framework/domains/outbox/ports/producer.py +0 -42
  434. core_framework-2.3.3/core_framework/domains/outbox/service.py +0 -66
  435. core_framework-2.3.3/core_framework/domains/post/__init__.py +0 -41
  436. core_framework-2.3.3/core_framework/domains/post/dependencies.py +0 -61
  437. core_framework-2.3.3/core_framework/domains/post/outcomes.py +0 -7
  438. core_framework-2.3.3/core_framework/domains/post/repository.py +0 -2248
  439. core_framework-2.3.3/core_framework/domains/post/service.py +0 -908
  440. core_framework-2.3.3/core_framework/domains/user/__init__.py +0 -55
  441. core_framework-2.3.3/core_framework/domains/user/dependencies.py +0 -90
  442. core_framework-2.3.3/core_framework/domains/user/outcomes.py +0 -25
  443. core_framework-2.3.3/core_framework/domains/user/repository.py +0 -1704
  444. core_framework-2.3.3/core_framework/domains/user/service.py +0 -961
  445. core_framework-2.3.3/core_framework/domains/utils.py +0 -281
  446. core_framework-2.3.3/core_framework/infrastructure/firebase/firebase_auth_adapter.py +0 -110
  447. core_framework-2.3.3/core_framework/infrastructure/media/local_attachment_staging_adapter.py +0 -75
  448. core_framework-2.3.3/core_framework/infrastructure/media/local_banner_staging_adapter.py +0 -62
  449. core_framework-2.3.3/core_framework/infrastructure/media/local_staging_adapter.py +0 -92
  450. core_framework-2.3.3/core_framework/infrastructure/media/pillow_staging_image.py +0 -72
  451. core_framework-2.3.3/core_framework/infrastructure/media/ssh_attachment_finals_publisher_adapter.py +0 -114
  452. core_framework-2.3.3/core_framework/infrastructure/media/ssh_banner_finals_publisher_adapter.py +0 -91
  453. core_framework-2.3.3/core_framework/infrastructure/media/ssh_finals_publisher_adapter.py +0 -117
  454. core_framework-2.3.3/core_framework/infrastructure/outbox/outbox_consumer_adapter.py +0 -161
  455. core_framework-2.3.3/core_framework/infrastructure/outbox/outbox_producer_adapter.py +0 -73
  456. core_framework-2.3.3/core_framework/main.py +0 -91
  457. core_framework-2.3.3/core_framework/testing/arq.py +0 -122
  458. core_framework-2.3.3/core_framework/testing/auth.py +0 -301
  459. core_framework-2.3.3/core_framework/testing/firebase.py +0 -95
  460. core_framework-2.3.3/core_framework/testing/httpx_test_client.py +0 -28
  461. core_framework-2.3.3/core_framework/testing/plugin.py +0 -216
  462. core_framework-2.3.3/core_framework/worker/main.py +0 -95
  463. core_framework-2.3.3/core_framework/worker/schedules/__init__.py +0 -125
  464. core_framework-2.3.3/core_framework/worker/schedules/analytics_refresh_cron.py +0 -20
  465. core_framework-2.3.3/core_framework/worker/schedules/schedule_aggregate_comment_stats.py +0 -43
  466. core_framework-2.3.3/core_framework/worker/schedules/schedule_aggregate_post_stats.py +0 -41
  467. core_framework-2.3.3/core_framework/worker/schedules/schedule_aggregate_user_stats.py +0 -41
  468. core_framework-2.3.3/core_framework/worker/schedules/schedule_expired_account_deletions.py +0 -35
  469. core_framework-2.3.3/core_framework/worker/schedules/schedule_expired_mute_lifts.py +0 -32
  470. core_framework-2.3.3/core_framework/worker/schedules/schedule_prune_analytics_daily_facts.py +0 -16
  471. core_framework-2.3.3/core_framework/worker/schedules/schedule_prune_post_views.py +0 -17
  472. core_framework-2.3.3/core_framework/worker/schedules/schedule_purge_expired_create_idempotency_keys.py +0 -23
  473. core_framework-2.3.3/core_framework/worker/tasks/__init__.py +0 -57
  474. core_framework-2.3.3/core_framework/worker/tasks/process_media_asset_variants.py +0 -38
  475. core_framework-2.3.3/core_framework/worker/tasks/process_mute_lift.py +0 -16
  476. core_framework-2.3.3/dockerfile +0 -70
  477. core_framework-2.3.3/docs/README.md +0 -46
  478. core_framework-2.3.3/docs/deployments/README.md +0 -35
  479. core_framework-2.3.3/docs/deployments/deploy-playbook.md +0 -202
  480. core_framework-2.3.3/docs/deployments/edge-upload-limits.md +0 -67
  481. core_framework-2.3.3/docs/deployments/examples/Caddyfile.example +0 -48
  482. core_framework-2.3.3/docs/deployments/guides/app-server-deploy-ssh.md +0 -78
  483. core_framework-2.3.3/docs/deployments/guides/image-server-ssh.md +0 -93
  484. core_framework-2.3.3/docs/deployments/guides/postgres-setup.md +0 -153
  485. core_framework-2.3.3/docs/deployments/guides/redis-setup.md +0 -109
  486. core_framework-2.3.3/docs/deployments/guides/ubuntu-server-setup.md +0 -174
  487. core_framework-2.3.3/docs/deployments/release-playbook.md +0 -84
  488. core_framework-2.3.3/docs/design/README.md +0 -30
  489. core_framework-2.3.3/docs/design/create-idempotency-design.md +0 -284
  490. core_framework-2.3.3/docs/design/event-outbox-design.md +0 -603
  491. core_framework-2.3.3/docs/design/events-ingest-design.md +0 -226
  492. core_framework-2.3.3/docs/design/media-storage-topology.md +0 -141
  493. core_framework-2.3.3/docs/design/outbox-admin-ops-design.md +0 -334
  494. core_framework-2.3.3/docs/domains/README.md +0 -23
  495. core_framework-2.3.3/docs/domains/auth/access_control.md +0 -59
  496. core_framework-2.3.3/docs/domains/auth/registration.md +0 -59
  497. core_framework-2.3.3/docs/domains/comments/create_comment.md +0 -158
  498. core_framework-2.3.3/docs/domains/comments/edit_comment.md +0 -73
  499. core_framework-2.3.3/docs/domains/deletion/posts.md +0 -311
  500. core_framework-2.3.3/docs/domains/events/events.md +0 -242
  501. core_framework-2.3.3/docs/domains/media/banner-upload-design.md +0 -150
  502. core_framework-2.3.3/docs/domains/media/post-comment-attachments-design.md +0 -521
  503. core_framework-2.3.3/docs/domains/media/upload-pipeline-design.md +0 -467
  504. core_framework-2.3.3/docs/domains/moderation/restrictions.md +0 -250
  505. core_framework-2.3.3/docs/domains/notifications/notification_inbox.md +0 -386
  506. core_framework-2.3.3/docs/domains/outbox/admin_outbox_ops.md +0 -184
  507. core_framework-2.3.3/docs/domains/posts/README.md +0 -33
  508. core_framework-2.3.3/docs/domains/posts/create_post.md +0 -112
  509. core_framework-2.3.3/docs/domains/users/account_deletion.md +0 -110
  510. core_framework-2.3.3/docs/domains/users/admin_users.md +0 -166
  511. core_framework-2.3.3/docs/domains/users/check_username_exists.md +0 -57
  512. core_framework-2.3.3/docs/domains/users/user_stats_aggregation.md +0 -79
  513. core_framework-2.3.3/docs/library/capability-wiring.md +0 -123
  514. core_framework-2.3.3/docs/library/core-framework-migration.md +0 -252
  515. core_framework-2.3.3/docs/library/overview.md +0 -53
  516. core_framework-2.3.3/docs/library/package-api.md +0 -320
  517. core_framework-2.3.3/docs/library/testing-plugin-design.md +0 -317
  518. core_framework-2.3.3/docs/library/workers.md +0 -81
  519. core_framework-2.3.3/docs/platform/architecture-decisions.md +0 -537
  520. core_framework-2.3.3/docs/platform/client-error-visibility.md +0 -271
  521. core_framework-2.3.3/docs/platform/conventions.md +0 -99
  522. core_framework-2.3.3/docs/platform/domain-services-and-adapters.md +0 -60
  523. core_framework-2.3.3/docs/testing.md +0 -150
  524. core_framework-2.3.3/docs/todo.md +0 -75
  525. core_framework-2.3.3/makefile +0 -68
  526. core_framework-2.3.3/pyproject.toml +0 -137
  527. core_framework-2.3.3/tests/e2e/_settings.py +0 -40
  528. core_framework-2.3.3/tests/e2e/smoke/system_test.py +0 -32
  529. core_framework-2.3.3/tests/integration/analytics/_helpers.py +0 -140
  530. core_framework-2.3.3/tests/integration/api/_destructive_delete_helpers.py +0 -51
  531. core_framework-2.3.3/tests/integration/api/_http_helpers.py +0 -106
  532. core_framework-2.3.3/tests/integration/api/_user_deletion_helpers.py +0 -63
  533. core_framework-2.3.3/tests/integration/api/_user_helpers.py +0 -24
  534. core_framework-2.3.3/tests/integration/api/admin/analytics/router_test.py +0 -265
  535. core_framework-2.3.3/tests/integration/api/admin/cache/router_test.py +0 -307
  536. core_framework-2.3.3/tests/integration/api/admin/comments/router_test.py +0 -749
  537. core_framework-2.3.3/tests/integration/api/admin/moderation/router_test.py +0 -2554
  538. core_framework-2.3.3/tests/integration/api/admin/outbox/router_test.py +0 -333
  539. core_framework-2.3.3/tests/integration/api/admin/posts/router_test.py +0 -481
  540. core_framework-2.3.3/tests/integration/api/attachments/_helpers.py +0 -200
  541. core_framework-2.3.3/tests/integration/api/comments/authenticated/comment_writes_integration_test.py +0 -667
  542. core_framework-2.3.3/tests/integration/api/comments/comment_attachments_integration_test.py +0 -588
  543. core_framework-2.3.3/tests/integration/api/comments/public/router_test.py +0 -528
  544. core_framework-2.3.3/tests/integration/api/create_idempotency_integration_test.py +0 -482
  545. core_framework-2.3.3/tests/integration/api/events/router_test.py +0 -759
  546. core_framework-2.3.3/tests/integration/api/mentions/mentions_integration_test.py +0 -394
  547. core_framework-2.3.3/tests/integration/api/notifications/router_test.py +0 -545
  548. core_framework-2.3.3/tests/integration/api/posts/authenticated/post_writes_integration_test.py +0 -320
  549. core_framework-2.3.3/tests/integration/api/posts/comment_count_aggregation_test.py +0 -144
  550. core_framework-2.3.3/tests/integration/api/posts/followers_visibility_test.py +0 -150
  551. core_framework-2.3.3/tests/integration/api/posts/post_attachments_integration_test.py +0 -677
  552. core_framework-2.3.3/tests/integration/api/posts/post_deletion_integration_test.py +0 -642
  553. core_framework-2.3.3/tests/integration/api/posts/post_stats_dirty_marking_test.py +0 -219
  554. core_framework-2.3.3/tests/integration/api/posts/public/router_test.py +0 -1056
  555. core_framework-2.3.3/tests/integration/api/system/router_test.py +0 -56
  556. core_framework-2.3.3/tests/integration/api/users/authenticated/router_test.py +0 -1095
  557. core_framework-2.3.3/tests/integration/api/users/deletion_audit_integration_test.py +0 -185
  558. core_framework-2.3.3/tests/integration/api/users/user_deletion_integration_test.py +0 -379
  559. core_framework-2.3.3/tests/integration/worker/_media_upload_helpers.py +0 -77
  560. core_framework-2.3.3/tests/integration/worker/account_deletion_test.py +0 -386
  561. core_framework-2.3.3/tests/integration/worker/aggregate_comment_stats_test.py +0 -360
  562. core_framework-2.3.3/tests/integration/worker/aggregate_post_stats_test.py +0 -264
  563. core_framework-2.3.3/tests/integration/worker/aggregate_user_stats_test.py +0 -123
  564. core_framework-2.3.3/tests/integration/worker/analytics_refresh_test.py +0 -109
  565. core_framework-2.3.3/tests/integration/worker/avatar_upload_test.py +0 -370
  566. core_framework-2.3.3/tests/integration/worker/banner_upload_test.py +0 -367
  567. core_framework-2.3.3/tests/integration/worker/create_idempotency_retention_test.py +0 -285
  568. core_framework-2.3.3/tests/integration/worker/moderation_outbox_test.py +0 -314
  569. core_framework-2.3.3/tests/integration/worker/mute_lift_test.py +0 -168
  570. core_framework-2.3.3/tests/integration/worker/user_outbox_test.py +0 -374
  571. core_framework-2.3.3/tests/integration/worker/utils_test.py +0 -119
  572. core_framework-2.3.3/tests/unit/core/bundled_alembic_test.py +0 -29
  573. core_framework-2.3.3/tests/unit/core/pagination_test.py +0 -580
  574. core_framework-2.3.3/tests/unit/infrastructure/media/ssh_finals_publisher_adapter_test.py +0 -278
  575. core_framework-2.3.3/uv.lock +0 -2416
  576. {core_framework-2.3.3 → core_framework-3.1.0}/.agents/skills/fastapi +0 -0
  577. {core_framework-2.3.3 → core_framework-3.1.0}/.agents/skills/library-skills/.library-skills.json +0 -0
  578. {core_framework-2.3.3 → core_framework-3.1.0}/.agents/skills/library-skills/SKILL.md +0 -0
  579. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/rules/alembic-migrations.mdc +0 -0
  580. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/rules/api-layer.mdc +0 -0
  581. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/rules/api-reference-docs.mdc +0 -0
  582. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/rules/api-validation.mdc +0 -0
  583. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/rules/application-layer.mdc +0 -0
  584. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/rules/constants-final.mdc +0 -0
  585. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/rules/database-triggers.mdc +0 -0
  586. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/rules/docstrings.mdc +0 -0
  587. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/rules/domain-caller-context.mdc +0 -0
  588. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/rules/domain-imports.mdc +0 -0
  589. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/rules/domain-input-guards.mdc +0 -0
  590. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/rules/domain-repository-exceptions.mdc +0 -0
  591. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/rules/domain-services-and-adapters.mdc +0 -0
  592. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/rules/error-boundary.mdc +0 -0
  593. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/rules/flow-documentation.mdc +0 -0
  594. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/rules/inline-raise-messages.mdc +0 -0
  595. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/rules/integration-test-strategy.mdc +0 -0
  596. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/rules/layer-boundaries.mdc +0 -0
  597. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/rules/no-code-in-docs.mdc +0 -0
  598. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/rules/postgres-config-conventions.mdc +0 -0
  599. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/rules/repository-schema-isolation.mdc +0 -0
  600. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/rules/strong-reads.mdc +0 -0
  601. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/rules/structured-logging.mdc +0 -0
  602. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/skills/add-config/SKILL.md +0 -0
  603. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/skills/add-domain/SKILL.md +0 -0
  604. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/skills/fastapi +0 -0
  605. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/skills/implement-feature/SKILL.md +0 -0
  606. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/skills/recommend-features/SKILL.md +0 -0
  607. {core_framework-2.3.3 → core_framework-3.1.0}/.cursor/skills/write-flow-doc/SKILL.md +0 -0
  608. {core_framework-2.3.3 → core_framework-3.1.0}/.dockerignore +0 -0
  609. {core_framework-2.3.3 → core_framework-3.1.0}/.python-version +0 -0
  610. {core_framework-2.3.3 → core_framework-3.1.0}/LICENSE +0 -0
  611. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/analytics/alembic/README +0 -0
  612. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/analytics/alembic/env.py +0 -0
  613. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/analytics/alembic/script.py.mako +0 -0
  614. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/analytics/alembic/versions/2d61a5e88d76_analytics_utm_events_add_kind.py +0 -0
  615. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/analytics/alembic/versions/585105e1149e_analytics_add_utm_events.py +0 -0
  616. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/analytics/alembic/versions/5b9ac98bb150_analytics_daily_fact.py +0 -0
  617. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/analytics/alembic/versions/7f2a9c1d4e8b_analytics_daily_fact_day_index.py +0 -0
  618. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/analytics/alembic.ini +0 -0
  619. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/comment/alembic/README +0 -0
  620. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/comment/alembic/env.py +0 -0
  621. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/comment/alembic/script.py.mako +0 -0
  622. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/comment/alembic/versions/comment_add_comment_attachments.py +0 -0
  623. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/comment/alembic/versions/comment_add_comment_create_idempotency.py +0 -0
  624. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/comment/alembic/versions/comment_add_comment_create_idempotency_created_at_index.py +0 -0
  625. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/comment/alembic/versions/comment_add_comment_mentions.py +0 -0
  626. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/comment/alembic/versions/comment_tombstone_status_model.py +0 -0
  627. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/comment/alembic/versions/v1_comment_init_baseline.py +0 -0
  628. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/comment/alembic.ini +0 -0
  629. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/extension/alembic/README +0 -0
  630. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/extension/alembic/env.py +0 -0
  631. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/extension/alembic/script.py.mako +0 -0
  632. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/extension/alembic/versions/v1_ext_init_baseline.py +0 -0
  633. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/extension/alembic.ini +0 -0
  634. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/media/alembic/README +0 -0
  635. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/media/alembic/env.py +0 -0
  636. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/media/alembic/script.py.mako +0 -0
  637. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/media/alembic/versions/media_add_attachment_staging_registry.py +0 -0
  638. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/media/alembic/versions/media_add_banner_staging_and_lease.py +0 -0
  639. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/media/alembic/versions/media_attachment_staging_registry_published_at.py +0 -0
  640. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/media/alembic/versions/v1_media_init_baseline.py +0 -0
  641. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/media/alembic.ini +0 -0
  642. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/moderation/alembic/README +0 -0
  643. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/moderation/alembic/env.py +0 -0
  644. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/moderation/alembic/script.py.mako +0 -0
  645. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/moderation/alembic/versions/moderation_add_event_outbox.py +0 -0
  646. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/moderation/alembic/versions/moderation_add_event_outbox_dead_indexes.py +0 -0
  647. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/moderation/alembic/versions/moderation_add_event_outbox_pending_created_at_index.py +0 -0
  648. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/moderation/alembic/versions/v1_mod_init_baseline.py +0 -0
  649. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/moderation/alembic.ini +0 -0
  650. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/notification/alembic/README +0 -0
  651. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/notification/alembic/env.py +0 -0
  652. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/notification/alembic/script.py.mako +0 -0
  653. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/notification/alembic/versions/v1_notif_init_baseline.py +0 -0
  654. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/notification/alembic.ini +0 -0
  655. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/post/alembic/README +0 -0
  656. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/post/alembic/env.py +0 -0
  657. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/post/alembic/script.py.mako +0 -0
  658. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/post/alembic/versions/post_add_post_attachments.py +0 -0
  659. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/post/alembic/versions/post_add_post_create_idempotency.py +0 -0
  660. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/post/alembic/versions/post_add_post_create_idempotency_created_at_index.py +0 -0
  661. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/post/alembic/versions/post_add_post_mentions.py +0 -0
  662. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/post/alembic/versions/post_post_views_retention_high_water_mark.py +0 -0
  663. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/post/alembic/versions/post_tombstone_status_model.py +0 -0
  664. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/post/alembic/versions/v1_post_init_baseline.py +0 -0
  665. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/post/alembic.ini +0 -0
  666. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/user/alembic/README +0 -0
  667. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/user/alembic/env.py +0 -0
  668. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/user/alembic/script.py.mako +0 -0
  669. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/user/alembic/versions/44df70a45ba6_user_add_signup_events.py +0 -0
  670. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/user/alembic/versions/user_add_avatar_ingest_sequences.py +0 -0
  671. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/user/alembic/versions/user_add_banner_ingest_sequences.py +0 -0
  672. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/user/alembic/versions/user_add_date_of_birth_to_profiles.py +0 -0
  673. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/user/alembic/versions/user_add_event_outbox.py +0 -0
  674. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/user/alembic/versions/user_add_event_outbox_dead_indexes.py +0 -0
  675. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/user/alembic/versions/user_add_event_outbox_pending_created_at_index.py +0 -0
  676. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/user/alembic/versions/user_reserve_sentinel_user_ids.py +0 -0
  677. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/user/alembic/versions/v1_user_init_baseline.py +0 -0
  678. {core_framework-2.3.3 → core_framework-3.1.0}/alembic/user/alembic.ini +0 -0
  679. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/__init__.py +0 -0
  680. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/__init__.py +0 -0
  681. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/admin/__init__.py +0 -0
  682. {core_framework-2.3.3/core_framework/api/admin/moderation → core_framework-3.1.0/core_framework/api/admin/analytics}/__init__.py +0 -0
  683. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/admin/analytics/router.py +0 -0
  684. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/admin/analytics/schemas.py +0 -0
  685. {core_framework-2.3.3/core_framework/api/admin/users → core_framework-3.1.0/core_framework/api/admin/cache}/__init__.py +0 -0
  686. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/admin/cache/router.py +0 -0
  687. {core_framework-2.3.3/core_framework/api/auth → core_framework-3.1.0/core_framework/api/admin/comments}/__init__.py +0 -0
  688. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/admin/comments/router.py +0 -0
  689. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/admin/comments/schemas.py +0 -0
  690. {core_framework-2.3.3/core_framework/api/system → core_framework-3.1.0/core_framework/api/admin/moderation}/__init__.py +0 -0
  691. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/admin/moderation/schemas.py +0 -0
  692. {core_framework-2.3.3/core_framework/api/users → core_framework-3.1.0/core_framework/api/admin/outbox}/__init__.py +0 -0
  693. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/admin/outbox/schemas.py +0 -0
  694. {core_framework-2.3.3/core_framework/api/users/authenticated → core_framework-3.1.0/core_framework/api/admin/posts}/__init__.py +0 -0
  695. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/admin/posts/router.py +0 -0
  696. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/admin/posts/schemas.py +0 -0
  697. {core_framework-2.3.3/core_framework/api/users/public → core_framework-3.1.0/core_framework/api/admin/users}/__init__.py +0 -0
  698. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/admin/users/router.py +0 -0
  699. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/admin/users/schemas.py +0 -0
  700. {core_framework-2.3.3/core_framework/application → core_framework-3.1.0/core_framework/api/attachments}/__init__.py +0 -0
  701. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/attachments/schemas.py +0 -0
  702. {core_framework-2.3.3/core_framework/application → core_framework-3.1.0/core_framework/api}/auth/__init__.py +0 -0
  703. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/auth/router.py +0 -0
  704. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/auth/schemas.py +0 -0
  705. {core_framework-2.3.3/core_framework/application/moderation → core_framework-3.1.0/core_framework/api/comments}/__init__.py +0 -0
  706. {core_framework-2.3.3/core_framework/application/shared → core_framework-3.1.0/core_framework/api/comments/authenticated}/__init__.py +0 -0
  707. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/comments/authenticated/mappers.py +0 -0
  708. {core_framework-2.3.3/core_framework/application/users → core_framework-3.1.0/core_framework/api/comments/public}/__init__.py +0 -0
  709. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/comments/public/router.py +0 -0
  710. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/comments/public/schemas.py +0 -0
  711. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/comments/router.py +0 -0
  712. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/comments/schemas.py +0 -0
  713. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/constants.py +0 -0
  714. {core_framework-2.3.3/core_framework/domains → core_framework-3.1.0/core_framework/api/events}/__init__.py +0 -0
  715. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/events/router.py +0 -0
  716. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/idempotency/__init__.py +0 -0
  717. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/idempotency/dependencies.py +0 -0
  718. {core_framework-2.3.3/core_framework/domains/auth/ports → core_framework-3.1.0/core_framework/api/notifications}/__init__.py +0 -0
  719. {core_framework-2.3.3/core_framework/domains/media/avatar → core_framework-3.1.0/core_framework/api/notifications/authenticated}/__init__.py +0 -0
  720. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/notifications/authenticated/router.py +0 -0
  721. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/notifications/authenticated/schemas.py +0 -0
  722. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/notifications/router.py +0 -0
  723. {core_framework-2.3.3/core_framework/domains/media/avatar/components → core_framework-3.1.0/core_framework/api/posts}/__init__.py +0 -0
  724. {core_framework-2.3.3/core_framework/domains/media/avatar/ports → core_framework-3.1.0/core_framework/api/posts/authenticated}/__init__.py +0 -0
  725. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/posts/authenticated/mappers.py +0 -0
  726. {core_framework-2.3.3/core_framework/domains/media/shared → core_framework-3.1.0/core_framework/api/posts/public}/__init__.py +0 -0
  727. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/posts/public/router.py +0 -0
  728. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/posts/public/schemas.py +0 -0
  729. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/posts/router.py +0 -0
  730. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/posts/schemas.py +0 -0
  731. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/router.py +0 -0
  732. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/schemas.py +0 -0
  733. {core_framework-2.3.3/core_framework/infrastructure → core_framework-3.1.0/core_framework/api/system}/__init__.py +0 -0
  734. {core_framework-2.3.3/core_framework/infrastructure/firebase → core_framework-3.1.0/core_framework/api/users}/__init__.py +0 -0
  735. {core_framework-2.3.3/core_framework/infrastructure/media → core_framework-3.1.0/core_framework/api/users/authenticated}/__init__.py +0 -0
  736. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/users/authenticated/mappers.py +0 -0
  737. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/users/authenticated/schemas.py +0 -0
  738. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/users/mappers.py +0 -0
  739. {core_framework-2.3.3/core_framework/worker → core_framework-3.1.0/core_framework/api/users/public}/__init__.py +0 -0
  740. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/users/public/router.py +0 -0
  741. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/users/public/schemas.py +0 -0
  742. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/users/router.py +0 -0
  743. {core_framework-2.3.3/tests → core_framework-3.1.0/core_framework/api/users/shared}/__init__.py +0 -0
  744. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/api/users/shared/schemas.py +0 -0
  745. {core_framework-2.3.3/tests/integration → core_framework-3.1.0/core_framework/application}/__init__.py +0 -0
  746. {core_framework-2.3.3/tests/integration/api → core_framework-3.1.0/core_framework/application/analytics}/__init__.py +0 -0
  747. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/analytics/bucket_service.py +0 -0
  748. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/analytics/prune_service.py +0 -0
  749. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/analytics/read_service.py +0 -0
  750. {core_framework-2.3.3/tests/integration/api/admin → core_framework-3.1.0/core_framework/application/analytics/sources}/__init__.py +0 -0
  751. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/analytics/sources/comment_created.py +0 -0
  752. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/analytics/sources/post_created.py +0 -0
  753. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/analytics/sources/post_viewed.py +0 -0
  754. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/analytics/sources/user_registered.py +0 -0
  755. {core_framework-2.3.3/tests/integration/api/admin/analytics → core_framework-3.1.0/core_framework/application/auth}/__init__.py +0 -0
  756. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/auth/access_service.py +0 -0
  757. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/auth/models.py +0 -0
  758. {core_framework-2.3.3/tests/integration/api/admin → core_framework-3.1.0/core_framework/application}/cache/__init__.py +0 -0
  759. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/cache/invalidate_service.py +0 -0
  760. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/cache/models.py +0 -0
  761. {core_framework-2.3.3/tests/integration/api/admin → core_framework-3.1.0/core_framework/application}/comments/__init__.py +0 -0
  762. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/comments/admin_service.py +0 -0
  763. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/comments/aggregation_service.py +0 -0
  764. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/comments/cleanup_service.py +0 -0
  765. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/comments/public_service.py +0 -0
  766. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/events/README.md +0 -0
  767. {core_framework-2.3.3/tests/integration/api/admin/moderation → core_framework-3.1.0/core_framework/application/events}/__init__.py +0 -0
  768. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/events/event_token.py +0 -0
  769. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/events/models.py +0 -0
  770. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/events/utm_capture_kinds.py +0 -0
  771. {core_framework-2.3.3/tests/integration/api/admin/outbox → core_framework-3.1.0/core_framework/application/media}/__init__.py +0 -0
  772. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/media/banner_service.py +0 -0
  773. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/media/ingest_guards.py +0 -0
  774. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/media/read_url_config.py +0 -0
  775. {core_framework-2.3.3/tests/integration/api/admin/posts → core_framework-3.1.0/core_framework/application/moderation}/__init__.py +0 -0
  776. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/moderation/appeal_service.py +0 -0
  777. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/moderation/report_service.py +0 -0
  778. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/moderation/scheduled_service.py +0 -0
  779. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/notifications/README.md +0 -0
  780. {core_framework-2.3.3/tests/integration/api/admin/users → core_framework-3.1.0/core_framework/application/notifications}/__init__.py +0 -0
  781. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/notifications/enums.py +0 -0
  782. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/notifications/inbox_service.py +0 -0
  783. {core_framework-2.3.3/tests/integration/api/auth → core_framework-3.1.0/core_framework/application/outbox}/__init__.py +0 -0
  784. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/outbox/block_mirrors.py +0 -0
  785. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/outbox/exceptions.py +0 -0
  786. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/outbox/follow_mirrors.py +0 -0
  787. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/outbox/handlers.py +0 -0
  788. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/outbox/restriction_mirrors.py +0 -0
  789. {core_framework-2.3.3/tests/integration/api/comments → core_framework-3.1.0/core_framework/application/posts}/__init__.py +0 -0
  790. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/posts/admin_service.py +0 -0
  791. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/posts/cleanup_service.py +0 -0
  792. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/posts/public_service.py +0 -0
  793. {core_framework-2.3.3/tests/integration/api/comments/authenticated → core_framework-3.1.0/core_framework/application/shared}/__init__.py +0 -0
  794. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/shared/enums.py +0 -0
  795. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/shared/exceptions.py +0 -0
  796. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/shared/request_context.py +0 -0
  797. {core_framework-2.3.3/tests/integration/api/comments/public → core_framework-3.1.0/core_framework/application/users}/__init__.py +0 -0
  798. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/users/aggregation_service.py +0 -0
  799. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/users/deletion_audit.py +0 -0
  800. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/users/enums.py +0 -0
  801. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/users/public_service.py +0 -0
  802. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/users/scheduled_service.py +0 -0
  803. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/application/users/user_deletion_service.py +0 -0
  804. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/asgi.py +0 -0
  805. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/bundled_alembic.py +0 -0
  806. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/core/exception_handlers/__init__.py +0 -0
  807. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/core/exception_handlers/application.py +0 -0
  808. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/core/exception_handlers/setup.py +0 -0
  809. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/core/exceptions.py +0 -0
  810. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/core/firebase.py +0 -0
  811. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/core/runtime.py +0 -0
  812. {core_framework-2.3.3/tests/integration/api/notifications → core_framework-3.1.0/core_framework/domains}/__init__.py +0 -0
  813. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/analytics/README.md +0 -0
  814. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/analytics/constants.py +0 -0
  815. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/analytics/exceptions.py +0 -0
  816. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/analytics/models.py +0 -0
  817. {core_framework-2.3.3/tests/integration/api/posts → core_framework-3.1.0/core_framework/domains/analytics/ports}/__init__.py +0 -0
  818. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/analytics/ports/activity_source.py +0 -0
  819. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/analytics/repository.py +0 -0
  820. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/auth/__init__.py +0 -0
  821. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/auth/dependencies.py +0 -0
  822. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/auth/exceptions.py +0 -0
  823. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/auth/models.py +0 -0
  824. {core_framework-2.3.3/tests/integration/api/posts/public → core_framework-3.1.0/core_framework/domains/auth/ports}/__init__.py +0 -0
  825. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/comment/README.md +0 -0
  826. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/comment/constants.py +0 -0
  827. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/comment/enums.py +0 -0
  828. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/comment/exceptions.py +0 -0
  829. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/comment/models.py +0 -0
  830. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/comment/outcomes.py +0 -0
  831. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/exceptions.py +0 -0
  832. {core_framework-2.3.3/tests/integration/api/system → core_framework-3.1.0/core_framework/domains/media/attachment}/__init__.py +0 -0
  833. {core_framework-2.3.3/tests/integration/api/users → core_framework-3.1.0/core_framework/domains/media/attachment/components}/__init__.py +0 -0
  834. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/media/attachment/components/variant_encoder.py +0 -0
  835. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/media/attachment/constants.py +0 -0
  836. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/media/attachment/exceptions.py +0 -0
  837. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/media/attachment/models.py +0 -0
  838. {core_framework-2.3.3/tests/integration/api/users/authenticated → core_framework-3.1.0/core_framework/domains/media/attachment/ports}/__init__.py +0 -0
  839. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/media/attachment/ports/finals_publisher.py +0 -0
  840. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/media/attachment/ports/variant_encoder.py +0 -0
  841. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/media/attachment/service.py +0 -0
  842. {core_framework-2.3.3/tests/integration/api/users/public → core_framework-3.1.0/core_framework/domains/media/avatar}/__init__.py +0 -0
  843. {core_framework-2.3.3/tests/integration/worker → core_framework-3.1.0/core_framework/domains/media/avatar/components}/__init__.py +0 -0
  844. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/media/avatar/components/staging.py +0 -0
  845. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/media/avatar/components/variant_encoder.py +0 -0
  846. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/media/avatar/constants.py +0 -0
  847. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/media/avatar/exceptions.py +0 -0
  848. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/media/avatar/models.py +0 -0
  849. {core_framework-2.3.3/tests/unit → core_framework-3.1.0/core_framework/domains/media/avatar/ports}/__init__.py +0 -0
  850. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/media/avatar/ports/finals_publisher.py +0 -0
  851. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/media/avatar/ports/variant_encoder.py +0 -0
  852. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/media/avatar/service.py +0 -0
  853. {core_framework-2.3.3/tests/unit/application/comments → core_framework-3.1.0/core_framework/domains/media/banner}/__init__.py +0 -0
  854. {core_framework-2.3.3/tests/unit/domains → core_framework-3.1.0/core_framework/domains/media/banner/components}/__init__.py +0 -0
  855. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/media/banner/constants.py +0 -0
  856. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/media/banner/exceptions.py +0 -0
  857. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/media/banner/models.py +0 -0
  858. {core_framework-2.3.3/tests/unit/domains/comment → core_framework-3.1.0/core_framework/domains/media/banner/ports}/__init__.py +0 -0
  859. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/media/banner/ports/finals_publisher.py +0 -0
  860. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/media/banner/ports/variant_encoder.py +0 -0
  861. {core_framework-2.3.3/tests/unit/infrastructure → core_framework-3.1.0/core_framework/domains/media/shared}/__init__.py +0 -0
  862. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/media/shared/constants.py +0 -0
  863. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/media/shared/outcomes.py +0 -0
  864. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/media/shared/repository.py +0 -0
  865. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/media/shared/service.py +0 -0
  866. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/moderation/README.md +0 -0
  867. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/moderation/enums.py +0 -0
  868. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/moderation/exceptions.py +0 -0
  869. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/moderation/models.py +0 -0
  870. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/moderation/outbox_repository.py +0 -0
  871. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/moderation/outbox_service.py +0 -0
  872. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/moderation/outcomes.py +0 -0
  873. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/notification/enums.py +0 -0
  874. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/notification/exceptions.py +0 -0
  875. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/notification/models.py +0 -0
  876. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/outbox/dependencies.py +0 -0
  877. {core_framework-2.3.3/tests/unit/infrastructure/media → core_framework-3.1.0/core_framework/domains/outbox/ports}/__init__.py +0 -0
  878. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/outbox/ports/admin.py +0 -0
  879. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/outbox/ports/consumer.py +0 -0
  880. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/post/README.md +0 -0
  881. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/post/constants.py +0 -0
  882. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/post/enums.py +0 -0
  883. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/post/exceptions.py +0 -0
  884. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/post/models.py +0 -0
  885. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/user/README.md +0 -0
  886. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/user/constants.py +0 -0
  887. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/user/enums.py +0 -0
  888. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/user/exceptions.py +0 -0
  889. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/user/models.py +0 -0
  890. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/user/outbox_repository.py +0 -0
  891. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/user/outbox_service.py +0 -0
  892. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/domains/user/utils.py +0 -0
  893. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/infrastructure/media/attachment_staging_display_geometry.py +0 -0
  894. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/infrastructure/media/pillow_attachment_variant_encoder_adapter.py +0 -0
  895. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/infrastructure/media/pillow_avatar_variant_encoder_adapter.py +0 -0
  896. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/infrastructure/media/pillow_banner_variant_encoder_adapter.py +0 -0
  897. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/migrate_cli.py +0 -0
  898. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/testing/__init__.py +0 -0
  899. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/testing/config.py +0 -0
  900. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/testing/containers.py +0 -0
  901. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/testing/firebase_identity_toolkit.py +0 -0
  902. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/testing/hookspecs.py +0 -0
  903. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/testing/media.py +0 -0
  904. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/testing/migrations.py +0 -0
  905. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/worker/schedules/schedule_poll_outbox.py +0 -0
  906. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/worker/schedules/schedule_refresh_analytics.py +0 -0
  907. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/worker/schedules/schedule_sweep_stale_attachment_staging.py +0 -0
  908. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/worker/schedules/schedule_sweep_stale_avatar_staging.py +0 -0
  909. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/worker/schedules/schedule_sweep_stale_banner_staging.py +0 -0
  910. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/worker/tasks/delete_attachment_finals.py +0 -0
  911. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/worker/tasks/delete_superseded_avatar_finals.py +0 -0
  912. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/worker/tasks/delete_superseded_banner_finals.py +0 -0
  913. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/worker/tasks/process_account_deletion.py +0 -0
  914. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/worker/tasks/process_admin_user_deletion.py +0 -0
  915. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/worker/tasks/process_aggregate_comment_stats.py +0 -0
  916. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/worker/tasks/process_aggregate_post_stats.py +0 -0
  917. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/worker/tasks/process_aggregate_user_stats.py +0 -0
  918. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/worker/tasks/process_attachment_asset_variants.py +0 -0
  919. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/worker/tasks/process_banner_asset_variants.py +0 -0
  920. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/worker/tasks/process_cache_pattern_invalidation.py +0 -0
  921. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/worker/tasks/process_destructive_comment_delete.py +0 -0
  922. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/worker/tasks/process_destructive_post_delete.py +0 -0
  923. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/worker/tasks/process_outbox_row.py +0 -0
  924. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/worker/tasks/process_refresh_analytics_bucket.py +0 -0
  925. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/worker/tasks/process_user_content_deletion.py +0 -0
  926. {core_framework-2.3.3 → core_framework-3.1.0}/core_framework/worker/worker_context.py +0 -0
  927. {core_framework-2.3.3 → core_framework-3.1.0/deploy/app}/docker-compose.dev.yaml +0 -0
  928. {core_framework-2.3.3 → core_framework-3.1.0/deploy/app}/docker-compose.yml +0 -0
  929. {core_framework-2.3.3 → core_framework-3.1.0}/docs/deployments/e2e-smoke-tests-design.md +0 -0
  930. {core_framework-2.3.3 → core_framework-3.1.0}/docs/deployments/examples/image-server-known-hosts.example +0 -0
  931. {core_framework-2.3.3 → core_framework-3.1.0}/docs/design/analytics-rollup-design.md +0 -0
  932. {core_framework-2.3.3 → core_framework-3.1.0}/docs/design/cache-invalidation-design.md +0 -0
  933. {core_framework-2.3.3 → core_framework-3.1.0}/docs/design/utm-events-design.md +0 -0
  934. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/analytics/admin_analytics_reads.md +0 -0
  935. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/cache/admin_cache_invalidation.md +0 -0
  936. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/comments/README.md +0 -0
  937. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/comments/admin_comments.md +0 -0
  938. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/comments/comment_like.md +0 -0
  939. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/comments/comment_report.md +0 -0
  940. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/comments/comment_stats_aggregation.md +0 -0
  941. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/comments/delete_comment.md +0 -0
  942. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/comments/retrieve_comments.md +0 -0
  943. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/deletion/comments.md +0 -0
  944. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/deletion/overview.md +0 -0
  945. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/deletion/users.md +0 -0
  946. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/media/README.md +0 -0
  947. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/media/attachment_upload.md +0 -0
  948. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/media/avatar-upload-design.md +0 -0
  949. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/media/upload_pipeline.md +0 -0
  950. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/mentions/mentions_in_content.md +0 -0
  951. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/moderation/README.md +0 -0
  952. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/moderation/appeals.md +0 -0
  953. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/moderation/internal_notes.md +0 -0
  954. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/moderation/moderator_actions.md +0 -0
  955. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/moderation/reports.md +0 -0
  956. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/posts/admin_posts.md +0 -0
  957. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/posts/author_context.md +0 -0
  958. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/posts/edit_post.md +0 -0
  959. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/posts/hashtag_discovery.md +0 -0
  960. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/posts/post_like.md +0 -0
  961. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/posts/post_report.md +0 -0
  962. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/posts/post_stats_aggregation.md +0 -0
  963. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/posts/post_visibility.md +0 -0
  964. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/posts/retrieve_posts.md +0 -0
  965. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/users/account.md +0 -0
  966. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/users/avatar.md +0 -0
  967. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/users/banner.md +0 -0
  968. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/users/blocks.md +0 -0
  969. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/users/change_history.md +0 -0
  970. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/users/follow-system-design.md +0 -0
  971. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/users/follow.md +0 -0
  972. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/users/my_posts_and_comments.md +0 -0
  973. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/users/preferences.md +0 -0
  974. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/users/profile.md +0 -0
  975. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/users/public_profile.md +0 -0
  976. {core_framework-2.3.3 → core_framework-3.1.0}/docs/domains/users/user_removal.md +0 -0
  977. {core_framework-2.3.3 → core_framework-3.1.0}/docs/library/README.md +0 -0
  978. {core_framework-2.3.3 → core_framework-3.1.0}/docs/library/api.md +0 -0
  979. {core_framework-2.3.3 → core_framework-3.1.0}/docs/platform/README.md +0 -0
  980. {core_framework-2.3.3 → core_framework-3.1.0}/docs/platform/database-triggers.md +0 -0
  981. {core_framework-2.3.3 → core_framework-3.1.0}/docs/platform/layers-and-boundaries.md +0 -0
  982. {core_framework-2.3.3 → core_framework-3.1.0}/docs/platform/patch-update-typed-payload.md +0 -0
  983. {core_framework-2.3.3 → core_framework-3.1.0}/firebase_config.example.json +0 -0
  984. {core_framework-2.3.3 → core_framework-3.1.0}/tests/conftest.py +0 -0
  985. {core_framework-2.3.3 → core_framework-3.1.0}/tests/e2e/_auth.py +0 -0
  986. {core_framework-2.3.3 → core_framework-3.1.0}/tests/e2e/_canaries.py +0 -0
  987. {core_framework-2.3.3 → core_framework-3.1.0}/tests/e2e/_media.py +0 -0
  988. {core_framework-2.3.3 → core_framework-3.1.0}/tests/e2e/_upload_payloads.py +0 -0
  989. {core_framework-2.3.3 → core_framework-3.1.0}/tests/e2e/conftest.py +0 -0
  990. {core_framework-2.3.3 → core_framework-3.1.0}/tests/e2e/media/pipeline_test.py +0 -0
  991. {core_framework-2.3.3 → core_framework-3.1.0}/tests/e2e/smoke/canary_test.py +0 -0
  992. {core_framework-2.3.3 → core_framework-3.1.0}/tests/e2e/smoke/media_test.py +0 -0
  993. {core_framework-2.3.3 → core_framework-3.1.0}/tests/e2e/smoke/tls_host_test.py +0 -0
  994. {core_framework-2.3.3 → core_framework-3.1.0}/tests/integration/_http_error_details.py +0 -0
  995. {core_framework-2.3.3 → core_framework-3.1.0}/tests/integration/api/_auth_helpers.py +0 -0
  996. {core_framework-2.3.3 → core_framework-3.1.0}/tests/integration/api/_outbox_helpers.py +0 -0
  997. {core_framework-2.3.3 → core_framework-3.1.0}/tests/integration/api/admin/_auth_cases.py +0 -0
  998. {core_framework-2.3.3 → core_framework-3.1.0}/tests/integration/api/admin/moderation/_auth_cases.py +0 -0
  999. {core_framework-2.3.3 → core_framework-3.1.0}/tests/integration/api/admin/users/router_test.py +0 -0
  1000. {core_framework-2.3.3 → core_framework-3.1.0}/tests/integration/api/attachments/attachment_upload_test.py +0 -0
  1001. {core_framework-2.3.3 → core_framework-3.1.0}/tests/integration/api/auth/router_test.py +0 -0
  1002. {core_framework-2.3.3 → core_framework-3.1.0}/tests/integration/api/media/ingest_contract_test.py +0 -0
  1003. {core_framework-2.3.3 → core_framework-3.1.0}/tests/integration/api/public_read_by_id_unavailable_detail_test.py +0 -0
  1004. {core_framework-2.3.3 → core_framework-3.1.0}/tests/integration/api/users/authenticated/avatar_upload_test.py +0 -0
  1005. {core_framework-2.3.3 → core_framework-3.1.0}/tests/integration/api/users/authenticated/banner_upload_test.py +0 -0
  1006. {core_framework-2.3.3 → core_framework-3.1.0}/tests/integration/api/users/public/router_test.py +0 -0
  1007. {core_framework-2.3.3 → core_framework-3.1.0}/tests/integration/worker/analytics_prune_test.py +0 -0
  1008. {core_framework-2.3.3 → core_framework-3.1.0}/tests/integration/worker/attachment_upload_test.py +0 -0
  1009. {core_framework-2.3.3 → core_framework-3.1.0}/tests/integration/worker/conftest.py +0 -0
  1010. {core_framework-2.3.3 → core_framework-3.1.0}/tests/integration/worker/stale_staging_sweep_test.py +0 -0
  1011. {core_framework-2.3.3 → core_framework-3.1.0}/tests/unit/api/comments/authenticated/comment_request_schemas_test.py +0 -0
  1012. {core_framework-2.3.3 → core_framework-3.1.0}/tests/unit/api/dedupe_preserving_order_test.py +0 -0
  1013. {core_framework-2.3.3 → core_framework-3.1.0}/tests/unit/api/posts/authenticated/post_update_mapper_test.py +0 -0
  1014. {core_framework-2.3.3 → core_framework-3.1.0}/tests/unit/api/users/profile_update_mapper_test.py +0 -0
  1015. {core_framework-2.3.3 → core_framework-3.1.0}/tests/unit/application/events/event_service_test.py +0 -0
  1016. {core_framework-2.3.3 → core_framework-3.1.0}/tests/unit/application/notifications/inbox_service_test.py +0 -0
  1017. {core_framework-2.3.3 → core_framework-3.1.0}/tests/unit/application/shared/request_context_test.py +0 -0
  1018. {core_framework-2.3.3 → core_framework-3.1.0}/tests/unit/application/users/deletion_audit_test.py +0 -0
  1019. {core_framework-2.3.3 → core_framework-3.1.0}/tests/unit/core/migrate_cli_test.py +0 -0
  1020. {core_framework-2.3.3 → core_framework-3.1.0}/tests/unit/docs/_api_reference.py +0 -0
  1021. {core_framework-2.3.3 → core_framework-3.1.0}/tests/unit/docs/api_routes_test.py +0 -0
  1022. {core_framework-2.3.3 → core_framework-3.1.0}/tests/unit/domains/post/models_test.py +0 -0
  1023. {core_framework-2.3.3 → core_framework-3.1.0}/tests/unit/domains/user/service_test.py +0 -0
@@ -0,0 +1,47 @@
1
+ ---
2
+ description: Core non-negotiables — behavior, tech stack, layer direction, host scope
3
+ alwaysApply: true
4
+ ---
5
+
6
+ # Constitution
7
+
8
+ ## Behavior
9
+
10
+ - State assumptions; ask when unclear. Prefer the simplest correct solution.
11
+ - Touch only what the task requires. Match existing style. Remove orphans your edits create.
12
+ - Define verifiable success criteria for non-trivial work.
13
+ - **Inline small single-use helpers** — do not extract a private function used once and only a few lines (identifier quoting, a short SQL fragment, pass-through wrappers). Extract when the logic is **reused**, **~15+ lines / non-obvious branching**, or a scoped rule requires sharing (e.g. normal + `*_strong` repository reads in **`strong-reads.mdc`**). Do not repo-wide refactor unrelated existing helpers.
14
+
15
+ ## Tech stack
16
+
17
+ - Python 3.14, Pydantic v2, PostgreSQL 18, orjson (not stdlib json).
18
+ - Absolute imports only (`from core_framework....`). Comma-style `except A, B:` is intentional.
19
+ - Prefer newer APIs and **current Python syntax** over older equivalents still legal on 3.14, for example:
20
+ - `asyncio.TaskGroup` over `asyncio.gather`
21
+ - PEP 695 type parameters (`def f[T](...)`, `def f[**P, R](...)`) over module-level `TypeVar` / `ParamSpec`
22
+ - Built-in generics (`list[str]`, `dict[str, int]`) over `typing.List` / `typing.Dict`
23
+ - `X | Y` over `Optional[X]` / `Union[X, Y]` unless a library API requires the old form
24
+ - Do **not** add `from __future__ import annotations` — 3.14 deferred annotations are the default (PEP 649)
25
+
26
+ ## Layers
27
+
28
+ Dependencies point inward: API/worker → application → domain. Never reverse.
29
+
30
+ - **API/worker** — transport adapters; call application services.
31
+ - **Application** — orchestration shared by API + worker; no FastAPI types.
32
+ - **Domain** — models, repositories (Postgres only), services. No API/worker/application imports except wiring in `dependencies.py`.
33
+
34
+ Path-scoped rules under `.cursor/rules/` add detail (API, domains, docs, etc.). For FastAPI/Pydantic work in `core_framework/api/`, use the **fastapi** skill (`.agents/skills/fastapi/`).
35
+
36
+ ## Agent skills
37
+
38
+ - Package skills (for example **fastapi**) are Library Skills-managed symlinks under **`.agents/skills/<name>/`**. Rules and hand-authored skills reference that path, not a copied tree under **`.cursor/skills/`**.
39
+ - **`.cursor/skills/<name>`** may symlink to **`.agents/skills/<name>`** for Cursor; Library Skills repairs **`.agents/skills`** links when packages move. After **`uv sync`** or a dependency upgrade, run **`uvx library-skills --yes`** if symlinks are stale.
40
+
41
+ ## Host applications
42
+
43
+ Do not edit consuming host repos in the same task as core-framework work unless the user scopes work to a host or asks to sync/upgrade. See the **sync-host-rules** skill.
44
+
45
+ ## Feature implementation
46
+
47
+ Greenfield features (DB → API → repository → service → **documentation** → tests): use the **implement-feature** skill — one layer per response unless the user says otherwise. A feature is **not done** until documentation is updated.
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: code-review
3
+ description: Review code for quality, architecture compliance, and best practices. Use when the user asks for a code review, audit, or review.
4
+ ---
5
+
6
+ # Code Review
7
+
8
+ ## Output format (required)
9
+
10
+ **Actionable findings only:**
11
+
12
+ - Bugs, wrong behavior, improvements, optimizations, doc/code contradictions, parallel implementation drift (sibling flows that diverge without documented reason).
13
+ - Prioritize by severity with file context and fix direction.
14
+ - **Do not** praise, summarize strengths, or pad with checklist pass narratives.
15
+ - One-line scope is fine. If nothing is wrong, say so in one sentence.
16
+
17
+ Do **not** flag documented accepted trade-offs in **`docs/platform/architecture-decisions.md`** unless the implementation violates them.
18
+
19
+ ## Workflow
20
+
21
+ 1. Read **`docs/platform/layers-and-boundaries.md`**, **`conventions.md`**, and **`architecture-decisions.md`** for the reviewed scope.
22
+ 1. Apply **scoped rules** (`.cursor/rules/*.mdc`) matching files under review — especially **`error-boundary`**, **`domain-imports`**, **`api-layer`**, **`application-layer`**, **`strong-reads`**.
23
+ 1. Report findings only — no filler.
24
+
25
+ ## Quick checks
26
+
27
+ - Application services: no HTTP types, no domain exceptions, no Pydantic return types, one-line docstrings.
28
+ - API: thin routers, validation in schemas, orchestration in application — **fastapi** skill (`.agents/skills/fastapi/`) + **`api-layer`** / **`api-validation`** / **`error-boundary`** rules.
29
+ - Domain: imports only via **`__init__.py`** / **`dependencies`** from outer layers; no caller-context names (**`domain-caller-context`**).
30
+ - Read-after-write refetches use **`*_strong`** where applicable.
31
+ - **Python modernity (constitution):** prefer current 3.14 syntax in reviewed code — PEP 695 type params over module-level `TypeVar`/`ParamSpec`; no unnecessary `from __future__ import annotations`; builtins / `X | Y` over legacy `typing` aliases; `asyncio.TaskGroup` over `gather`.
32
+
33
+ ## Parallel drift
34
+
35
+ Flag sibling modules with the same job but different structure (async layout, cleanup order, error/idempotency contracts) when docs do not explain the difference.
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: sync-host-rules
3
+ description: Sync core-framework rules, skills, and platform docs to consuming host applications. Use when the user asks to sync rules to a host, bump core-framework in a host, upgrade a host dependency, or port shared cursor/docs content.
4
+ ---
5
+
6
+ # Sync Host Rules and Docs
7
+
8
+ Consuming applications embed **core-framework** as a dependency.
9
+
10
+ ## Default (core-framework work)
11
+
12
+ When changing **core-framework** code, migrations, tests, or **`docs/`**:
13
+
14
+ - **Do not** edit host repos in the same task.
15
+ - **Do not** port **`docs/platform/`**, **`docs/design/`**, **`docs/deployments/`**, **`.cursor/rules/`**, or **`.cursor/skills/`** to hosts proactively.
16
+ - Mention that host sync is **deferred until the host bumps its core-framework version** (unless the user asked otherwise).
17
+
18
+ ## When host changes are allowed
19
+
20
+ 1. User explicitly scopes work to a host repo.
21
+ 1. User explicitly asks to sync or upgrade the core dependency in a host.
22
+ 1. You are editing a host repo directly — follow that repo's rules.
23
+
24
+ ## Sync procedure
25
+
26
+ Diff by **basename** against the host's **`.cursor/`** and applicable **`docs/`** paths. Port shared content and **adapt**:
27
+
28
+ - globs: **`core_framework/**`** → host source tree where applicable
29
+ - imports: **`core_framework....`** → host package prefix
30
+ - strong reads: **`strong-reads`** → host equivalent rule if present
31
+
32
+ **Do not overwrite** host-only rules, skills, or product docs.
33
+
34
+ ### `docs/deployments/guides/` layout
35
+
36
+ Core walkthroughs live under **`docs/deployments/guides/setup/`** (one-time install) and **`docs/deployments/guides/playbook/`** (ops / incident runbooks) — not a flat **`guides/`** directory.
37
+
38
+ When syncing **`docs/deployments/`** to a host:
39
+
40
+ 1. **Match the directory layout** — create **`guides/setup/`** and **`guides/playbook/`** on the host; move or rewrite files into those paths. Do **not** leave stale flat **`guides/*.md`** copies beside the new tree.
41
+ 1. **Basename alone is not enough** — a host may still have **`guides/ubuntu-server-setup.md`** while core has **`guides/setup/ubuntu-server-setup.md`**. Diff by relative path under **`docs/deployments/`**, then port.
42
+ 1. **Renames** — e.g. **`postgres-backup-ops.md`** → **`guides/playbook/postgres-backup-playbook.md`**. Delete the old host path after porting.
43
+ 1. **Adapt host paths** in playbooks (Compose project dir, image names, **`app_configs/<host>/`**) — keep Henry-specific notes in host **`deploy-playbook.md`** / **`release-playbook.md`**.
44
+
45
+ ## Docs boundaries
46
+
47
+ **Core `docs/` must stay host-agnostic** — no references to specific consuming applications.
48
+
49
+ | Core path | Host behavior |
50
+ | ----------------------------------------------------------------- | ------------------------------------------------------------- |
51
+ | **`docs/platform/`**, **`docs/design/`**, **`docs/deployments/`** | Sync on dependency upgrade or explicit sync request |
52
+ | **`docs/domains/`**, **`docs/library/`** | Canonical in core only — do not mirror product trees to hosts |