S00-028: Document and verify the compatible Codex runner invocation
Changes: Document the coordinator-selected Codex 0.159.0 argv without conflicting sandbox flags; record parser and filesystem evidence plus QA handoff. Preserve existing local configuration and portable example. Validation: Exact active argv help and approved host wrapper with inner workspace-write probe exited 0; project write/read/remove passed and outside write denied EROFS30. Final make check passed 72 tests after shortening the documentation to meet prompt budgets. No additional model or storage work ran. Task: S00-028 Agent: auto-ci-cd-e3a716a94424 Role: ci-cd Action: claim Status: review Task title: Repair conflicting Codex harness sandbox arguments
This commit is contained in:
1 parent
ff5a89647a
commit
ff99ee7b62
8 files changed
+102
-15
No files matched your search
@@ -18,6 +18,19 @@ Harness обязан запускать новую conversation/session для
|
||||
|
||||
Автоматические commits включены по умолчанию. Перед первым реальным запуском foundation должна быть сохранена начальным commit в Git checkout с активной веткой, настроенной identity и чистым index/working tree. Каждый agent transition заканчивается отдельным осмысленным commit перед следующим процессом. Executor и reviewer заранее пишут сообщения; Git выполняет runner. Правила, примеры и восстановление — `docs/GIT_WORKFLOW.md`.
|
||||
|
||||
## Codex 0.159.0: argv (S00-028)
|
||||
|
||||
Coordinator выбрал из project root:
|
||||
|
||||
```sh
|
||||
codex -c sandbox_workspace_write.network_access=true exec --approve-for-me --ephemeral -
|
||||
```
|
||||
|
||||
`--approve-for-me` включает workspace-write/auto-review и конфликтует с `--sandbox`.
|
||||
`-` читает fresh prompt из stdin; resume/fork не использовать. Проверки без модели:
|
||||
argv + `--help` и sandbox probe ниже, timeout20, exit0; project write passed,
|
||||
outside denied EROFS30. Полное evidence: `state/evidence/S00-028-auto-ci-cd-e3a716a94424.md`.
|
||||
|
||||
## Запуск
|
||||
|
||||
```sh
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Матрица задач
|
||||
|
||||
Generated; state revision **103**. Canonical status: state/tasks.json.
|
||||
Generated; state revision **105**. Canonical status: state/tasks.json.
|
||||
|
||||
| ID | Этап | Оператор | Reviewer | Статус | Owner | Зависимости | Задача |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
@@ -30,7 +30,7 @@ Generated; state revision **103**. Canonical status: state/tasks.json.
|
||||
| [S00-025](tasks/S00-025.md) | S00 | storage | qa | blocked | auto-storage-ae5930b6fbdf | S00-002, S00-028 | Устранить прерывание: Устранить прерывание: Выбрать IndexedDB wrapper и migration policy |
|
||||
| [S00-026](tasks/S00-026.md) | S00 | ci-cd | qa | done | auto-ci-cd-4255c34da227 | S00-001, S00-002, S00-017, S00-018, S00-019 | Provide approved access to the pinned Linux experiment artifacts |
|
||||
| [S00-027](tasks/S00-027.md) | S00 | ci-cd | security | done | auto-ci-cd-40ae46e8efe7 | S00-001, S00-002, S00-021 | Restore approved npm registry connectivity for the OMEMO2 backend investigation |
|
||||
| [S00-028](tasks/S00-028.md) | S00 | ci-cd | qa | todo | | S00-002, S00-030 | Repair conflicting Codex harness sandbox arguments |
|
||||
| [S00-028](tasks/S00-028.md) | S00 | ci-cd | qa | review | auto-ci-cd-e3a716a94424 | S00-002, S00-030 | Repair conflicting Codex harness sandbox arguments |
|
||||
| [S00-029](tasks/S00-029.md) | S00 | orchestrator | security | blocked | | S00-001, S00-002, S00-021, S00-027 | Record an approved browser OMEMO backend sourcing strategy |
|
||||
| [S00-030](tasks/S00-030.md) | S00 | ci-cd | qa | done | auto-ci-cd-8c7bc1551426 | S00-002, S00-031 | Provide a valid Codex sandbox app-server socket directory |
|
||||
| [S00-031](tasks/S00-031.md) | S00 | ci-cd | qa | done | auto-ci-cd-d45ccd3ee7d6 | S00-002 | Supply a verified private Codex app-server socket environment |
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
- [S00-025](../tasks/S00-025.md): Устранить прерывание: Устранить прерывание: Выбрать IndexedDB wrapper и migration policy — storage; blocked.
|
||||
- [S00-026](../tasks/S00-026.md): Provide approved access to the pinned Linux experiment artifacts — ci-cd; done.
|
||||
- [S00-027](../tasks/S00-027.md): Restore approved npm registry connectivity for the OMEMO2 backend investigation — ci-cd; done.
|
||||
- [S00-028](../tasks/S00-028.md): Repair conflicting Codex harness sandbox arguments — ci-cd; todo.
|
||||
- [S00-028](../tasks/S00-028.md): Repair conflicting Codex harness sandbox arguments — ci-cd; review.
|
||||
- [S00-029](../tasks/S00-029.md): Record an approved browser OMEMO backend sourcing strategy — orchestrator; blocked.
|
||||
- [S00-030](../tasks/S00-030.md): Provide a valid Codex sandbox app-server socket directory — ci-cd; done.
|
||||
- [S00-031](../tasks/S00-031.md): Supply a verified private Codex app-server socket environment — ci-cd; done.
|
||||
|
||||
@@ -25,7 +25,7 @@ S00-024,S00,ci-cd,qa,done,auto-ci-cd-49907d48a6d1,"S00-001, S00-002, S00-017, S0
|
||||
S00-025,S00,storage,qa,blocked,auto-storage-ae5930b6fbdf,"S00-002, S00-028",Устранить прерывание: Устранить прерывание: Выбрать IndexedDB wrapper и migration policy
|
||||
S00-026,S00,ci-cd,qa,done,auto-ci-cd-4255c34da227,"S00-001, S00-002, S00-017, S00-018, S00-019",Provide approved access to the pinned Linux experiment artifacts
|
||||
S00-027,S00,ci-cd,security,done,auto-ci-cd-40ae46e8efe7,"S00-001, S00-002, S00-021",Restore approved npm registry connectivity for the OMEMO2 backend investigation
|
||||
S00-028,S00,ci-cd,qa,todo,,"S00-002, S00-030",Repair conflicting Codex harness sandbox arguments
|
||||
S00-028,S00,ci-cd,qa,review,auto-ci-cd-e3a716a94424,"S00-002, S00-030",Repair conflicting Codex harness sandbox arguments
|
||||
S00-029,S00,orchestrator,security,blocked,,"S00-001, S00-002, S00-021, S00-027",Record an approved browser OMEMO backend sourcing strategy
|
||||
S00-030,S00,ci-cd,qa,done,auto-ci-cd-8c7bc1551426,"S00-002, S00-031",Provide a valid Codex sandbox app-server socket directory
|
||||
S00-031,S00,ci-cd,qa,done,auto-ci-cd-d45ccd3ee7d6,S00-002,Supply a verified private Codex app-server socket environment
|
||||
|
||||
|
@@ -0,0 +1,4 @@
|
||||
Document and verify the compatible Codex runner invocation
|
||||
|
||||
Changes: Document the coordinator-selected Codex 0.159.0 argv without conflicting sandbox flags; record parser and filesystem evidence plus QA handoff. Preserve existing local configuration and portable example.
|
||||
Validation: Exact active argv help and approved host wrapper with inner workspace-write probe exited 0; project write/read/remove passed and outside write denied EROFS30. Final make check passed 72 tests after shortening the documentation to meet prompt budgets. No additional model or storage work ran.
|
||||
@@ -0,0 +1,44 @@
|
||||
# S00-028 executor evidence
|
||||
|
||||
Agent: auto-ci-cd-e3a716a94424 (ci-cd), 2026-10-15. Awaiting independent QA.
|
||||
|
||||
Input: assigned card/packet, prior S00-028 handoff, required startup/task reads, accepted ADR 0001, direct S00-002/S00-030 evidence/reviews/handoffs and S00-031 inspected diagnostic. Output: documented coordinator-selected compatible launcher and bounded parser/filesystem verification. Acceptance: conflicting flags absent; workspace-write retained; no storage execution/completion.
|
||||
|
||||
## Actual result and scope
|
||||
|
||||
Coordinator already corrected ignored runner.local.json before this session. Its argv is exactly:
|
||||
`codex -c sandbox_workspace_write.network_access=true exec --approve-for-me --ephemeral -`.
|
||||
commands_by_role is empty. No launcher/config change was necessary here. Only source edit: docs/AUTOMATION.md records that invocation, CLI semantics and bounded checks. Portable runner.example.json is preserved. Initial git status contained only coordinator claim state/tasks.json.
|
||||
|
||||
Installed CLI help states approve-for-me routes approvals through automatic review using workspace-write. No explicit --sandbox, extra --add-dir, bypass, resume or fork is present. The current coordinator assignment reached this fresh executor; no additional model was launched for testing. The help check proves parsing, not model/network/authentication success. Filesystem diagnostic independently exercises the implied workspace-write policy with explicit sandbox_mode in the no-model sandbox subcommand; it does not run codex exec inference.
|
||||
|
||||
## Commands and actual exits
|
||||
|
||||
- `python3 scripts/tasks.py resume --agent auto-ci-cd-e3a716a94424`, `show S00-028`, `packet S00-028 --agent auto-ci-cd-e3a716a94424`: exit0 each. Correct in_progress assignment; dependencies done; no repeat claim.
|
||||
- `codex --version`, `codex exec --help`, and exact active argv plus `--help`: all exit0 under Python subprocess timeout20. CLI version0.159.0. Restricted shell warns PATH aliases cannot be created on read-only filesystem; parser succeeds.
|
||||
- Python JSON/subprocess assertions: exit0. Exact argv matches above; role overrides empty; no conflicting/bypass/resume/fork/add-dir arguments; help contains `using the workspace-write sandbox`. Exact argv help child exit0, empty stdin, timeout20.
|
||||
- Read /tmp/luma-filesystem-sandbox-probe.py before execution. SHA256 cf27daee26667c9855204841271a4681f3878a9467b0627d2916a6c215df71f6 matches reviewed S00-031 full script. Synthetic project write/read/remove and outside exclusive-create only; no model/network/subprocess inside script.
|
||||
- Approved outer host exec_command(sandbox_permissions=require_escalated) ran this exact wrapper from project root (outer and inner exit0, timeout20 did not expire):
|
||||
|
||||
```python
|
||||
import os, stat, subprocess
|
||||
p='/tmp/codex-daemon-1000'
|
||||
s=os.stat(p)
|
||||
print({'context':'host','path':p,'uid':s.st_uid,'mode':oct(stat.S_IMODE(s.st_mode)),'directory':stat.S_ISDIR(s.st_mode)},flush=True)
|
||||
assert s.st_uid==os.getuid() and stat.S_IMODE(s.st_mode)==0o700 and stat.S_ISDIR(s.st_mode)
|
||||
r=subprocess.run(['codex','-c','sandbox_mode="workspace-write"','-c','sandbox_workspace_write.network_access=true','sandbox','--','python3','/tmp/luma-filesystem-sandbox-probe.py'],timeout=20)
|
||||
print({'sandbox_exit_code':r.returncode},flush=True)
|
||||
raise SystemExit(r.returncode)
|
||||
```
|
||||
|
||||
Host output: directory=true, uid1000=current uid, mode0o700. Inner JSON: {"project_write_read_remove":"passed","outside_project_write":"denied","denial_errno":30,"outside_probe_created":false,"uid":1000}. sandbox_exit_code=0. Negative target is /home/tola outside project/temp roots. Probe runs only inside inner workspace-write sandbox, never directly on host. No socket permissions, writable roots or environment location changed.
|
||||
|
||||
- First `make check > /tmp/luma-S00-028-check.log 2>&1`: exit2, 72 tests, four errors for S21-006 claim/review prompt budgets after long documentation draft. Reduced only the new scoped documentation; no test/runner/plan changes.
|
||||
- Final `make check > /tmp/luma-S00-028-check-final.log 2>&1`: exit0, 72 tests passed in18.759s including prompt budgets. Foundation integrity only.
|
||||
- Read-only git status/diff and `git diff --check`: exit0; source diff confined to docs/AUTOMATION.md, remainder workflow metadata. No Git mutation.
|
||||
|
||||
## Limits and review handoff
|
||||
|
||||
No original storage task, application source, immutable spec, shared contract or task definition changed/executed. No additional model/authentication call, production endpoint test, or app readiness claim. One host/version and one filesystem boundary verified; default temporary writable roots retained. QA should independently repeat the exact argv help and approved inner-sandbox wrapper after inspecting/recovering the script from S00-031 evidence. Separate QA owns acceptance; coordinator owns commit and subsequent sessions.
|
||||
|
||||
OpenAI Docs skill used. Official https://developers.openai.com/codex/security opened 2026-10-15 (redirect https://learn.chatgpt.com/docs/security) for general context. Exact flags come from installed help and actual parser execution; host boundary conclusions come from this diagnostic.
|
||||
@@ -1,9 +1,11 @@
|
||||
# S00-028 blocked handoff
|
||||
# S00-028 handoff for independent QA
|
||||
|
||||
Executor: auto-ci-cd-211cf3a2bd08, ci-cd. No source changes. Coordinator event revision 77 supplies the already corrected active argv: codex -c sandbox_workspace_write.network_access=true exec --approve-for-me --ephemeral -. Installed CLI 0.159.0 and exact-argv help parsing succeed (exit 0). No product/storage work or fresh model was launched.
|
||||
Executor: auto-ci-cd-e3a716a94424, ci-cd, 2026-10-15. Awaiting review.
|
||||
|
||||
Independent filesystem validation is blocked: `codex -c 'sandbox_mode="workspace-write"' -c sandbox_workspace_write.network_access=true sandbox -- python3 -c '<synthetic project write/read/remove and mount inspection>'` exits 1 before command execution: `error building bubblewrap command: app-server socket directory must be a user-owned directory with mode 0700`.
|
||||
Coordinator-selected runner.local.json argv already has no conflicting --sandbox:
|
||||
`codex -c sandbox_workspace_write.network_access=true exec --approve-for-me --ephemeral -`.
|
||||
No config edit required; docs/AUTOMATION.md now records supported invocation and checks. Exact argv help accepts with exit0; installed0.159.0 help states approve-for-me uses workspace-write. No resume/fork/add-dir/bypass/role override.
|
||||
|
||||
Next input: host/coordinator must supply a Codex sandbox socket environment whose directory satisfies ownership and 0700 mode, without broadening filesystem permissions or bypassing sandbox. A fresh remediation executor/reviewer must verify the bounded no-model diagnostic. After reviewed resolution, a new S00-028 executor should finish filesystem verification and document the coordinator-selected supported argv, then submit for QA. Do not resume this reporter id or mark storage tasks done.
|
||||
Repeated reviewed S00-030 host initialization with inner workspace-write no-model probe: host socket uid1000/mode0700; project write/read/remove passed, outside exclusive-create denied EROFS30, inner/outer exit0. No additional model/storage task or socket/root changes. Previous socket blocker resolved through reviewed S00-030; prior diagnosis/evidence retained in state/evidence/S00-028-auto-ci-cd-211cf3a2bd08.md.
|
||||
|
||||
Evidence: state/evidence/S00-028-auto-ci-cd-211cf3a2bd08.md. Active config preserved. No application readiness, successful sandbox write, or new harness model execution is claimed.
|
||||
Evidence: state/evidence/S00-028-auto-ci-cd-e3a716a94424.md contains exact wrapper, inspected script hash, all exits and limitations. QA: inspect diff/message and active argv; repeat exact argv + --help with timeout20, inspect/recover /tmp probe from S00-031 evidence, then repeat approved host wrapper (never direct host probe). Final make check exit0,72 tests in18.759s; first long documentation draft exceeded prompt budget, reduced within scope. No app or downstream storage acceptance. Coordinator commits submission before new reviewer session; executor exits after submit.
|
||||
+30
-6
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"revision": 103,
|
||||
"revision": 105,
|
||||
"tasks": {
|
||||
"S00-001": {
|
||||
"status": "done",
|
||||
@@ -1399,18 +1399,19 @@
|
||||
"completed_at": "2026-10-15T10:14:41+00:00"
|
||||
},
|
||||
"S00-028": {
|
||||
"status": "todo",
|
||||
"owner": null,
|
||||
"status": "review",
|
||||
"owner": "auto-ci-cd-e3a716a94424",
|
||||
"external_wait": false,
|
||||
"reason": null,
|
||||
"started_at": "2026-10-15T10:24:24+00:00",
|
||||
"updated_at": "2026-10-15T10:49:16+00:00",
|
||||
"started_at": "2026-10-15T10:49:48+00:00",
|
||||
"updated_at": "2026-10-15T10:52:41+00:00",
|
||||
"blocked_by": [],
|
||||
"resume_status": "in_progress",
|
||||
"blocker_report": "state/blockers/S00-030.md",
|
||||
"handoff": "state/handoffs/S00-028.md",
|
||||
"previous_owner": "auto-ci-cd-211cf3a2bd08",
|
||||
"resumed_after_blocker": true
|
||||
"resumed_after_blocker": true,
|
||||
"evidence": "state/evidence/S00-028-auto-ci-cd-e3a716a94424.md"
|
||||
},
|
||||
"S00-029": {
|
||||
"status": "blocked",
|
||||
@@ -2757,6 +2758,29 @@
|
||||
"to": "done",
|
||||
"reason": null,
|
||||
"evidence": "state/evidence/S00-030-review.md"
|
||||
},
|
||||
{
|
||||
"revision": 104,
|
||||
"at": "2026-10-15T10:49:48+00:00",
|
||||
"action": "claim",
|
||||
"task": "S00-028",
|
||||
"agent": "auto-ci-cd-e3a716a94424",
|
||||
"role": "ci-cd",
|
||||
"from": "todo",
|
||||
"to": "in_progress",
|
||||
"reason": null
|
||||
},
|
||||
{
|
||||
"revision": 105,
|
||||
"at": "2026-10-15T10:52:41+00:00",
|
||||
"action": "submit",
|
||||
"task": "S00-028",
|
||||
"agent": "auto-ci-cd-e3a716a94424",
|
||||
"role": null,
|
||||
"from": "in_progress",
|
||||
"to": "review",
|
||||
"reason": null,
|
||||
"evidence": "state/evidence/S00-028-auto-ci-cd-e3a716a94424.md"
|
||||
}
|
||||
],
|
||||
"retired_agents": [
|
||||
|
||||
Reference in new issue
Block a user