docs: update TODO — mark completed items from 2026-06-03 session

- aider_run async/notify: done
- L2→L3 boundary enforcement: done (default _agent_level=2)
- aider_run multi-provider credentials: done
- Added remaining item: pass _agent_level=1 from main orchestrators

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Scott Idem
2026-06-03 23:06:47 -04:00
parent 0c1cf3989a
commit e8819773ee

View File

@@ -94,11 +94,13 @@ pipelines) unusable without freezing the orchestrator.
`asyncio.Task` reference; admin-only, confirm-required — 2026-06-03 `asyncio.Task` reference; admin-only, confirm-required — 2026-06-03
**Phase 2 — Level enforcement:** **Phase 2 — Level enforcement:**
- [ ] **`agent_level` ContextVar** — set to 1 in the main orchestrators; passed into - [x] **L2→L3 boundary enforcement**`spawn_agent` param `_agent_level` (default 2);
`spawn_agent` so sub-agents know their level when `child_level >= 3`, auto-adds `spawn_agent` + `aider_run` to deny_tools so
- [ ] **Auto-deny at L2→L3 boundary** — when Level 2 calls `spawn_agent`, automatically Level 3 children cannot delegate; level stored in AgentRecord — 2026-06-03
add `deny_tools=["spawn_agent", "aider_run"]` so the Level 3 child cannot delegate; - [ ] **`_agent_level=1` from main orchestrators** — Gemini and OpenAI orchestrators
store level in `AgentRecord` for lineage tracking should pass `_agent_level=1` when calling spawn_agent so the hierarchy is rooted
correctly; currently defaults to 2 (children become Level 3, which is safe but
means Level 1 cannot spawn Level 2 that itself spawns Level 3)
**Phase 3 — `aider_run` async:** **Phase 3 — `aider_run` async:**
- [x] **`aider_run` background mode** — added `background: bool = False` and - [x] **`aider_run` background mode** — added `background: bool = False` and
@@ -286,8 +288,13 @@ dependency for coding tasks. Per-project `.aider.conf.yml` holds read-only conte
and lint commands; model/key come from env vars (not committed). and lint commands; model/key come from env vars (not committed).
- [x] **`aider_run` tool** — `cortex/tools/aider.py`; project aliases + subprocess with `--message --yes-always`; admin-only, confirm-required, high risk — 2026-05-23 - [x] **`aider_run` tool** — `cortex/tools/aider.py`; project aliases + subprocess with `--message --yes-always`; admin-only, confirm-required, high risk — 2026-05-23
- [ ] **`aider_run` async/notify** — current implementation blocks for up to 5 min with no UI feedback; convert to background task + web_push/NC Talk notification on completion (same pattern as `/orchestrate` jobs); optionally add `aider_status` tool for mid-task polling - [x] **`aider_run` async/notify** — background=True fires subprocess via asyncio.create_task(), registers in agent_manager, returns agent_id immediately; notify=True sends push/Talk on completion — 2026-06-03
- [x] **`.aider.conf.yml`** — project-level Aider config: `read: [CLAUDE.md]`, Python lint-cmd, auto-commits — 2026-05-23 - [x] **`.aider.conf.yml`** — project-level Aider config: `read: [CLAUDE.md]`, Python lint-cmd, auto-commits — 2026-05-23
- [x] **`aider_run` multi-provider credentials** — `_resolve_credentials()` pulls from
all configured hosts: OpenRouter/OpenAI/Groq/etc. → `--api-key slug=key`;
local Open WebUI/Ollama → `--openai-api-base + key`; Anthropic from
`providers.anthropic.credentials`; `host_label` param for explicit host selection;
auto-prefixes model with `openai/` for generic endpoints — 2026-06-03
- [x] **`.gitignore`** — added `.aider.chat.history.md`, `.aider.input.history`, `.aider.llm.history` — 2026-05-23 - [x] **`.gitignore`** — added `.aider.chat.history.md`, `.aider.input.history`, `.aider.llm.history` — 2026-05-23
- [ ] Specialist agent: frontend (SvelteKit) code changes - [ ] Specialist agent: frontend (SvelteKit) code changes
- [ ] Specialist agent: backend (FastAPI) code changes - [ ] Specialist agent: backend (FastAPI) code changes