Repository navigation
Releases
Releases · Lovenndme/dsh-profile-stats
v2.4.20
2.4.20 — 2026-11-11
- fix: tiny pie slices stay visible
- fix: call the multiplier billing method 倍率 instead of 打折
- style: redesign the provider settings page; billing tags are grey
- feat: provider settings page; the provider card is read-only
- feat: remove a provider from the whole page; every provider gets its own row
- fix: today's cache hit rate to two decimals; the provider card follows the header range only
v2.4.19
2.4.19 — 2026-11-11
- docs: fuller README — why, a section-by-section tour, how spend is worked out, FAQ, local files
- docs: bring the short descriptions and range notes up to date
- docs(market): describe the current page — new ranges, spend, projects, independent model chart
- docs: recapture the README image (token stats ring card)
v2.4.18
2.4.18 — 2026-11-10
- feat: token stats card — a ring chart of where tokens went: system prompt, tool definitions, user messages, injected context, skills, tool calls, reasoning, answers
- fix: the first card's delta sits above the trend; the card is narrower
- feat: the first card's trend is back, drawn per range
- feat: drop the today's tokens card; five headline cards
- fix: the first card's delta sits right after the number slot instead of the far right
- fix: pin the first card's delta to the right of the number row
- docs: recapture the README image (header ranges, spend card, projects, costs)
- feat: drop the first card's trend; the delta is a pill right after the number
- docs: list the fuzz test file in CONTRIBUTING
- fix: keep the first card's trend in place while the number counts between ranges
- fix: drop the peak share from the spend card; first card's trend is a line and gets the whole value row
- fix: billing tags back to blue (a slightly darker blue in light mode for contrast), red only for not saved
- fix: flat price for relays and coding plans is DeepSeek's peak price
- fix: plan usage label names its start day instead of "this month"
- fix: plan hover shows only this month's usage against the fee
- feat: peak pricing only for list-price providers, coding plans valued by usage, Ollama tags
- fix: clicking Custom moves the range highlight there while the date picker is open
- fix(preview): vary the mock model mix by recency so the 7-day / 4-week / 6-month shares differ
- feat: model distribution share view is a pie chart
- feat: the model distribution no longer follows the header range
- feat: header range gets today and this week, drops last 7 / 30 / 90 days
- fix: put the billing tag (discount multiplier, plan, not saved) in its own column right of the spend
- fix: leave the discount multiplier input empty instead of hinting 0.12
- feat: drop the per-model unit-price billing mode, make every billing tag red
- fix: drop the USD rate button, solid blue billing tags (red when not saved), clearer list-price label
- fix: deep-test pass — host data integrity, cost engine edge cases, UI state and layout
- feat: price other vendors' models from a bundled LiteLLM table, USD converted to CNY, per-model own prices
- docs: spend card, billing methods and the built-in DeepSeek list prices
- feat: cost estimate — list-price value by call time, per-provider billing methods, spend card and columns
v2.4.17
2.4.17 — 2026-11-09
- docs: add CONTRIBUTING.md
v2.4.16
2.4.16 — 2026-11-09
- docs: projects card, daily cache hit rate and the model share view
- feat: project (working directory) split, daily cache hit rate trend, model share view
- docs: this month and custom ranges, local provider names, the merged streak card
- feat: This-month and custom date ranges, local provider names, one streak card plus today's cache hit rate
v2.4.15
2.4.15 — 2026-11-06
- ci: find the open market PR through the API, since gh pr list --head returned nothing
- ci: build the market sync branch on the catalog's main, and check the token first
- docs(market): describe the range switch, the trend line and the export
- docs(readme): drop the mainland mirror install note
- docs(readme): swap the hero for a light-theme preview capture and drop the screenshots section
- docs: recapture every screenshot from the current preview page
- feat(ui): first KPI trend shows daily bars for 7 / 30 days, the 7-day average for longer ranges
- fix(ui): the trend line's end dot stays round instead of looking like a fork
- style(ui): period delta in red when usage grows, green when it falls
- fix(ui): a long period delta no longer overlaps the first KPI number
- fix(ui): put the trend line beside the first KPI number so the five cards share one height and baseline
- docs: cache hit rate definition, how to compare with a console, and the design research behind it
- fix(client): Cache Lens takes the four parts as logged; per-provider hit rate; provider card Today button
- fix(host): count a step as its four disjoint parts, so old logs without totalTokens keep their cache
- docs: describe the time range, and make the Cache Lens docs match the code
- test: cover the time range fixes in the in-repo suite
- fix: switching the time range resets the model chart to that range's default granularity
- chore: ignore the screenshot and playwright-cli scratch folders that preview checks leave in the repo
- fix: small issues from the range review — range switch label, CSV quoting, JSON field names, stale comment
- fix: period delta compares finished days only, and only when the previous period is fully covered
- fix: model chart granularity, clipped first bucket and axis labels under the time range
- fix: the range window variable shadowed the global window, so a finished update never reloaded the page
- feat: page-level time range (7 / 30 / 90 days / all time) with export, trend and period delta
- fix(ui): tooltips follow the mouse again
- docs: regenerate the README images from the sanitized preview
- fix: keep private relay and personal provider names out of public files; use current model names in the preview data
- docs(readme): serve the panel capture from a fresh path so the CDN picks it up
- docs(readme): use a real capture of the preview page as the hero image
- docs(readme): replace the hero shot with a rendered panel mock, drop the anchor bar, center the screenshots
- docs(readme): put the wide heatmap on its own row, pair the two square screenshots
- docs(readme): restructure into centered hero, unified badges, screenshots grid and feature table
- docs: note the CI log artifacts and the auto-filed failure issue
- ci: give each artifact a slash-free name (upload-artifact rejects / in names)
- ci: keep the test log as an artifact and open an issue when the suite fails
- test: cover the identity override file, provider grouping and the registry TTL
- test: add an in-repo node:test suite and fix the bugs it found
- docs(readme): add release / npm / downloads / license / awesome-dsh-plugin badges
v2.4.14
2.4.14 — 2026-11-05
- docs: drop the Cache Lens screenshot from the README (the overview already shows the page)
- docs: bust the image cache so GitHub renders the new screenshots (camo caches by URL)
- docs: refresh the README, the market description and all four screenshots for the new UI
v2.4.13
2.4.13 — 2026-11-04
- perf(host): measure the scan phases and raise readSession concurrency to 8
- fix(lens): take uncached input from totals.inputTokens so a subtraction artifact can no longer fake a 100% hit rate
- fix(lens): divide the cache table by input, so the hit rate and the rows can never disagree
v2.4.12
2.4.12 — 2026-11-04
- docs(findings): correct C-6 — the release workflow is active; the 10 earlier commits simply landed after its last run
- style(ui): center the model chart legend under the plot area
- docs: background freshness, the firstScan field and the refresh button's new meaning (INTERNALS, FINDINGS B-12)
- fix(ui): stop showing "scanning" on every open; only the first full scan shows progress
- feat(host): keep the snapshot fresh in the background and flag only the first full scan
- style(ui): drop the "last 12 months · total" note next to the Token activity title
- docs: FINDINGS.md for the review pass, and README / INTERNALS brought in line with the new page
- chore: drop the unused partsText helper and seven dictionary keys left from the old UI; name the activity window constant after what it is
- fix(ui): the activity window is exactly 53 weeks, and tooltips stay fully on screen
- feat(ui): motion and keyboard details
- feat(ui): Cache Lens and provider split rebuilt; the last of the old styles removed
- feat(ui): model distribution — stacked columns with a shared bucket model and a readable tooltip
- fix: size the model chart axis by the tallest stack, not the tallest single segment
- feat(ui): Token activity — three modes with three different shapes on one shared canvas
- feat(ui): new page shell — theme-derived palette, header, status strip and KPI tiles
- feat(preview): a local preview page that renders the real client.js against built-in data
- fix: inject the stylesheet before first paint, keep it current after hot reload, never pull it from under another instance
- fix: refresh re-fetches at once, retry no longer reloads the whole app, and updates cannot be double-started
- fix: heatmap weeks start on Monday like the model chart, and "cumulative" includes earlier usage
- fix: localise the model chart's monthly labels ("月" was hard-coded, English showed "11月")
- fix: pick the 万/亿 unit after rounding, and keep axis steps at whole tokens
- fix: Cache Lens segments always sum exactly to the total, and all three rows stay
- fix: the 5th model/provider colour was an undefined theme token, and "other models" reused the 3rd colour
- fix: DST-safe calendar arithmetic for the model chart buckets and the heatmap start
- fix: only DeepSeek model ids fold into the Flash/Pro families
- docs(host): the header comment listed two GET routes; there are three routes, two of them POST
- fix(host): refuse a second /update while an in-panel update is running
- fix(host): compute streak day arithmetic in UTC so streaks work west of Greenwich
- fix(host): count an orphaned inherited prefix with its own per-day and provider detail
- docs: give Claude Code full execution authority; owner does the visual acceptance, revert is the safety net
- docs: hand-off brief for the UI rewrite (with self-discovery pass and acceptance criteria)
- feat: remove the page-level range selector; the cumulative card and cache lens are always all-time
- feat: the provider card follows only its own today/all-time toggle, not the page range
- revert: drop the line chart, keep the day/week/month switch on the model chart
- feat: model chart gets its own day/week/month and bar/line switches with a usage and an average line, independent of the page range
- Revert "fix: make the heatmap mode switch change the shape (weekly cells in week/total), and let both tooltips follow the cursor"
- fix: make the heatmap mode switch change the shape (weekly cells in week/total), and let both tooltips follow the cursor
- fix: anchor the model chart tooltip to the cursor and let it follow the pointer
- fix: compute the cache lens headline with the official hit-rate formula (cache / input), display-only rounding stays
v2.4.11
2.4.11 — 2026-11-03
- ci: sync the marketplace entry description nightly, PR only when it drifts
- fix: keep every card mounted when the selected range has no data (provider split too)
- fix: keep the model chart card when the selected range has no usage