Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 0 additions & 19 deletions .babelrc

This file was deleted.

68 changes: 19 additions & 49 deletions .cursorignore
Original file line number Diff line number Diff line change
@@ -1,72 +1,42 @@
# Dependencies
node_modules/
jspm_packages/
.pnp/
.pnp.js

# Build output
# Build outputs
dist/
build/
*.js.map

# Test coverage
coverage/
.nyc_output/
*.lcov
# Dependencies
node_modules/
.pnpm-store/

# Logs
logs/
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
pnpm-debug.log*

# Runtime data
pids/
*.pid
*.seed
*.pid.lock
# Environment
.env.local
.env.*.local

# Temporary files
tmp/
temp/
*.tmp
# IDE
.vscode/
.idea/
*.swp
*.swo
*~

# OS files
# OS
.DS_Store
Thumbs.db
desktop.ini

# IDE / Editor
.idea/
.vscode/
*.sublime-*
.history/
.cursor/
# Test coverage
coverage/
.nyc_output/

# Lock files (reduce noise)
package-lock.json
yarn.lock
pnpm-lock.yaml
# Temporary files
*.tmp
*.temp
.cache/

# Git
.git/
.gitignore

# Optional npm cache
.npm/

# Benchmark results (generated)
benchmark/npm-version/

# Large documentation files (optional - uncomment if too slow)
# docs/

# Node optional dependencies
.node_repl_history
.node_gyp/

5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*

# Runtime data
pids
Expand Down Expand Up @@ -32,12 +35,12 @@ jspm_packages

# Optional npm cache directory
.npm
.npmrc

# Optional REPL history
.node_repl_history

.idea/*
dist/

tmp/

Expand Down
1 change: 0 additions & 1 deletion .mocharc.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{
"require": ["@babel/register"],
"spec": ["test/**/*.test.js", "src/**/*.test.js"],
"exit": true,
"timeout": 10000,
Expand Down
26 changes: 25 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,31 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

---

## [2.0.0] - 2024
## [2.0.11] - 2026-01-25

### Fixed
- **Ping Resurrection**: Implemented REQUEST_HANDSHAKE mechanism to fully recover client state after network timeouts
- Server now requests fresh handshake when detecting client resurrection via ping
- Client resends complete handshake with full options on REQUEST_HANDSHAKE
- Added `pendingHandshakes` tracking to prevent duplicate handshake requests
- Fixes issue where timed-out clients would lose their options/metadata after reconnection
- Properly synchronizes Server and Node layers after timeout recovery
- **Test Suite**: Fixed 5 pre-existing failing tests
- Resolved "Address already in use" errors with dynamic port allocation using `getUniquePort()`
- Fixed timing-related assertion failures with event-based waiting (`waitForNotReady()`)
- All 811 tests now passing with 95%+ coverage

### Added
- `ProtocolSystemEvent.REQUEST_HANDSHAKE` internal event for server-initiated client handshake
- Comprehensive test suite for ping resurrection scenarios (`test/protocol/server-ping-resurrection.test.js`)
- Tests client resurrection after timeout
- Verifies REQUEST_HANDSHAKE is sent exactly once
- Validates full options recovery including custom client metadata
- Confirms proper state synchronization between Server and Node layers

---

## [2.0.0] - 2025

### 🎉 Major Release - Transport Abstraction & Architecture Redesign

Expand Down
Loading