Skip to content

refactor: extract UsageTracker for LLM provider usage/cache tracking #1988

@bug-ops

Description

@bug-ops

Epic: #1975

Every LLM provider independently maintains last_usage: Mutex<Option<(u64, u64)>> and last_cache: Mutex<Option<(u64, u64)>> with identical logic. 60 lines duplicated across 4 providers.

Extract UsageTracker struct in zeph-llm/src/usage.rs:

pub(crate) struct UsageTracker {
    last_usage: Mutex<Option<(u64, u64)>>,
    last_cache: Mutex<Option<(u64, u64)>>,
}

Locations: claude/mod.rs:54-55, openai/mod.rs:26-27, ollama.rs:35, gemini/mod.rs:42

Acceptance Criteria:

  • UsageTracker used by all 4 providers
  • Clone implementation resets to None
  • All provider tests pass

Complexity: Small | Effort: 2h
Ref: DRY-01

Metadata

Metadata

Assignees

No one assigned

    Labels

    architectureArchitecture improvementsllmzeph-llm crate (Ollama, Claude)

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions