Skip to content

[Refactor] Extract token & tool usage tracking into UsageTracker from Task.ts #18

Description

@doctarock

Parent Issue

Part of #8 — Code Refactor on Monolith Files

Summary

Extract the token and tool usage accumulation cluster from src/core/task/Task.ts into a dedicated UsageTracker module.

Scope

Methods to extract:

  • getTokenUsage()
  • recordToolUsage()
  • recordToolError()
  • emitFinalTokenUsageUpdate()

State owned:

  • tokenUsageSnapshot?
  • tokenUsageSnapshotAt?
  • toolUsageSnapshot?: ToolUsage
  • debouncedEmitTokenUsage (debounced throttle function)
  • TOKEN_USAGE_EMIT_INTERVAL_MS = 2000

Estimated size: ~150–200 lines

Notes

Simple accumulator pattern with a clear boundary. No circular dependency risk. Good candidate for unit testing once isolated.

Constraints (from #8)

  • Preserve method names and call signatures
  • Run type checks after extraction
  • One extraction per commit

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions