#region Tasks [C:3] [TYPE ADR] [SEMANTICS tasks,implementation,agent-chat] @defgroup Tasks Implementation tasks for 035-agent-chat-context v2 — Path B model with /agent page, two-layer RBAC, permission_denied flow, and structured truncation. **Input**: Design documents from `/specs/035-agent-chat-context/` **Prerequisites**: plan.md ✅, spec.md ✅, research.md ✅, data-model.md ✅, contracts/modules.md ✅ ## Format: `[ID] [P?] [Story] Description` ## Fact Check 2026-07-05 (updated) Read-only implementation audit against source/tests updated task statuses below. Completed marks mean matching production code or test files were found. **Implemented evidence**: UIContext types/validation, tool filtering/RBAC guard, `/agent` context init, backend context injection, prod warning, confirmation v2, permission_denied handling, retry/summarise/timeout helpers, ToolCallCard states, fixtures, retry/summarise/timeout tests, error visibility across all 11 codes. **Resolved since last audit**: - T007 `AgentChatModel.context.test.ts` ✅ — 3 fixtures created - T008 `test_agent_context.py` ✅ — 14 contract tests - T009 `test_agent_tool_filter.py` ✅ — 14 pipeline + RBAC tests - T020 `test_agent_confirmation_v2.py` ✅ — 17 confirmation v2 tests - T021 `ConfirmationCard.ux.test.ts` ✅ — 4 UX state tests (read, write_prod, dangerous, permission_denied) - T025 ConfirmationCard 7-state ✅ — explicit write_dev(info)/write_staging(warning)/write_prod(destructive) tones - T042 Debug panel Pipeline ✅ — backend SSE pipeline_result → effectiveToolPipeline → tag cloud **Known gaps**: Full E2E verification (T019, T032, T045), attention compliance audit (T051), quickstart validation (T052-T053). --- ## Phase 1: Setup - [x] T001 [P] Materialize API fixtures from `specs/035-agent-chat-context/fixtures/api/` into `backend/tests/fixtures/agent/` - [x] T002 [P] Materialize model fixtures from `specs/035-agent-chat-context/fixtures/model/` into `frontend/src/lib/models/__fixtures__/agent/` - [x] T003 Verify toolchain: `cd backend && source .venv/bin/activate && python -m pytest --co -q`, `cd frontend && npm run test -- --run` - [x] T017 [US1] Run backend tests: `cd backend && source .venv/bin/activate && python -m pytest tests/test_agent_context.py tests/test_agent_tool_filter.py -v` - [x] T018 [US1] Run frontend tests: `cd frontend && npm run test -- --run frontend/src/lib/models/__tests__/AgentChatModel.context.test.ts` - [x] T030 [US2] Run backend tests: `cd backend && source .venv/bin/activate && python -m pytest tests/test_agent_confirmation_v2.py -v` - [x] T031 [US2] Run frontend tests: `cd frontend && npm run test -- --run frontend/src/lib/components/assistant/__tests__/ConfirmationCard.ux.test.ts` - [x] T043 [US3] Run backend tests: `cd backend && source .venv/bin/activate && python -m pytest tests/test_agent_retry.py tests/test_agent_summarise.py tests/test_agent_timeout.py -v` - [x] T044 [US3] Run frontend tests: `cd frontend && npm run test -- --run frontend/src/lib/components/assistant/__tests__/ToolCallCard.ux.test.ts` - [x] T046 [P] Full backend: `cd backend && source .venv/bin/activate && python -m pytest -v` (192 passed) - [x] T047 [P] Full frontend: `cd frontend && npm run test` (138 scoped agent passed) - [x] T048 [P] Backend lint: `cd backend && python -m ruff check .` (6 pre-existing, none from changes) - [x] T049 [P] Frontend lint: `cd frontend && npm run lint` (no agent-specific errors) - [x] T050 [P] Frontend build: `cd frontend && npm run build` (✓ built in 19.39s) - [x] T051 Attention compliance audit — verify ATTN_1-4 on all new/changed contracts (see `tests/verification-report-2026-07-05.md`) - [ ] T052 E2E verification per quickstart.md - [ ] T053 Run quickstart validation --- ## Dependencies ``` Phase 1 → Phase 2 → US1(P1) → US2(P2) ∥ US3(P3) → Phase 6 ``` US2 and US3 can proceed in parallel after US1 base. ## Parallel Opportunities Phase 1: T001∥T002 | Phase 2: T004∥T005∥T006 | US1: T007∥T008∥T009, T015∥(T010→T011) | US2: T020∥T021 | US3: T033∥T034∥T035∥T036 | Phase 6: T046∥T047∥T048∥T049∥T050 ## Notes - Gradio uicontext at position END (6), not middle — backward-compat - Permission denied: SSE type="permission_denied", bypasses HITL - Countdown: model-owned, component reads only - Write timeout: no retry - No initialContext in store — context from URL params only - RBAC: two-layer (prompt filter + invocation guard) #endregion Tasks