@farthershore/cli 0.36.0 → 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,77 @@ All notable changes to the `farthershore` CLI are documented here. The CLI
4
4
  versions independently from the SDKs. Pre-1.0: minor versions may include
5
5
  breaking changes. Releases before 0.35.0 are recorded only in the git history.
6
6
 
7
+ ## [Unreleased]
8
+
9
+ ## [0.37.0] - 2026-10-14
10
+
11
+ ### Changed
12
+
13
+ - `business status` reports `serving` (`status`, `coherent`, `message`) in
14
+ place of `edgeCoherence` (no generations, epochs or digests), and
15
+ `latestDeployment.publishStatus` in place of `edgePublishStatus`.
16
+ `business routes` lists each route once (no compiled row id);
17
+ `business contract` and `business config-attempts` print the closed public
18
+ shapes (no raw proposal text or payload). `validate --business` no longer
19
+ echoes the server's spec hash; a failure's `irHash` is the locally built IR's.
20
+ - `auth whoami` no longer prints a maker token's `authVersion` or a dashboard
21
+ session's identity-provider user id.
22
+ - `agents`, `bulletin`, `automation`, `knowledge`, `resource-count`,
23
+ `denial`, `dependents` and `workflow-control` print the closed public
24
+ shapes: an agent run names a failure by code with a fixed message and
25
+ carries no trace object key; a denial carries no internal decision or ledger
26
+ ids; a rollback preview reports `currentCommitSha`.
27
+ - The webhook commands print only the public webhook fields. Every endpoint
28
+ result carries the same fields (`failCount`, `disabledAt` and `updatedAt`
29
+ included); the signing secret appears only in `webhook create`,
30
+ `webhook rotate` and `webhook listen --print-secret`. A delivery's
31
+ `status` is `pending`, `success`, `failed` or `dead`, and `webhook test` /
32
+ `webhook trigger` results (and their `WEBHOOK_DELIVERY_FAILED` /
33
+ `WEBHOOK_REDIRECTED` errors) carry `deliveryId`, null when the attempt
34
+ could not be recorded.
35
+ - New `webhook delivery <business> <webhookId> <deliveryId>` shows one
36
+ delivery's status, attempts and HTTP status.
37
+ - `analytics log` events carry `request` (path, status code, subscriber, deny
38
+ code, gateway / backend timing) instead of the raw archived `payload`.
39
+ `usage summary` reports `activeApiKeys` (was `activeRuntimeKeys`) and no
40
+ business id. `stripe status` no longer prints the Stripe account id, and
41
+ `source` reads `business` | `organization`. `tax-settings show|update` print
42
+ `{ status, defaults: { taxBehavior, taxCode }, headOffice, missingFields }`
43
+ instead of the payment provider's settings object. `plan list` reads the
44
+ plan's `kind` and `isActive`.
45
+ - `variables` mutations and `variables status` print the public operation
46
+ (no `mutationId`, `state` or `result`; `impact` is integrations and
47
+ subscriber count; a failed attempt shows fixed copy; `generation` is
48
+ `version`, also on `variables list`). `frontend status`
49
+ prints `activeReleaseId` and each build's `releaseId`; `frontend rollback`
50
+ prints the release now serving with its `environmentId`.
51
+
52
+ - `agreements`, `promo-code` and `persona` print the closed public shapes:
53
+ no payment-provider ids on promo codes, no plan-version, user or membership
54
+ ids on personas, and `agreements pins` names the plan by key and version.
55
+ - `apply-timeline list` / `inspect` print the public entry: no build id, IR
56
+ hash or internal trigger; apply phases are `publish` and `billing`, and a
57
+ failed platform step reads as a code plus the id to quote to support.
58
+ `proposal create|preview|list|get` print the public ChangeSet (no rollback
59
+ plan, correlation id or simulation fingerprint; `resetReason` replaces
60
+ `failureReason`), and `proposal create --dry-run` prints what it would record.
61
+ An unknown `--env` name on the `apply-timeline` and `proposal` commands now
62
+ fails with `ENVIRONMENT_NOT_FOUND` (apply-timeline used to show production
63
+ entries).
64
+ - `env create` prints the full environment (now including `portalHostname`)
65
+ with `created` and `branchCreated`, and says when the environment already
66
+ existed. A failed `env delete` reports which cleanup steps did not finish
67
+ (`runtime`, `docs`, `branch`) instead of the underlying error text.
68
+ - `backend list` prints each backend's `status` straight from the server; the
69
+ backend and runtime-token commands print only the public fields (a backend's
70
+ internal origin host and raw provisioning / readiness state are no longer
71
+ returned). `backend tokens create` / `rotate` results carry `envVar` and the
72
+ one-time `token` as the server returns them.
73
+ - `business show`, `business list` and the other business reads print only the
74
+ public business fields. Internal platform state the server used to include
75
+ (release and sync bookkeeping, accepted specs, frontend activation details,
76
+ …) is no longer returned.
77
+
7
78
  ## [0.36.0] - 2026-10-13
