Repository navigation
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
@codex review |
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
Security findingsAdvisory findings (20)
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 48e793e237
ℹ️ 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".
There was a problem hiding this comment.
🛡️ Codex Security Review · Automatically triggered
Here are some automated security review suggestions for this pull request.
Reviewed commit: 48e793e237
ℹ️ About Codex security reviews in GitHub
This is an experimental Codex feature. Security reviews are triggered when:
- You comment "@codex security review"
- A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review
Once complete, Codex will leave suggestions, or a comment if no findings are found.
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e95d5184ab
ℹ️ 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".
There was a problem hiding this comment.
🛡️ Codex Security Review · Automatically triggered
Here are some automated security review suggestions for this pull request.
Reviewed commit: e95d5184ab
ℹ️ About Codex security reviews in GitHub
This is an experimental Codex feature. Security reviews are triggered when:
- You comment "@codex security review"
- A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review
Once complete, Codex will leave suggestions, or a comment if no findings are found.
|
@codex review |
|
Codex Review: Didn't find any major issues. You're on a roll. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
|
Ready for lead: Unit 1 implements machine-only autostart markers and CLI controls, up/down pause semantics, bounded once-per-boot Compose startup, desktop §6 JSON/global progress, safe noninteractive execution and registry trust checks. Failure fields are empty Unit 2 placeholders; no keep-up loop is claimed. Evidence:
Not verified: real Linux/macOS login/reboot, live Docker startup, actual native keychain behavior, and terminal-independent lifecycle supervision. No additional macOS shards were dispatched. macOS/Docker/native qualification is deferred, not passed. No live home, registry, project, daemon or login service was changed for this work. Known scope: primary-checkout opt-in only; native startup unsupported; unknown/complex Compose selection runs ordinary up and may repeat hooks; preflight failure or a crash after claim needs manual up in this slice. Keep-up follows with HACK-2215; daemon upgrade handling remains HACK-2216 and consumes #790's snapshot interface. Lead merges; this session does not. Cleanup: no task runtime/test processes remain. The prescribed safe-rm cleanup was refused for four task scratch directories with |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 08cf57d486
ℹ️ 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".
|
@codex review |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f714a6af87
ℹ️ 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".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2839fd79f5
ℹ️ 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".
…at login After the env-migration journal landed on next, an unfinished or unverifiable `hack env migrate` surfaced in the login child as an unexpected error, which the pass recorded as a failed start. Check the journal before any startup work and report it as pending_env_migration. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 57f211bf31
ℹ️ 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".
A modern project whose .hack/.env was written by `hack env materialize` (env layers, no legacy contract, valid .env.state.json) was refused as pending_env_migration. Use the same generated-output rule as the legacy dotenv detector; unattended Compose never loads that file. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@codex review |
|
Codex Review: Didn't find any major issues. Hooray! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
🛡️ Codex Security Review · Automatically triggeredSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
Resolve conflicts with #831 shared service state: project-views keeps both import sets (observation fields come from next's serializer); projects.ts keeps the autostart row field and drops the now-redundant observe spread; runtime-cache test takes next's file plus this branch's autostart polling test; getting-started keeps both paragraphs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…autostart --json Follow the machine-readable output rule from #835 for these new commands: `hack autostart add|list|pause|remove|resume|run --json` now return `{ ok, data: { schema: "hack.autostart.v1", action, ... } }`; `list` no longer prints a bare object. The commands are added to the JSON inventory and the generated reference table. `projects --json` keeps its legacy shape. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@codex review |
|
Codex Review: Didn't find any major issues. Nice work! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
🛡️ Codex Security Review · Automatically triggeredSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
|
Ready for lead: Since the last note
What I ran
For the Mac batch: a real login-service start with a Merge order: this follows #802 + #854. Expected conflicts on the next merge of Still open: the Compose-only scope question (comment 6880936376). My default keeps the narrowing. |
Resolve conflicts with #802: scripts/lib/tla-runtime-models.ts and docs/reference/v5-model-coverage.md keep both the autostart-start-stop and lifecycle-supervisor entries (the coverage doc has no generator). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@codex review |
|
Codex Review: Didn't find any major issues. Another round soon, please! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
🛡️ Codex Security Review · Automatically triggeredSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
|
Ready for lead: Since the last note: a merge of What I ran
For the Mac batch (unchanged): a real login-service start with a Merge order: this follows the set with #811. Expected conflicts on the next merge of Still open: the Compose-only scope question (comment 6880936376). My default keeps the narrowing. |
…hape #835's success-shape test pins the legacy top-level keys of plain `projects --json`. This branch intentionally adds the machine-wide `autostart_global` object there (documented in always-on-projects), so add it to the pinned key set. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Superseding the ready note at |
|
Codex Review: Didn't find any major issues. Keep them coming! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
🛡️ Codex Security Review · Automatically triggeredSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
|
Ready for lead: Since that note: one test-only commit. Hosted macOS test shard 2/8 at What I ran
For the Mac batch (unchanged): a real login-service start with a Merge order: this follows the #811 set. Expected conflicts on the next merge of Still open: the Compose-only scope question (comment 6880936376). My default keeps the narrowing. |
Resolve conflicts with #811: scripts/lib/tla-runtime-models.ts keeps both the autostart-start-stop and lifecycle-controller contracts; getting-started keeps both paragraphs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@codex review |
…nner #811's opt-in `lifecycle.runner: "supervisor"` runs its companion binary even with no hooks or processes, so a runner-only project passed admission and the login child executed the supervisor preflight. Refuse any runner other than the default "mux" at admission, before a claim or dispatch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Codex Review: Didn't find any major issues. Delightful! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
|
@codex review |
|
Codex Review: Didn't find any major issues. Another round soon, please! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
🛡️ Codex Security Review · Automatically triggeredSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
Behavior
Projects opt into machine-local login startup with
hack autostart add --project <name>orhack up -d --always. Commands support positional names, JSON and noninteractive operation. Global pause remains independent of each project's pause. This is an optionalfeattargetingnext; keep-up and upgrade reconciliation remain separate units.This unit now supports Compose-only unattended starts. Projects declaring lifecycle/startup hooks, host processes, shared helpers, dependency bootstrap, image builds, external/command providers or unsupported composition require manual
hack up. Built-in local encrypted app env remains supported without keychain fallback. Managed keys that redirect Compose, Docker, Git, executable lookup or host execution are refused by name without decrypting values. Ordinary manual starts keep their behavior.Retained projects created by
hack config adoptrequire manual starts because their runtime does not implement the unattended guards. Admission and dispatch refuse them at login. Manualdown --recoverreaches its retained owner before ordinary legacy discovery, including an interrupted start. Docker fixture failures now report only an allowlisted stage, exit status and known error code.Explicit
hack autostart runforwards SIGINT/SIGTERM to its pass, waits for detached startup cleanup and progress settlement, then exits with the signal status without printing successful completion. A repeated signal does not interrupt cleanup. SIGHUP is outside this explicit-command guard; use the installed service for unattended operation.Admission rejects unresolved YAML merge keys at any depth, with bounded cycle-aware traversal. Harmless shared anchors and merged bases remain eligible; recursive aliases refuse.
Only service-origin daemon launches replay projects automatically; manual launches explain explicit
hack autostart run. Children receive a fixed environment and no terminal. Docker readiness uses configurable ten-minute backoff. Waiting is visible in JSON and consumes no claims; later engine observations can resume the pass in the same boot. Starts are stable, staggered by 500 ms and capped at two. Already-running eligible instances are adopted only when the supported service graph is complete.Project policy is checked before engine access or a claim, before discovery, under the instance lock and before Compose effects. The actual host runners and provider boundary also refuse unattended execution. Images are explicitly inspected locally; both Compose phases use
--no-build --pull neverand disable implicit dotenv. Only a confirmed missing-image diagnostic is a neutral manual-start refusal. Transport/configuration and ordinary preparation failures retain their claim and failure result. Manual-start refusals release only a matching unstarted boot/branch claim and do not enterlogin_run.failed.Host-file/source-code binds, file-backed configs/secrets and indirect mounts require manual starts. Anonymous volumes, tmpfs and default local named storage remain supported. A bounded private effective-model probe covers generated overrides; existing named volumes must have no driver options and matching Compose ownership labels. Storage is checked before create and start. The only bind exception is the exact generated read-only TLS certificate paths: bounded no-follow reads authenticate safe ownership/modes and CA-only PEM content, and repeat before effects. No certificates or permissions are changed. This is not a container-privilege sandbox; prepared images and engine data remain trusted.
downpins its reconciled worktree target, publishes pause before waiting for the instance lock, then holds it through shutdown. The login CLI owns the same lock and rechecks intent before preparation and startup. Detached phase groups forward cancellation and settle before returning. Linux service-origin children run in independent transient user scopes; the daemon retainsKillMode=control-group.Registry writes are locked, atomic and private, with no-follow owner/mode/size checks. Legacy first opt-in independently observes a reviewed checkout; copied registrations retain review provenance. Ordinary unmarked registration/prune preserves legacy compatibility without granting startup authority. Project/global JSON matches the desktop contract, including
waiting_for_engine; failure-budget fields remain Unit 2 placeholders.Routing authenticates installed canonical templates before effects, publishes fresh nonsecret
0644inodes and recreates mounts. Staging occurs outside mounted directories. Checkout/config/generated-input paths, executables, Docker context and Compose plugin paths are checked. Login Git probes disable global/system config, monitors and hooks. Doctor reports closed trust/manual-start categories.Darwin ACL inspection covers those trust paths, registry and lock paths, routing inputs and TLS files. Bounded read-only probes refuse mutation grants, unknown rights and unsuccessful inspection; no permissions are repaired. Bounded Compose output is decoded from captured bytes as UTF-8 before model parsing, preserving non-ASCII trusted mount paths and refusing malformed text.
Trust policy: strict refusal includes user-private-group write. On macOS the engine path (helper lookup, Docker plugins and the Docker socket path) accepts a root-owned directory whose only extra writer is group
admin, such as/Applications, so default Docker Desktop and OrbStack layouts are eligible. World-writable directories and all checkout, config, registry and TLS inputs keep the strict check, and thehackd.servicePATH check is unchanged. Ordinary daemon PATH/status behavior is unchanged. Docs describe private reviewed tools, nonrecursive permission review andumask 022for manual starts; no owner permissions are changed automatically.Stop wins over a waiting pass: if
downcannot read the engine while choosing between base and branch instances (the login pass may be waiting for that same engine), it pauses the registration's marked instance, whatever its branch, before failing. A login service installed by an earlier version lacks the login-service marker; runhack daemon installonce after upgrading (automatic reinstall is HACK-2216).Formerly writable files must be preserved and replaced on fresh private inodes from reviewed inputs; in-place chmod or ACL changes cannot revoke retained writer descriptors. This applies to Compose/config/env/generated inputs and executable/Docker inputs as well as registries and TLS. Doctor names this requirement. Current metadata and stable reads do not infer permission history or freeze later Compose reads; merely copying unreviewed bytes is insufficient.
Validation
Head
b34014ce2e1c2819a4b92f4cd7827f7d0424d9b5mergesnextate47681ea0(normal merge). Conflicts:upkeeps both next's--progressand--always; the six native plan acceptance scripts take next'sassertNativePlanHome, and the superseded local wrapper and its test are removed;docs/reference/cli.mdis regenerated.bun run typecheck,bun run checkandbun run buildpass.check:native-plan-cli(env, host, routing, endpoint, process and acquisition plans, plus config import) andscripts/check-config-compiler-cli.tspass against a locally built config compiler.Remaining qualification
Real macOS/Linux login, reboot, cold Docker Desktop, native Darwin ACL behavior and keychain behavior remain unverified. Read-only Mac filesystem metadata confirms the documented app-bundle permission consequence; that is not runtime qualification. No manual macOS CI dispatch was requested. The full local suite was not run; planned exact-head CI, including enabled Docker/model/lifetime jobs, remains required. Earlier Docker dependency-worktree failures exposed the interrupted-adoption recovery regression; local recovery passes, but hosted Docker must confirm the failing scenarios.
Native login and linked-worktree opt-in are unsupported. Crash after claim or forced timeout can leave partial startup; a process census cannot revoke a request already accepted by Docker. Code/data inside prepared images and engine-managed volumes is not recursively audited. Current TLS file checks cannot revoke an older open writer; formerly writable trust files require reviewed manual replacement. Unknown engine missing-resource diagnostics fail closed as ordinary claimed failures. Older CLIs can erase opt-ins;
service_readydoes not yet prove executable capability. Explicit overlapping passes, shell-DOCKER_HOST-only engines, snapshot rollback restoring historical intent, native restart pauses and umask-dependent generated files remain documented follow-ups.Tracks HACK-2213. Keep-up and HACK-2216 remain separate PRs.