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

umputun / agterm / 29206331390
98%

Build:
DEFAULT BRANCH: master
Ran 12 Jul 2026 07:45PM UTC
Jobs 1
Files 63
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

12 Jul 2026 07:42PM UTC coverage: 97.777% (+0.001%) from 97.776%
29206331390

push

github

web-flow
feat: promote split survivor into the main pane on primary exit (#121)

* feat: promote split survivor into the main pane on primary exit

When the primary (left) pane's shell exits and a split pane is alive,
closePrimaryPane now MOVES the surviving split pane into the main `surface`
slot instead of leaving it parked in `splitSurface`:
- survivor.promoteToPrimaryPane() flips its split-role flag (new TerminalSurface
  method) so its pwd/title reports route to the main fields
- surface = survivor, splitSurface = nil, splitFocused = false, hasSplit = false
- splitCwd/splitTitle/splitForegroundCommand migrate up to currentCwd/oscTitle/
  foregroundCommand, then the split fields clear

The collapsed session is now indistinguishable from a fresh single pane, so it
is addressed as the MAIN/left pane everywhere: session.type/session.text --pane
left (and omitted) reach it, session.focus errors (no split), {AGT_PANE} reports
left, and a later session.split opens a fresh RIGHT pane beside the survivor
instead of displacing it. This makes the {AGT_PANE} round-trip honest (left maps
to a pane session.type can reach), superseding the interim "promoted survivor
reports right" contract.

Docs updated to match (CustomCommand.pane, keymap.md, control-api.md); the
promoted-survivor e2e now expects left; host-free promotion test rewritten.

Review hardening (post-cherry-pick correctness fixes):
- closeSplitPane: a promoted survivor keeps the split pane's onExit, so its own
  exit routed here; tightened the guard to close the session (not collapse a
  nonexistent split) when there is no genuine two-pane split — fixes a
  zombie-session leak on the promoted pane's own exit.
- makeSplitSurface.onFocusChange now sets splitFocused = view.isSplitPane (was
  hardcoded true), so a promoted survivor no longer re-raises splitFocused —
  which otherwise masked its migrated title and mis-routed focus after a re-split.
- focusedCwd/focusedOscTitle guard on splitFocused && splitSurfa... (continued)

63 of 63 new or added lines in 3 files covered. (100.0%)

1 existing line in 1 file now uncovered.

4971 of 5084 relevant lines covered (97.78%)

5913752.71 hits per line

Coverage Regressions

Lines Coverage ∆ File
1
71.83
-0.7% agtermCore/Sources/agtermCore/TerminalZoom.swift
Jobs
ID Job ID Ran Files Coverage
1 29206331390.1 12 Jul 2026 07:45PM UTC 63
97.78
GitHub Action Run
Source Files on build 29206331390
  • Tree
  • List 63
  • Changed 6
  • Source Changed 5
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #29206331390
  • 9edcfc25 on github
  • Prev Build on master (#29182352001)
  • Next Build on master (#29206745005)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc