Repository navigation
Open a remote session's chat and terminal in the desktop app - #951
Conversation
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…#806) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ap (#806) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…pts (#806) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The server clamps the source PTY to the smallest viewer, so an off-screen pane reporting its unmeasured constructor size shrinks the agent for every viewer. A release is sent only for a viewport that was reported, and a superseded subscribe leaves the group alone while a newer attach is receiving on the same connection. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The access banner occupies its own row above the panes, so an Offline lease reads over the transcript it already has rather than blanking it. A refusal still replaces the panes with the note: Denied, a session that has not started, and an agent that moved to this machine all hide. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Every hub refusal of the tail is terminal for the run, not just the not-authorized one: a stream method the hub does not have would otherwise be retried on the ladder forever behind an unexplained empty pane. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Only the host-stop test passes one, a single immediate retry, so its bound measures the tail ending rather than the client's default 0/2/10/30s wait. Every other lane keeps that default. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
A watch that fires as it is armed swaps the workspace and arms the next one while the outer arming is still returning, so the arming that stands must be the one whose workspace is open. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The CLI publishes NativeAOT and references them, so the analysers belong where a reflective serializer path would be written rather than only where it is linked. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
PR Summary by QodoOpen remote sessions with live chat and terminal workspaces
AI Description
Diagram
High-Level Assessment
Files changed (53)
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f11c6c0376
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Code Review by Qodo
1.
|
A remote seed reads Ok and empty before its run lands, so the pane is already Reading when a refusal arrives: the gate is the rows on screen, not the phase. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…806) Deciding the release after the unsubscribe returned could take back a viewport the next attach had reported meanwhile. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Follow-ups from the branch review, filed as issues so they outlive the PR: #954 (a send before the seed strands its queue row), #955 (terminal subscription lifecycle), #956 (attachments-only queued row is blank), #957 (silent hub denials, needs a kcap-server contract change), #958 (batched tidy-ups). |
A refused feed answers every later poll with an empty Ok, which is not a recovery; and a verdict reaching the feed after its run was stopped belongs to that run, not the current one. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…#806) A transient registry snapshot drops the row and the next refresh restores the same live session; the host withdraws its verdict then and the chat recovers, so the terminal must too. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…#806) The registry can list the twin before it knows its session id; the proof completes when the id arrives, so the dropped row's id is held against the twin's later revisions until the local row returns. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The pane polls, so a verdict answered once is gone by the next poll; the feed now repeats it until a new attempt seeds, and the pane clears its note on any read that is not a refusal, which keeps a recovered local file readable. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ing (#806) A queued revision can describe a twin the directory has since dropped, with the local row back; and a swap the host cannot complete must not spend the watch. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Closes #806 — AI-2554
What & why
A remote session in the desktop app's server list needs a workspace behind it. This adds one with a Chat tab and a read-only Terminal tab sourced from the server rather than the local daemon: the transcript is seeded from the session detail endpoint and tailed over the Eventuous stream subscription, prompts and special keys reach the agent through the hub, server-queued prompts show as queue rows, and the terminal replays the agent's PTY output and then follows it live. A session that moves between a local daemon and the server rebinds in place instead of reading as ended. The server-side items 1 and 2 of AI-2537 stay open.
Where to look
RemoteTerminalViewModelreports the viewport only while the Terminal tab is showing and releases it when the tab hides: the server takes the minimum size across viewers, so an unmeasured hidden pane would clamp the agent's PTY for everyone.MainWindowViewModel.Rebinddemands the session-id proof in both directions; a registry row without one keeps the workspace it has.Verification
dotnet build Capacitor.slnx: 0 warnings, on the branch and on the branch merged with current main.dotnet publish src/Capacitor.Cli/Capacitor.Cli.csproj -c Release: no IL2026/IL3050 warnings.🤖 Generated with Claude Code