3ab675a83b
- Added `WorkerInbox` and `installWorkerInbox(port)` to queue worker messages before bind. - Added `consumeWorkerInbox()` to replay buffered messages and clear one active inbox. - Added buffered inbox consumption in JS and tab worker transports before direct message handlers. - Normalized worker selector arguments to the `__omp_worker_*` naming across workers and tests.
7.1 KiB
7.1 KiB
Changelog
[Unreleased]
Changed
- Renamed
__omp_stats_sync_workerto__omp_worker_stats_sync.
[15.13.1] - 2026-06-15
Fixed
- Dropped
gitfrom the profanity list so normal repository mentions no longer count as profanity
[15.12.4] - 2026-06-13
Fixed
- Fixed the stats dashboard's SQLite init never setting
PRAGMA busy_timeout, so a concurrentompstartup hitting WAL recovery could crashinitDb()withSQLITE_BUSYinstead of waiting through it. The busy handler is now installed beforePRAGMA journal_mode=WAL(#2421).
[15.11.0] - 2026-06-10
Added
- Added support for prebuilt npm bundle mode via
PI_BUNDLED, allowing the stats server to use an embedded dashboard bundle in packaged CLI distributions
Fixed
- Fixed handling of legacy
embedded-client.generated.txtplaceholder content so it is treated as missing archive instead of being decoded into invalid bytes - Fixed ENOENT handling while scanning dashboard source/build directories so missing
client/ordist/clienttrees no longer crash startup
[15.10.11] - 2026-06-10
Changed
- Bundled-model lookups (
getBundledModel,GeneratedProvider) now import from the new@oh-my-pi/pi-catalogpackage instead of the@oh-my-pi/pi-aibarrel, which no longer re-exports catalog values - The session-sync worker re-enters the host CLI entry (
workerHostEntry()+__omp_stats_sync_workerargv selector) when running inside omp — source, npm bundle, or compiled binary — and keeps loading its ownsync-worker.tsmodule directly for standaloneomp-stats, bun test, and SDK hosts
[15.1.6] - 2026-05-19
Fixed
- Fixed
omp statscrashing on first session sync in publishedomp-{linux,darwin,windows}-*binaries withBuildMessage: ModuleNotFound resolving "./packages/stats/src/sync-worker.ts"; the release build script now lists the stats sync, browser tab, and JS eval workers as explicit--compileentrypoints so Bun emits them into bunfs, matching the dev build script and the AGENTS.md worker spawn contract. (#1150)
[15.1.0] - 2026-05-15
Fixed
- Fixed incremental
parseSessionFile(path, fromOffset)losing the active service tier when resuming past aservice_tier_changeentry, so priority OpenAI replies appended after the offset are now credited withpremiumRequests: 1(regression introduced by 13f59162e which stopped folding priority-tier into per-message premium counts)
[15.0.1] - 2026-05-14
Breaking Changes
- Raised the minimum required Bun version to >=1.3.14 in package metadata
Changed
- Changed the "Premium Reqs" dashboard card to also include OpenAI priority service-tier requests (
serviceTier: "priority"), counting each as 1 premium request alongside GitHub Copilot premium calls. Pre-existing sessions are backfilled on the nextomp statsrun: a one-shotpremium_requests_priority_v1sentinel wipesfile_offsetsso every session re-parses, andinsertMessageStatsnowUPSERTspremium_requests(other columns untouched) using theservice_tier_changeentries already in the session log to retroactively credit priority traffic.
[14.9.9] - 2026-05-12
Added
- Added separate input-token and output-token totals to the overview dashboard cards.
Fixed
- Fixed
omp statsin compiled binaries by using the serial sync path instead of spawning a raw file-asset worker that cannot import bundled parser code. - Fixed behavior backfills after failed compiled-binary sync attempts by marking the backfill sentinel only after a successful full sync.
[14.9.7] - 2026-05-12
Breaking Changes
- Broke backward compatibility of behavior stats fields by replacing
yellingSentences/dramaRunswithyelling/anguishand addingnegation,repetition,blamein query result types and persisteduser_messagesschema
Added
- Added
SyncOptionstosyncAllSessionswithonProgressandworkersto optionally show per-file sync progress and tune parser concurrency - Added new frustration behavior metrics (
negation,repetition,blame) plus afrustrationaggregate in behavior charts, model tables, and summary cards
Changed
- Changed sync ingestion to parse session files through a worker pool while applying parsed results and database writes on the main thread
- Changed behavior analysis to strip code blocks, XML/URLs, quoted lines, and placeholders before scoring and to suppress signals on long structured messages
- Changed dashboard metrics labels and totals to the new signal names, including replacing the old three-signal totals with
yelling,profanity,anguish, andfrustration - Changed sync output to print a live terminal progress indicator while processing session files
Fixed
- Fixed user-message attribution so assistant model/provider links are backfilled during incremental sync instead of being left unknown
- Fixed word-boundary regex handling in profanity detection so matching now works as intended in normal prose
[14.9.5] - 2026-05-12
Added
- Added time range selection options (1h, 24h, 7d, 30d, 90d, All) to the dashboard header and bound them to reloading statistics for the selected window
- Added a Behavior dashboard page that tracks user yelling (CAPS), profanity, and dramatic punctuation (
!!!/???) per day, with by-model comparisons mirroring the cost page - Added a per-model behavior table to the Behavior page mirroring the Models table: sortable rows of CAPS / profanity / drama hits per model with sparkline trend and an expandable per-model breakdown chart
- Added optional
rangequery parameter support on stats endpoints to retrieve metrics scoped to a requested time window
Changed
- Changed the Costs dashboard summary to report totals, average per day, and top model for the selected time range instead of a fixed 30-day window and removed the previous-30-day trend comparison
- Changed behavior metrics ingestion to compute yelling from user message sentence-level uppercase ratios, filtering out short uppercase fragments so the behavior data is attributed to messages more accurately
- Removed per-chart 14/30/90 day pickers on Costs and Behavior pages so every page obeys the single time-range selector in the header
- Changed dashboard and stats queries to return data from the selected time window instead of always using all-time aggregates
- Changed the default displayed range in the UI/API to last 24h
- Added support for returning all data when
range=allis requested
Fixed
- Fixed handling of unknown
rangevalues by falling back to the last 24h instead of returning unscoped data - Fixed
omp statsfailing to build the client on globally-installed installs by promotingtailwindcssfromdevDependenciestodependencies(the client build runs at runtime)
[14.5.4] - 2026-04-28
Fixed
- Fixed GPT cost reporting by deriving missing OpenAI Codex costs from the model catalog and backfilling existing zero-cost rows.
[13.6.0] - 2026-03-03
Fixed
- Include subtask session files in usage stats (#250)