Skip to content

Roadmap

coaxk edited this page Mar 12, 2026 · 2 revisions

Roadmap

Live tracker: GitHub Project Board This page explains the strategy behind each stage. The board tracks individual tasks.


Stage 1 — Before Private Beta

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.

Security Hardening (ALL DONE)

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

Code Fixes (ALL DONE)

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

Code Hygiene (ALL DONE)

ID Task Commit
H1 Unused imports cleanup c8fcc54
H2 Dead/duplicated code — COMPOSE_FILENAMES consolidated 5→1 c8fcc54

UX Features (ALL DONE)

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 Fixes from Manual Testing (ALL DONE)

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

Testing

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

GitHub Infrastructure (ALL DONE)

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

GitHub Infrastructure (TODO)

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

Documentation & Release Prep

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

Stage 2 — v1.5.2 First Patch

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

Stage 3 — v1.6 Code Health + UX

"Pay down tech debt + add the features the Elders asked for."

Backend Restructuring

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

Frontend Restructuring

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

UX Features

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

Visualization

ID Task Effort
V1 Pipeline visualization — interactive graph (D3/dagre/SVG) High
V2 Filesystem topology visualizer — mount table + hardlink boundaries Medium

Platform

ID Task Effort
PL1 Unraid-native scan — /mnt/user vs /mnt/cache detection Medium

Stage 4 — v2.0 Strategic

"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

Stage 5 — v3.0+ Ecosystem Vision

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