8
79
 
9
80
  ### Changed
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  Create and operate [FartherShore](https://farthershore.com) software businesses
4
4
  from the terminal.
5
5
 
6
- **Status: `0.36.0`.** Pre-1.0 — the command surface is stable but may still
6
+ **Status: `0.37.0`.** Pre-1.0 — the command surface is stable but may still
7
7
  change between minor versions. Pin an exact version in CI.
8
8
 
9
9
  FartherShore lets you define a software business as code, then sells, meters,
@@ -20,13 +20,13 @@ takes `--format json` for non-interactive scripting.
20
20
  ## Install
21
21
 
22
22
  ```bash
23
- npm install -g @farthershore/cli@0.36.0
23
+ npm install -g @farthershore/cli@0.37.0
24
24
  ```
25
25
 
26
26
  Or run it directly with npx:
27
27
 
28
28
  ```bash
29
- npx -p @farthershore/cli@0.36.0 farthershore --help
29
+ npx -p @farthershore/cli@0.37.0 farthershore --help
30
30
  ```
31
31
 
32
32
  ## Authentication
@@ -708,6 +708,7 @@ farthershore webhook update weather-api <webhookId> --disable --format json
708
708
  farthershore webhook test weather-api <webhookId> --format json
709
709
  farthershore webhook trigger weather-api <webhookId> --type payment.failed --format json
710
710
  farthershore webhook deliveries weather-api <webhookId> --limit 20 --format json
711
+ farthershore webhook delivery weather-api <webhookId> <deliveryId> --format json
711
712
  farthershore webhook rotate weather-api <webhookId> --yes --format json
712
713
  farthershore webhook delete weather-api <webhookId> --yes --format json
713
714
  ```
@@ -720,6 +721,13 @@ in the receiving app. In human mode they also print it as an
720
721
  sends a signed, realistic sample of one catalog event (the deliveries log
721
722
  records it under that type) so every handler branch can be exercised locally.
722
723
 
724
+ `webhook deliveries` lists recent attempts; `webhook delivery` shows one by its
725
+ id (the `webhook-id` header your endpoint received, also the `deliveryId` that
726
+ `webhook test` / `webhook trigger` return): its status, attempts, last HTTP
727
+ status and when the next attempt is due. A `failed` delivery with no next
728
+ attempt (a test send) is final. Neither returns the event payload or your
729
+ endpoint's response body.
730
+
723
731
  For a receiver on your machine, `webhook listen` is the Stripe-CLI-style loop:
724
732
  it opens a Cloudflare quick tunnel to `--forward-to`, creates a temporary
725
733
  endpoint on it, prints the endpoint id / tunnel URL / (with `--print-secret`)
@@ -764,18 +772,18 @@ Use `--all-plans` to clear plan scoping.
764
772
  Install or refresh the platform-verified skills bundle together. The platform
765
773
  pins this immutable release, and CI plus a daily repository check compare it to
766
774
  GitHub's latest stable release so the guidance cannot silently drift.
767
- This command requires `@farthershore/cli` 0.36.0 or newer.
775
+ This command requires `@farthershore/cli` 0.37.0 or newer.
768
776
 
769
777
  ```bash
770
778
  set -euo pipefail
771
779
  CLI_VERSION=$(farthershore --version)
772
- printf '%s' "$CLI_VERSION" | node -e 'let v=""; process.stdin.on("data", c => v += c).on("end", () => { const m = /^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(?:\+[0-9A-Za-z.-]+)?$/.exec(v.trim()); if (!m || !(+m[1] > 0 || +m[2] > 36 || (+m[2] === 36 && +m[3] >= 0))) { console.error("Stop: CLI 0.36.0 or newer is required; ask the human to upgrade."); process.exitCode = 1; } })'
780
+ printf '%s' "$CLI_VERSION" | node -e 'let v=""; process.stdin.on("data", c => v += c).on("end", () => { const m = /^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(?:\+[0-9A-Za-z.-]+)?$/.exec(v.trim()); if (!m || !(+m[1] > 0 || +m[2] > 37 || (+m[2] === 37 && +m[3] >= 0))) { console.error("Stop: CLI 0.37.0 or newer is required; ask the human to upgrade."); process.exitCode = 1; } })'
773
781
  farthershore skills install --help
774
782
  farthershore skills install
775
783
  ```
776
784
 
777
785
  If either prerequisite fails, stop and ask the human to run
778
- `npm install -g @farthershore/cli@0.36.0`, then repeat the checks.
786
+ `npm install -g @farthershore/cli@0.37.0`, then repeat the checks.
779
787
  Do not install or upgrade global tooling autonomously.
780
788
 
781
789
  The Farther Shore CLI downloads the exact installer archive and verifies this