Skip to content

Public-safe on-demand Simulator lifecycle - #1

Open
VladimirBrejcha wants to merge 6 commits into
mainfrom
codex/public-safe-idle-lifecycle
Open

Public-safe on-demand Simulator lifecycle#1
VladimirBrejcha wants to merge 6 commits into
mainfrom
codex/public-safe-idle-lifecycle

Conversation

@VladimirBrejcha

Copy link
Copy Markdown
Contributor

Summary

  • make Simulator Broker own deterministic warm reuse, boot-on-acquisition, idle reconciliation, and operator controls
  • add opt-in idle policy, count-only confirmed cleanup, daemon scheduling, snapshot summaries, and macOS Overview controls
  • add a tracked-text public-safety scanner to the normal test and distribution gates, with an ignored local denylist

Verification

  • npm test — passed: 206 broker, 120 client/service, 24 harness-adoption, and 67 macOS app tests
  • npm --prefix agent-harness test — passed: 104 tests
  • npm run verify:public-surface — passed: 240 tracked text files
  • required implementation/spec profiles and all three agent:complete closeout gates passed

Rollout

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.

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

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread broker-core/index.mjs Outdated
Comment thread client/command-dispatch.mjs
Comment thread client/service/service-client.mjs
Comment thread app/Sources/BrokerSnapshotModels.swift
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]

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread broker-core/index.mjs Outdated
Comment thread client/command-dispatch.mjs Outdated
Comment thread client/public-surface.mjs
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]

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread broker-core/index.mjs
Comment thread client/command-dispatch.mjs
Comment thread client/service/brokerd.mjs Outdated
Comment thread broker-core/index.mjs Outdated
Comment thread client/public-surface.mjs
Comment thread client/bin/simbroker.mjs Outdated
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]
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

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.

1 participant