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

lean-poker / boardgame.io
100%

Build:
DEFAULT BRANCH: main
Repo Added 14 May 2026 02:52PM UTC
Token TQiYdWylycHAzbRCyZAQWYZVZ5Lz5CmEG regen
Build 27 Last
Files 55
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 main
branch: SELECT
CHANGE BRANCH
x
Sync Branches
  • No branch selected
  • claude/github-actions-ci-iAEVn
  • feat/1178-preview-state-and-load-state
  • fix/1100-race-condition
  • fix/860-body-parser-limit
  • harden/dependabot-automerge
  • harden/sha-pin-workflows
  • issue-7-drop-koa-socket-2
  • main

17 Jun 2026 01:38PM UTC coverage: 99.844%. Remained the same
27693129531

push

github

web-flow
fix(server): serialize sync and disconnect connection changes via per-match queue (#31)

Fixes #1100.

Master.onConnectionChange() does a read-modify-write on match metadata
without any locking. When multiple players sync simultaneously, one
player's isConnected=true could be overwritten by another player's
stale fetch, leaving the first player stuck on "Connecting..." forever.

The socket.io transport already had a perMatchQueue (PQueue with
concurrency:1) to serialize onUpdate calls. This fix wraps both the
sync handler (onSync + onConnectionChange) and the disconnect
handler (onConnectionChange) inside the same queue, forcing all
per-match operations to run serially.

Also adds CopyingInMemoryAsync test helper and two race-condition
tests that deterministically reproduce the bug by deep-copying fetch
results. Without the fix, the concurrent-sync test consistently fails
with one player's isConnected being undefined.

1800 of 1803 branches covered (99.83%)

Branch coverage included in aggregate %.

2677 of 2681 relevant lines covered (99.85%)

28495.89 hits per line

Relevant lines Covered
Build:
Build:
2681 RELEVANT LINES 2677 COVERED LINES
28495.89 HITS PER LINE
Source Files on main
  • Tree
  • List 55
  • Changed 50
  • Source Changed 1
  • Coverage Changed 50
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
27693129531 main fix(server): serialize sync and disconnect connection changes via per-match queue (#31) Fixes #1100. Master.onConnectionChange() does a read-modify-write on match metadata without any locking. When multiple players sync simultaneously, one playe... push 17 Jun 2026 01:39PM UTC web-flow github
99.84
27692772815 main feat(client): add loadState and rename overrideGameState to previewState (#30) * refactor(client): rename overrideGameState to previewState The old name implied it replaced the authoritative game state, but it only overrides the value returned b... push 17 Jun 2026 01:34PM UTC web-flow github
99.84
27692744958 main fix(server): configurable lobby body-parser limit and documentation improvements (#29) * docs: document breaking change in 0.50.4 (koa-socket-2 removal) - Add agent-facing doc with architecture analysis - Add user-facing CHANGELOG entry with mig... push 17 Jun 2026 01:33PM UTC web-flow github
99.84
26889101689 fix/1100-race-condition Merge 430c6e5d3 into ce48e40e4 Pull #31 17 Jun 2026 01:33PM UTC web-flow github
99.84
26716935077 feat/1178-preview-state-and-load-state Merge 3e56991c7 into ce48e40e4 Pull #30 17 Jun 2026 01:30PM UTC web-flow github
99.84
26692223159 fix/860-body-parser-limit Merge a6cac8a30 into ce48e40e4 Pull #29 17 Jun 2026 01:29PM UTC web-flow github
99.84
25999462295 main test(server): force Connection: close on supertest requests in api.test.ts Wrap every `request(app.callback())` call in an `apiCall(app)` helper that sets `Connection: close` on the underlying supertest Test. This eliminates the `Parse Error: Exp... push 17 May 2026 06:44PM UTC devill github
99.84
25993551266 main chore(release): 0.50.4 No-op patch release to verify OIDC trusted-publisher path end-to-end. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> push 17 May 2026 02:29PM UTC devill github
99.84
25992073040 main chore(release): 0.50.3 First release of the @lean-poker/boardgame.io fork. Continues from upstream's last published 0.50.2 with the migration work done in this branch (pnpm 10 toolchain, dependency refresh, supply-chain hardening, Svelte 5 client... push 17 May 2026 01:24PM UTC devill github
99.84
25989470310 main fix(rollup): enable interop:auto on server CJS bundle Several CJS deps (koa-body@7, p-queue@6) ship modules whose runtime require() result is a namespace { default: fn, ... } rather than the function/class itself. Without rollup's interop wrapper... push 17 May 2026 11:25AM UTC devill github
99.84
See All Builds (27)

Badge your Repo: boardgame.io

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

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

Refresh
  • Settings
  • Repo on GitHub
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