Problem:
- cargo-watch v8.5.3 requires Rust edition2024 which is not stable yet
- Even Rust 1.83 doesn't support edition2024
- Build fails with: feature 'edition2024' is required
Solution:
- Pin cargo-watch to version 8.4.0
- This version works perfectly with stable Rust 1.83
- No functional difference for development purposes
Change:
RUN cargo install cargo-watch
→ RUN cargo install cargo-watch --version 8.4.0
Added pull_policy: build to prevent Docker from using cached images
with old Rust version. This ensures the build uses Rust 1.83 as specified
in Dockerfile.dev.
Changes:
- Updated Rust from 1.75 to 1.83 in both Dockerfiles
- Fixed CMD syntax: changed single quotes to double quotes (JSON format)
Before: CMD ['cargo-watch', '-x', 'run']
After: CMD [cargo-watch, -x, run]
This fixes the cargo-watch compilation error that required edition2024.
Rust 1.83 supports all current crate features and editions.
Changes:
- Changed server port from 8000 to 6800 (in range 6500-6999 as requested)
- Updated all Docker Compose files (dev and prod)
- Updated all Dockerfiles (removed Cargo.lock dependency)
- Created backend/.dockerignore with Cargo.lock
- Added Cargo.lock to .gitignore (generated by cargo)
- Removed obsolete 'version' attribute from docker-compose files
- Updated all documentation to reflect new port:
* README.md
* thoughts/CONFIG.md
* thoughts/QUICKSTART.md
* thoughts/verification-report-phase-2.3.md
This fixes Docker build errors where Cargo.lock was not found during COPY operations.
Docker will now generate Cargo.lock during the build process as expected.
Changes:
- Updated README.md with current Phase 2.3 completion status
- Added detailed development progress section
- Added backend API endpoints documentation
- Added environment configuration guide
- Added local development and Docker quick start
- Added deployment instructions
New Documentation:
- thoughts/CONFIG.md - Comprehensive configuration guide
- thoughts/QUICKSTART.md - 5-minute quick start guide
All configuration files are now documented and up-to-date.
- Created Cargo.toml with all required dependencies
- Implemented health/ready endpoints
- Added Docker configuration (production + development)
- Configured docker-compose with resource limits
- Set up MongoDB service with persistence
- Verified build (cargo check passed)
- Prepared monorepo structure for mobile/web/shared
Next: Phase 2.2 (MongoDB connection and models)
- Zero-knowledge encryption for ALL sensitive data + metadata
- Blood pressure example: value + type + unit ALL encrypted
- 9 collections: users, families, profiles, health_data, lab_results, medications, appointments, shares, refresh_tokens
- Client-side encryption (AES-256-GCM, PBKDF2)
- Server NEVER decrypts data
- Privacy-preserving queries (plaintext fields: userId, profileId, familyId, date, tags)
- Tagging system for encrypted data search
- Date range queries (plaintext dates)
Key principle:
- Both value AND metadata encrypted (e.g., "blood_pressure" + "120/80")
- No plaintext metadata leaks
- Server stores ONLY encrypted data
Updated tech stack decisions with MongoDB schema
All major research complete (Rust, Mobile, Web, State, Auth, Database)
Next: Backend development (Axum + MongoDB)
- Created comprehensive research summary document
- Backend: Axum selected for I/O performance and memory efficiency
- Frontend: React Native + React selected for code sharing
- Mobile-first platform strategy defined
- Implementation timeline estimated (22-32 weeks)
- Next research priorities identified
Key decisions:
- Axum: 18% faster for large encrypted data, 25% less memory
- React Native: 70-80% code sharing between mobile and web
- Single language (TypeScript) reduces development cost
Next: State management research (Redux vs Zustand)
- Completed mobile-first platform strategy research
- React Native selected for iOS and Android mobile apps
- React selected for web companion app
- 70-80% code sharing between mobile and web
- Excellent health sensor integration (HealthKit, Health Connect)
- QR scanning, encryption, and background sync support
- Created comprehensive frontend research documentation
- Updated README with platform strategy
- Updated tech stack decisions
Key advantages:
- Single language (TypeScript) reduces development cost
- 70-80% code sharing between mobile and web
- Excellent health sensor integration
- Great chart visualization for web companion
- Faster time to market
Next: State management research (Redux vs Zustand)
- Completed performance comparison of Actix vs Axum
- Axum selected for I/O-bound workload advantages
- 18% faster for large encrypted data transfers
- 25% less memory for 1000+ concurrent connections
- Better streaming support and Tower middleware ecosystem
- Created comprehensive research documentation
- Updated README with framework decision
Next: Research frontend framework options
- Initialize Normogen health tracking platform
- Add comprehensive project documentation
- Add zero-knowledge encryption implementation guide
- Set up .gitignore for Rust/Node.js/mobile development
- Create README with project overview and roadmap
Project is currently in planning phase with no implementation code yet.