Releases: MerlijnW70/cu-profiler
Releases · MerlijnW70/cu-profiler
Release list
v0.2.1
What's new
- Reusable GitHub Action —
uses: MerlijnW70/cu-profiler@v1installs the CLI and runscu-profiler ci(or any subcommand) in one line. No peer in the field ships one. - Actionable
benchonboarding — when the Linuxcu-profiler-benchexecutor is missing, the error now prints the exact install command instead of a vague hint. Newdocs/bench.mdwalkthrough. - Hardened test suite — zero-survivor mutation testing across
cu-profiler-core/-reportplus a dense float-clause property/law sweep.
All four crates (cu-profiler-core, -instrumentation, -report, -cli) published to crates.io at 0.2.1. No public API changes.
v0.2.0
v0.2.0
Added
cu-profiler comment— post the Markdown report as a sticky PR comment (one per PR, updated in place; hidden-marker upsert over the GitHub REST API;--dry-run,--input,--pr,--repo,--marker).init --workflowscaffolds a render-and-comment step.- Multi-sample runs + variance —
Scenario.samples/--samplesrecord aSampleStatsdistribution and fold the coefficient of variation into the confidence score (spec §12). Honestly gated: the deterministic recorded backend never fabricates a spread. - Turnkey real-CU path —
cu-profiler benchvalidates a declarativebench.tomland measures real compute units by delegating to the Linuxcu-profiler-benchexecutor;MolluskBackend::from_plan/run_planin the detachedcu-profiler-molluskcrate meter genuine CU via mollusk-svm. The main CLI stays Solana-free / Windows-buildable.
See CHANGELOG.md for full details.
v0.1.2
Security patch release.
Security
- Path-traversal fix (high): scenario/
--namevalidated before becoming a file path. - Deep-CPI-tree DoS fix: call-tree nesting capped (no stack overflow on adversarial logs).
- Resource limits: 64 MiB cap on file reads, 32 MiB cap on RPC response bodies.
Added
import --signature <sig> --rpc <url>— fetch a transaction's logs live over rustls.
Changed
- Honest placeholders: config
modedefaults torecorded+ validated; core backend stubs point to the integration crates.
CI green: build/test/clippy/fmt, MSRV 1.85, program-test, mollusk.
v0.1.1
Maintenance + UX release. Publishes the import command and the demo-data guard to crates.io.
Added
cu-profiler import <tx.json>— convert a real transaction'sgetTransactionlogs into a profileable scenario (no live RPC or Solana toolchain). Name defaults to the file stem.
Changed
init's demo logs are markedDEMO_DATA_ONLY;run/ciwarn (on stderr, keeping machine output clean) that demo numbers aren't a real measurement, pointing to real logs / the Mollusk backend.
Notes
- Real metered CU is available via the detached
integration/cu-profiler-mollusk(SBF) andintegration/cu-profiler-program-testbackends, verified on Linux CI.
CI green: build · test · clippy · fmt · MSRV 1.85 · program-test · mollusk.
🤖 Generated with Claude Code
v0.1.0-alpha
First public alpha of cu-profiler — compute-unit profiling, regression testing and budget enforcement for Solana programs (100% Rust).
What works
- Solana log parser → CPI call tree, scope markers, compute-budget heuristics
- Budget policy engine with stable, documented CI exit codes
- Baselines with input fingerprinting + staleness detection
- Confidence scoring and a Solana-specific diagnostic engine
- Reports: table · JSON · Markdown · JUnit · HTML
- Backends:
RecordedLogsBackend(default) + livesolana-program-testbackend (Linux CI) - Optional Anchor IDL support (feature
anchor)
Known limitations (honest, by design)
- Real CU metering requires recorded logs or an SBF program; in-process native programs aren't metered yet.
- Not yet published to crates.io (publish-ready; coming next).
- No bundled runnable example program yet.
CI: build · test · clippy · fmt · MSRV 1.85 · Solana program-test — all green.
🤖 Generated with Claude Code
cu-profiler v0.1.0
Initial public release of the high-performance Solana CU profiler.