Skip to content

Desktop app: remote workspace tidy-ups #958

Description

@alexeyzimarev

Left over from #806 (PR #951). Small items with no user-visible effect, batched so they are not lost; each is a short, self-contained change.

  • IChatTranscriptFeed.cs holds four types (FeedStatus, ProjectedLine, FeedRead, IChatTranscriptFeed); the one-type-per-file rule wants them split.
  • QueuedChatMessage.Sender is set from the server's queue item but no view reads it; either show who queued a foreign prompt or drop the property.
  • RemoteTranscriptFeed's once-only log set grows with every distinct message for the life of the feed; a bounded set or a reset on re-establishment keeps it small.
  • SpecialKeyMapper maps both the CSI (ESC [ B) and SS3 (ESC O B) arrow-down sequences, but only the CSI form is under test.
  • MainWindowViewModel.MovedToServer proves a remote-to-local swap by session id for every dropped remote row; it should apply only while the local daemon is registered on the app's server, since that is the only case where a row can legitimately move.
  • RemoteSessionView.axaml.cs disposes its tab-focus subscription on detach and does not re-arm it when re-attached with an unchanged DataContext; fine under the current DataTemplate host, which always changes the context, but fragile.
  • MainWindow.axaml.cs still carries design-document section coordinates in comments; restate the constraints they point at.
  • ChatTabViewModel.QueueSummary counts other users' queued prompts in "N messages queued", so the strip reads as if they were the viewer's own; count foreign rows separately or word them apart.
  • RemoteSessionViewModel publishes its ChatSessionInfo subject on every directory row revision without the DistinctUntilChanged the local session stream has, so an unchanged row re-runs the pane's session handling, RefreshQueue included, for nothing.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions