Notepad: close the wave-1 items, record what they left behind
Eleven "to be sorted" entries are done. Three that survive are amended rather than removed: the house panel's chart budget (the range picker gave its row back), layoutGraph (height is derived now, width is still guessed), and the dark:-variant scope, which turned out to share a root with the React Flow colorMode bug. Adds the portal's missing not-reporting state, and drops the frontend-origin entry the rebuild settled.
This commit is contained in:
+16
-22
@@ -12,31 +12,16 @@ Deferring because out of scope is fine, but don't mention deferring than.
|
|||||||
|
|
||||||
### To be sorted
|
### To be sorted
|
||||||
|
|
||||||
- FEAT/UI: charts (dashboard) should have a slight smoothening option (either influx or in chart; depending what is more "general")
|
|
||||||
- FEAT/UI: allow assigning individual colors for the traces in a chart
|
|
||||||
- FEAT/UI time range selector should be drawn at the top right of a chart (same level as the title, such that fewer vertical space is wasted)
|
|
||||||
- BUG/UI: the size of a node (height) should grow depending on it's (max) number of inputs/ outputs
|
|
||||||
- BUG/UI: inputs/outputs referencing outside a flow should show similar like the dashboard labels (but with a flow icon instead)
|
|
||||||
- BUG/UI edges in the brain view should dim a bit slower and fade out further
|
|
||||||
- BUG/UI: some nodes (when called very frequently) show a slightly flickering shape (which extends/shrinks )
|
|
||||||
- BUG/UI: the canvas and nodes in the flow UI does not seem to respond to the dark theme when enter (seen in 4ef6995a-36b9-4238-b2cd-b67dc7738c07/flows/appliances)
|
|
||||||
- BUG/UI: in the portal; the "Failures 24H" does not seem to match the values stated in the overview of the correspondign installation. Check for similar infos
|
|
||||||
- BUG/UI: when hovering a chart, the hovered data point location does not match the mouse location (seen in 4ef6995a-36b9-4238-b2cd-b67dc7738c07/dashboards/energy)
|
|
||||||
- CHORE/UI: the house panels are laid out for 1280x800 — twelve columns, twelve
|
- CHORE/UI: the house panels are laid out for 1280x800 — twelve columns, twelve
|
||||||
rows — and that is as much as fits: a chart spends about eighty pixels on its
|
rows. A chart's fixed chrome is now its title line and legend: the range picker
|
||||||
title, range picker and legend whatever height it is given, so two of them
|
moved up onto the title and gave back its row, so the budget is nearer forty
|
||||||
read on that panel and three do not. The temperature history was the one
|
pixels than eighty and a third chart may now fit — worth measuring against the
|
||||||
dropped; `history.climate_*` still answers, so it is a tile away.
|
panel before adding one. The temperature history was the one dropped;
|
||||||
|
`history.climate_*` still answers, so it is a tile away.
|
||||||
- FEAT/UI: a bar's nested reading is captioned by its port name, which is
|
- FEAT/UI: a bar's nested reading is captioned by its port name, which is
|
||||||
chosen for the graph rather than for somebody reading it across a room.
|
chosen for the graph rather than for somebody reading it across a room.
|
||||||
`Segment` now takes an optional `label`; the house dashboard sets one
|
`Segment` now takes an optional `label`; the house dashboard sets one
|
||||||
(`Solar`), and it shows on the next frontend build.
|
(`Solar`), and it shows on the next frontend build.
|
||||||
- BUG/INFRA: the running `fluksio-frontend` image calls `https://api.localhost`
|
|
||||||
while `app/.env` says `VITE_API_URL=http://api.localhost` — the image predates
|
|
||||||
the environment being switched to `local`. Anything served from that bundle
|
|
||||||
reaches the API only where something terminates TLS for `api.localhost`. The
|
|
||||||
next frontend build changes the origin, so check how the app is actually
|
|
||||||
reached before making one.
|
|
||||||
|
|
||||||
- BUG/FLOW: **a cancelled request can leave `FlowController._lock` held forever.**
|
- BUG/FLOW: **a cancelled request can leave `FlowController._lock` held forever.**
|
||||||
Seeding nineteen flows over a client that timed out mid-request left the next
|
Seeding nineteen flows over a client that timed out mid-request left the next
|
||||||
@@ -61,6 +46,11 @@ Deferring because out of scope is fine, but don't mention deferring than.
|
|||||||
for one seed. It is the slowest thing about standing an installation up, and a
|
for one seed. It is the slowest thing about standing an installation up, and a
|
||||||
`PUT` that could say "published, stopped" in one call would halve it.
|
`PUT` that could say "published, stopped" in one call would halve it.
|
||||||
|
|
||||||
|
- CHORE/UI: the portal's aggregate tiles have no not-reporting state. A figure an
|
||||||
|
installation never sends renders through `?? 0`, so a missing field reads as a confident
|
||||||
|
zero rather than as unknown — which is how a deleted `failures_24h` showed as "0 failures"
|
||||||
|
unnoticed. The per-card half is one line; Home sums across installations and has nowhere to
|
||||||
|
say "3 of 4 reporting", so the two want doing together.
|
||||||
- FEAT/SEC: `locked` is a read-only surface, not a permission — the server accepts a publish
|
- FEAT/SEC: `locked` is a read-only surface, not a permission — the server accepts a publish
|
||||||
from a panel whose dashboard says locked. Making it real means carrying the flag into
|
from a panel whose dashboard says locked. Making it real means carrying the flag into
|
||||||
`_panel_may`.
|
`_panel_may`.
|
||||||
@@ -68,6 +58,11 @@ Deferring because out of scope is fine, but don't mention deferring than.
|
|||||||
matches `dark:` variant utilities, because those compile to `&:is(.dark *)` and `<html>`
|
matches `dark:` variant utilities, because those compile to `&:is(.dark *)` and `<html>`
|
||||||
always carries a theme class. Cosmetic (a few faint shadcn backgrounds); fixing it properly
|
always carries a theme class. Cosmetic (a few faint shadcn backgrounds); fixing it properly
|
||||||
needs a theme-scope mechanism CSS ancestor selectors cannot express today.
|
needs a theme-scope mechanism CSS ancestor selectors cannot express today.
|
||||||
|
Shares a root with a bug fixed since: the token scopes are keyed on the bare class names
|
||||||
|
`light`/`dark`, so React Flow's own `colorMode` class silently re-themed an entire canvas
|
||||||
|
to light until the prop was passed explicitly. Namespacing them (`.theme-light` /
|
||||||
|
`.theme-dark`) would sit under both. Two repos — the token blocks are a byte-identical
|
||||||
|
duplication contract with `index/src/index.css` — plus `useDashboardTheme`.
|
||||||
- CHORE/UI: the lock notice is on `PanelSurface` only, so `/dashboards/{name}` in read mode
|
- CHORE/UI: the lock notice is on `PanelSurface` only, so `/dashboards/{name}` in read mode
|
||||||
shows disabled controls without the pill.
|
shows disabled controls without the pill.
|
||||||
- CHORE/DOC: the docs call a cron `inject` node "a node publishing on a schedule". The node
|
- CHORE/DOC: the docs call a cron `inject` node "a node publishing on a schedule". The node
|
||||||
@@ -170,7 +165,6 @@ Deferring because out of scope is fine, but don't mention deferring than.
|
|||||||
`make test-backend` then fails at the coverage HTML step *after* every test has passed —
|
`make test-backend` then fails at the coverage HTML step *after* every test has passed —
|
||||||
which reads like a test failure and is not one.
|
which reads like a test failure and is not one.
|
||||||
(tests/flows.spec.ts, tests/admin.spec.ts)". There are nine.
|
(tests/flows.spec.ts, tests/admin.spec.ts)". There are nine.
|
||||||
- BUG/UI in the brain view: make the chasing circle animation running entirely in the gap between the ring and the node (using the full width)
|
|
||||||
- CHORE/UI: the edge popover shows the same value twice — `MessageSparkline` falls through to a collapsed `ValuePreview` for a non-numeric value, and `EdgeInspector` then renders its own `ValuePreview defaultOpen` below it. Cosmetic; one of the two is redundant.
|
- CHORE/UI: the edge popover shows the same value twice — `MessageSparkline` falls through to a collapsed `ValuePreview` for a non-numeric value, and `EdgeInspector` then renders its own `ValuePreview defaultOpen` below it. Cosmetic; one of the two is redundant.
|
||||||
- FEAT/UI: a settings-and-inputs overview page, so what every node of an installation is configured with can be read and searched in one place rather than one panel at a time.
|
- FEAT/UI: a settings-and-inputs overview page, so what every node of an installation is configured with can be read and searched in one place rather than one panel at a time.
|
||||||
- FEAT/UI: an input endpoint opens the flow panel, which is right for editing but not for reading one value. A panel of its own — the declaration, the current value, its history — is what clicking a label wants to give.
|
- FEAT/UI: an input endpoint opens the flow panel, which is right for editing but not for reading one value. A panel of its own — the declaration, the current value, its history — is what clicking a label wants to give.
|
||||||
@@ -182,7 +176,7 @@ Deferring because out of scope is fine, but don't mention deferring than.
|
|||||||
- INFRA: merge the philosophy statement at the beginning of vision.md into the rest of the document. Dissolve the decision dates and fold the decisions into a clean structure
|
- INFRA: merge the philosophy statement at the beginning of vision.md into the rest of the document. Dissolve the decision dates and fold the decisions into a clean structure
|
||||||
- FEAT/UI introduce a graph panel which renders at the top right next to the graph view (to make more use of the horizontal space) and which allows (de-) selecting flows to be excluded from the graph view or search for individual nodes where only the flows containing this node should be shown (like slicing the brain)
|
- FEAT/UI introduce a graph panel which renders at the top right next to the graph view (to make more use of the horizontal space) and which allows (de-) selecting flows to be excluded from the graph view or search for individual nodes where only the flows containing this node should be shown (like slicing the brain)
|
||||||
- FEAT/UI labels in flows (indicating dashboard widget connections) naturally can't pulse. Instead add an animation (enlightning fade) from either ltr or rtl depending if the label is in- or outbound
|
- FEAT/UI labels in flows (indicating dashboard widget connections) naturally can't pulse. Instead add an animation (enlightning fade) from either ltr or rtl depending if the label is in- or outbound
|
||||||
- CHORE/UI: `layoutGraph` treats every node as 220×56 rather than measuring, because feeding a measurement back into the layout oscillates. A node wider than that crowds its neighbours; take the sizes from `node.measured` once they have settled if it shows.
|
- CHORE/UI: `layoutGraph` treats every node as 220 wide rather than measuring, because feeding a measurement back into the layout oscillates. A node wider than that crowds its neighbours; take the width from `node.measured` once it has settled if it shows. Height is no longer a guess — `nodeHeight()` derives it from the port count before dagre runs, so it cannot oscillate.
|
||||||
- FEAT/UI/MOBILE: a rank of many nodes — a connector feeding eight dashboard tiles — is thousands of pixels wide however the graph is turned, so on a phone the fit shrinks it past reading. The layout is right and the flow is simply too big for the screen; a "one rank at a time" reading mode, or wrapping a wide rank, is what would make it legible.
|
- FEAT/UI/MOBILE: a rank of many nodes — a connector feeding eight dashboard tiles — is thousands of pixels wide however the graph is turned, so on a phone the fit shrinks it past reading. The layout is right and the flow is simply too big for the screen; a "one rank at a time" reading mode, or wrapping a wide rank, is what would make it legible.
|
||||||
- CHORE/UI: an edge's value chip sits at the bezier midpoint while the layout reserves its room at dagre's label rank. The two agree closely enough today; if chips ever pile up, take the position from the layout instead.
|
- CHORE/UI: an edge's value chip sits at the bezier midpoint while the layout reserves its room at dagre's label rank. The two agree closely enough today; if chips ever pile up, take the position from the layout instead.
|
||||||
- FEAT/UI (deferred until MCP lands): add a "bot" icon button to the home view (graph panel) which opens a chat window (reuse general concept of a side panel like in flows/nodes to make it a chat panel which can open on any screen (stacks below any other existing panel -> introduce stacking) to give support on errors/write code, generate dashboards etc) to explain the error(s)
|
- FEAT/UI (deferred until MCP lands): add a "bot" icon button to the home view (graph panel) which opens a chat window (reuse general concept of a side panel like in flows/nodes to make it a chat panel which can open on any screen (stacks below any other existing panel -> introduce stacking) to give support on errors/write code, generate dashboards etc) to explain the error(s)
|
||||||
|
|||||||
Reference in New Issue
Block a user