@oh-my-pi/omp-stats 15.12.4 → 15.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -12
- package/package.json +4 -4
- package/src/db.ts +3 -1
- package/src/user-metrics.ts +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,28 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
-
## [15.12.4] - 2026-06-13
|
|
6
|
-
|
|
7
|
-
### Fixed
|
|
8
|
-
|
|
9
|
-
- Fixed the stats dashboard's SQLite init never setting `PRAGMA busy_timeout`, so a concurrent `omp` startup hitting WAL recovery could crash `initDb()` with `SQLITE_BUSY` instead of waiting through it. The busy handler is now installed before `PRAGMA journal_mode=WAL` ([#2421](https://github.com/can1357/oh-my-pi/issues/2421)).
|
|
10
|
-
|
|
11
|
-
## [15.11.0] - 2026-06-10
|
|
12
5
|
### Added
|
|
13
6
|
|
|
14
7
|
- Added support for prebuilt npm bundle mode via `PI_BUNDLED`, allowing the stats server to use an embedded dashboard bundle in packaged CLI distributions
|
|
15
8
|
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- Bundled-model lookups (`getBundledModel`, `GeneratedProvider`) now import from the new `@oh-my-pi/pi-catalog` package instead of the `@oh-my-pi/pi-ai` barrel, which no longer re-exports catalog values
|
|
12
|
+
- The session-sync worker re-enters the host CLI entry (`workerHostEntry()` + `__omp_stats_sync_worker` argv selector) when running inside omp — source, npm bundle, or compiled binary — and keeps loading its own `sync-worker.ts` module directly for standalone `omp-stats`, bun test, and SDK hosts
|
|
13
|
+
|
|
16
14
|
### Fixed
|
|
17
15
|
|
|
16
|
+
- Dropped `git` from the profanity list so normal repository mentions no longer count as profanity
|
|
17
|
+
- Fixed the stats dashboard's SQLite init never setting `PRAGMA busy_timeout`, so a concurrent `omp` startup hitting WAL recovery could crash `initDb()` with `SQLITE_BUSY` instead of waiting through it. The busy handler is now installed before `PRAGMA journal_mode=WAL` ([#2421](https://github.com/can1357/oh-my-pi/issues/2421)).
|
|
18
18
|
- Fixed handling of legacy `embedded-client.generated.txt` placeholder content so it is treated as missing archive instead of being decoded into invalid bytes
|
|
19
19
|
- Fixed ENOENT handling while scanning dashboard source/build directories so missing `client/` or `dist/client` trees no longer crash startup
|
|
20
20
|
|
|
21
|
-
## [15.
|
|
21
|
+
## [15.13.0] - 2026-06-14
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
## [15.12.4] - 2026-06-13
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
## [15.11.0] - 2026-06-10
|
|
26
|
+
|
|
27
|
+
## [15.10.11] - 2026-06-10
|
|
27
28
|
|
|
28
29
|
## [15.1.6] - 2026-05-19
|
|
29
30
|
|
|
@@ -38,6 +39,7 @@
|
|
|
38
39
|
- Fixed incremental `parseSessionFile(path, fromOffset)` losing the active service tier when resuming past a `service_tier_change` entry, so priority OpenAI replies appended after the offset are now credited with `premiumRequests: 1` (regression introduced by 13f59162e which stopped folding priority-tier into per-message premium counts)
|
|
39
40
|
|
|
40
41
|
## [15.0.1] - 2026-05-14
|
|
42
|
+
|
|
41
43
|
### Breaking Changes
|
|
42
44
|
|
|
43
45
|
- Raised the minimum required Bun version to >=1.3.14 in package metadata
|
|
@@ -58,6 +60,7 @@
|
|
|
58
60
|
- Fixed behavior backfills after failed compiled-binary sync attempts by marking the backfill sentinel only after a successful full sync.
|
|
59
61
|
|
|
60
62
|
## [14.9.7] - 2026-05-12
|
|
63
|
+
|
|
61
64
|
### Breaking Changes
|
|
62
65
|
|
|
63
66
|
- Broke backward compatibility of behavior stats fields by replacing `yellingSentences`/`dramaRuns` with `yelling`/`anguish` and adding `negation`, `repetition`, `blame` in query result types and persisted `user_messages` schema
|
|
@@ -109,6 +112,7 @@
|
|
|
109
112
|
- Fixed GPT cost reporting by deriving missing OpenAI Codex costs from the model catalog and backfilling existing zero-cost rows.
|
|
110
113
|
|
|
111
114
|
## [13.6.0] - 2026-03-03
|
|
115
|
+
|
|
112
116
|
### Fixed
|
|
113
117
|
|
|
114
|
-
- Include subtask session files in usage stats ([#250](https://github.com/can1357/oh-my-pi/issues/250))
|
|
118
|
+
- Include subtask session files in usage stats ([#250](https://github.com/can1357/oh-my-pi/issues/250))
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@oh-my-pi/omp-stats",
|
|
4
|
-
"version": "15.
|
|
4
|
+
"version": "15.13.0",
|
|
5
5
|
"description": "Local observability dashboard for pi AI usage statistics",
|
|
6
6
|
"homepage": "https://omp.sh",
|
|
7
7
|
"author": "Can Boluk",
|
|
@@ -37,9 +37,9 @@
|
|
|
37
37
|
"fmt": "biome format --write ."
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@oh-my-pi/pi-ai": "15.
|
|
41
|
-
"@oh-my-pi/pi-catalog": "15.
|
|
42
|
-
"@oh-my-pi/pi-utils": "15.
|
|
40
|
+
"@oh-my-pi/pi-ai": "15.13.0",
|
|
41
|
+
"@oh-my-pi/pi-catalog": "15.13.0",
|
|
42
|
+
"@oh-my-pi/pi-utils": "15.13.0",
|
|
43
43
|
"@tailwindcss/node": "^4.3.0",
|
|
44
44
|
"chart.js": "^4.5.1",
|
|
45
45
|
"date-fns": "^4.4.0",
|
package/src/db.ts
CHANGED
|
@@ -38,7 +38,7 @@ let db: Database | null = null;
|
|
|
38
38
|
|
|
39
39
|
const BACKFILL_COMPLETE = "complete";
|
|
40
40
|
const BACKFILL_PENDING = "pending";
|
|
41
|
-
const USER_MESSAGES_BACKFILL_KEY = "
|
|
41
|
+
const USER_MESSAGES_BACKFILL_KEY = "user_messages_v6";
|
|
42
42
|
const USER_MESSAGE_LINKS_REPAIR_KEY = "user_message_links_v1";
|
|
43
43
|
const PRIORITY_PREMIUM_REQUESTS_BACKFILL_KEY = "premium_requests_priority_v1";
|
|
44
44
|
function shouldResetBackfill(value: string | undefined): boolean {
|
|
@@ -776,6 +776,8 @@ export function getCostTimeSeries(days = 90, cutoff?: number | null): CostTimeSe
|
|
|
776
776
|
* left those metrics matching nothing in real prose.
|
|
777
777
|
* - v5: renamed `yelling_sentences` column to `yelling` to match the other
|
|
778
778
|
* single-word signal columns (profanity, anguish, negation, ...).
|
|
779
|
+
* - v6: dropped `git` from the profanity word list - it collided with the
|
|
780
|
+
* version-control tool name, so existing rows over-counted profanity.
|
|
779
781
|
*
|
|
780
782
|
* Existing `messages` rows are unaffected - `INSERT OR IGNORE` keeps them.
|
|
781
783
|
*/
|