Skip to content

usage: a repeated terminal usage event doubles a child's recorded tokens #1129

Description

@drewstone

Observed

A cloud child that reported the same cumulative usage in two terminal events had that usage added twice.

Measured on Runtime 0.196.0, child meta-operator-recursion-smoke-r2c:s1:s0 (harness opencode, model glm-5.3):

Source Fresh input Visible output
Native transcript, six steps 2,791 1,238
Runtime's recorded node usage 5,582 2,476

Both recorded values are exactly twice the native totals.
Runtime marks the node tokensKnown: true, so the doubled number is reported as measured, not as an estimate.

Why it matters

Token totals are the only complete usage receipt this path has: the same run's USD is unknown for the cloud arm, so a doubled token count silently doubles the one measurement a caller can trust. A budget enforced on that number stops a run at half its real allowance.

Evidence

discovery-lab artifacts/meta-operator-recursion-smoke-r2c/ (retained by discovery-lab #626).
The provider blobs, the raw usage fields, and the per-generation Router comparison are all retained; accounting.json records the finding as Provider usage is duplicated at terminal in Runtime.
Read Runtime's own numbers with projectPursuit over runtime/observer.jsonl in that directory.

Ask

Treat a usage report as cumulative-or-incremental explicitly rather than by accumulation: when a provider re-reports a cumulative total at terminal, replace the running total instead of adding to it, or ignore a terminal usage event whose values are not greater than what is already recorded.
A receipt that cannot be classified must leave tokensKnown: false rather than record a sum that is certainly wrong.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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