# Archipelago 3-Year Project Plan **Version**: 1.0 **Period**: March 2026 -- March 2029 **Goal**: Production-ready Bitcoin Node OS with zero issues for end users **Visual constraint**: NEVER change animations, user experience, or visuals -- only neater layouts where highlighted ## Current Status: Year 1, Q1, Sprint 1 (Starting) --- ## Year 1: Foundation & Core Functionality (March 2026 -- February 2027) ### Q1 2026 (March -- May): Fix Broken UI, Testing Infrastructure, Networking #### Sprint 1: Test Infrastructure (Week 1-2) - [ ] Install Vitest and configure frontend test runner - [ ] Create first frontend unit tests: RPC client (8+ test cases) - [ ] Create frontend unit tests: app store (6+ test cases) - [ ] Create frontend unit tests: container store (5+ test cases) - [ ] Create frontend unit tests: router guards (6+ test cases) - [ ] Create backend integration test scaffolding - [ ] Create backend unit tests: auth module (6+ test cases) - [ ] Create backend unit tests: identity module (5+ test cases) - [ ] Add CI-compatible test runner script (scripts/run-tests.sh) #### Sprint 2: Fix Broken UI (Week 3-4) - [ ] Fix Settings.vue: replace .path-option-card with .glass-card - [ ] Fix Web5.vue top bar: verify glass sub-card consistency with Server.vue - [ ] Remove duplicate network diagnostics from Settings.vue - [ ] Server.vue: wire real RPC data to Local Network card - [ ] Server.vue: wire real RPC data to Web3 card (show "Coming Soon") #### Sprint 3: Backend Robustness (Week 5-6) - [ ] Add system monitoring RPC endpoints (system.stats, system.processes, system.temperature) - [ ] Add system monitoring to frontend Dashboard (CPU/RAM/Disk gauges) - [ ] Add WiFi/Ethernet configuration RPC endpoints - [ ] Add WiFi/Ethernet UI to Server.vue - [ ] Implement CSRF protection on RPC layer - [ ] Fix CORS policy: restrict to same-origin - [ ] Add Nginx security headers #### Sprint 4: Quality Baseline (Week 7-8) - [ ] Run full sweep and record baseline in docs/quality-baseline.md - [ ] Fix all silent catch blocks - [ ] Remove all console.log in production paths - [ ] Eliminate any-type usage in frontend - [ ] Health-gated deploy: add pre-deploy health check - [ ] Run canary deploy to secondary server ### Q2 2026 (June -- August): DWN, Backup/Restore, Kiosk Mode, StartOS Independence #### Sprint 5: DWN Protocol Implementation (Week 1-3) - [ ] Implement DWN message store (dwn_store.rs) - [ ] Implement DWN HTTP API (POST /dwn) - [ ] Implement DWN peer sync protocol - [ ] Add DWN management UI (DwnManager.vue) - [ ] Add DWN RPC endpoints for protocol management #### Sprint 6: Full Backup/Restore System (Week 4-5) - [ ] Extend backup module for full system backup - [ ] Add backup/restore RPC endpoints - [ ] Add backup/restore UI to Settings - [ ] Add backup to USB drive support #### Sprint 7: Kiosk Mode Hardening (Week 6-7) - [ ] Add kiosk mode crash recovery - [ ] Add kiosk failsafe route (/recovery) - [ ] Add kiosk-specific keyboard shortcuts - [ ] Create kiosk systemd service #### Sprint 8: StartOS Independence (Week 8-10) - [ ] Audit StartOS code usage → docs/startos-dependency-audit.md - [ ] Migrate essential StartOS utilities to archipelago - [ ] Remove core/startos from workspace - [ ] Run full regression test after removal ### Q3 2026 (September -- November): App Integration, Auto-Updates, ARM64 #### Sprint 9: App Integration Testing (Week 1-3) - [ ] Create app integration test suite (scripts/test-all-apps.sh) - [ ] Fix all app integration failures - [ ] Test dependency chains - [ ] Test fresh install end-to-end #### Sprint 10: Auto-Update System (Week 4-6) - [ ] Implement update download and apply - [ ] Add update notification to frontend - [ ] Implement automatic update scheduling - [ ] Create release manifest infrastructure #### Sprint 11: ARM64 Support (Week 7-9) - [ ] Set up ARM64 cross-compilation - [ ] Test ARM64 container images - [ ] Build ARM64 ISO - [ ] Test ARM64 on Raspberry Pi 5 #### Sprint 12: Quality Hardening (Week 10-12) - [ ] Achieve 50% frontend test coverage - [ ] Achieve 50% backend test coverage - [ ] Run overnight chaos test - [ ] Run full quality sweep vs baseline ### Q4 2026 (December -- February 2027): Security, Performance, Beta #### Sprint 13: Security Hardening (Week 1-3) - [ ] Implement session expiry and rotation - [ ] Harden container security profiles - [ ] Add secrets rotation mechanism - [ ] Sanitize FileBrowser path traversal - [ ] Remove FileBrowser token from URLs - [ ] Run automated security scan #### Sprint 14: Performance Optimization (Week 4-6) - [ ] Profile and optimize backend startup (<3s) - [ ] Optimize frontend bundle size (<500KB gzipped) - [ ] Add WebSocket connection pooling and heartbeat - [ ] Optimize container image pull performance #### Sprint 15: Beta Release Prep (Week 7-10) - [ ] Create comprehensive user documentation - [ ] Create beta testing checklist - [ ] Build and test beta ISO - [ ] Publish v0.5.0-beta release - [ ] Run 72-hour stability test --- ## Year 2: Feature Completeness & Reliability (March 2027 -- February 2028) ### Q1 2027 (March -- May): W3C DIDs, JSON-LD VCs, Hardware Wallet #### Sprint 16: W3C-Compliant DIDs (Week 1-3) - [ ] Implement W3C DID Document format - [ ] Implement DID Document verification - [ ] Update DID display in Web5.vue - [ ] Add DID resolution across peers #### Sprint 17: JSON-LD Verifiable Credentials (Week 4-6) - [ ] Implement JSON-LD credential format - [ ] Add credential presentation protocol - [ ] Add credential management UI #### Sprint 18: Hardware Wallet Integration (Week 7-10) - [ ] Research and document hardware wallet integration - [ ] Implement PSBT signing flow in LND RPC - [ ] Add hardware wallet UI flow - [ ] Add USB hardware wallet detection ### Q2 2027 (June -- August): Multi-Node, VPN, Community Marketplace #### Sprint 19: Multi-Node Orchestration (Week 1-4) - [ ] Design multi-node architecture - [ ] Implement node federation protocol - [ ] Add multi-node dashboard - [ ] Implement federated app deployment #### Sprint 20: VPN and Mesh Networking (Week 5-8) - [ ] Add Tailscale/WireGuard VPN integration - [ ] Add VPN status to Server.vue - [ ] Implement mesh networking discovery - [ ] Add DNS-over-HTTPS configuration #### Sprint 21: Community App Marketplace (Week 9-12) - [ ] Design decentralized marketplace protocol - [ ] Implement marketplace manifest discovery - [ ] Implement app manifest publishing - [ ] Add community marketplace tab to frontend ### Q3 2027 (September -- November): Documentation, Reliability, Pre-Release #### Sprint 22: Comprehensive Documentation (Week 1-3) - [ ] Write developer documentation - [ ] Write API documentation - [ ] Write app developer SDK documentation - [ ] Create Architecture Decision Records #### Sprint 23: Reliability Engineering (Week 4-8) - [ ] Implement graceful shutdown - [ ] Add crash recovery - [ ] Implement disk space management - [ ] Add container health monitoring and auto-recovery - [ ] Run 1-week continuous uptime test #### Sprint 24: Pre-Release Quality (Week 9-12) - [ ] Achieve 70% frontend test coverage - [ ] Achieve 70% backend test coverage - [ ] Run full regression screenshot comparison - [ ] Publish v0.8.0-rc1 release candidate ### Q4 2027 (December -- February 2028): Polish, Community, v0.9.0 #### Sprint 25: User Experience Polish (Week 1-4) - [ ] Run complete UX audit - [ ] Fix all UX audit findings - [ ] Polish error handling across entire frontend - [ ] Polish all forms #### Sprint 26: Community Infrastructure (Week 5-8) - [ ] Set up update server infrastructure - [ ] Create community contribution guidelines - [ ] Set up issue tracker and roadmap - [ ] Publish v0.9.0 release --- ## Year 3: Production Polish & Scale (March 2028 -- March 2029) ### Q1 2028 (March -- May): Monitoring, Remote Management, Accessibility #### Sprint 27: Advanced Monitoring (Week 1-4) - [ ] Implement real-time metrics collection - [ ] Add monitoring dashboard page - [ ] Implement alerting system - [ ] Add historical data export #### Sprint 28: Remote Management (Week 5-8) - [ ] Implement Tailscale-based remote access - [ ] Add mobile-optimized remote management - [ ] Implement remote notification system #### Sprint 29: Accessibility and i18n (Week 9-12) - [ ] Add ARIA labels and roles - [ ] Add keyboard navigation testing - [ ] Set up i18n infrastructure ### Q2 2028 (June -- August): Pen Testing, Final QA #### Sprint 30: Security Penetration Testing (Week 1-4) - [ ] Run automated penetration test suite - [ ] Manual security review of all RPC endpoints - [ ] Harden Podman container isolation - [ ] Add rate limiting to all sensitive endpoints #### Sprint 31: End-to-End QA (Week 5-8) - [ ] Create golden path test suite - [ ] Run regression test across all hardware - [ ] Achieve 80% test coverage - [ ] Run 30-day soak test #### Sprint 32: Documentation and Community (Week 9-12) - [ ] Write troubleshooting guide - [ ] Create walkthrough documentation - [ ] Finalize all ADRs - [ ] Publish v0.95.0-rc2 ### Q3 2028 (September -- November): v1.0 Release #### Sprint 33: Final Polish (Week 1-4) - [ ] Final UX audit - [ ] Final security audit - [ ] Final sweep - [ ] Performance benchmark and optimize #### Sprint 34: Release Engineering (Week 5-8) - [ ] Create release automation - [ ] Set up download/update infrastructure - [ ] Write v1.0 release notes - [ ] Build v1.0.0 release ISOs #### Sprint 35: Launch (Week 9-12) - [ ] Tag and publish v1.0.0 - [ ] Run 7-day post-release monitoring - [ ] Create v1.1 roadmap ### Q4 2028 (December -- February 2029): Maintenance #### Sprint 36-39: Ongoing - [ ] Monthly dependency update cycle - [ ] Monthly security scan - [ ] Quarterly quality sweep - [ ] Community app reviews - [ ] Plan v2.0 features --- ## Milestone Summary | Date | Milestone | Key Deliverables | |------|-----------|-----------------| | May 2026 | Q1 Complete | Tests, UI fixes, security, quality baseline | | Aug 2026 | Q2 Complete | DWN, backup/restore, kiosk, StartOS independence | | Nov 2026 | Q3 Complete | App testing, auto-updates, ARM64 | | Feb 2027 | **v0.5.0-beta** | First public beta | | Nov 2027 | **v0.8.0-rc1** | Release candidate | | Feb 2028 | **v0.9.0** | Pre-release | | Nov 2028 | **v1.0.0** | Production release | ## Execution Method - Execute via `/overnight` skill — each session picks up next uncompleted tasks - Full detailed acceptance criteria in the original plan conversation - Track progress by checking off items in this file as [x]