@atollhq/skill-codex 0.4.32 → 0.4.33

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atollhq/skill-codex",
3
- "version": "0.4.32",
3
+ "version": "0.4.33",
4
4
  "description": "Install the Atoll project management integration for Codex CLI",
5
5
  "bin": {
6
6
  "skill-codex": "bin/install.mjs"
@@ -18,7 +18,7 @@
18
18
  ],
19
19
  "repository": {
20
20
  "type": "git",
21
- "url": "git+https://github.com/atollhq/atoll.git",
21
+ "url": "git+https://github.com/antons-agents/atoll.git",
22
22
  "directory": "packages/skill-codex"
23
23
  },
24
24
  "dependencies": {
@@ -90,3 +90,78 @@ are blocked while a current job exists. Refresh, config validation, and Codex
90
90
  preflight are non-destructive; there is no model retry or cleanup button.
91
91
  A UI port or asset failure does not stop headless execution. Do not proxy this
92
92
  loopback interface to another host. Service installation remains separate.
93
+
94
+ ### macOS service and lifecycle
95
+
96
+ Install an explicit user service only when unattended operation is required:
97
+
98
+ ```bash
99
+ atoll-runner --profile agent-a service install
100
+ atoll-runner --profile agent-a service install --ui --ui-port 4735
101
+ atoll-runner --profile agent-a service status
102
+ atoll-runner --profile agent-a service uninstall
103
+ ```
104
+
105
+ The service is macOS-only. Install writes an atomic user-owned `0600` plist
106
+ under `~/Library/LaunchAgents/` with canonical Node and runner entry paths,
107
+ the selected profile, `run`, and optional loopback UI arguments. It contains no
108
+ environment variables, API keys, Codex or lease tokens, shell command,
109
+ checkout path, or worktree path. Unknown or changed plists fail closed.
110
+ Package installation is passive and never installs or starts the service. Use
111
+ uninstall, package upgrade, `doctor`, then install for an upgrade. Uninstall
112
+ removes only the exact owned plist and leaves journals, tokens, logs, branches,
113
+ and worktrees. Status and uninstall validate the local plist and do not require
114
+ profile credentials; install remains authenticated.
115
+
116
+ SIGINT/SIGTERM closes the process-local intake gate immediately. The current
117
+ child drains for at most 30 seconds; TERM and then KILL after 10 seconds are
118
+ sent only when the journaled PID still has the same process-start identity. A
119
+ wall-clock event-loop gap above 30 seconds is a possible wake. The child is
120
+ stopped, durable lease state is reconciled, and intake reopens only after that
121
+ pass. A wake may release a worker only to finish an already durable result;
122
+ stop never releases a worker. No hosted pause request is sent. Existing-wire
123
+ response failures are bounded as `RUNNER_PROTOCOL_MISMATCH` and keep pending
124
+ mutation journals available for replay.
125
+
126
+ ### Opt-in real local smoke
127
+
128
+ This developer harness is available only from an Atoll source checkout. It is
129
+ not included in the installed npm CLI. After deterministic checks, use a clean
130
+ loopback fixture profile with no current or conflicting retained job, and run
131
+ from `packages/cli`:
132
+
133
+ Loopback remains the normal default. Repository owners may also run one bounded
134
+ production validation turn from a clean Atoll source checkout. This mode requires
135
+ an exact canonical production origin, organization, project, authenticated agent,
136
+ issue, runner host and instance, and the live project repository mapping's opaque
137
+ `repo_ref` plus repository full name. The supplied `repo_ref` is checked against
138
+ live issue routing and must never be hard-coded. The smoke derives the canonical
139
+ source root from its own script, requires a clean source checkout, rebuilds the
140
+ candidate in the invocation, and records the source root, source `HEAD`, and
141
+ worker-entry SHA-256 in bounded mode-`0600` evidence. Exact production admission
142
+ performs zero presence `PUT`/upsert operations for either connected or
143
+ disconnected targets. Registration and refresh belong to separate operator setup
144
+ outside this invocation. The invocation reads the connected runner identity
145
+ before claim and rechecks it immediately before the claim; a disconnected target
146
+ fails closed. The runner does not explicitly select a model. The Codex runtime
147
+ and local Codex configuration supply model selection. `@openai/codex` and
148
+ `@openai/codex-sdk` are pinned to package/runtime version `0.153.4`; this
149
+ version is not a model name. Use the internal AH-2088 production smoke
150
+ runbook for the owner-only command and cleanup procedure.
151
+
152
+
153
+ ```bash
154
+ cd packages/cli && bun run build
155
+ ATOLL_RUNNER_MANUAL_SMOKE=1 bun run runner:manual-smoke -- \
156
+ --profile agent-a --issue issue-uuid --repository /path/to/checkout \
157
+ --timeout-ms 300000 --evidence /absolute/path/evidence.json
158
+ ```
159
+
160
+ The smoke runs one real Codex turn through the existing runner. It creates and
161
+ retains its owned local branch and worktree while preserving the primary
162
+ checkout, and writes bounded fixture issue, host, generation, branch/worktree,
163
+ base/head SHA, thread, terminal, and time evidence outside the checkout. A
164
+ timeout is always failure; retained journal state is authoritative. It never
165
+ pushes or deletes retained state, publishes, deploys, or installs a service.
166
+ Codex Desktop visibility is a separate operator observation; deterministic tests
167
+ use a fake SDK.