4.3 KiB
PR#28: the dashboard shows billed calls as "unknown repository" and dry runs as "local review"
WARNING: This document describes only the change applied in this PR. It may already be outdated once the next PR is merged. Historic PR documentation is not maintained along with new PRs; treat it as a snapshot.
The Problem
The table per repository of werkrevisor 0.19.0 holds only reviews that a CI run reported. Two kinds of costs are missing there:
- The calls billed by OpenRouter before the service, about 9.76 USD: they count in the totals, but the export names no repository, so the rows do not add up to the total.
- Dry runs with
tools/dry-run, e.g. the model comparison of 2026-10-06: they report nothing, so their costs are missing everywhere.
Non-Goals
- No repository for billed calls: the export of OpenRouter does not tell it.
- No pull requests for dry runs: they review the same pull requests as the CI, so they would count them twice.
The Scenarios
Feature: the rows per repository add up to the total
Scenario#28.01: billed calls form the row "unknown repository"
So that the reader sees where the rest of the total comes from.
- Given the last 30 days hold billed calls for 9.76 USD
- When someone opens the dashboard
- Then the table per repository shows a row "unknown repository" in grey italics,
with 9.76 USD, 0 reviews and 0 pull requests
- and the costs of all rows add up to the total of the last 30 days
Verified by
- UsageApiIntegrationTest: billed calls form the row unknown repository
- manual check in a browser, see Measurement
Feature: dry runs report their costs
Scenario#28.02: a dry run reports its usage record as local
So that the costs of trial runs show up in the statistics.
- Given
WERKREVISOR_STATS_URLandWERKREVISOR_STATS_TOKENare set - When the operator runs
tools/dry-runfor a pull request - Then the run reports its usage record with
local: true
Verified by
Scenario#28.03: local reviews count in costs and reviews, not in pull requests
So that the cost per pull request stays the one of the CI reviews.
- Given the CI reviewed one pull request for 0.10 USD
- and a dry run reviewed the same pull request for 0.02 USD
- When someone opens the dashboard
- Then the card shows 2 reviews, 1 pull request and a cost per pull request of 0.10 USD
- and the table per repository shows a row "local review" in grey italics with 0.02 USD, 1 review and 0 pull requests
Verified by
- UsageApiIntegrationTest: local reviews count in costs and reviews, not in pull requests
- manual check in a browser, see Measurement
The Solution
- The usage record holds
local, true for a run with--no-publish;tools/dry-runpassesWERKREVISOR_STATS_URLandWERKREVISOR_STATS_TOKENinto the container if both are set. - The service stores
local; a local review counts in costs and reviews, not in pull requests, and the cost per pull request leaves its costs out. - Each group of the table per repository holds
kind:repository,private,unknownfor the billed calls orlocalfor the dry runs; the Web Component names the last three in grey italics. - The cards name the local reviews, e.g. "26 reviews (1 local)", and the recent reviews mark them with "local".
- No code change for the token: at the deployment, the operator adds one more source token to
WERKREVISOR_SERVER_SOURCE_TOKENSand passes it to dry runs asWERKREVISOR_STATS_TOKEN. - werkrevisor 0.19.1.
Measurement
On 2026-10-06, the service ran locally with a copy of the live database and one constructed local review.
The table per repository showed "unknown repository" with 9.76 USD, mi/werkrevisor with 2.72 USD
and "local review" with 0.0009 USD; the rows added up to 12.4765 USD, the total of the last 30 days.
The card of the last 30 days showed "26 reviews (1 local), 6 pull requests".
Prerequisite PRs
- PR#24: billed OpenRouter calls.
- PR#26: private repositories keep their row without name.