diff --git a/src/assets/access_org_settings.png b/src/assets/access_org_settings.png deleted file mode 100644 index 1629cb4a..00000000 Binary files a/src/assets/access_org_settings.png and /dev/null differ diff --git a/src/assets/create_org.png b/src/assets/create_org.png deleted file mode 100644 index 8998d720..00000000 Binary files a/src/assets/create_org.png and /dev/null differ diff --git a/src/content/changelog/api-command.md b/src/content/changelog/api-command.md new file mode 100644 index 00000000..c2e8892e --- /dev/null +++ b/src/content/changelog/api-command.md @@ -0,0 +1,25 @@ +--- +title: Call the Shorebird API from the CLI +date: 2026-10-16 +version: 1.6.129 +area: CLI +type: New +docLink: + label: Calling the API from the command line + href: /account/api/#calling-the-api-from-the-command-line +--- + +`shorebird api` sends an authenticated request to the Shorebird API and prints +the response. `--jq` filters a successful response before it's printed. + +- Endpoints are relative to `https://api.shorebird.dev/api/v1`, and `{appId}` is + filled in from `shorebird.yaml`. +- `-X` or `--method` sets the method. It defaults to GET, or POST when you pass + fields with `-f` or `-F`, or a body with `--input`. +- A response outside the 2xx range still prints its body. The error goes to + stderr and the command exits with status 1. +- Requests that change data are never retried. + +```sh +shorebird api /apps --jq '.apps[].app_id' +``` diff --git a/src/content/changelog/api-errors-and-paging.md b/src/content/changelog/api-errors-and-paging.md new file mode 100644 index 00000000..1699d1b9 --- /dev/null +++ b/src/content/changelog/api-errors-and-paging.md @@ -0,0 +1,19 @@ +--- +title: API errors link to the docs, and lists can be paged +date: 2026-10-15 +area: API +type: New +docLink: + label: Common patterns + href: /account/api/#common-patterns +--- + +Every JSON error from the API now carries a `documentation_url`, and the lists +of apps, releases, and patches can be read a page at a time. + +- Those lists accept `per_page` and `cursor` and return `next_cursor`. Without + them, they still return everything. +- Lists of invitations and audit log events are always paged. An invalid + `cursor` returns 400 with the code `invalid_cursor`. +- A 401 response to a bearer token, or a 403 because the token's scope doesn't + allow the request, includes a `WWW-Authenticate` header that says why. diff --git a/src/content/changelog/api-method-and-paginate.md b/src/content/changelog/api-method-and-paginate.md index a71df311..5598914a 100644 --- a/src/content/changelog/api-method-and-paginate.md +++ b/src/content/changelog/api-method-and-paginate.md @@ -10,7 +10,8 @@ docLink: --- `shorebird api` accepts the HTTP method before the endpoint, and `--paginate` -reads a whole paged list in one call. +reads a whole paged list in one call. `--jq` also takes slices, and the command +now handles a repeated `/api/v1` and explains a 405 after fields made a POST. - The method can be GET, POST, PUT, PATCH, DELETE, or HEAD, in any case. If you also pass `-X`, it must name the same method. @@ -18,6 +19,12 @@ reads a whole paged list in one call. with list fields joined. `--jq` runs on the joined result. - `--paginate` works only with GET. A failed page stops the command with exit status 1 instead of printing part of the list. +- `--jq` supports array and string slices, such as `.[1:3]`, `.[2:]`, and + `.[:-1]`. +- An endpoint that repeats `/api/v1` is treated as the route under it, with a + note on stderr. +- When `-f` or `-F` turns a request into a POST and the server answers 405, the + CLI suggests adding `--method GET`. ```sh shorebird api GET /apps diff --git a/src/content/changelog/api-plan-limits.md b/src/content/changelog/api-plan-limits.md new file mode 100644 index 00000000..ae99ed1e --- /dev/null +++ b/src/content/changelog/api-plan-limits.md @@ -0,0 +1,19 @@ +--- +title: The API refuses what the Console refuses +date: 2026-10-15 +area: API +type: Changed +docLink: + label: Member roles + href: /account/orgs/#member-roles +--- + +Some requests the Console refuses are now refused by the API too, so scripts and +the CLI meet the same rules. + +- Setting a spending limit other than 0 on the Free plan returns 403 with the + code `shorebird_plan_insufficient_tier`. +- Inviting someone with, or changing a member to, a role the organization's plan + doesn't offer returns the same error. Developer is always allowed. +- Creating or renaming an organization with a blank name returns 400 with the + code `organization_name_blank`. diff --git a/src/content/changelog/apple-builds-keep-dart-tool.md b/src/content/changelog/apple-builds-keep-dart-tool.md new file mode 100644 index 00000000..093b7cea --- /dev/null +++ b/src/content/changelog/apple-builds-keep-dart-tool.md @@ -0,0 +1,13 @@ +--- +title: Apple builds keep your .dart_tool caches +date: 2026-10-16 +version: 1.6.129 +area: CLI +type: Fixed +--- + +iOS, iOS framework, and macOS builds no longer delete the project's whole +`.dart_tool` directory, so `build_runner` caches and native asset outputs +survive a Shorebird build. + +- Only `.dart_tool/flutter_build` and `.dart_tool/version` are cleared. diff --git a/src/content/changelog/audit-log-actor-details.md b/src/content/changelog/audit-log-actor-details.md new file mode 100644 index 00000000..c4acda11 --- /dev/null +++ b/src/content/changelog/audit-log-actor-details.md @@ -0,0 +1,19 @@ +--- +title: Audit log entries say which key or session acted +date: 2026-10-16 +area: Console +type: New +docLink: + label: Event format + href: /enterprise/audit-logs/#event-format +--- + +Audit log entries now name the API key or sign-in session behind each action, +and say whether the sign-in used multi-factor authentication when the sign-in +provider reports it. + +- Creating an app and editing a patch's notes are now recorded. +- Changes Shorebird staff make to your organization appear in its audit log as + `Shorebird staff`. +- Reading the log oldest first leaves out the most recent minute, so a later + read doesn't skip an event that was still being written. diff --git a/src/content/changelog/audit-log-roles.md b/src/content/changelog/audit-log-roles.md new file mode 100644 index 00000000..c41df2ef --- /dev/null +++ b/src/content/changelog/audit-log-roles.md @@ -0,0 +1,16 @@ +--- +title: Only Owners, Admins, and Auditors can read the audit log +date: 2026-10-15 +area: Console +type: Changed +docLink: + label: Audit logs + href: /enterprise/audit-logs/ +--- + +Viewers, Developers, and App Managers can no longer read an Enterprise +organization's audit log, in the Console or through the API. Before, every +member could. + +- Owners and Admins keep access, as does a service account with the Auditor + role. diff --git a/src/content/changelog/audit-log-siem-export.md b/src/content/changelog/audit-log-siem-export.md new file mode 100644 index 00000000..f42cc9fb --- /dev/null +++ b/src/content/changelog/audit-log-siem-export.md @@ -0,0 +1,20 @@ +--- +title: Export the audit log to a SIEM +date: 2026-10-15 +area: API +type: New +docLink: + label: Export the audit log to a SIEM + href: /enterprise/audit-logs/#export-the-audit-log-to-a-siem +--- + +Enterprise organizations can read the audit log through the API oldest first and +forward each event to a SIEM, using a service account with the Auditor role. + +- Events are OCSF 1.9.0 API Activity events. Filter by event name with + `operation`, such as `patch.rollback`. +- `order=asc` returns the oldest events first. Pages use `per_page` (30 by + default, at most 100), `cursor`, and `next_cursor`. +- The endpoint's earlier, undocumented `limit`, `resourceType`, and `action` + parameters and its `nextCursor` field were replaced. +- The Console's audit log shows and filters by event name. diff --git a/src/content/changelog/cli-fixes-1-6-129.md b/src/content/changelog/cli-fixes-1-6-129.md new file mode 100644 index 00000000..fc3143fc --- /dev/null +++ b/src/content/changelog/cli-fixes-1-6-129.md @@ -0,0 +1,34 @@ +--- +title: More CLI fixes in 1.6.129 +date: 2026-10-16 +version: 1.6.129 +area: CLI +type: Fixed +--- + +CLI 1.6.129 also fixes these issues. + +- iOS, iOS framework, and macOS patches no longer leave copies of the app's + binaries in the system temp directory. +- AAR releases and patches skip architectures that have no `libapp.so`, as + Android releases do, and warn when a patch covers only some of them. +- iOS framework, Linux, and Windows patches check the release's minimum Flutter + version before downloading the release's artifacts. On every platform that has + a minimum, the message names the command that creates a new release. +- Commands run at the same time from one login no longer refresh with a stale + token. A refresh uses the newest credentials on disk. +- Piping output into a command that exits early, such as `head -1`, exits with + status 141 instead of crashing. +- Error and progress messages no longer name temporary paths that are deleted + before the command finishes. +- The release picker shows one hint, and `shorebird patches promote --help` + describes `--flavor` correctly. +- `shorebird account orgs --help` lists every role, including `none` for an + organization where you only collaborate on apps. +- When a login can't be refreshed, the CLI says why. An OAuth error from the + auth service asks you to run `shorebird login`. A network or server error + leaves your login as it was and exits with status 75 instead of 70. +- iOS and iOS framework patches no longer read `SHOREBIRD_PATCH_DD_MAX_BYTES`. + Pass `--dd-max-bytes` to `shorebird patch` instead. +- The error for an `--org-id` that isn't a number lists your organizations and + their ids. diff --git a/src/content/changelog/cli-fixes-1-6-130.md b/src/content/changelog/cli-fixes-1-6-130.md new file mode 100644 index 00000000..0702e6fd --- /dev/null +++ b/src/content/changelog/cli-fixes-1-6-130.md @@ -0,0 +1,22 @@ +--- +title: More CLI fixes in 1.6.130 +date: 2026-10-17 +version: 1.6.130 +area: CLI +type: Fixed +--- + +CLI 1.6.130 also fixes these issues. + +- Prompts no longer crash with `No terminal attached to stdout` when stdout + can't show a prompt, such as when it's redirected to `/dev/null`. The command + runs as non-interactive and, when it needs a confirmation, asks for `--yes` or + `--confirm-name`. +- Declining a prompt no longer prints the generic advice to re-run with + `--verbose`. +- `shorebird doctor` and `shorebird upgrade` on a Shorebird checkout at a + commit, a tag, or a branch with no upstream explain how to get back to + `stable`. +- Every request the CLI makes identifies it with a + `User-Agent: shorebird-cli/ (; dart )` header, which + audit log entries record. diff --git a/src/content/changelog/console-fixes-2026-10-18.md b/src/content/changelog/console-fixes-2026-10-18.md new file mode 100644 index 00000000..d3acaf84 --- /dev/null +++ b/src/content/changelog/console-fixes-2026-10-18.md @@ -0,0 +1,15 @@ +--- +title: Console fixes for yearly plans, account deletion, and app transfers +date: 2026-10-18 +area: Console +type: Fixed +--- + +The Console fixes three issues. + +- Yearly plans show their price per year, `/yr`, instead of `/mo`. +- Deleting an account that has many apps no longer times out. Through the API, + `DELETE /api/v1/users/me` now answers 202 with `remaining_app_count` while + apps are left to delete. Repeat the request until it answers 204. +- When you transfer an app, organizations where you aren't an Admin or Owner are + listed but can't be chosen. Before, choosing one failed after you submitted. diff --git a/src/content/changelog/delete-confirm-yes.md b/src/content/changelog/delete-confirm-yes.md new file mode 100644 index 00000000..9ef744dd --- /dev/null +++ b/src/content/changelog/delete-confirm-yes.md @@ -0,0 +1,23 @@ +--- +title: Confirm deletes with --yes +date: 2026-10-16 +version: 1.6.129 +area: CLI +type: Changed +docLink: + label: Destructive commands + href: /code-push/ci/scripting/#destructive-commands +--- + +`shorebird channels delete` and `shorebird releases delete` ask you to confirm +in a terminal, and `--yes` skips the question. Without a terminal, in CI, or +with `--json`, `--yes` is required. + +- `--confirm-name` is deprecated for these two commands and prints a warning. +- Before deleting, each command says what the delete removes, such as a + release's patches. +- `shorebird apps delete` now asks you to type the app's display name in a + terminal. Scripts still pass it with `--confirm-name`, and there's no `--yes`. +- Declining a prompt now exits with status 1 instead of 0. This covers + `shorebird patches set-track`, the native and asset change prompts of + `shorebird patch`, and the new delete prompts. diff --git a/src/content/changelog/delete-tracks-hide-rolled-back.md b/src/content/changelog/delete-tracks-hide-rolled-back.md new file mode 100644 index 00000000..8259ac52 --- /dev/null +++ b/src/content/changelog/delete-tracks-hide-rolled-back.md @@ -0,0 +1,15 @@ +--- +title: Delete a track, and hide rolled-back patches +date: 2026-10-18 +area: Console +type: New +docLink: + label: Delete a track + href: /code-push/tracks/#delete-a-track +--- + +The Tracks page can delete tracks you added, and a release's patch list hides +rolled-back and deactivated patches unless you ask to see them. + +- `stable`, `beta`, `staging`, and `deactivated` have no delete button. +- A switch shows the hidden patches and how many there are. diff --git a/src/content/changelog/failed-payment-invoices-voided.md b/src/content/changelog/failed-payment-invoices-voided.md new file mode 100644 index 00000000..0b5b58aa --- /dev/null +++ b/src/content/changelog/failed-payment-invoices-voided.md @@ -0,0 +1,12 @@ +--- +title: Canceled plans void their open invoices +date: 2026-10-14 +area: Console +type: Fixed +--- + +When a plan is canceled because a payment failed, its open invoices are now +voided. + +- The payment link in the billing email can no longer take a payment for a plan + that has ended. diff --git a/src/content/changelog/json-envelope-every-command.md b/src/content/changelog/json-envelope-every-command.md new file mode 100644 index 00000000..08e5e5db --- /dev/null +++ b/src/content/changelog/json-envelope-every-command.md @@ -0,0 +1,17 @@ +--- +title: Every --json command prints one JSON object +date: 2026-10-16 +version: 1.6.129 +area: CLI +type: Changed +docLink: + label: Errors + href: /code-push/ci/scripting/#errors +--- + +With `--json`, every command writes exactly one JSON object to stdout, including +`--help` and commands that have no data to return. + +- A command with no data prints `"data": {}` in its success object. +- When an API call fails, the error includes the server's `api_code` and + `details`. Without `--json`, the CLI prints the code as `Error code: `. diff --git a/src/content/changelog/metrics-commands.md b/src/content/changelog/metrics-commands.md new file mode 100644 index 00000000..b2cb1989 --- /dev/null +++ b/src/content/changelog/metrics-commands.md @@ -0,0 +1,20 @@ +--- +title: See app metrics from the CLI +date: 2026-10-16 +version: 1.6.129 +area: CLI +type: New +docLink: + label: Metrics commands + href: /account/cli/#metrics-commands +--- + +`shorebird metrics` shows the metrics the Console shows under Insights, such as +patch installs, downloads, adoption, and active devices. + +- The subcommands are `active-hours`, `adoption`, `downloads`, `heatmap`, + `installs`, `new-devices`, `users`, and `versions`. +- Pick the app with `--app-id` or `--flavor`. Depending on the metric, + `--start`, `--end`, and `--release-version` narrow the results, and + `--granularity` and `--group-by` break them down. +- With `--json`, `data` holds the API's response. diff --git a/src/content/changelog/name-new-organizations.md b/src/content/changelog/name-new-organizations.md new file mode 100644 index 00000000..6b9c4b76 --- /dev/null +++ b/src/content/changelog/name-new-organizations.md @@ -0,0 +1,15 @@ +--- +title: Name an organization when you create it +date: 2026-10-20 +area: Console +type: Changed +docLink: + label: Creating an organization + href: /account/orgs/#creating-an-organization +--- + +Creating an organization now asks for its name. New organizations are no longer +called "My Organization". + +- Inviting someone to an organization that's still called "My Organization" + suggests renaming it first. diff --git a/src/content/changelog/org-switcher.md b/src/content/changelog/org-switcher.md new file mode 100644 index 00000000..73f3109e --- /dev/null +++ b/src/content/changelog/org-switcher.md @@ -0,0 +1,17 @@ +--- +title: Switch organizations from the sidebar +date: 2026-10-14 +area: Console +type: New +docLink: + label: Creating an organization + href: /account/orgs/#creating-an-organization +--- + +The top of the Console's sidebar names the organization you're in and opens a +switcher with its plan, your role, its install usage, and your other +organizations. + +- Your account links and Log out moved to a menu in the header. +- On 2026-10-15, the theme toggle left the header. Choose a theme under + Appearance on your account page. diff --git a/src/content/changelog/patch-cache-cleared-on-delete.md b/src/content/changelog/patch-cache-cleared-on-delete.md new file mode 100644 index 00000000..857b1c92 --- /dev/null +++ b/src/content/changelog/patch-cache-cleared-on-delete.md @@ -0,0 +1,22 @@ +--- +title: Patch checks catch up with deletes and rollbacks +date: 2026-10-15 +area: Code Push +type: Fixed +docLink: + label: Delete a track + href: /code-push/tracks/#delete-a-track +--- + +Deleting a track now takes effect on the next patch check, and deleting a +release can no longer leave its patches cached. Running a rollback or roll +forward again now clears the cache if the first run couldn't. + +- Devices on a deleted track could keep receiving its last patch. That cached + answer is now cleared. +- If clearing the cache fails during a rollback or roll forward, the request + returns `patch_rollback_cache_error` or `patch_rollforward_cache_error`. + Running it again clears the cache. +- After you delete one platform of a release, devices on that platform are no + longer offered its patches. Before, they were, and the download failed because + the patch files had been deleted with the platform. diff --git a/src/content/changelog/patch-check-publish-race.md b/src/content/changelog/patch-check-publish-race.md new file mode 100644 index 00000000..570c91e9 --- /dev/null +++ b/src/content/changelog/patch-check-publish-race.md @@ -0,0 +1,15 @@ +--- +title: Patch checks keep up with new patches and app transfers +date: 2026-10-20 +area: Code Push +type: Fixed +docLink: + label: Transfer an app + href: /account/orgs/#transfer-an-app +--- + +A patch check that ran while a patch was being published could leave "no patch" +cached until the next change. The next check now sees the new patch. + +- An app transferred to another organization follows the new organization's + patch limit right away, instead of the old one's for up to an hour. diff --git a/src/content/changelog/patch-dex-diff-details.md b/src/content/changelog/patch-dex-diff-details.md new file mode 100644 index 00000000..171fa916 --- /dev/null +++ b/src/content/changelog/patch-dex-diff-details.md @@ -0,0 +1,23 @@ +--- +# cspell:ignore havent swiftobjective ckotlinjava +title: Android patch warnings show what changed code references +date: 2026-10-17 +version: 1.6.130 +area: CLI +type: New +docLink: + label: Native changes warning + href: /code-push/troubleshooting/#your-app-contains-native-changes-warning-when-creating-a-patch-even-though-you-havent-changed-swiftobjective-ckotlinjava-code +--- + +When Java or Kotlin changes trigger the native changes warning on an Android +patch, the output names the classes, methods, and fields that each changed +method's differing instructions reference, so you can tell which dependency +changed. + +- By default it details up to 10 methods per DEX file and 4 instructions on each + side. String literals are replaced by their length, and switch tables and + array data are cut short. +- `shorebird patch --show-dex-diff` prints every changed method and instruction + in full, including string constants. +- What the check accepts hasn't changed. diff --git a/src/content/changelog/release-patch-confirm-removed.md b/src/content/changelog/release-patch-confirm-removed.md new file mode 100644 index 00000000..73b4f7ac --- /dev/null +++ b/src/content/changelog/release-patch-confirm-removed.md @@ -0,0 +1,15 @@ +--- +title: The release and patch commands no longer take --confirm +date: 2026-10-17 +version: 1.6.130 +area: CLI +type: Changed +--- + +The hidden `--confirm` flag is gone from `shorebird release` and +`shorebird patch`. It made each command ask `Would you like to continue?` before +publishing, and that prompt is gone. + +- Passing `--confirm` is a usage error, with exit status 64. +- `--no-confirm` is still accepted and does nothing, so existing scripts keep + working. diff --git a/src/content/changelog/releases-delete.md b/src/content/changelog/releases-delete.md new file mode 100644 index 00000000..a3daa4a5 --- /dev/null +++ b/src/content/changelog/releases-delete.md @@ -0,0 +1,20 @@ +--- +title: Delete a release from the CLI +date: 2026-10-16 +version: 1.6.129 +area: CLI +type: New +docLink: + label: Delete releases + href: /code-push/release/#delete-releases +--- + +`shorebird releases delete` deletes a release, or one platform of it with +`--platform`. + +- Without `--platform`, it removes the release's artifacts for every platform + and every patch of the release. +- With `--platform`, it removes that platform's release artifacts and the patch + files built for it. The release and its other platforms stay. +- In a terminal it asks you to confirm. Without one, in CI, or with `--json`, + pass `--yes`. diff --git a/src/content/changelog/roles-plan-no-longer-offers.md b/src/content/changelog/roles-plan-no-longer-offers.md new file mode 100644 index 00000000..dc5baab3 --- /dev/null +++ b/src/content/changelog/roles-plan-no-longer-offers.md @@ -0,0 +1,14 @@ +--- +title: Roles your plan no longer offers are marked +date: 2026-10-17 +area: Console +type: Changed +docLink: + label: Member roles + href: /account/orgs/#member-roles +--- + +A member keeps a role that the organization's current plan no longer offers. The +role picker now warns that changing it can't be undone without upgrading. + +- Developer is always offered. diff --git a/src/content/changelog/saml-first-sign-in-keeps-account.md b/src/content/changelog/saml-first-sign-in-keeps-account.md new file mode 100644 index 00000000..d4cd2cf5 --- /dev/null +++ b/src/content/changelog/saml-first-sign-in-keeps-account.md @@ -0,0 +1,16 @@ +--- +title: First SSO sign-in keeps your existing account +date: 2026-10-17 +area: Console +type: Changed +docLink: + label: How sign-in works + href: /enterprise/saml/#how-sign-in-works +--- + +Signing in with SAML SSO for the first time with an email at the connection's +domain moves your existing account onto SSO instead of refusing it. Your +organizations, app access, and billing carry over. + +- The account's Google or Microsoft sign-in is replaced, and its existing + sessions are signed out. diff --git a/src/content/changelog/saml-sha1-refused.md b/src/content/changelog/saml-sha1-refused.md new file mode 100644 index 00000000..8ffc3192 --- /dev/null +++ b/src/content/changelog/saml-sha1-refused.md @@ -0,0 +1,14 @@ +--- +title: SAML sign-in refuses SHA-1 +date: 2026-10-14 +area: Console +type: Changed +docLink: + label: Troubleshooting + href: /enterprise/saml/#troubleshooting +--- + +SAML responses signed or digested with SHA-1 are now refused. + +- Sign-in fails with "SSO login failed". Configure your identity provider to + sign with RSA-SHA256 and digest with SHA-256. diff --git a/src/content/changelog/session-revoke-immediate.md b/src/content/changelog/session-revoke-immediate.md new file mode 100644 index 00000000..575e6296 --- /dev/null +++ b/src/content/changelog/session-revoke-immediate.md @@ -0,0 +1,10 @@ +--- +title: Signing out a session takes effect right away +date: 2026-10-18 +area: API +type: Changed +--- + +An access token now stops working as soon as its session is revoked. + +- Before, it kept working until it expired, up to 15 minutes later. diff --git a/src/content/changelog/usage-owned-orgs.md b/src/content/changelog/usage-owned-orgs.md new file mode 100644 index 00000000..e034c617 --- /dev/null +++ b/src/content/changelog/usage-owned-orgs.md @@ -0,0 +1,15 @@ +--- +title: Usage counts only organizations you own +date: 2026-10-13 +area: Console +type: Fixed +docLink: + label: Organizations & billing + href: /account/billing/#organizations--billing +--- + +The usage shown on your plan page and in organization settings now counts +installs only from organizations the plan holder owns. + +- This matches what the patch limit counts. Before, an organization you were + only a member of could add to it. diff --git a/src/content/changelog/whoami-plan-only.md b/src/content/changelog/whoami-plan-only.md new file mode 100644 index 00000000..ebbe1c4c --- /dev/null +++ b/src/content/changelog/whoami-plan-only.md @@ -0,0 +1,16 @@ +--- +title: The whoami command no longer prints a subscription line +date: 2026-10-16 +version: 1.6.129 +area: CLI +type: Changed +docLink: + label: Current account + href: /account/cli/#current-account +--- + +`shorebird account whoami` no longer prints a `Subscription:` line. `Plan:` +shows your plan level. + +- In `--json` output, `plan` is `free` on the free level, `paid` on any other + level, and `null` when the server doesn't report a level. diff --git a/src/content/changelog/wrong-provider-message.md b/src/content/changelog/wrong-provider-message.md new file mode 100644 index 00000000..d8b282af --- /dev/null +++ b/src/content/changelog/wrong-provider-message.md @@ -0,0 +1,12 @@ +--- +title: Sign-in names the method your account uses +date: 2026-10-15 +area: Console +type: Changed +--- + +Signing in with a different method than your account uses now names the one to +use. + +- For example, an account that signs in with Google sees "This email address + signs in with Google". diff --git a/src/content/docs/account/orgs.mdx b/src/content/docs/account/orgs.mdx index 2ed55db8..fdf3c18d 100644 --- a/src/content/docs/account/orgs.mdx +++ b/src/content/docs/account/orgs.mdx @@ -7,8 +7,6 @@ sidebar: import { Image } from 'astro:assets'; import ArcadeEmbed from '~/components/ArcadeEmbed.astro'; -import createOrg from '~/assets/create_org.png'; -import accessOrgSettings from '~/assets/access_org_settings.png'; import addMemberToOrg from '~/assets/add_member_to_org.png'; import completedAddMemberToOrg from '~/assets/completed_add_member_to_org.png'; import transferAppToDifferentOrg from '~/assets/transfer_app_to_different_org.png'; @@ -29,23 +27,13 @@ contact@shorebird.dev for help. ## Creating an organization -To create an organization, visit the Shorebird console and click on your email -address in the bottom left corner. From there, click the "+" button next to -"Organizations". +To create an organization, open the Shorebird console and click the +organization's name at the top of the sidebar. In the switcher that opens, click +"New organization", enter a name, and click "Create organization". You can +rename it later in the organization's settings. -Screenshot of where to start the creation of an organization in the Shorebird Console - -This will automatically create a new organization called "My Organization". You -can head over to the organization's settings to change its details, including -the name. - -Screenshot of how to get to Organization settings in the Shorebird Console +Creating an organization needs a paid plan of your own. On the Free plan, the +switcher shows "Upgrade to create an organization" instead. ## Managing apps @@ -150,13 +138,13 @@ can't answer invitations. ## Member roles Organization roles apply to all apps within the organization and can be managed -via the organization settings page in the Shorebird console. The roles available -to you are based on the plan that you have. +via the organization settings page in the Shorebird console. The roles you can +give members depend on the organization's plan, which is its owner's plan. | | Free | Pro | Business | Enterprise | | ----------- | ---- | --- | -------- | ---------- | | Viewer | | ✅ | ✅ | ✅ | -| Developer | | ✅ | ✅ | ✅ | +| Developer | ✅ | ✅ | ✅ | ✅ | | App Manager | | | | ✅ | | Admin | | ✅ | ✅ | ✅ | | Owner | ✅ | ✅ | ✅ | ✅ | diff --git a/src/content/docs/code-push/faq.mdx b/src/content/docs/code-push/faq.mdx index 09e6a6c2..7c1bfe65 100644 --- a/src/content/docs/code-push/faq.mdx +++ b/src/content/docs/code-push/faq.mdx @@ -649,8 +649,8 @@ patches. ### Can you use Shorebird with your team? -Yes. The Shorebird free "Hobby" tier only supports a single developer, but all -other plans support unlimited developers. +Yes. Working as a team needs an organization, and creating one needs a paid +plan. Every paid plan supports unlimited developers. See [Organizations](/account/orgs) for more information. diff --git a/src/content/docs/code-push/patch.mdx b/src/content/docs/code-push/patch.mdx index e77a9036..06b209de 100644 --- a/src/content/docs/code-push/patch.mdx +++ b/src/content/docs/code-push/patch.mdx @@ -99,7 +99,6 @@ $ shorebird patch android 📺 Channel: stable 🕹️ Platform: android [arm64 (166.20 KB), arm32 (161.78 KB), x86_64 (161.51 KB)] -Would you like to continue? (y/N) Yes ✓ Creating patch (93ms) ✓ Uploading artifacts (1.5s) ✓ Fetching channels (86ms) @@ -161,6 +160,7 @@ directly. | `--dry-run` | `-n` | Build and validate the patch but **do not upload** it. Ideal as a CI sanity check. | | `--allow-asset-diffs` | | Publish even if asset differences are detected. **Not recommended.** | | `--allow-native-diffs` | | Publish even if native code differences are detected. **Not recommended.** | +| `--show-dex-diff` | | On Android, print every changed method and instruction in full, including string constants, when native code differences are detected. | ### iOS-specific options diff --git a/src/content/docs/code-push/release.mdx b/src/content/docs/code-push/release.mdx index 87cb2a83..7e07bedc 100644 --- a/src/content/docs/code-push/release.mdx +++ b/src/content/docs/code-push/release.mdx @@ -50,7 +50,6 @@ $ shorebird release android 📦 Release Version: 1.0.0+1 🕹️ Platform: android (arm64, arm32, x86_64) -Would you like to continue? (y/N) Yes ✓ Fetching Flutter revision (30ms) ✓ Updating release status (67ms) ✓ Creating artifacts (2.8s) @@ -158,7 +157,6 @@ $ shorebird release ios 📦 Release Version: 1.0.0+1 🕹️ Platform: ios -Would you like to continue? (y/N) Yes ✓ Fetching Flutter revision (40ms) ✓ Creating release (0.1s) ✓ Creating artifacts (5.1s) @@ -283,7 +281,6 @@ $ shorebird release linux 🕹️ Platform: linux 🐦 Flutter Version: 3.41.4 (1e0e5760ee) -Would you like to continue? (y/N) Yes ✓ Fetching releases (0.1s) ✓ Creating release (0.3s) ✓ Updating release status (0.1s) @@ -316,7 +313,6 @@ $ shorebird release macos 🕹️ Platform: macos 🐦 Flutter Version: 3.41.4 (1e0e5760ee) -Would you like to continue? (y/N) Yes ✓ Fetching releases (0.1s) ✓ Creating release (0.3s) ✓ Updating release status (0.1s) @@ -389,7 +385,6 @@ $ shorebird release windows 🕹️ Platform: windows 🐦 Flutter Version: 3.41.4 (1e0e5760ee) -Would you like to continue? (y/N) Yes ✓ Fetching releases (0.1s) ✓ Creating release (0.3s) ✓ Updating release status (0.1s) diff --git a/src/content/docs/code-push/rollback.mdx b/src/content/docs/code-push/rollback.mdx index 77cf0794..89abf039 100644 --- a/src/content/docs/code-push/rollback.mdx +++ b/src/content/docs/code-push/rollback.mdx @@ -137,8 +137,9 @@ Imagine a release with two patches: When a user downloads this release from the store, Shorebird will see that patch 2 is the latest available patch and download it. -If a problem is discovered with patch 2, it can be rolled back. The Console will -look like this after a rollback: +If a problem is discovered with patch 2, it can be rolled back. The Console +hides rolled back patches by default. With **Show rolled back and deactivated** +turned on next to the Patches heading, it looks like this after a rollback: