Skip to content

v17.0.4

Latest

Choose a tag to compare

@github-actions github-actions released this 18 Jul 05:17
3fdd85a

@oh-my-pi/pi-ai

Fixed

  • Fixed Kimi Code usage reports dropping the 5h window reset time (omp usage showed no "resets in …" for the 5h limit): the API returns resetTime on the limit detail, not on window, so the parsed row-level reset is now carried onto the window when the window itself has none.
  • Made Kimi device-id persistence best-effort: a missing or unwritable ~/.omp/agent directory no longer throws during Kimi header construction, which silently nulled every kimi-code usage probe on fresh installs.
  • Coerced boolean tool-schema subschemas to MFJS object forms for native Moonshot/Kimi endpoints, preventing the task tool's outputSchema field from causing HTTP 400 responses (#5952).

@oh-my-pi/pi-catalog

Changed

  • Kimi-family models now use MFJS tool schema on all hosts, including proxies like OpenRouter that forward schemas to Moonshot

@oh-my-pi/pi-coding-agent

Fixed

  • Fixed bundled Linux ffmpeg recording by selecting its available ALSA input when PulseAudio support is absent, and surfaced recorder stderr when capture fails (#5907).
  • Session load now skips the recursive async blob-ref resolver for entries with no blob:sha256: references. A cheap synchronous precheck gates the walk per entry (preserving the previous per-entry initiation order under synchronous store mutation), so text-heavy histories no longer pay the Promise.all tree descent for every non-session entry (#5922).
  • Fixed task tool schemas emitting boolean subschemas that llama.cpp grammar generation cannot parse (#5957).
  • Fixed the transcript keeping finalized assistant blocks in the live compose walk after their rows entered native terminal scrollback, making each stream tick's TranscriptContainer.render depth-linear in session length. Fully committed finalized blocks are now compacted out of the local frame regardless of post-finalize version tracking; a later mutation no longer recommits on ordinary frames (no duplication) and rehydrates on the next destructive full replay (no loss). Compose cost for a live tail tick is now flat as depth grows (bench/transcript-compose.bench.ts: ratio(N5000/N500) 2.30 → 0.90) (#5930).
  • Fixed /quit and /exit hanging during interactive shutdown by making the mnemopi dispose path retain the current session and flush in-flight extractions without sleeping the bank; the /memory enqueue path and end-of-session backend enqueue still perform full cross-session consolidation. (#3641)

@oh-my-pi/hashline

Fixed

  • Rejected DEL N: headers with a trailing colon instead of silently tolerating the colon, so delete-with-body mistakes surface the corrective "has no colon" guidance.

@oh-my-pi/pi-mnemopi

Fixed

  • Fixed a corrupt cached embedding model (truncated model_optimized.onnx, Protobuf parsing failed on load) permanently disabling local embeddings: init now quarantines the broken cache file (rename to *.corrupt-<ts>, only when the path resolves inside the fastembed cache directory) and retries once so the model re-downloads.

What's Changed

  • fix(mnemopi): self-heal a corrupt cached embedding model on init by @DarkPhilosophy in #5923
  • perf(session): gate blob-ref resolution behind synchronous precheck by @roboomp in #5925
  • fix(task): avoid boolean output schema subschemas by @roboomp in #5958
  • fix(stt): select a supported Linux ffmpeg input by @roboomp in #5909
  • fix(tui): compact committed finalized transcript history by @roboomp in #5943
  • fix(ai): normalize boolean tool schemas for Moonshot by @roboomp in #5955
  • fix(kimi): surface the 5h usage window reset time by @iacore in #5953
  • fix(mnemopi): lighter dispose consolidation so /quit returns quickly by @iacore in #4843

New Contributors

Full Changelog: v17.0.3...v17.0.4