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

futpib / slopd
81%
master: 85%

Build:
Build:
LAST BUILD BRANCH: fix/reconcile-false-positive
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 copilot/fix-test-failures-ci
branch: copilot/fix-test-failures-ci
CHANGE BRANCH
x
Reset
  • copilot/fix-test-failures-ci
  • copilot/fix-ci
  • copilot/fix-failing-tests
  • fix-killmode-process
  • fix/reconcile-false-positive
  • master

29 Mar 2026 07:13PM UTC coverage: 81.166%. First build
23716887926

Pull #23

github

Copilot
fix: guard Run handler from resetting pane state that a concurrent hook already advanced

A race condition caused slopctl send to wait indefinitely (60 s) for
a pane to become ready after slopctl run returned.

After `tmux new-window` returns, mock_claude is already running in the
new pane. The Run handler then inserts the pane into managed_panes
(making it eligible for hooks) and awaits two tmux set-option calls
before finally calling set_pane_detailed_state(BootingUp). During
those async yield points a concurrent Hook handler task (processing a
`slopctl hook SessionStart` connection from mock_claude) can run and
set the state to Ready. When the Run handler resumes it then calls
set_pane_detailed_state(BootingUp) and resets the state, leaving
slopctl send waiting indefinitely for a Ready event that never comes.

Fix: read the current in-memory state under the mutex lock and skip
the set_pane_detailed_state(BootingUp) call if a hook has already
advanced the state beyond BootingUp. PaneState::new() already
initialises detailed_state to BootingUp, so the pane is correctly
initialised regardless.

Agent-Logs-Url: https://github.com/futpib/slopd/sessions/7e1728d8-83a2-4ae7-a812-a0db819855a4

Co-authored-by: futpib <4330357+futpib@users.noreply.github.com>
Pull Request #23: fix: guard Run handler from resetting pane state overwritten by a concurrent hook

28 of 34 new or added lines in 2 files covered. (82.35%)

1629 of 2007 relevant lines covered (81.17%)

112.71 hits per line

Relevant lines Covered
Build:
Build:
2007 RELEVANT LINES 1629 COVERED LINES
112.71 HITS PER LINE
Source Files on copilot/fix-test-failures-ci
  • Tree
  • List 5
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
23716887926 copilot/fix-test-failures-ci fix: guard Run handler from resetting pane state that a concurrent hook already advanced A race condition caused slopctl send to wait indefinitely (60 s) for a pane to become ready after slopctl run returned. After `tmux new-window` returns, moc... Pull #23 29 Mar 2026 07:23PM UTC Copilot github
81.17
See All Builds (44)
  • 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