Skip to content

osync v1.3.0

Choose a tag to compare

@mann1x mann1x released this 13 Apr 01:32
· 16 commits to master since this release

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 tinyllama for 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-x64 after download)