osync v1.3.0
What's New
Code Quality & Reliability
- Fixed HttpClient leaks in QcCommand and BenchCommand — now uses shared static instance instead of creating new clients per request
- Fixed race conditions in BufferedPipeStream with proper locking
- Fixed blocking async calls — converted to proper async/await patterns
- Fixed resource disposal — added IDisposable to ChatSession and StreamHelpers
- Extracted JudgeArgumentParser from Program.cs to reduce god-class complexity
- Fixed LogFileWriter Spectre markup sanitization regex for correct bracket handling
- Fixed ManageCommand TUI showing hardcoded v1.1.6 instead of actual app version
- Single-file publish — binaries are now self-contained single executables
Comprehensive Test Suite (120 unit tests)
First proper test coverage for internal logic:
- BenchScoring — scoring algorithms, formatting, statistics, rankings (45 tests)
- QcScoring — weighted formula, judgment blending, edge cases (14 tests)
- CloudJudgeProviderFactory — all 15 provider aliases, parsing, env vars (20 tests)
- JudgeArgumentParser — local/remote/cloud URL parsing (11 tests)
- LogFileWriter — ANSI escape and Spectre markup sanitization (14 tests)
- BufferedPipeStream — async pipe stream with backpressure (8 tests)
- ThrottledStream — bandwidth limiting and constructor validation (8 tests)
SpecFlow Integration Test Infrastructure
- Base test model changed to
tinyllamafor faster test runs - Auto-download of test model in BeforeTestRun hook
- AfterScenario cleanup for models created during tests
- New step definitions: ServerSteps, ChatSteps
- Feature files normalized to use
{model}and{RemoteServer}variables - Stdin support in OsyncRunner for interactive test scenarios
Downloads
- osync-windows-x64.exe — Windows x64 single-file executable
- osync-linux-x64 — Linux x64 single-file executable (run
chmod +x osync-linux-x64after download)