Skip to content

Releases: FinbackYu/kimi-code-hud

v0.7.2

Choose a tag to compare

@FinbackYu FinbackYu released this 19 Aug 08:35

Changed

  • Advance the audited Kimi Code compatibility baseline from 0.36.1 to 0.37.2:
    the 10-field status-line payload, first-stdout-line contract, and 300ms host
    ceiling are unchanged; footer line 2 gains a longer-lived warningHint and
    remains host-owned; the persisted wire manifest drops five transient record
    types and adds durable prompt.accepted, runtime.set_binding, and
    tower_mode.enter / tower_mode.exit records that HUD reducers safely
    ignore. agent-core-v2 rewired its journal internals to Event2/defineState and
    now always stamps time on durable records; the on-disk wire format,
    session layout, quota endpoint, plugin manifest, and hook payloads are
    unchanged.

v0.7.1

Choose a tag to compare

@FinbackYu FinbackYu released this 15 Aug 02:03

Changed

  • Advance the audited Kimi Code compatibility baseline from 0.34.0 through
    0.36.1, covering the content-bearing plugin.session_start wire row,
    mixed-provider subagent sessions, additive task metadata, and the unchanged
    10-field status-line contract.
  • Persist Git branch/dirty results across HUD command processes for 15 seconds,
    keyed by a cwd SHA-256 and capped at 64 worktrees. Concurrent cache misses
    merge under a bounded cross-process lock, cache files are forced to mode
    0600, optional Git locks are disabled, and the existing 150ms probe ceiling
    remains in place.

Fixed

  • Fail closed when an all-agent Session Cost ledger contains nonzero usage from
    another provider or an unresolved model, avoiding partial session totals.
  • Treat an unresolved model provider as unknown: no managed Kimi quota or
    provider usage is rendered or refreshed until attribution is explicit.

Security

  • Resolve git through PATH to a canonical absolute executable and refuse
    workspace-local hits before running the dirty-tree probe.
  • Strip OSC, CSI, other ESC string controls, and C0/DEL/C1 characters from all
    dynamic HUD text before adding HUD-owned ANSI styling.

Compatibility

  • Audited against Kimi Code 0.36.1 at
    13d86f8b7bb2443a3b8222e7d94deb0a66429f8e.
  • Full test suite: 347 tests passed.

v0.7.0

Choose a tag to compare

@FinbackYu FinbackYu released this 09 Aug 15:27

Added

  • Add a provider-usage cache and detached-refresh framework, with the first
    adapter for DeepSeek's official API balance. The active model resolves to
    its provider table, cache files are isolated by a one-way API-key
    fingerprint, the render hot path never performs network I/O, and custom
    DeepSeek-compatible proxies are refused so credentials only reach the
    fixed official balance endpoint. The footer renders currency as compact
    balance text (DeepSeek Balance ¥N.NN) instead of inventing a quota
    percentage or relying on unexplained abbreviations. DeepSeek also uses the
    local all-agent cost path, so ready facts compose as
    DeepSeek Balance ¥N.NN · Session Cost ≈¥N.NN for CNY accounts (and the
    matching USD form for USD accounts). Cost selects the official price table
    from the balance response's currency and remains visible by itself when the
    balance is unavailable but that account currency is known; an unknown
    currency fails closed instead of guessing the symbol.
  • Add local all-agent session-cost estimates for supported models on the
    official direct DeepSeek, OpenAI, and Anthropic APIs. A dedicated content-free
    usage.record ledger reconstructs main and subagent history without
    disturbing live metrics, waits for every wire to catch up, and fails closed
    for unknown models or compatible proxies. The footer renders the full brand
    and scope (DeepSeek Session Cost ≈¥N.NN / OpenAI Session Cost ≈$N.NN /
    Anthropic Session Cost ≈$N.NN),
    keeping estimates distinct from balances, admin billing, and subscriptions.

Changed

  • Format CNY session costs with two decimal places once they reach one fen,
    while retaining additional precision below that boundary so small nonzero
    costs do not collapse to ¥0.00.

Fixed

  • Follow in-session effort and model switches from the per-request ground
    truth: hosts stamp every llm.request wire row with the thinkingEffort
    and modelAlias the request actually ran with, so a switch that emits no
    new config.update/profile.bind row — the host's own footer (e.g. the
    line-2 context figures) can lag behind here — now updates the HUD on the
    next request. The one-time backfill scan version is bumped so sessions
    tracked by earlier HUD builds re-project effort and model from their
    request journal too.

v0.6.5

Choose a tag to compare

@FinbackYu FinbackYu released this 06 Aug 12:03

Fixed

  • Track the session model and thinking effort from the host's profile.bind wire row: newer hosts bind the active profile once at session start (profile.bind with modelAlias + thinkingEffort) instead of emitting a config.update row, so such sessions fell back to the config.toml [thinking] effort — e.g. showing high while the model actually ran at max.

v0.6.4

Choose a tag to compare

@FinbackYu FinbackYu released this 03 Aug 04:27

