Skip to content

korvid v0.5.0

v0.5.0 puts current problems in view and every available action within one keystroke, while tightening the lifecycle and diagnostic boundaries behind the TUI. Read the migration section before upgrading: this pre-1.0 release removes obsolete agent configuration and extension APIs rather than silently converting them.

Why upgrade

  • Pulse / Problems. The top bar now carries a bounded attention summary. Open :pulse or :problems for current Pod and Deployment findings, recent Warning Events, and explicit evidence gaps; Enter follows a verified resource identity through the existing navigation path.
  • Ctrl-P Action Palette. Search actions and built-in commands by intent or canonical name. Results show the effective remapped key and explain why an action does not apply instead of hiding it. The palette uses the same route as the corresponding key or command. Write actions still require a fresh approval keystroke.

For exhaustive issue history, see milestone 6.

Breaking changes and migration

korvid no longer reads or migrates flat provider settings, retired prompt overrides, or unknown root and agent keys. Before upgrading:

  • Remove the obsolete top-level namespaces: key; use namespace: for the startup scope and favorite_namespaces: for digit-key shortcuts, as described in Change scope without losing context.
  • If agent.profiles was already present in v0.4.1, keep its active selection and profiles, and delete the ignored flat connection keys; do not migrate those stale values.
  • Only a v0.4.1 configuration without agent.profiles should convert the flat connection into a profile. Select it with agent.active, put provider tuning in the profile's options, and use active: null to keep the agent disabled. See the maintained agent configuration guide.
agent:
  active: local
  profiles:
    local:
      model: ollama/qwen3:8b
      endpoint: http://localhost:11434
      auth: {method: none}
      options:
        native_thinking: true

This exact profile preserves v0.4.1's native Ollama /api/chat transport; keep options.native_thinking: true when migrating it.

  • If v0.4.1 already persisted an Azure profile with resource-root endpoint: https://<resource>.openai.azure.com plus options.azure_deployment: <name>, set endpoint to https://<resource>.openai.azure.com/openai/deployments/<name> and remove options.azure_deployment before upgrading; see the maintained Agent guide.

  • Preserve v0.4.1's normalized Ollama numeric types when moving agent.ollama into profile options; do not copy quoted numbers or num_ctx/seed floats verbatim. Follow the maintained Agent guide.

  • Breaking: korvid.provider no longer loads the retired provider-factory API. Extensions use the SpecialFlow provider contract through a SpecialFlow declaration; custom authentication uses korvid.credential with a ProviderDefaultCredential. See provider extensions.

  • Breaking: Package-level korvid.agent re-exports are removed. Import contracts from their defining submodules. The complete 53-name import map and removed and reshaped contracts cover the two deleted exceptions, prompt/policy changes, new optional diagnostics fields, and the moved flow registry.
  • Per-deployment prompt and tool-description overrides are removed. The low tier ships its own versioned tool wording; the high tier and MCP continue to use the registry wording.
  • Breaking: Evaluation jobs now put any provider prefix directly in KORVID_EVAL_MODEL, use KORVID_EVAL_API_KEY_ENV to name the credential variable, and read overlay provenance from meta.prompts.overlays instead of meta.policy.overlays.

Reliability and safety

  • Native Windows qualification now covers input readiness, keyboard operation, shell suspension, and bounded audit locking. The documentation harness runs in an isolated process without weakening its assertions.
  • Kubernetes reads, watches, log streams, agent sessions, HTTP transports, and MCP endpoint state now have bounded teardown and explicit ownership. Lost clusters and stalled peers can no longer hold application shutdown indefinitely.
  • Each agent turn distinguishes model wait, tool execution, and answer composition, then emits one provider-neutral numeric diagnostic record. Provider failures use korvid-authored messages instead of exposing raw response bodies, prompts, Kubernetes objects, or credentials.
  • Self-hosted and proxied endpoints must forward the provider's real stream completion signal. If the :ai connection test now fails or refuses a stream, follow the self-hosted endpoint and proxy recovery steps. A connection-test answer over 4,096 characters is refused rather than trimmed, so completion cannot be inferred from a partial response.
  • Oversized tool results now tell the model which limit applied with … [middle truncated — tier result budget].

The safety perimeter is unchanged. Agent investigation remains read-only. Agent writes remain structured tools with no shell. The resolved policy arms only exact registry tool names, import-time metadata validates dispatch, and ToolExecutor rejects an unknown tool before performing typed argument validation. Every write opens an approval dialog, requires a user keystroke, and revalidates the exact target UID. Results still pass through masking, and audit logging remains fail-closed.

Install or upgrade

Install the full feature set:

uv tool install 'korvid[all]==0.5.0'

For an existing install, reinstall with the complete desired extra set:

uv tool install --force 'korvid[all]==0.5.0'
# or
pipx install --force 'korvid[all]==0.5.0'

Python 3.11, 3.12, and 3.13 are qualified on Linux, macOS, and Windows.

Verify

Download the GitHub Release artifacts, verify their attestations, and check every recorded checksum:

set -eu
gh release download v0.5.0 --dir dist/v0.5.0 --repo hellices/korvid
gh attestation verify dist/v0.5.0/korvid-0.5.0-py3-none-any.whl \
  --repo hellices/korvid
gh attestation verify dist/v0.5.0/SHA256SUMS --repo hellices/korvid
(cd dist/v0.5.0 && shasum --algorithm 256 --check SHA256SUMS)

Known limits

  • Pulse evidence is deliberately bounded to current Pod and Deployment findings plus recent Warning Events. “No matched problems” is not a cluster-health guarantee.
  • Pulse is not a fleet or multi-cluster view.
  • The Action Palette searches existing actions and built-in commands; it does not accept arbitrary commands, and unavailable actions remain unrunnable.
  • korvid does not approve or execute writes autonomously. Each write requires its own fresh user keystroke.