Skip to content

feat(web): move project management into Settings; home becomes pure overview#254

Merged
mgabor3141 merged 1 commit into
feat/local-host-multihostfrom
feat/settings-projects-tab
May 30, 2026
Merged

feat(web): move project management into Settings; home becomes pure overview#254
mgabor3141 merged 1 commit into
feat/local-host-multihostfrom
feat/settings-projects-tab

Conversation

@mgabor3141
Copy link
Copy Markdown
Contributor

Closes #250.

Stacked on #253 (feat/settings-shell) → #248. Review/merge the stack bottom-up; this will be rebased onto main once the parents land. Diff below is the manage-list + home cleanup only.

Summary

Second slice of the home/settings restructure (#250): move project management into Settings › Projects and make home a pure activity overview.

Changes

  • Settings › "Your projects" manage-list: a unified, ordered list of every configured project (local + peer references, matching sidebar order). Management-only — drag-to-reorder (persists via updateProjects) and remove (× → removeProject / removePeerReference). No navigation, no launch button. Sits at the top of the modal, above Discovered / Add-local-path.
  • Reference rows lead with the colored PeerLabel chip (status-aware, dims when the peer is offline); local rows get none. The host suffix and the "Remove reference" tooltip further distinguish them.
  • Home loses its Projects section entirely (list, reorder, remove, "+ Add project"). The ProjectRow component and drag machinery move out of home.tsx.
  • Contextual empty state on home: no projects → "No projects yet. Add a project" CTA that deep-links to ?settings; projects-exist-but-quiet → "Nothing active right now."
  • Dead .home-project-* / .home-add-project CSS removed; ported to .mp-configured-*.

Testing

  • 424 web tests pass; lint/build clean.
  • Verified in mock mode: settings shows the manage-list (drag handles + counts + remove) above the add flows; home renders Activity-only with the Projects section gone; ?settings open preserves other query params (mock=1).

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented May 29, 2026

Greptile Summary

Moves project management (drag-to-reorder, remove) from the home dashboard into a new ConfiguredProjectsSection at the top of the Settings modal, making the home page a pure activity overview with a contextual empty state.

  • home.tsx: Drops the entire Projects section, ProjectRow component, and all drag machinery; replaces with a two-branch empty state — "No projects yet" CTA (deep-links to ?settings) when no projects exist, "Nothing active right now" when projects exist but are quiet.
  • settings.tsx: Adds ConfiguredProjectsSection + ConfiguredProjectRow above the existing Discovered / Add-local-path flows; drag-reorder and remove logic is a faithful port of the deleted home code, now with PeerLabel chips on reference rows and a hover-visible row background.
  • styles.css: Dead .home-project-* / .home-add-project rules removed; new .mp-configured-* rules added with equivalent behaviour including the touch @media (hover: none) override for the remove button.

Confidence Score: 5/5

Safe to merge — the change is a clean relocation of project management UI with no logic changes to the underlying store operations.

The drag-reorder and remove logic is a faithful, line-for-line port from home.tsx to settings.tsx with no behavioral changes. The home page simplification is additive (contextual empty state) and the deleted code has no other callers. CSS cleanup precisely mirrors the component rename. No data flow, API calls, or store mutations were altered.

No files require special attention; the stale file-header comment in settings.tsx is the only item worth addressing before merge.

Important Files Changed

Filename Overview
apps/gmux-web/src/home.tsx Projects section removed; home is now a pure activity overview with a contextual empty state pointing to Settings. Drag/reorder/remove machinery cleanly deleted.
apps/gmux-web/src/settings.tsx New ConfiguredProjectsSection + ConfiguredProjectRow added at top of modal; drag/reorder/remove logic ported faithfully from home.tsx. File-header comment is now stale — still says reorder/removal live on the home dashboard.
apps/gmux-web/src/styles.css Dead .home-project-* rules removed, replaced by .mp-configured-* equivalents with correct touch media query and hover-visible remove button.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[User opens Home] --> B{Has activity?}
    B -- Yes --> C[Show Waiting / Active / Recent sections]
    B -- No --> D{Has projects?}
    D -- Yes --> E[Show: Nothing active right now]
    D -- No --> F[Show: No projects yet — Add a project CTA]
    F -->|onClick| G[Open Settings Modal]

    H[User opens Settings Modal] --> I[ConfiguredProjectsSection\nYour projects: drag-to-reorder + remove]
    I --> J[PeerReferencesSection\nFrom other hosts]
    J --> K[DiscoveredSection\nDiscovered projects]
    K --> L[Add local path section]
Loading
Prompt To Fix All With AI
Fix the following 2 code review issues. Work through them one at a time, proposing concise fixes.

---

### Issue 1 of 2
apps/gmux-web/src/settings.tsx:13-15
The file-header comment still says reorder/removal live on the home dashboard, but this PR is precisely the slice that moves them here. Future readers will get the opposite of the truth.

```suggestion
// A tab bar (Projects / Hosts) lands in a later slice. The
// configured-project manage-list (reorder + remove) is now at the
// top of the modal; the home dashboard is a pure activity overview.
```

### Issue 2 of 2
apps/gmux-web/src/home.tsx:27-28
`folders.value` is read a second time to derive `hasProjects`, even though the result was just stored in `foldersVal` on the line above. Using `foldersVal.length` avoids the redundant signal read.

```suggestion
  const foldersVal = folders.value
  const hasProjects = foldersVal.length > 0
```

Reviews (4): Last reviewed commit: "feat(web): move project management into ..." | Re-trigger Greptile

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 29, 2026

Try this PR

curl -sSfL https://gmux.app/install-pr.sh | sh -s -- 254

Built from 5a95681 — feat(web): move project management into Settings; home becomes pure overview
Requires GitHub CLI with auth. Artifacts expire after 7 days.

@mgabor3141
Copy link
Copy Markdown
Contributor Author

@greptile review

Base automatically changed from feat/settings-shell to feat/local-host-multihost May 30, 2026 08:58
@mgabor3141 mgabor3141 force-pushed the feat/settings-projects-tab branch from 8783e9e to 5a95681 Compare May 30, 2026 09:01
@mgabor3141 mgabor3141 merged commit a5bb7fc into feat/local-host-multihost May 30, 2026
7 checks passed
@mgabor3141 mgabor3141 deleted the feat/settings-projects-tab branch May 30, 2026 09:03
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