kinemotion 0.51.0__tar.gz → 0.53.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.

Potentially problematic release.


This version of kinemotion might be problematic. Click here for more details.

Files changed (557) hide show
  1. kinemotion-0.53.0/.basic-memory/development/backend-granular-logging-implementation.md +153 -0
  2. {kinemotion-0.51.0 → kinemotion-0.53.0}/.github/workflows/deploy-backend.yml +8 -69
  3. {kinemotion-0.51.0 → kinemotion-0.53.0}/.github/workflows/release.yml +0 -14
  4. {kinemotion-0.51.0 → kinemotion-0.53.0}/.pre-commit-config.yaml +1 -1
  5. {kinemotion-0.51.0 → kinemotion-0.53.0}/CHANGELOG.md +22 -38
  6. {kinemotion-0.51.0 → kinemotion-0.53.0}/PKG-INFO +1 -1
  7. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/pyproject.toml +1 -31
  8. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/analysis_api.py +1 -19
  9. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/app.py +4 -16
  10. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/models/responses.py +1 -1
  11. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/routes/analysis.py +13 -14
  12. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/services/analysis_service.py +28 -22
  13. kinemotion-0.53.0/backend/src/kinemotion_backend/services/video_processor.py +53 -0
  14. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/tests/test_api_endpoints.py +3 -3
  15. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/tests/test_error_handling.py +3 -3
  16. {kinemotion-0.51.0 → kinemotion-0.53.0}/pyproject.toml +2 -7
  17. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/api.py +1 -16
  18. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/core/smoothing.py +1 -18
  19. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/core/validation.py +13 -6
  20. {kinemotion-0.51.0 → kinemotion-0.53.0}/uv.lock +2 -4
  21. kinemotion-0.51.0/backend/CHANGELOG.md +0 -58
  22. kinemotion-0.51.0/backend/src/kinemotion_backend/services/video_processor.py +0 -82
  23. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/README.md +0 -0
  24. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/api/api-reference-quick-commands.md +0 -0
  25. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/api/cloud-run-cpu-specifications-investigation.md +0 -0
  26. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/api/supabase-authentication-setup-guide.md +0 -0
  27. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/authentication/auth-provider-comparison-december-2025.md +0 -0
  28. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/authentication/auth-providers-comparison-december-2025.md +0 -0
  29. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/authentication/supabase-authentication-quick-start.md +0 -0
  30. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/authentication/supabase-authentication-setup-guide.md +0 -0
  31. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/authentication/supabase-authentication-technical-guide.md +0 -0
  32. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/authentication/supabase-google-oauth-setup-guide.md +0 -0
  33. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/authentication/supabase-production-setup-guide.md +0 -0
  34. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/authentication/supabase-quick-start-guide.md +0 -0
  35. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/biomechanics/camera-angle-empirical-validation-results-45-superior-for-media-pipe.md +0 -0
  36. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/biomechanics/camera-perspective-analysis-45deg-vs-lateral.md +0 -0
  37. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/biomechanics/cmj-landing-detection-window-validation.md +0 -0
  38. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/biomechanics/cmj-physiological-bounds-for-validation.md +0 -0
  39. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/biomechanics/cmj-validation-implementation-complete.md +0 -0
  40. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/biomechanics/drop-jump-vs-cmj-key-differences.md +0 -0
  41. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/biomechanics/technical-implementation-45deg-perspective-correction.md +0 -0
  42. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/codebase/codebase-architecture-overview.md +0 -0
  43. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/codebase/validation-architecture-visual-hierarchy-after-refactoring.md +0 -0
  44. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/codebase/validation-code-duplication-evidence.md +0 -0
  45. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/codebase/validation-module-architecture-analysis.md +0 -0
  46. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/codebase/validation-refactoring-complete-architecture-improvement.md +0 -0
  47. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/deployment/automated-deployment-setup-git-hub-actions-with-workload-identity-federation.md +0 -0
  48. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/deployment/backend-repository-split-migration-guide.md +0 -0
  49. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/deployment/backend-repository-split-step-by-step-execution-guide.md +0 -0
  50. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/deployment/cloud-run-security-least-privilege-service-account-setup.md +0 -0
  51. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/deployment/cors-and-memory-issues-production-debugging-guide.md +0 -0
  52. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/deployment/current-kinemotion-architecture-correct-deployment-setup.md +0 -0
  53. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/deployment/frontend-repository-split-migration-guide.md +0 -0
  54. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/deployment/frontend-repository-split-step-by-step-execution-guide.md +0 -0
  55. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/deployment/production-deployment-guide-vercel-google-cloud-run.md +0 -0
  56. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/deployment/quick-deployment-commands-vercel-and-cloud-run.md +0 -0
  57. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/deployment/vercel-monorepo-deployment-best-practice.md +0 -0
  58. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/athlete-pose3d-and-cross-platform-determinism-investigation-complete.md +0 -0
  59. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/athlete-pose3d-final-strategy-accuracy-and-robustness.md +0 -0
  60. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/athlete-pose3d-media-pipe-enhancement-plan.md +0 -0
  61. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/athlete-pose3d-phase-1-implementation-complete.md +0 -0
  62. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/backend-authentication-and-logging-status.md +0 -0
  63. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/backend-code-coverage-analysis.md +0 -0
  64. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/backend-code-duplication-analysis.md +0 -0
  65. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/backend-kinemotion-decoupling-strategy.md +0 -0
  66. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/backend-sonar-cloud-integration-status.md +0 -0
  67. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/basic-memory-naming-hook-analysis.md +0 -0
  68. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/ci-caching-issue-investigation-deep-squat-test-failure.md +0 -0
  69. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/ci-vs-local-test-failure-investigation.md +0 -0
  70. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/claude-code-hook-configuration.md +0 -0
  71. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/cmj-phase-detection-testing-gap-analysis.md +0 -0
  72. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/commit-review-r2-video-storage-migration-fe74d1f.md +0 -0
  73. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/comprehensive-timing-instrumentation.md +0 -0
  74. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/cross-platform-determinism-analysis-final-results.md +0 -0
  75. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/development-standards-quality-gates.md +0 -0
  76. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/drop-jump-detection-complete-fix-all-metrics-within-target.md +0 -0
  77. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/drop-jump-detection-failure-analysis-per-video-breakdown.md +0 -0
  78. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/drop-jump-fix-drop-start-successful-landing-and-takeoff-remain.md +0 -0
  79. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/fast-api-app.py Refactoring Plan - Modular Architecture.md +0 -0
  80. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/fast-api-refactoring-completion-summary.md +0 -0
  81. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/feature-request-system-configuration.md +0 -0
  82. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/follow-up-improvements-to-r2-video-storage-migration.md +0 -0
  83. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/frontend-dependencies-analysis-nov-2025.md +0 -0
  84. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/google-oauth-setup-script-final-review-production-ready.md +0 -0
  85. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/google-oauth-setup-script-review-issues-and-recommendations.md +0 -0
  86. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/hook-complete-audit-summary.md +0 -0
  87. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/hook-configuration-audit.md +0 -0
  88. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/hook-quick-reference.md +0 -0
  89. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/keyboard-interrupt-test-suite-failure-analysis.md +0 -0
  90. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/model-import-conflict-resolution-fast-api-refactoring.md +0 -0
  91. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/non-deterministic-analysis-root-cause-and-solution.md +0 -0
  92. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/optimal-timing-implementation-summary.md +0 -0
  93. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/p0-p1-p2-test-suite-fixes-final-report.md +0 -0
  94. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/pose-detection-baseline-evaluation-results.md +0 -0
  95. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/pose-detection-optimization-complete-success-summary.md +0 -0
  96. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/pose-detection-parameter-optimization-framework.md +0 -0
  97. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/structured-logging-implementation-complete.md +0 -0
  98. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/structured-logging-implementation.md +0 -0
  99. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/supabase-dashboard-navigation-december-2025.md +0 -0
  100. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/supabase-database-integration-setup.md +0 -0
  101. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/test-coverage-asymmetry-analysis-cmj-vs-drop-jump.md +0 -0
  102. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/test-coverage-equivalence-achievement-summary.md +0 -0
  103. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/test-suite-comprehensive-review-december-2025.md +0 -0
  104. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/test-suite-comprehensive-review-structure-and-gaps.md +0 -0
  105. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/test-suite-p0-p1-p2-fixes-complete-report.md +0 -0
  106. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/test-suite-p0-p1-p2-fixes-progress-report.md +0 -0
  107. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/unused-and-experimental-features-strategy.md +0 -0
  108. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/unused-code-detection-prompt-template.md +0 -0
  109. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/unused-code-identification-and-decorator-application-december-2025.md +0 -0
  110. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/unused-code-verification-final-pass-december-2025.md +0 -0
  111. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/using-multiple-mcp-reasoning-servers-simultaneously.md +0 -0
  112. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/velocity-threshold-empirical-validation-study.md +0 -0
  113. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/development/vercel-authentication-options-for-user-id-tracking.md +0 -0
  114. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/project-management/documentation-audit-december-2025.md +0 -0
  115. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/project-management/issue-12-mvp-scaffolding-complete.md +0 -0
  116. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/project-management/issue-12-unblocked-tasks-breakdown.md +0 -0
  117. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/project-management/issue-12-use-real-metrics-now.md +0 -0
  118. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/project-management/kinemotion-project-setup-complete.md +0 -0
  119. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/project-management/kinemotion-supabase-production-configuration.md +0 -0
  120. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/project-management/mcp-sequential-thinking-alternatives-analysis.md +0 -0
  121. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/project-management/performance-optimization-pose-tracker-pool-timing-instrumentation-complete.md +0 -0
  122. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/project-management/project-state-summary-december-2025.md +0 -0
  123. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/project-management/specialized-subagents-routing-guide.md +0 -0
  124. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/project-management/supabase-setup-instructions-for-kinemotion.md +0 -0
  125. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/project-management/version-mismatch-analysis-kinemotion-0370-vs-0300.md +0 -0
  126. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/strategy/deployment-decision-analysis-for-kinemotion.md +0 -0
  127. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/strategy/mvp-feedback-collection-plan.md +0 -0
  128. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/strategy/mvp-first-strategic-direction.md +0 -0
  129. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/strategy/mvp-validation-checkpoints.md +0 -0
  130. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/strategy/pose2sim-migration-evaluation-and-strategy.md +0 -0
  131. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/strategy/strategic-priority-tasks-current-roadmap.md +0 -0
  132. {kinemotion-0.51.0 → kinemotion-0.53.0}/.basic-memory/strategy/third-party-auth-providers-with-free-tiers-december-2025.md +0 -0
  133. {kinemotion-0.51.0 → kinemotion-0.53.0}/.claude/agents/biomechanics-specialist.md +0 -0
  134. {kinemotion-0.51.0 → kinemotion-0.53.0}/.claude/agents/computer-vision-engineer.md +0 -0
  135. {kinemotion-0.51.0 → kinemotion-0.53.0}/.claude/agents/devops-cicd-engineer.md +0 -0
  136. {kinemotion-0.51.0 → kinemotion-0.53.0}/.claude/agents/frontend-developer.md +0 -0
  137. {kinemotion-0.51.0 → kinemotion-0.53.0}/.claude/agents/ml-data-scientist.md +0 -0
  138. {kinemotion-0.51.0 → kinemotion-0.53.0}/.claude/agents/project-manager.md +0 -0
  139. {kinemotion-0.51.0 → kinemotion-0.53.0}/.claude/agents/python-backend-developer.md +0 -0
  140. {kinemotion-0.51.0 → kinemotion-0.53.0}/.claude/agents/qa-test-engineer.md +0 -0
  141. {kinemotion-0.51.0 → kinemotion-0.53.0}/.claude/agents/technical-writer.md +0 -0
  142. {kinemotion-0.51.0 → kinemotion-0.53.0}/.claude/settings.local.json +0 -0
  143. {kinemotion-0.51.0 → kinemotion-0.53.0}/.cursor/mcp.json +0 -0
  144. {kinemotion-0.51.0 → kinemotion-0.53.0}/.dockerignore +0 -0
  145. {kinemotion-0.51.0 → kinemotion-0.53.0}/.envrc +0 -0
  146. {kinemotion-0.51.0 → kinemotion-0.53.0}/.gitattributes +0 -0
  147. {kinemotion-0.51.0 → kinemotion-0.53.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  148. {kinemotion-0.51.0 → kinemotion-0.53.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  149. {kinemotion-0.51.0 → kinemotion-0.53.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  150. {kinemotion-0.51.0 → kinemotion-0.53.0}/.github/dependabot.yml +0 -0
  151. {kinemotion-0.51.0 → kinemotion-0.53.0}/.github/pull_request_template.md +0 -0
  152. {kinemotion-0.51.0 → kinemotion-0.53.0}/.github/workflows/docs.yml +0 -0
  153. {kinemotion-0.51.0 → kinemotion-0.53.0}/.github/workflows/test.yml +0 -0
  154. {kinemotion-0.51.0 → kinemotion-0.53.0}/.gitignore +0 -0
  155. {kinemotion-0.51.0 → kinemotion-0.53.0}/.mcp.json +0 -0
  156. {kinemotion-0.51.0 → kinemotion-0.53.0}/.readthedocs.yml +0 -0
  157. {kinemotion-0.51.0 → kinemotion-0.53.0}/.serena/.gitignore +0 -0
  158. {kinemotion-0.51.0 → kinemotion-0.53.0}/.serena/memories/backend-cors-fastapi-middleware-order.md +0 -0
  159. {kinemotion-0.51.0 → kinemotion-0.53.0}/.serena/memories/camera-perspective-validation-study.md +0 -0
  160. {kinemotion-0.51.0 → kinemotion-0.53.0}/.serena/memories/code_style_and_conventions.md +0 -0
  161. {kinemotion-0.51.0 → kinemotion-0.53.0}/.serena/memories/current-project-architecture.md +0 -0
  162. {kinemotion-0.51.0 → kinemotion-0.53.0}/.serena/memories/deployment-checklist-and-known-issues.md +0 -0
  163. {kinemotion-0.51.0 → kinemotion-0.53.0}/.serena/memories/deployment-setup-complete.md +0 -0
  164. {kinemotion-0.51.0 → kinemotion-0.53.0}/.serena/memories/github-project-setup-summary.md +0 -0
  165. {kinemotion-0.51.0 → kinemotion-0.53.0}/.serena/memories/mvp-first-strategy.md +0 -0
  166. {kinemotion-0.51.0 → kinemotion-0.53.0}/.serena/memories/mvp-roadmap-and-priorities.md +0 -0
  167. {kinemotion-0.51.0 → kinemotion-0.53.0}/.serena/memories/project_overview.md +0 -0
  168. {kinemotion-0.51.0 → kinemotion-0.53.0}/.serena/memories/specialist-agents-routing.md +0 -0
  169. {kinemotion-0.51.0 → kinemotion-0.53.0}/.serena/memories/suggested_commands.md +0 -0
  170. {kinemotion-0.51.0 → kinemotion-0.53.0}/.serena/project.yml +0 -0
  171. {kinemotion-0.51.0 → kinemotion-0.53.0}/.tool-versions +0 -0
  172. {kinemotion-0.51.0 → kinemotion-0.53.0}/.vercelignore +0 -0
  173. {kinemotion-0.51.0 → kinemotion-0.53.0}/CLAUDE.md +0 -0
  174. {kinemotion-0.51.0 → kinemotion-0.53.0}/CODE_OF_CONDUCT.md +0 -0
  175. {kinemotion-0.51.0 → kinemotion-0.53.0}/CONTRIBUTING.md +0 -0
  176. {kinemotion-0.51.0 → kinemotion-0.53.0}/Dockerfile +0 -0
  177. {kinemotion-0.51.0 → kinemotion-0.53.0}/GEMINI.md +0 -0
  178. {kinemotion-0.51.0 → kinemotion-0.53.0}/LICENSE +0 -0
  179. {kinemotion-0.51.0 → kinemotion-0.53.0}/README.md +0 -0
  180. {kinemotion-0.51.0 → kinemotion-0.53.0}/SECURITY.md +0 -0
  181. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/.coveragerc +0 -0
  182. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/.dockerignore +0 -0
  183. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/.env.example +0 -0
  184. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/Dockerfile +0 -0
  185. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/README.md +0 -0
  186. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/docs/fly-deployment.md +0 -0
  187. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/docs/implementation-summary.md +0 -0
  188. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/docs/setup.md +0 -0
  189. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/docs/tests.md +0 -0
  190. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/__init__.py +0 -0
  191. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/app/__init__.py +0 -0
  192. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/app/config.py +0 -0
  193. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/app/dependencies.py +0 -0
  194. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/app/exceptions.py +0 -0
  195. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/app/main.py +0 -0
  196. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/auth.py +0 -0
  197. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/database.py +0 -0
  198. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/logging_config.py +0 -0
  199. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/middleware.py +0 -0
  200. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/models/__init__.py +0 -0
  201. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/models/database.py +0 -0
  202. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/models/storage.py +0 -0
  203. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/routes/__init__.py +0 -0
  204. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/routes/database.py +0 -0
  205. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/routes/health.py +0 -0
  206. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/routes/platform.py +0 -0
  207. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/services/__init__.py +0 -0
  208. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/services/storage_service.py +0 -0
  209. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/services/validation.py +0 -0
  210. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/types.py +0 -0
  211. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/utils/__init__.py +0 -0
  212. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/src/kinemotion_backend/utils/rate_limiter.py +0 -0
  213. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/supabase-schema.sql +0 -0
  214. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/tests/README.md +0 -0
  215. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/tests/__init__.py +0 -0
  216. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/tests/conftest.py +0 -0
  217. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/tests/test_health.py +0 -0
  218. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/tests/test_r2_integration.py +0 -0
  219. {kinemotion-0.51.0 → kinemotion-0.53.0}/backend/tests/test_validation.py +0 -0
  220. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/README.md +0 -0
  221. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/api/cmj.md +0 -0
  222. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/api/core.md +0 -0
  223. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/api/dropjump.md +0 -0
  224. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/api/overview.md +0 -0
  225. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/development/agents-guide.md +0 -0
  226. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/development/errors-findings.md +0 -0
  227. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/development/feature-request-system.md +0 -0
  228. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/development/feedback-system-setup.md +0 -0
  229. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/development/test-suite-review-december-2025.md +0 -0
  230. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/development/testing-standards.md +0 -0
  231. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/development/testing.md +0 -0
  232. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/development/type-hints.md +0 -0
  233. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/development/validation-plan.md +0 -0
  234. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/development/validation-roadmap.md +0 -0
  235. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/development/wallball-norep-detection.md +0 -0
  236. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/guides/bulk-processing.md +0 -0
  237. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/guides/camera-setup.md +0 -0
  238. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/guides/cloud-run-deployment.md +0 -0
  239. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/guides/cmj-guide.md +0 -0
  240. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/guides/cmj-recording-protocol-es.md +0 -0
  241. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/guides/cmj-recording-protocol.md +0 -0
  242. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/guides/deployment-checklist.md +0 -0
  243. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/guides/local-testing.md +0 -0
  244. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/guides/setup-issue-12.md +0 -0
  245. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/index.md +0 -0
  246. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/quick-start.md +0 -0
  247. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/reference/cloud-run-quick-reference.md +0 -0
  248. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/reference/json-output-format.md +0 -0
  249. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/reference/json-structure-comparison.md +0 -0
  250. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/reference/parameters.md +0 -0
  251. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/reference/pose-systems.md +0 -0
  252. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/paper-downloader/HOW-TO-FIND-DOIS.md +0 -0
  253. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/paper-downloader/README.md +0 -0
  254. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/paper-downloader/dois.txt +0 -0
  255. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/paper-downloader/download.py +0 -0
  256. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/paper-downloader/pyproject.toml +0 -0
  257. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/paper-downloader/uv.lock +0 -0
  258. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/sports-biomechanics-pose-estimation.md +0 -0
  259. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/MANUAL-DOWNLOAD-GUIDE.md +0 -0
  260. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/README.md +0 -0
  261. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/convert_pdfs.py +0 -0
  262. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/athlete-monitoring/2001_Foster_Session-RPE-Training-Monitoring.md +0 -0
  263. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/athlete-monitoring/2015_Buchheit_GPS-Accelerometers-Stride-Stiffness.md +0 -0
  264. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/athlete-monitoring/2018_Flatt_HRV-Recovery-Swimmers.md +0 -0
  265. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/athlete-monitoring/2018_Saw_Training-Camps-Monitoring.md +0 -0
  266. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/athlete-monitoring/2018_Ward_Putting-i-in-Team.md +0 -0
  267. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/injury-prevention/2011_Petersen_Nordic-Hamstring-Prevention.md +0 -0
  268. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/injury-prevention/2011_Wilk_Shoulder-GIRD-Baseball-Pitchers.md +0 -0
  269. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/injury-prevention/2012_Hewit_Multidirectional-Leg-Asymmetry.md +0 -0
  270. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/injury-prevention/2015_Ford_Hip-Neuromuscular-Exercise-Valgus.md +0 -0
  271. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/injury-prevention/2015_Mosler_Hip-Groin-Pain-Factors.md +0 -0
  272. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/injury-prevention/2015_Sconce_Nordic-Hamstring-Validity.md +0 -0
  273. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/injury-prevention/2016_Mendez-Villanueva_Hamstring-MRI-Regional.md +0 -0
  274. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/injury-prevention/2016_Read_Youth-Soccer-Injury-Risk.md +0 -0
  275. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/injury-prevention/2017_Mason-Mackay_Ankle-Dorsiflexion-Landing.md +0 -0
  276. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/injury-prevention/2017_Mendiguchia_Hamstring-Treatment-Algorithm.md +0 -0
  277. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/injury-prevention/2018_Balsalobre-Fernandez_Ankle-Dorsiflexion-App.md +0 -0
  278. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/injury-prevention/2018_Bramah_Pathological-Gait-Running-Injuries.md +0 -0
  279. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/injury-prevention/2020_Fidai_Fatigue-Knee-Valgus-Youth.md +0 -0
  280. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/jump-performance/2011_Harper_10-to-5-Jump-Test.md +0 -0
  281. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/jump-performance/2012_Samozino_Optimal-Force-Velocity-Profile.md +0 -0
  282. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/jump-performance/2014_Samozino_FV-Imbalance.md +0 -0
  283. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/jump-performance/2016_Jimenez-Reyes_Force-Velocity-Training.md +0 -0
  284. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/jump-performance/2016_Morin-Samozino_Power-Force-Velocity-Profiles.md +0 -0
  285. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/jump-performance/2018_Garcia-Ramos_Two-Point-Method-Optimization.md +0 -0
  286. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/jump-performance/2022_Wells_Golf-Clubhead-CMJ.md +0 -0
  287. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/running-biomechanics/2005_Morin_Running-Stiffness-Measurement.md +0 -0
  288. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/running-biomechanics/2015_Balsalobre-Fernandez_Strength-Training-Running-Economy.md +0 -0
  289. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/running-biomechanics/2016_Balsalobre-Fernandez_iPhone-Running-Mechanics.md +0 -0
  290. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/running-biomechanics/2016_Moore_Economical-Running-Technique.md +0 -0
  291. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/running-biomechanics/2020_Filter_Curve-Sprint-Test-Soccer.md +0 -0
  292. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/running-biomechanics/2020_Harper_Horizontal-Deceleration-Radar.md +0 -0
  293. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/running-biomechanics/2021_vanOeveren_Running-Biomechanics-Synthesis.md +0 -0
  294. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/running-biomechanics/2024_Bramah_Sprint-Mechanics-Assessment-Score.md +0 -0
  295. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/smartphone-technology/2015_Balsalobre-Fernandez_iPhone-Vertical-Jump.md +0 -0
  296. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/smartphone-technology/2022_Bishop_MyJumpLab-Validation.md +0 -0
  297. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/velocity-based-training/2011_Jidovtseff_Load-Velocity-1RM-Prediction.md +0 -0
  298. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/velocity-based-training/2016_Conceicao_Movement-Velocity-Lower-Limb.md +0 -0
  299. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/velocity-based-training/2016_Pareja-Blanco_Velocity-Loss-Training.md +0 -0
  300. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/velocity-based-training/2017_Balsalobre-Fernandez_Barbell-Velocity-1RM.md +0 -0
  301. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/velocity-based-training/2020_Balsalobre-Fernandez_Barbell-Trajectory-Snatch.md +0 -0
  302. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/markdown/velocity-based-training/2023_Balsalobre-Fernandez_AI-Barbell-Velocity.md +0 -0
  303. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/online-references-for-papers.md +0 -0
  304. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/athlete-monitoring/2001_Foster_Session-RPE-Training-Monitoring.pdf +0 -0
  305. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/athlete-monitoring/2015_Buchheit_GPS-Accelerometers-Stride-Stiffness.pdf +0 -0
  306. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/athlete-monitoring/2018_Flatt_HRV-Recovery-Swimmers.pdf +0 -0
  307. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/athlete-monitoring/2018_Saw_Training-Camps-Monitoring.pdf +0 -0
  308. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/athlete-monitoring/2018_Ward_Putting-i-in-Team.pdf +0 -0
  309. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/injury-prevention/2011_Petersen_Nordic-Hamstring-Prevention.pdf +0 -0
  310. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/injury-prevention/2011_Wilk_Shoulder-GIRD-Baseball-Pitchers.pdf +0 -0
  311. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/injury-prevention/2012_Hewit_Multidirectional-Leg-Asymmetry.pdf +0 -0
  312. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/injury-prevention/2015_Ford_Hip-Neuromuscular-Exercise-Valgus.pdf +0 -0
  313. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/injury-prevention/2015_Mosler_Hip-Groin-Pain-Factors.pdf +0 -0
  314. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/injury-prevention/2015_Sconce_Nordic-Hamstring-Validity.pdf +0 -0
  315. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/injury-prevention/2016_Mendez-Villanueva_Hamstring-MRI-Regional.pdf +0 -0
  316. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/injury-prevention/2016_Read_Youth-Soccer-Injury-Risk.pdf +0 -0
  317. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/injury-prevention/2017_Mason-Mackay_Ankle-Dorsiflexion-Landing.pdf +0 -0
  318. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/injury-prevention/2017_Mendiguchia_Hamstring-Treatment-Algorithm.pdf +0 -0
  319. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/injury-prevention/2018_Balsalobre-Fernandez_Ankle-Dorsiflexion-App.pdf +0 -0
  320. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/injury-prevention/2018_Bramah_Pathological-Gait-Running-Injuries.pdf +0 -0
  321. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/injury-prevention/2020_Fidai_Fatigue-Knee-Valgus-Youth.pdf +0 -0
  322. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/jump-performance/2011_Harper_10-to-5-Jump-Test.pdf +0 -0
  323. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/jump-performance/2012_Samozino_Optimal-Force-Velocity-Profile.pdf +0 -0
  324. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/jump-performance/2014_Samozino_FV-Imbalance.pdf +0 -0
  325. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/jump-performance/2016_Jimenez-Reyes_Force-Velocity-Training.pdf +0 -0
  326. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/jump-performance/2016_Morin-Samozino_Power-Force-Velocity-Profiles.pdf +0 -0
  327. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/jump-performance/2018_Garcia-Ramos_Two-Point-Method-Optimization.pdf +0 -0
  328. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/jump-performance/2022_Wells_Golf-Clubhead-CMJ.pdf +0 -0
  329. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/running-biomechanics/2005_Morin_Running-Stiffness-Measurement.pdf +0 -0
  330. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/running-biomechanics/2015_Balsalobre-Fernandez_Strength-Training-Running-Economy.pdf +0 -0
  331. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/running-biomechanics/2016_Balsalobre-Fernandez_iPhone-Running-Mechanics.pdf +0 -0
  332. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/running-biomechanics/2016_Moore_Economical-Running-Technique.pdf +0 -0
  333. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/running-biomechanics/2020_Filter_Curve-Sprint-Test-Soccer.pdf +0 -0
  334. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/running-biomechanics/2020_Harper_Horizontal-Deceleration-Radar.pdf +0 -0
  335. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/running-biomechanics/2021_vanOeveren_Running-Biomechanics-Synthesis.pdf +0 -0
  336. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/running-biomechanics/2024_Bramah_Sprint-Mechanics-Assessment-Score.pdf +0 -0
  337. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/smartphone-technology/2015_Balsalobre-Fernandez_iPhone-Vertical-Jump.pdf +0 -0
  338. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/smartphone-technology/2022_Bishop_MyJumpLab-Validation.pdf +0 -0
  339. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/velocity-based-training/2011_Jidovtseff_Load-Velocity-1RM-Prediction.pdf +0 -0
  340. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/velocity-based-training/2016_Conceicao_Movement-Velocity-Lower-Limb.pdf +0 -0
  341. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/velocity-based-training/2016_Pareja-Blanco_Velocity-Loss-Training.pdf +0 -0
  342. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/velocity-based-training/2017_Balsalobre-Fernandez_Barbell-Velocity-1RM.pdf +0 -0
  343. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/velocity-based-training/2020_Balsalobre-Fernandez_Barbell-Trajectory-Snatch.pdf +0 -0
  344. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/research/thirdparty/pdfs/velocity-based-training/2023_Balsalobre-Fernandez_AI-Barbell-Velocity.pdf +0 -0
  345. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/1-STRATEGIC_SUMMARY.md +0 -0
  346. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/2-STRATEGIC_ANALYSIS.md +0 -0
  347. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/MVP_FEEDBACK_COLLECTION.md +0 -0
  348. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/MVP_VALIDATION_CHECKPOINTS.md +0 -0
  349. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/README.md +0 -0
  350. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/STYLE_GUIDE.md +0 -0
  351. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/BACKEND_ARCHITECTURE/01-executive-summary.md +0 -0
  352. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/BACKEND_ARCHITECTURE/02-technical-assessment.md +0 -0
  353. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/BACKEND_ARCHITECTURE/03-refactoring-roadmap.md +0 -0
  354. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/BACKEND_ARCHITECTURE/README.md +0 -0
  355. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/BIOMECHANICS/01-executive-summary.md +0 -0
  356. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/BIOMECHANICS/02-technical-assessment.md +0 -0
  357. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/BIOMECHANICS/03-reference-guide.md +0 -0
  358. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/BIOMECHANICS/README.md +0 -0
  359. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/COMPUTER_VISION/01-executive-summary.md +0 -0
  360. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/COMPUTER_VISION/02-real-time-architecture.md +0 -0
  361. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/COMPUTER_VISION/03-implementation-checklist.md +0 -0
  362. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/COMPUTER_VISION/README.md +0 -0
  363. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/CONSOLIDATED/01-agent-consensus.md +0 -0
  364. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/CONSOLIDATED/02-critical-findings.md +0 -0
  365. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/CONSOLIDATED/03-roadmap-adjustments.md +0 -0
  366. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/CONSOLIDATED/04-decision-points.md +0 -0
  367. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/CONSOLIDATED/README.md +0 -0
  368. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/CONSOLIDATED/risk-register.md +0 -0
  369. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/CONSOLIDATED/timeline-roadmap.md +0 -0
  370. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/DEVOPS_CI_CD/01-executive-summary.md +0 -0
  371. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/DEVOPS_CI_CD/02-infrastructure-assessment.md +0 -0
  372. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/DEVOPS_CI_CD/03-implementation-roadmap.md +0 -0
  373. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/DEVOPS_CI_CD/README.md +0 -0
  374. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/ML_DATA_SCIENCE/01-executive-summary.md +0 -0
  375. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/ML_DATA_SCIENCE/02-technical-assessment.md +0 -0
  376. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/ML_DATA_SCIENCE/03-parameter-specifications.md +0 -0
  377. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/ML_DATA_SCIENCE/README.md +0 -0
  378. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/QA_TESTING/01-executive-summary.md +0 -0
  379. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/QA_TESTING/02-roadmap-assessment.md +0 -0
  380. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/QA_TESTING/03-testing-checklists.md +0 -0
  381. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/QA_TESTING/README.md +0 -0
  382. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/TECHNICAL_WRITING/01-executive-summary.md +0 -0
  383. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/TECHNICAL_WRITING/02-documentation-strategy.md +0 -0
  384. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/TECHNICAL_WRITING/03-action-plan.md +0 -0
  385. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/agent-assessments/TECHNICAL_WRITING/README.md +0 -0
  386. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/strategy/pose2sim-migration-evaluation.md +0 -0
  387. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/technical/framerate.md +0 -0
  388. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/technical/implementation-details.md +0 -0
  389. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/technical/imu-metadata.md +0 -0
  390. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/technical/real-time-analysis.md +0 -0
  391. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/technical/triple-extension.md +0 -0
  392. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/translations/es/camera-setup.md +0 -0
  393. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/validation/determinism-test.md +0 -0
  394. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/validation/known-height-validation.md +0 -0
  395. {kinemotion-0.51.0 → kinemotion-0.53.0}/docs/validation-status.md +0 -0
  396. {kinemotion-0.51.0 → kinemotion-0.53.0}/examples/bulk/README.md +0 -0
  397. {kinemotion-0.51.0 → kinemotion-0.53.0}/examples/bulk/bulk_processing.py +0 -0
  398. {kinemotion-0.51.0 → kinemotion-0.53.0}/examples/bulk/simple_example.py +0 -0
  399. {kinemotion-0.51.0 → kinemotion-0.53.0}/examples/programmatic_usage.py +0 -0
  400. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/.editorconfig +0 -0
  401. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/.env.example +0 -0
  402. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/.gitattributes +0 -0
  403. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/.gitignore +0 -0
  404. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/.yarn/releases/yarn-4.12.0.cjs +0 -0
  405. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/.yarnrc.yml +0 -0
  406. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/README.md +0 -0
  407. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/index.html +0 -0
  408. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/package.json +0 -0
  409. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/App.test.tsx +0 -0
  410. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/App.tsx +0 -0
  411. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/components/Auth.tsx +0 -0
  412. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/components/ErrorBoundary.tsx +0 -0
  413. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/components/ErrorDisplay.tsx +0 -0
  414. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/components/FeatureRequestButton.tsx +0 -0
  415. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/components/FeedbackForm.css +0 -0
  416. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/components/FeedbackForm.tsx +0 -0
  417. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/components/LoadingSpinner.tsx +0 -0
  418. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/components/RecentUploads.tsx +0 -0
  419. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/components/ResultsDisplay.test.tsx +0 -0
  420. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/components/ResultsDisplay.tsx +0 -0
  421. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/components/ResultsSkeleton.tsx +0 -0
  422. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/components/UploadForm.test.tsx +0 -0
  423. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/components/UploadForm.tsx +0 -0
  424. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/config/links.ts +0 -0
  425. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/hooks/useAnalysis.test.ts +0 -0
  426. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/hooks/useAnalysis.ts +0 -0
  427. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/hooks/useAuth.ts +0 -0
  428. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/hooks/useBackendVersion.ts +0 -0
  429. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/hooks/useDatabaseStatus.ts +0 -0
  430. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/hooks/useRecentUploads.ts +0 -0
  431. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/index.css +0 -0
  432. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/lib/supabase.ts +0 -0
  433. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/main.tsx +0 -0
  434. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/test/setup.ts +0 -0
  435. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/types/api.ts +0 -0
  436. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/src/vite-env.d.ts +0 -0
  437. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/vercel.json +0 -0
  438. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/vite.config.ts +0 -0
  439. {kinemotion-0.51.0 → kinemotion-0.53.0}/frontend/yarn.lock +0 -0
  440. {kinemotion-0.51.0 → kinemotion-0.53.0}/justfile +0 -0
  441. {kinemotion-0.51.0 → kinemotion-0.53.0}/local_dev.sh +0 -0
  442. {kinemotion-0.51.0 → kinemotion-0.53.0}/mkdocs.yml +0 -0
  443. {kinemotion-0.51.0 → kinemotion-0.53.0}/presentation/.gitignore +0 -0
  444. {kinemotion-0.51.0 → kinemotion-0.53.0}/presentation/README.md +0 -0
  445. {kinemotion-0.51.0 → kinemotion-0.53.0}/presentation/demos/.gitignore +0 -0
  446. {kinemotion-0.51.0 → kinemotion-0.53.0}/presentation/demos/README.md +0 -0
  447. {kinemotion-0.51.0 → kinemotion-0.53.0}/presentation/demos/api_demo.ipynb +0 -0
  448. {kinemotion-0.51.0 → kinemotion-0.53.0}/presentation/demos/batch_processing_demo.py +0 -0
  449. {kinemotion-0.51.0 → kinemotion-0.53.0}/presentation/demos/sample_data/.gitkeep +0 -0
  450. {kinemotion-0.51.0 → kinemotion-0.53.0}/presentation/presentation_guide.md +0 -0
  451. {kinemotion-0.51.0 → kinemotion-0.53.0}/presentation/revealjs/.gitignore +0 -0
  452. {kinemotion-0.51.0 → kinemotion-0.53.0}/presentation/revealjs/Makefile +0 -0
  453. {kinemotion-0.51.0 → kinemotion-0.53.0}/presentation/revealjs/README.md +0 -0
  454. {kinemotion-0.51.0 → kinemotion-0.53.0}/presentation/revealjs/slides.md +0 -0
  455. {kinemotion-0.51.0 → kinemotion-0.53.0}/presentation/speaker_script.md +0 -0
  456. {kinemotion-0.51.0 → kinemotion-0.53.0}/requirements-docs.txt +0 -0
  457. {kinemotion-0.51.0 → kinemotion-0.53.0}/samples/cmjs/README.md +0 -0
  458. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/README.md +0 -0
  459. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/SCRIPTS_QUICKREF.md +0 -0
  460. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/analyze_determinism_variance.py +0 -0
  461. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/basic-memory-utils.sh +0 -0
  462. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/debug_contact_states.py +0 -0
  463. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/debug_detection.py +0 -0
  464. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/find_unused_features.py +0 -0
  465. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/generate_test_data.py +0 -0
  466. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/optimize_detection_params.py +0 -0
  467. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/plot_cmj_velocities.py +0 -0
  468. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/plot_validation_results.py +0 -0
  469. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/plot_velocities.py +0 -0
  470. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/prepare_ground_truth.py +0 -0
  471. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/project/README.md +0 -0
  472. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/project/add-issue.sh +0 -0
  473. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/project/batch-set-fields.sh +0 -0
  474. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/project/helpers.sh +0 -0
  475. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/project/list.sh +0 -0
  476. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/project/set-field.sh +0 -0
  477. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/project/set-status.sh +0 -0
  478. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/project/summary.sh +0 -0
  479. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/project.sh +0 -0
  480. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/setup-github-deploy.sh +0 -0
  481. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/setup-google-oauth.sh +0 -0
  482. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/setup-supabase-local.sh +0 -0
  483. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/setup-supabase-production.sh +0 -0
  484. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/test_acceleration_standing.py +0 -0
  485. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/test_determinism.sh +0 -0
  486. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/test_drop_start_debug.py +0 -0
  487. {kinemotion-0.51.0 → kinemotion-0.53.0}/scripts/validate_known_heights.py +0 -0
  488. {kinemotion-0.51.0 → kinemotion-0.53.0}/sonar-project.properties +0 -0
  489. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/__init__.py +0 -0
  490. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/cli.py +0 -0
  491. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/cmj/__init__.py +0 -0
  492. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/cmj/analysis.py +0 -0
  493. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/cmj/api.py +0 -0
  494. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/cmj/cli.py +0 -0
  495. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/cmj/debug_overlay.py +0 -0
  496. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/cmj/joint_angles.py +0 -0
  497. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/cmj/kinematics.py +0 -0
  498. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/cmj/metrics_validator.py +0 -0
  499. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/cmj/validation_bounds.py +0 -0
  500. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/core/__init__.py +0 -0
  501. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/core/auto_tuning.py +0 -0
  502. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/core/cli_utils.py +0 -0
  503. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/core/debug_overlay_utils.py +0 -0
  504. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/core/determinism.py +0 -0
  505. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/core/experimental.py +0 -0
  506. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/core/filtering.py +0 -0
  507. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/core/formatting.py +0 -0
  508. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/core/metadata.py +0 -0
  509. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/core/pipeline_utils.py +0 -0
  510. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/core/pose.py +0 -0
  511. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/core/quality.py +0 -0
  512. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/core/timing.py +0 -0
  513. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/core/video_io.py +0 -0
  514. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/dropjump/__init__.py +0 -0
  515. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/dropjump/analysis.py +0 -0
  516. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/dropjump/api.py +0 -0
  517. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/dropjump/cli.py +0 -0
  518. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/dropjump/debug_overlay.py +0 -0
  519. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/dropjump/kinematics.py +0 -0
  520. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/dropjump/metrics_validator.py +0 -0
  521. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/dropjump/validation_bounds.py +0 -0
  522. {kinemotion-0.51.0 → kinemotion-0.53.0}/src/kinemotion/py.typed +0 -0
  523. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/__init__.py +0 -0
  524. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/cli/__init__.py +0 -0
  525. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/cli/test_cmj.py +0 -0
  526. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/cli/test_dropjump.py +0 -0
  527. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/cli/test_imports.py +0 -0
  528. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/cmj/__init__.py +0 -0
  529. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/cmj/test_analysis.py +0 -0
  530. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/cmj/test_api.py +0 -0
  531. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/cmj/test_cli.py +0 -0
  532. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/cmj/test_joint_angles.py +0 -0
  533. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/cmj/test_kinematics.py +0 -0
  534. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/cmj/test_physiological_bounds.py +0 -0
  535. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/conftest.py +0 -0
  536. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/core/__init__.py +0 -0
  537. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/core/test_auto_tuning.py +0 -0
  538. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/core/test_cli_utils.py +0 -0
  539. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/core/test_filtering.py +0 -0
  540. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/core/test_formatting.py +0 -0
  541. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/core/test_metadata.py +0 -0
  542. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/core/test_pipeline_utils.py +0 -0
  543. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/core/test_pose.py +0 -0
  544. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/core/test_quality.py +0 -0
  545. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/core/test_smoothing.py +0 -0
  546. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/core/test_timing.py +0 -0
  547. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/core/test_validation.py +0 -0
  548. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/core/test_video_io.py +0 -0
  549. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/dropjump/__init__.py +0 -0
  550. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/dropjump/test_adaptive_threshold.py +0 -0
  551. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/dropjump/test_analysis.py +0 -0
  552. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/dropjump/test_api.py +0 -0
  553. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/dropjump/test_cli.py +0 -0
  554. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/dropjump/test_contact_detection.py +0 -0
  555. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/dropjump/test_kinematics.py +0 -0
  556. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/dropjump/test_physiological_bounds.py +0 -0
  557. {kinemotion-0.51.0 → kinemotion-0.53.0}/tests/dropjump/test_validation_integration.py +0 -0
@@ -0,0 +1,153 @@
1
+ ---
2
+ title: Backend Granular Logging Implementation
3
+ type: note
4
+ permalink: development/backend-granular-logging-implementation
5
+ ---
6
+
7
+ # Backend Granular Logging Implementation
8
+
9
+ ## Complete Logging Coverage
10
+
11
+ All logging has been restored and enhanced with comprehensive instrumentation throughout the video analysis pipeline.
12
+
13
+ ## Logging Stages by Category
14
+
15
+ ### 1. Endpoint Level (routes/analysis.py) - 2 stages
16
+ - **`analyzing_video_started`** - Before analysis begins (includes jump_type, quality, debug flags)
17
+ - **`analyzing_video_completed`** - After analysis finishes (includes duration_ms, status_code)
18
+
19
+ ### 2. Validation & Setup (analysis_service.py) - 5 stages
20
+ - **`validating_video_file`** - Starting video file validation
21
+ - **`validating_video_file_completed`** - File validation complete (duration_ms)
22
+ - **`validating_jump_type`** - Starting jump type validation (includes jump_type)
23
+ - **`validating_jump_type_completed`** - Jump type validation complete (normalized_jump_type, duration_ms)
24
+ - **`generating_storage_key`** - Starting storage key generation (includes filename)
25
+ - **`generating_storage_key_completed`** - Key generation complete (storage_key, duration_ms)
26
+
27
+ ### 3. File Operations (analysis_service.py) - 2 stages
28
+ - **`saving_uploaded_file`** - Starting file save to temp disk (temp_path)
29
+ - **`saving_uploaded_file_completed`** - File save complete (file_size_mb, duration_ms)
30
+
31
+ ### 4. Video Processing Pipeline (analysis_service.py) - 2 main + N granular
32
+ - **`video_processing_started`** - Starting core kinemotion analysis
33
+ - **Individual pipeline stages** (via timer.get_metrics()) - Each stage from kinemotion library:
34
+ - `frame_read` - Reading video frames
35
+ - `frame_rotation` - Rotating frames for correct orientation
36
+ - `frame_conversion` - Converting frame formats
37
+ - `mediapipe_inference` - MediaPipe pose detection (DOMINANT: 88-94% of time)
38
+ - `landmark_extraction` - Extracting pose landmarks
39
+ - `smoothing_outlier_rejection` - Outlier rejection in smoothing
40
+ - `smoothing_bilateral` - Bilateral filter smoothing
41
+ - `smoothing_savgol` - Savitzky-Golay smoothing
42
+ - `parameter_auto_tuning` - Auto-tuning algorithm parameters
43
+ - `vertical_position_extraction` - Extracting Y-axis positions
44
+ - `phase_detection` - Detecting jump phases (CMJ-specific)
45
+ - `dj_detect_drop_start` - Detecting drop start (Drop Jump-specific)
46
+ - `dj_find_phases` - Finding drop jump phases
47
+ - `dj_identify_contact` - Ground contact detection
48
+ - `dj_analyze_flight` - Analyzing flight phase
49
+ - `dj_compute_velocity` - Computing velocity
50
+ - `dj_find_contact_frames` - Finding contact frames
51
+ - `cmj_compute_derivatives` - Computing derivatives
52
+ - `cmj_find_takeoff` - Finding takeoff point
53
+ - `cmj_find_lowest_point` - Finding lowest point
54
+ - `cmj_find_landing` - Finding landing point
55
+ - `cmj_find_standing_end` - Finding standing phase end
56
+ - `metrics_calculation` - Computing final metrics
57
+ - `quality_assessment` - Quality assessment
58
+ - `debug_video_generation` - Generating debug overlay video
59
+ - `debug_video_resize` - Resizing debug video frames
60
+ - `debug_video_write` - Writing debug video to disk
61
+ - `debug_video_copy` - Copying frames for debug video
62
+ - `debug_video_draw` - Drawing annotations on debug video
63
+ - **`video_processing_completed`** - Processing complete (total_duration_s, duration_ms)
64
+
65
+ ### 5. Cloud Storage Operations (analysis_service.py) - 5 stages
66
+ - **`uploading_original_video`** - Starting upload (storage_key)
67
+ - **`original_video_uploaded`** - Upload complete (url)
68
+ - **`uploading_analysis_results`** - Starting results JSON upload (storage_key)
69
+ - **`r2_results_upload`** - Results upload complete (duration_ms, url, key)
70
+ - **`uploading_debug_video`** - Starting debug video upload (storage_key)
71
+ - **`r2_debug_video_upload`** - Debug video upload complete (duration_ms, url, key)
72
+ - **`debug_video_empty_skipping_upload`** - Debug video empty, skipping upload
73
+
74
+ ### 6. Response Building & Cleanup (analysis_service.py) - 3 stages
75
+ - **`response_serialization`** - Converting metrics to JSON response (duration_ms)
76
+ - **`cleaning_up_temporary_files`** - Starting cleanup
77
+ - **`temp_file_cleanup`** - Cleanup complete (duration_ms)
78
+
79
+ ### 7. Success Summary (analysis_service.py) - 1 stage
80
+ - **`video_analysis_completed`** - Final summary (jump_type, duration_ms, metrics_count)
81
+
82
+ ### 8. Error Handling (routes/analysis.py + analysis_service.py) - 2 stages
83
+ - **`analyze_endpoint_validation_error`** - (WARNING) Validation failed at endpoint
84
+ - **`analyze_endpoint_error`** - (ERROR) Unexpected error at endpoint
85
+ - **`video_analysis_validation_error`** - (ERROR) Validation failed in service
86
+ - **`video_analysis_failed`** - (ERROR) Processing failed in service
87
+
88
+ ## Total Logging Coverage
89
+
90
+ **Total granular logging events: 30+ individual events** including:
91
+ - 2 endpoint-level events
92
+ - 5 validation/setup events
93
+ - 2 file operation events
94
+ - 2 + N processing pipeline events (N = individual kinemotion stages)
95
+ - 5 cloud storage events
96
+ - 3 response/cleanup events
97
+ - 1 success summary event
98
+ - 4 error events
99
+
100
+ ## Key Features
101
+
102
+ ✅ **End-to-End Visibility** - Every major operation emits events
103
+ ✅ **Detailed Timing** - All operations include duration_ms where relevant
104
+ ✅ **Contextual Data** - Each log includes relevant identifiers (storage_key, filename, urls, etc.)
105
+ ✅ **Bottleneck Identification** - MediaPipe pose tracking consistently shows 88-94% of total time
106
+ ✅ **Test Coverage** - All 89 backend tests pass with instrumentation
107
+ ✅ **Code Quality** - Passes ruff linting and pyright type checking
108
+ ✅ **Request Tracing** - Can follow requests through entire pipeline via upload_id in error cases
109
+ ✅ **Performance Metrics** - Granular timing for optimization decisions
110
+
111
+ ## Log Output Examples
112
+
113
+ ### Successful Analysis Flow
114
+ ```
115
+ analyzing_video_started jump_type=cmj quality=balanced debug=false
116
+ validating_video_file
117
+ validating_video_file_completed duration_ms=1.2
118
+ validating_jump_type jump_type=cmj
119
+ validating_jump_type_completed normalized_jump_type=cmj duration_ms=0.5
120
+ generating_storage_key filename=video.mp4
121
+ generating_storage_key_completed storage_key=abc123 duration_ms=0.8
122
+ saving_uploaded_file temp_path=/tmp/video.mp4
123
+ saving_uploaded_file_completed file_size_mb=45.23 duration_ms=250.4
124
+ video_processing_started
125
+ frame_read duration_ms=324.5
126
+ mediapipe_inference duration_ms=5183.1
127
+ smoothing_bilateral duration_ms=188.6
128
+ metrics_calculation duration_ms=0.2
129
+ video_processing_completed total_duration_s=5.72 duration_ms=5721.4
130
+ uploading_original_video storage_key=abc123
131
+ original_video_uploaded url=https://r2.example.com/videos/abc123.mp4
132
+ uploading_analysis_results storage_key=abc123
133
+ r2_results_upload duration_ms=234.0 url=https://r2.example.com/results/abc123.json key=results/abc123.json
134
+ response_serialization duration_ms=1.5
135
+ cleaning_up_temporary_files
136
+ temp_file_cleanup duration_ms=45.2
137
+ video_analysis_completed jump_type=cmj duration_ms=5721.4 metrics_count=12
138
+ analyzing_video_completed duration_ms=6200.5 status_code=200
139
+ ```
140
+
141
+ ## Implementation Files
142
+
143
+ - **routes/analysis.py** - Endpoint-level logging (analyzing_video_started/completed)
144
+ - **services/analysis_service.py** - Core pipeline logging (validation, processing, storage, cleanup)
145
+ - **services/video_processor.py** - Video processor logging wrapper
146
+
147
+ ## Testing
148
+
149
+ ✅ All 89 backend tests pass
150
+ ✅ All 16 API endpoint tests pass
151
+ ✅ Ruff linting: All checks passed
152
+ ✅ Pyright type checking: 0 errors
153
+ ✅ No breaking changes to existing functionality
@@ -7,20 +7,12 @@ on:
7
7
  - 'backend/**'
8
8
  - 'src/kinemotion/**'
9
9
  - '.github/workflows/deploy-backend.yml'
10
- - '!frontend/**'
11
- - '!docs/**'
12
- - '!*.md' # ignore markdown files
13
- - '!scripts/**'
14
- - '!tests/**'
15
- - '!.serena/**'
16
- - '!.basic-memory/**'
17
- - '!.cursor/**'
18
- - '!.vscode/**'
19
- - '!.gitignore'
20
-
21
- concurrency:
22
- group: release-all
23
- cancel-in-progress: false
10
+ workflow_dispatch:
11
+ inputs:
12
+ reason:
13
+ description: 'Reason for manual deployment'
14
+ required: false
15
+ type: string
24
16
 
25
17
  env:
26
18
  GCP_PROJECT_ID: kinemotion-backend
@@ -76,62 +68,9 @@ jobs:
76
68
  cd backend
77
69
  uv run ruff check .
78
70
 
79
- release:
80
- name: Create Release
81
- needs: test
82
- runs-on: ubuntu-latest
83
- permissions:
84
- contents: write
85
- outputs:
86
- version: ${{ steps.get_version.outputs.version }}
87
- released: ${{ steps.get_version.outputs.released }}
88
- steps:
89
- - uses: actions/checkout@v6
90
-
91
- - name: Set up Python
92
- uses: actions/setup-python@v6
93
- with:
94
- python-version: '3.12'
95
-
96
- - name: Install uv
97
- run: pip install uv
98
-
99
- - name: Install backend dependencies
100
- run: |
101
- cd backend
102
- uv sync
103
-
104
- - name: Create Release
105
- env:
106
- GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
107
- run: |
108
- git config user.name "github-actions"
109
- git config user.email "github-actions@github.com"
110
- cd backend
111
- uv run semantic-release version
112
-
113
- - name: Determine version and release status
114
- id: get_version
115
- run: |
116
- # Check if semantic-release created a new release (tagged commit)
117
- if git describe --exact-match --tags HEAD 2>/dev/null; then
118
- # Semantic release was created - use version from pyproject.toml
119
- VERSION=$(grep '^version = ' backend/pyproject.toml | cut -d'"' -f2)
120
- RELEASED="true"
121
- else
122
- # No semantic release - use fallback version (dev-{short_sha})
123
- SHORT_SHA=$(git rev-parse --short HEAD)
124
- VERSION="dev-${SHORT_SHA}"
125
- RELEASED="false"
126
- fi
127
-
128
- echo "version=${VERSION}" >> $GITHUB_OUTPUT
129
- echo "released=${RELEASED}" >> $GITHUB_OUTPUT
130
- echo "Version: ${VERSION} (released: ${RELEASED})"
131
-
132
71
  build:
133
72
  name: Build and Push Docker Image to GCR
134
- needs: release
73
+ needs: test
135
74
  runs-on: ubuntu-latest
136
75
  permissions:
137
76
  contents: read
@@ -160,7 +99,7 @@ jobs:
160
99
  context: .
161
100
  file: ./backend/Dockerfile
162
101
  push: true
163
- tags: ${{ env.REGISTRY }}/${{ env.GCP_PROJECT_ID }}/${{ env.SERVICE_NAME }}:${{ needs.release.outputs.version }},${{ env.REGISTRY }}/${{ env.GCP_PROJECT_ID }}/${{ env.SERVICE_NAME }}:${{ github.sha }},${{ env.REGISTRY }}/${{ env.GCP_PROJECT_ID }}/${{ env.SERVICE_NAME }}:latest
102
+ tags: ${{ env.REGISTRY }}/${{ env.GCP_PROJECT_ID }}/${{ env.SERVICE_NAME }}:${{ github.sha }},${{ env.REGISTRY }}/${{ env.GCP_PROJECT_ID }}/${{ env.SERVICE_NAME }}:latest
164
103
  cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.GCP_PROJECT_ID }}/${{ env.SERVICE_NAME }}:buildcache
165
104
  cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.GCP_PROJECT_ID }}/${{ env.SERVICE_NAME }}:buildcache,mode=max
166
105
 
@@ -8,20 +8,6 @@ on:
8
8
  - '.github/workflows/deploy-backend.yml'
9
9
  - 'backend/**'
10
10
  - 'frontend/**'
11
- - '*.md' # ignore markdown files
12
- - 'scripts/**'
13
- - '.serena/**'
14
- - '.basic-memory/**'
15
- - '.cursor/**'
16
- - '.vscode/**'
17
- - '.gitignore'
18
- - '.claude/**'
19
- - '.gemini/**'
20
- - '.mcp/**'
21
-
22
- concurrency:
23
- group: release-all
24
- cancel-in-progress: false
25
11
 
26
12
  jobs:
27
13
  test:
@@ -38,7 +38,7 @@ repos:
38
38
  additional_dependencies:
39
39
  - mdformat-gfm>=0.3.5 # GitHub Flavored Markdown
40
40
  - mdformat-tables # Table formatting
41
- exclude: (^CLAUDE\.md$|^CHANGELOG\.md$|^backend/CHANGELOG\.md$|^presentation/revealjs/slides\.md$|\.claude/agents/.*\.md$|\.basic-memory/.*\.md$|\.serena/.*\.md$)
41
+ exclude: (^CLAUDE\.md$|^CHANGELOG\.md$|^presentation/revealjs/slides\.md$|\.claude/agents/.*\.md$|\.basic-memory/.*\.md$|\.serena/.*\.md$)
42
42
 
43
43
  - repo: https://github.com/compilerla/conventional-pre-commit
44
44
  rev: v4.3.0
@@ -7,63 +7,47 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  <!-- version list -->
9
9
 
10
- ## v0.51.0 (2025-12-13)
10
+ ## v0.53.0 (2025-12-14)
11
11
 
12
- ### Bug Fixes
13
-
14
- - Correct MetricsData instantiation and metrics_count calculation
15
- ([`e2ebca1`](https://github.com/feniix/kinemotion/commit/e2ebca1d5614faa86cdb3c4e23ef9fa034cd8d2a))
12
+ ### Features
16
13
 
17
- - Correct uv.lock path in backend semantic-release build command
18
- ([`650c3bc`](https://github.com/feniix/kinemotion/commit/650c3bc7b1a18814f179e7f1e4835000186ee45c))
14
+ - Test new release name
15
+ ([`408a825`](https://github.com/feniix/kinemotion/commit/408a82534056822252dd6425920e6a05a80a595a))
19
16
 
20
- - Remove invalid search_tag_format and fix tag_format syntax
21
- ([`46c2a2a`](https://github.com/feniix/kinemotion/commit/46c2a2af5fa97a833256896253b300c307d3a528))
22
17
 
23
- - Update error handling tests to use 'status' field instead of 'status_code'
24
- ([`890e54b`](https://github.com/feniix/kinemotion/commit/890e54b6ac7bead9dceb0f34fdaeb4789e3b3dbd))
18
+ ## v0.52.0 (2025-12-14)
25
19
 
26
- - **docs**: Enhance api module docstring with examples and analysis types
27
- ([`94e32f1`](https://github.com/feniix/kinemotion/commit/94e32f1061505747c0345e8683a61bcf8dc60ee3))
20
+ ### Features
28
21
 
29
- - **docs**: Improve app.py module docstring with comprehensive feature overview
30
- ([`eab977c`](https://github.com/feniix/kinemotion/commit/eab977c237f2318f5dc0b94a32f4b736053bfc00))
22
+ - Bump version
23
+ ([`6f0f055`](https://github.com/feniix/kinemotion/commit/6f0f055bd806f947371467dfa3b60720fddbff39))
31
24
 
32
- - **docs**: Improve module docstrings in src/kinemotion and backend/src/
33
- ([`f59d649`](https://github.com/feniix/kinemotion/commit/f59d6494c8735fa3e83f8bdbedefce0b6c405cf5))
34
25
 
35
- ### Continuous Integration
26
+ ## v0.51.0 (2025-12-14)
36
27
 
37
- - Add semantic-release configuration to backend
38
- ([`f8e447c`](https://github.com/feniix/kinemotion/commit/f8e447c86b03d7ad6cf9e40d67217371f642f254))
39
-
40
- - Improve workflow configuration and add backend versioning
41
- ([`8d86933`](https://github.com/feniix/kinemotion/commit/8d8693398b6aec20c847ae0616488dd3b90c35af))
28
+ ### Chores
42
29
 
43
- - Use shared concurrency group to prevent race conditions between CLI and backend release workflows
44
- ([`038e744`](https://github.com/feniix/kinemotion/commit/038e744ed13aa52c78557df8257995861de5308e))
30
+ - Sync version with PyPI 0.51.0
31
+ ([`13a3806`](https://github.com/feniix/kinemotion/commit/13a380695f9499935c05f3088d7d409df6b7ccf3))
45
32
 
46
33
  ### Features
47
34
 
48
- - Add comprehensive granular logging for pipeline stage timing
49
- ([`0489222`](https://github.com/feniix/kinemotion/commit/04892221faf2cb39f355867475242b8baafa34cd))
35
+ - Bump version
36
+ ([`751e190`](https://github.com/feniix/kinemotion/commit/751e1908768fee2cf193d79c672174546955c445))
50
37
 
51
- - Implement continuous deployment with optional semantic releases
52
- ([`3596e47`](https://github.com/feniix/kinemotion/commit/3596e47e055dd54dda130bba9d7e78c14c4b2819))
38
+ - Sync versions
39
+ ([`03e6413`](https://github.com/feniix/kinemotion/commit/03e6413388142e3b04d535f9c07d653d5f73144e))
53
40
 
54
- ### Refactoring
55
41
 
56
- - Decouple semantic-release configs with directory-specific filtering
57
- ([`b7d4fef`](https://github.com/feniix/kinemotion/commit/b7d4fefcff2972d2d347dfef69a830b1f2473cfc))
42
+ ## v0.50.1 (2025-12-14)
58
43
 
59
- - Namespace semantic-release tags and reset backend to 0.1.0
60
- ([`76d9c5b`](https://github.com/feniix/kinemotion/commit/76d9c5b4cedebfd56c5e5ec5272e260620520cd3))
44
+ ### Bug Fixes
61
45
 
62
- - Restore search_tag_format for decoupled version detection
63
- ([`e9f163d`](https://github.com/feniix/kinemotion/commit/e9f163dd85aa81b0dce52d26339bcc858e9b6ef5))
46
+ - Fix version
47
+ ([`e030ed2`](https://github.com/feniix/kinemotion/commit/e030ed2b76315bfcfa21ae61e0d65d99b7e8ba49))
64
48
 
65
- - Separate release job in backend deployment workflow
66
- ([`521f03f`](https://github.com/feniix/kinemotion/commit/521f03f4d32c6bcf0b048c2fba3d54d74c7c0677))
49
+ - **backend**: Use configured logger from logging_config
50
+ ([`e38e3bf`](https://github.com/feniix/kinemotion/commit/e38e3bff973ac47efa9c5735a7e45fead2b219f8))
67
51
 
68
52
 
69
53
  ## v0.50.0 (2025-12-13)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kinemotion
3
- Version: 0.51.0
3
+ Version: 0.53.0
4
4
  Summary: Video-based kinematic analysis for athletic performance
5
5
  Project-URL: Homepage, https://github.com/feniix/kinemotion
6
6
  Project-URL: Repository, https://github.com/feniix/kinemotion
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "kinemotion-backend"
3
- version = "0.1.1"
3
+ version = "0.2.0"
4
4
  description = "FastAPI backend for Kinemotion video analysis"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10,<3.13"
@@ -59,7 +59,6 @@ dev = [
59
59
  "httpx>=0.26.0",
60
60
  "ruff>=0.1.8",
61
61
  "pyright>=1.1.380",
62
- "python-semantic-release>=9.8.2",
63
62
  ]
64
63
 
65
64
  [tool.pytest.ini_options]
@@ -154,32 +153,3 @@ reportUnusedClass = "warning"
154
153
  reportUnusedFunction = "warning"
155
154
  reportUnusedVariable = "warning"
156
155
  reportDuplicateImport = "warning"
157
-
158
- [tool.semantic_release]
159
- version_toml = ["pyproject.toml:project.version"]
160
- branch = "main"
161
- changelog_file = "CHANGELOG.md"
162
- tag_format = "kinemotion-backend-v{version}"
163
- build_command = """\
164
- uv lock --upgrade-package "$PACKAGE_NAME"
165
- git add ../uv.lock
166
- uv build
167
- """
168
- dist_path = "dist/"
169
- upload_to_vcs_release = true
170
- remove_dist = false
171
- patch_without_tag = false
172
- major_on_zero = false
173
- allow_zero_version = true
174
- commit_message = "chore(release): {version} [skip ci]"
175
-
176
- [tool.semantic_release.commit_parser_options]
177
- allowed_tags = ["feat", "fix", "docs", "style", "refactor", "perf", "test", "chore", "build", "ci"]
178
- minor_tags = ["feat"]
179
- patch_tags = ["fix", "perf"]
180
-
181
- [tool.semantic_release.publish]
182
- # Only process commits affecting backend/src/kinemotion_backend/ for backend releases
183
- # Tests (backend/tests/) are excluded since they are not part of the public API
184
- # This decouples backend versioning from root CLI versioning
185
- directories = ["backend/src/kinemotion_backend"]
@@ -1,22 +1,4 @@
1
- """API endpoints for analysis sessions and coach feedback.
2
-
3
- This module provides FastAPI endpoints for managing video analysis sessions and
4
- coach feedback. Key responsibilities:
5
-
6
- - Create and retrieve analysis sessions for uploaded videos
7
- - Process video analysis requests through the kinemotion engine
8
- - Store and retrieve coach feedback linked to analysis sessions
9
- - Handle authentication via Supabase JWT tokens
10
- - Manage session state and error handling
11
-
12
- Endpoints:
13
- POST /api/analysis/sessions - Create a new analysis session
14
- GET /api/analysis/sessions/{session_id} - Retrieve session details
15
- POST /api/analysis/sessions/{session_id}/feedback - Add coach feedback
16
- GET /api/analysis/sessions/{session_id}/feedback - Retrieve feedback
17
-
18
- All endpoints require JWT authentication via Authorization header.
19
- """
1
+ """API endpoints for analysis sessions and coach feedback."""
20
2
 
21
3
  from typing import Any
22
4
 
@@ -1,18 +1,6 @@
1
1
  """FastAPI application for Kinemotion video analysis backend.
2
2
 
3
- This module provides a REST API for analyzing jump mechanics from video files.
4
- It handles video uploads, processes them through the kinemotion analysis engine
5
- (drop jump and counter-movement jump analysis), stores results in Supabase, and
6
- manages video/result artifacts in Cloudflare R2 storage.
7
-
8
- Key features:
9
- - Video upload and processing for multiple jump types
10
- - Integration with MediaPipe pose tracking
11
- - Metrics calculation (RSI, flight time, jump height, etc.)
12
- - Result persistence in Supabase database
13
- - Artifact management in Cloudflare R2 storage
14
- - Rate limiting and request logging middleware
15
- - CORS support for frontend integration
3
+ Real metrics integration with Cloudflare R2 storage for video and results management.
16
4
  """
17
5
 
18
6
  import os
@@ -90,7 +78,7 @@ class AnalysisResponse:
90
78
  def to_dict(self) -> dict[str, Any]:
91
79
  """Convert response to JSON-serializable dictionary."""
92
80
  result: dict[str, Any] = {
93
- "status": self.status_code,
81
+ "status_code": self.status_code,
94
82
  "message": self.message,
95
83
  "processing_time_s": self.processing_time_s,
96
84
  }
@@ -1157,7 +1145,7 @@ async def http_exception_handler(request: Any, exc: HTTPException) -> JSONRespon
1157
1145
  return JSONResponse(
1158
1146
  status_code=exc.status_code,
1159
1147
  content={
1160
- "status": exc.status_code,
1148
+ "status_code": exc.status_code,
1161
1149
  "message": "HTTP Error",
1162
1150
  "error": exc.detail,
1163
1151
  },
@@ -1177,7 +1165,7 @@ async def general_exception_handler(request: Any, exc: Exception) -> JSONRespons
1177
1165
  return JSONResponse(
1178
1166
  status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
1179
1167
  content={
1180
- "status": 500,
1168
+ "status_code": 500,
1181
1169
  "message": "Internal server error",
1182
1170
  "error": error_detail,
1183
1171
  },
@@ -37,7 +37,7 @@ class MetricsData(BaseModel):
37
37
  class AnalysisResponse(BaseModel):
38
38
  """Response structure for video analysis results."""
39
39
 
40
- status: int = Field(..., description="HTTP status code")
40
+ status_code: int = Field(..., description="HTTP status code")
41
41
  message: str = Field(..., description="Response message")
42
42
  metrics: MetricsData | None = Field(None, description="Analysis metrics")
43
43
  results_url: str | None = Field(None, description="URL to analysis results")
@@ -1,6 +1,7 @@
1
1
  """Video analysis routes for kinemotion backend."""
2
2
 
3
- import structlog
3
+ import time
4
+
4
5
  from fastapi import APIRouter, File, Form, Header, Request, UploadFile
5
6
  from fastapi.responses import JSONResponse
6
7
 
@@ -12,11 +13,12 @@ except ImportError:
12
13
  fastapi_limiter_available = False
13
14
  RateLimiter = None # type: ignore[assignment]
14
15
 
16
+ from ..logging_config import get_logger
15
17
  from ..models.responses import AnalysisResponse
16
18
  from ..services import AnalysisService, validate_referer
17
19
  from ..utils import NoOpLimiter
18
20
 
19
- logger = structlog.get_logger()
21
+ logger = get_logger(__name__)
20
22
  router = APIRouter(prefix="/api", tags=["Analysis"])
21
23
 
22
24
  # Rate limiting (use NoOpLimiter for testing or when fastapi_limiter unavailable)
@@ -56,8 +58,6 @@ async def analyze_video(
56
58
  Raises:
57
59
  HTTPException: If validation or processing fails
58
60
  """
59
- import time
60
-
61
61
  start_time = time.time()
62
62
 
63
63
  # Validate referer (prevent direct API access)
@@ -70,12 +70,12 @@ async def analyze_video(
70
70
  # Convert debug string to boolean
71
71
  enable_debug = debug.lower() == "true"
72
72
 
73
+ # Log analysis start
73
74
  logger.info(
74
- "analyze_endpoint_processing",
75
+ "analyzing_video_started",
75
76
  jump_type=jump_type,
76
77
  quality=quality,
77
78
  debug=enable_debug,
78
- filename=file.filename,
79
79
  )
80
80
 
81
81
  # Perform analysis using service layer
@@ -87,13 +87,12 @@ async def analyze_video(
87
87
  user_id=None, # TODO: Extract from auth when available
88
88
  )
89
89
 
90
- # Log successful response
91
- elapsed = time.time() - start_time
90
+ # Log analysis completion
91
+ analysis_duration = time.time() - start_time
92
92
  logger.info(
93
- "analyze_endpoint_success",
94
- status_code=result.status,
95
- processing_time_s=round(elapsed, 2),
96
- has_metrics=result.metrics is not None,
93
+ "analyzing_video_completed",
94
+ duration_ms=round(analysis_duration * 1000, 1),
95
+ status_code=result.status_code,
97
96
  )
98
97
 
99
98
  # Return JSON response
@@ -110,7 +109,7 @@ async def analyze_video(
110
109
 
111
110
  # Return validation error
112
111
  error_result = AnalysisResponse(
113
- status=422,
112
+ status_code=422,
114
113
  message=str(e),
115
114
  error="validation_error",
116
115
  metrics=None,
@@ -138,7 +137,7 @@ async def analyze_video(
138
137
 
139
138
  # Return generic server error
140
139
  error_result = AnalysisResponse(
141
- status=500,
140
+ status_code=500,
142
141
  message="Internal server error during analysis",
143
142
  error=str(e),
144
143
  metrics=None,