Public-safe on-demand Simulator lifecycle - #1
Conversation
Why: Simulator capacity should remain registered while low-concurrency work deterministically reuses warm aliases and safely shuts unused automated simulators down under explicit local policy. Changed: Added pin/warm/shutdown selection, boot-on-acquire, idle policy and reconciliation, confirmed cleanup, CLI/service scheduling, public-surface scanning, tests, and aligned public specifications. Verification: The full product suite and both required harness profiles passed on the complete feature tree before this manifest-aligned commit split. Affected: broker-core, client, public documentation, and specifications. Refs: spec/tasks/public-safe-on-demand-simulator-lifecycle.md Session: task-sessions/20260810-public-safe-idle-broker
Why: Give operators an explicit, broker-backed way to configure and run safe idle cleanup without writing host state from the app. Changed: Add the Overview automatic-shutdown section, count-only cleanup confirmation, broker command integration, snapshot refresh behavior, temporary-root app tests, and distribution-time public-surface verification. Verification: npm test; scripts/test_app.sh Affected: app/**, scripts/package_distribution.sh, scripts/test_app.sh Refs: spec/tasks/public-safe-on-demand-simulator-lifecycle.md Session: task-sessions/20260810-public-safe-idle-app
Why: Prevent machine-local identities, paths, and operator artifacts from entering tracked public text. Changed: Run the public-surface scanner from the normal test gate and expose a dedicated verification command. Verification: npm test; npm run verify:public-surface Affected: package.json Refs: spec/tasks/public-safe-on-demand-simulator-lifecycle.md Session: task-sessions/20260810-public-safe-idle-gate
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5ff7e6450c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Why: - Resolve actionable GitHub review feedback for PR #1. Changed: - Applied safe fixes for all 4 active PR feedback items. Verification passed: `npm run test:broker-core`, `npm run test:client`, `bash scripts/test_app.sh --only-testing SimulatorBrokerAppTests/BrokerDashboardStoreTests/testSnapshotDecodesMissingIdleAsUnconfiguredDefault`, `npm run verify:public-surface`, and `git diff --check`. Verification: - npm run agent:complete -- --session-dir [controller artifact: jobs/pr-1/20260810-023703-55123191-5916-4a75-9d90-3abbda7c4268/task-session] - npm run agent:context -- --paths-file [controller artifact: jobs/pr-1/20260810-023703-55123191-5916-4a75-9d90-3abbda7c4268/actual-paths.txt] --session-dir [controller artifact: jobs/pr-1/20260810-023703-55123191-5916-4a75-9d90-3abbda7c4268/task-session] - npm run agent:verify -- --profile implementation --paths-file [controller artifact: jobs/pr-1/20260810-023703-55123191-5916-4a75-9d90-3abbda7c4268/task-session/verify/implementation/paths.txt] --session-dir [controller artifact: jobs/pr-1/20260810-023703-55123191-5916-4a75-9d90-3abbda7c4268/task-session] - npm run agent:verify -- --profile spec-only --paths-file [controller artifact: jobs/pr-1/20260810-023703-55123191-5916-4a75-9d90-3abbda7c4268/task-session/verify/spec-only/paths.txt] --session-dir [controller artifact: jobs/pr-1/20260810-023703-55123191-5916-4a75-9d90-3abbda7c4268/task-session] Affected: - .gitignore - README.md - app/README.md - app/Sources/AutomaticShutdownSection.swift - app/Sources/BrokerCommandSupport.swift - app/Sources/BrokerDashboardStore.swift - app/Sources/BrokerServiceClient.swift - app/Sources/BrokerSnapshotModels.swift - app/Sources/OverviewScreen.swift - app/Tests/BrokerDashboardStoreTests.swift - app/Tests/BrokerServiceClientTests.swift - app/Tests/Fixtures/busy-snapshot.json - app/project.yml - broker-core/error-contract.mjs - broker-core/index.mjs - broker-core/test/broker-core.test.mjs - client/README.md - client/bin/simbroker.mjs - client/command-dispatch.mjs - client/public-surface.mjs - client/service/brokerd.mjs - client/service/service-client.mjs - client/test/brokerd.test.mjs - client/test/public-surface.test.mjs - client/test/simbroker.test.mjs - package.json - scripts/package_distribution.sh - scripts/test_app.sh - spec/README.md - spec/architecture.md - spec/build-and-test.md - spec/global-simulator-broker.md - spec/harness-integration.md - spec/implementation-plan.md - spec/project-structure.md - spec/tasks/README.md - spec/tasks/public-safe-on-demand-simulator-lifecycle.md Refs: - #1 - #1 (comment) - #1 (comment) - #1 (comment) - #1 (comment) Session: - task-session: [controller artifact: jobs/pr-1/20260810-023703-55123191-5916-4a75-9d90-3abbda7c4268/task-session] - report: [controller artifact: jobs/pr-1/20260810-023703-55123191-5916-4a75-9d90-3abbda7c4268/report.md]
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3065c9e6e1
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Why: - Resolve actionable GitHub review feedback for PR #1. Changed: - Applied narrowly scoped fixes for all three active review items. Focused verification passed: node --test --test-name-pattern "idle cleanup" broker-core/test/broker-core.test.mjs; node --test --test-name-pattern "idle mutations surface final snapshot refresh failures" client/test/simbroker.test.mjs; node --test client/test/public-surface.test.mjs; npm run verify:public-surface; git diff --check. Verification: - npm run agent:complete -- --session-dir [controller artifact: jobs/pr-1/20260810-025809-ae1ef991-8a63-47ec-be58-6fb8ef18b0d4/task-session] - npm run agent:context -- --paths-file [controller artifact: jobs/pr-1/20260810-025809-ae1ef991-8a63-47ec-be58-6fb8ef18b0d4/actual-paths.txt] --session-dir [controller artifact: jobs/pr-1/20260810-025809-ae1ef991-8a63-47ec-be58-6fb8ef18b0d4/task-session] - npm run agent:verify -- --profile implementation --paths-file [controller artifact: jobs/pr-1/20260810-025809-ae1ef991-8a63-47ec-be58-6fb8ef18b0d4/task-session/verify/implementation/paths.txt] --session-dir [controller artifact: jobs/pr-1/20260810-025809-ae1ef991-8a63-47ec-be58-6fb8ef18b0d4/task-session] - npm run agent:verify -- --profile spec-only --paths-file [controller artifact: jobs/pr-1/20260810-025809-ae1ef991-8a63-47ec-be58-6fb8ef18b0d4/task-session/verify/spec-only/paths.txt] --session-dir [controller artifact: jobs/pr-1/20260810-025809-ae1ef991-8a63-47ec-be58-6fb8ef18b0d4/task-session] Affected: - .gitignore - README.md - app/README.md - app/Sources/AutomaticShutdownSection.swift - app/Sources/BrokerCommandSupport.swift - app/Sources/BrokerDashboardStore.swift - app/Sources/BrokerServiceClient.swift - app/Sources/BrokerSnapshotModels.swift - app/Sources/OverviewScreen.swift - app/Tests/BrokerDashboardStoreTests.swift - app/Tests/BrokerServiceClientTests.swift - app/Tests/Fixtures/busy-snapshot.json - app/project.yml - broker-core/error-contract.mjs - broker-core/index.mjs - broker-core/test/broker-core.test.mjs - client/README.md - client/bin/simbroker.mjs - client/command-dispatch.mjs - client/public-surface.mjs - client/service/brokerd.mjs - client/service/service-client.mjs - client/test/brokerd.test.mjs - client/test/public-surface.test.mjs - client/test/simbroker.test.mjs - package.json - scripts/package_distribution.sh - scripts/test_app.sh - spec/README.md - spec/architecture.md - spec/build-and-test.md - spec/global-simulator-broker.md - spec/harness-integration.md - spec/implementation-plan.md - spec/project-structure.md - spec/tasks/README.md - spec/tasks/public-safe-on-demand-simulator-lifecycle.md Refs: - #1 - #1 (comment) - #1 (comment) - #1 (comment) Session: - task-session: [controller artifact: jobs/pr-1/20260810-025809-ae1ef991-8a63-47ec-be58-6fb8ef18b0d4/task-session] - report: [controller artifact: jobs/pr-1/20260810-025809-ae1ef991-8a63-47ec-be58-6fb8ef18b0d4/report.md]
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a4bb425b47
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Why: - Resolve actionable GitHub review feedback for PR #1. Changed: - Repaired the implementation-profile verification failure by increasing the timeout for the harness doctor-output regression that exceeded Vitest's 5s default under full verification load. Additional checks passed: `npm --prefix agent-harness run build`, `npm --prefix agent-harness test`, and `npm run verify:public-surface`. Verification: - npm run agent:complete -- --session-dir [controller artifact: jobs/pr-1/20260810-032447-92125911-ed1c-44b9-a0b2-447985ce0fe4/task-session] - npm run agent:context -- --paths-file [controller artifact: jobs/pr-1/20260810-032447-92125911-ed1c-44b9-a0b2-447985ce0fe4/actual-paths.txt] --session-dir [controller artifact: jobs/pr-1/20260810-032447-92125911-ed1c-44b9-a0b2-447985ce0fe4/task-session] - npm run agent:verify -- --profile implementation --paths-file [controller artifact: jobs/pr-1/20260810-032447-92125911-ed1c-44b9-a0b2-447985ce0fe4/task-session/verify/implementation/paths.txt] --session-dir [controller artifact: jobs/pr-1/20260810-032447-92125911-ed1c-44b9-a0b2-447985ce0fe4/task-session] - npm run agent:verify -- --profile spec-only --paths-file [controller artifact: jobs/pr-1/20260810-032447-92125911-ed1c-44b9-a0b2-447985ce0fe4/task-session/verify/spec-only/paths.txt] --session-dir [controller artifact: jobs/pr-1/20260810-032447-92125911-ed1c-44b9-a0b2-447985ce0fe4/task-session] Affected: - .gitignore - README.md - agent-harness/tests/runtime.test.ts - app/README.md - app/Sources/AutomaticShutdownSection.swift - app/Sources/BrokerCommandSupport.swift - app/Sources/BrokerDashboardStore.swift - app/Sources/BrokerServiceClient.swift - app/Sources/BrokerSnapshotModels.swift - app/Sources/OverviewScreen.swift - app/Tests/BrokerDashboardStoreTests.swift - app/Tests/BrokerServiceClientTests.swift - app/Tests/Fixtures/busy-snapshot.json - app/project.yml - broker-core/error-contract.mjs - broker-core/index.mjs - broker-core/simctl.mjs - broker-core/test/broker-core.test.mjs - client/README.md - client/bin/simbroker.mjs - client/command-dispatch.mjs - client/public-surface.mjs - client/service/brokerd.mjs - client/service/service-client.mjs - client/test/brokerd.test.mjs - client/test/public-surface.test.mjs - client/test/simbroker.test.mjs - package.json - scripts/package_distribution.sh - scripts/test_app.sh - spec/README.md - spec/architecture.md - spec/build-and-test.md - spec/global-simulator-broker.md - spec/harness-integration.md - spec/implementation-plan.md - spec/project-structure.md - spec/tasks/README.md - spec/tasks/public-safe-on-demand-simulator-lifecycle.md Refs: - #1 - #1 (comment) - #1 (comment) - #1 (comment) - #1 (comment) - #1 (comment) - #1 (comment) Session: - task-session: [controller artifact: jobs/pr-1/20260810-032447-92125911-ed1c-44b9-a0b2-447985ce0fe4/task-session] - report: [controller artifact: jobs/pr-1/20260810-032447-92125911-ed1c-44b9-a0b2-447985ce0fe4/report.md]
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Summary
Verification
npm test— passed: 206 broker, 120 client/service, 24 harness-adoption, and 67 macOS app testsnpm --prefix agent-harness test— passed: 104 testsnpm run verify:public-surface— passed: 240 tracked text filesagent:completecloseout gates passedRollout
The machine-local 300-second policy and one-time cleanup are intentionally deferred until this release is available. No host aliases, simulator identifiers, local paths, operator identities, or personalized defaults are committed.