diff --git a/planning/TASK_MATRIX.md b/planning/TASK_MATRIX.md index e7d2213..b626482 100644 --- a/planning/TASK_MATRIX.md +++ b/planning/TASK_MATRIX.md @@ -1,6 +1,6 @@ # Матрица задач -Generated; state revision **53**. Canonical status: state/tasks.json. +Generated; state revision **54**. Canonical status: state/tasks.json. | ID | Этап | Оператор | Reviewer | Статус | Owner | Зависимости | Задача | | --- | --- | --- | --- | --- | --- | --- | --- | @@ -22,7 +22,7 @@ Generated; state revision **53**. Canonical status: state/tasks.json. | [S00-017](tasks/S00-017.md) | S00 | protocol | security | done | auto-protocol-599343cd9e3f | S00-001, S00-002 | Establish fail-closed SCRAM server-final validation | | [S00-018](tasks/S00-018.md) | S00 | protocol | security | done | auto-protocol-89fe6563092c | S00-001, S00-002, S00-017 | Validate bounded standalone XML ingress for the XMPP candidate | | [S00-019](tasks/S00-019.md) | S00 | crypto | security | done | auto-crypto-c68801170fa4 | S00-001, S00-002, S00-017, S00-018 | Validate browser-compatible SCRAM-SHA-512 through a public mechanism API | -| [S00-020](tasks/S00-020.md) | S00 | ci-cd | qa | blocked | | S00-001, S00-002, S00-017, S00-018, S00-019 | Restore access to the pinned Linux XMPP experiment toolchain | +| [S00-020](tasks/S00-020.md) | S00 | ci-cd | qa | todo | | S00-001, S00-002, S00-017, S00-018, S00-019 | Restore access to the pinned Linux XMPP experiment toolchain | | [S00-010](tasks/S00-010.md) | S00 | qa | orchestrator | todo | | S00-001, S00-002, S00-003, S00-004, S00-005, S00-006, S00-007, S00-008, S00-009 | Gate: Профиль и проверка стека | | [S01-001](tasks/S01-001.md) | S01 | orchestrator | security | todo | | S00-010 | Описать identity/model contracts | | [S01-002](tasks/S01-002.md) | S01 | orchestrator | security | todo | | S00-010, S01-001 | Описать async account context | diff --git a/planning/stages/S00.md b/planning/stages/S00.md index b8a5ad4..b28602a 100644 --- a/planning/stages/S00.md +++ b/planning/stages/S00.md @@ -24,7 +24,7 @@ - [S00-017](../tasks/S00-017.md): Establish fail-closed SCRAM server-final validation — protocol; done. - [S00-018](../tasks/S00-018.md): Validate bounded standalone XML ingress for the XMPP candidate — protocol; done. - [S00-019](../tasks/S00-019.md): Validate browser-compatible SCRAM-SHA-512 through a public mechanism API — crypto; done. -- [S00-020](../tasks/S00-020.md): Restore access to the pinned Linux XMPP experiment toolchain — ci-cd; blocked. +- [S00-020](../tasks/S00-020.md): Restore access to the pinned Linux XMPP experiment toolchain — ci-cd; todo. - [S00-010](../tasks/S00-010.md): Gate: Профиль и проверка стека — qa; todo. ## Граница этапа diff --git a/planning/task_matrix.csv b/planning/task_matrix.csv index bf8f51b..a8f5e4f 100644 --- a/planning/task_matrix.csv +++ b/planning/task_matrix.csv @@ -17,7 +17,7 @@ S00-016,S00,ci-cd,qa,done,auto-ci-cd-351a0cbbabef,"S00-001, S00-011, S00-013, S0 S00-017,S00,protocol,security,done,auto-protocol-599343cd9e3f,"S00-001, S00-002",Establish fail-closed SCRAM server-final validation S00-018,S00,protocol,security,done,auto-protocol-89fe6563092c,"S00-001, S00-002, S00-017",Validate bounded standalone XML ingress for the XMPP candidate S00-019,S00,crypto,security,done,auto-crypto-c68801170fa4,"S00-001, S00-002, S00-017, S00-018",Validate browser-compatible SCRAM-SHA-512 through a public mechanism API -S00-020,S00,ci-cd,qa,blocked,,"S00-001, S00-002, S00-017, S00-018, S00-019",Restore access to the pinned Linux XMPP experiment toolchain +S00-020,S00,ci-cd,qa,todo,,"S00-001, S00-002, S00-017, S00-018, S00-019",Restore access to the pinned Linux XMPP experiment toolchain S00-010,S00,qa,orchestrator,todo,,"S00-001, S00-002, S00-003, S00-004, S00-005, S00-006, S00-007, S00-008, S00-009",Gate: Профиль и проверка стека S01-001,S01,orchestrator,security,todo,,S00-010,Описать identity/model contracts S01-002,S01,orchestrator,security,todo,,"S00-010, S01-001",Описать async account context diff --git a/scripts/kilo-agent.sh b/scripts/kilo-agent.sh new file mode 100755 index 0000000..b764846 --- /dev/null +++ b/scripts/kilo-agent.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash +# +# Kilo Code CLI adapter for Luma Web runner. +# +# The runner launches the configured argv with the task prompt piped to this +# process's standard input (and stdout/stderr redirected to state/runs//output.log). +# Kilo's `run` subcommand does not consume a prompt from stdin, so we read it +# here and pass it to `kilo run` as the message argument. +# +# Scope: +# - only reads the prompt from stdin; +# - forwards the runner-provided project root as the working directory; +# - never writes project sources on its own (Kilo does the actual work). +set -euo pipefail + +# Read the full prompt from stdin (the runner pipes the prompt file here). +prompt="$(cat)" + +root="$LUMA_PROJECT_ROOT" +if [ -z "$root" ]; then + echo "kilo-agent: LUMA_PROJECT_ROOT is not set" >&2 + exit 1 +fi + +if [ -z "$prompt" ]; then + echo "kilo-agent: empty prompt received on stdin" >&2 + exit 1 +fi + +# Our plan file is committed to the repo; the runner also commits afterwards. +KILO_ARGS=(run --auto --dir "$root") + +# Keep a session title informative for later `kilo session` inspection. +KILO_ARGS+=(--title "luma-wave-$LUMA_ROLE") + +# --auto auto-approves all tool permissions so the headless runner does not +# stall waiting for interactive approval of bash/read/edit/task tools. +exec kilo "${KILO_ARGS[@]}" "$prompt" diff --git a/state/tasks.json b/state/tasks.json index a38e561..f2bc67f 100644 --- a/state/tasks.json +++ b/state/tasks.json @@ -1,6 +1,6 @@ { "schema_version": 1, - "revision": 53, + "revision": 54, "tasks": { "S00-001": { "status": "done", @@ -1262,10 +1262,10 @@ "completed_at": "2026-10-14T19:52:28+00:00" }, "S00-020": { - "status": "blocked", + "status": "todo", "owner": null, - "external_wait": true, - "reason": "S00-003 cannot reproduce accepted Node 24.21.0/npm 11.19.0 or install locked Stanza: host tools are 24.1.0/11.3.0, parent node_modules is absent, and normal official HTTPS retrieval fails with unresolved configured proxy." + "external_wait": false, + "reason": "Official Node v24.21.0 checksum endpoint and npm Stanza registry returned HTTPS 200 through configured proxy in an approved host network check on 2026-10-15. runner.local.json now uses codex exec --approve-for-me with workspace-write so fresh agents can request reviewed network access. Runtime and package integrity remain unverified and require S00-020 executor plus independent review." } }, "events": [ @@ -1958,6 +1958,14 @@ "from": "in_progress", "to": "blocked", "reason": "S00-003 cannot reproduce accepted Node 24.21.0/npm 11.19.0 or install locked Stanza: host tools are 24.1.0/11.3.0, parent node_modules is absent, and normal official HTTPS retrieval fails with unresolved configured proxy." + }, + { + "revision": 54, + "at": "2026-10-15T04:19:19+00:00", + "action": "release-external", + "task": "S00-020", + "agent": "coordinator-network-20261015", + "reason": "Official Node v24.21.0 checksum endpoint and npm Stanza registry returned HTTPS 200 through configured proxy in an approved host network check on 2026-10-15. runner.local.json now uses codex exec --approve-for-me with workspace-write so fresh agents can request reviewed network access. Runtime and package integrity remain unverified and require S00-020 executor plus independent review." } ], "retired_agents": [