D1-02: Make the frozen Scarcity Router task runnable end-to-end #33

Merged
adrian.tkacz merged 2 commits from feat/d1-02-dogfood-composition into develop 2026-09-28 20:15:30 +00:00
Member

Closes #32. Parent program: #30. Predecessor evidence: #31 (frozen D1-01 contract).

What this adds

The thinnest supported composition (D1-02) that makes the frozen dogfood task BioMedical-IT/scarcity-router#143 runnable end to end through one Kernel entry point, without implementing #143 itself and without any paid/live call or real PR:

  • src/creatidy_kernel/adapters/dogfood.py — typed controller-owned DogfoodTaskSpec (repository identity, base branch, optional pinned exact base SHA, frozen instruction, allowed changed paths, argv-only verification plan, typed structural policy, attempt budget, no-merge/no-deploy), the frozen scarcity_router_143_task() builder, exact-base establishment/freezing from a read-only source checkout, disposable controller-owned workspace/object clones, controller-owned Git candidate subjects (read-tree/add -A via temp index → commit-tree on the exact base), the changed-path gate, the bounded verification-command runner (pinned cwd, per-command timeout, bounded capture, exit-code evidence), deterministic structural anti-weakening checks with an explicit deferred-to-independent-review list, human-readable lifecycle output, durable export/status, and the bounded live Router/Codex/Forge composition from documented environment variables only.
  • CLI: creatidy-kernel dogfood run|status|export (experimental, owner-approved, trusted-development; explicitly not a general run issue feature).
  • Structural policy for #143: required scenario test names, assertion-bearing tokens, forbidden added skip/xfail/broad-except patterns, and large-sleep rejection.

Reuse decisions

  • ADOPT unchanged: ProgramSpec/WorkUnit/Attempt durability, advance_work_unit, SQLiteProgramStore, ScarcityRouterAllocator, CodexRuntime + CodexInputs wiring, ForgejoForge + synthetic/conditional transports, AGit delivery discipline.
  • ADAPT (backwards-compatible): reference_git (optional author identity, index file, timeout; split reference_git_bytes), deliver_reference_pr (optional operation_id/schema/title/body), advance_work_unit (optional artifact_path, default "result.txt" preserved), CodexConnection protocol (read-only properties so CodexStdio satisfies it).
  • BUILD (minimal): the dogfood composition layer, changed-path gate, command runner, structural seam, CLI subcommands. No new scheduler, workflow DSL, runtime/allocator abstraction, Forge protocol, or sandbox claims.

Exact-base semantics (D1-01 → D1-03)

The D1-01 SHA 781bace… is historical evidence only. The task spec defaults to expected_base_sha=None: the base is resolved once from the source checkout (refs/remotes/origin/<branch>, falling back to refs/heads/<branch>) and durably frozen on first admission; recovery reuses the frozen base even if the source branch moves. --expected-base <sha> (or the spec field) pins an exact base when reproducing a known one.

Candidate and acceptance

The controller never trusts a worker-provided commit: the candidate commit is created by the controller from the disposable workspace tree against the exact base, recorded durably, and re-derivable deterministically after crashes. Verification binds to that exact Git subject; untracked verification artifacts are recorded as confined and never alter the accepted subject, while tracked mutations after verification reject the candidate.

Tests (deterministic; no paid inference, no real PR, no credentials)

tests/test_dogfood.py uses a real Git fixture repository shaped like the #143 subject, a native-shaped fake Codex connection, and a synthetic Forgejo forge:

  • End-to-end accepted run with exact base/candidate/PR-head binding, 1+8+1 verification runs, lifecycle output, owner checkout untouched.
  • Negative: forbidden changed path, empty candidate, verification failure, five structural weakenings (skip, assertion removal, ownership weakening, large sleep, scenario rename), tracked mutation during verification, runtime identity mismatch (stays unknown, no duplicate dispatch), no allocation.
  • Recovery: crash boundaries (task-admitted, workspace-prepared, prepared, allocation, receipt, verification, pr-commit/pr-send/pr-receipt) complete without duplicate allocation/dispatch/PR; uncertain dispatch after lost context stays unknown by design; base stays frozen when source develop moves; pinned base enforced.
  • CLI: env-completeness refusal, approval refusal, missing-database status, lifecycle printing.

