feat: project visibility, scratch-chat, and session header controls#27
Merged
Conversation
Only show enabled projects on the homepage. Preferences persist server-side in a new project_prefs SQLite table: first run seeds every project enabled, projects discovered later default to hidden, and folders can be registered to pre-approve them. Adds GET/POST /api/projects (list, enable/disable, register, remove, bulk enable-all/disable-all) and a Manage Projects modal with search, select/deselect-all, and per-project toggles. Fixes WCO drag-region swallowing clicks on top menu items.
Add a "Filter projects" toggle (app_settings.project_filter_enabled, default off) to the Manage Projects modal. While off, every project and session shows and new sessions appear immediately like before; when on, the homepage is restricted to enabled projects (allowlist). Removes the auto-enable-on-create hack now that the default no longer hides anything. Adds enable-filter/ disable-filter actions and a filterEnabled flag to /api/projects.
Switch project rows from CSS grid to flexbox with explicit order so they no longer overflow horizontally or misplace the checkbox on mobile WebKit. Add overflow guards to the modal/list so the search box fits, let the list scroll within the sheet while the filter switch and register footer stay fixed, and clean up the Add button styling.
The transient toast duplicated existing behavior: auto-scroll when following and the persistent follow button when scrolled up already cover new-entry notifications.
Adds a draggable, resizable "btw" chat window opened from the composer's bottom action bar. It is backed by a single global pi session persisted in sqlite (app_settings), so the conversation survives reloads and stays in sync across every device in realtime. - Backend: GET /api/btw + POST /api/btw/new endpoints; a btw-changed SSE event broadcast on the global topic so open windows re-sync when the pointer changes on another device. - Frontend: native mini-chat with markdown + tool-call rendering, a runcat working spinner, and a send button that turns into a cancel control while the worker is running. - The action bar is now always visible (not just in git repos) so btw is reachable everywhere; git controls hide themselves when the cwd is not a repo. - Mobile: btw does not auto-reopen and steps aside when the main composer is focused, and streaming content wraps instead of overflowing.
The .pi-git-branch rule sets display:inline-flex, which overrode the [hidden] attribute (equal specificity, author rule wins), so the branch icon + rename pencil stayed visible in non-git directories even though the hidden attribute was set. Add a .pi-git-branch[hidden] override, matching the existing pattern used for .pi-git-bar, .pi-git-caret, etc.
The left tree-status, middle git/btw action bar, and right scratchpad footer each had different paddings/heights, so their top divider lines landed at different vertical positions across the columns. Give all three a shared --session-footer-h with vertically-centered, border-box content so the bottom divider reads as one continuous line.
Move the tree-collapse and new-session controls into the session header, add a sidebar close button for mobile, and tweak user-message backgrounds for nord/dracula themes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
projectsendpoints (internal/server/projects.go) plus index-page filtering UI.internal/server/btw.go,web/src/session/live/btw-popup.js), and a git footer in the composer.Testing
make test(vitest + go test) — Not run (not requested)