Skip to content

Commit 167db3a

Browse files
Keep the product-slug spec when integrating the pinned cask docs.
Why: origin/main added the notarized cask SHA pin after this branch diverged. The merge-base copy of spec/build-and-test.md must keep both the pinned-cask current-state bullets and the hardcoded simulator-broker session-root contract. Changed: - spec/build-and-test.md: keep the product-slug session-root obligation and take the pinned-cask plus notarized zip current-state bullets. - CHANGELOG.md, Casks/simulator-broker.rb, README.md, SECURITY.md, docs/getting-started.md, docs/status.md, docs/test/front-door.test.mjs: take the origin/main pinned-cask front door. Verification: - npm run agent:verify -- --profile spec-only --paths spec/build-and-test.md CHANGELOG.md Casks/simulator-broker.rb README.md SECURITY.md docs/getting-started.md docs/status.md docs/test/front-door.test.mjs --session-dir task-sessions/merge-agent-home-main-20260819 Affected: - spec/build-and-test.md - CHANGELOG.md - Casks/simulator-broker.rb - README.md - SECURITY.md - docs/getting-started.md - docs/status.md - docs/test/front-door.test.mjs Refs: - 0921bd6 (Merge pull request #13 from fiveonecode/release/cask-notarized-app-zip) - 52259ea (Point Codex verify-specs at the simulator-broker slug) Session: - task-sessions/merge-agent-home-main-20260819 Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 52259ea commit 167db3a

8 files changed

Lines changed: 41 additions & 34 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1414
[`fiveonecode/homebrew-simulator-broker`](https://github.com/fiveonecode/homebrew-simulator-broker)
1515
for that tap name. `Formula/` and `Casks/` here stay the source of truth.
1616
- Homebrew cask `Casks/simulator-broker.rb` installs `Simulator Broker.app`
17-
from the signed, notarized GitHub Release zip `Simulator-Broker-<version>.zip`
18-
when that zip is attached.
17+
from the signed, notarized GitHub Release zip `Simulator-Broker-<version>.zip`.
18+
Tag `v0.1.0-alpha.1` now attaches that zip, and the cask pins its SHA-256.
1919
- Packable npm CLI `packages/simbroker` (`npm run package:npm`) with a `bin`
2020
field. The repo-root package stays private. Tag-driven
2121
`.github/workflows/release.yml` attaches that tarball and no longer

Casks/simulator-broker.rb

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cask "simulator-broker" do
22
version "0.1.0-alpha.1"
3-
sha256 :no_check
3+
sha256 "5e19d128bf8061d5e18812c092e8a3b8e5f4514ff42bc233baa643fb0f075f70"
44

55
url "https://github.com/fiveonecode/simulator-broker/releases/download/v#{version}/Simulator-Broker-#{version}.zip"
66
name "Simulator Broker"
@@ -13,9 +13,8 @@
1313

1414
caveats <<~EOS
1515
This cask installs Simulator Broker.app from the signed, notarized
16-
GitHub Release zip Simulator-Broker-#{version}.zip. Produce that zip
17-
with npm run package:distribution (Developer ID Application + notarytool),
18-
using payload/app/Simulator Broker.app from the distribution bundle.
19-
The current Alpha GitHub Release attaches the CLI tarball, not this zip.
16+
GitHub Release zip Simulator-Broker-#{version}.zip. Reproduce that
17+
zip from payload/app/Simulator Broker.app after
18+
npm run package:distribution (Developer ID Application + notarization).
2019
EOS
2120
end

README.md

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ on one Mac without stealing devices from each other.
55

66
> **Alpha.** macOS only. Xcode is required to create or run iOS Simulators.
77
> Interfaces can change. Install the CLI with Homebrew or the `simbroker`
8-
> npm package. A signed, notarized operator app is not attached to this
9-
> Alpha release yet.
8+
> npm package. Install the operator app with the Homebrew cask.
109
1110
[![Node tests](https://github.com/fiveonecode/simulator-broker/actions/workflows/ci.yml/badge.svg)](https://github.com/fiveonecode/simulator-broker/actions/workflows/ci.yml)
1211

@@ -59,16 +58,18 @@ build the macOS app. If Homebrew is installed, `simbroker` lands in
5958
and one guarded login-shell PATH line. Open a new terminal if this shell still
6059
cannot resolve `simbroker`. `source .../env.sh` remains a fallback.
6160

62-
The Homebrew cask `fiveonecode/simulator-broker/simulator-broker` installs
63-
`Simulator Broker.app` from the signed, notarized GitHub Release zip
64-
`Simulator-Broker-<version>.zip`. That zip is not attached to the current
65-
Alpha release. Produce it with `npm run package:distribution` after Developer
66-
ID signing and notarytool notarization.
61+
The Homebrew cask installs the signed, notarized operator app:
6762

68-
Xcode is still required to create and run iOS Simulators. Alpha CLI tarballs
69-
are attached to
63+
```bash
64+
brew install --cask fiveonecode/simulator-broker/simulator-broker
65+
```
66+
67+
That cask downloads `Simulator-Broker-<version>.zip` from
7068
[GitHub Releases](https://github.com/fiveonecode/simulator-broker/releases).
71-
Extract a tarball and run `./bin/simbroker --help`.
69+
70+
Xcode is still required to create and run iOS Simulators. Alpha CLI tarballs
71+
are also attached to those releases. Extract a tarball and run
72+
`./bin/simbroker --help`.
7273

7374
`simbroker` help and `simbroker doctor` print human-readable text by default.
7475
Pass `--json` for machine-readable payloads.

SECURITY.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ Security fixes are considered for the current `main` branch and for the latest
66
tagged Alpha (`0.1.0-alpha.1`). Older Alpha tags are not supported. The
77
published CLI artifacts are the GitHub Release tarball, the Homebrew
88
formula that installs that tarball, and the packable `simbroker` npm
9-
package. A signed, notarized operator app zip is not attached to this
10-
Alpha release.
9+
package, and the signed, notarized operator app zip
10+
`Simulator-Broker-0.1.0-alpha.1.zip`.
1111

1212
## Reporting A Vulnerability
1313

docs/getting-started.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ A small public patch follows the public-patches track in
1010

1111
> **Alpha.** macOS only. Xcode is required to create or run iOS Simulators.
1212
> Interfaces can change. Install the CLI with Homebrew or the `simbroker`
13-
> npm package. A signed, notarized operator app is not attached to this
14-
> Alpha release yet.
13+
> npm package. Install the operator app with the Homebrew cask.
1514
1615
## Prerequisites
1716

@@ -171,12 +170,12 @@ SIMBROKER_DISTRIBUTION_SIGNING_IDENTITY='Developer ID Application: Example (TEAM
171170
npm run package:distribution
172171
```
173172

174-
GitHub Releases attach the Alpha CLI tarball. The Homebrew cask
173+
GitHub Releases attach the Alpha CLI tarball and the signed, notarized
174+
`Simulator-Broker-<version>.zip`. The Homebrew cask
175175
`fiveonecode/simulator-broker/simulator-broker` installs
176-
`Simulator Broker.app` from `Simulator-Broker-<version>.zip` on that
177-
release. Produce the zip with `npm run package:distribution` after Developer
178-
ID signing and notarytool notarization. The current Alpha release does not
179-
attach that zip.
176+
`Simulator Broker.app` from that zip. Reproduce the zip from
177+
`payload/app/Simulator Broker.app` after `npm run package:distribution`
178+
and Developer ID notarization.
180179

181180
## Report a problem
182181

docs/status.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,5 @@ node client/bin/simbroker.mjs lease release --lease-file /tmp/simbroker-lease.js
6868
node client/bin/simbroker.mjs simulators boot --alias ui-1
6969
```
7070

71-
## Lower-priority public follow-through
72-
73-
- Attach a signed, notarized `Simulator-Broker-<version>.zip` to GitHub
74-
Releases so the Homebrew cask has a downloadable app artifact
71+
The Alpha GitHub Release attaches the signed, notarized
72+
`Simulator-Broker-<version>.zip` used by the Homebrew cask.

docs/test/front-door.test.mjs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,9 +140,11 @@ test("README advertises GitHub Releases and the public Node CI badge", () => {
140140
assert.equal(readme.includes("or GitHub Release yet"), false);
141141
assert.equal(readme.includes("There is no Homebrew formula or npm package yet."), false);
142142
assert.ok(readme.includes("brew install fiveonecode/simulator-broker/simbroker"));
143+
assert.ok(readme.includes("brew install --cask fiveonecode/simulator-broker/simulator-broker"));
143144
assert.ok(readme.includes("homebrew-simulator-broker"));
144145
assert.ok(readme.includes("npm install -g"));
145146
assert.ok(readme.includes("simbroker-0.1.0-alpha.1.tgz"));
147+
assert.equal(readme.includes("is not attached"), false);
146148
});
147149

148150
test("CHANGELOG and package.json name the Alpha version", () => {
@@ -306,9 +308,14 @@ test("Homebrew formula points at the Alpha CLI tarball and the cask names a nota
306308
assert.ok(cask.includes('cask "simulator-broker"'));
307309
assert.ok(cask.includes("releases/download/v#{version}/Simulator-Broker-#{version}.zip"));
308310
assert.ok(cask.includes('app "Simulator Broker.app"'));
311+
const caskChecksum = cask.match(/sha256 "([a-f0-9]{64})"/);
312+
assert.ok(caskChecksum, "cask must pin a sha256");
313+
assert.equal(caskChecksum[1], "5e19d128bf8061d5e18812c092e8a3b8e5f4514ff42bc233baa643fb0f075f70");
314+
assert.equal(cask.includes("sha256 :no_check"), false);
309315
assert.equal(cask.includes("package:local"), false);
310316
assert.equal(cask.includes("package_local"), false);
311317
assert.ok(cask.includes("package:distribution") || cask.includes("package_distribution"));
318+
assert.equal(cask.includes("not this zip"), false);
312319
});
313320

314321
test("root package stays private and package_npm.sh packs a runnable simbroker bin", () => {

spec/build-and-test.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,16 +47,19 @@ A first extracted implementation slice now exists:
4747
with a `bin` field; the repo-root package stays `private`
4848
- `Casks/simulator-broker.rb` installs `Simulator Broker.app` from
4949
`Simulator-Broker-<version>.zip` on GitHub Releases (signed/notarized app
50-
shape from `package_distribution.sh`, not `package:local`)
50+
from `payload/app/Simulator Broker.app` after `package_distribution.sh`,
51+
not `package:local`). The cask pins the published zip SHA-256.
5152
- public GitHub-hosted Ubuntu CI runs `verify:public-surface`,
5253
`test:broker-core`, `test:client`, and `test:harness-adoption`; it does not
5354
run `test:app`. The job budget is 30 minutes. Broker tests that build an
5455
app snapshot must inject the fixture `simctl` adapter. The default
5556
public-surface scan reads index blobs only for dirty or missing worktree
5657
files so a clean checkout does not spawn one `git cat-file` per file.
57-
- tagged versions such as `v0.1.0-alpha.1` attach the CLI tarball and the
58-
packable `simbroker-<version>.tgz` to a GitHub Release through
59-
`.github/workflows/release.yml`
58+
- tagged versions such as `v0.1.0-alpha.1` attach the CLI tarball, the
59+
packable `simbroker-<version>.tgz`, and the notarized
60+
`Simulator-Broker-<version>.zip` to a GitHub Release. The CLI and npm
61+
tarballs come from `.github/workflows/release.yml`; the app zip is an
62+
operator-signed notarized attach for this Alpha.
6063
- local-debug portable bundle support through a zip bundle plus package-smoke verification of the bundled install path and installed-app launch proof
6164
- a separate Release distribution packaging path that requires operator-supplied signing inputs, runs `codesign` plus `spctl`, optionally notarizes with `notarytool`, and writes a readiness summary JSON
6265
- executable `agent-harness/` changes now route through the implementation

0 commit comments

Comments
 (0)