Validation

  • make check: ruff format/check, basedpyright (strict), lint-imports, 788 tests passed, secrets scan clean, git diff --check.
  • make package-check: wheel/sdist/isolated install + CLI replay passed.
  • BASE_SHA: 49af0c4fd7475b6066a8f06fccdbe6b187042673 (canonical develop).

Known limitations for D1-03 (live run)

  • The frozen structural tokens (assertTrue(worker.cancels, assertEqual(bystander.cancels, [])) and required names must be re-verified against the actual then-current base file before the live run.
  • Verification commands still execute even when the changed-path gate has already failed (all policy checks collect evidence); a live run on an out-of-scope candidate pays that cost before rejection.
  • Single attempt per frozen task (budget 1); no automatic remediation loop.
  • The source checkout is only read; keeping it current (git fetch) remains an owner responsibility.
  • Trusted-development isolation only; hostile-worker isolation is not attested.

No merge, no deploy, no release. Independent whole-PR review required before owner merge.

Closes #32. Parent program: #30. Predecessor evidence: #31 (frozen D1-01 contract). ## What this adds The thinnest supported composition (D1-02) that makes the frozen dogfood task `BioMedical-IT/scarcity-router#143` runnable end to end through one Kernel entry point, without implementing #143 itself and without any paid/live call or real PR: - `src/creatidy_kernel/adapters/dogfood.py` — typed controller-owned `DogfoodTaskSpec` (repository identity, base branch, optional pinned exact base SHA, frozen instruction, allowed changed paths, argv-only verification plan, typed structural policy, attempt budget, no-merge/no-deploy), the frozen `scarcity_router_143_task()` builder, exact-base establishment/freezing from a read-only source checkout, disposable controller-owned workspace/object clones, controller-owned Git candidate subjects (`read-tree`/`add -A` via temp index → `commit-tree` on the exact base), the changed-path gate, the bounded verification-command runner (pinned cwd, per-command timeout, bounded capture, exit-code evidence), deterministic structural anti-weakening checks with an explicit deferred-to-independent-review list, human-readable lifecycle output, durable export/status, and the bounded live Router/Codex/Forge composition from documented environment variables only. - CLI: `creatidy-kernel dogfood run|status|export` (experimental, owner-approved, trusted-development; explicitly not a general `run issue` feature). - Structural policy for #143: required scenario test names, assertion-bearing tokens, forbidden added skip/xfail/broad-except patterns, and large-sleep rejection. ## Reuse decisions - **ADOPT unchanged**: ProgramSpec/WorkUnit/Attempt durability, `advance_work_unit`, `SQLiteProgramStore`, `ScarcityRouterAllocator`, `CodexRuntime` + `CodexInputs` wiring, `ForgejoForge` + synthetic/conditional transports, AGit delivery discipline. - **ADAPT (backwards-compatible)**: `reference_git` (optional author identity, index file, timeout; split `reference_git_bytes`), `deliver_reference_pr` (optional `operation_id`/`schema`/`title`/`body`), `advance_work_unit` (optional `artifact_path`, default `"result.txt"` preserved), `CodexConnection` protocol (read-only properties so `CodexStdio` satisfies it). - **BUILD (minimal)**: the dogfood composition layer, changed-path gate, command runner, structural seam, CLI subcommands. No new scheduler, workflow DSL, runtime/allocator abstraction, Forge protocol, or sandbox claims. ## Exact-base semantics (D1-01 → D1-03) The D1-01 SHA `781bace…` is historical evidence only. The task spec defaults to `expected_base_sha=None`: the base is resolved once from the source checkout (`refs/remotes/origin/<branch>`, falling back to `refs/heads/<branch>`) and durably frozen on first admission; recovery reuses the frozen base even if the source branch moves. `--expected-base <sha>` (or the spec field) pins an exact base when reproducing a known one. ## Candidate and acceptance The controller never trusts a worker-provided commit: the candidate commit is created by the controller from the disposable workspace tree against the exact base, recorded durably, and re-derivable deterministically after crashes. Verification binds to that exact Git subject; untracked verification artifacts are recorded as confined and never alter the accepted subject, while tracked mutations after verification reject the candidate. ## Tests (deterministic; no paid inference, no real PR, no credentials) `tests/test_dogfood.py` uses a real Git fixture repository shaped like the #143 subject, a native-shaped fake Codex connection, and a synthetic Forgejo forge: - End-to-end accepted run with exact base/candidate/PR-head binding, 1+8+1 verification runs, lifecycle output, owner checkout untouched. - Negative: forbidden changed path, empty candidate, verification failure, five structural weakenings (skip, assertion removal, ownership weakening, large sleep, scenario rename), tracked mutation during verification, runtime identity mismatch (stays unknown, no duplicate dispatch), no allocation. - Recovery: crash boundaries (task-admitted, workspace-prepared, prepared, allocation, receipt, verification, pr-commit/pr-send/pr-receipt) complete without duplicate allocation/dispatch/PR; uncertain dispatch after lost context stays unknown by design; base stays frozen when source develop moves; pinned base enforced. - CLI: env-completeness refusal, approval refusal, missing-database status, lifecycle printing. ## Validation - `make check`: ruff format/check, basedpyright (strict), lint-imports, 788 tests passed, secrets scan clean, `git diff --check`. - `make package-check`: wheel/sdist/isolated install + CLI replay passed. - BASE_SHA: `49af0c4fd7475b6066a8f06fccdbe6b187042673` (canonical `develop`). ## Known limitations for D1-03 (live run) - The frozen structural tokens (`assertTrue(worker.cancels`, `assertEqual(bystander.cancels, [])`) and required names must be re-verified against the actual then-current base file before the live run. - Verification commands still execute even when the changed-path gate has already failed (all policy checks collect evidence); a live run on an out-of-scope candidate pays that cost before rejection. - Single attempt per frozen task (budget 1); no automatic remediation loop. - The source checkout is only read; keeping it current (`git fetch`) remains an owner responsibility. - Trusted-development isolation only; hostile-worker isolation is not attested. No merge, no deploy, no release. Independent whole-PR review required before owner merge.
feat: compose frozen dogfood task end to end (D1-02)
All checks were successful
ci / check (pull_request) Successful in 56s
72f3ddcee7
Add the experimental owner-approved dogfood path for one frozen task
contract (BioMedical-IT/scarcity-router#143): typed task specification,
exact-base freezing from a read-only source checkout, disposable
controller-owned workspace clones, controller-owned Git candidate
subjects, changed-path gate, argv-only bounded verification commands,
deterministic structural anti-weakening checks with explicit
review-deferred residue, lifecycle output, CLI run/status/export, and
recovery through the existing K1-K8 mechanisms and AGit delivery.

Reuse: adopts Program/Attempt durability, ScarcityRouterAllocator,
CodexRuntime, ForgejoForge/AGit unchanged; adapts reference_git
(author/index/timeout/raw), deliver_reference_pr (operation_id/schema/
title/body), and advance_work_unit (artifact_path) with
backwards-compatible defaults.
Author
Member

Review dispatch 1 — routing and verification record (PR #33)

  • Frozen review subject: HEAD 72f3ddcee754f1d67cc75e914375971818a45372, base develop @ 49af0c4fd7475b6066a8f06fccdbe6b187042673.
  • Review profile: repository_review (catalog_version 4, profile_policy_version 8, resource_policy_version 1, selector_mode balanced, degraded=false, evaluated_at 2026-09-28T13:39:07Z).
  • Monotone tightening (architecture/security criticality: persistence durability, recovery, external effects, authority boundaries): task_level L4, capability_minima reasoning/coding/tool_use 5/5/5, requires_tool_use=true, requires_reasoning_mode=true.
  • router_selected: gpt-5.6-sol / openai / medium ("GPT-5.6 Sol Medium", eligible, margin 0).
  • Dispatch constraint: the owner's explicit delivery instruction for this issue requires Z.ai / GLM-5.3 and forbids OpenAI fallback unless the owner changes it; the OpenAI primary is therefore not dispatchable for this boundary.
  • dispatched: GLM-5.3 / zai-coding-plan / max — the Router-returned eligible alternative (listed alternative "GLM-5.3 Max", eligible=true, satisfies every hard requirement). routing_result=HARNESS_FALLBACK (owner provider constraint; no local ranking invented, no requirements lowered).
  • REQUESTED: Agent Manager request am-1790602778504-ham7fd (mode local, versions false, prompt /review-pr https://forgejo.creatidy.com/Creatidy/creatidy-kernel/pulls/33).
  • DISPATCH_VERIFIED: harness resolution D1-02 PR #33 review: GLM-5.3 (zai-coding-plan) · max matches the dispatched Router-eligible identity after the established provider adapter.
  • Reviewer completion: pending. Substantive verdict: pending.
**Review dispatch 1 — routing and verification record (PR #33)** - Frozen review subject: HEAD `72f3ddcee754f1d67cc75e914375971818a45372`, base `develop` @ `49af0c4fd7475b6066a8f06fccdbe6b187042673`. - Review profile: `repository_review` (catalog_version 4, profile_policy_version 8, resource_policy_version 1, selector_mode balanced, degraded=false, evaluated_at 2026-09-28T13:39:07Z). - Monotone tightening (architecture/security criticality: persistence durability, recovery, external effects, authority boundaries): task_level L4, capability_minima reasoning/coding/tool_use 5/5/5, requires_tool_use=true, requires_reasoning_mode=true. - `router_selected`: `gpt-5.6-sol` / `openai` / `medium` ("GPT-5.6 Sol Medium", eligible, margin 0). - Dispatch constraint: the owner's explicit delivery instruction for this issue requires Z.ai / GLM-5.3 and forbids OpenAI fallback unless the owner changes it; the OpenAI primary is therefore not dispatchable for this boundary. - `dispatched`: **GLM-5.3 / zai-coding-plan / max** — the Router-returned eligible alternative (listed alternative "GLM-5.3 Max", eligible=true, satisfies every hard requirement). `routing_result=HARNESS_FALLBACK` (owner provider constraint; no local ranking invented, no requirements lowered). - REQUESTED: Agent Manager request `am-1790602778504-ham7fd` (mode `local`, versions `false`, prompt `/review-pr https://forgejo.creatidy.com/Creatidy/creatidy-kernel/pulls/33`). - DISPATCH_VERIFIED: harness resolution `D1-02 PR #33 review: GLM-5.3 (zai-coding-plan) · max` matches the dispatched Router-eligible identity after the established provider adapter. - Reviewer completion: pending. Substantive verdict: pending.
Author
Member

Review dispatch 1 — terminal record: REVIEW_INFRASTRUCTURE_BLOCKED

Frozen review subject unchanged: HEAD 72f3ddcee754f1d67cc75e914375971818a45372, base develop @ 49af0c4fd7475b6066a8f06fccdbe6b187042673. No code changed in this boundary.

Dispatch attempts for this one frozen review boundary (all with verified task-level model resolution GLM-5.3 (zai-coding-plan) · max):

  1. Initial REQUESTED am-1790602778504-ham7fd (13:39Z) with a display name; DISPATCH_VERIFIED resolution returned. No Agent Manager session was ever created (verified repeatedly via action=list and local session recall over ~95 minutes); nothing published on the PR.
  2. Corrected retry 1 am-1790608539038-qojb7u (15:08Z), changed input: display name without #. Resolution verified. No session created; nothing published.
  3. Corrected retry 2 am-1790608958999-9sfkvu (15:29Z), changed input: exact literal contract payload with no extra name field. Resolution verified: Resolved models:\n- session: GLM-5.3 (zai-coding-plan) · max. No session created; nothing published.

Diagnosis: the Agent Manager extension-side asynchronous session creation is not processing dispatch requests (.kilo/agent-manager.json shows no session creation for any of the three request IDs; the only present sessions are this implementation session and the prior D1-01 session). The same dispatch path demonstrably worked yesterday (PR #28's verified review dispatch). The failure is infrastructure-only: request acceptance and model resolution succeed; session creation never occurs.

Per /deliver-issue: corrected launch retries exhausted (2 of 2); infrastructure/routing failures consume no remediation budget (remediation_used stays 0 / 10); no valid independent reviewer could be dispatched, so no substantive verdict exists for this HEAD and none is inferred. The Router selection itself was valid and is recorded in the previous entry (selected gpt-5.6-sol/openai/medium; dispatched eligible alternative glm-5.3/zai/max under the owner's no-OpenAI constraint, routing_result=HARNESS_FALLBACK).

Terminal condition: REVIEW_INFRASTRUCTURE_BLOCKED — not READY_FOR_OWNER_MERGE. All non-review evidence is complete and green: make check (788 tests, ruff/basedpyright strict/lint-imports/secrets/diff-check), make package-check, exact-HEAD validation at 72f3ddc. To finish delivery: restart/restore the Agent Manager extension session processing, then run a fresh /deliver-issue review dispatch for this unchanged HEAD (a new dispatch boundary, reusing the same routed configuration is not automatic).

**Review dispatch 1 — terminal record: `REVIEW_INFRASTRUCTURE_BLOCKED`** Frozen review subject unchanged: HEAD `72f3ddcee754f1d67cc75e914375971818a45372`, base `develop` @ `49af0c4fd7475b6066a8f06fccdbe6b187042673`. No code changed in this boundary. Dispatch attempts for this one frozen review boundary (all with verified task-level model resolution `GLM-5.3 (zai-coding-plan) · max`): 1. Initial REQUESTED `am-1790602778504-ham7fd` (13:39Z) with a display name; DISPATCH_VERIFIED resolution returned. No Agent Manager session was ever created (verified repeatedly via `action=list` and local session recall over ~95 minutes); nothing published on the PR. 2. Corrected retry 1 `am-1790608539038-qojb7u` (15:08Z), changed input: display name without `#`. Resolution verified. No session created; nothing published. 3. Corrected retry 2 `am-1790608958999-9sfkvu` (15:29Z), changed input: exact literal contract payload with no extra `name` field. Resolution verified: `Resolved models:\n- session: GLM-5.3 (zai-coding-plan) · max`. No session created; nothing published. Diagnosis: the Agent Manager extension-side asynchronous session creation is not processing dispatch requests (`.kilo/agent-manager.json` shows no session creation for any of the three request IDs; the only present sessions are this implementation session and the prior D1-01 session). The same dispatch path demonstrably worked yesterday (PR #28's verified review dispatch). The failure is infrastructure-only: request acceptance and model resolution succeed; session creation never occurs. Per `/deliver-issue`: corrected launch retries exhausted (2 of 2); infrastructure/routing failures consume no remediation budget (`remediation_used` stays `0 / 10`); no valid independent reviewer could be dispatched, so no substantive verdict exists for this HEAD and none is inferred. The Router selection itself was valid and is recorded in the previous entry (selected `gpt-5.6-sol/openai/medium`; dispatched eligible alternative `glm-5.3/zai/max` under the owner's no-OpenAI constraint, `routing_result=HARNESS_FALLBACK`). Terminal condition: **`REVIEW_INFRASTRUCTURE_BLOCKED`** — not `READY_FOR_OWNER_MERGE`. All non-review evidence is complete and green: `make check` (788 tests, ruff/basedpyright strict/lint-imports/secrets/diff-check), `make package-check`, exact-HEAD validation at `72f3ddc`. To finish delivery: restart/restore the Agent Manager extension session processing, then run a fresh `/deliver-issue` review dispatch for this unchanged HEAD (a new dispatch boundary, reusing the same routed configuration is not automatic).
fix: close Codex env inheritance and require Git-clean verification (D1-02 R1)
All checks were successful
ci / check (pull_request) Successful in 56s
0893ed988d
Owner review remediation for PR #33, two blockers:

1. CodexStdio accepts an explicit subprocess environment used by both
   the version probe and the app-server process; the dogfood live
   composition supplies a closed operational set (HOME, PATH, locale,
   temp) built by codex_environment(), so controller credentials and
   unrelated owner secrets are never inherited by the coding runtime.
   Default behavior (no explicit environment) is preserved for existing
   callers and regression-tested.

2. Verification now requires the workspace to be Git-clean of all
   non-ignored state after trusted commands run: non-ignored untracked
   paths reject the candidate exactly like tracked mutations; ignored
   cache artifacts remain ignored. Evidence records both categories.
Author
Member

Remediation 1 complete — new review subject frozen

  • New HEAD: 0893ed988d4d4e210469c5503627d0a56e2b35f4 (branch feat/d1-02-dogfood-composition, same PR #33, base unchanged 49af0c4fd7475b6066a8f06fccdbe6b187042673).
  • remediation_used = 1 / 10 (one owner-directed cycle; the prior REVIEW_INFRASTRUCTURE_BLOCKED dispatch produced no substantive review and consumed no budget).

Blocker 1 — Codex subprocess environment (src/creatidy_kernel/adapters/codex_stdio.py, src/creatidy_kernel/adapters/dogfood.py)

  • CodexStdio now accepts an optional explicit environment; both the --version probe and the app-server process are launched with exactly that environment (env= on both Popen calls) — no merge with the ambient environment.
  • Dogfood supplies codex_environment(): a closed set (HOME, PATH, LANG, LC_ALL, TMPDIR; PATH falls back to os.defpath). Everything else — CREATIDY_DOGFOOD_ROUTER_KEY, CREATIDY_DOGFOOD_FORGE_TOKEN, and every unrelated owner variable — is dropped, not blacklisted. Codex authentication remains its own HOME-based ~/.codex mechanism, so no environment-carried secret is required (no GENUINE_OWNER_DECISION_REQUIRED condition arose).
  • Non-dogfood callers are unchanged: without an explicit environment, implicit inheritance is preserved and regression-tested.
  • Regressions (tests/test_codex_stdio.py, tests/test_dogfood.py): synthetic sentinel credentials in the parent environment are proven absent from the environments of BOTH the version and app-server subprocesses; the explicitly allowed operational entries are proven present; default inheritance is proven unchanged for non-opted callers; invalid explicit environments are refused; codex_environment() is proven closed and sentinel-free.

Blocker 2 — verification requires Git-clean workspace (src/creatidy_kernel/adapters/dogfood.py)

  • After trusted verification commands run, ANY non-ignored Git-visible change fails verification: tracked mutations and non-ignored untracked (??) paths both reject. Evidence records tracked_mutations_after_verification and untracked_paths_after_verification separately with the strict subject note. Verification remains bound to the same candidate HEAD.
  • Ignored cache artifacts remain ignored by Git and are not candidate content; the test fixture repository now carries a realistic .gitignore.
  • Regressions (tests/test_dogfood.py): a zero-exit trusted command that creates a non-ignored untracked file rejects the candidate with no acceptance and no PR; the pre-existing tracked-mutation rejection is preserved; a caching verification command whose artifacts are ignored still accepts.

Validation at 0893ed9: make check PASS (794 tests, ruff format/check, basedpyright strict, lint-imports, secret scan clean, git diff --check); make package-check PASS. No dependency/tooling changes, so make audit is not triggered by this cycle. No live inference, no real PR.

Fresh independent whole-PR review dispatch for this new exact HEAD follows as a new boundary.

**Remediation 1 complete — new review subject frozen** - New HEAD: `0893ed988d4d4e210469c5503627d0a56e2b35f4` (branch `feat/d1-02-dogfood-composition`, same PR #33, base unchanged `49af0c4fd7475b6066a8f06fccdbe6b187042673`). - `remediation_used = 1 / 10` (one owner-directed cycle; the prior `REVIEW_INFRASTRUCTURE_BLOCKED` dispatch produced no substantive review and consumed no budget). **Blocker 1 — Codex subprocess environment (`src/creatidy_kernel/adapters/codex_stdio.py`, `src/creatidy_kernel/adapters/dogfood.py`)** - `CodexStdio` now accepts an optional explicit `environment`; both the `--version` probe and the `app-server` process are launched with exactly that environment (`env=` on both `Popen` calls) — no merge with the ambient environment. - Dogfood supplies `codex_environment()`: a closed set (`HOME`, `PATH`, `LANG`, `LC_ALL`, `TMPDIR`; PATH falls back to `os.defpath`). Everything else — `CREATIDY_DOGFOOD_ROUTER_KEY`, `CREATIDY_DOGFOOD_FORGE_TOKEN`, and every unrelated owner variable — is dropped, not blacklisted. Codex authentication remains its own HOME-based `~/.codex` mechanism, so no environment-carried secret is required (no `GENUINE_OWNER_DECISION_REQUIRED` condition arose). - Non-dogfood callers are unchanged: without an explicit environment, implicit inheritance is preserved and regression-tested. - Regressions (`tests/test_codex_stdio.py`, `tests/test_dogfood.py`): synthetic sentinel credentials in the parent environment are proven absent from the environments of BOTH the version and app-server subprocesses; the explicitly allowed operational entries are proven present; default inheritance is proven unchanged for non-opted callers; invalid explicit environments are refused; `codex_environment()` is proven closed and sentinel-free. **Blocker 2 — verification requires Git-clean workspace (`src/creatidy_kernel/adapters/dogfood.py`)** - After trusted verification commands run, ANY non-ignored Git-visible change fails verification: tracked mutations and non-ignored untracked (`??`) paths both reject. Evidence records `tracked_mutations_after_verification` and `untracked_paths_after_verification` separately with the strict subject note. Verification remains bound to the same candidate HEAD. - Ignored cache artifacts remain ignored by Git and are not candidate content; the test fixture repository now carries a realistic `.gitignore`. - Regressions (`tests/test_dogfood.py`): a zero-exit trusted command that creates a non-ignored untracked file rejects the candidate with no acceptance and no PR; the pre-existing tracked-mutation rejection is preserved; a caching verification command whose artifacts are ignored still accepts. **Validation at `0893ed9`**: `make check` PASS (**794 tests**, ruff format/check, basedpyright strict, lint-imports, secret scan clean, `git diff --check`); `make package-check` PASS. No dependency/tooling changes, so `make audit` is not triggered by this cycle. No live inference, no real PR. Fresh independent whole-PR review dispatch for this new exact HEAD follows as a new boundary.
Author
Member

Review dispatch 2 (post-remediation HEAD 0893ed9) — terminal record: REVIEW_INFRASTRUCTURE_BLOCKED

  • Frozen review subject: HEAD 0893ed988d4d4e210469c5503627d0a56e2b35f4, base develop @ 49af0c4fd7475b6066a8f06fccdbe6b187042673. Exact-head CI: success (run #2073, pull_request, 56s).
  • New Router selection for this new boundary (one valid selection, no shopping): profile repository_review, monotone tightening L4 / reasoning-coding-tool_use 5/5/5 / tool use + reasoning mode required; catalog_version 4, profile_policy_version 8, resource_policy_version 1, degraded=false, evaluated_at 2026-09-28T16:39:04Z.
    • router_selected = glm-5.3 / zai / max ("GLM-5.3 Max", eligible, scarcity label normal) — matching the owner preference directly; no fallback needed this time (routing_result=PRIMARY).
    • dispatched = GLM-5.3 / zai-coding-plan / max (established provider adapter).
  • REQUESTED: Agent Manager request am-1790613561389-3l3gmv (mode local, versions false, literal payload /review-pr https://forgejo.creatidy.com/Creatidy/creatidy-kernel/pulls/33). DISPATCH_VERIFIED: harness resolution Resolved models:\n- session: GLM-5.3 (zai-coding-plan) · max matches the routed identity.
  • Result: the reviewer session was never created (~8 minutes of repeated verification via action=list, persisted Agent Manager state, and local session recall); no review or comment was published. This is the same extension-side session-creation failure as the previous boundary, where three dispatch variants (with display name, name without #, and the exact literal payload) all failed identically over 95+ minutes — the fault is not in the dispatch payload, so no meaningful corrected retry input exists at this level, and identical re-dispatch without a changed hypothesis is refused.
  • Per the owner's remediation instruction: reviewer-session infrastructure is still broken, so the delivery reports REVIEW_INFRASTRUCTURE_BLOCKED again. PR #33 remains open and unmerged; remediation_used = 1 / 10 (the infrastructure failure consumes no review verdict and no budget).

Everything except the independent review is complete at 0893ed9: both owner blockers fixed with regressions, make check PASS (794 tests), make package-check PASS, exact-head CI green. When Agent Manager session creation works again, dispatch a fresh whole-PR review for this unchanged HEAD; the substantive verdict is the only missing readiness element.

**Review dispatch 2 (post-remediation HEAD `0893ed9`) — terminal record: `REVIEW_INFRASTRUCTURE_BLOCKED`** - Frozen review subject: HEAD `0893ed988d4d4e210469c5503627d0a56e2b35f4`, base `develop` @ `49af0c4fd7475b6066a8f06fccdbe6b187042673`. Exact-head CI: **success** (run #2073, `pull_request`, 56s). - New Router selection for this new boundary (one valid selection, no shopping): profile `repository_review`, monotone tightening L4 / reasoning-coding-tool_use 5/5/5 / tool use + reasoning mode required; catalog_version 4, profile_policy_version 8, resource_policy_version 1, degraded=false, evaluated_at 2026-09-28T16:39:04Z. - `router_selected` = `glm-5.3` / `zai` / `max` ("GLM-5.3 Max", eligible, scarcity label `normal`) — matching the owner preference directly; **no fallback needed this time** (`routing_result=PRIMARY`). - `dispatched` = GLM-5.3 / `zai-coding-plan` / `max` (established provider adapter). - REQUESTED: Agent Manager request `am-1790613561389-3l3gmv` (mode `local`, versions `false`, literal payload `/review-pr https://forgejo.creatidy.com/Creatidy/creatidy-kernel/pulls/33`). DISPATCH_VERIFIED: harness resolution `Resolved models:\n- session: GLM-5.3 (zai-coding-plan) · max` matches the routed identity. - Result: the reviewer session was never created (~8 minutes of repeated verification via `action=list`, persisted Agent Manager state, and local session recall); no review or comment was published. This is the same extension-side session-creation failure as the previous boundary, where three dispatch variants (with display name, name without `#`, and the exact literal payload) all failed identically over 95+ minutes — the fault is not in the dispatch payload, so no meaningful corrected retry input exists at this level, and identical re-dispatch without a changed hypothesis is refused. - Per the owner's remediation instruction: reviewer-session infrastructure is still broken, so the delivery reports **`REVIEW_INFRASTRUCTURE_BLOCKED`** again. PR #33 remains open and unmerged; `remediation_used = 1 / 10` (the infrastructure failure consumes no review verdict and no budget). Everything except the independent review is complete at `0893ed9`: both owner blockers fixed with regressions, `make check` PASS (794 tests), `make package-check` PASS, exact-head CI green. When Agent Manager session creation works again, dispatch a fresh whole-PR review for this unchanged HEAD; the substantive verdict is the only missing readiness element.
adrian.tkacz deleted branch feat/d1-02-dogfood-composition 2026-09-28 20:15:30 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Creatidy/creatidy-kernel!33
No description provided.