feat(ui): added grouping chat sessions into ui#5267
Open
54x1 wants to merge 5 commits into
Open
Conversation
Author
- Shows a '+' button on project folder headers to create a new chat directly inside that project folder - Button appears on hover, styled in project accent color - Reuses existing ody-pending-folder sessionStorage flow for folder assignment on session creation
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
Added a database-backed project system that lets users organize chat sessions into named project groups. Introduces a new
ProjectSQLAlchemy model with owner-scoped isolation, kebab-case slug generation, and idempotent migration logic. A newroutes/project_routes.pymodule exposes full REST API endpoints: list, create, update, delete, session assignment/removal, and project detail lookups that return associated sessions. The project router is registered inapp.pyand the migration runs on startup.Target branch
dev, notmain. All PRs land indev;mainis curated by the maintainer at each release. If your PR is onmainby accident, click "Edit" on this PR and change the base.Linked Issue
Fixes #5265
Type of Change
Checklist
devdocker compose uporuvicorn app:app) and verified the change works end-to-end. Type-checks and unit tests are not enough.How to Test
docker compose uporuvicorn app:app:app).GET /api/projects/— should return an empty[]on a fresh database.POST /api/projects/with body{"name": "My App", "description": "Testing"}— should return a project object with an id, name, and a kebab-caseslug("my-app").GET /api/projects/— should now include the newly created project.PATCH /api/projects/<id>with{"name": "Renamed App"}— verify the project name updated.POST /api/projects/<id>/assignwith{"session_id": "<some-session-id>"}— verify the session is now linked to the project.GET /api/projects/<id>— verifysession_countincreased and the session appears in the sessions list.POST /api/projects/<id>/assignwith{"session_id": "<some-session-id>", "project_id": null}— verify the session is removed from the project.DELETE /api/projects/<id>— verify the project is deleted.GET /api/projects/— verify the deleted project no longer appears.WebUI
Click arrow and add to new folder
Visual / UI changes — REQUIRED if you touched anything that renders
Anything that changes what the UI looks like — buttons, icons, padding, colors, fonts, spacing, layout, CSS, HTML, SVG, or any
static/js/module that draws to the DOM — needs all of the following. PRs that change rendering without these WILL be closed.--red,--fg,--bg,--card,--border, etc.) — do not introduce new color values, font sizes, or spacing units.static/index.html) or plain text.Fira Code) for primary UI text. Don't override.Screenshots / clips