← The specification
Feature board
Rendered from spec at76d46f3 (2026-10-25) · its source · Edit this page
Status: Accepted
Generated from feature frontmatter and the version manifests by
scripts/gen_board.py — do not edit by hand; just board regenerates it.
116 features in areas A–N, 1844 requirements. Counted here rather than restated: prose that quotes a number goes stale silently, and this file is regenerated from the features themselves.
Grouped by maturity, which says how far the implementation has got — 25 shipped, 44 built, 26 building, 20 planned, 1 withdrawn. Status is the other question, about the specification rather than the code, and the two move independently.
Shipped — built, and out in a version
| ID | Feature | Area | Audience | Status | Ships in |
|---|---|---|---|---|---|
| A1 | Prerequisites & account guidance | A | operator | accepted | 0.2.0 |
| A3 | Credential validation | A | operator | accepted | 0.13.0 |
| A6 | Clean uninstall | A | operator | accepted | 0.13.0 |
| B4 | Log viewing | B | operator | accepted | 0.8.0 |
| B5 | Notifications & alerting | B | both | accepted | 0.5.0 |
| B6 | Controlling a stack on another machine | B | operator | accepted | 0.15.0 |
| B10 | Hosting long-running commands | B | operator | accepted | 0.15.0 |
| C2 | VPN verification | C | operator | accepted | 0.6.0 |
| C5 | Storage & hardlink management | C | operator | accepted | 0.6.0 |
| C7 | Queue health & stuck items | C | operator | accepted | 0.6.0 |
| C8 | Provider health & quota tracking | C | operator | accepted | 0.7.0 |
| D1 | Service auto-wiring | D | operator | accepted | 0.17.0 |
| D5 | Disk space management | D | operator | accepted | 0.12.0 |
| D8 | Parental controls | D | both | accepted | 0.12.0 |
| D9 | “Where is my show?” pipeline trace | D | both | accepted | 0.4.0 |
| E1 | Stack updates | E | operator | accepted | 0.17.0 |
| E2 | Self-update | E | operator | accepted | 0.14.0 |
| E4 | Rollback | E | operator | accepted | 0.14.0 |
| E5 | Changelog & release notes | E | operator | accepted | 0.14.0 |
| F2 | Service catalogue | F | operator | accepted | 0.15.0 |
| F7 | Plugin provenance | F | operator | accepted | 0.16.0 |
| F9 | Capabilities of the bundled services | F | operator | accepted | 0.17.0 |
| G5 | The front door | G | both | accepted | 0.17.0 |
| G6 | Client app guidance | G | household | accepted | 0.11.0 |
| G9 | Mobile client handoff | G | both | accepted | 0.17.0 |
Built — every requirement met, waiting for its version to be released
| ID | Feature | Area | Audience | Status | Ships in |
|---|---|---|---|---|---|
| A4 | Reconfiguration | A | operator | accepted | 0.13.0, 0.18.0 |
| A7 | Credential management & rotation | A | operator | accepted | 0.13.0, 0.18.0 |
| B1 | Forms & partial stacks | B | operator | accepted | 0.1.0, 0.17.0, 0.18.0, 0.8.0 |
| C1 | Diagnostics | C | operator | accepted | 0.1.0, 0.18.0, 0.2.0, 0.8.0 |
| C3 | Auto-remediation | C | operator | accepted | 0.18.0, 0.7.0 |
| C4 | Support bundle | C | operator | accepted | 0.18.0, 0.7.0 |
| C9 | Config drift detection & seed policy | C | operator | accepted | 0.18.0, 0.4.0, 0.7.0 |
| C10 | Integration keys | C | operator | accepted | 0.18.0 |
| D3 | First-content walkthrough | D | operator | accepted | 0.18.0, 0.4.0 |
| D4 | Household request flow | D | household | accepted | 0.11.0, 0.19.0 |
| D7 | Request approval & quotas | D | both | accepted | 0.12.0, 0.18.0 |
| D10 | Bandwidth & scheduling | D | operator | accepted | 0.12.0, 0.18.0 |
| E3 | Backup & restore | E | operator | accepted | 0.14.0, 0.18.0, 0.3.0 |
| F4 | The capability vocabulary | F | operator | accepted | 0.16.0, 0.18.0 |
| F5 | The plugin catalogue and what vouches for a plugin | F | operator | accepted | 0.17.0, 0.18.0 |
| F6 | Plugin lifecycle | F | operator | accepted | 0.16.0, 0.18.0 |
| F8 | Recipes and named adapters | F | operator | accepted | 0.17.0, 0.18.0 |
| F10 | Writing a plugin | F | operator | accepted | 0.16.0, 0.17.0, 0.18.0 |
| F12 | Home Assistant | F | operator | accepted | 0.18.0, 0.19.0 |
| F13 | An assistant’s way in | F | operator | accepted | 0.18.0, 0.19.0 |
| G7 | Overall health summary | G | operator | accepted | 0.18.0, 0.5.0 |
| L3 | The image for a NAS | L | operator | accepted | 0.18.0 |
| N2 | The operator’s companion | N | operator | accepted | 0.19.0, 0.20.0 |
| N3 | The household’s companion | N | household | accepted | 0.18.0, 0.19.0 |
| N5 | What connects to what | N | operator | accepted | 0.18.0 |
| N7 | Moving in beside what is already there | N | operator | accepted | — |
| N8 | What comes in, and where it got to | N | operator | accepted | — |
| N9 | Who gets in, and what the stack holds for them | N | operator | accepted | 1.0.0 |
| N10 | What the stack does when nobody is watching | N | operator | accepted | — |
| N11 | What was done, and where it came from | N | operator | accepted | — |
| N12 | Running out of room | N | operator | accepted | — |
| N13 | Taking something away | N | operator | accepted | — |
| N14 | What is running, and what is newer | N | operator | accepted | — |
| N15 | The words, and watching it happen | N | operator | accepted | — |
| N18 | Running part of it on purpose | N | operator | accepted | — |
| N20 | What a plugin may send, and what it may never run | N | operator | accepted | 0.18.0 |
| N21 | Asking somebody in | N | operator | accepted | 0.18.0, 0.19.0 |
| N22 | Asking for help | N | operator | accepted | — |
| N23 | What keeps going, and what stopped moving | N | operator | accepted | — |
| N24 | Choosing how good, and trying one | N | operator | accepted | — |
| N25 | A plugin after it lands | N | operator | accepted | 0.18.0, 1.0.0 |
| N28 | Finding your way | N | operator | accepted | — |
| N29 | A key for an app | N | operator | accepted | 0.18.0 |
| N31 | Asking the indexers | N | operator | accepted | — |
Building — work has started and is not finished
| ID | Feature | Area | Audience | Status | Ships in |
|---|---|---|---|---|---|
| A2 | Setup wizard | A | operator | accepted | 0.18.0, 0.2.0 |
| A5 | Migration from an existing stack | A | operator | accepted | 0.13.0, 0.18.0 |
| B2 | Lifecycle control | B | operator | accepted | 0.15.0, 0.18.0, 0.8.0 |
| B3 | Live dashboard | B | operator | accepted | 0.18.0, 0.5.0, 1.0.0 |
| B8 | Autostart & boot persistence | B | operator | accepted | 0.15.0 |
| C6 | Web UI security & binding policy | C | operator | accepted | 0.10.0, 0.17.0, 0.18.0, 0.9.0 |
| D2 | Quality presets in plain language | D | operator | accepted | 0.18.0, 0.4.0 |
| D6 | Household identity & invitations | D | both | accepted | 0.11.0, 0.17.0, 0.18.0, 0.19.0 |
| D11 | Watching what the house holds | D | household | accepted | 0.18.0, 0.19.0 |
| F1 | Customisation & escape hatches | F | operator | accepted | 0.15.0 |
| F3 | Plugin manifests | F | operator | accepted | 0.16.0 |
| F14 | Every part is a plugin | F | operator | accepted | 0.18.0 |
| G1 | Interface tiers | G | both | accepted | 0.18.0, 0.9.0 |
| G2 | Plain-language layer & in-product help | G | both | accepted | 0.18.0, 0.19.0, 0.9.0 |
| G3 | Accessibility | G | both | accepted | 0.10.0, 0.9.0 |
| G4 | Error & remedy model | G | both | accepted | 0.18.0, 0.5.0 |
| G8 | Privacy stance | G | both | accepted | 0.10.0, 0.11.0, 0.14.0, 0.18.0 |
| G10 | The household’s web surface | G | household | accepted | 0.18.0, 0.19.0 |
| N1 | The companion app | N | both | accepted | 0.17.0, 0.18.0, 0.19.0, 1.0.0 |
| N4 | What the app uses of the device | N | both | accepted | — |
| N6 | Taking a copy, and putting it back | N | operator | accepted | — |
| N16 | What happened while nobody was looking | N | operator | accepted | — |
| N17 | Where a message goes | N | operator | accepted | — |
| N19 | Getting underneath it | N | operator | accepted | — |
| N27 | What the phone keeps | N | operator | accepted | — |
| N30 | Testing, making room and sharing the line | N | operator | accepted | 1.0.0 |
Planned — specified, not yet built
| ID | Feature | Area | Audience | Status | Ships in |
|---|---|---|---|---|---|
| B9 | Open notification back-ends | B | both | accepted | 0.23.0 |
| F11 | Executing contributed code | F | operator | draft | — |
| G11 | The operator’s web console | G | operator | accepted | 0.18.0 |
| H1 | Cross-seeding | H | operator | accepted | 0.20.0 |
| H2 | Announce-driven grabbing | H | operator | accepted | 0.20.0 |
| H3 | Quality-profile sync | H | operator | accepted | 0.20.0 |
| H4 | Subtitles | H | both | accepted | 0.20.0 |
| H5 | Queue self-healing | H | operator | accepted | 0.21.0 |
| H6 | Library cleanup | H | both | accepted | 0.21.0 |
| H7 | Transcoding | H | operator | accepted | 0.21.0 |
| H8 | Playback statistics | H | both | accepted | 0.21.0 |
| I1 | Remote access for the household | I | both | accepted | 0.22.0 |
| I2 | Household identity & single sign-on | I | both | accepted | 0.22.0 |
| J1 | Container-engine abstraction | J | operator | draft | 0.24.0 |
| J2 | Running under Podman | J | operator | draft | 0.24.0 |
| J3 | Running natively, without containers | J | operator | draft | 0.24.0 |
| K1 | Metrics & dashboards | K | operator | accepted | 0.23.0 |
| K2 | Uptime monitoring | K | operator | accepted | 0.23.0 |
| L1 | v1 release engineering | L | operator | accepted | 1.0.0 |
| N26 | What the glue is doing | N | both | accepted | — |
Withdrawn — no longer to be built
| ID | Feature | Area | Audience | Status | Ships in |
|---|---|---|---|---|---|
| L2 | v2 release | L | operator | withdrawn | — |