M28: your editor in the swarm (presence, follow mode, IDE attention) #43

Open
opened 2026-10-02 05:20:27 +00:00 by jhgaylor · 0 comments
Owner

Depends on: #41, #37, #38; #39 for editors on other machines; #42 for "Open here" in the browser

Swarm track: editors. Your real editor (VS Code, Cursor, nvim, Zed if S17 says so) shows up in the swarm. Zooming in follows its cursor live, and what it needs from you lands on the rail.


  • An extension and a plugin (illogical-editor for VS Code and Cursor through Open VSX and the Marketplace, illogical.nvim) connect to the local illogicald, including on the remote host under Remote-SSH and in dev containers.
  • Each one reports with S17's schema, debounced to M23's budget:
    • workspace and project;
    • active file, cursor and selection;
    • the lines around the cursor;
    • diagnostics counts;
    • debugger state;
    • unsaved buffers.
  • An editor presence becomes a pane-like entry: kind editor, a host and a project. It clusters, previews and peeks in the swarm like any pane, but it isn't a PTY.
  • Follow mode: clicking an editor opens a read-only code view that follows its cursor across files.
    • The view shows the selection, diagnostics underlines and the debugger's current line.
    • It reads file contents through the extension only for files open in that editor.
  • Attention reasons (#38):
    • paused: the debugger stopped at a breakpoint;
    • errors: diagnostics went from none to some after a save;
    • conflict: a merge conflict is open;
    • diff: an agent's diff waits for approval.
    • Actions: continue (debugger), open, dismiss, and for diff, accept or reject.
  • illogicald as a Claude Code IDE (if S17 says go):
    • the daemon registers itself the way an IDE does;
    • Claude Code in any pane sends its openDiff to the daemon, which shows it as a diff card (accept or reject) on the rail and in the pane's agent card;
    • when a real IDE is also registered, the user picks which one gets diffs.
  • Open here: hand off to the same file and line in your own editor (a vscode:// or cursor:// link, over Remote-SSH when the file is remote) or in an M27 block. Live co-editing is out of scope.
  • Privacy and roles:
    • each workspace is opt-in (a command in the editor, remembered per folder);
    • the status bar shows when someone is following;
    • following is viewer access, and accepting a diff or continuing a debugger is write access (M12–M14);
    • file contents and cursor context are content: they travel only over the E2E channels, and control sees only that an editor exists.
  • Done when:
    • VS Code on the laptop editing geek over Remote-SSH appears in geek's cluster, and the phone follows its cursor live;
    • hitting a breakpoint puts a card on the rail and Continue works;
    • a Claude Code diff from a terminal pane is accepted from the rail and lands in the file;
    • turning the workspace off removes it from the swarm at once.
**Depends on:** #41, #37, #38; #39 for editors on other machines; #42 for "Open here" in the browser *Swarm track: editors. Your real editor (VS Code, Cursor, nvim, Zed if S17 says so) shows up in the swarm. Zooming in follows its cursor live, and what it needs from you lands on the rail.* -------- - **An extension and a plugin** (`illogical-editor` for VS Code and Cursor through Open VSX and the Marketplace, `illogical.nvim`) connect to the local `illogicald`, including on the remote host under Remote-SSH and in dev containers. - **Each one reports** with S17's schema, debounced to M23's budget: - workspace and project; - active file, cursor and selection; - the lines around the cursor; - diagnostics counts; - debugger state; - unsaved buffers. - **An editor presence** becomes a pane-like entry: kind `editor`, a host and a project. It clusters, previews and peeks in the swarm like any pane, but it isn't a PTY. - **Follow mode:** clicking an editor opens a read-only code view that follows its cursor across files. - The view shows the selection, diagnostics underlines and the debugger's current line. - It reads file contents through the extension only for files open in that editor. - **Attention reasons (#38):** - `paused`: the debugger stopped at a breakpoint; - `errors`: diagnostics went from none to some after a save; - `conflict`: a merge conflict is open; - `diff`: an agent's diff waits for approval. - Actions: continue (debugger), open, dismiss, and for `diff`, accept or reject. - **illogicald as a Claude Code IDE (if S17 says go):** - the daemon registers itself the way an IDE does; - Claude Code in any pane sends its `openDiff` to the daemon, which shows it as a diff card (accept or reject) on the rail and in the pane's agent card; - when a real IDE is also registered, the user picks which one gets diffs. - **Open here:** hand off to the same file and line in your own editor (a `vscode://` or `cursor://` link, over Remote-SSH when the file is remote) or in an M27 block. Live co-editing is out of scope. - **Privacy and roles:** - each workspace is opt-in (a command in the editor, remembered per folder); - the status bar shows when someone is following; - following is viewer access, and accepting a diff or continuing a debugger is write access (M12–M14); - file contents and cursor context are content: they travel only over the E2E channels, and control sees only that an editor exists. - **Done when:** - VS Code on the laptop editing geek over Remote-SSH appears in geek's cluster, and the phone follows its cursor live; - hitting a breakpoint puts a card on the rail and Continue works; - a Claude Code diff from a terminal pane is accepted from the rail and lands in the file; - turning the workspace off removes it from the swarm at once.
Sign in to join this conversation.
No description provided.