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
:pulseor:problemsfor current Pod and Deployment findings, recent Warning Events, and explicit evidence gaps; Enter follows a verified resource identity through the existing navigation path. Ctrl-PAction 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; usenamespace:for the startup scope andfavorite_namespaces:for digit-key shortcuts, as described in Change scope without losing context. - If
agent.profileswas already present in v0.4.1, keep itsactiveselection and profiles, and delete the ignored flat connection keys; do not migrate those stale values. - Only a v0.4.1 configuration without
agent.profilesshould convert the flat connection into a profile. Select it withagent.active, put provider tuning in the profile'soptions, and useactive: nullto 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.complusoptions.azure_deployment: <name>, setendpointtohttps://<resource>.openai.azure.com/openai/deployments/<name>and removeoptions.azure_deploymentbefore upgrading; see the maintained Agent guide. -
Preserve v0.4.1's normalized Ollama numeric types when moving
agent.ollamainto profileoptions; do not copy quoted numbers ornum_ctx/seedfloats verbatim. Follow the maintained Agent guide. -
Breaking:
korvid.providerno longer loads the retired provider-factory API. Extensions use the SpecialFlow provider contract through aSpecialFlowdeclaration; custom authentication useskorvid.credentialwith aProviderDefaultCredential. See provider extensions. - Breaking: Package-level
korvid.agentre-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, useKORVID_EVAL_API_KEY_ENVto name the credential variable, and read overlay provenance frommeta.prompts.overlaysinstead ofmeta.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
:aiconnection 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:
For an existing install, reinstall with the complete desired extra set:
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.