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

umputun / agterm / 35543547262
93%

Build:
DEFAULT BRANCH: master
Ran 20 Sep 2026 11:10PM UTC
Jobs 1
Files 161
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

20 Sep 2026 11:04PM UTC coverage: 93.198% (+0.003%) from 93.195%
35543547262

push

github

web-flow
feat(remote): mirror a session's context to the Mac that attached it (#634)

* feat(remote): mirror a session's context to the Mac that attached it

an attached row never showed its origin's title-bar context, because the presentation stream had no frame for it and setContext published nothing to the hub. The stream gains a context frame and an optional snapshot field, and setContext publishes on a real change. An older viewer skips the unknown kind and an older origin never sends it, so the protocol version stays at 1.

the viewer keeps the mirrored value in Session.mirroredContext, an observed property outside the observation-ignored remotePresentation, so the title bar redraws. The title bar and the tree's context read effectiveContext, the local value when one is set and the mirrored one otherwise. The mirror keeps updating under a local value, so clear on an attached row removes the local override and shows the origin's latest context. Leaving connected withdraws the mirror and keeps a local value. The mirror path never saves, and `tree.changed` follows the shown value.

attach does not seed the context from zmx.tree, which would turn the origin's label into a local override that wins forever. Flag, watermark and name stay unmirrored.

* fix(remote): validate a mirrored context and list context on every mirroring surface

review fixes for the context mirror. `applyRemoteContext` stored the frame's string unchecked, the one context inlet that skipped `Session.validateContext`, so a far side that does not follow the contract could put a multi-line or 250 KB value into `tree`. It now validates as the snapshot decoder does: an invalid value becomes nil and a valid one is trimmed.

two test gaps closed. The disconnect test asserted only after the local clear, so it passed even if the drop erased the local context; it now asserts the local value right after the stream goes. A hosted test renders the title bar in normal and compact modes with only a mir... (continued)

26 of 27 new or added lines in 8 files covered. (96.3%)

12921 of 13864 relevant lines covered (93.2%)

2943393.88 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
95.71
-0.52% agtermCore/Sources/agtermCore/RemotePresentationClient.swift
Jobs
ID Job ID Ran Files Coverage
1 35543547262.1 20 Sep 2026 11:10PM UTC 161
93.2
GitHub Action Run
Source Files on build 35543547262
  • Tree
  • List 161
  • Changed 12
  • Source Changed 12
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #35543547262
  • dc813ed5 on github
  • Prev Build on master (#35542263916)
  • Next Build on master (#35550970648)
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