Skip to content

Commit 65c629b

Browse files
feat: Add connection resilience with auto-reconnect and heartbeat
- Add UnityConnection class with exponential backoff reconnection - Add ConnectionState enum (Disconnected, Connecting, Connected, Reconnecting) - Add heartbeat/ping-pong mechanism to detect stale connections - Emit connection state change events for UI feedback - Refactor McpUnity to use new UnityConnection class - Add Jest test suite with 14 tests for connection handling 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
1 parent 03d0e7e commit 65c629b

File tree

7 files changed

+5867
-658
lines changed

7 files changed

+5867
-658
lines changed

Server~/jest.config.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/** @type {import('ts-jest').JestConfigWithTsJest} */
2+
export default {
3+
preset: 'ts-jest/presets/default-esm',
4+
testEnvironment: 'node',
5+
extensionsToTreatAsEsm: ['.ts'],
6+
moduleNameMapper: {
7+
'^(\\.{1,2}/.*)\\.js$': '$1',
8+
},
9+
transform: {
10+
'^.+\\.tsx?$': [
11+
'ts-jest',
12+
{
13+
useESM: true,
14+
isolatedModules: true,
15+
tsconfig: {
16+
target: 'ES2022',
17+
module: 'ESNext',
18+
moduleResolution: 'Node',
19+
esModuleInterop: true,
20+
strict: true,
21+
skipLibCheck: true,
22+
types: ['node', 'jest'],
23+
},
24+
},
25+
],
26+
},
27+
testMatch: ['**/__tests__/**/*.test.ts'],
28+
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
29+
testTimeout: 10000,
30+
};

0 commit comments

Comments
 (0)