mirror of
https://github.com/PerpetualSoftware/pad.git
synced 2026-09-23 02:53:31 +00:00
287fa545fb
Synthetic Go load-test for the Yjs collab dumb-relay. Each simulated client opens a WebSocket, sends tagged sync frames at a configurable rate, consumes inbound frames, and computes broadcast fanout latency. Doesn't depend on a real Yjs port — the dumb-relay's first-byte discriminator (yMessageSync=0) is enough to exercise the persist + broadcast path with synthetic payloads. Each frame embeds a unix-nano timestamp + client ID so receivers can compute round- trip latency without out-of-band coordination. Findings (in DOC-1307): - N=5, N=25: clean, p95 < 10ms, fanout matches expected (N-1)x - N=100: 38/100 dial failures (consistent), but the 62 successful see p95=27ms — server rejects ~38% of simultaneous dials at this level. Filed BUG-1308 to investigate the ceiling. - Op-log grows unbounded without compaction; old runs replay on reconnect causing latency blow-up. Filed TASK-1309 to wire a periodic prune sweeper. Self-reviewed only; codex was unresponsive today after multiple hour-long retries.
59 lines
675 B
Plaintext
59 lines
675 B
Plaintext
# Binary
|
|
/pad
|
|
/pad.exe
|
|
/loadtest-collab
|
|
|
|
# Web build output
|
|
web/build/
|
|
web/node_modules/
|
|
web/.svelte-kit/
|
|
|
|
# Pad workspace data (local to each user)
|
|
.pad/
|
|
.pad.toml
|
|
|
|
# Legacy planning docs (not for public repo)
|
|
v1-archive/
|
|
|
|
# Environment & secrets
|
|
.env
|
|
.env.*
|
|
!.env.example
|
|
|
|
# Database files
|
|
*.db
|
|
*.sqlite
|
|
*.sqlite3
|
|
|
|
# OS
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# Editor
|
|
.vscode/
|
|
.idea/
|
|
*.swp
|
|
*.swo
|
|
*~
|
|
.agents/
|
|
.claude/
|
|
.codex
|
|
.codex/
|
|
|
|
# Agent tool local configs (not for public repo)
|
|
AGENTS.md
|
|
|
|
# Go
|
|
*.test
|
|
*.out
|
|
coverage.txt
|
|
|
|
# Distribution
|
|
dist/
|
|
|
|
# Playwright e2e artifacts (scoped to the test fixture, never the
|
|
# developer's real ~/.pad)
|
|
.pad-e2e/
|
|
web/playwright-report/
|
|
web/test-results/
|