Skip to content

v0.9.0 — Kernel Fixes + Package Split

Choose a tag to compare

@nikhilsoman nikhilsoman released this 21 Jun 10:46

What's new

Dispatch quality

  • Scoped contextgenerate_context(scope="task:<id>") writes a minimal snapshot (story metadata, active tasks, up to 20 domain-filtered source files) instead of the full 7-day devlog dump
  • Relevant Files injection## Relevant Files section added to every dispatch prompt from the source-map scan cache
  • Verify contract## How to Verify: pytest tests/test_<story>.py injected per dispatch when a tests/ directory exists
  • Per-agent framing — Codex gets ## Task Criteria bullets; AGY gets Task: prefix + 2000-char context; Claude gets full narrative

Ed25519 identity signing

  • _ensure_identity_key() creates ~/.synlynk/identity.key on first use
  • _sign_capability_rating() signs every capability score write; capability_ratings.ed25519_sig now populated
  • synlynk identity init CLI subcommand

Anti-gaming quality cap

  • quality_auto capped at 5.0 when test_pass_rate == 1.0 and test_count < 3
  • A 1-test suite that always passes no longer scores identically to a 100-test suite

Package split

  • All application code moved to synlynk/__init__.py
  • bin/synlynk.py is now a 5-line shim — CLI entry point unchanged
  • Python 3.8 compatible (Optional[str] instead of str | None)

Tests

365 passing (up from 316 at v0.7.0)

Built with

Hybrid dispatch — Claude subagents (Tasks 1–4), AGY (Task 5), Codex (Task 7). First release where synlynk dispatched to itself to build itself.