Skip to content

Add the evidence vocabulary and read-outcome classifier (#409 S1) #490

Closed

Description

@hellices

Part of #409: slice S1 of the capability-aware diagnostics design (#485).

Scope

  • korvid.core.capability:
    • EvidenceState, Basis, and the bases each state allows;
    • sources: ApiSource, DiscoverySource, ProviderSource and SourceScope;
    • Role, FreshnessPolicy and declarations;
    • Observation and the RunToken it carries;
    • conclusive;
    • EvidenceSet with baseline and by_scope.
  • ReadRequest and classify, with bounded Status parsing.
  • KubeClientError categories (timeout, transport, malformed, too_large). Each raise site on the shared request path sets its category.
  • A table test that pins how Pulse's coverage states map onto the vocabulary.

Acceptance criteria

  • Each state accepts only its own bases.
  • conclusive is false for NO_DATA, for stale observations and for retention-limited sources.
  • baseline is order-independent, and optional sources never lower it.
  • The classifier implements the design's table for LIST, GET and discovery, including:
    • a 404 with and without a matching NotFound;
    • a 405 classified as stale discovery;
    • a 406 or 410 both inside and outside its context;
    • a failure after an accepted page classified as PARTIAL.
  • Classification never parses error messages, and an error body over 16 KiB is not parsed.
  • Nothing in core imports Textual or an optional extra, and tach check passes.

Out of scope: the discovery snapshot and resolution (S2), reads (S3) and run generations (S4).

Activity

  1. added this to the v0.7.0 milestone on Oct 25, 2026
  2. self-assigned this
    on Oct 25, 2026
  3. added
    enhancementNew feature or request
    area: k8sKubernetes clients, resources, operations, and cluster behavior
    concern: architectureModule boundaries, dependency direction, and system structure
    concern: reliabilityGraceful degradation, lifecycle safety, and operational correctness
    status: acceptedConfirmed bug or accepted change; a pull request may follow once the issue is assigned
    on Oct 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area: k8sKubernetes clients, resources, operations, and cluster behaviorconcern: architectureModule boundaries, dependency direction, and system structureconcern: reliabilityGraceful degradation, lifecycle safety, and operational correctnessenhancementNew feature or requeststatus: acceptedConfirmed bug or accepted change; a pull request may follow once the issue is assigned

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions