Skip to content

docs(roadmap): record implementation status per track, add Matter to LATER - #1054

Merged
frahlg merged 1 commit into
srcfl:masterfrom
HuggeK:roadmap-status
Sep 3, 2026
Merged

docs(roadmap): record implementation status per track, add Matter to LATER#1054
frahlg merged 1 commit into
srcfl:masterfrom
HuggeK:roadmap-status

Conversation

@HuggeK

@HuggeK HuggeK commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

The roadmap hadn't moved since #961 (2026-08-19) while a lot of tracked work landed. This PR annotates every NOW/NEXT track — and the LATER rows that moved — with a dated Status 2026-09-02 note recording what is actually implemented on master, verified against the code and its tests rather than PR titles. It also adds one new LATER direction: Matter support via matter.js.

Highlights of what the verification found:

New LATER row — Matter support (matter.js). A TypeScript matter.js process as an optional module behind a narrow versioned contract, mirroring the optimizer's rules: independent failure/update semantics, a safe unavailable state, devices entering control only as capability-declared devices with autonomous defaults, and the fabric never becoming a second commander.

@frahlg — the Matter row's placement (after Excess-PV sinks, since Matter plugs are the natural dump-load transport) and its gate wording are proposals; reorder or tighten as you see fit.

How the status notes were produced

Four parallel read-only verification passes over master at 4ba2f12, one per lane, each grounding every verdict in file/line evidence, test names, and git log PR attribution:

The notes deliberately record evidence gaps (untested behaviour) separately from unbuilt behaviour, matching the document's "exit evidence" framing.

Why the notes live in the table rather than a separate status doc

The roadmap's own rule is that a track moves only on evidence. Putting the dated status next to each exit-evidence cell keeps the claim and its current truth in one place, and the next update replaces the notes instead of growing a parallel document. A one-paragraph rule at the top says the notes are evidence, not promises.

Documentation-only change, so no changeset per the release rules. Companion PR srcfl/ftw-web#9 makes the website's "Public roadmap" chip actually link here.

🤖 Generated with Claude Code

https://claude.ai/code/session_015HBnpxLWTu2NtekaEPEDGF

…LATER

Claude-Session: https://claude.ai/code/session_015HBnpxLWTu2NtekaEPEDGF

Co-authored-by: HuggeK <48095810+HuggeK@users.noreply.github.com>

@miravoss26 miravoss26 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Docs-only status update to the roadmap table: adds dated "Status 2026-09-02" notes to every NOW/NEXT track plus a new Matter (matter.js) LATER row, rewrites the stale FTW-app "open work" list, and updates the OCPP/passive-battery/V2X LATER rows.

  • Every status claim cites concrete PR numbers as evidence, and the methodology (4 parallel read-only verification passes grounded in file/line/test evidence) is documented in a collapsible section — good practice for a claim-heavy doc change.
  • No code touched, single file (docs/roadmap.md), 43+/28- lines. No secrets, no injection surface, no new deps — nothing for the security lens to flag.
  • CI green (brand-cleanup, changeset-check, repo hygiene, go test+vet all pass; the code-test jobs correctly skipped for a docs-only diff).
  • Consistent with the companion PR (srcfl/ftw-web#9) which links the marketing site to this same doc.

Safe to merge from my read — I didn't re-verify every linked PR's code against the specific claims (that's a large surface for a docs review), but the sourcing is unusually rigorous for a status update.

@frahlg frahlg left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Status notes belong in the table, and the ones I spot-checked against master hold: ledger rows are deleted after two years with no cold archive (EnergyLedgerRetention), cycle_cost_ore_kwh is on the wire struct but never set when core builds externalStorage, DELETE /api/app-link/devices/{id} exists, OCPP 1.6J+2.0.1 is on master, and the app pairing/revocation items really did ship.

Nit, not blocking: the lease has fifteen BatteryBoostStopReason constants, not sixteen. Matter as LATER after Excess-PV sinks is the right placement — optional module, never a second commander.

@frahlg
frahlg merged commit 5aa4cc9 into srcfl:master Sep 3, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants