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

futpib / slopd
86%

Build:
DEFAULT BRANCH: master
Repo Added 22 Mar 2026 09:28AM UTC
Files 8
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

LAST BUILD ON BRANCH master
branch: SELECT
CHANGE BRANCH
x
  • No branch selected
  • copilot/fix-ci
  • copilot/fix-failing-tests
  • copilot/fix-test-failures-ci
  • fix-killmode-process
  • fix/reconcile-false-positive
  • master

19 Jun 2026 12:34PM UTC coverage: 85.574% (+0.02%) from 85.552%
27841715084

push

github

futpib
Restore panes from the session's launch cwd, not the drifted pane path

Restore launched `claude --resume <id>` in the manifest's working_dir, which is #{pane_current_path} — the agent's current shell dir. That drifts as the agent `cd`s, so it isn't necessarily the cwd Claude was launched in. But `claude --resume` resolves a session from the project dir of its LAUNCH cwd (~/.claude/projects/<encoded-cwd>/<id>.jsonl); when the two differ (e.g. session 245f8647 launched in /home/claude but the agent cd'd to /home/claude/code/slopd), restore launched in the wrong project, claude couldn't find the session, started a fresh one, and the pane died.

Persist transcript_path in the manifest (slopd already tracks it per pane via @slopd_transcript_path) and, at restore, read the launch cwd from the transcript's first record (its recorded `cwd`) and launch from there. Fall back to working_dir when no transcript is known, so behaviour is unchanged for panes without one.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

18 of 19 new or added lines in 2 files covered. (94.74%)

167 existing lines in 3 files now uncovered.

4609 of 5386 relevant lines covered (85.57%)

1993800.68 hits per line

Relevant lines Covered
Build:
Build:
5386 RELEVANT LINES 4609 COVERED LINES
1993800.68 HITS PER LINE
Source Files on master
  • Tree
  • List 8
  • Changed 4
  • Source Changed 3
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
27841715084 master Restore panes from the session's launch cwd, not the drifted pane path Restore launched `claude --resume <id>` in the manifest's working_dir, which is #{pane_current_path} — the agent's current shell dir. That drifts as the agent `cd`s, so it isn... push 19 Jun 2026 06:17PM UTC futpib github
85.57
27648520765 master Document that the pending restore survives daemon restarts Note the <manifest>.pending marker so the pending hold isn't lost on a crash / restart / package update in the pending window. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> push 16 Jun 2026 09:16PM UTC futpib github
85.55
27644640165 master Update backup_panes comment: idle shell no longer adopted The session-level @slopd_managed inheritance that put the idle shell in the pane list is fixed; the session-id filter now only guards still-booting panes. Co-Authored-By: Claude Opus 4.8 ... push 16 Jun 2026 08:07PM UTC futpib github
85.54
27503949092 master Snapshot only resumable (session-id-bearing) panes A live end-to-end test with real claude surfaced that the manifest also recorded the tmux session's idle shell pane. That pane is in managed_panes because `#{@slopd_managed}` inherits the session... push 14 Jun 2026 03:50PM UTC futpib github
85.3
27502745451 master Document backup/restore across reboots in the readme Add a "Backup and restore" section explaining the reboot gap (tmux server and Claude processes are lost, transcripts survive), how snapshots and the fresh-session restore gate work, and the bes... push 14 Jun 2026 03:05PM UTC futpib github
85.47
27026771549 master fix: resolve relative `run --start-directory` against slopctl's cwd A relative `-c`/`--start-directory` (e.g. `.`) was forwarded to slopd verbatim, expanded there, and handed to tmux. Because slopd is a long-lived daemon with its own working dire... push 05 Jun 2026 04:27PM UTC futpib github
86.68
26988541275 master feat: fail `run` fast with a clear message when the executable is missing `tmux new-window <missing>` returns a pane id even when the command can't be found, so a typo'd or uninstalled `[run] executable` only surfaced later as the generic "pane %... push 05 Jun 2026 12:52AM UTC futpib github
87.17
26985792068 master fix: fall back instead of panicking when XDG_RUNTIME_DIR is unset runtime_dir() did dirs::runtime_dir().expect(...), so a missing XDG_RUNTIME_DIR crashed slopd/slopctl with a backtrace — including the `slopctl hook` path that runs inside containe... push 04 Jun 2026 11:32PM UTC futpib github
86.55
26982693153 master feat: add --config and --socket flags to run isolated slopd instances slopd's config-file location and control-socket path were only derivable from XDG_CONFIG_HOME / XDG_RUNTIME_DIR, so running a second instance meant juggling env vars. Add first... push 04 Jun 2026 10:15PM UTC futpib github
87.02
26961905873 master test: cover `slopctl run` failing when a pane dies before any hook `slopctl run` waits for a freshly-spawned pane to become ready and fails if the pane dies first. The existing failure test only covered the SessionStart → SessionEnd path, which s... push 04 Jun 2026 03:34PM UTC futpib github
87.07
See All Builds (66)
  • Repo on GitHub
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