• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

umputun / agterm / 33599019446
97%

Build:
DEFAULT BRANCH: master
Ran 02 Sep 2026 06:33AM UTC
Jobs 1
Files 119
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

02 Sep 2026 06:28AM UTC coverage: 97.443% (-0.2%) from 97.614%
33599019446

push

github

web-flow
feat(zmx): attach a session running on another Mac (#524)

Adds two control commands. `zmx tree [HOST]` lists the sessions that can be
attached to, across every open window; `zmx attach HOST SESSION` opens one of
them here, split included, marked remote in the sidebar. Each attach imports one
session; whole-workspace teleport is out of scope.

The host is optional, and that is the whole design. Bare, `zmx tree` builds this
app's own attachable sessions from one walk of its open stores. With a host, it
sshes once and runs that same bare form on the far side, which answers with a
single already-joined document. So the far-side operation is an ordinary public
command a user can run and test on its own, there is no second internal-export
noun, and nothing is composed across two remote calls.

A remote pane is an ordinary command surface whose command is ssh. There is no
new surface kind and no remote daemon ownership: closing locally ends this side's
connection and the far-side processes keep running. `Session.remoteHost` is
immutable and set at construction, since `addSession` saves and a marker written
afterwards would let one snapshot reach disk carrying the ssh command.
`locallyManagedPaneIdentities` is the single ownership predicate, empty for a
remote session, so no local claim is invented for a daemon on another machine.

Rows are flat and carry windowID/windowName and workspaceID/workspaceName beside
the session's own id and name: show the names, group by the ids, because neither
rename path nor addWorkspace enforces uniqueness, so two windows called `main`
and a `dev` workspace in each are ordinary and grouping by name merges them. Each
row also carries the session's context and per-pane foreground, so a picker can
say what it is about to attach to without a second ssh.

A session is offered only when its store reports backedByZmx and every pane
resolves to a claimed, running daemon under an agterm name. These are eligibility
rules rather than ra... (continued)

247 of 270 new or added lines in 17 files covered. (91.48%)

32 existing lines in 4 files now uncovered.

9602 of 9854 relevant lines covered (97.44%)

4140999.36 hits per line

Uncovered Changes

Lines Coverage ∆ File
15
79.73
agtermCore/Sources/agtermCore/RemoteTree.swift
6
0.0
0.0% agtermCore/Sources/agtermCore/ControlActionsDefaults.swift
1
94.74
0.07% agtermCore/Sources/agtermCore/WindowLibrary.swift
1
97.01
-0.16% agtermCore/Sources/agtermctlKit/SocketClient.swift

Coverage Regressions

Lines Coverage ∆ File
27
94.74
0.07% agtermCore/Sources/agtermCore/WindowLibrary.swift
3
99.49
0.0% agtermCore/Sources/agtermCore/AppStore.swift
1
99.72
0.0% agtermCore/Sources/agtermCore/AppStore+PendingClose.swift
1
97.72
0.0% agtermCore/Sources/agtermCore/ControlDispatcher.swift
Jobs
ID Job ID Ran Files Coverage
1 33599019446.1 02 Sep 2026 06:33AM UTC 119
97.44
GitHub Action Run
Source Files on build 33599019446
  • Tree
  • List 119
  • Changed 17
  • Source Changed 17
  • Coverage Changed 16
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #33599019446
  • 37699fc8 on github
  • Prev Build on master (#33490419939)
  • Next Build on master (#33602250286)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc