todo: group the url and query-string items into one theme
files-app becomes url-state: the file browser is where the work happened, but where selection lives and who clears a query string are framework questions. The panel framework's version of the same question moves in beside them, extracted from the deep-read item, which keeps it as one of its three questions. Item ids changed with the theme. Done now deliberately — no board reads them yet, and this is the last cheap moment to move one. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -20,7 +20,7 @@ the owner's OS user and can never be granted. Indirection there really is accide
|
|||||||
|
|
||||||
## Themes
|
## Themes
|
||||||
|
|
||||||
**77 open, 20 closed**, across 28 themes.
|
**78 open, 20 closed**, across 28 themes.
|
||||||
|
|
||||||
| Theme | Open | Closed |
|
| Theme | Open | Closed |
|
||||||
| ------------------------------------------------------------------------------------------ | ---- | ------ |
|
| ------------------------------------------------------------------------------------------ | ---- | ------ |
|
||||||
@@ -32,7 +32,6 @@ the owner's OS user and can never be granted. Indirection there really is accide
|
|||||||
| [Code editor](todo/code-editor/) | 1 | 0 |
|
| [Code editor](todo/code-editor/) | 1 | 0 |
|
||||||
| [Components — the shared UI layer](todo/components/) | 1 | 0 |
|
| [Components — the shared UI layer](todo/components/) | 1 | 0 |
|
||||||
| [File watchers](todo/file-watchers/) | 1 | 0 |
|
| [File watchers](todo/file-watchers/) | 1 | 0 |
|
||||||
| [Files app — routing](todo/files-app/) | 3 | 0 |
|
|
||||||
| [Fleet — one command across every server](todo/fleet/) | 3 | 0 |
|
| [Fleet — one command across every server](todo/fleet/) | 3 | 0 |
|
||||||
| [Headscale](todo/headscale/) | 0 | 5 |
|
| [Headscale](todo/headscale/) | 0 | 5 |
|
||||||
| [Infra (alpha)](todo/infra/) | 6 | 0 |
|
| [Infra (alpha)](todo/infra/) | 6 | 0 |
|
||||||
@@ -50,6 +49,7 @@ the owner's OS user and can never be granted. Indirection there really is accide
|
|||||||
| [Sudo terminal modal](todo/sudo-terminal-modal/) | 1 | 0 |
|
| [Sudo terminal modal](todo/sudo-terminal-modal/) | 1 | 0 |
|
||||||
| [Tooling — the list about the list](todo/tooling/) | 1 | 0 |
|
| [Tooling — the list about the list](todo/tooling/) | 1 | 0 |
|
||||||
| [Transmission](todo/transmission/) | 6 | 0 |
|
| [Transmission](todo/transmission/) | 6 | 0 |
|
||||||
|
| [URL state — routing, query strings and selection](todo/url-state/) | 4 | 0 |
|
||||||
| [Waiting on the owner to run it](todo/waiting-on-owner/) | 2 | 0 |
|
| [Waiting on the owner to run it](todo/waiting-on-owner/) | 2 | 0 |
|
||||||
| [Workspaces & Panels](todo/workspaces-panels/) | 2 | 0 |
|
| [Workspaces & Panels](todo/workspaces-panels/) | 2 | 0 |
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,17 @@
|
|||||||
---
|
---
|
||||||
theme: files-app
|
theme: url-state
|
||||||
heading: "Files app — routing"
|
heading: "URL state — routing, query strings and selection"
|
||||||
kind: theme
|
kind: theme
|
||||||
---
|
---
|
||||||
|
|
||||||
|
**Grouped 2026-08-21.** This was `files-app`, and the file browser is still where most of it is —
|
||||||
|
but the question underneath is not the file browser's. Where selection lives, what a query string is
|
||||||
|
allowed to mean, and who is responsible for clearing one are framework questions that happen to have
|
||||||
|
been answered first in `/files`. The panel framework's own version of the same question is here too,
|
||||||
|
rather than filed under the framework's deep read where nobody comparing the two would find it.
|
||||||
|
|
||||||
|
`docs/navigation-audit.md` is the authority for all of it.
|
||||||
|
|
||||||
**The URL model is done (2026-08-15).** The folder is the pathname —
|
**The URL model is done (2026-08-15).** The folder is the pathname —
|
||||||
`/files/archive/Tests/platform/docs` — and `?view=` is a NAME within it, not a second copy of the path.
|
`/files/archive/Tests/platform/docs` — and `?view=` is a NAME within it, not a second copy of the path.
|
||||||
Deep links and refresh work, which they never had. Landed across `559560de`, `98ba604a`, `7e31564c`,
|
Deep links and refresh work, which they never had. Landed across `559560de`, `98ba604a`, `7e31564c`,
|
||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
id: files-app/a-panel-s-folder-is-still-not-addressable
|
id: url-state/a-panel-s-folder-is-still-not-addressable
|
||||||
title: "A panel's folder is still not addressable"
|
title: "A panel's folder is still not addressable"
|
||||||
theme: files-app
|
theme: url-state
|
||||||
status: open
|
status: open
|
||||||
created: 2026-08-20
|
created: 2026-08-20
|
||||||
date_source: assumed
|
date_source: assumed
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
---
|
||||||
|
id: url-state/can-the-query-strings-come-out-of-the-flow
|
||||||
|
title: "Can the query strings come out of the flow?"
|
||||||
|
theme: url-state
|
||||||
|
status: open
|
||||||
|
created: 2026-08-20
|
||||||
|
date_source: assumed
|
||||||
|
order: 4
|
||||||
|
---
|
||||||
|
|
||||||
|
**Can the query strings come out of the flow?** One of the three questions the Workspace/Panel deep
|
||||||
|
read set out to answer rather than assume (`workspaces-panels/a-deep-read-of-the-whole-framework-to`),
|
||||||
|
pulled out to sit beside the file browser's version of the same problem — which is the only place the
|
||||||
|
question has actually been worked through end to end.
|
||||||
|
|
||||||
|
What makes it a real question rather than a tidy-up: a query string is doing several different jobs at
|
||||||
|
once across the app. In `/files` it names the open overlay (`?view=<name>`), which is addressable state
|
||||||
|
and belongs in the URL. `src/workspaces/components/NavLink.tsx` appends a **global** query string to
|
||||||
|
every link it renders — a different job again, and one most callers never think about. And
|
||||||
|
`docs/navigation-audit.md` prescribes `?selected=<id>` for a master list with a live preview, because
|
||||||
|
the detail route is the full page.
|
||||||
|
|
||||||
|
So "come out of the flow" is not one change. Deciding which of those uses are load-bearing addressable
|
||||||
|
state and which are ambient plumbing being carried around is the work, and the answer probably differs
|
||||||
|
per case.
|
||||||
|
|
||||||
|
Related, and the reason this theme exists: `url-state/the-acts-that-clear-the-overlay-have-no-owner`
|
||||||
|
is the same shape one layer down — the params are named in one place, but every site still decides for
|
||||||
|
itself whether to honour them.
|
||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
id: files-app/rows-are-still-not-links
|
id: url-state/rows-are-still-not-links
|
||||||
title: "Rows are still not links"
|
title: "Rows are still not links"
|
||||||
theme: files-app
|
theme: url-state
|
||||||
status: open
|
status: open
|
||||||
created: 2026-08-20
|
created: 2026-08-20
|
||||||
date_source: assumed
|
date_source: assumed
|
||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
id: files-app/the-acts-that-clear-the-overlay-have-no-owner
|
id: url-state/the-acts-that-clear-the-overlay-have-no-owner
|
||||||
title: "The acts that clear the overlay have no owner, only the list does"
|
title: "The acts that clear the overlay have no owner, only the list does"
|
||||||
theme: files-app
|
theme: url-state
|
||||||
status: open
|
status: open
|
||||||
created: 2026-08-20
|
created: 2026-08-20
|
||||||
date_source: assumed
|
date_source: assumed
|
||||||
@@ -14,6 +14,9 @@ repeatedly, and nobody has since sat down and read the whole thing at once.
|
|||||||
Three questions to answer rather than assume: can the query strings come out of the flow; is there
|
Three questions to answer rather than assume: can the query strings come out of the flow; is there
|
||||||
a better shape for panel-to-panel communication than the current channel/URL split; and what does
|
a better shape for panel-to-panel communication than the current channel/URL split; and what does
|
||||||
the layout tree cost that a simpler one would not.
|
the layout tree cost that a simpler one would not.
|
||||||
|
The first of those now has its own item, `url-state/can-the-query-strings-come-out-of-the-flow`,
|
||||||
|
filed with the file browser's work on the same question — that is where it has been thought about
|
||||||
|
hardest. It stays part of this read; it is not a separate effort.
|
||||||
**Fold the existing panel items into this** — the silent `key`/`appType` mismatch, the destructive
|
**Fold the existing panel items into this** — the silent `key`/`appType` mismatch, the destructive
|
||||||
layout migration on a renamed key, and `docs/workspace-panel-todo.md`. They are symptoms of the
|
layout migration on a renamed key, and `docs/workspace-panel-todo.md`. They are symptoms of the
|
||||||
same unexamined design, and fixing them one at a time is how it stays unexamined.
|
same unexamined design, and fixing them one at a time is how it stays unexamined.
|
||||||
|
|||||||
Reference in New Issue
Block a user