Added

  • Render the built-in footer's background-task badges — [N task(s) running]
    for shell processes and [N agent(s) running] for background subagents,
    between the model and project segments. Counts come from a bounded
    taskId -> { kind, status } reducer over the main-wire task.started /
    task.terminated Ops, reconciled per frame against the
    agents/main/tasks/<taskId>.json sidecars so hosts that predate the
    journaled Ops are covered too; the fresher record wins per task id. The
    counts stay separate from the throughput activeAgents / tpsAgents
    figures and only running tasks badge.

Fixed

  • Keep the fleet speed style when a swarm runs down to its last live
    subagent: falling back to the solo-agent ⚡ 45 t/s · TTFT 1.2s made the
    HUD look like swarm mode had been exited. A lone live agent with a speed
    reading now reports a one-agent fleet figure (tpsTotal = tps,
    tpsAgents = 1), and while swarm mode is on the speed segment and gen
    ticker keep the fleet head count, singularized as 1 agent.

v0.6.3

Choose a tag to compare

@FinbackYu FinbackYu released this 02 Aug 08:08

Added:

  • Fleet head counts now read "main+N" whenever the main agent feeds the figure (e.g. ⚡ 465 t/s (main+4 @93)), so the count can't be misread as a pure subagent figure while a swarm runs; it settles back to subagents only once the idle main agent ages out of the activity window.

v0.6.2

Choose a tag to compare

@FinbackYu FinbackYu released this 02 Aug 08:07

Compact-layout quota coloring and reliability fixes for the quota segment and the swarm fleet display.

Added:

  • The compact layout colors the quota percentage by usage level (yellow ≥60%, red ≥85%) so it takes over the level signal from the missing bar; the comfortable green level stays default-colored.

Fixed:

  • Subagents drop out of the fleet count the moment their turn ends instead of lingering until the two-minute activity window expires.
  • The 5h/7d quota segment no longer disappears during idle access-token expiry: a 401/403 with a refresh_token still present keeps the last good cache.

Changed:

  • Both READMEs clarify that the 5h/7d windows represent Kimi managed subscription usage, not API balance or spend.

v0.6.1

Choose a tag to compare

@FinbackYu FinbackYu released this 01 Aug 18:37

Documentation release for the HUD capability audit and refreshed project presentation.

Added:

  • Real HUD screenshots in the Chinese and English READMEs.
  • A canonical Kimi Code 0.31.0 capability inventory with activation instructions and token-scope definitions.
  • A separate known-issues register with acceptance criteria.

Changed:

  • Reorganized both READMEs around features, installation, configuration, runtime behavior, capabilities, and known issues.

v0.6.0

Choose a tag to compare

@FinbackYu FinbackYu released this 01 Aug 16:16

Changed

  • Show the bare thinking effort level in the model segment (K3 max instead
    of K3 thinking:max) in every layout; boolean thinking keeps the
    thinking label.
  • While the goal badge is up, the speed segment shows throughput only: the
    gen timer, TTFT and the compaction state all hide (the badge already
    carries the session clock), freeing space for the badge.

Removed

  • Drop the full layout tier together with its exclusive Context segment,
    version suffix, and Cache token counts. Layouts are now compact and normal,
    and the width defense degrades normal -> compact; read the host-drawn
    line 2 for context usage.

Fixed

  • Count only agents with a fresh speed reading in the fleet throughput
    figure: an agent still waiting on its first step stays in the gen-ticker
    head count but no longer inflates the N agents @avg parenthetical, so
    the displayed total, head count and average stay consistent.

v0.5.1

Choose a tag to compare

@FinbackYu FinbackYu released this 01 Aug 11:46

Added

  • Add sanitized end-to-end status payload and wire fixtures, bounded 50 MiB
    wire catch-up coverage, and a Node 18/20/22 CI matrix.

Changed

  • Split the executable into command routing, a configuration management
    service, and a budgeted render runtime. Render frames now share one config
    snapshot and a 220ms internal deadline across stdin, metrics, quota refresh,
    and Git collection.
  • Split metrics into state migration/storage, session location, bounded wire
    reading, and throughput, turn, compaction, cache, goal, and session metadata
    reducers. Metrics state v8 caps aggregate wire reads at 1 MiB per frame,
    rotates subagent priority, preserves split UTF-8 lines, and incrementally
    replaces historical projections after they catch up.

Fixed

  • Fail closed when the SessionStart hook cannot safely parse a status-line
    command, and quote generated commands whose paths contain spaces or shell
    metacharacters.
  • Make management command failures observable through stderr and exit status,
    while preserving render and detached-refresh silent fallbacks.
  • Classify quota failures so authorization errors clear stale data while
    transient errors retain it, and make refresh locking atomic and
    ownership-safe.
  • Preserve zero-valued quota windows when the usages API omits used, deriving
    it from limit - remaining so the percentage and reset countdown stay visible.
  • Keep stale TPS medians inside their owning agent bucket and fully reset an
    agent when its wire rotates or truncates.