Skip to content

v0.6.0

Choose a tag to compare

@VonderVuflya VonderVuflya released this 04 Jul 16:38

Robustness, DX and CI — the second slice of the audit plan.

Added

  • CI (GitHub Actions): unit tests on ubuntu/macos/windows (py3.10 + 3.13),
    behavioural gates on ubuntu/macos, and a benchmark job that fails the build if
    lexical recall@1 regresses below 0.77 — the badge becomes a receipt.
  • ygg delete --id and ygg reset --project|--source|--type|--all — recover from a
    bad ygg seed without sqlite surgery. reset previews the count and demands typed
    confirmation (or --yes). The engine's /delete + /purge are the only destructive
    endpoints and are deliberately not exposed as MCP tools.
  • GET /get?id= — direct indexed lookup; ygg materialize now works at any store
    size (the old scan couldn't reach memories past the first 1000).
  • distill_num_ctx setting (default 8192) — seed distillation sends options.num_ctx
    explicitly instead of inheriting Ollama's default (often 4096, which silently truncated
    long transcripts); output cut off by the token limit is rejected, not persisted.

Fixed

  • Hooks work on Windows (python3 … || python … launcher) and context is never
    injected twice
    when both the plugin and ygg hooks are enabled (atomic per-session /
    per-prompt locks; registration dedupe by script name).
  • ygg bootstrap used legacy type names absent from the canonical enum — typed
    memories got no ranking boost.
  • Deleted dead code (materialize_memory.py twin, dead engine_token(), duplicated
    gate env lookup); docstrings caught up with the service.py rewrite.
  • Gates run on a dedicated port (42169) instead of sharing the daemon's 42069 — the
    runner used to kill the user's daemon and race its restart (flaky SEED FAILED).