busya
3b4ac807a5
feat(agent+ui): fullstack agent module refactoring + UI/UX improvements
## Backend: agent module GRACE-Poly compliance
- Split app.py (749→~280 lines) into _tool_resolver, _confirmation, _persistence
- All 18 naked functions wrapped in #region/#endregion contracts
- Fixed @DEFGROUP→@defgroup typos; added @DATA_CONTRACT, @SIDE_EFFECT, CoT logs
- Conversation list API: added last_role, has_tool_calls, has_error, risk_level fields
- Message state detection: Russian/English error patterns (недоступен, unavailable)
- State field preserved in save_conversation messages
- HITL titles: descriptive tool names instead of generic "HITL resume"
## Backend: conversation title generation (two-layer)
- Layer 1: clean_title() — rule-based, strips file markers, pre-fetch blocks, JSON/CSV,
URLs, code; truncates at 80 chars word boundary (25 unit tests, all edge cases)
- Layer 2: generate_llm_title() — async best-effort LLM titling via /v1/chat/completions
with per-conversation lock, graceful degradation on failure
## Frontend: conversation list indicators (orthogonal system)
- Status dot (green/yellow/red/blue) per conversation state
- Icon column: tool activity, errors, waiting, completed
- Risk stripe (left border accent) + message count badge + relative time
- Fixed group labels: "Сегодня"/"Вчера" instead of "3 ч"/"5 ч"
- Hide "Окружение: —" when env is empty
## Frontend: guardrails card verification + fixes
- Confirmed all interaction modes: Enter/click confirm, Escape/click deny
- Auto-populate envId from environmentContextStore in DashboardDetailModel
- Better error message: missing_context_hint with recovery guidance
## Design system: semantic tokens
- Added category-* gradient tokens to tailwind.config.js
- Sidebar + Breadcrumbs use semantic tokens (10 categories)
- Raw Tailwind reduced from ~50 to 6 occurrences
- Added skip-to-content link in root layout (+layout.svelte)
- Added aria-label on DashboardDataGrid row checkboxes
## Protocol: INV_7 pragmatic exception
- Modules may exceed 400 lines when contract-dense (every function has #region)
- Recorded in semantics-core SKILL.md with rationale
Total: 5841+ contracts, 2993+ edges, backend 41/41, frontend 2501/2501
2026-06-30 15:21:05 +03:00
..
2026-06-30 15:21:05 +03:00
2026-06-30 15:21:05 +03:00
2026-06-18 23:54:57 +03:00
2026-03-10 09:11:26 +03:00
2026-06-16 11:42:40 +03:00
2026-06-16 00:12:49 +03:00
2026-06-18 23:54:57 +03:00
2026-06-16 00:12:49 +03:00
2026-06-16 11:01:31 +03:00
2026-06-18 14:41:13 +03:00
2026-06-29 17:15:25 +03:00
2026-06-18 23:54:57 +03:00
2026-06-16 00:12:49 +03:00
2026-06-01 16:34:07 +03:00
2026-05-26 19:18:28 +03:00
2026-05-26 19:18:28 +03:00
2026-06-16 00:12:49 +03:00
2026-06-10 14:57:18 +03:00
2026-06-10 14:57:18 +03:00
2026-06-15 22:04:40 +03:00
2026-06-16 11:01:31 +03:00
2026-06-10 14:57:18 +03:00
2026-06-16 11:01:31 +03:00
2026-06-16 11:01:31 +03:00
2026-05-26 19:18:28 +03:00
2026-06-15 17:31:43 +03:00
2026-06-16 12:11:49 +03:00
2026-05-26 19:18:28 +03:00
2026-06-17 16:22:30 +03:00
2026-06-16 12:01:03 +03:00
2026-06-05 15:43:35 +03:00
2026-06-16 12:11:49 +03:00
2026-06-16 12:11:49 +03:00
2026-06-16 11:01:31 +03:00
2026-05-26 19:18:28 +03:00
2026-05-26 19:18:28 +03:00
2026-06-15 19:31:56 +03:00
2026-05-26 19:18:28 +03:00
2026-05-26 19:18:28 +03:00
2026-06-16 00:12:49 +03:00
2026-06-05 15:43:35 +03:00
2026-06-15 17:31:43 +03:00
2026-06-16 11:01:31 +03:00
2026-06-15 17:31:43 +03:00
2026-06-15 16:45:49 +03:00
2026-06-15 17:31:43 +03:00
2026-06-15 17:31:43 +03:00
2026-06-15 17:31:43 +03:00
2026-06-16 12:01:03 +03:00
2026-06-16 12:11:49 +03:00
2026-05-26 19:18:28 +03:00
2026-06-18 23:54:57 +03:00
2026-06-16 12:01:03 +03:00
2026-05-26 19:18:28 +03:00
2026-05-26 19:18:28 +03:00
2026-06-16 12:11:49 +03:00
2026-06-16 12:01:03 +03:00
2026-06-16 00:12:49 +03:00
2026-06-16 00:12:49 +03:00
2026-05-26 19:18:28 +03:00
2026-05-25 08:36:33 +03:00
2026-06-29 17:15:25 +03:00
2026-06-15 19:31:56 +03:00
2026-06-11 19:12:45 +03:00
2026-05-26 19:18:28 +03:00
2026-06-11 19:12:45 +03:00
2026-06-11 19:12:45 +03:00
2026-06-17 16:22:30 +03:00
2026-06-15 22:04:40 +03:00
2026-05-26 19:18:28 +03:00
2026-06-15 22:04:40 +03:00