Skip to content

Files: legible scope chips, honest upload confirmation, bottom-right toast, full-height detail pane - #276

Merged
TheGreatAxios merged 2 commits into
mainfrom
cl-files-polish
Aug 21, 2026
Merged

Files: legible scope chips, honest upload confirmation, bottom-right toast, full-height detail pane#276
TheGreatAxios merged 2 commits into
mainfrom
cl-files-polish

Conversation

@TheGreatAxios

Copy link
Copy Markdown
Contributor

Summary

Four owner-reported fixes on the Files page (CL-6563):

  • Scope chips. The top bar showed "All" / "New Workbench" / "All workbenches" as three undifferentiated buttons. "All" was never a kind or scope filter — it's a clear-selection action (close the open file, return to the list), only rendered while a file is selected. It's relabeled "Back to files" so it can't be mistaken for a filter option. The real scope control — "New Workbench" vs. "All workbenches" — is now visually grouped as one bordered segmented control (the same idiom ViewToggle already uses for rows/grid in this same bar), so it reads as one control answering one question. Checked Skills, Agents, Routines, and Insights for the same pattern: none of them have it — Insights has its own, already-legible workbench-scope switcher (a different pattern). The ambiguous row was unique to Files.
  • Upload confirmation. A completed upload now shows a toast naming the title the server actually stored, not the local file name the browser sent — grounded in the real upload response, since a sibling lane is separately fixing a bug where uploaded content can read back empty. A failed upload still surfaces the failure instead of a fake success toast.
  • Toast position. The app's one <Toaster> mount (main.tsx) now passes position="bottom-right". A hardcoded centering rule in the vendored @corbits/react-ui stylesheet fights any non-center position with !important; a higher-specificity override in app.css cancels it for the right-position case. The existing "one toast system" invariant test (CL-6372) is untouched and still passes.
  • Detail pane height. The file preview pane now fills the available height instead of floating as a short panel in an otherwise empty page.

Test plan

  • apps/web/test/library-page-selection.test.tsx — new coverage for the grouped scope control, the relabeled clear-selection action, and the full-height detail pane
  • apps/web/test/library-upload-confirmation.test.tsx — new: a completed upload confirms the server's title, a failed upload surfaces the error and never fakes a success toast
  • apps/web/test/toast-single-system.test.tsx — new case pinning the app's Toaster to bottom-right; existing CL-6372 invariant tests untouched and passing
  • Full apps/web test suite (840 tests), typecheck, lint, and check:tailwind-source all pass

https://linear.app/abklabs/issue/CL-6563/files-page-legible-scope-chips-honest-upload-confirmation-bottom-right

…ion, and detail-pane height

Covers four owner-reported gaps on the Files page: the scope chips reading
as one ambiguous group, an upload with no success feedback, the app-wide
toast sitting bottom-center, and the file detail pane floating short in an
otherwise empty page.
…toast, full-height detail pane

- The top bar's clear-selection action no longer says bare "All" beside
  "All workbenches" — it reads "Back to files", an action rather than a
  third filter option. The workbench/all-workbenches pair is now visually
  one bordered segmented control (the same idiom `ViewToggle` already uses
  in this bar), so the one real scope question reads as one control.
- A completed upload now confirms the title the server actually stored,
  not the local file name the browser sent, and stays silent (surfacing
  the failure instead) when the upload endpoint reports one.
- The app's one `<Toaster>` mount (main.tsx) now positions bottom-right;
  a react-ui override that hardcoded horizontal centering is cancelled for
  that position in app.css so the toast actually lands where it claims to.
- The file preview pane now fills the available height instead of
  floating as a short panel in an otherwise empty page.
@TheGreatAxios
TheGreatAxios merged commit fa2a132 into main Aug 21, 2026
5 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.

1 participant