Skip to content

chore: cli 5.5.0 merge - #162

Merged
finalerock44 merged 95 commits into
productionfrom
promote/cli-5.5.0-merge
Sep 15, 2026
Merged

finalerock44 merged 95 commits into
productionfrom
promote/cli-5.5.0-merge

Conversation

@finalerock44

Copy link
Copy Markdown
Contributor

What & why

Type of change

  • fix — bug fix
  • feat — new feature
  • perf — performance improvement
  • refactor — code change that's neither a fix nor a feature
  • docs — documentation only
  • chore / ci / build / test — tooling, no user-facing change
  • Breaking change (title has ! or PR notes a BREAKING CHANGE:)

Checklist

  • PR title follows the Conventional Commits format (see comment above)
  • pnpm lint passes
  • pnpm typecheck passes
  • pnpm build passes
  • I have not bumped the version or edited CHANGELOG.md (release-please handles this)
  • I have signed the CLA (the bot will prompt on first contribution)
  • Docs / README.md / STYLE_GUIDE.md updated if behaviour or output changed

How to test

riglar and others added 30 commits June 24, 2026 09:04
`isOutdated` stripped the prerelease suffix before comparing, so
beta-to-beta bumps like 5.0.0-beta.0 -> 5.0.0-beta.1 both collapsed to
[5,0,0], compared equal, and `dcd upgrade` reported "Already on the
latest version". Same nudge in cloud.ts was affected.

Replace the naive major.minor.patch compare with a SemVer 2.0.0
`compareSemver` helper that handles prerelease precedence (a prerelease
ranks below its final release; identifiers compare dot-by-dot, numeric
numerically and below alphanumeric). Add unit coverage for the
regression and related cases.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
When --quiet is passed (geared at CI), the live results footer no longer
renders the "next refresh in Ns" / "refreshing…" countdown. The realtime
connection indicator is still shown.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…mparison

fix(upgrade): compare prerelease versions per SemVer
…h-countdown

fix: suppress refresh countdown in quiet mode
feat(cloud): warn on deprecated iOS 16 (removal 2026-08-23)
feat(cloud): Maestro deprecation — drop legacy hard-block, soft-warn 1.39.5/1.41.0
The install scripts resolved the version from /latest.json, which (until a
stable release exists) synthesized the newest prerelease — so the default
`curl … | sh` was silently installing betas.

Pair the proxy's new channel support (get.devicecloud.dev now serves stable
on /latest.json and prereleases on ?channel=beta) with explicit opt-ins:

- DCD_BETA — request the beta channel (latest prerelease).
- DCD_VERSION — already pins an exact version; documented for rollback.
- Default (no opt-in) installs the latest *stable* only. When no stable
  release exists yet, the installer errors with guidance pointing at
  DCD_BETA / DCD_VERSION instead of falling back to a beta.

The manifest fetch is separated from parsing so a transient network/proxy
failure (curl -f non-zero) is reported differently from a channel that has
no release yet (HTTP 200 with "version": null).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Scaffolding to open dcd-cli to external contributors:

- LICENSE (MIT), CONTRIBUTING, CODE_OF_CONDUCT, SECURITY, CLA templates
- CODEOWNERS, PR template, issue forms + config, dependabot, .editorconfig
- pr-title-lint workflow: Conventional Commits on PR title (squash-merge model,
  types kept in sync with release-please changelog-sections)
- cla workflow: CLA Assistant Lite
- release-please: use a GitHub App token (falls back to GITHUB_TOKEN until the
  App secrets exist) so Release PRs trigger required checks under branch protection
- cli-ci: also run on production so the dev->production promotion PR is gated
fix(installer): make beta opt-in, default to stable channel
Low value for a small maintainer team where anyone can review anything; the
branch ruleset's approval requirement covers review without it.
chore: add open-source contribution governance
* fix(ci): keep dependabot and fork PRs green

Dependabot/fork PRs run without repo secrets, so three jobs failed on them:

- lint-and-test: HAS_PRIVATE_ACCESS was true for dependabot (same-repo head),
  so it tried to clone the private mock-api with an empty DCD_SSH_DEPLOY_KEY.
  Now excludes dependabot[bot], same as forks (skips mock-api + integration).
- claude-code-review: skips dependabot/fork PRs (no CLAUDE_CODE_OAUTH_TOKEN).
- cla: skips its action step until PERSONAL_ACCESS_TOKEN is configured so the
  check is green instead of 'Branch cla-signatures not found'; also fixes two
  invalid input names (custom-*-prompt -> custom-*-prcomment).

* ci: group all github-actions bumps into one weekly PR

Wildcard pattern so major action bumps join the group too, instead of one
PR per action.
* ci: power CLA via the shared automation GitHub App

Mint the CLA token from the same GitHub App release-please uses, instead of a
personal PAT (no expiry, signature commits show as the bot). Rename the App
secrets RELEASE_PLEASE_APP_* -> BOT_APP_* since one App now serves both
workflows. CLA self-skips until BOT_APP_ID is set.

Carries only the app-token delta — the dependabot/fork CI fixes and actions
grouping already landed on dev via #46.

* ci: allowlist internal maintainers (riglar, finalerock44) in CLA
Fill the CLA party placeholder and the LICENSE/README copyright holder with the
registered entity. CLA still pending legal review.
Bumps the actions group with 6 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions/create-github-app-token](https://github.com/actions/create-github-app-token) | `2` | `3` |
| [actions/checkout](https://github.com/actions/checkout) | `4` | `7` |
| [pnpm/action-setup](https://github.com/pnpm/action-setup) | `4` | `6` |
| [actions/setup-node](https://github.com/actions/setup-node) | `5` | `6` |
| [amannn/action-semantic-pull-request](https://github.com/amannn/action-semantic-pull-request) | `5` | `6` |
| [googleapis/release-please-action](https://github.com/googleapis/release-please-action) | `4` | `5` |



Updates `actions/create-github-app-token` from 2 to 3
- [Release notes](https://github.com/actions/create-github-app-token/releases)
- [Changelog](https://github.com/actions/create-github-app-token/blob/main/CHANGELOG.md)
- [Commits](actions/create-github-app-token@v2...v3)

Updates `actions/checkout` from 4 to 7
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v7)

Updates `pnpm/action-setup` from 4 to 6
- [Release notes](https://github.com/pnpm/action-setup/releases)
- [Commits](pnpm/action-setup@v4...v6)

Updates `actions/setup-node` from 5 to 6
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@v5...v6)

Updates `amannn/action-semantic-pull-request` from 5 to 6
- [Release notes](https://github.com/amannn/action-semantic-pull-request/releases)
- [Changelog](https://github.com/amannn/action-semantic-pull-request/blob/main/CHANGELOG.md)
- [Commits](amannn/action-semantic-pull-request@v5...v6)

Updates `googleapis/release-please-action` from 4 to 5
- [Release notes](https://github.com/googleapis/release-please-action/releases)
- [Changelog](https://github.com/googleapis/release-please-action/blob/main/CHANGELOG.md)
- [Commits](googleapis/release-please-action@v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: actions/create-github-app-token
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: actions/setup-node
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: amannn/action-semantic-pull-request
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: googleapis/release-please-action
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: pnpm/action-setup
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: finalerock44 <77282157+finalerock44@users.noreply.github.com>
#51)

fix: v5 release blockers — installer, binary version, repeated flags, upgrade, CI output

- install.ps1: fix PS 5.1 parse error (`$asset:` -> `${asset}`) that made
  `irm | iex` a no-op on stock Windows; decode the octet-stream SHA256SUMS
  (Byte[] under -UseBasicParsing) to text before splitting.
- build/version: stamp the version into the bun-compiled binary via
  `bun --define __DCD_CLI_VERSION__` (the compiled binary can't read
  package.json), so `dcd --version` no longer reports 0.0.0. npm/tsx path
  still falls back to reading package.json. Adds src/global.d.ts.
- cloud: collect repeated `-e/--env`, `-m/--metadata`, `--include-tags`,
  `--exclude-tags`, `--exclude-flows` from rawArgs (citty/parseArgs kept only
  the last occurrence, silently dropping earlier values); echo the collected
  values too.
- upgrade: query the beta channel for prerelease installs and distinguish
  "no newer release on this channel" from a real network failure, replacing
  the misleading "Could not reach the update manifest" error during the beta.
- progress/polling: make the realtime status indicator TTY-aware — in
  non-interactive/CI output, print one line per state change instead of
  flooding logs with a per-frame spinner (not suppressed by --quiet/--json-file).
- methods: downgrade primary-Backblaze-upload failure warnings to debug-only;
  the Supabase fallback recovers and validateUploadResults raises the only
  user-facing error (when every strategy fails).
- list/status: build console links from the env the CLI targets
  (resolveFrontendUrl) instead of the API's hardcoded-prod consoleUrl.
- cloud: validate a local --app-file exists during --dry-run.
Co-authored-by: dcd-cli-release-please[bot] <296541543+dcd-cli-release-please[bot]@users.noreply.github.com>
The CLA Assistant action defaults lock-pullrequest-aftermerge=true, so merging
a release-please PR locked it; release-please then failed trying to comment on
the locked PR, killing the Release job before npm publish + binary upload ran
(seen on v5.0.0-beta.2). Set lock-pullrequest-aftermerge=false.

Also skip release-please PRs in claude-code-review (version bumps — nothing to
review, and it must never block a release).
Prints a beta notice (billed at $0.03/min, contact support to enroll) before
starting a session. The API's new enrollment gate returns a 403 whose
"contact support" message the CLI already surfaces verbatim on a non-enrolled
org.
Co-authored-by: dcd-cli-release-please[bot] <296541543+dcd-cli-release-please[bot]@users.noreply.github.com>
Both versions are gone from the API gate, so resolveMaestroVersion rejects them
before the soft-warn block runs; drop the now-unreachable notice and bump the
integration test to a supported version. Also refresh CLAUDE.md.
* feat: render DB-driven notices and forward CLI/CI identity

The CLI now renders deprecation/warn/info/marketing notices the API returns with
the compatibility data, honouring --json. Removes the hardcoded iOS-16 warning
(now a seeded notice gated on the selected iOS version).

- notices.service: Notice type, match-DSL evaluator, level-aware renderer
- ci.ts: detectCiContext() resolves provider + wrapper version (DCD_CI_*)
- compatibility.ts: carries notices; forwards x-dcd-cli-version + x-dcd-ci-* headers
- version.service: export compareSemver for reuse

* test(upload): expect success when --ignore-sha-check bypasses dedup

The dcd swagger fix (getBinaryUploadUrl now returns a valid uploads/ staging
path) makes the TUS fallback upload succeed against dev storage, so this test no
longer fails — invert it to assert the command succeeds and returns a binary id.
Co-authored-by: dcd-cli-release-please[bot] <296541543+dcd-cli-release-please[bot]@users.noreply.github.com>
* fix(notices): single ⚠ symbol and distinct deprecation styling

Notice rendering routed warn/deprecation through warnOut (logger.warn), which
prepends its own ⚠ on top of the one ui.warn adds — producing a doubled ⚠ ⚠ and
a stray ⚠ on each branch row. Render through the gated out channel instead and
add the level symbol explicitly, so it shows a single symbol. Deprecation now
uses a red ⚠ to read as more serious than a yellow warn (they were identical).

* ci: point mock-api checkout at devicecloud-dev/dcd; docs: update CLAUDE.md

Update the cli-ci mock-api checkout from moropo-com/dcd to devicecloud-dev/dcd
(org rename) so it no longer relies on the redirect, and refresh CLAUDE.md.
Release-As: 5.0.1-beta.1
Co-authored-by: dcd-cli-release-please[bot] <296541543+dcd-cli-release-please[bot]@users.noreply.github.com>
Notice warn/deprecation rendering hand-concatenated symbols/colors in the service
layer, violating the STYLE_GUIDE rule that all human-facing output goes through
ui.ts. Add a ui.deprecation() helper (red warning glyph) and a matching
symbols.deprecation, and route warn through ui.warn. Output is unchanged.
Bumps [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) from 68.0.0 to 69.0.0.
- [Release notes](https://github.com/sindresorhus/eslint-plugin-unicorn/releases)
- [Commits](sindresorhus/eslint-plugin-unicorn@v68.0.0...v69.0.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-unicorn
  dependency-version: 69.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
finalerock44 and others added 25 commits August 27, 2026 10:53
Mirrors devicecloud-dev/dcd, where iOS 27 and iphone-17/-pro/-pro-max ship
behind the IOS_27 rollout gate (on for dev, off in production until the fleet
carries a 27 runtime).

Nothing here needs gating. The flag descriptions and `cloud.ts` validation
derive from these enums, so the CLI offers the values and the API's
compatibility matrix is what actually accepts or rejects them — a user who
asks for iOS 27 against production gets "iOS version '27' is not supported for
device ...", which is the right error. `src/utils/compatibility.ts` already
fetches the live matrix from GET /results/compatibility/data, so
`dcd list devices` tracks the gate without a release.

schema.types.ts regenerated from the API's swagger.json; the only delta is the
three iOSVersion enums and the iOSDevice enum, confirming the committed types
were otherwise in sync.

Note the pre-existing drift in EiOSDevices, left alone here: it still carries
iphone-14-pro and iphone-15-pro, which the API dropped. Worth its own cleanup
rather than riding along with a feature change.
Upstream contributor-assistant/github-action is archived and still declares
node20; GitHub's forced Node 24 migration makes the step succeed then exit
non-zero, so the required check failed on every PR from 2026-09-02.
devicecloud-dev/cla-assistant-action@v2.6.2 is a private fork whose only change
is the runtime declaration.
Mirrors dcd. schema.types.ts regenerated from the API's swagger.json.
A public repo cannot resolve an action from a private one; the first attempt
failed at resolution even with the org access policy set.
#133)

Bumps the minor-and-patch group with 4 updates in the / directory: [@supabase/supabase-js](https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js), [js-yaml](https://github.com/nodeca/js-yaml), [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@supabase/supabase-js` from 2.112.3 to 2.112.4
- [Release notes](https://github.com/supabase/supabase-js/releases)
- [Changelog](https://github.com/supabase/supabase-js/blob/master/packages/core/supabase-js/CHANGELOG.md)
- [Commits](https://github.com/supabase/supabase-js/commits/v2.112.4/packages/core/supabase-js)

Updates `js-yaml` from 5.3.0 to 5.4.1
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](nodeca/js-yaml@5.3.0...5.4.1)

Updates `@types/node` from 26.2.0 to 26.4.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `typescript-eslint` from 8.67.0 to 8.68.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.68.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@supabase/supabase-js"
  dependency-version: 2.112.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: js-yaml
  dependency-version: 5.4.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@types/node"
  dependency-version: 26.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: typescript-eslint
  dependency-version: 8.68.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Release-As: 5.4.1-beta.1
fast-uri 3.1.5 -> 3.1.6, @xmldom/xmldom 0.9.10 -> 0.9.12, add qs >= 6.16.0,
and lift the hono cap to 4.13.5 so Dependabot can resolve its security update.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Bumps [mocha](https://github.com/mochajs/mocha) from 11.8.0 to 12.0.0.
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/main/CHANGELOG.md)
- [Commits](mochajs/mocha@v11.8.0...v12.0.0)

---
updated-dependencies:
- dependency-name: mocha
  dependency-version: 12.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) from 73.0.0 to 74.0.0.
- [Release notes](https://github.com/sindresorhus/eslint-plugin-unicorn/releases)
- [Commits](sindresorhus/eslint-plugin-unicorn@v73.0.0...v74.0.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-unicorn
  dependency-version: 74.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
0.5.0 is a rewritten ESM/CJS dual package with no default export, so the
destructure-off-default interop no longer compiles. Import parseBuffer directly.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
#144)

Bumps the minor-and-patch group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@supabase/supabase-js](https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js) | `2.112.4` | `2.115.0` |
| [zod](https://github.com/colinhacks/zod) | `4.4.3` | `4.5.4` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.4.0` | `26.5.0` |
| [tsx](https://github.com/privatenumber/tsx) | `4.23.12` | `4.23.13` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.68.0` | `8.69.0` |



Updates `@supabase/supabase-js` from 2.112.4 to 2.115.0
- [Release notes](https://github.com/supabase/supabase-js/releases)
- [Changelog](https://github.com/supabase/supabase-js/blob/master/packages/core/supabase-js/CHANGELOG.md)
- [Commits](https://github.com/supabase/supabase-js/commits/v2.115.0/packages/core/supabase-js)

Updates `zod` from 4.4.3 to 4.5.4
- [Release notes](https://github.com/colinhacks/zod/releases)
- [Commits](colinhacks/zod@v4.4.3...v4.5.4)

Updates `@types/node` from 26.4.0 to 26.5.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `tsx` from 4.23.12 to 4.23.13
- [Release notes](https://github.com/privatenumber/tsx/releases)
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs)
- [Commits](privatenumber/tsx@v4.23.12...v4.23.13)

Updates `typescript-eslint` from 8.68.0 to 8.69.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.69.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@supabase/supabase-js"
  dependency-version: 2.115.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: zod
  dependency-version: 4.5.4
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@types/node"
  dependency-version: 26.5.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: tsx
  dependency-version: 4.23.13
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: typescript-eslint
  dependency-version: 8.69.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dcd-cli-release-please[bot] <296541543+dcd-cli-release-please[bot]@users.noreply.github.com>
#147)

feat(notices): expose platform, device and Maestro version to notice targeting; include notices in --json output
Co-authored-by: dcd-cli-release-please[bot] <296541543+dcd-cli-release-please[bot]@users.noreply.github.com>
--android-device is validated client-side, so these are rejected before
any request without this. Regenerating the schema types also picks up
the /org/update-retry-escalation rename the copy had fallen behind on.
Co-authored-by: dcd-cli-release-please[bot] <296541543+dcd-cli-release-please[bot]@users.noreply.github.com>
…153)

Android-only, lavapipe or swiftshader, validated client-side. Omitted leaves
the choice to the server, which detects the Flutter engine in the binary and
picks swiftshader for it; the flag is the override for when that guess is
wrong or an app needs the other renderer.
Co-authored-by: dcd-cli-release-please[bot] <296541543+dcd-cli-release-please[bot]@users.noreply.github.com>
…155)

Bumps the actions group with 1 update: [pnpm/action-setup](https://github.com/pnpm/action-setup).


Updates `pnpm/action-setup` from 6.0.10 to 6.1.0
- [Release notes](https://github.com/pnpm/action-setup/releases)
- [Commits](pnpm/action-setup@v6.0.10...v6.1.0)

---
updated-dependencies:
- dependency-name: pnpm/action-setup
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
#157)

Bare `tsx` also patches the CJS resolver, which turns an ESM dependency's
`import` into a `require`. Mocha 12.0.1 bumped find-up 5 -> 8 (ESM-only),
whose unicorn-magic dependency exports nothing under the `require`
condition, so the suite died with ERR_PACKAGE_PATH_NOT_EXPORTED before
running a test. `tsx/esm` registers just the ESM loader and leaves the
require(esm) path to Node.
Bumps the minor-and-patch group with 7 updates:

| Package | From | To |
| --- | --- | --- |
| [@clack/prompts](https://github.com/bombshell-dev/clack/tree/HEAD/packages/prompts) | `1.7.0` | `1.8.0` |
| [@supabase/supabase-js](https://github.com/supabase/supabase-js/tree/HEAD/packages/core/supabase-js) | `2.115.0` | `2.116.0` |
| [zod](https://github.com/colinhacks/zod) | `4.5.4` | `4.6.2` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.5.0` | `26.5.1` |
| [eslint](https://github.com/eslint/eslint) | `10.8.1` | `10.10.0` |
| [mocha](https://github.com/mochajs/mocha) | `12.0.0` | `12.0.1` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.69.0` | `8.70.0` |


Updates `@clack/prompts` from 1.7.0 to 1.8.0
- [Release notes](https://github.com/bombshell-dev/clack/releases)
- [Changelog](https://github.com/bombshell-dev/clack/blob/main/packages/prompts/CHANGELOG.md)
- [Commits](https://github.com/bombshell-dev/clack/commits/@clack/prompts@1.8.0/packages/prompts)

Updates `@supabase/supabase-js` from 2.115.0 to 2.116.0
- [Release notes](https://github.com/supabase/supabase-js/releases)
- [Changelog](https://github.com/supabase/supabase-js/blob/master/packages/core/supabase-js/CHANGELOG.md)
- [Commits](https://github.com/supabase/supabase-js/commits/v2.116.0/packages/core/supabase-js)

Updates `zod` from 4.5.4 to 4.6.2
- [Release notes](https://github.com/colinhacks/zod/releases)
- [Commits](colinhacks/zod@v4.5.4...v4.6.2)

Updates `@types/node` from 26.5.0 to 26.5.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `eslint` from 10.8.1 to 10.10.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](eslint/eslint@v10.8.1...v10.10.0)

Updates `mocha` from 12.0.0 to 12.0.1
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/main/CHANGELOG.md)
- [Commits](mochajs/mocha@v12.0.0...v12.0.1)

Updates `typescript-eslint` from 8.69.0 to 8.70.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.70.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@clack/prompts"
  dependency-version: 1.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@supabase/supabase-js"
  dependency-version: 2.116.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: zod
  dependency-version: 4.6.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: "@types/node"
  dependency-version: 26.5.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: eslint
  dependency-version: 10.10.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: mocha
  dependency-version: 12.0.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: typescript-eslint
  dependency-version: 8.70.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: finalerock44 <77282157+finalerock44@users.noreply.github.com>
Co-authored-by: dcd-cli-release-please[bot] <296541543+dcd-cli-release-please[bot]@users.noreply.github.com>
Both release-please tracks wrote CHANGELOG.md, so every dev->production
promotion collided on it. Beta now writes CHANGELOG-beta.md (its existing
history moved there) and CHANGELOG.md is production's, identical on both
branches. Docs now say promotions merge, never squash or rebase.
Production's pre-5.5.0 promotions were squashed, so the two branches shared
no usable ancestry and every promotion had to be rebuilt by hand. This merge
records that ancestry: the tree is dev's, except .release-please-manifest.json
which stays production's 5.4.1 stable line.
package.json tracks production's stable line from here; release-please
bumps it to 5.5.0 when the Release PR lands.

Release-As: 5.5.0
@finalerock44 finalerock44 self-assigned this Sep 15, 2026
@finalerock44 finalerock44 changed the title Promote/cli 5.5.0 merge chore: cli 5.5.0 merge Sep 15, 2026
@finalerock44
finalerock44 changed the base branch from dev to production September 15, 2026 14:50
@finalerock44
finalerock44 merged commit fe66fc7 into production Sep 15, 2026
9 of 10 checks passed
@finalerock44
finalerock44 deleted the promote/cli-5.5.0-merge branch September 15, 2026 14:50
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.

2 participants