Repository navigation
Releases: 0disoft/dsh-ci-diet
Release list
CI Diet 0.5.2
Fixed
- Map the installed bundle's inventory entry ID (
include:<entry>) back to the settings namespace the DSH Host serves, so Settings -> CI Diet connects when the plugin is composed through a nested include entry. - Keep the existing diagnostics and atomic revision-fenced saves; the mapping only changes which form namespace is requested.
Validation
- GitHub CI and the OIDC publish workflow passed for this release.
- The published package is available on npm with provenance and resolves
0.5.2as the latest version.
Update
dsh plugin --profile web add dsh-ci-diet@0.5.2Use your DSH profile name if it differs from web. Restart DSH and reload the browser after updating.
CI Diet 0.5.1
Fixed
- Connect the CI Diet settings page to the actual active plugin entry in the current DSH profile, including installations whose entry ID differs from
ciDiet.bootstrap. - Explain missing or inactive host entries, duplicate active installations, inventory connection failures, and settings the host is not exposing. Include relevant entry IDs and a retry action in all six supported languages.
- Preserve atomic saves and revision conflict detection; never redirect an existing draft to a replacement installation.
Validation
- GitHub CI and the OIDC publish workflow passed for this release.
- A fresh installation of the public npm package reports
ci-diet 0.5.1and includes the updated settings connection client.
Update
dsh plugin --profile web add dsh-ci-diet@0.5.1Use your DSH profile name if it differs from web. Restart DSH and reload the browser after updating.
CI Diet 0.5.0
-
Prepare each run's job identities, sorted signature and totals once per
change-effect measurement, including saved-measurement validation. A 10-by-10
batch now indexes 20 runs instead of 200, reducing job identity reads from
4,000 to 400 for 20 jobs per run. Indexes never persist across measurements. -
Expand diagnostic matrices only for job keys not yet reported, preserving
first-observed matrix summaries while avoiding repeated include/exclude work
across runs of the same workflow. -
Check global and per-family request budgets before retry backoff. An exhausted
budget now returnsBUDGET_EXHAUSTEDwithout waiting for Retry-After or a
network backoff that cannot lead to another dispatch. -
Enforce claim-lock wait deadlines on vanished, empty-stale and dead-owner
recovery paths. Allow one immediate recovery retry, then check the deadline
and back off so repeated contention cannot spin indefinitely. Poll sleeps
are capped by the remaining wait; zero-wait orphan recovery still works. -
Send only measurement summary fields and per-job durations to the Review
browser, omitting unused steps, runner metadata and run-pair comparisons.
A synthetic 20-run, 100-job, 20-step fixture reduces the measurement portion
of the JSON response from 1,404,210 to 31,503 bytes (97.8%). Cached evidence
and CLI exports remain complete; chart values, failed samples and warnings
remain unchanged. -
Share attempt-specific job collection between
compareandmeasureinstead
of fetching each successful run's metadata twice before and twice after its
jobs. Measurement retains one before/after check including immutable PR
metadata, and all job pages share its bounded request ledger. A mocked
20-successful-run collection uses 62 GETs instead of 102 (39.2% fewer) with
two workflow definitions and one job page per run; results remain unchanged. -
Store before/after measurement observations once and keep compact scope/timing
summaries per run pair. A synthetic 10-by-10 run fixture with 100 jobs and 20
steps per job shrinks pretty-printed JSON from 83,238,162 to 4,655,562 bytes
(94.4%). Measurement schema v2 retains pair identities and all raw samples;
legacy caches normalize on read without changing files. Detailed single-run
comparisons remain unchanged. -
Replace the DSH account-allowance switch with automatic use of two optional
account inputs. Blank values stay unknown, explicit zero remains valid, and
missing monetary estimates show an account-information hint. Revision 2
preserves existing numeric inputs, legacy enabled defaults, and later opt-outs. -
Keep artifact pagination completeness separate from run/job evidence, compare skipped jobs honestly, and paginate up to 1,000 jobs per attempt.
-
Revalidate stored patch values at apply and pin documentation-only evidence to each historical run's base/head SHAs.
-
Persist CLI scan reports and publish unapproved model-generated plans into the human review flow without resetting an existing approval.
-
Expand CD006 to setup-node v3–v7, literal npm/pnpm install directories and selected lockfiles, preserving automatic caching and explicit opt-outs.
-
Add read-only
measure --changefor exact-hash before/after run samples, full successful-job runner time, success rates and rerun counts, with explicit sampling/causality limits. -
Allow explicit renewal of expired, unused approvals; show approval expiry in review and preserve the actual approval channel in change journals.
Changed
- The DSH CI Diet settings page uses five focused tabs instead of a long stack
of cards. Edits and staged resets survive tab changes and save in one atomic
revision-checked batch. Per-tab change counts, inline help, keyboard navigation,
and navigation to invalid fields keep larger configurations manageable. The
scrollable body and separate action footer follow the host light/dark theme. - Add 4px of right-side breathing room for settings content and tabs, and move
the selected tab underline 8px closer to its label while retaining 44px click
targets.
CI Diet 0.4.0
CI Diet 0.4.0 adds an in-app review and approval flow, offline npm cache proposals, and deployment preflight checks.
Highlights
- DSH review screen: view reports, coverage and source-validated diffs, then explicitly approve, apply or revert local workflow edits.
- CD006 npm cache plans: propose narrowly scoped
setup-nodenpm download caching without changing tests, action versions ornpm ci. Benefit remains unknown until measured. - Deployment preflight: inspect supported deploy commands for actionable CI waste before they run. Preflight is read-only and never edits workflows automatically.
- Before/after evidence:
ci-diet comparereports observed job/step duration differences without presenting a single run pair as causal savings or actual billing. - Safer persistence and patches: strengthen quota enforcement, crash recovery, approval integrity, dependency pinning, path containment and malformed GitHub response handling.
- Less repeated work: a synthetic 100-run history fixture shrinks from 2,730,179 to 71,870 bytes (97.4%); semantic validation avoids repeated traversal of unchanged mappings. These are fixture measurements, not measured reductions in users' Actions bills.
- Six localized READMEs and updated first-use documentation.
Upgrade behavior
The DSH plugin enables preflight, network access and local apply by default. A one-time migration enables those switches and adds the default rules to legacy profiles. Explicit choices made after migration are preserved. Installation and startup do not fetch history or change workflows; applying any workflow edit still requires human approval. CLI network access still requires --network.
npm install --global dsh-ci-diet@0.4.0
dsh plugin --profile web add dsh-ci-diet@0.4.0Restart DSH after updating. DSH must satisfy >=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.3.0-0. Node must satisfy ^22.19.0 || >=24.0.0.
See CHANGELOG.md for the complete changes.
dsh-ci-diet 0.3.1
dsh-ci-diet 0.3.1
First public release. Version 0.3.0 was tagged but never published because the
release workflow failed before the npm step; 0.3.1 fixes those portability
issues and is the first version available from npm.
Highlights
- Settings → CI Diet page in DSH, built on the public
settings.sectionand
ConfigFormAPIs. Save/reset are atomic, a stale revision is refused, and
changes apply to the next tool call without restarting DSH. - Settings cover analysis rules, history limits, storage limits, cost estimate,
network access, and the state directory, with the same contract validation
and defaults asci-diet --config. - Six complete UI languages: English, Korean, Simplified Chinese, Hindi,
Spanish, and French. - Safe patch engine: byte-range edits, explicit approval, one approval per
transaction, journaled apply/revert recovery, dependency re-checks, and
shell-quoted follow-up commands. - GitHub Actions history collection with bounded concurrency and request
budgets, explicit coverage reasons for truncated data, and adiagnose
command that explains attribution and collection gaps.
Install
CLI:
npm install --global dsh-ci-diet@0.3.1
ci-diet --version
DSH plugin:
dsh plugin --profile web add dsh-ci-diet@0.3.1
dsh --profile web
Then open Settings → CI Diet. Update with npm install --global dsh-ci-diet@latest and dsh plugin --profile web add dsh-ci-diet@latest.
Requirements
- Node
^22.19.0 || >=24.0.0 - DSH
>=0.2.1-rc.2 <0.3.0-0 || >=0.2.2-rc.1 <0.3.0-0; tested against DSH
0.2.1-rc.2. DSH0.3.0is not supported yet. ghCLI only for execution-history collection.
Verification
- Main CI run 39854459652: typecheck, lint, contract checks, 446 tests, docs, build, smoke.
- Publish run 39854623354: npm OIDC trusted publishing with provenance, Sigstore log index 3400782125.
- npm tarball SHA-256:
235FADF605E59C15C978E162FCDBCEA0AFFE04F573F34C7E97C1E0DA294D184E.
See CHANGELOG.md for the full list.
v0.2.0
Tag-driven release.
Added
ci-diet diagnosereports job-name attribution, matrix legs, unresolved definitions, and every incomplete coverage axis from the latest stored history.--require-completeexits3.- Advisory cache hygiene hints for dependency installs without a cache and literal cache keys that cannot follow a lockfile.
- Billing estimate configuration (
billing.includedMinutesandbilling.accountMinutesUsed, or the matchingsyncflags);estimatedMarginalUsdprices only minutes already above the account allowance. - Storage quota enforcement, a cache size cap, and confirmed applied-backup cleanup through
prune --applied-backups. - Coverage reasons for workflow, job-page, pull-request file, and artifact pagination caps.
- A recorded
REVERTINGjournal state for crash-safe revert. - Six display languages and locale selection for the CLI and DSH host.
Changed
- Apply saves
APPLYINGbefore replacing and consumes the approval nonce only after a confirmed replacement; revert savesREVERTINGbefore restoring. - The writer lease records the owner process id: a stale lease is taken over only after that process is gone, and a live owner is never moved.
- CD005 respects an existing timeout at or below the recommendation and reads the cohort definition; CD008 treats
retention-days: 0as the repository default; matrix replay keeps every leg; coverage composition fails closed. - GitHub transport honors
Retry-After, retries network failures and request timeouts, and uses the configured timeout. - Packaging builds
distinprepack, the test runner fails on zero collected tests, CI provisions the Node floor, and the contracts check validates the design-pack lock.
Verification
- Publish workflow run 39592323679 succeeded.
- npm publish reported
dsh-ci-diet@0.2.0with a Sigstore provenance statement (log index 3355211781). - The published tarball installs and
ci-diet --versionprints0.2.0. - CI run 39592308354 on main succeeded.
v0.1.1
Tag-driven release.
Added
.github/workflows/publish.yml: pushing av*tag runs the CI checks, verifies the tag againstpackage.json, refuses to overwrite an already published version, and publishes with npm trusted publishing (GitHub OIDC) and provenance. No npm token is used.
Changed
package.jsonandsrc/core/version.tsare both 0.1.1, and a unit test now fails if they drift.ci-diet --versionand reportengineVersionfollow the package version.
Verification
- Publish workflow run 39480566549 succeeded (36s).
- npm publish reported
+ dsh-ci-diet@0.1.1with a Sigstore provenance statement (log index 3342293447).