Skip to content

feat(web): personal/team project labels + collapse chat for shared non-owners - #6294

Merged
lefarcen merged 2 commits into
feat/workspace-teamfrom
ui/workspace-sidebar-and-chat-default
Jul 31, 2026
Merged

feat(web): personal/team project labels + collapse chat for shared non-owners#6294
lefarcen merged 2 commits into
feat/workspace-teamfrom
ui/workspace-sidebar-and-chat-default

Conversation

@lefarcen

Copy link
Copy Markdown
Contributor

Why

On the workspace-team home rail, "草稿 / 全部项目" no longer match how the product talks about personal vs team project lists. Separately, members opening someone else's shared project from 团队项目 land with the full chat pane open even though they are read-only viewers — the design should be primary by default.

What users will see

  • Home left sidebar: 草稿 → 个人项目, 全部项目 → 团队项目 (English: Drafts → Personal projects, All projects → Team projects), including tooltips, page headings, and related invite/move copy that named those sections.
  • Opening a shared team project you did not create collapses the chat pane by default (workspace focus). Owners and personal projects still open with chat visible. If the member expands chat, it stays open for that visit.

Surface area

  • UI — new page / dialog / panel / menu item / setting / empty state in apps/web or apps/desktop (including Electron menu bar)
  • Keyboard shortcut — new or changed
  • CLI / env var — new od subcommand or flag, new tools-dev / tools-pack flag, or new OD_* env var
  • API / contract — new /api/* endpoint, new SSE event, or changed shape in packages/contracts
  • Extension point — new entry under skills/, design-systems/, design-templates/, or craft/
  • i18n keys — copy updated for existing keys across all 19 locales (entry.navDrafts, entry.navAllProjects, workspaceSwitcher.*Tooltip, plus related invite/move strings)
  • New top-level dependency
  • Default behavior change — shared non-owner project opens start with chat collapsed
  • None

Screenshots

N/A in this environment (copy + default focus-mode behavior). Verify on workspace-team dogfood: sidebar labels + open a teammate's shared project from 团队项目 and confirm chat starts collapsed.

Bug fix verification

Validation

  • pnpm --filter @open-design/web typecheck
  • pnpm exec vitest run -c vitest.config.ts tests/components/ProjectView.shared-non-owner-chat-default.test.ts (5 passed)

Notes

  • Route ids (/drafts, /all-projects) and internal view keys are unchanged — display labels only.
  • Default collapse waits for confirmed collab status (syncState past local_only and !isOwner) so owners do not flash focus mode during the status-unknown window.

…non-owners

Workspace home left rail now labels personal vs team project lists
("Personal projects" / "Team projects", 个人项目 / 团队项目) across all
locales. Opening a confirmed shared team project that the viewer did not
create defaults the chat pane to collapsed so the design is primary;
owners and personal projects keep chat open, and expanding chat stays
sticky for the visit.
@lefarcen
lefarcen requested a review from PerishCode July 31, 2026 03:13
@lefarcen lefarcen added size/M PR changes 100-300 lines risk/medium Medium risk: regular code changes type/feature New feature labels Jul 31, 2026

@PerishCode PerishCode left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new default-collapse path has one ownership-resolution regression that can collapse chat for the project owner. The locale changes and helper truth table otherwise match the stated personal/team terminology and basic shared-project cases.

🔁 Powered by Looper · runner=reviewer · agent=codex · An autonomous AI dev team for your GitHub repos.

Comment thread apps/web/src/components/ProjectView.tsx Outdated
Default-collapsed chat was latching on raw isOwner, so a catalog-confirmed
owner whose collab status was still missing ownerMemberId looked like a
non-owner and permanently collapsed chat. Expose isEffectiveOwner and
isSharedNonOwner from useProjectCollab (catalog + session-created + status)
and gate the sticky collapse path on the confirmed non-owner signal only.
@lefarcen
lefarcen requested a review from PerishCode July 31, 2026 03:24

@PerishCode PerishCode left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lefarcen I verified the personal/team project label updates across all 19 locales and the shared-project chat default, including the follow-up ownership fix that uses positive catalog/status evidence so owners are not incorrectly collapsed during status latency. Web typecheck and the repository guard pass, and the focused collaboration and ProjectView coverage is green. Nice work closing the earlier ownership edge case with a clear project-level signal and regression coverage.

🔁 Powered by Looper · runner=reviewer · agent=codex · An autonomous AI dev team for your GitHub repos.

@lefarcen
lefarcen merged commit 6801969 into feat/workspace-team Jul 31, 2026
14 of 18 checks passed
@lefarcen lefarcen mentioned this pull request Aug 2, 2026
9 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk/medium Medium risk: regular code changes size/M PR changes 100-300 lines type/feature New feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants