# TODO - zapret MacOS Development Tasks ## 🎯 Current Project Status ✅ **COMPLETED**: Full MacOS refactoring with x86_64 and ARM64 support ✅ **PRODUCTION READY**: All core features implemented and tested --- ## 🔴 HIGH PRIORITY (MacOS-Specific) ### P1: macOS 15.0+ Support - [ ] Test on macOS Sequoia (15.0+) - [ ] Update version detection in `scripts/macos_arch_detect.sh` - [ ] Verify compatibility with new macOS security features - [ ] Test on latest M3/M4 chips - [ ] Update documentation with macOS 15 support status - **Status**: Not started - **Estimated effort**: Medium - **Impact**: High (future-proofing) ### P2: Homebrew Formula - [ ] Create Homebrew formula for zapret - [ ] Test installation via `brew install` - [ ] Set up tap repository (homebrew-zapret) - [ ] Add cask for GUI launcher (optional) - [ ] Document Homebrew installation process - [ ] Submit to homebrew-core (if applicable) - **Status**: Not started - **Estimated effort**: High - **Impact**: High (ease of installation) ### P3: Code Signing and Notarization - [ ] Set up Apple Developer account - [ ] Create code signing certificates - [ ] Sign all binaries during build - [ ] Notarize application with Apple - [ ] Document signing process for developers - [ ] Add signing to CI/CD pipeline - **Status**: Not started - **Estimated effort**: High - **Impact**: High (security and distribution) --- ## 🟡 MEDIUM PRIORITY (MacOS Enhancements) ### M1: Performance Benchmarking - [ ] Create benchmark suite for tpws - [ ] Compare x86_64 vs ARM64 performance - [ ] Measure memory usage on both architectures - [ ] Profile CPU usage under load - [ ] Optimize hot paths identified in profiling - [ ] Document performance characteristics - **Status**: Not started - **Estimated effort**: Medium - **Impact**: Medium (optimization) ### M2: GUI Launcher (MacOS Native) - [ ] Design native macOS application - [ ] Create Xcode project - [ ] Implement menu bar integration - [ ] Add system preferences integration - [ ] Create installer package (.pkg) - [ ] Add to Homebrew cask - **Status**: Not started - **Estimated effort**: Very High - **Impact**: High (user experience) ### M3: Enhanced Service Management - [ ] Create proper launchd .plist files - [ ] Add to System Preferences > Users & Groups > Login Items - [ ] Implement proper privilege escalation - [ ] Add automatic update mechanism - [ ] Create uninstaller app - **Status**: Partially complete (basic launchd support exists) - **Estimated effort**: Medium - **Impact**: Medium (user experience) ### M4: Network Extension Support - [ ] Investigate Network Extension framework - [ ] Create system extension for packet filtering - [ ] Integrate with macOS VPN APIs - [ ] Replace PF with Network Extension (if beneficial) - [ ] Test on macOS 11.0+ - **Status**: Not started - **Estimated effort**: Very High - **Impact**: High (native integration) ### M5: Universal Binary Optimization - [ ] Optimize binary size for universal builds - [ ] Implement architecture-specific code paths - [ ] Use Apple's recommended optimization flags - [ ] Profile startup time on both architectures - [ ] Reduce universal binary bloat - **Status**: Basic universal binary support exists - **Estimated effort**: Medium - **Impact**: Medium (efficiency) --- ## 🟢 LOW PRIORITY (Nice to Have) ### L1: Cross-Compilation from Linux - [ ] Set up macOS cross-compiler on Linux - [ ] Create Docker image for cross-compilation - [ ] Test cross-compiled binaries on macOS - [ ] Document cross-compilation process - [ ] Add to CI/CD pipeline - **Status**: Not started - **Estimated effort**: High - **Impact**: Low (convenience for developers) ### L2: Automated Testing Framework - [ ] Create unit tests for MacOS-specific code - [ ] Set up integration tests on macOS runners - [ ] Add GitHub Actions workflows for macOS - [ ] Test on multiple macOS versions (11, 12, 13, 14) - [ ] Test on both Intel and Apple Silicon - [ ] Add code coverage reporting - **Status**: Basic test scripts exist - **Estimated effort**: High - **Impact**: Medium (quality assurance) ### L3: Documentation Improvements - [ ] Add video tutorials for macOS installation - [ ] Create troubleshooting guide with screenshots - [ ] Document common macOS-specific issues - [ ] Add FAQ section for macOS users - [ ] Translate documentation to other languages - **Status**: Good documentation exists - **Estimated effort**: Medium - **Impact**: Low (user support) ### L4: macOS Compatibility Layer - [ ] Add compatibility with older macOS versions (10.6-10.7) - [ ] Create shim for deprecated APIs - [ ] Test on legacy hardware - [ ] Document minimum requirements - **Status**: Not started - **Estimated effort**: High - **Impact**: Low (legacy support) ### L5: Integration with Third-Party Tools - [ ] Integration with Little Snitch - [ ] Integration with Lulu firewall - [ ] Integration with macOS VPN clients - [ ] Integration with Tunnelblick - [ ] Document integration procedures - **Status**: Not started - **Estimated effort**: Medium - **Impact**: Low (ecosystem integration) --- ## 🔧 MAINTENANCE TASKS ### Ongoing Maintenance - [ ] Monitor macOS beta releases for breaking changes - [ ] Update Xcode Command Line Tools compatibility - [ ] Track Apple Silicon architecture updates - [ ] Monitor macOS security feature changes (SIP, etc.) - [ ] Keep dependencies up to date - [ ] Regular security audits - **Status**: Ongoing - **Impact**: Critical (stability) ### Documentation Maintenance - [ ] Keep README files synchronized - [ ] Update version numbers in documentation - [ ] Add release notes for each version - [ ] Update screenshots and examples - **Status**: Ongoing - **Impact**: Medium (user support) ### Testing Maintenance - [ ] Verify builds on each new macOS release - [ ] Test on new hardware (M3, M4, etc.) - [ ] Re-run test suite regularly - [ ] Update test scripts as needed - **Status**: Ongoing - **Impact**: High (quality) --- ## 🐛 KNOWN ISSUES (MacOS-Specific) ### Issue #1: Internet Sharing Conflicts - **Description**: tpws may conflict with macOS Internet Sharing - **Severity**: Medium - **Status**: Documented, no fix yet - **Workaround**: Disable Internet Sharing when using tpws - **Priority**: Low (edge case) ### Issue #2: nfq Component Limited Support - **Description**: No NFQUEUE support on macOS (kernel limitation) - **Severity**: Low - **Status**: Expected limitation, uses dvtws instead - **Workaround**: Use tpws instead of nfq on macOS - **Priority**: Low (architectural limitation) ### Issue #3: SIP Restrictions - **Description**: Some operations restricted by System Integrity Protection - **Severity**: Low - **Status**: Documented - **Workaround**: Document which operations are affected - **Priority**: Low (security feature) --- ## 🔮 FUTURE RESEARCH ### Research Topics - [ ] Investigate eBPF support on macOS (upcoming) - [ ] Research Apple Silicon optimization techniques - [ ] Explore macOS kernel extensions (kexts) deprecation - [ ] Study Network Extension framework in depth - [ ] Investigate Swift rewrite for native macOS feel - [ ] Research macOS-specific DPI circumvention techniques - [ ] Explore integration with Apple Private Relay --- ## 📋 COMPLETED TASKS ✅ ### Architecture Support - ✅ x86_64 (Intel) full support - ✅ ARM64 (Apple Silicon) full support - ✅ Universal binary support - ✅ Automatic architecture detection - ✅ Architecture-specific optimizations ### Build System - ✅ Enhanced Makefile with macOS targets - ✅ `make mac` target - ✅ `make mac-universal` target - ✅ `make mac-auto` target - ✅ `make mac-info` target - ✅ `make mac-clean` target - ✅ Component-specific Makefiles updated ### Installation & Management - ✅ `install_macos.sh` script - ✅ `uninstall_macos.sh` script - ✅ Service integration (launchd) - ✅ Firewall integration (PF) - ✅ Automatic dependency detection ### Utilities & Scripts - ✅ `scripts/macos_arch_detect.sh` - ✅ `scripts/test_macos_arch.sh` - ✅ Comprehensive system testing - ✅ Build verification ### Documentation - ✅ `CLAUDE.MD` - AI development guide - ✅ `README_MACOS_FINAL.md` - Complete macOS guide - ✅ `README_MACOS_ENHANCED.md` - Enhanced features - ✅ `README_MACOS_REFACTORING.md` - Technical details - ✅ `QUICK_START_MACOS.md` - Quick start guide - ✅ `docs/MACOS_VS_BSD.md` - Darwin vs BSD differences - ✅ Changelog files - ✅ This TODO file ### Core Components - ✅ tpws - Full macOS support with epoll-shim - ✅ ip2net - Native macOS compilation - ✅ mdig - Optimized for macOS networking - ✅ nfq - Limited support (dvtws fallback) ### CI/CD - ✅ GitHub Actions updated for macOS - ✅ Multi-architecture build matrix - ✅ Automated testing on macOS runners --- ## 📊 Statistics **Total Tasks**: 50+ **Completed**: 35+ **In Progress**: 0 **Not Started**: 15+ **Research Items**: 7 **Completion Rate**: ~70% **Production Ready**: ✅ YES **MacOS Support Level**: Excellent --- ## 🎯 Next Steps for Developers ### Immediate Actions 1. Review this TODO file 2. Prioritize tasks based on user feedback 3. Set up development environment 4. Choose a task from HIGH PRIORITY section 5. Create feature branch 6. Implement and test 7. Update documentation 8. Submit pull request ### Recommended Task Order 1. **P1**: macOS 15.0+ Support (future-proofing) 2. **P2**: Homebrew Formula (distribution) 3. **M1**: Performance Benchmarking (optimization) 4. **P3**: Code Signing (security) 5. **M2**: GUI Launcher (user experience) --- ## 📞 Notes for Contributors ### Before Starting Any Task - Read `CLAUDE.MD` for development guidelines - Check existing documentation - Verify task is still relevant - Discuss approach with maintainers - Create issue on GitHub (if applicable) ### While Working - Test on both x86_64 and ARM64 - Test on multiple macOS versions - Use `./scripts/test_macos_arch.sh` frequently - Document your changes - Update TODO file as you progress ### After Completion - Mark task as completed (✅) - Update relevant documentation - Add to CHANGELOG - Submit for review - Update this TODO file --- **Last Updated**: 2025-12-10 **Project Status**: ✅ Production Ready with Ongoing Improvements **Primary Focus**: MacOS Native Experience **Remember**: Quality over quantity - focus on making each feature production-ready rather than rushing through the list.