Repository navigation
Roadmap
coaxk edited this page Mar 12, 2026
·
2 revisions
Live tracker: GitHub Project Board This page explains the strategy behind each stage. The board tracks individual tasks.
Everything here must be done before inviting beta testers.
Status: 26/31 DONE — GitHub infra complete. Docker deployment test + docs/release prep + GH milestones/releases remain.
| ID | Task | Commit |
|---|---|---|
| S1 | SSE connection limit — per-IP cap (~5) on /api/logs/stream
|
815a6d2 |
| S2 | Document /home blocklist — QUICK_START + TROUBLESHOOTING |
815a6d2 |
| S3 | DOCKER_HOST allowlist — SSRF prevention via regex allowlist | e91f4ed |
| S4 | Trusted proxy IP handling — X-Forwarded-For with configurable trust list | b24dc00 |
| S5 | Write boundary without MAPARR_STACKS_PATH — 403 on bare-metal dev runs | 19838e5 |
| ID | Task | Commit |
|---|---|---|
| C1 | Undo/Revert button — .bak restoration in Apply Fix UI |
7cf8856 + e7e9dd4
|
| C2 | Structured error messages — type-specific diagnostics |
f31a756 + 7957428
|
| C3 | Warning dismiss for Cat B low/medium warnings | e38ccfc |
| C4 | SSE generator hard timeout — 5-minute max connection | 324ec9d |
| ID | Task | Commit |
|---|---|---|
| H1 | Unused imports cleanup | c8fcc54 |
| H2 | Dead/duplicated code — COMPOSE_FILENAMES consolidated 5→1 | c8fcc54 |
| ID | Task | Commit |
|---|---|---|
| U1 | First-run wizard — 3-step onboarding | 14c18e9 |
| U2 | Collapsible Other Stacks section | 0fad1ea |
| U3 | Docker stack restart button after Apply Fix | 6407fe6 |
| U4 | Export diagnostic zip with secret redaction | c9430e7 |
| U6 | Persistent redeploy banner (not modal) | 0aad850 |
| U7 | Service icon fallback — segment + keyword matching | c3c8289 |
| Bug | Description | Commit |
|---|---|---|
| BUG 3 | Pipeline Apply Fix path boundary errors | f8aaafd |
| BUG 4 | Malformed YAML / empty compose hangs pipeline | 96dae0a |
| BUG 5 | Paste parser can't identify service in EXDEV/RPM/stuck errors | 95cf91a |
| BUG 6 | Paste textarea not cleared after fix/navigation | 00722b7 |
| BUG 7 | Inconsistent Apply Fix flow (diff preview vs confirm dialog) | 00722b7 |
| Rate limiter | Analysis endpoints blocked during large stack scan | 36f2def |
| ID | Task | Status |
|---|---|---|
| T1 | Full UI smoke test — 42 scenarios Round 1, 30 scenarios Round 2 | Round 2 in progress |
| T2 | Docker deployment test — build, PUID/PGID, healthcheck, socket | TODO |
| ID | Task | Status |
|---|---|---|
| GH0a | CI workflow — Python 3.11/3.12/3.13 matrix, Docker host isolation | DONE |
| GH0b | Docker publish workflow — test gate, buildx, multi-arch amd64+arm64 | DONE |
| GH0c | YAML-form issue templates — bug report, feature request, beta test report | DONE |
| GH0d | PR template — summary, changes, test plan checklist | DONE |
| GH0e | Project Board — live task tracker with custom fields | DONE |
| GH0f | Wiki — strategic docs, architecture, design decisions, roadmap | DONE |
| GH0g | Labels — 15 project-specific labels | DONE |
| GH0h | Discussions — structured categories with welcome post | DONE |
| ID | Task | Status |
|---|---|---|
| GH1 | Set up Milestones — v1.5.2-beta, v1.6, v2.0 | TODO |
| GH2 | Create first GitHub Release — v1.5.2-beta.1 tag + notes | TODO |
| GH3 | Enable branch protection on main — require CI pass + review | TODO |
| GH4 | Convert high-priority board items to GitHub Issues | TODO |
| ID | Task | Status |
|---|---|---|
| D1 | Comprehensive docs review — README, QUICK_START, TROUBLESHOOTING, CHANGELOG | TODO |
| D2 | GitHub repo polish — description, topics, social preview, templates | TODO |
| D3 | GIF demo for README — 10-second animated walkthrough | TODO |
| D4 | Private beta release plan — tagging, Docker image, tester selection, feedback | TODO |
Within 1 week of private beta launch.
| ID | Task |
|---|---|
| P1 | Bug fixes from beta testing (shaped by tester JSON exports) |
| P2 | Anything deferred from Stage 1 that didn't block launch |
"Pay down tech debt + add the features the Elders asked for."
| ID | Task | Effort |
|---|---|---|
| B1 | Split analyzer.py (3,942 LOC) → conflicts.py, permissions.py, solutions.py
|
High |
| B2 | Split main.py (1,277 LOC) → routes/, security.py, session.py
|
High |
| B3 | Session state extraction with locking | Medium |
| B4 | Per-compose analysis cache — mtime + content hash | Medium |
| B5 | Role strings → enum | Low |
| B6 | Rate limiter dict size cap — 10,000 IPs | Trivial |
| ID | Task | Effort |
|---|---|---|
| F1 | ES module split for app.js (~8.5K LOC) → 7 modules |
High |
| F2 | Reduce boot icon preloads — lazy-load or limit to detected | Low |
| ID | Task | Effort |
|---|---|---|
| U5 | One-click "apply all safe fixes" — cross-stack batch | Medium |
| U8 | Stack Health Score — numeric 0-100, A-F grades | Medium |
| ID | Task | Effort |
|---|---|---|
| V1 | Pipeline visualization — interactive graph (D3/dagre/SVG) | High |
| V2 | Filesystem topology visualizer — mount table + hardlink boundaries | Medium |
| ID | Task | Effort |
|---|---|---|
| PL1 | Unraid-native scan — /mnt/user vs /mnt/cache detection |
Medium |
"MapArr becomes proactive."
| ID | Task | Effort |
|---|---|---|
| SA1 | Import Failure Autopsy — poll Sonarr/Radarr /api/v3/history
|
High |
| SA2 | Auto-detect stacks via docker ps / docker inspect
|
High |
| SA3 | Webhook integration with arr apps — real-time import events | Medium |
| AD1 | Compose↔Analysis abstraction layer — plugin system foundation | High |
| AD2 | Deduplicate Docker CLI fallback — single source in resolver | Low |
| AD3 | RPM Wizard backend migration — move calc logic to API | Medium |
Long-term ideas. Not planned. Documented for future reference.
| ID | Task |
|---|---|
| EV1 | StackSenseArr — continuous controller, drift detection, auto-healing |
| EV2 | Stack Simulator — pre-deployment prediction |
| EV3 | Failure pattern learning — anonymized diagnostics |
| EV4 |
composearr install media-stack — Helm-style generation |
| EV5 | ArrOps ecosystem branding — unified identity |