Skip to content

fix(deps): avoid c12 chokidar trust downgrade - #1159

Merged
ryoppippi merged 1 commit into
mainfrom
codex/renovate-pnpm-trust-policy
May 25, 2026
Merged

ryoppippi merged 1 commit into
mainfrom
codex/renovate-pnpm-trust-policy

Conversation

@ryoppippi

@ryoppippi ryoppippi commented May 25, 2026 •

Copy link
Copy Markdown
Member

Summary

  • update release tooling catalogs to bumpp ^11.1.0 and changelogithub ^14.0.0
  • override changelogithub\u003ec12 to c12 3.3.4, the latest 3.x release
  • remove chokidar 4.0.3 from pnpm-lock.yaml instead of adding a pnpm trustPolicy exception

Context

Renovate was correctly detecting pnpm catalog updates and attempting to update pnpm-lock.yaml artifacts, but its pnpm install step failed with ERR_PNPM_TRUST_DOWNGRADE for [email protected] before the lockfile could be committed.

c12 v3.3.3 updated chokidar to 5.x, and c12 3.3.4 is the current 3.x tag. bumpp v11 no longer pulls the old c12 path; changelogithub v14 still resolves c12, so the targeted override keeps it on c12 3.x while avoiding chokidar 4.0.3.

Validation

  • pnpm install --frozen-lockfile
  • pnpm install --lockfile-only --no-frozen-lockfile --store-dir /tmp/ccusage-pnpm-store-c12-3x
  • pnpm why chokidar
  • pnpm why c12
  • pnpm bumpp --version
  • pnpm changelogithub --version

Summary by CodeRabbit

  • Chores
    • Updated release management and changelog generation tooling dependencies to their latest versions.

Review Change Stack

@coderabbitai

coderabbitai Bot commented May 25, 2026 •

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ddd2c71b-80af-4d93-b22f-39bdb4e35482

📥 Commits

Reviewing files that changed from the base of the PR and between 70d4584 and 543ce35.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (1)
  • pnpm-workspace.yaml

📝 Walkthrough

Walkthrough

Updates pnpm-workspace.yaml to bump release tool versions: bumpp to ^11.1.0 and changelogithub to ^14.0.0. Adds an overrides section to pin changelogithub's transitive c12 dependency to 3.3.4.

Changes

Release Dependencies and Overrides

Layer / File(s) Summary
Release catalog versions and overrides
pnpm-workspace.yaml
Bumpp and changelogithub versions updated in the release catalog; new overrides entry pins changelogithub's c12 transitive dependency to 3.3.4.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Poem

🐰 A bump here, a pin there,
Dependencies flow through the air,
Release tools now stand tall and bright,
Version constraints held just right!
Changelogithub sings its song anew.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title references avoiding a 'c12 chokidar trust downgrade', which directly relates to the actual change of pinning changelogithub's c12 transitive dependency to version 3.3.4 to resolve the chokidar dependency issue while maintaining trustPolicy settings.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/renovate-pnpm-trust-policy

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented May 25, 2026 •

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
ccusage-guide 543ce35 Commit Preview URL

Branch Preview URL
May 25 2026, 07:26 PM

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 1 file

Re-trigger cubic

Update release tooling so bumpp no longer pulls c12 3.3.2 and changelogithub uses v14.

Pin changelogithub transitive c12 to the latest 3.x release, 3.3.4, which moved its chokidar dependency to 5.x. This removes chokidar 4.0.3 from pnpm-lock.yaml instead of adding a pnpm trustPolicy exception.

Renovate artifact updates failed before committing pnpm-lock.yaml because pnpm reported ERR_PNPM_TRUST_DOWNGRADE for chokidar 4.0.3. Keeping the fix in dependency resolution preserves trustPolicy: no-downgrade for the workspace.
@ryoppippi
ryoppippi force-pushed the codex/renovate-pnpm-trust-policy branch from 2080e37 to 543ce35 Compare May 25, 2026 19:26
@ryoppippi ryoppippi changed the title fix(pnpm): allow chokidar trust policy exception fix(deps): avoid c12 chokidar trust downgrade May 25, 2026
@socket-security

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addednpm/​bumpp@​11.1.0991008292100
Addednpm/​changelogithub@​14.0.0961009283100

View full report

@ryoppippi
ryoppippi merged commit f7f7be5 into main May 25, 2026
27 checks passed
@ryoppippi
ryoppippi deleted the codex/renovate-pnpm-trust-policy branch May 25, 2026 19:28
@github-actions

Copy link
Copy Markdown
Contributor

ccusage performance comparison

PR SHA: 2080e37a6b74
Base SHA: 70d458447dec

This compares the Rust PR release binary against the configured base package on the same CI runner.

Package runner startup

Execution setup measures any pre-benchmark package materialization used by the execution benchmark. Bunx temp cache measures one bunx -p <url> ccusage --version run with an empty Bun install cache. Warm reuses that cache and reports the median of repeated runs.

Package SHA Execution setup Bunx temp cache Bunx warm median Warm samples
Base pkg.pr.new 70d458447dec 805.4ms 480.6ms 33.6ms 3
PR pkg.pr.new 2080e37a6b74 390.2ms 453.5ms 33.9ms 3

Cached bunx execution performance

Runs the same large fixture through bunx -p <pkg.pr.new URL> ccusage after the Bun install cache has already been populated by the startup measurement. This separates cached package-runner execution from first-fetch package materialization.

Fixtures: Claude /home/runner/work/_temp/ccusage-large-fixture (1.01 GiB, 2,597 files), Codex /home/runner/work/_temp/ccusage-large-codex-fixture (1.01 GiB, 2,597 files)
Base package: 70d458447dec; PR package: 2080e37a6b74. Both run through bunx -p <pkg.pr.new URL> ccusage using the warmed Bun install cache from package runner startup, measured by hyperfine with 0 warmups and 1 runs.
Peak RSS is measured separately with /usr/bin/time using 1 runs. Lower RSS ratios are better.

Command Input Base median PR median PR vs base Base peak RSS PR peak RSS PR/base RSS Base throughput PR throughput
bunx -p <pkg> ccusage claude --offline --json 1.01 GiB 513.9ms 514.8ms 1.00x 266.08 MiB 260.08 MiB 0.98x 1.96 GiB/s 1.96 GiB/s
bunx -p <pkg> ccusage codex --offline --json 1.01 GiB 376.9ms 369.1ms 1.02x 59.95 MiB 59.83 MiB 1.00x 2.67 GiB/s 2.73 GiB/s

Package runtime diagnostics

Compares the PR package wrapper, the installed native optional dependency binary, and the workspace release binary on the same large fixture. This identifies whether slow package results come from JavaScript wrapper overhead, the published native binary build, or the Rust core itself.

Fixtures: Claude /home/runner/work/_temp/ccusage-large-fixture (1.01 GiB, 2,597 files), Codex /home/runner/work/_temp/ccusage-large-codex-fixture (1.01 GiB, 2,597 files)
All rows run --offline --json, measured by hyperfine with 0 warmups and 1 runs. This isolates wrapper overhead from the installed native optional dependency and the workspace release binary built on the runner.

Command Runtime Input Median Throughput Samples
claude --offline --json Package wrapper 1.01 GiB 503.4ms 2.00 GiB/s 1
claude --offline --json Installed native binary 1.01 GiB 476.3ms 2.11 GiB/s 1
codex --offline --json Package wrapper 1.01 GiB 368.2ms 2.73 GiB/s 1
codex --offline --json Installed native binary 1.01 GiB 339.3ms 2.97 GiB/s 1

Committed fixture performance

Committed small fixtures for stable PR-to-PR feedback and explicit Claude/Codex command coverage.

Fixtures: Claude apps/ccusage/test/fixtures/claude (0.00 MiB, 2 files), Codex apps/ccusage/test/fixtures/codex (0.00 MiB, 1 files)
Base runs the published ccusage package from pkg.pr.new, installed before measurement; PR runs rust/target/release/ccusage directly. Both run --offline --json, measured by hyperfine with 2 warmups and 7 runs.
Peak RSS is measured separately with /usr/bin/time using 1 runs. Lower RSS ratios are better.

Command Input Base median PR median PR vs base Base peak RSS PR peak RSS PR/base RSS Base throughput PR throughput
claude daily --offline --json 0.00 MiB 31.2ms 4.2ms 7.48x 43.73 MiB 2.83 MiB 0.06x 0.05 MiB/s 0.37 MiB/s
claude session --offline --json 0.00 MiB 30.9ms 4.1ms 7.52x 43.48 MiB 2.83 MiB 0.07x 0.05 MiB/s 0.38 MiB/s
codex daily --offline --json 0.00 MiB 31.0ms 3.8ms 8.13x 43.48 MiB 2.83 MiB 0.07x 0.03 MiB/s 0.22 MiB/s
codex session --offline --json 0.00 MiB 30.9ms 3.9ms 8.02x 43.48 MiB 2.83 MiB 0.07x 0.03 MiB/s 0.22 MiB/s

Large real-world-shaped fixture performance

Generated fixtures shaped from aggregate local log statistics: thousands of JSONL files, many small sessions, and a long tail of larger sessions. No real prompts, paths, or outputs are stored in the fixtures.

Fixtures: Claude /home/runner/work/_temp/ccusage-large-fixture (1.01 GiB, 2,597 files), Codex /home/runner/work/_temp/ccusage-large-codex-fixture (1.01 GiB, 2,597 files)
Base runs the published ccusage package from pkg.pr.new, installed before measurement; PR runs rust/target/release/ccusage directly. Both run --offline --json, measured by hyperfine with 0 warmups and 1 runs.
Peak RSS is measured separately with /usr/bin/time using 1 runs. Lower RSS ratios are better.

Command Input Base median PR median PR vs base Base peak RSS PR peak RSS PR/base RSS Base throughput PR throughput
claude --offline --json 1.01 GiB 511.5ms 474.8ms 1.08x 263.95 MiB 261.70 MiB 0.99x 1.97 GiB/s 2.12 GiB/s
codex --offline --json 1.01 GiB 359.9ms 334.2ms 1.08x 57.70 MiB 59.20 MiB 1.03x 2.80 GiB/s 3.01 GiB/s

Artifact size

Artifact Base PR Delta Ratio
packed ccusage-*.tgz 14.25 KiB 14.25 KiB +0.00 KiB 1.00x
installed native package binary 3289.49 KiB 3289.49 KiB +0.00 KiB 1.00x

Lower medians and smaller artifacts are better. CI runner noise still applies; use same-run ratios as directional PR feedback, not release guarantees.

@github-actions

Copy link
Copy Markdown
Contributor

ccusage performance comparison

PR SHA: 2080e37a6b74
Base SHA: 70d458447dec

This compares the PR package against the configured base package on the same CI runner.

Package runner startup

Execution setup measures any pre-benchmark package materialization used by the execution benchmark. Bunx temp cache measures one bunx -p <url> ccusage --version run with an empty Bun install cache. Warm reuses that cache and reports the median of repeated runs.

Package SHA Execution setup Bunx temp cache Bunx warm median Warm samples
Base pkg.pr.new 70d458447dec 522.9ms 806.8ms 34.0ms 3
PR pkg.pr.new 2080e37a6b74 540.4ms 571.4ms 33.1ms 3

Cached bunx execution performance

Runs the same large fixture through bunx -p <pkg.pr.new URL> ccusage after the Bun install cache has already been populated by the startup measurement. This separates cached package-runner execution from first-fetch package materialization.

Fixtures: Claude /home/runner/work/_temp/ccusage-large-fixture (1.01 GiB, 2,597 files), Codex /home/runner/work/_temp/ccusage-large-codex-fixture (1.01 GiB, 2,597 files)
Base package: 70d458447dec; PR package: 2080e37a6b74. Both run through bunx -p <pkg.pr.new URL> ccusage using the warmed Bun install cache from package runner startup, measured by hyperfine with 0 warmups and 1 runs.
Peak RSS is measured separately with /usr/bin/time using 1 runs. Lower RSS ratios are better.

Command Input Base median PR median PR vs base Base peak RSS PR peak RSS PR/base RSS Base throughput PR throughput
bunx -p <pkg> ccusage claude --offline --json 1.01 GiB 514.9ms 509.6ms 1.01x 269.08 MiB 270.08 MiB 1.00x 1.96 GiB/s 1.98 GiB/s
bunx -p <pkg> ccusage codex --offline --json 1.01 GiB 362.7ms 366.5ms 0.99x 57.58 MiB 57.83 MiB 1.00x 2.78 GiB/s 2.75 GiB/s

