Skip to content

Core Use Cases ​

Status: Draft
Version: 0.1
Phase: Milestone 01.2; not Phase 01

These use cases remain valid for the later AI and capability milestone. Phase 01 is now limited to the flashable Pi-hole image POC.

UC-01: Check Pi-hole Health ​

User intent: Determine whether DNS filtering is operating normally.
Successful outcome: The system reports what it can verify about Pi-hole connectivity and health, with a timestamp and clear limits.
Failure behavior: Distinguish Pi-hole unavailable, authentication failed, incompatible API, and Sovereign OS integration failure. Permissions: Read-only Pi-hole health access.
Internet dependency: None when Pi-hole and the selected AI path are local; otherwise only the AI response generation may require internet.

UC-02: Review Blocked Request Count ​

User intent: Understand how many DNS requests Pi-hole blocked during the relevant reporting period.
Successful outcome: Return the count, the reporting period, and enough context to avoid misleading interpretation.
Failure behavior: Never fabricate a count; explain unavailable or incomplete data.
Permissions: Read-only Pi-hole statistics access.
Privacy: Avoid persisting detailed query history merely to answer the question.

UC-03: Identify High-Volume Clients ​

User intent: See which local clients generate the most DNS traffic.
Successful outcome: Return a bounded, ranked summary with the time period and naming limitations.
Failure behavior: Explain when client identity is unavailable or ambiguous.
Permissions: Read-only Pi-hole statistics access.
Privacy: Client identifiers are sensitive household metadata and should not appear in ordinary logs.

UC-04: Explain a Blocked Domain ​

Status: Preview stretch goal.
User intent: Understand whether and why a domain is blocked.
Successful outcome: Report the observed blocking state and the responsible list or rule when the API can establish it.
Failure behavior: Separate “not observed,” “not blocked,” and “cannot determine.”
Permissions: Read-only Pi-hole query and list inspection.
Safety: The preview must not automatically allowlist the domain.

UC-05: Check Sovereign OS Health ​

User intent: Determine whether the local platform and its required dependencies are operating.
Successful outcome: Show core runtime, AI provider, Pi-hole integration, and relevant resource status.
Failure behavior: Preserve dashboard access where possible and identify the failed dependency.
Permissions: Read-only platform diagnostics.

UC-06: Handle an Unsupported Request ​

User intent: Ask something outside the preview's capability set.
Successful outcome: Explain that the action is unsupported, avoid pretending it occurred, and identify supported alternatives where helpful.
Safety: The AI must not improvise shell commands, generic network requests, or unregistered tool calls.

User intent: Ask a question that cannot be answered reliably from local knowledge or registered household capabilities.

Successful outcome: After explicit search authorization, the system sends a minimal visible query through the local SearXNG provider, returns an answer with inspectable source links, and distinguishes retrieved evidence from model knowledge.

Failure behavior: Explain when search is disabled, offline, blocked by an upstream engine, or insufficient to support an answer. Do not fabricate sources.

Permissions: web.search, followed by constrained web.fetch only when required.

Privacy: Search terms leave the device for configured upstream engines. The system must not silently add conversation history, DNS data, device names, or other household context to the query.

Evaluation Rules ​

Every use case should be tested for:

  • successful response;
  • unavailable dependency;
  • invalid or incomplete input;
  • unauthorized access;
  • malformed model-generated tool call;
  • timeout;
  • privacy-safe logging;
  • understandable user-facing explanation.

Open source under AGPL-3.0. Each Sovereign instance is independently operated.