Repository navigation
rooms: every FDE has a standing conversation with the project's agent - #134
Merged
Merged
Conversation
The sidebar places the viewer's home room, <project>--<handle>, first under the
project's name and opens it on the project's first visit (also when whoami lands
after the rooms). The new-room and add-an-agent selects start on the project's
member, read from GET /v1/projects/{p}. The add-an-agent dialog no longer warns
that there is no rollback point when the snapshot is unticked.
Spec: sail-project-dm.
…chosen
The viewer's home room id now comes from sail (home_room on GET
/v1/projects/{p}), the one place it is derived, so a handle a room id cannot
carry verbatim still finds its room; the room must also be the viewer's, so a
room someone else filed under that id is not taken for it. The demo gateway
assigns a created room to its creator, as sail does.
Create a room: the project's member and the agent list preset the agent select
only until the viewer picks one, so a late member read no longer turns an
explicit "No agent" into a full-access agent.
Spec: sail-project-dm.
Spec: sail-project-dm.
A surface now holds the project it reads (catalogStore.retainProject, the run-hold pattern), and refreshAll asks again for every held project not yet read, so a transient failure, or a sign-in change, no longer leaves the home room unrecognized and the agent selects on their fallback. The folded-handle fixture follows sail's home--<sha256> id. Spec: sail-project-dm.
…t only after a failure
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.
Spec:
sail-project-dm. Pairs with standardapplied/sail#314. There,sail project applycreates each FDE's home room, andGET /v1/projects/{p}names the project'smemberand the reader'shome_roomid.What changes
homeRoomOf(rooms, project, id, handle)inrooms.tsfinds the viewer's home room. The id comes from sail'shome_room, so it is derived in one place, including for handles sail has to fold. The room must also be assigned to the viewer (fromwhoami.fde), so a room someone else filed under that id is not taken for it.ChatRoomPanelike any other room without a spec. A project with no home room (an older sail, or a box that never applied the project) shows the sidebar as it is today.catalogStorereads each project once per connection withloadProject, through the newgateway.project(name).projectMemberandhomeRoomIdread the result. A failed read is asked again, andresetforgets it. TheuseProjectMemberanduseHomeRoomIdhooks expose them.claude-code. The member and the agent list only preset it until the viewer picks one, so a late read never replaces an explicit "No agent".EngageDialog, which now takesproject, starts its agent, model and access on the member until the engineer changes one of them.Tests
rooms.test.ts: the id comes from sail, the room must be the viewer's, and a room filed in another project does not count.RoomList.test.tsx: a late member or agent list leaves "No agent" chosen. This test fails before the fix.RoomsScreen.test.tsx: the first visit, the whoami race, and a remembered choice.catalogStore.test.ts: the member and home room id are read once and forgotten on reset.EngageDialog.test.tsx: the member preset, and a late member never overriding a choice.bun test: 1410 pass.bun run typecheckis clean. The Rust side is unchanged.