ccgauge 1.1.1 → 1.1.3
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/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-build-manifest.json +42 -42
- package/.next/standalone/.next/app-path-routes-manifest.json +9 -9
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/blocks/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/export/usage/route.js +1 -1
- package/.next/standalone/.next/server/app/api/export/usage/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/scan/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/usage/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/models/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/page.js +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/usage/page.js +2 -2
- package/.next/standalone/.next/server/app/usage/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +9 -9
- package/.next/standalone/.next/server/chunks/567.js +2 -2
- package/.next/standalone/.next/server/chunks/716.js +1 -1
- package/.next/standalone/.next/server/chunks/98.js +1 -1
- package/.next/standalone/.next/server/functions-config-manifest.json +3 -3
- package/.next/standalone/.next/server/middleware-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/static/chunks/148-59989feca70944f2.js +1 -0
- package/.next/standalone/.next/static/chunks/app/{layout-78960a03a026ecdf.js → layout-af71188a257674b5.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/usage/page-8af23d9f5420c824.js +1 -0
- package/.next/standalone/.next/static/css/{e69fbe3cba63076e.css → fabb40b2545c70dd.css} +1 -1
- package/.next/standalone/package.json +3 -3
- package/.next/standalone/public/codex-logo.webp +0 -0
- package/CHANGELOG.md +133 -0
- package/dist/mcp/server.mjs +14 -14
- package/dist/report/index.mjs +36 -8158
- package/package.json +3 -3
- package/.next/standalone/.next/static/chunks/148-f2cba0b76260b8d3.js +0 -1
- package/.next/standalone/.next/static/chunks/app/usage/page-051223f62647aadc.js +0 -1
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/dist/constants.js +0 -10
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/dist/fontkit/index.js +0 -1
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/dist/format-available-values.js +0 -9
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/dist/google/fetch-css-from-google-fonts.js +0 -28
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/dist/google/fetch-font-file.js +0 -24
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/dist/google/fetch-resource.js +0 -46
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/dist/google/find-font-files-in-css.js +0 -34
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/dist/google/font-data.json +0 -17669
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/dist/google/get-fallback-font-override-metrics.js +0 -62
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/dist/google/get-font-axes.js +0 -66
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/dist/google/get-google-fonts-url.js +0 -55
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/dist/google/get-proxy-agent.js +0 -23
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/dist/google/google-fonts-metadata.js +0 -8
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/dist/google/loader.js +0 -175
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/dist/google/retry.js +0 -18
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/dist/google/sort-fonts-variant-values.js +0 -26
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/dist/google/validate-google-font-function-call.js +0 -101
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/dist/local/get-fallback-metrics-from-font-file.js +0 -85
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/dist/local/loader.js +0 -78
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/dist/local/pick-font-file-for-fallback-generation.js +0 -85
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/dist/local/validate-local-font-function-call.js +0 -66
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/dist/next-font-error.js +0 -11
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/google/loader.js +0 -1
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/local/loader.js +0 -1
- package/.next/standalone/node_modules/next/dist/compiled/@next/font/package.json +0 -1
- package/.next/standalone/node_modules/next/dist/compiled/amphtml-validator/index.js +0 -1
- package/.next/standalone/node_modules/next/dist/compiled/amphtml-validator/package.json +0 -1
- package/.next/standalone/node_modules/next/dist/compiled/amphtml-validator/validator_wasm.js +0 -2672
- package/.next/standalone/node_modules/next/dist/server/capsize-font-metrics.json +0 -181516
- package/.next/standalone/node_modules/next/node_modules/@img/sharp-darwin-arm64/LICENSE +0 -191
- package/.next/standalone/node_modules/next/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
- package/.next/standalone/node_modules/next/node_modules/@img/sharp-darwin-arm64/package.json +0 -40
- package/.next/standalone/node_modules/next/node_modules/@img/sharp-libvips-darwin-arm64/lib/index.js +0 -1
- package/.next/standalone/node_modules/next/node_modules/@img/sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib +0 -0
- package/.next/standalone/node_modules/next/node_modules/@img/sharp-libvips-darwin-arm64/package.json +0 -36
- package/.next/standalone/node_modules/next/node_modules/@img/sharp-libvips-darwin-arm64/versions.json +0 -30
- package/.next/standalone/node_modules/next/node_modules/sharp/lib/channel.js +0 -177
- package/.next/standalone/node_modules/next/node_modules/sharp/lib/colour.js +0 -195
- package/.next/standalone/node_modules/next/node_modules/sharp/lib/composite.js +0 -212
- package/.next/standalone/node_modules/next/node_modules/sharp/lib/constructor.js +0 -499
- package/.next/standalone/node_modules/next/node_modules/sharp/lib/index.js +0 -16
- package/.next/standalone/node_modules/next/node_modules/sharp/lib/input.js +0 -809
- package/.next/standalone/node_modules/next/node_modules/sharp/lib/is.js +0 -143
- package/.next/standalone/node_modules/next/node_modules/sharp/lib/libvips.js +0 -207
- package/.next/standalone/node_modules/next/node_modules/sharp/lib/operation.js +0 -1016
- package/.next/standalone/node_modules/next/node_modules/sharp/lib/output.js +0 -1666
- package/.next/standalone/node_modules/next/node_modules/sharp/lib/resize.js +0 -595
- package/.next/standalone/node_modules/next/node_modules/sharp/lib/sharp.js +0 -121
- package/.next/standalone/node_modules/next/node_modules/sharp/lib/utility.js +0 -291
- package/.next/standalone/node_modules/next/node_modules/sharp/package.json +0 -202
- package/.next/standalone/public/codex-logo.png +0 -0
- /package/.next/standalone/.next/static/{7PsGBJ1-BFrm7kVcPye-n → CMei_rtoPIOG9ihnAXFks}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{7PsGBJ1-BFrm7kVcPye-n → CMei_rtoPIOG9ihnAXFks}/_ssgManifest.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ccgauge",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.3",
|
|
4
4
|
"description": "Local web dashboard for Claude Code and OpenAI Codex CLI token usage and cost",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude",
|
|
@@ -57,14 +57,14 @@
|
|
|
57
57
|
],
|
|
58
58
|
"scripts": {
|
|
59
59
|
"dev": "next dev -p 3738",
|
|
60
|
-
"build": "next build && node scripts/build-mcp.mjs && node scripts/build-report.mjs && node scripts/postbuild.mjs",
|
|
60
|
+
"build": "next build && node scripts/build-mcp.mjs && node scripts/build-report.mjs && node scripts/postbuild.mjs && node scripts/smoke-standalone.mjs",
|
|
61
61
|
"build:mcp": "node scripts/build-mcp.mjs",
|
|
62
62
|
"build:report": "node scripts/build-report.mjs",
|
|
63
63
|
"start": "node bin/cli.mjs",
|
|
64
64
|
"start:next": "next start -p 3737",
|
|
65
65
|
"lint": "eslint .",
|
|
66
66
|
"typecheck": "tsc --noEmit",
|
|
67
|
-
"test": "node --experimental-strip-types --no-warnings scripts/test-codex-parser.mjs && node --experimental-strip-types --no-warnings scripts/test-turns.mjs && node --experimental-strip-types --no-warnings scripts/test-source-merge.mjs && node --experimental-strip-types --no-warnings scripts/test-cost-from-usage.mjs && node --experimental-strip-types --no-warnings scripts/test-range.mjs && node scripts/check-parser-versions.mjs && node scripts/check-readme-images.mjs",
|
|
67
|
+
"test": "node --experimental-strip-types --no-warnings scripts/test-codex-parser.mjs && node --experimental-strip-types --no-warnings scripts/test-turns.mjs && node --experimental-strip-types --no-warnings scripts/test-sidechain.mjs && node --experimental-strip-types --no-warnings scripts/test-source-merge.mjs && node --experimental-strip-types --no-warnings scripts/test-cost-from-usage.mjs && node --experimental-strip-types --no-warnings scripts/test-range.mjs && node scripts/check-parser-versions.mjs && node scripts/check-readme-images.mjs",
|
|
68
68
|
"test:mcp": "node scripts/test-mcp-server.mjs",
|
|
69
69
|
"clean": "node -e \"for (const p of ['.next','node_modules','tsconfig.tsbuildinfo']) require('node:fs').rmSync(p,{recursive:true,force:true})\"",
|
|
70
70
|
"screenshots": "node scripts/screenshots.mjs",
|
|
Binary file
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,135 @@ All notable changes to **ccgauge** are documented here.
|
|
|
5
5
|
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and
|
|
6
6
|
this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.1.3] — 2026-06-05
|
|
9
|
+
|
|
10
|
+
A critical hotfix, plus a Workflow / ultracode badge on the usage page.
|
|
11
|
+
**v1.1.2 fails to start on a clean install** — `npx ccgauge` crashes at
|
|
12
|
+
boot, before serving a single page. If you installed 1.1.2, upgrade
|
|
13
|
+
immediately.
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- **Workflow / ultracode badge on the usage page.** A turn that fans out
|
|
18
|
+
parallel sub-agents — Claude Code's Workflow tool, e.g. `ultracode`
|
|
19
|
+
mode — now shows a `Workflow ×N` badge in the usage table's model
|
|
20
|
+
column, where N is the number of distinct parallel sub-agent transcripts
|
|
21
|
+
it spawned. Localized (en / zh).
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- **`npx ccgauge` crashed on every clean machine (1.1.2 regression).**
|
|
26
|
+
The 1.1.2 size-prune deleted `next/dist/compiled/babel`, assuming it was
|
|
27
|
+
a build-only transpiler bundle. It is not: Next's standalone production
|
|
28
|
+
startup requires `babel/code-frame` unconditionally
|
|
29
|
+
(`node-environment.js` → `patch-error-inspect.js` →
|
|
30
|
+
`next-devtools/server/shared.js`). The server threw `Cannot find module
|
|
31
|
+
'next/dist/compiled/babel/code-frame'` at boot and never listened — so
|
|
32
|
+
every page, logo, and JS chunk failed to load with a 400 and the app
|
|
33
|
+
died with a `ChunkLoadError`. `babel` + `babel-packages` are restored to
|
|
34
|
+
the package (tarball 5.3 MB → 5.9 MB — still ~62% below the 15.5 MB it
|
|
35
|
+
started from). The other prunes (`sharp` / `@img`, AMP validator,
|
|
36
|
+
capsize font-metrics, `next/font`) are verified safe and stay removed.
|
|
37
|
+
|
|
38
|
+
- **The build's smoke gate couldn't catch this — now it can.** The
|
|
39
|
+
post-build `smoke-standalone.mjs` booted the server *inside the repo*,
|
|
40
|
+
where Node's module resolution falls back to the project's own
|
|
41
|
+
`node_modules/next` — so a standalone missing its bundled `babel` still
|
|
42
|
+
started and the gate passed green. The gate now copies the standalone to
|
|
43
|
+
a temp dir **outside the repo** and boots it there, faithfully
|
|
44
|
+
reproducing a clean `npx` install. Reverse-tested: with `babel` removed
|
|
45
|
+
it now fails the build (`server exited early … Cannot find module`),
|
|
46
|
+
exactly the regression that shipped 1.1.2.
|
|
47
|
+
|
|
48
|
+
- **Workflow / ultracode sub-agent turns weren't folded into the turn
|
|
49
|
+
that spawned them.** These sub-agent transcripts live under
|
|
50
|
+
`subagents/workflows/wf_<id>/`, a path the sidechain-linking regex
|
|
51
|
+
didn't match — so each parallel agent surfaced as its own orphan
|
|
52
|
+
"(no user text)" row instead of collapsing into the conversation turn
|
|
53
|
+
that launched the fan-out. The matcher now handles the nested workflow
|
|
54
|
+
path (case- and separator-tolerant), with regression tests.
|
|
55
|
+
|
|
56
|
+
### Internal
|
|
57
|
+
|
|
58
|
+
- `postbuild.mjs` now carries a standing warning against re-pruning
|
|
59
|
+
`babel`, documenting the exact startup require chain that depends on it,
|
|
60
|
+
so the assumption that misfired in 1.1.2 can't be repeated silently.
|
|
61
|
+
|
|
62
|
+
## [1.1.2] — 2026-05-30
|
|
63
|
+
|
|
64
|
+
A packaging + polish release. The published npm tarball shrinks by 66%,
|
|
65
|
+
the nav gets a Docs link, and Claude Opus 4.8 pricing lands. No
|
|
66
|
+
breaking changes — drop-in over 1.1.x.
|
|
67
|
+
|
|
68
|
+
### Highlights
|
|
69
|
+
|
|
70
|
+
- **npm package is 66% smaller** — tarball **15.5 MB → 5.3 MB**
|
|
71
|
+
(unpacked 51.8 MB → 22.2 MB). The bulk was a macOS `sharp` native
|
|
72
|
+
binary (~16 MB of libvips) that `next build` traced into a nested
|
|
73
|
+
`node_modules` the old prune never reached — pure dead weight since
|
|
74
|
+
ccgauge sets `images: { unoptimized: true }` and uses no `next/image`.
|
|
75
|
+
We also drop other Next internals ccgauge never loads (AMP validator,
|
|
76
|
+
`next/font` font-metrics + babel bundles) and shrink the Codex logo.
|
|
77
|
+
- **Docs link in the nav** — a new "Docs" entry after Settings opens the
|
|
78
|
+
documentation site in a new tab. It follows the in-app language:
|
|
79
|
+
English → `chengzuopeng.github.io/ccgauge/`, Chinese →
|
|
80
|
+
`…/ccgauge/zh/`.
|
|
81
|
+
- **Claude Opus 4.8 pricing** — added to the built-in table, and the
|
|
82
|
+
`opus` family fallback now points at 4.8 so unknown future Opus date
|
|
83
|
+
suffixes price correctly.
|
|
84
|
+
|
|
85
|
+
### Added
|
|
86
|
+
|
|
87
|
+
- **Built-in pricing for `claude-opus-4-8`** ($5 / $25 per 1M in/out,
|
|
88
|
+
$6.25 / $10 cache-write 5m/1h, $0.50 cache-read).
|
|
89
|
+
- **Docs nav link** — locale-aware external link with an external-arrow
|
|
90
|
+
glyph, opens in a new tab (`rel="noopener noreferrer"`).
|
|
91
|
+
- **`scripts/smoke-standalone.mjs`** — a post-build smoke gate wired
|
|
92
|
+
into `pnpm build`. It boots the pruned standalone server and hits the
|
|
93
|
+
key routes; if any page 500s or the server crashes, the build fails.
|
|
94
|
+
This is the safety net that makes pruning Next internals viable: a
|
|
95
|
+
future Next upgrade that starts requiring a pruned file is caught at
|
|
96
|
+
build time instead of shipping a broken package.
|
|
97
|
+
|
|
98
|
+
### Changed
|
|
99
|
+
|
|
100
|
+
- **`opus` family pricing fallback** now resolves to `claude-opus-4-8`
|
|
101
|
+
(was `claude-opus-4-7`).
|
|
102
|
+
- **Nav: removed the tagline** next to the logo ("usage dashboard for
|
|
103
|
+
AI coding CLIs" / "AI 编程 CLI 的本地用量看板") for a cleaner bar. The
|
|
104
|
+
string is still used for the page `<meta description>` and the
|
|
105
|
+
empty-state copy.
|
|
106
|
+
- **Codex logo `png → webp`** — 354 KB / 816² PNG → 23 KB / 512² WebP
|
|
107
|
+
(matches the Claude logo), a 331 KB drop.
|
|
108
|
+
- **`ccgauge report` bundle is minified** (`dist/report/index.mjs`,
|
|
109
|
+
307 KB → 166 KB), same as the MCP bundle. The output is machine-read
|
|
110
|
+
only, so there's no debuggability cost.
|
|
111
|
+
- **`cost_estimator` MCP tool docs** reference Opus 4.8 in their
|
|
112
|
+
examples.
|
|
113
|
+
|
|
114
|
+
### Fixed
|
|
115
|
+
|
|
116
|
+
- **Build prune missed a nested `sharp` / `@img` copy (~16 MB).**
|
|
117
|
+
`postbuild` only swept the top-level + `.pnpm` `node_modules`; Next's
|
|
118
|
+
file tracer had copied the platform libvips binary into a real
|
|
119
|
+
`next/node_modules/@img`. A new recursive sweep removes
|
|
120
|
+
`@img` / `sharp` / `typescript` wherever they nest, plus the AMP
|
|
121
|
+
validator, capsize font-metrics, babel bundles, and `next/font`
|
|
122
|
+
loaders — none of which ccgauge's configuration loads.
|
|
123
|
+
|
|
124
|
+
### Internal
|
|
125
|
+
|
|
126
|
+
- `postbuild` prune is now two-pass: top-level / `.pnpm`
|
|
127
|
+
(pre-materialize) + a recursive `pruneModulesTree` (post-materialize)
|
|
128
|
+
that only walks `node_modules` trees, never package source. Each
|
|
129
|
+
Next-internal removal carries a comment naming the standing
|
|
130
|
+
assumption (no `next/image` optimization, no AMP, no `next/font`)
|
|
131
|
+
that keeps it safe.
|
|
132
|
+
- The standalone smoke gate is reverse-tested: removing a
|
|
133
|
+
production-required Next runtime makes every page 500 and the gate
|
|
134
|
+
exits non-zero, so it provably catches a broken prune rather than
|
|
135
|
+
silently passing.
|
|
136
|
+
|
|
8
137
|
## [1.1.1] — 2026-05-29
|
|
9
138
|
|
|
10
139
|
A polish-and-harden release: motion across the dashboard and marketing
|
|
@@ -1188,6 +1317,10 @@ of HTML to the browser.
|
|
|
1188
1317
|
- Initial public release as `ccgauge`: local Next.js dashboard for
|
|
1189
1318
|
Claude Code token usage, cost, and 5-hour block tracking.
|
|
1190
1319
|
|
|
1320
|
+
[1.1.3]: https://github.com/chengzuopeng/ccgauge/compare/v1.1.2...v1.1.3
|
|
1321
|
+
[1.1.2]: https://github.com/chengzuopeng/ccgauge/compare/v1.1.1...v1.1.2
|
|
1322
|
+
[1.1.1]: https://github.com/chengzuopeng/ccgauge/compare/v1.1.0...v1.1.1
|
|
1323
|
+
[1.1.0]: https://github.com/chengzuopeng/ccgauge/compare/v1.0.5...v1.1.0
|
|
1191
1324
|
[1.0.5]: https://github.com/chengzuopeng/ccgauge/compare/v1.0.4...v1.0.5
|
|
1192
1325
|
[1.0.4]: https://github.com/chengzuopeng/ccgauge/compare/v1.0.3...v1.0.4
|
|
1193
1326
|
[1.0.3]: https://github.com/chengzuopeng/ccgauge/compare/v1.0.2...v1.0.3
|