Repository navigation
feat(web): per-tab project header, v1 ShellService - #63
Merged
Merged
Conversation
Each Studio tab now names the project its Connect calls act on (ADR 0005). AgentProvider keeps the tab's selected project ID in sessionStorage, keyed by agent host and port, so a reload keeps it while other tabs stay on their own projects, and exposes it with selectProject() on the agent context. The shared transport is built per project, and an interceptor sends X-Stackpanel-Project on every call once a project is selected. Without a selection nothing is sent and the agent uses its current project, as before. No query can show the previous project's data after a switch. Connect-query keys include the transport, so every project has its own cache entries. Queries outside connect-query (the AgentService and REST hooks) are keyed without the project, so selecting a project resets them before the next render. The picker opens the project over REST first and selects it only once the agent has switched, so those refetches already read the new project. It shows the tab's selected project, or the agent's current one until the tab selects one. The header's shell indicator remounts per project, so rebuild output and live shell events don't carry over. Shell status and rebuild use v1 ShellService over the shared transport: GetShellStatus through connect-query, RebuildShell through createClient and for-await over its started/output_line/completed oneof. A ConnectError that ends the stream resolves the rebuild as failed with its message, as the old in-band error event did, instead of throwing. The demo answers GetShellStatus with the v1 field names. With their last callers gone, AgentService's GetShellStatus and RebuildShell are removed along with the four messages only they used, their Go handlers, and RebuildEvent.Timestamp, which only the old handler read. packages/proto/gen was regenerated with buf generate and formatted with nix fmt, and the JSON schemas of the removed messages were deleted. connect_entities_gen.go regenerated with only its lines reordered, so it is unchanged. Refs: stackpanel-thq.8.1.2
cooper (czxtm)
had a problem deploying
to
docs-preview
September 23, 2026 15:43 — with
GitHub Actions
Failure
Contributor
|
Preview |
Contributor
|
Docs preview |
This branch was successfully deployed
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.
Each Studio tab now names the project its Connect calls act on (ADR 0005).
X-Stackpanel-Project. Without a selection nothing is sent, and the agent uses its current project as before.ShellService.AgentServiceGetShellStatus/RebuildShellRPCs are deleted, along with their Go handler, their generated code (regenerated, thennix fmt) and the old hooks.Verification by the implementer, in the devshell:
apps/webreports 98 errors, a normalized set identical to origin/main.go buildandgo vetpass.go test ./internal/agent/...fails onlyTestSetupAcknowledgementRequiresAuthAndProjectEvidence, which already fails on main.stack agentwith two projects:Refs stackpanel-thq.8.1.2, ADR 0005