Repository navigation
Conversation
There was a problem hiding this comment.
This looks sound to me; I found nothing that should block it. I read through the moved modules and the new choose(). Its health check reads the same global.servers.health entry that home.server.health returned before. The empty-selection early return matches what the Home selection machine already did, and Home still adds projects through home.project.add. Nothing in src, e2e or test-browser still imports the old home/projects/* paths. tsc -b in packages/app passes, and the unit tests under src/shell/projects, src/home and consumers.test.ts pass (73/73).
The fallback in choose() that adds projects through addProjects when no callback is passed isn't used by anything in this PR, so its first caller in the follow-up PR will be what tests it.
Public API: unchanged; only internal module paths in packages/app move.
|
Could a maintainer please approve the pending fork CI workflows for this PR? The required checks are waiting for approval ( |
Issue for this PR
Part 2 of the split requested in #60867; design context: #60241. Independent of the session-index PR #62845.
Type of change
What does this PR do?
Move Home's reusable project menu, actions, import state machine and directory helpers into
shell/projects. Home, Side tabs and project settings now import the shared modules. Directory selection joins the existing actions controller with the same authentication and selection flow.The visible menu and close behavior stay unchanged. The later Side bar change will reuse these actions.
How did you verify your code works?
On this branch alone: application typecheck, four import state-machine tests, ten Chromium Home/project regressions and
bun run lint:changed upstream/dev. The combined follow-up passed the full 33-task check and 102 Home/tabs regressions.Windows validation uses an equivalent temporary import for the repository's
custom-elements.d.tssymlink; it is not committed. Upstream fork CI awaits maintainer workflow approval (action_required).Checklist