From c3cbbbc9620f8c69c049536fad055772df33f2e1 Mon Sep 17 00:00:00 2001 From: stroblme Date: Fri, 21 Aug 2026 23:01:25 +0200 Subject: [PATCH] Record the packaging work and what it left open Co-Authored-By: Claude Opus 5 (1M context) --- NOTEPAD.md | 13 +++++++++++++ ROADMAP.md | 12 ++++++++++++ 2 files changed, 25 insertions(+) diff --git a/NOTEPAD.md b/NOTEPAD.md index e3101c7..7b14f28 100644 --- a/NOTEPAD.md +++ b/NOTEPAD.md @@ -12,6 +12,19 @@ Deferring because out of scope is fine, but don't mention deferring than. ### To be sorted +- CHORE/PKG the SPA is not in the wheel: `fluksio serve` serves no UI, on the + assumption that a pip install is paired with a portal. Bundling `dist/` and + mounting it with `StaticFiles` would give a local dashboard — it needs a hatch + build hook running bun, `VITE_API_URL=""` for the same-origin case, and a + decision about the MCP `mount("/")` it would collide with. +- CHORE/PKG the Docker image still starts with `fastapi run`; `fluksio serve` + now does the same thing plus the bootstrap. Switching would give the container + and a pip install one code path. +- CHORE/DEPS `sentry-sdk` went to 2.x and the `requires-python` cap came off with + it. Nothing exercises Python 3.13/3.14 in CI — the matrix is one version. + +- FEAT/UI add a list of the dashboards next to the list of flows in the home view. Use a mosaic like structure with previews of the dashboards; Then make the list of flows capped at a certain number; everything above that should be scrollable; sort by recently modified. The dashboard mosaic should have the exact same height as the flow list both capped at a lower limit to allow showing 1 flow and 1 dashboard +- BUG/UI assimilate the design of the settings in the app to mirror the design of the settings in the portal - BUG/UI the "Installation Offline" warning (and notification in general) should be centered w.r.t. the viewport (currently it is a bit left, discarding the width of the sidebar). Furthermore, the notification does not seem to disappear on its own. Reloading the page solves it - CHORE/INFRA: the `generate-frontend-sdk` pre-commit hook runs `scripts/generate-client.sh` on any `backend/**` change, and that script ends by formatting the whole frontend tree — diff --git a/ROADMAP.md b/ROADMAP.md index 1bcdd6b..984cd55 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -113,6 +113,18 @@ external interfaces. See `docs/architecture/structure.canvas` → *Backend – M the engine runs only the published files, and publishing promotes the draft. Saves carry the version they were based on, so a second client editing the same flow is refused rather than overwritten +- [x] Installable with pip, and startable with no infrastructure: `fluksio` and + `fluksio-worker` are two distributions, `fluksio serve` makes its own data + directory, key, SQLite database and admin account, and `fluksio enroll + --portal …` pairs a machine with no browser pointed at it. Proven + in a bare `python:3.12-slim`: installed, paired, dialled out, and the hub + proxied requests back through the tunnel. `git` and a Redis are both + optional — the flows are files and the state falls back to memory +- [x] SQLite as the database, on the data volume beside the flows. One process + owns it, which the single uvicorn worker already said; Postgres stays in + the stack only for the optional Umami profile. `DATA_DIR` is the one + setting the rest derive from, the schema is prepared in-process at + startup, and the ten Postgres-only revisions are one portable baseline - [ ] Import/export of a flow as human-readable code plus a JSON structure - [x] Per-input/-output discretization interval setting: a port publishes, or wakes its node, at most every n seconds. State keeps the latest value, so