kinemotion 0.58.0__tar.gz → 0.59.1__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.
- kinemotion-0.59.1/.basic-memory/development/i18n-implementation-plan-for-validation-messages.md +102 -0
- kinemotion-0.59.1/.basic-memory/project-management/i18n-documentation-cleanup-completed.md +102 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.claude/settings.local.json +6 -2
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.gitignore +1 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/CHANGELOG.md +12 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/PKG-INFO +1 -1
- kinemotion-0.59.1/docs/development/I18N-README.md +327 -0
- kinemotion-0.59.1/docs/development/i18n-architecture-diagram.md +455 -0
- kinemotion-0.59.1/docs/development/i18n-cheat-sheet.md +379 -0
- kinemotion-0.59.1/docs/development/i18n-quick-start-guide.md +753 -0
- kinemotion-0.59.1/docs/development/i18n-summary.md +343 -0
- kinemotion-0.59.1/docs/development/i18n-validation-messages-specification.md +819 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/package.json +3 -1
- kinemotion-0.59.1/frontend/src/App.i18n.integration.test.tsx +211 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/App.tsx +9 -5
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/ErrorDisplay.tsx +13 -9
- kinemotion-0.59.1/frontend/src/components/LanguageSwitcher.css +43 -0
- kinemotion-0.59.1/frontend/src/components/LanguageSwitcher.test.tsx +169 -0
- kinemotion-0.59.1/frontend/src/components/LanguageSwitcher.tsx +31 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/ResultsDisplay.tsx +37 -35
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/UploadForm.test.tsx +2 -2
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/UploadForm.tsx +16 -14
- kinemotion-0.59.1/frontend/src/hooks/useLanguage.test.ts +186 -0
- kinemotion-0.59.1/frontend/src/hooks/useLanguage.ts +35 -0
- kinemotion-0.59.1/frontend/src/i18n/config.ts +44 -0
- kinemotion-0.59.1/frontend/src/i18n/locales/en/translation.json +186 -0
- kinemotion-0.59.1/frontend/src/i18n/locales/es/translation.json +186 -0
- kinemotion-0.59.1/frontend/src/i18n/locales/fr/translation.json +186 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/main.tsx +1 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/test/setup.ts +25 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/yarn.lock +46 -1
- {kinemotion-0.58.0 → kinemotion-0.59.1}/pyproject.toml +2 -2
- {kinemotion-0.58.0 → kinemotion-0.59.1}/uv.lock +1 -1
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/README.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/api/api-reference-quick-commands.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/api/cloud-run-cpu-specifications-investigation.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/api/supabase-authentication-setup-guide.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/authentication/auth-provider-comparison-december-2025.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/authentication/auth-providers-comparison-december-2025.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/authentication/supabase-authentication-quick-start.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/authentication/supabase-authentication-setup-guide.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/authentication/supabase-authentication-technical-guide.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/authentication/supabase-google-oauth-setup-guide.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/authentication/supabase-production-setup-guide.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/authentication/supabase-quick-start-guide.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/biomechanics/camera-angle-empirical-validation-results-45-superior-for-media-pipe.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/biomechanics/camera-perspective-analysis-45deg-vs-lateral.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/biomechanics/cmj-landing-detection-window-validation.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/biomechanics/cmj-physiological-bounds-for-validation.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/biomechanics/cmj-validation-implementation-complete.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/biomechanics/drop-jump-vs-cmj-key-differences.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/biomechanics/technical-implementation-45deg-perspective-correction.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/codebase/codebase-architecture-overview.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/codebase/validation-architecture-visual-hierarchy-after-refactoring.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/codebase/validation-code-duplication-evidence.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/codebase/validation-module-architecture-analysis.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/codebase/validation-refactoring-complete-architecture-improvement.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/deployment/automated-deployment-setup-git-hub-actions-with-workload-identity-federation.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/deployment/backend-repository-split-migration-guide.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/deployment/backend-repository-split-step-by-step-execution-guide.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/deployment/cloud-run-security-least-privilege-service-account-setup.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/deployment/cors-and-memory-issues-production-debugging-guide.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/deployment/current-kinemotion-architecture-correct-deployment-setup.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/deployment/frontend-repository-split-migration-guide.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/deployment/frontend-repository-split-step-by-step-execution-guide.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/deployment/production-deployment-guide-vercel-google-cloud-run.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/deployment/quick-deployment-commands-vercel-and-cloud-run.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/deployment/vercel-monorepo-deployment-best-practice.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/athlete-pose3d-and-cross-platform-determinism-investigation-complete.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/athlete-pose3d-final-strategy-accuracy-and-robustness.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/athlete-pose3d-media-pipe-enhancement-plan.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/athlete-pose3d-phase-1-implementation-complete.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/backend-authentication-and-logging-status.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/backend-code-coverage-analysis.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/backend-code-duplication-analysis.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/backend-granular-logging-implementation.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/backend-kinemotion-decoupling-strategy.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/backend-sonar-cloud-integration-status.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/basic-memory-naming-hook-analysis.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/ci-caching-issue-investigation-deep-squat-test-failure.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/ci-vs-local-test-failure-investigation.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/claude-code-hook-configuration.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/cmj-phase-detection-testing-gap-analysis.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/commit-review-r2-video-storage-migration-fe74d1f.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/comprehensive-timing-instrumentation.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/cross-platform-determinism-analysis-final-results.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/development-standards-quality-gates.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/drop-jump-detection-complete-fix-all-metrics-within-target.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/drop-jump-detection-failure-analysis-per-video-breakdown.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/drop-jump-fix-drop-start-successful-landing-and-takeoff-remain.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/fast-api-app.py Refactoring Plan - Modular Architecture.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/fast-api-refactoring-completion-summary.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/feature-request-system-configuration.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/follow-up-improvements-to-r2-video-storage-migration.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/frontend-dependencies-analysis-nov-2025.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/google-oauth-setup-script-final-review-production-ready.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/google-oauth-setup-script-review-issues-and-recommendations.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/hook-complete-audit-summary.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/hook-configuration-audit.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/hook-quick-reference.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/keyboard-interrupt-test-suite-failure-analysis.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/model-import-conflict-resolution-fast-api-refactoring.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/non-deterministic-analysis-root-cause-and-solution.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/optimal-timing-implementation-summary.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/p0-p1-p2-test-suite-fixes-final-report.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/pose-detection-baseline-evaluation-results.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/pose-detection-optimization-complete-success-summary.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/pose-detection-parameter-optimization-framework.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/structured-logging-implementation-complete.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/structured-logging-implementation.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/supabase-dashboard-navigation-december-2025.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/supabase-database-integration-setup.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/test-coverage-asymmetry-analysis-cmj-vs-drop-jump.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/test-coverage-equivalence-achievement-summary.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/test-suite-comprehensive-review-december-2025.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/test-suite-comprehensive-review-structure-and-gaps.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/test-suite-p0-p1-p2-fixes-complete-report.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/test-suite-p0-p1-p2-fixes-progress-report.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/unused-and-experimental-features-strategy.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/unused-code-detection-prompt-template.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/unused-code-identification-and-decorator-application-december-2025.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/unused-code-verification-final-pass-december-2025.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/using-multiple-mcp-reasoning-servers-simultaneously.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/velocity-threshold-empirical-validation-study.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/development/vercel-authentication-options-for-user-id-tracking.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/project-management/documentation-audit-december-2025.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/project-management/issue-12-mvp-scaffolding-complete.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/project-management/issue-12-unblocked-tasks-breakdown.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/project-management/issue-12-use-real-metrics-now.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/project-management/kinemotion-project-setup-complete.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/project-management/kinemotion-supabase-production-configuration.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/project-management/mcp-sequential-thinking-alternatives-analysis.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/project-management/performance-optimization-pose-tracker-pool-timing-instrumentation-complete.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/project-management/project-state-summary-december-2025.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/project-management/specialized-subagents-routing-guide.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/project-management/supabase-setup-instructions-for-kinemotion.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/project-management/version-mismatch-analysis-kinemotion-0370-vs-0300.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/strategy/deployment-decision-analysis-for-kinemotion.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/strategy/mvp-feedback-collection-plan.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/strategy/mvp-first-strategic-direction.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/strategy/mvp-validation-checkpoints.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/strategy/pose2sim-migration-evaluation-and-strategy.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/strategy/strategic-priority-tasks-current-roadmap.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.basic-memory/strategy/third-party-auth-providers-with-free-tiers-december-2025.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.claude/agents/biomechanics-specialist.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.claude/agents/computer-vision-engineer.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.claude/agents/devops-cicd-engineer.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.claude/agents/frontend-developer.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.claude/agents/ml-data-scientist.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.claude/agents/project-manager.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.claude/agents/python-backend-developer.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.claude/agents/qa-test-engineer.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.claude/agents/technical-writer.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.cursor/mcp.json +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.dockerignore +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.envrc +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.gitattributes +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.github/dependabot.yml +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.github/pull_request_template.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.github/workflows/deploy-backend.yml +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.github/workflows/docs.yml +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.github/workflows/release.yml +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.github/workflows/test.yml +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.mcp.json +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.pre-commit-config.yaml +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.readthedocs.yml +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/.gitignore +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/memories/backend-cors-fastapi-middleware-order.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/memories/camera-perspective-validation-study.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/memories/code_style_and_conventions.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/memories/current-project-architecture.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/memories/deployment-checklist-and-known-issues.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/memories/deployment-setup-complete.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/memories/github-project-setup-summary.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/memories/mvp-first-strategy.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/memories/mvp-roadmap-and-priorities.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/memories/project_overview.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/memories/specialist-agents-routing.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/memories/suggested_commands.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.serena/project.yml +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.tool-versions +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/.vercelignore +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/CLAUDE.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/CODE_OF_CONDUCT.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/CONTRIBUTING.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/Dockerfile +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/GEMINI.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/LICENSE +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/README.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/SECURITY.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/.coveragerc +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/.dockerignore +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/.env.example +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/Dockerfile +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/README.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/docs/fly-deployment.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/docs/implementation-summary.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/docs/setup.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/docs/tests.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/pyproject.toml +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/__init__.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/analysis_api.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/app/__init__.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/app/config.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/app/dependencies.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/app/exceptions.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/app/main.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/app.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/auth.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/database.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/logging_config.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/middleware.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/models/__init__.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/models/database.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/models/responses.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/models/storage.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/routes/__init__.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/routes/analysis.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/routes/database.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/routes/health.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/routes/platform.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/services/__init__.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/services/analysis_service.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/services/storage_service.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/services/validation.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/services/video_processor.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/types.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/utils/__init__.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/src/kinemotion_backend/utils/rate_limiter.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/supabase-schema.sql +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/tests/README.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/tests/__init__.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/tests/conftest.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/tests/test_api_endpoints.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/tests/test_error_handling.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/tests/test_health.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/tests/test_r2_integration.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/backend/tests/test_validation.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/README.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/api/cmj.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/api/core.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/api/dropjump.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/api/overview.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/development/agents-guide.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/development/errors-findings.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/development/feature-request-system.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/development/feedback-system-setup.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/development/test-suite-review-december-2025.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/development/testing-standards.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/development/testing.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/development/type-hints.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/development/validation-plan.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/development/validation-roadmap.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/development/wallball-norep-detection.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/guides/bulk-processing.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/guides/camera-setup.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/guides/cloud-run-deployment.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/guides/cmj-guide.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/guides/cmj-recording-protocol-es.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/guides/cmj-recording-protocol.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/guides/deployment-checklist.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/guides/local-testing.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/guides/setup-issue-12.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/index.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/quick-start.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/reference/cloud-run-quick-reference.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/reference/json-output-format.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/reference/json-structure-comparison.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/reference/parameters.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/reference/pose-systems.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/paper-downloader/HOW-TO-FIND-DOIS.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/paper-downloader/README.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/paper-downloader/dois.txt +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/paper-downloader/download.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/paper-downloader/pyproject.toml +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/paper-downloader/uv.lock +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/sports-biomechanics-pose-estimation.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/MANUAL-DOWNLOAD-GUIDE.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/README.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/convert_pdfs.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/athlete-monitoring/2001_Foster_Session-RPE-Training-Monitoring.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/athlete-monitoring/2015_Buchheit_GPS-Accelerometers-Stride-Stiffness.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/athlete-monitoring/2018_Flatt_HRV-Recovery-Swimmers.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/athlete-monitoring/2018_Saw_Training-Camps-Monitoring.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/athlete-monitoring/2018_Ward_Putting-i-in-Team.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2011_Petersen_Nordic-Hamstring-Prevention.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2011_Wilk_Shoulder-GIRD-Baseball-Pitchers.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2012_Hewit_Multidirectional-Leg-Asymmetry.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2015_Ford_Hip-Neuromuscular-Exercise-Valgus.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2015_Mosler_Hip-Groin-Pain-Factors.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2015_Sconce_Nordic-Hamstring-Validity.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2016_Mendez-Villanueva_Hamstring-MRI-Regional.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2016_Read_Youth-Soccer-Injury-Risk.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2017_Mason-Mackay_Ankle-Dorsiflexion-Landing.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2017_Mendiguchia_Hamstring-Treatment-Algorithm.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2018_Balsalobre-Fernandez_Ankle-Dorsiflexion-App.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2018_Bramah_Pathological-Gait-Running-Injuries.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/injury-prevention/2020_Fidai_Fatigue-Knee-Valgus-Youth.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/jump-performance/2011_Harper_10-to-5-Jump-Test.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/jump-performance/2012_Samozino_Optimal-Force-Velocity-Profile.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/jump-performance/2014_Samozino_FV-Imbalance.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/jump-performance/2016_Jimenez-Reyes_Force-Velocity-Training.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/jump-performance/2016_Morin-Samozino_Power-Force-Velocity-Profiles.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/jump-performance/2018_Garcia-Ramos_Two-Point-Method-Optimization.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/jump-performance/2022_Wells_Golf-Clubhead-CMJ.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/running-biomechanics/2005_Morin_Running-Stiffness-Measurement.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/running-biomechanics/2015_Balsalobre-Fernandez_Strength-Training-Running-Economy.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/running-biomechanics/2016_Balsalobre-Fernandez_iPhone-Running-Mechanics.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/running-biomechanics/2016_Moore_Economical-Running-Technique.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/running-biomechanics/2020_Filter_Curve-Sprint-Test-Soccer.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/running-biomechanics/2020_Harper_Horizontal-Deceleration-Radar.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/running-biomechanics/2021_vanOeveren_Running-Biomechanics-Synthesis.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/running-biomechanics/2024_Bramah_Sprint-Mechanics-Assessment-Score.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/smartphone-technology/2015_Balsalobre-Fernandez_iPhone-Vertical-Jump.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/smartphone-technology/2022_Bishop_MyJumpLab-Validation.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/velocity-based-training/2011_Jidovtseff_Load-Velocity-1RM-Prediction.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/velocity-based-training/2016_Conceicao_Movement-Velocity-Lower-Limb.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/velocity-based-training/2016_Pareja-Blanco_Velocity-Loss-Training.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/velocity-based-training/2017_Balsalobre-Fernandez_Barbell-Velocity-1RM.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/velocity-based-training/2020_Balsalobre-Fernandez_Barbell-Trajectory-Snatch.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/markdown/velocity-based-training/2023_Balsalobre-Fernandez_AI-Barbell-Velocity.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/online-references-for-papers.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/athlete-monitoring/2001_Foster_Session-RPE-Training-Monitoring.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/athlete-monitoring/2015_Buchheit_GPS-Accelerometers-Stride-Stiffness.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/athlete-monitoring/2018_Flatt_HRV-Recovery-Swimmers.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/athlete-monitoring/2018_Saw_Training-Camps-Monitoring.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/athlete-monitoring/2018_Ward_Putting-i-in-Team.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2011_Petersen_Nordic-Hamstring-Prevention.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2011_Wilk_Shoulder-GIRD-Baseball-Pitchers.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2012_Hewit_Multidirectional-Leg-Asymmetry.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2015_Ford_Hip-Neuromuscular-Exercise-Valgus.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2015_Mosler_Hip-Groin-Pain-Factors.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2015_Sconce_Nordic-Hamstring-Validity.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2016_Mendez-Villanueva_Hamstring-MRI-Regional.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2016_Read_Youth-Soccer-Injury-Risk.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2017_Mason-Mackay_Ankle-Dorsiflexion-Landing.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2017_Mendiguchia_Hamstring-Treatment-Algorithm.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2018_Balsalobre-Fernandez_Ankle-Dorsiflexion-App.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2018_Bramah_Pathological-Gait-Running-Injuries.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/injury-prevention/2020_Fidai_Fatigue-Knee-Valgus-Youth.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/jump-performance/2011_Harper_10-to-5-Jump-Test.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/jump-performance/2012_Samozino_Optimal-Force-Velocity-Profile.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/jump-performance/2014_Samozino_FV-Imbalance.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/jump-performance/2016_Jimenez-Reyes_Force-Velocity-Training.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/jump-performance/2016_Morin-Samozino_Power-Force-Velocity-Profiles.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/jump-performance/2018_Garcia-Ramos_Two-Point-Method-Optimization.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/jump-performance/2022_Wells_Golf-Clubhead-CMJ.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/running-biomechanics/2005_Morin_Running-Stiffness-Measurement.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/running-biomechanics/2015_Balsalobre-Fernandez_Strength-Training-Running-Economy.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/running-biomechanics/2016_Balsalobre-Fernandez_iPhone-Running-Mechanics.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/running-biomechanics/2016_Moore_Economical-Running-Technique.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/running-biomechanics/2020_Filter_Curve-Sprint-Test-Soccer.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/running-biomechanics/2020_Harper_Horizontal-Deceleration-Radar.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/running-biomechanics/2021_vanOeveren_Running-Biomechanics-Synthesis.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/running-biomechanics/2024_Bramah_Sprint-Mechanics-Assessment-Score.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/smartphone-technology/2015_Balsalobre-Fernandez_iPhone-Vertical-Jump.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/smartphone-technology/2022_Bishop_MyJumpLab-Validation.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/velocity-based-training/2011_Jidovtseff_Load-Velocity-1RM-Prediction.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/velocity-based-training/2016_Conceicao_Movement-Velocity-Lower-Limb.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/velocity-based-training/2016_Pareja-Blanco_Velocity-Loss-Training.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/velocity-based-training/2017_Balsalobre-Fernandez_Barbell-Velocity-1RM.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/velocity-based-training/2020_Balsalobre-Fernandez_Barbell-Trajectory-Snatch.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/research/thirdparty/pdfs/velocity-based-training/2023_Balsalobre-Fernandez_AI-Barbell-Velocity.pdf +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/1-STRATEGIC_SUMMARY.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/2-STRATEGIC_ANALYSIS.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/MVP_FEEDBACK_COLLECTION.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/MVP_VALIDATION_CHECKPOINTS.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/README.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/STYLE_GUIDE.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/BACKEND_ARCHITECTURE/01-executive-summary.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/BACKEND_ARCHITECTURE/02-technical-assessment.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/BACKEND_ARCHITECTURE/03-refactoring-roadmap.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/BACKEND_ARCHITECTURE/README.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/BIOMECHANICS/01-executive-summary.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/BIOMECHANICS/02-technical-assessment.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/BIOMECHANICS/03-reference-guide.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/BIOMECHANICS/README.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/COMPUTER_VISION/01-executive-summary.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/COMPUTER_VISION/02-real-time-architecture.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/COMPUTER_VISION/03-implementation-checklist.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/COMPUTER_VISION/README.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/CONSOLIDATED/01-agent-consensus.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/CONSOLIDATED/02-critical-findings.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/CONSOLIDATED/03-roadmap-adjustments.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/CONSOLIDATED/04-decision-points.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/CONSOLIDATED/README.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/CONSOLIDATED/risk-register.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/CONSOLIDATED/timeline-roadmap.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/DEVOPS_CI_CD/01-executive-summary.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/DEVOPS_CI_CD/02-infrastructure-assessment.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/DEVOPS_CI_CD/03-implementation-roadmap.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/DEVOPS_CI_CD/README.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/ML_DATA_SCIENCE/01-executive-summary.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/ML_DATA_SCIENCE/02-technical-assessment.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/ML_DATA_SCIENCE/03-parameter-specifications.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/ML_DATA_SCIENCE/README.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/QA_TESTING/01-executive-summary.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/QA_TESTING/02-roadmap-assessment.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/QA_TESTING/03-testing-checklists.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/QA_TESTING/README.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/TECHNICAL_WRITING/01-executive-summary.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/TECHNICAL_WRITING/02-documentation-strategy.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/TECHNICAL_WRITING/03-action-plan.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/agent-assessments/TECHNICAL_WRITING/README.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/strategy/pose2sim-migration-evaluation.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/technical/framerate.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/technical/implementation-details.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/technical/imu-metadata.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/technical/real-time-analysis.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/technical/triple-extension.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/translations/es/camera-setup.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/validation/determinism-test.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/validation/known-height-validation.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/docs/validation-status.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/examples/bulk/README.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/examples/bulk/bulk_processing.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/examples/bulk/simple_example.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/examples/programmatic_usage.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/.editorconfig +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/.env.example +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/.gitattributes +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/.gitignore +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/.yarn/releases/yarn-4.12.0.cjs +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/.yarnrc.yml +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/README.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/index.html +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/App.test.tsx +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/Auth.tsx +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/ErrorBoundary.tsx +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/FeatureRequestButton.tsx +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/FeedbackForm.css +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/FeedbackForm.tsx +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/LoadingSpinner.tsx +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/RecentUploads.tsx +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/ResultsDisplay.test.tsx +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/components/ResultsSkeleton.tsx +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/config/links.ts +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/hooks/useAnalysis.test.ts +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/hooks/useAnalysis.ts +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/hooks/useAuth.ts +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/hooks/useBackendVersion.ts +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/hooks/useDatabaseStatus.ts +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/hooks/useRecentUploads.ts +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/index.css +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/lib/supabase.ts +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/types/api.ts +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/src/vite-env.d.ts +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/vercel.json +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/frontend/vite.config.ts +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/justfile +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/local_dev.sh +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/mkdocs.yml +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/.gitignore +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/README.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/demos/.gitignore +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/demos/README.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/demos/api_demo.ipynb +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/demos/batch_processing_demo.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/demos/sample_data/.gitkeep +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/presentation_guide.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/revealjs/.gitignore +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/revealjs/Makefile +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/revealjs/README.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/revealjs/slides.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/presentation/speaker_script.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/requirements-docs.txt +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/samples/cmjs/README.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/README.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/SCRIPTS_QUICKREF.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/analyze_determinism_variance.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/basic-memory-utils.sh +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/debug_contact_states.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/debug_detection.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/find_unused_features.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/generate_test_data.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/optimize_detection_params.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/plot_cmj_velocities.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/plot_validation_results.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/plot_velocities.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/prepare_ground_truth.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/project/README.md +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/project/add-issue.sh +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/project/batch-set-fields.sh +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/project/helpers.sh +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/project/list.sh +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/project/set-field.sh +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/project/set-status.sh +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/project/summary.sh +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/project.sh +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/setup-github-deploy.sh +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/setup-google-oauth.sh +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/setup-supabase-local.sh +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/setup-supabase-production.sh +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/test_acceleration_standing.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/test_determinism.sh +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/test_drop_start_debug.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/scripts/validate_known_heights.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/sonar-project.properties +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/__init__.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/api.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/cli.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/cmj/__init__.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/cmj/analysis.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/cmj/api.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/cmj/cli.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/cmj/debug_overlay.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/cmj/joint_angles.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/cmj/kinematics.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/cmj/metrics_validator.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/cmj/validation_bounds.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/__init__.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/auto_tuning.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/cli_utils.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/debug_overlay_utils.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/determinism.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/experimental.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/filtering.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/formatting.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/metadata.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/pipeline_utils.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/pose.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/quality.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/smoothing.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/timing.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/validation.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/core/video_io.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/dropjump/__init__.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/dropjump/analysis.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/dropjump/api.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/dropjump/cli.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/dropjump/debug_overlay.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/dropjump/kinematics.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/dropjump/metrics_validator.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/dropjump/validation_bounds.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/src/kinemotion/py.typed +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/__init__.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/cli/__init__.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/cli/test_cmj.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/cli/test_dropjump.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/cli/test_imports.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/cmj/__init__.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/cmj/test_analysis.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/cmj/test_api.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/cmj/test_cli.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/cmj/test_joint_angles.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/cmj/test_kinematics.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/cmj/test_physiological_bounds.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/conftest.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/__init__.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/test_auto_tuning.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/test_cli_utils.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/test_filtering.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/test_formatting.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/test_metadata.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/test_pipeline_utils.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/test_pose.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/test_quality.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/test_smoothing.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/test_timing.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/test_validation.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/core/test_video_io.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/dropjump/__init__.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/dropjump/test_adaptive_threshold.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/dropjump/test_analysis.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/dropjump/test_api.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/dropjump/test_cli.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/dropjump/test_contact_detection.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/dropjump/test_kinematics.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/dropjump/test_physiological_bounds.py +0 -0
- {kinemotion-0.58.0 → kinemotion-0.59.1}/tests/dropjump/test_validation_integration.py +0 -0
kinemotion-0.59.1/.basic-memory/development/i18n-implementation-plan-for-validation-messages.md
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: i18n Implementation Plan for Validation Messages
|
|
3
|
+
type: note
|
|
4
|
+
permalink: development/i18n-implementation-plan-for-validation-messages
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Internationalization (i18n) Implementation Plan for Validation Messages
|
|
8
|
+
|
|
9
|
+
## Executive Summary
|
|
10
|
+
|
|
11
|
+
Implementing i18n for validation messages in the Kinemotion backend using **Option B: Structured Data + Frontend Translation** approach. This decouples the backend from translation logic and aligns with REST API best practices.
|
|
12
|
+
|
|
13
|
+
## Current State Analysis
|
|
14
|
+
|
|
15
|
+
### Validator Structure
|
|
16
|
+
- **Location**: `src/kinemotion/cmj/metrics_validator.py` and `src/kinemotion/dropjump/metrics_validator.py`
|
|
17
|
+
- **ValidationResult Flow**:
|
|
18
|
+
1. Validators generate formatted messages: `"Flight time 0.600s within expected range for recreational"`
|
|
19
|
+
2. Messages stored in `ValidationIssue` objects with metric, value, bounds, severity
|
|
20
|
+
3. Sent to frontend via `CMJMetrics.validation_result` → `to_dict()`
|
|
21
|
+
|
|
22
|
+
### Current Message Examples
|
|
23
|
+
```python
|
|
24
|
+
# ERROR
|
|
25
|
+
result.add_error("flight_time", f"Flight time {flight_time:.3f}s below frame rate resolution limit")
|
|
26
|
+
|
|
27
|
+
# WARNING
|
|
28
|
+
result.add_warning("flight_time", f"Flight time {flight_time:.3f}s outside typical range [{min:.3f}-{max:.3f}]s for {profile}")
|
|
29
|
+
|
|
30
|
+
# INFO
|
|
31
|
+
result.add_info("flight_time", f"Flight time {flight_time:.3f}s within expected range for {profile}")
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Metrics with Validation Messages
|
|
35
|
+
**CMJ Validator** (16 validation methods):
|
|
36
|
+
- Multiple validation checks generating 30+ message variants
|
|
37
|
+
|
|
38
|
+
**Drop Jump Validator** (6 validation methods):
|
|
39
|
+
- Multiple validation checks generating 15+ message variants
|
|
40
|
+
|
|
41
|
+
## Design: Structured Data Approach (Option B)
|
|
42
|
+
|
|
43
|
+
### Why This Approach?
|
|
44
|
+
- Decouples backend from translation logic
|
|
45
|
+
- Stable API contract (language-independent)
|
|
46
|
+
- Frontend-only updates for new languages
|
|
47
|
+
- Follows REST API best practices
|
|
48
|
+
- Separates concerns: backend = validation logic, frontend = presentation/translation
|
|
49
|
+
|
|
50
|
+
## New Validation Response Structure
|
|
51
|
+
|
|
52
|
+
**After (Proposed)**:
|
|
53
|
+
```json
|
|
54
|
+
{
|
|
55
|
+
"status": "PASS_WITH_WARNINGS",
|
|
56
|
+
"issues": [
|
|
57
|
+
{
|
|
58
|
+
"severity": "warning",
|
|
59
|
+
"metric": "flight_time",
|
|
60
|
+
"message_key": "validation.flight_time.outside_range",
|
|
61
|
+
"value": 0.600,
|
|
62
|
+
"bounds": [0.400, 0.500],
|
|
63
|
+
"context": {
|
|
64
|
+
"min": 0.400,
|
|
65
|
+
"max": 0.500,
|
|
66
|
+
"profile": "recreational",
|
|
67
|
+
"unit": "s"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
],
|
|
71
|
+
"athlete_profile": "recreational"
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Message Key Naming Convention
|
|
76
|
+
|
|
77
|
+
Pattern: `validation.[metric].[condition]`
|
|
78
|
+
|
|
79
|
+
Examples:
|
|
80
|
+
- `validation.flight_time.within_range` - Value in expected range (INFO)
|
|
81
|
+
- `validation.flight_time.outside_range` - Value outside but physically possible (WARNING)
|
|
82
|
+
- `validation.flight_time.below_minimum` - Below frame rate resolution (ERROR)
|
|
83
|
+
- `validation.jump_height.no_jump` - Essentially no jump detected (ERROR)
|
|
84
|
+
|
|
85
|
+
## Implementation Summary
|
|
86
|
+
|
|
87
|
+
### Phase 1: Backend Changes
|
|
88
|
+
1. Add `message_key` and `context` fields to `ValidationIssue`
|
|
89
|
+
2. Update `add_error()`, `add_warning()`, `add_info()` methods
|
|
90
|
+
3. Update all 22 validation methods in both validators
|
|
91
|
+
4. Update `to_dict()` serialization
|
|
92
|
+
|
|
93
|
+
### Phase 2: Frontend Changes
|
|
94
|
+
1. Create translation files (en, es, fr, de, ja, etc.)
|
|
95
|
+
2. Implement i18next or react-intl
|
|
96
|
+
3. Update ValidationIssue component to use message_key + context
|
|
97
|
+
4. Add language selection UI
|
|
98
|
+
|
|
99
|
+
### Phase 3: Backward Compatibility
|
|
100
|
+
- Keep `message` field for old clients
|
|
101
|
+
- Message_key is optional
|
|
102
|
+
- Gradual migration over 2-3 releases
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: i18n Documentation Cleanup - Completed
|
|
3
|
+
type: note
|
|
4
|
+
permalink: project-management/i18n-documentation-cleanup-completed
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# i18n Documentation Cleanup - Completed ✅
|
|
8
|
+
|
|
9
|
+
**Date**: December 14, 2024
|
|
10
|
+
**Status**: Complete with all tests passing (70/70)
|
|
11
|
+
|
|
12
|
+
## What Was Cleaned Up
|
|
13
|
+
|
|
14
|
+
### 1. Deleted Redundant Files (11 files)
|
|
15
|
+
**From frontend/ directory:**
|
|
16
|
+
- `I18N_ARCHITECTURE.md`
|
|
17
|
+
- `I18N_IMPLEMENTATION_GUIDE.md`
|
|
18
|
+
- `I18N_QUICK_START.md`
|
|
19
|
+
- `I18N_SUMMARY.md`
|
|
20
|
+
- `I18N_TESTING_GUIDE.md`
|
|
21
|
+
- `I18N-FEATURE-COMPLETE.md`
|
|
22
|
+
- `I18N-SETUP-COMPLETE.md`
|
|
23
|
+
- `I18N-TESTS-SUMMARY.md`
|
|
24
|
+
- `README_I18N.md`
|
|
25
|
+
|
|
26
|
+
**From project root:**
|
|
27
|
+
- `I18N_DELIVERABLES.md`
|
|
28
|
+
- `I18N_IMPLEMENTATION_SUMMARY.txt`
|
|
29
|
+
|
|
30
|
+
**Reason**: These were documentation artifacts from the implementation process. Information is redundant with actual code and source of truth.
|
|
31
|
+
|
|
32
|
+
### 2. Retained & Clarified Documentation (6 files)
|
|
33
|
+
**Location**: `docs/development/i18n-*.md`
|
|
34
|
+
|
|
35
|
+
All files relate to **v0.60.0 future work** - backend internationalization of validation messages:
|
|
36
|
+
- `I18N-README.md` (updated with forward-looking notice)
|
|
37
|
+
- `i18n-summary.md`
|
|
38
|
+
- `i18n-quick-start-guide.md`
|
|
39
|
+
- `i18n-cheat-sheet.md`
|
|
40
|
+
- `i18n-architecture-diagram.md`
|
|
41
|
+
- `i18n-validation-messages-specification.md`
|
|
42
|
+
|
|
43
|
+
**Update Made**: Added warning header to `I18N-README.md` clarifying:
|
|
44
|
+
- These docs are for **v0.60.0 roadmap work** (backend message i18n)
|
|
45
|
+
- Current implementation (v0.58.0) frontend UI i18n is in actual source code
|
|
46
|
+
- Users should refer to `frontend/` components for current implementation
|
|
47
|
+
|
|
48
|
+
### 3. Basic Memory Documentation
|
|
49
|
+
**Location**: `.basic-memory/development/i18n-implementation-plan-for-validation-messages.md`
|
|
50
|
+
|
|
51
|
+
This is properly placed and serves as internal reference material.
|
|
52
|
+
|
|
53
|
+
## Current State
|
|
54
|
+
|
|
55
|
+
### Frontend i18n (COMPLETED - v0.58.0)
|
|
56
|
+
✅ Implementation files:
|
|
57
|
+
- `src/i18n/config.ts`
|
|
58
|
+
- `src/hooks/useLanguage.ts` & tests
|
|
59
|
+
- `src/components/LanguageSwitcher.tsx` & tests
|
|
60
|
+
- `src/i18n/locales/` - Translation files (en, es, fr)
|
|
61
|
+
|
|
62
|
+
✅ All 70 tests passing:
|
|
63
|
+
- 7 test files
|
|
64
|
+
- 70 test functions
|
|
65
|
+
- Components, hooks, and integration tests
|
|
66
|
+
|
|
67
|
+
### Backend i18n (PLANNED - v0.60.0)
|
|
68
|
+
📋 Documentation in `docs/development/i18n-*.md`:
|
|
69
|
+
- Complete specification for adding i18n support to validation messages
|
|
70
|
+
- Step-by-step implementation guide
|
|
71
|
+
- Architecture diagrams
|
|
72
|
+
- Testing strategy
|
|
73
|
+
|
|
74
|
+
## Verification Results
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
Test Files 7 passed (7)
|
|
78
|
+
Tests 70 passed (70)
|
|
79
|
+
No broken imports or references
|
|
80
|
+
All existing tests unaffected
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Best Practices Applied
|
|
84
|
+
|
|
85
|
+
1. **Single Source of Truth**: Documentation in `docs/` for future work, implementation in source code
|
|
86
|
+
2. **Clear Separation**: Frontend (current) vs Backend (future) clearly distinguished
|
|
87
|
+
3. **Reduced Clutter**: Removed process artifacts, kept reference material
|
|
88
|
+
4. **Proper Organization**: Future work docs properly indexed with clear reading guides
|
|
89
|
+
|
|
90
|
+
## Final Adjustments
|
|
91
|
+
|
|
92
|
+
✅ Removed specific version references from future-work docs:
|
|
93
|
+
- Changed "v0.60.0" to generic descriptions ("minor version bump", "future release")
|
|
94
|
+
- Updated migration timeline to use phases instead of version numbers
|
|
95
|
+
- Changed deployment steps to use placeholders instead of specific tags
|
|
96
|
+
- This allows the docs to remain accurate regardless of when the feature is implemented
|
|
97
|
+
|
|
98
|
+
## Next Steps
|
|
99
|
+
|
|
100
|
+
- When implementing backend i18n, follow guides in `docs/development/i18n-*.md`
|
|
101
|
+
- Update basic memory with progress on backend implementation
|
|
102
|
+
- Docs are version-agnostic and ready for future use
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"includeCoAuthoredBy": false,
|
|
3
|
+
"attribution": {
|
|
4
|
+
"commit": "",
|
|
5
|
+
"pr": ""
|
|
6
|
+
},
|
|
3
7
|
"permissions": {
|
|
4
8
|
"allow": [
|
|
5
9
|
"Bash(cat:*)",
|
|
@@ -22,7 +26,7 @@
|
|
|
22
26
|
"WebFetch(domain:docs.sonarsource.com)",
|
|
23
27
|
"WebFetch(domain:github.com)",
|
|
24
28
|
"WebFetch(domain:pypi.org)",
|
|
25
|
-
"WebFetch(domain:raw.githubusercontent.com)"
|
|
29
|
+
"WebFetch(domain:raw.githubusercontent.com)",
|
|
26
30
|
"WebFetch(domain:realpython.com)",
|
|
27
31
|
"WebFetch(domain:sonarcloud.io)",
|
|
28
32
|
"WebFetch(domain:www.pyopensci.org)",
|
|
@@ -68,7 +72,7 @@
|
|
|
68
72
|
"mcp__sonarqube__search_sonar_issues_in_projects",
|
|
69
73
|
"mcp__sonarqube__show_rule",
|
|
70
74
|
"mcp__web-search__freebird_fetch",
|
|
71
|
-
"mcp__web-search__freebird_search"
|
|
75
|
+
"mcp__web-search__freebird_search"
|
|
72
76
|
]
|
|
73
77
|
},
|
|
74
78
|
"enableAllProjectMcpServers": true
|
|
@@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
<!-- version list -->
|
|
9
9
|
|
|
10
|
+
## kinemotion-v0.59.1 (2025-12-15)
|
|
11
|
+
|
|
12
|
+
### Fix
|
|
13
|
+
|
|
14
|
+
- add missing i18n translation JSON files to git
|
|
15
|
+
|
|
16
|
+
## kinemotion-v0.59.0 (2025-12-15)
|
|
17
|
+
|
|
18
|
+
### Feat
|
|
19
|
+
|
|
20
|
+
- add comprehensive frontend i18n support with 3 languages
|
|
21
|
+
|
|
10
22
|
## kinemotion-v0.58.0 (2025-12-14)
|
|
11
23
|
|
|
12
24
|
### Feat
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kinemotion
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.59.1
|
|
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
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
# Internationalization (i18n) Implementation Guide
|
|
2
|
+
|
|
3
|
+
**⚠️ IMPORTANT**: This guide covers **future work** - internationalization of backend validation messages.
|
|
4
|
+
|
|
5
|
+
**Currently Completed**: Frontend UI i18n for user-facing strings (English, Spanish, French). See `frontend/` components for current implementation.
|
|
6
|
+
|
|
7
|
+
______________________________________________________________________
|
|
8
|
+
|
|
9
|
+
## Document Index
|
|
10
|
+
|
|
11
|
+
This documentation is for implementing **backend validation message i18n** (future roadmap item).
|
|
12
|
+
|
|
13
|
+
### 1. **Summary** - Start Here
|
|
14
|
+
|
|
15
|
+
📄 **File**: `i18n-summary.md`
|
|
16
|
+
|
|
17
|
+
**What to read**: Executive overview, implementation scope, timeline
|
|
18
|
+
**Time to read**: 10 minutes
|
|
19
|
+
**Key sections**:
|
|
20
|
+
|
|
21
|
+
- Why Option B (Structured Data) is recommended
|
|
22
|
+
- What gets implemented (backend + frontend)
|
|
23
|
+
- Implementation scope and effort estimate
|
|
24
|
+
- JSON response example
|
|
25
|
+
- Backward compatibility guarantee
|
|
26
|
+
|
|
27
|
+
**Best for**: Understanding the overall approach and getting buy-in from stakeholders
|
|
28
|
+
|
|
29
|
+
______________________________________________________________________
|
|
30
|
+
|
|
31
|
+
### 2. **Specification** - Complete Technical Reference
|
|
32
|
+
|
|
33
|
+
📄 **File**: `i18n-validation-messages-specification.md`
|
|
34
|
+
|
|
35
|
+
**What to read**: Detailed technical specs, data models, implementation details
|
|
36
|
+
**Time to read**: 30-45 minutes
|
|
37
|
+
**Key sections**:
|
|
38
|
+
|
|
39
|
+
- Architecture decision rationale (Option A vs B)
|
|
40
|
+
- Data model changes (ValidationIssue, ValidationResult)
|
|
41
|
+
- Message key naming convention
|
|
42
|
+
- Backend implementation (step-by-step code changes)
|
|
43
|
+
- Frontend implementation (i18next setup, components)
|
|
44
|
+
- Testing strategy with code examples
|
|
45
|
+
- Migration checklist
|
|
46
|
+
- Complete message key reference
|
|
47
|
+
|
|
48
|
+
**Best for**: Developers implementing the feature, code reviewers, QA engineers
|
|
49
|
+
|
|
50
|
+
______________________________________________________________________
|
|
51
|
+
|
|
52
|
+
### 3. **Quick Start Guide** - Step-by-Step Implementation
|
|
53
|
+
|
|
54
|
+
📄 **File**: `i18n-quick-start-guide.md`
|
|
55
|
+
|
|
56
|
+
**What to read**: Actionable implementation steps, code templates
|
|
57
|
+
**Time to read**: 20-30 minutes for overview, reference during implementation
|
|
58
|
+
**Key sections**:
|
|
59
|
+
|
|
60
|
+
- Phase 1: Backend implementation (6 steps)
|
|
61
|
+
- Phase 2: Frontend implementation (5 steps)
|
|
62
|
+
- Phase 3: Integration testing
|
|
63
|
+
- Detailed code examples for each step
|
|
64
|
+
- Testing code snippets
|
|
65
|
+
- Implementation checklist
|
|
66
|
+
- Deployment steps
|
|
67
|
+
- Rollback plan
|
|
68
|
+
|
|
69
|
+
**Best for**: Developers actually implementing the feature (use as a guide)
|
|
70
|
+
|
|
71
|
+
______________________________________________________________________
|
|
72
|
+
|
|
73
|
+
### 4. **Architecture Diagram** - Visual Guide
|
|
74
|
+
|
|
75
|
+
📄 **File**: `i18n-architecture-diagram.md`
|
|
76
|
+
|
|
77
|
+
**What to read**: Visual representations of data flow, component architecture
|
|
78
|
+
**Time to read**: 15-20 minutes
|
|
79
|
+
**Key sections**:
|
|
80
|
+
|
|
81
|
+
- Data flow from video upload to rendered UI
|
|
82
|
+
- Component architecture diagram
|
|
83
|
+
- Message key resolution flow
|
|
84
|
+
- Message key namespace structure
|
|
85
|
+
- Backward compatibility timeline
|
|
86
|
+
- Language auto-detection strategy
|
|
87
|
+
- Testing strategy matrix
|
|
88
|
+
|
|
89
|
+
**Best for**: Understanding how components interact, architectural decisions, planning
|
|
90
|
+
|
|
91
|
+
______________________________________________________________________
|
|
92
|
+
|
|
93
|
+
### 5. **Cheat Sheet** - Quick Reference
|
|
94
|
+
|
|
95
|
+
📄 **File**: `i18n-cheat-sheet.md`
|
|
96
|
+
|
|
97
|
+
**What to read**: Quick reference during implementation
|
|
98
|
+
**Time to read**: 5-10 minutes (for quick lookup)
|
|
99
|
+
**Key sections**:
|
|
100
|
+
|
|
101
|
+
- Quick reference code snippets
|
|
102
|
+
- Message key patterns
|
|
103
|
+
- JSON response fields
|
|
104
|
+
- Translation template placeholders
|
|
105
|
+
- Code changes summary
|
|
106
|
+
- Time estimates
|
|
107
|
+
- Common mistakes to avoid
|
|
108
|
+
- Validation checklist
|
|
109
|
+
|
|
110
|
+
**Best for**: Developers implementing the feature (bookmark and print!)
|
|
111
|
+
|
|
112
|
+
______________________________________________________________________
|
|
113
|
+
|
|
114
|
+
## Reading Recommendations
|
|
115
|
+
|
|
116
|
+
### For Developers
|
|
117
|
+
|
|
118
|
+
1. Start with **Summary** (10 min) - understand the approach
|
|
119
|
+
1. Read **Quick Start Guide** (30 min) - get implementation steps
|
|
120
|
+
1. Keep **Cheat Sheet** open during implementation (reference as needed)
|
|
121
|
+
1. Reference **Specification** (30 min) - for detailed info on specific changes
|
|
122
|
+
|
|
123
|
+
### For Project Managers
|
|
124
|
+
|
|
125
|
+
1. Start with **Summary** (10 min) - understand scope and timeline
|
|
126
|
+
1. Review **Quick Start Guide** checklist (5 min) - track progress
|
|
127
|
+
|
|
128
|
+
### For QA/Testing Engineers
|
|
129
|
+
|
|
130
|
+
1. Start with **Summary** (10 min) - understand the feature
|
|
131
|
+
1. Read **Specification** testing strategy section (10 min) - understand test approach
|
|
132
|
+
1. Reference **Quick Start Guide** testing section (10 min) - test code examples
|
|
133
|
+
1. Use **Cheat Sheet** validation checklist (5 min) - test execution
|
|
134
|
+
|
|
135
|
+
### For Code Reviewers
|
|
136
|
+
|
|
137
|
+
1. Read **Summary** (10 min) - understand the approach
|
|
138
|
+
1. Read **Specification** sections 1-2 (15 min) - understand data model changes
|
|
139
|
+
1. Reference **Specification** code implementation sections (as needed)
|
|
140
|
+
1. Use **Cheat Sheet** common mistakes (5 min) - what to look for
|
|
141
|
+
|
|
142
|
+
### For Architects/Decision Makers
|
|
143
|
+
|
|
144
|
+
1. Read **Summary** (10 min)
|
|
145
|
+
1. Review **Architecture Diagram** (15 min)
|
|
146
|
+
1. Check **Backward Compatibility** section (5 min)
|
|
147
|
+
|
|
148
|
+
______________________________________________________________________
|
|
149
|
+
|
|
150
|
+
## Key Facts at a Glance
|
|
151
|
+
|
|
152
|
+
| Aspect | Detail |
|
|
153
|
+
| ------------------- | ------------------------------------------------------- |
|
|
154
|
+
| **Approach** | Option B: Structured Data + Frontend Translation |
|
|
155
|
+
| **Breaking Change** | No - Fully backward compatible |
|
|
156
|
+
| **New Version** | v0.60.0 (minor version bump) |
|
|
157
|
+
| **Effort** | 14-20 hours (backend 4-6h, frontend 6-8h, testing 4-6h) |
|
|
158
|
+
| **Files to Change** | 5 backend + 10 frontend files |
|
|
159
|
+
| **Message Keys** | ~45-50 (organized by metric) |
|
|
160
|
+
| **Languages** | 5 (en, es, fr, de, ja) |
|
|
161
|
+
| **Tests** | 10-20 new tests (backend + frontend) |
|
|
162
|
+
| **Backward Compat** | Yes - message field still works |
|
|
163
|
+
|
|
164
|
+
______________________________________________________________________
|
|
165
|
+
|
|
166
|
+
## Implementation Checklist
|
|
167
|
+
|
|
168
|
+
### Before Starting
|
|
169
|
+
|
|
170
|
+
- [ ] Read Summary (i18n-summary.md)
|
|
171
|
+
- [ ] Read Quick Start Guide (i18n-quick-start-guide.md)
|
|
172
|
+
- [ ] Print Cheat Sheet (i18n-cheat-sheet.md)
|
|
173
|
+
- [ ] Review Architecture (i18n-architecture-diagram.md)
|
|
174
|
+
|
|
175
|
+
### Phase 1: Backend
|
|
176
|
+
|
|
177
|
+
- [ ] Update ValidationIssue dataclass
|
|
178
|
+
- [ ] Update add_error/add_warning/add_info methods
|
|
179
|
+
- [ ] Update CMJ validator (16 methods)
|
|
180
|
+
- [ ] Update Drop Jump validator (6 methods)
|
|
181
|
+
- [ ] Update serialization (to_dict)
|
|
182
|
+
- [ ] Add backend tests
|
|
183
|
+
- [ ] Run full test suite
|
|
184
|
+
- [ ] Verify backward compatibility
|
|
185
|
+
|
|
186
|
+
### Phase 2: Frontend
|
|
187
|
+
|
|
188
|
+
- [ ] Create translation files (5 languages)
|
|
189
|
+
- [ ] Install i18next + react-i18next
|
|
190
|
+
- [ ] Setup i18next configuration
|
|
191
|
+
- [ ] Update ValidationIssue component
|
|
192
|
+
- [ ] Add language selector (optional)
|
|
193
|
+
- [ ] Add frontend tests
|
|
194
|
+
- [ ] Run linting and type checks
|
|
195
|
+
|
|
196
|
+
### Phase 3: Integration
|
|
197
|
+
|
|
198
|
+
- [ ] Run E2E tests
|
|
199
|
+
- [ ] Test all languages
|
|
200
|
+
- [ ] Verify number formatting
|
|
201
|
+
- [ ] Test language switching
|
|
202
|
+
- [ ] Test URL parameters
|
|
203
|
+
- [ ] Test localStorage persistence
|
|
204
|
+
- [ ] Verify message key completeness
|
|
205
|
+
|
|
206
|
+
### Pre-Release
|
|
207
|
+
|
|
208
|
+
- [ ] All tests passing (620+ backend, frontend tests)
|
|
209
|
+
- [ ] No type errors (pyright strict)
|
|
210
|
+
- [ ] No linting errors (ruff)
|
|
211
|
+
- [ ] Code review complete
|
|
212
|
+
- [ ] Documentation updated
|
|
213
|
+
- [ ] CHANGELOG updated
|
|
214
|
+
|
|
215
|
+
______________________________________________________________________
|
|
216
|
+
|
|
217
|
+
## FAQ
|
|
218
|
+
|
|
219
|
+
**Q: Why Option B (Structured Data) instead of Option A (Backend Translation)?**
|
|
220
|
+
A: See Summary section "Why This Approach?" - better separation of concerns, scalability, maintainability.
|
|
221
|
+
|
|
222
|
+
**Q: Is this a breaking change?**
|
|
223
|
+
A: No. The `message` field continues to work. This is backward compatible.
|
|
224
|
+
|
|
225
|
+
**Q: How long does implementation take?**
|
|
226
|
+
A: 14-20 hours total (backend 4-6h, frontend 6-8h, testing 4-6h).
|
|
227
|
+
|
|
228
|
+
**Q: What if I only want to support 2 languages?**
|
|
229
|
+
A: Just create 2 translation files. The system is flexible.
|
|
230
|
+
|
|
231
|
+
**Q: Do I need to update every validator method?**
|
|
232
|
+
A: Yes. All 22 validation methods should be updated for consistency.
|
|
233
|
+
|
|
234
|
+
**Q: Can I implement this incrementally?**
|
|
235
|
+
A: Yes. Phase 1 (backend) can be deployed as v0.60.0 with both message and message_key fields. Phase 2 (frontend) can be deployed separately.
|
|
236
|
+
|
|
237
|
+
**Q: What happens to old clients?**
|
|
238
|
+
A: They continue using the `message` field, which is still populated. No issues.
|
|
239
|
+
|
|
240
|
+
**Q: How do I test this locally?**
|
|
241
|
+
A: See Quick Start Guide section on testing.
|
|
242
|
+
|
|
243
|
+
**Q: When should I do this?**
|
|
244
|
+
A: Recommended for v0.60.0 release (after MVP validation).
|
|
245
|
+
|
|
246
|
+
______________________________________________________________________
|
|
247
|
+
|
|
248
|
+
## Document Sizes
|
|
249
|
+
|
|
250
|
+
| Document | Pages | Read Time |
|
|
251
|
+
| ---------------------------- | ------ | --------------- |
|
|
252
|
+
| i18n-summary.md | 10 | 10 min |
|
|
253
|
+
| i18n-specification.md | 20 | 30-45 min |
|
|
254
|
+
| i18n-quick-start-guide.md | 15 | 20-30 min |
|
|
255
|
+
| i18n-architecture-diagram.md | 12 | 15-20 min |
|
|
256
|
+
| i18n-cheat-sheet.md | 8 | 5-10 min |
|
|
257
|
+
| **Total** | **65** | **1.5-2 hours** |
|
|
258
|
+
|
|
259
|
+
______________________________________________________________________
|
|
260
|
+
|
|
261
|
+
## Implementation Timeline
|
|
262
|
+
|
|
263
|
+
```
|
|
264
|
+
Week 1 (Backend Implementation)
|
|
265
|
+
├─ Day 1: Update core validation.py
|
|
266
|
+
├─ Day 2: Update CMJ validator
|
|
267
|
+
├─ Day 3: Update Drop Jump validator
|
|
268
|
+
├─ Day 4: Serialization + testing
|
|
269
|
+
└─ Day 5: Code review + fixes
|
|
270
|
+
|
|
271
|
+
Week 2 (Frontend Implementation)
|
|
272
|
+
├─ Day 1: Create translation files
|
|
273
|
+
├─ Day 2: Setup i18next
|
|
274
|
+
├─ Day 3: Update components
|
|
275
|
+
├─ Day 4: Testing + fixes
|
|
276
|
+
└─ Day 5: Integration testing
|
|
277
|
+
|
|
278
|
+
Week 3 (QA & Release)
|
|
279
|
+
├─ Day 1-2: Full testing cycle
|
|
280
|
+
├─ Day 3: Documentation
|
|
281
|
+
├─ Day 4: Code review
|
|
282
|
+
└─ Day 5: Release (v0.60.0)
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
______________________________________________________________________
|
|
286
|
+
|
|
287
|
+
## Key Contacts
|
|
288
|
+
|
|
289
|
+
- **Architecture Questions**: See i18n-architecture-diagram.md
|
|
290
|
+
- **Implementation Help**: See i18n-quick-start-guide.md
|
|
291
|
+
- **Detailed Specs**: See i18n-validation-messages-specification.md
|
|
292
|
+
- **Quick Reference**: See i18n-cheat-sheet.md
|
|
293
|
+
|
|
294
|
+
______________________________________________________________________
|
|
295
|
+
|
|
296
|
+
## Version History
|
|
297
|
+
|
|
298
|
+
| Version | Date | Changes |
|
|
299
|
+
| ------- | ---------- | --------------------- |
|
|
300
|
+
| 1.0 | 2024-12-14 | Initial specification |
|
|
301
|
+
|
|
302
|
+
______________________________________________________________________
|
|
303
|
+
|
|
304
|
+
## Related Documentation
|
|
305
|
+
|
|
306
|
+
- **Project Roadmap**: `docs/strategy/MVP_VALIDATION_CHECKPOINTS.md`
|
|
307
|
+
- **Testing Guide**: `docs/development/testing.md`
|
|
308
|
+
- **Type Hints Guide**: `docs/development/type-hints.md`
|
|
309
|
+
- **Agents Guide**: `docs/development/agents-guide.md`
|
|
310
|
+
|
|
311
|
+
______________________________________________________________________
|
|
312
|
+
|
|
313
|
+
## Next Steps
|
|
314
|
+
|
|
315
|
+
1. **Read Summary** (10 minutes)
|
|
316
|
+
1. **Share with team** for feedback
|
|
317
|
+
1. **Create feature branch**: `feat/i18n-validation-messages`
|
|
318
|
+
1. **Follow Quick Start Guide** for implementation
|
|
319
|
+
1. **Track progress** using implementation checklist above
|
|
320
|
+
1. **Request code review** following specification
|
|
321
|
+
1. **Deploy to production** as v0.60.0
|
|
322
|
+
|
|
323
|
+
______________________________________________________________________
|
|
324
|
+
|
|
325
|
+
**Status**: ✅ Complete
|
|
326
|
+
**Last Updated**: 2024-12-14
|
|
327
|
+
**Maintained By**: Kinemotion Development Team
|