Restore qualified task identities and finish transport protocol types
Assistant: codex Assistant-Model: gpt-5.6-luna Assistant-Session: 01a07ff8-19d0-7820-b4d0-1353833cb7fc
This commit is contained in:
parent
4055986c98
commit
68ffe9ef76
9 changed files with 899 additions and 157 deletions
|
|
@ -38,12 +38,12 @@ Both changes are Core-layer modifications under GAAF-2026:
|
|||
`asyncio.get_event_loop().run_in_executor(None, ...)` fallback so existing
|
||||
adapters remain valid; native async overrides are provided per adapter.
|
||||
|
||||
Core contract doc (from WP-0001 T05) must be updated after each change.
|
||||
Core contract doc (from LLM-WP-0001-T05) must be updated after each change.
|
||||
|
||||
## Tasks
|
||||
|
||||
```task
|
||||
id: T01
|
||||
id: LLM-WP-0002-T01
|
||||
title: 'BudgetTracker dataclass: total, spent, remaining(), thread-safe increment'
|
||||
priority: high
|
||||
status: done
|
||||
|
|
@ -51,7 +51,7 @@ state_hub_task_id: "ae27c363-339a-4f78-9737-cf872698f6d8"
|
|||
```
|
||||
|
||||
```task
|
||||
id: T02
|
||||
id: LLM-WP-0002-T02
|
||||
title: 'LLMBudgetExceededError(LLMError) in exceptions.py'
|
||||
priority: high
|
||||
status: done
|
||||
|
|
@ -59,7 +59,7 @@ state_hub_task_id: "ea6f6ef7-2cb2-48e2-b9c9-f2b84a1a242b"
|
|||
```
|
||||
|
||||
```task
|
||||
id: T03
|
||||
id: LLM-WP-0002-T03
|
||||
title: 'Optional budget_tracker field on RunConfig'
|
||||
priority: high
|
||||
status: done
|
||||
|
|
@ -67,7 +67,7 @@ state_hub_task_id: "fe6dbb73-5d04-45e6-aa91-5eff79aae7ee"
|
|||
```
|
||||
|
||||
```task
|
||||
id: T04
|
||||
id: LLM-WP-0002-T04
|
||||
title: 'Enforcement: adapters check/update tracker, raise LLMBudgetExceededError when exceeded'
|
||||
priority: high
|
||||
status: done
|
||||
|
|
@ -75,7 +75,7 @@ state_hub_task_id: "8fd21bc2-598e-4449-8c86-eacde760e23f"
|
|||
```
|
||||
|
||||
```task
|
||||
id: T05
|
||||
id: LLM-WP-0002-T05
|
||||
title: 'Update Core contract doc for BudgetTracker and RunConfig changes'
|
||||
priority: medium
|
||||
status: done
|
||||
|
|
@ -83,7 +83,7 @@ state_hub_task_id: "e15745f5-9bb7-45d6-a36b-3a345fb0e9f1"
|
|||
```
|
||||
|
||||
```task
|
||||
id: T06
|
||||
id: LLM-WP-0002-T06
|
||||
title: 'Tests: single call, delegation chain, exceeded error, multi-adapter shared tracker'
|
||||
priority: high
|
||||
status: done
|
||||
|
|
@ -91,7 +91,7 @@ state_hub_task_id: "5af37ade-3dd0-4ce9-8ead-be9887913bab"
|
|||
```
|
||||
|
||||
```task
|
||||
id: T07
|
||||
id: LLM-WP-0002-T07
|
||||
title: 'Add async_execute_prompt to LLMAdapter ABC with default executor fallback'
|
||||
priority: high
|
||||
status: done
|
||||
|
|
@ -99,7 +99,7 @@ state_hub_task_id: "e221e630-658f-4adb-9f00-7b7df7ab8cb4"
|
|||
```
|
||||
|
||||
```task
|
||||
id: T08
|
||||
id: LLM-WP-0002-T08
|
||||
title: 'Native async override in OpenAIAdapter, GeminiAdapter, OpenRouterAdapter'
|
||||
priority: high
|
||||
status: done
|
||||
|
|
@ -107,7 +107,7 @@ state_hub_task_id: "a75c2b2a-e4ef-4cbd-9c5f-7e98c8d3d7e8"
|
|||
```
|
||||
|
||||
```task
|
||||
id: T09
|
||||
id: LLM-WP-0002-T09
|
||||
title: 'Native async for ClaudeCodeAdapter via asyncio.create_subprocess_exec'
|
||||
priority: high
|
||||
status: done
|
||||
|
|
@ -115,7 +115,7 @@ state_hub_task_id: "1c50889f-28ed-4c6e-a788-1fc7dcc5a2c3"
|
|||
```
|
||||
|
||||
```task
|
||||
id: T10
|
||||
id: LLM-WP-0002-T10
|
||||
title: 'Update Core contract doc for async_execute_prompt'
|
||||
priority: medium
|
||||
status: done
|
||||
|
|
@ -123,7 +123,7 @@ state_hub_task_id: "fa4f9e80-ddee-4d05-a239-fe09e633b0cb"
|
|||
```
|
||||
|
||||
```task
|
||||
id: T11
|
||||
id: LLM-WP-0002-T11
|
||||
title: 'Tests: asyncio.gather over N adapters, timeout propagation, budget interaction'
|
||||
priority: high
|
||||
status: done
|
||||
|
|
@ -134,22 +134,22 @@ state_hub_task_id: "bca78609-7f7c-4548-8857-a72e4c760dc6"
|
|||
|
||||
| ID | Title | Priority | Status |
|
||||
|-----|-------|----------|--------|
|
||||
| T01 | `BudgetTracker` dataclass: `total`, `spent`, `remaining()`, thread-safe increment | high | done |
|
||||
| T02 | `LLMBudgetExceededError(LLMError)` in `exceptions.py` | high | done |
|
||||
| T03 | Optional `budget_tracker: BudgetTracker \| None` field on `RunConfig` | high | done |
|
||||
| T04 | Enforcement: each adapter checks/updates tracker around call; raises on exceeded | high | done |
|
||||
| T05 | Update Core contract doc | medium | done |
|
||||
| T06 | Tests: single call, delegation chain (A→B→C shared tracker), exceeded error, multi-adapter | high | done |
|
||||
| LLM-WP-0002-T01 | `BudgetTracker` dataclass: `total`, `spent`, `remaining()`, thread-safe increment | high | done |
|
||||
| LLM-WP-0002-T02 | `LLMBudgetExceededError(LLMError)` in `exceptions.py` | high | done |
|
||||
| LLM-WP-0002-T03 | Optional `budget_tracker: BudgetTracker \| None` field on `RunConfig` | high | done |
|
||||
| LLM-WP-0002-T04 | Enforcement: each adapter checks/updates tracker around call; raises on exceeded | high | done |
|
||||
| LLM-WP-0002-T05 | Update Core contract doc | medium | done |
|
||||
| LLM-WP-0002-T06 | Tests: single call, delegation chain (A→B→C shared tracker), exceeded error, multi-adapter | high | done |
|
||||
|
||||
### FR-3 — async_execute_prompt
|
||||
|
||||
| ID | Title | Priority | Status |
|
||||
|-----|-------|----------|--------|
|
||||
| T07 | Add `async_execute_prompt` to `LLMAdapter` ABC with default executor fallback | high | done |
|
||||
| T08 | Native async override in `OpenAIAdapter`, `GeminiAdapter`, `OpenRouterAdapter` | high | done |
|
||||
| T09 | Native async for `ClaudeCodeAdapter` via `asyncio.create_subprocess_exec` | high | done |
|
||||
| T10 | Update Core contract doc | medium | done |
|
||||
| T11 | Tests: `asyncio.gather` over N adapters, timeout propagation, budget interaction | high | done |
|
||||
| LLM-WP-0002-T07 | Add `async_execute_prompt` to `LLMAdapter` ABC with default executor fallback | high | done |
|
||||
| LLM-WP-0002-T08 | Native async override in `OpenAIAdapter`, `GeminiAdapter`, `OpenRouterAdapter` | high | done |
|
||||
| LLM-WP-0002-T09 | Native async for `ClaudeCodeAdapter` via `asyncio.create_subprocess_exec` | high | done |
|
||||
| LLM-WP-0002-T10 | Update Core contract doc | medium | done |
|
||||
| LLM-WP-0002-T11 | Tests: `asyncio.gather` over N adapters, timeout propagation, budget interaction | high | done |
|
||||
|
||||
## Exit criteria
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue