Skip to content

feat(web): unify workspace layouts, navigation, and editor controls - #7002

Open
tlgimenes wants to merge 2 commits into
mainfrom
refactor/route-owned-main
Open

tlgimenes wants to merge 2 commits into
mainfrom
refactor/route-owned-main

Conversation

@tlgimenes

@tlgimenes tlgimenes commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

What is this contribution about?

Workspace pages gain shared topbars, plain page titles, actions, and responsive layouts. Site Editor brings Preview, Content, Code, branch controls, and publish actions into the topbar, with its console drawer beneath the editor.

This frontend PR targets main, builds on the merged routing foundation in #7202, and works with the production API. #7167 adds project ownership through API changes and their dependent UI.

  • Separate organization navigation (Home, Tasks, Library) from project navigation (Home, Reports, Tasks, and enabled project views). Structural project links render while project data loads.
  • Compose workspace, Settings, administration, collection, and registry pages with shared main-panel components and plain page titles. Detail pages retain back controls, and Library retains its folder navigation. Empty topbars remain transparent, including when they contain only empty slots.
  • Move the chat toggle to an icon with a tooltip beside the sidebar collapse control. Its availability is independent of project/message loading; panel visibility retains the selected page and chat.
  • Add responsive Content/Code workspaces, file tabs, and resizable editor drawers. Retain code drafts across editor views and guard branch/chat changes with unsaved work.
  • Serialize file saves with rename/delete operations and reconcile optimistic block saves by revision. Restore keyboard focus across route, panel, and drawer changes; clear page errors when navigating to another view.
  • Retire Discover with a redirect to Home, redirect the old registry settings URL to Store, and expose partial registry-discovery failures with retry controls.
  • Update English/Portuguese copy, navigation docs, shared UI components, and browser coverage alongside the changed screens.

The API implementation and shared API contracts are unchanged; this PR requires no database migrations. Project task/report ownership is introduced in #7167.

How did you verify your code works?

At a8d704232, based on origin/main (642f3cab9), bun run fmt, bun run lint (0 errors), bun run check, and bun run knip pass. bun run test --parallel=2 passes all 9,032 unit tests. The default-parallel runs hit intermittent failures in the unchanged chat connection tests; that file also passes independently (72 tests).

All 67 scenarios across the destination-routing, Site Editor drawer, CMS publishing, error recovery, task detail, and task description specs pass: 66 in the combined run, and the CMS publishing scenario on an isolated rerun after an initial timing failure. These browser tests use an isolated local API. The production-backed frontend at localhost:4000 was checked separately for rendering.

Browser coverage includes deferred chat loading, Portuguese topbars at 320px, keyboard navigation, editor draft guards, save/rename races, publish controls, and drawer/error recovery.

Screenshots/Demonstration

Workspace controls and CMS training banner

How to Test

  1. Run this branch's web client against the production API. Visit organization Home, Tasks, and Library, then a project's Home, Reports, and Site Editor; verify navigation scope, page titles, and page actions.
  2. Toggle chat and the main panel, including during a slow load. Verify the controls remain available and reopening a panel retains the page/chat in the URL.
  3. Switch Preview, Content, and Code. Check topbar controls, publishing actions, and console-drawer resizing.
  4. Edit a test file, attempt a branch or chat change, and cancel the unsaved-work prompt. Verify the draft remains; save and rename the file, then reopen it to check the saved content.
  5. Repeat navigation using the keyboard and a narrow viewport. Check that focus follows visible controls and that the CMS training banner still appears for an eligible organization.

@tlgimenes
tlgimenes force-pushed the refactor/route-owned-main branch from 2e7732f to 9fb4b68 Compare September 4, 2026 15:23
@tlgimenes
tlgimenes force-pushed the refactor/route-owned-main branch from 9fb4b68 to 290bbd5 Compare September 14, 2026 13:25
@tlgimenes
tlgimenes changed the base branch from main to feat/project-ownership-api September 14, 2026 13:27
@tlgimenes
tlgimenes added this pull request to stack #7168 September 14, 2026 13:27
@tlgimenes tlgimenes changed the title refactor(web): move workspace composition into routes refactor(web): compose project workspaces through canonical routes Sep 14, 2026
@tlgimenes
tlgimenes force-pushed the refactor/route-owned-main branch from 290bbd5 to f86474b Compare September 14, 2026 14:37
@tlgimenes
tlgimenes removed this pull request from stack #7168 September 14, 2026 15:04
@tlgimenes
tlgimenes changed the base branch from feat/project-ownership-api to main September 14, 2026 15:05
@tlgimenes
tlgimenes force-pushed the refactor/route-owned-main branch from f86474b to 2f380ce Compare September 14, 2026 15:05
@tlgimenes
tlgimenes added this pull request to stack #7171 September 14, 2026 15:05
@tlgimenes tlgimenes changed the title refactor(web): compose project workspaces through canonical routes refactor(web): compose workspaces with the existing API Sep 14, 2026
@tlgimenes
tlgimenes force-pushed the refactor/route-owned-main branch from 2f380ce to 9a0891b Compare September 14, 2026 21:56
@tlgimenes
tlgimenes removed this pull request from stack #7171 September 14, 2026 21:58
@tlgimenes
tlgimenes changed the base branch from main to refactor/workspace-routing September 14, 2026 21:58
@tlgimenes
tlgimenes added this pull request to stack #7203 September 14, 2026 21:58
@tlgimenes tlgimenes changed the title refactor(web): compose workspaces with the existing API feat(web): compose workspace pages and controls Sep 14, 2026
@tlgimenes
tlgimenes force-pushed the refactor/route-owned-main branch from 9a0891b to 7a4f4d4 Compare September 14, 2026 22:27
@tlgimenes
tlgimenes force-pushed the refactor/route-owned-main branch from 7a4f4d4 to d754072 Compare September 14, 2026 23:34
@tlgimenes
tlgimenes force-pushed the refactor/route-owned-main branch from d754072 to 7febf3a Compare September 15, 2026 15:11
@tlgimenes
tlgimenes force-pushed the refactor/route-owned-main branch from 7febf3a to 23a78cf Compare September 15, 2026 15:36
Base automatically changed from refactor/workspace-routing to main September 15, 2026 17:09
@tlgimenes
tlgimenes force-pushed the refactor/route-owned-main branch from 23a78cf to 649ce6d Compare September 15, 2026 17:09
@tlgimenes tlgimenes changed the title feat(web): compose workspace pages and controls feat(web): unify workspace layouts, navigation, and editor controls Sep 15, 2026
@tlgimenes
tlgimenes force-pushed the refactor/route-owned-main branch from 649ce6d to 2d930da Compare September 15, 2026 17:34

This branch has not been deployed

No deployments
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