# Open tasks — dependency graph

_Last synced: 2026-06-08 (post infra/browser/graphs/RSSH fixes). **DNS 2.x off graph** (postponed)._

**Documentation index:** [README.md](README.md) · **Service map:** [20260608_BE_SERVICES_and_infra.md](20260608_BE_SERVICES_and_infra.md)

---

---

---

---

## Table of contents

<!-- toc -->
- [Removed from graph (done)](#removed-from-graph-done)
- [Postponed / off graph (DNS + mail)](#postponed-off-graph-dns-mail)
- [Priority tiers (open only)](#priority-tiers-open-only)
- [Dependency graph](#dependency-graph)
- [Task index (open)](#task-index-open)
- [Critical path](#critical-path)
<!-- /toc -->

**Documentation index:** [README.md](README.md)

---

## Removed from graph (done)

| ID | Note |
|----|------|
| **0.1** | Stream dump |
| **3.x** | Auth register + verify + TOTP + migration `008` |
| **4.x** | RSSH alpha — BE + Android + JSch |
| **4.wg** | WG lab — BE `wg0`, FE + **router** DNAT persist |
| **RBAC** (core) | Admin panel + lockout clear |
| **Browser** | JS syntax validated; `validate_be_services.sh` |
| **1.1 / 1.2** | Graphs drill-down, columns, full-width (`shell--graphs-full`) |
| **5.3** | RSSH API validate — `test_rssh_api.sh` OK on BE |
| **Infra doc** | `20260608_BE_SERVICES_and_infra.md` + PDF |

---

## Postponed / off graph (DNS + mail)

| ID | Owner | Note |
|----|-------|------|
| **2.1–2.4** | Developer | DNS / forwards — **postponed** |
| **2.5** | Agent | SMTP — frozen |
| **5.4** (mail) | Agent | Auth mail E2E — frozen |

---

## Priority tiers (open only)

| Tier | IDs | Alpha blocker |
|------|-----|---------------|
| **P4** | **5.1 OTA**, **5.2 URLs**, **5.5** RBAC UI soak | **Yes** |
| **P5** | **6.1–6.6** app LAN | LAN alpha |
| **P9** | **9.x** landing (excl. globe FR) | No |
| **Post-alpha** | **SFU** relay (`feature/sfu-relay`) | No |

---

## Dependency graph

```mermaid
flowchart TB
    subgraph P4["P4 — backend alpha"]
        OTA["5.1 OTA channel<br/>SVC-OTA · HTTP 400"]
        URL["5.2 device URLs<br/>SVC-URL · legacy host"]
        RBACV["5.5 RBAC UI soak<br/>API ✓"]
    end

    subgraph P5["P5 — app LAN · dev"]
        A61["6.1 Opus/Speex"]
        A62["6.2 LAN soak"]
        A63["6.3 lifecycle"]
        A64["6.4 rotation"]
        A65["6.5 audio lag"]
        A66["6.6 stream analysis"]
    end

    subgraph P9["P9 — landing"]
        L9["9.x hub cards<br/>no globe FR"]
    end

    subgraph POST["Post-alpha · hidden"]
        SFU["SFU / Janus relay<br/>feature/sfu-relay"]
    end

    FULL["FULL_ALPHA<br/>no DNS/mail"]

    OTA --> FULL
    URL --> FULL
    RBACV --> FULL
    A62 --> FULL

    A63 <--> A64
    A65 --> A66

    SFU -.-> FULL

    style FULL fill:#1e3a5f,color:#fff
    style OTA fill:#991b1b,color:#fff
    style URL fill:#b45309,color:#fff
    style SFU fill:#e5e7eb,color:#374151
```

---

## Task index (open)

| ID | Owner | Depends on | Status |
|----|-------|------------|--------|
| **5.1** | 50/50 | nginx OTA path | **Open** — `SVC-OTA` ticket |
| **5.2** | 50/50 | — | **Open** — `SVC-URL` / `settings.json` base |
| **5.5** | Agent | RBAC API ✓ | Light UI soak (optional) |
| **6.1–6.6** | Developer (~99%) | 0.1 ✓ | Open |
| **9.x** | Agent (low) | — | Open (globe out of scope) |
| **SFU** | Agent | owner spec | Hidden preview on `feature/sfu-relay` |

---

## Critical path

```text
BLOCKER:  5.1 OTA nginx (/v0/ota/ on apps.f0xx.org) ──┐
SHARED:   5.2 production URLs (apps not f0xx.org) ─────┼──► FULL_ALPHA
OPTIONAL: 5.5 RBAC UI click-through ──────────────────┤
DEV:      6.2 LAN soak ───────────────────────────────┘

Off graph:  2.x DNS/mail (postponed)
Parallel:   6.1/6.3–6.6, 9.x (no globe), SFU post-alpha
```
