From 44f6c6d6acb849fa7c7409be8b06cddc10cd87f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Padez?= Date: Fri, 21 Aug 2026 16:40:39 +0000 Subject: [PATCH] todo: group the url and query-string items into one theme MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- TODO.md | 4 +-- todo/{files-app => url-state}/_index.md | 12 ++++++-- ...panel-s-folder-is-still-not-addressable.md | 4 +-- ...-the-query-strings-come-out-of-the-flow.md | 29 +++++++++++++++++++ .../rows-are-still-not-links.md | 4 +-- ...ts-that-clear-the-overlay-have-no-owner.md | 4 +-- .../a-deep-read-of-the-whole-framework-to.md | 3 ++ 7 files changed, 50 insertions(+), 10 deletions(-) rename todo/{files-app => url-state}/_index.md (55%) rename todo/{files-app => url-state}/a-panel-s-folder-is-still-not-addressable.md (86%) create mode 100644 todo/url-state/can-the-query-strings-come-out-of-the-flow.md rename todo/{files-app => url-state}/rows-are-still-not-links.md (95%) rename todo/{files-app => url-state}/the-acts-that-clear-the-overlay-have-no-owner.md (89%) diff --git a/TODO.md b/TODO.md index 2b9ab4eb..65e99825 100644 --- a/TODO.md +++ b/TODO.md @@ -20,7 +20,7 @@ the owner's OS user and can never be granted. Indirection there really is accide ## Themes -**77 open, 20 closed**, across 28 themes. +**78 open, 20 closed**, across 28 themes. | 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 | | [Components — the shared UI layer](todo/components/) | 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 | | [Headscale](todo/headscale/) | 0 | 5 | | [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 | | [Tooling — the list about the list](todo/tooling/) | 1 | 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 | | [Workspaces & Panels](todo/workspaces-panels/) | 2 | 0 | diff --git a/todo/files-app/_index.md b/todo/url-state/_index.md similarity index 55% rename from todo/files-app/_index.md rename to todo/url-state/_index.md index e79b1cbe..ba47c787 100644 --- a/todo/files-app/_index.md +++ b/todo/url-state/_index.md @@ -1,9 +1,17 @@ --- -theme: files-app -heading: "Files app — routing" +theme: url-state +heading: "URL state — routing, query strings and selection" 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 — `/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`, diff --git a/todo/files-app/a-panel-s-folder-is-still-not-addressable.md b/todo/url-state/a-panel-s-folder-is-still-not-addressable.md similarity index 86% rename from todo/files-app/a-panel-s-folder-is-still-not-addressable.md rename to todo/url-state/a-panel-s-folder-is-still-not-addressable.md index 946dc6f3..c7ad7896 100644 --- a/todo/files-app/a-panel-s-folder-is-still-not-addressable.md +++ b/todo/url-state/a-panel-s-folder-is-still-not-addressable.md @@ -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" -theme: files-app +theme: url-state status: open created: 2026-08-20 date_source: assumed diff --git a/todo/url-state/can-the-query-strings-come-out-of-the-flow.md b/todo/url-state/can-the-query-strings-come-out-of-the-flow.md new file mode 100644 index 00000000..51717250 --- /dev/null +++ b/todo/url-state/can-the-query-strings-come-out-of-the-flow.md @@ -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=`), 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=` 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. diff --git a/todo/files-app/rows-are-still-not-links.md b/todo/url-state/rows-are-still-not-links.md similarity index 95% rename from todo/files-app/rows-are-still-not-links.md rename to todo/url-state/rows-are-still-not-links.md index 3300e173..210df0da 100644 --- a/todo/files-app/rows-are-still-not-links.md +++ b/todo/url-state/rows-are-still-not-links.md @@ -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" -theme: files-app +theme: url-state status: open created: 2026-08-20 date_source: assumed diff --git a/todo/files-app/the-acts-that-clear-the-overlay-have-no-owner.md b/todo/url-state/the-acts-that-clear-the-overlay-have-no-owner.md similarity index 89% rename from todo/files-app/the-acts-that-clear-the-overlay-have-no-owner.md rename to todo/url-state/the-acts-that-clear-the-overlay-have-no-owner.md index 1acfd128..15b490cf 100644 --- a/todo/files-app/the-acts-that-clear-the-overlay-have-no-owner.md +++ b/todo/url-state/the-acts-that-clear-the-overlay-have-no-owner.md @@ -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" -theme: files-app +theme: url-state status: open created: 2026-08-20 date_source: assumed diff --git a/todo/workspaces-panels/a-deep-read-of-the-whole-framework-to.md b/todo/workspaces-panels/a-deep-read-of-the-whole-framework-to.md index 974d04a0..9d6c9364 100644 --- a/todo/workspaces-panels/a-deep-read-of-the-whole-framework-to.md +++ b/todo/workspaces-panels/a-deep-read-of-the-whole-framework-to.md @@ -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 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 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 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.