Package runtime diagnostics

Compares the PR package wrapper, the installed native optional dependency binary, and the workspace release binary on the same large fixture. This identifies whether slow package results come from JavaScript wrapper overhead, the published native binary build, or the Rust core itself.

Fixtures: Claude /home/runner/work/_temp/ccusage-large-fixture (1.01 GiB, 2,597 files), Codex /home/runner/work/_temp/ccusage-large-codex-fixture (1.01 GiB, 2,597 files)
All rows run --offline --json, measured by hyperfine with 0 warmups and 1 runs. This isolates wrapper overhead from the installed native optional dependency and the workspace release binary built on the runner.

Command Runtime Input Median Throughput Samples
claude --offline --json Package wrapper 1.01 GiB 498.2ms 2.02 GiB/s 1
claude --offline --json Installed native binary 1.01 GiB 475.4ms 2.12 GiB/s 1
codex --offline --json Package wrapper 1.01 GiB 360.2ms 2.79 GiB/s 1
codex --offline --json Installed native binary 1.01 GiB 333.0ms 3.02 GiB/s 1

Committed fixture performance

Committed small fixtures for stable PR-to-PR feedback and explicit Claude/Codex command coverage.

Fixtures: Claude apps/ccusage/test/fixtures/claude (0.00 MiB, 2 files), Codex apps/ccusage/test/fixtures/codex (0.00 MiB, 1 files)
Base runs the published ccusage package from pkg.pr.new, installed before measurement; PR runs the published ccusage package from pkg.pr.new, installed before measurement. Both run --offline --json, measured by hyperfine with 2 warmups and 7 runs.
Peak RSS is measured separately with /usr/bin/time using 1 runs. Lower RSS ratios are better.

Command Input Base median PR median PR vs base Base peak RSS PR peak RSS PR/base RSS Base throughput PR throughput
claude daily --offline --json 0.00 MiB 31.3ms 30.7ms 1.02x 43.48 MiB 43.48 MiB 1.00x 0.05 MiB/s 0.05 MiB/s
claude session --offline --json 0.00 MiB 30.2ms 30.1ms 1.00x 43.73 MiB 43.61 MiB 1.00x 0.05 MiB/s 0.05 MiB/s
codex daily --offline --json 0.00 MiB 30.1ms 30.4ms 0.99x 43.48 MiB 43.61 MiB 1.00x 0.03 MiB/s 0.03 MiB/s
codex session --offline --json 0.00 MiB 31.0ms 30.0ms 1.03x - 43.48 MiB - 0.03 MiB/s 0.03 MiB/s

Large real-world-shaped fixture performance

Generated fixtures shaped from aggregate local log statistics: thousands of JSONL files, many small sessions, and a long tail of larger sessions. No real prompts, paths, or outputs are stored in the fixtures.

Fixtures: Claude /home/runner/work/_temp/ccusage-large-fixture (1.01 GiB, 2,597 files), Codex /home/runner/work/_temp/ccusage-large-codex-fixture (1.01 GiB, 2,597 files)
Base runs the published ccusage package from pkg.pr.new, installed before measurement; PR runs the published ccusage package from pkg.pr.new, installed before measurement. Both run --offline --json, measured by hyperfine with 0 warmups and 1 runs.
Peak RSS is measured separately with /usr/bin/time using 1 runs. Lower RSS ratios are better.

Command Input Base median PR median PR vs base Base peak RSS PR peak RSS PR/base RSS Base throughput PR throughput
claude --offline --json 1.01 GiB 513.7ms 505.8ms 1.02x 260.95 MiB - - 1.96 GiB/s 1.99 GiB/s
codex --offline --json 1.01 GiB 359.9ms 357.4ms 1.01x - 51.95 MiB - 2.80 GiB/s 2.82 GiB/s

Artifact size

Artifact Base PR Delta Ratio
packed ccusage-*.tgz 14.25 KiB 14.25 KiB +0.00 KiB 1.00x
installed native package binary 3289.49 KiB 3289.49 KiB +0.00 KiB 1.00x

Lower medians and smaller artifacts are better. CI runner noise still applies; use same-run ratios as directional PR feedback, not release guarantees.

@github-actions

Copy link
Copy Markdown
Contributor

ccusage performance comparison

PR SHA: 543ce35e499a
Base SHA: 70d458447dec

This compares the PR package against the configured base package on the same CI runner.

Package runner startup

Execution setup measures any pre-benchmark package materialization used by the execution benchmark. Bunx temp cache measures one bunx -p <url> ccusage --version run with an empty Bun install cache. Warm reuses that cache and reports the median of repeated runs.

Package SHA Execution setup Bunx temp cache Bunx warm median Warm samples
Base pkg.pr.new 70d458447dec 444.1ms 481.0ms 33.7ms 3
PR pkg.pr.new 543ce35e499a 790.1ms 429.3ms 33.7ms 3

Cached bunx execution performance

Runs the same large fixture through bunx -p <pkg.pr.new URL> ccusage after the Bun install cache has already been populated by the startup measurement. This separates cached package-runner execution from first-fetch package materialization.

Fixtures: Claude /home/runner/work/_temp/ccusage-large-fixture (1.01 GiB, 2,597 files), Codex /home/runner/work/_temp/ccusage-large-codex-fixture (1.01 GiB, 2,597 files)
Base package: 70d458447dec; PR package: 543ce35e499a. Both run through bunx -p <pkg.pr.new URL> ccusage using the warmed Bun install cache from package runner startup, measured by hyperfine with 0 warmups and 1 runs.
Peak RSS is measured separately with /usr/bin/time using 1 runs. Lower RSS ratios are better.

Command Input Base median PR median PR vs base Base peak RSS PR peak RSS PR/base RSS Base throughput PR throughput
bunx -p <pkg> ccusage claude --offline --json 1.01 GiB 508.4ms 516.6ms 0.98x 256.83 MiB 270.33 MiB 1.05x 1.98 GiB/s 1.95 GiB/s
bunx -p <pkg> ccusage codex --offline --json 1.01 GiB 368.6ms 371.9ms 0.99x 51.95 MiB 63.08 MiB 1.21x 2.73 GiB/s 2.71 GiB/s

Package runtime diagnostics

Compares the PR package wrapper, the installed native optional dependency binary, and the workspace release binary on the same large fixture. This identifies whether slow package results come from JavaScript wrapper overhead, the published native binary build, or the Rust core itself.

Fixtures: Claude /home/runner/work/_temp/ccusage-large-fixture (1.01 GiB, 2,597 files), Codex /home/runner/work/_temp/ccusage-large-codex-fixture (1.01 GiB, 2,597 files)
All rows run --offline --json, measured by hyperfine with 0 warmups and 1 runs. This isolates wrapper overhead from the installed native optional dependency and the workspace release binary built on the runner.

Command Runtime Input Median Throughput Samples
claude --offline --json Package wrapper 1.01 GiB 499.4ms 2.02 GiB/s 1
claude --offline --json Installed native binary 1.01 GiB 492.8ms 2.04 GiB/s 1
codex --offline --json Package wrapper 1.01 GiB 372.9ms 2.70 GiB/s 1
codex --offline --json Installed native binary 1.01 GiB 360.3ms 2.79 GiB/s 1

Committed fixture performance

Committed small fixtures for stable PR-to-PR feedback and explicit Claude/Codex command coverage.

Fixtures: Claude apps/ccusage/test/fixtures/claude (0.00 MiB, 2 files), Codex apps/ccusage/test/fixtures/codex (0.00 MiB, 1 files)
Base runs the published ccusage package from pkg.pr.new, installed before measurement; PR runs the published ccusage package from pkg.pr.new, installed before measurement. Both run --offline --json, measured by hyperfine with 2 warmups and 7 runs.
Peak RSS is measured separately with /usr/bin/time using 1 runs. Lower RSS ratios are better.

