I2701 — Časový limit nečinnosti se deklaruje vedle ostatních časování serveru a serve --idle deklaraci přebíjí
Deklarovat časový limit nečinnosti serveru v policy.yaml pod server: vedle časování lease, ověřit ho schématem politiky a docílit, aby se každý spuštěný server po deklarované době zastavil, pokud serve --idle neřekne jinak.
HOTOVO vlna 1 · p2 · profil implementation · běží samostatně
Cíl
Deklarovat časový limit nečinnosti serveru v policy.yaml pod server: vedle časování lease, ověřit ho schématem politiky a docílit, aby se každý spuštěný server po deklarované době zastavil, pokud serve --idle neřekne jinak.
Proč
Odděleno od I2129 dne 2026-10-14. I2129 učinil deklarované časování lease tím, podle něhož mcp a serve volí, a jeho desired_state říkal „Not done here“ o idle timeoutu jako deklarovaném klíči serveru, zatímco jeho kritéria přijetí ho stále vyžadovala, takže se nikdy nemohl uzavřít. Idle timeout je jediné časování serveru, které repozitář nemůže deklarovat: zkompilovaná konstanta, chybějící v policy.yaml server:. Základní audit z 2026-10-09 na masteru 1fb8d6be44, drift životního cyklu 1.
Aktuální stav
DEFAULT_IDLE_SECONDS (900, apps/majordomus-cli/src/cli.rs) je výchozí hodnota clap u serve --idle a serve ensure --idle a env enter ji předává serveru, který spouští (apps/majordomus-cli/src/commands/env.rs). .ai/repo/policy.yaml server: deklaruje probe_timeout_seconds, bind_grace_seconds, join_timeout_seconds, busy_grace_seconds a read_deadline_seconds (lease::Timings, apps/majordomus-cli/src/lease.rs); schéma politiky (share/schemas/majordomus/policy/policy.v1.schema.json) nezná klíč idle.
Cílový stav
policy.yaml server: může deklarovat časový limit nečinnosti (server.idle_seconds) a schéma politiky ho validuje; server spuštěný přes serve, serve ensure nebo env enter bez --idle se po deklarované době zastaví, chybějící klíč ponechá 900 s a --idle zadané na příkazové řádce deklaraci přepíše. docs/MCP.md uvádí klíč s ostatními časováními serveru.
Rozsah
- apps/majordomus-cli/src/cli.rs
- apps/majordomus-cli/src/commands/serve.rs
- apps/majordomus-cli/src/commands/env.rs
- apps/majordomus-cli/src/policy.rs
- .ai/repo/policy.yaml
- share/schemas/majordomus/policy
- apps/majordomus-cli/tests/serve_lifecycle.rs
- test/cases
- docs/MCP.md
Mimo rozsah
- Časování leasu, které čtou volby a které dodalo I2129
Závislosti
Kritéria přijetí
- Idle timeout je deklarovaný klíč politiky validovaný schématem politiky a serve --idle ho přebíjí
- Server spuštěný bez --idle pod deklarovaným idle timeoutem několika sekund se zastaví po deklarované době, ne po 900 s
Validace
- bin/majordomus plan validate
- cargo test --test serve_lifecycle
Požadované důkazy
- idle_timeout_declared_test
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| idle_timeout_declared_test | test | cargo test --test serve_lifecycle | 17 prošlo, 0 selhalo, včetně idle_timeout_declared_test (kód na masteru od 7111f846b83; znovu spuštěno na masteru 01227a0) | 01227a0 |
Časová osa
- zahájeno
- 2026-10-17T12:01:46Z
- ověřeno
- 2026-10-17T12:01:59Z
- dokončeno
- 2026-10-17T12:02:08Z
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Kanonický záznam: .ai/repo/project/issues/I2701.yaml. Přečtěte ho zpět pomocí majordomus plan show I2701.