• 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: main
CHANGE BRANCH
x
Reset
Sync Branches
  • main
  • 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

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
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
25966795291 main docs(claude): add CLAUDE.md with project identity, commands, and architecture Notes that this is a revived lean-poker fork — upstream maintainers abandoned the original boardgame.io. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> push 16 May 2026 04:18PM UTC devill github
99.84
25965437903 main fix(scripts): make test:coverage actually collect coverage under pnpm Background: under pnpm 10, `pnpm test -- --coverage` forwards the `--` literally, so jest sees `jest -- --coverage --collectCoverageFrom=src/**` and treats everything past `--`... push 16 May 2026 03:17PM UTC devill github
99.84
25956970951 main ci: SHA-pin external GitHub Actions (#21) Replace floating tags (@v4, @v2) with full 40-char commit SHAs so the workflow's external dependencies are immutable. A poisoned floating tag would otherwise compromise CI and, critically, the npm publish... push 16 May 2026 08:11AM UTC web-flow 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