Command Input Base median PR median PR vs base Base peak RSS PR peak RSS PR/base RSS Base throughput PR throughput
claude daily --offline --json 0.00 MiB 29.7ms 29.6ms 1.00x 43.73 MiB 43.73 MiB 1.00x 0.05 MiB/s 0.05 MiB/s
claude session --offline --json 0.00 MiB 30.1ms 30.5ms 0.99x 43.48 MiB - - 0.05 MiB/s 0.05 MiB/s
codex daily --offline --json 0.00 MiB 29.5ms 29.5ms 1.00x 43.61 MiB - - 0.03 MiB/s 0.03 MiB/s
codex session --offline --json 0.00 MiB 30.3ms 29.9ms 1.01x 43.61 MiB - - 0.03 MiB/s 0.03 MiB/s

Large real-world-shaped fixture performance

Generated fixtures shaped from aggregate local log statistics: thousands of JSONL files, many small sessions, and a long tail of larger sessions. No real prompts, paths, or outputs are stored in the fixtures.

Fixtures: Claude /home/runner/work/_temp/ccusage-large-fixture (1.01 GiB, 2,597 files), Codex /home/runner/work/_temp/ccusage-large-codex-fixture (1.01 GiB, 2,597 files)
Base runs the published ccusage package from pkg.pr.new, installed before measurement; PR runs the published ccusage package from pkg.pr.new, installed before measurement. Both run --offline --json, measured by hyperfine with 0 warmups and 1 runs.
Peak RSS is measured separately with /usr/bin/time using 1 runs. Lower RSS ratios are better.

Command Input Base median PR median PR vs base Base peak RSS PR peak RSS PR/base RSS Base throughput PR throughput
claude --offline --json 1.01 GiB 504.4ms 492.2ms 1.02x 265.83 MiB 267.45 MiB 1.01x 2.00 GiB/s 2.05 GiB/s
codex --offline --json 1.01 GiB 357.8ms 358.3ms 1.00x 51.45 MiB 51.70 MiB 1.00x 2.81 GiB/s 2.81 GiB/s

Artifact size

Artifact Base PR Delta Ratio
packed ccusage-*.tgz 14.25 KiB 14.25 KiB -0.00 KiB 1.00x
installed native package binary 3289.49 KiB 3289.49 KiB +0.00 KiB 1.00x

Lower medians and smaller artifacts are better. CI runner noise still applies; use same-run ratios as directional PR feedback, not release guarantees.

@github-actions

Copy link
Copy Markdown
Contributor

ccusage performance comparison

PR SHA: 543ce35e499a
Base SHA: 70d458447dec

This compares the Rust PR release binary against the configured base package on the same CI runner.

Package runner startup

Execution setup measures any pre-benchmark package materialization used by the execution benchmark. Bunx temp cache measures one bunx -p <url> ccusage --version run with an empty Bun install cache. Warm reuses that cache and reports the median of repeated runs.

Package SHA Execution setup Bunx temp cache Bunx warm median Warm samples
Base pkg.pr.new 70d458447dec 562.2ms 575.0ms 36.8ms 3
PR pkg.pr.new 543ce35e499a 683.9ms 432.1ms 36.7ms 3

Cached bunx execution performance

Runs the same large fixture through bunx -p <pkg.pr.new URL> ccusage after the Bun install cache has already been populated by the startup measurement. This separates cached package-runner execution from first-fetch package materialization.

Fixtures: Claude /home/runner/work/_temp/ccusage-large-fixture (1.01 GiB, 2,597 files), Codex /home/runner/work/_temp/ccusage-large-codex-fixture (1.01 GiB, 2,597 files)
Base package: 70d458447dec; PR package: 543ce35e499a. Both run through bunx -p <pkg.pr.new URL> ccusage using the warmed Bun install cache from package runner startup, measured by hyperfine with 0 warmups and 1 runs.
Peak RSS is measured separately with /usr/bin/time using 1 runs. Lower RSS ratios are better.

Command Input Base median PR median PR vs base Base peak RSS PR peak RSS PR/base RSS Base throughput PR throughput
bunx -p <pkg> ccusage claude --offline --json 1.01 GiB 524.9ms 529.3ms 0.99x 262.95 MiB 265.58 MiB 1.01x 1.92 GiB/s 1.90 GiB/s
bunx -p <pkg> ccusage codex --offline --json 1.01 GiB 397.6ms 388.0ms 1.02x 66.83 MiB 57.83 MiB 0.87x 2.53 GiB/s 2.59 GiB/s

Package runtime diagnostics

Compares the PR package wrapper, the installed native optional dependency binary, and the workspace release binary on the same large fixture. This identifies whether slow package results come from JavaScript wrapper overhead, the published native binary build, or the Rust core itself.

Fixtures: Claude /home/runner/work/_temp/ccusage-large-fixture (1.01 GiB, 2,597 files), Codex /home/runner/work/_temp/ccusage-large-codex-fixture (1.01 GiB, 2,597 files)
All rows run --offline --json, measured by hyperfine with 0 warmups and 1 runs. This isolates wrapper overhead from the installed native optional dependency and the workspace release binary built on the runner.

Command Runtime Input Median Throughput Samples
claude --offline --json Package wrapper 1.01 GiB 519.4ms 1.94 GiB/s 1
claude --offline --json Installed native binary 1.01 GiB 483.5ms 2.08 GiB/s 1
codex --offline --json Package wrapper 1.01 GiB 369.7ms 2.72 GiB/s 1
codex --offline --json Installed native binary 1.01 GiB 339.9ms 2.96 GiB/s 1

Committed fixture performance

Committed small fixtures for stable PR-to-PR feedback and explicit Claude/Codex command coverage.

Fixtures: Claude apps/ccusage/test/fixtures/claude (0.00 MiB, 2 files), Codex apps/ccusage/test/fixtures/codex (0.00 MiB, 1 files)
Base runs the published ccusage package from pkg.pr.new, installed before measurement; PR runs rust/target/release/ccusage directly. Both run --offline --json, measured by hyperfine with 2 warmups and 7 runs.
Peak RSS is measured separately with /usr/bin/time using 1 runs. Lower RSS ratios are better.

Command Input Base median PR median PR vs base Base peak RSS PR peak RSS PR/base RSS Base throughput PR throughput
claude daily --offline --json 0.00 MiB 34.1ms 4.7ms 7.20x 43.61 MiB 2.83 MiB 0.06x 0.05 MiB/s 0.33 MiB/s
claude session --offline --json 0.00 MiB 34.3ms 4.7ms 7.27x 43.48 MiB 2.83 MiB 0.07x 0.05 MiB/s 0.33 MiB/s
codex daily --offline --json 0.00 MiB 33.5ms 4.3ms 7.88x - 2.83 MiB - 0.03 MiB/s 0.20 MiB/s
codex session --offline --json 0.00 MiB 33.7ms 4.2ms 7.98x - 2.83 MiB - 0.03 MiB/s 0.20 MiB/s

Large real-world-shaped fixture performance

Generated fixtures shaped from aggregate local log statistics: thousands of JSONL files, many small sessions, and a long tail of larger sessions. No real prompts, paths, or outputs are stored in the fixtures.

Fixtures: Claude /home/runner/work/_temp/ccusage-large-fixture (1.01 GiB, 2,597 files), Codex /home/runner/work/_temp/ccusage-large-codex-fixture (1.01 GiB, 2,597 files)
Base runs the published ccusage package from pkg.pr.new, installed before measurement; PR runs rust/target/release/ccusage directly. Both run --offline --json, measured by hyperfine with 0 warmups and 1 runs.
Peak RSS is measured separately with /usr/bin/time using 1 runs. Lower RSS ratios are better.

Command Input Base median PR median PR vs base Base peak RSS PR peak RSS PR/base RSS Base throughput PR throughput
claude --offline --json 1.01 GiB 531.0ms 499.3ms 1.06x 260.58 MiB 240.70 MiB 0.92x 1.90 GiB/s 2.02 GiB/s
codex --offline --json 1.01 GiB 371.5ms 341.6ms 1.09x 58.83 MiB 52.08 MiB 0.89x 2.71 GiB/s 2.95 GiB/s

Artifact size

Artifact Base PR Delta Ratio
packed ccusage-*.tgz 14.25 KiB 14.25 KiB -0.00 KiB 1.00x
installed native package binary 3289.49 KiB 3289.49 KiB +0.00 KiB 1.00x

Lower medians and smaller artifacts are better. CI runner noise still applies; use same-run ratios as directional PR feedback, not release guarantees.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant