diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c131a9..5247b23 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - The metrics API builds with Go 1.27 (`go.mod` and the Docker builder image `golang:1.27-alpine`). Replaces Dependabot PR #5, which bumped only the Dockerfile. - The DCO sign-off CI job skips release pull requests into `main`. Their commits were already checked on their way into `development`, and the history includes commits from before sign-off was required. +### Fixed + +- Dashboard: costs under one cent show as, for example, `$0.0023` instead of `$0.00`. +- Dashboard: the "Most-commented files" count column is now labelled "Reviews". It counts reviews that commented on the file, not individual comments. + ## [1.0.0] - 2026-11-01 First release as PullPicket. The engine's `ModuleVersion` restarts at `1.0.0` (it was `7.0.0` under the old name). The dashboard's engine version table is unaffected: it shows the tag the pipeline checks the templates repository out at (such as `v1.0.0`), or the short commit when it points at a branch. diff --git a/docs/metrics.md b/docs/metrics.md index 565a7a1..06863f3 100644 --- a/docs/metrics.md +++ b/docs/metrics.md @@ -124,7 +124,7 @@ Pick a window (7, 14, 30 or 90 days, or all time) at the top. The page then show | Est. cost per day | Spend over time, from the [pricing file](#pricing-file). | | Latency per day (p50 vs p95) | Time spent waiting on the model per run. A rising p95 usually means bigger pull requests or throttling. | | Comment severity breakdown | `CRITICAL`, `WARNING` and `SUGGESTION` counts. Mostly suggestions can mean the rules file is too loose. | -| Most-commented files | The files the reviewer flags most, per repository. | +| Most-commented files | The files the reviewer flags most, per repository. The count is the number of reviews that left at least one comment on the file, not the number of comments. | | Errors by type | Failed runs by cause, such as `llm-api-error`, `input-too-large`, `truncated-response`, `content-filtered` or `post-failed`. See [troubleshooting](troubleshooting.md#other-errors). | | By engine version, By model | Runs, errors, latency, tokens and cost per PullPicket version and per model deployment, to compare a change before and after. | diff --git a/metrics/internal/summary/types.go b/metrics/internal/summary/types.go index 1f151ac..25b0b61 100644 --- a/metrics/internal/summary/types.go +++ b/metrics/internal/summary/types.go @@ -55,7 +55,10 @@ type severityTotals struct { type fileHotspot struct { Repository string `json:"repository"` File string `json:"file"` - Comments int `json:"comments"` + // Comments counts reviews (runs) that commented on the file, not individual + // comments: events carry filesWithComments, a per-run list of paths. The JSON + // name is kept for compatibility. + Comments int `json:"comments"` } // repoFileKey is the aggregation key for fileComments -- a struct key (not a diff --git a/metrics/internal/web/dashboard.html b/metrics/internal/web/dashboard.html index 88d9689..de45587 100644 --- a/metrics/internal/web/dashboard.html +++ b/metrics/internal/web/dashboard.html @@ -235,7 +235,7 @@
| Repository | File | Comments |
|---|---|---|
| Repository | File | Reviews |