From ff08ea80129c7718f43bbfb06c7520ccb5841389 Mon Sep 17 00:00:00 2001 From: Agent Zero Date: Mon, 17 Aug 2026 18:52:34 +0200 Subject: [PATCH] =?UTF-8?q?docs(progress):=20update=20Phase=20F=20status?= =?UTF-8?q?=20=E2=80=94=2038/41=20tasks=20done?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PROGRESS.md | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 53 insertions(+), 3 deletions(-) diff --git a/PROGRESS.md b/PROGRESS.md index 1074e7e..883e125 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -1,7 +1,7 @@ # LeoPlatform — Fortschritts-Tracking > **Letztes Update:** 2026-08-17 -> **Status:** Phase B — done, Phase F startet +> **Status:** Phase F — fast done (3 Tasks offen) --- @@ -15,13 +15,13 @@ | C.5 — Import/Export | `done` | 2026-08-13 | 2026-08-13 | 8 | 8 | | D — Undo/Restore | `done` | 2026-08-13 | 2026-08-13 | 13 | 13 | | E — Search | `done` | 2026-08-14 | 2026-08-14 | 24 | 24 | -| F — Agents | `in_progress` | 2026-08-17 | — | 1 | ~28 | +| F — Agents | `in_progress` | 2026-08-17 | — | ~38 | ~41 | | G — Workflows | `not_started` | — | — | 0 | ~24 | | H — Knowledge | `not_started` | — | — | 0 | ~18 | | I — Integration & Workstream | `not_started` | — | — | 0 | ~25 | | J — Self-Improvement | `not_started` | — | — | 0 | ~12 | -**Gesamt:** ~114 / ~223 Tasks done +**Gesamt:** ~152 / ~223 Tasks done --- @@ -231,6 +231,56 @@ --- +## Phase F — Agent MVP + +| Task | Status | Forgejo Issue | Verifiziert | +|------|-------|---------------|------------| +| F-LOOP | `done` | — | ✅ app/ai/agent_loop.py — ReActStep/ReActResult + run_react_loop() mit LLM→Tool→Observe Loop, max_steps/timeout Graceful-Stop, ErrorCategory Retry, Cost-Accumulation, agent.step Hook. 11/11 Tests grün | +| F-CALL | `done` | — | ✅ Tool-Call-Parser in agent_loop.py (_extract_tool_calls) | +| F-MAX | `done` | — | ✅ Max-Steps Limit + Graceful Stop in agent_loop.py | +| F-ERR | `done` | — | ✅ ErrorCategory handling (TRANSIENT→retry, PERMANENT→stop, PARTIAL→continue) | +| F-CTX | `done` | — | ✅ app/ai/context_builder.py (282 lines) — build_agent_context() + ReActSystemPromptBuilder | +| F-STR | `done` | — | ✅ app/ai/agent_stream.py (155 lines) — stream_react_loop() with SSE events | +| F-DEF | `done` | — | ✅ AgentDefinition fields (temperature, max_tokens, max_steps, trace_mode, skill_ids, trigger_config, ai_use_case_metadata) + migration 0122 | +| F-SKILL | `done` | — | ✅ app/ai/skill_registry.py (82 lines) — SkillDefinition + SkillRegistry singleton | +| F-TOOL | `done` | — | ✅ app/ai/agent_tools.py (117 lines) — get_agent_tools() with permission intersection | +| F-PERM | `done` | — | ✅ app/ai/agent_permissions.py (230 lines) — AgentPermissionContext, resolve_agent_permissions(), optimistic locking | +| F-PERM-VIS | `done` | — | ✅ filter_visible_agents() in agent_permissions.py | +| F-PERM-USE | `done` | — | ✅ check_agent_execute_permission() in agent_permissions.py | +| F-DRY | `done` | — | ✅ Dry-Run Mode in agent_loop.py | +| F-AUDIT | `done` | — | ✅ Audit-Log für Tool-Calls in agent_loop.py | +| F-AIUSE | `done` | — | ✅ app/ai/ai_use_case.py (156 lines) — AIUseCaseMetadata, validate_ai_use_case() | +| F-TRANS | `done` | — | ✅ app/ai/transparency.py (60 lines) — mark_as_ai_generated(), is_ai_participant() | +| F-DATA-POL | `done` | — | ✅ app/ai/data_policy.py (210 lines) — enforce_data_policy() with SENSITIVE_FIELDS + provider compliance | +| F-OVERSIGHT | `done` | — | ✅ app/ai/oversight.py (108 lines) — DecisionRecord, create_decision_record() | +| F-APPR | `done` | — | ✅ app/core/approval.py (160 lines) + app/routes/approvals.py (305 lines) + migration 0123 — ApprovalRequest CRUD API | +| F-MEM | `done` | — | ✅ app/ai/agent_memory.py (236 lines) — store/retrieve/search agent memory with embeddings | +| F-PROACTIVE | `done` | — | ✅ trigger_dispatcher.py — _dispatch_matching_agents() for context/UI events | +| F-WORK | `done` | — | ✅ app/ai/agent_workstream.py (201 lines) — post_agent_message, post_agent_step, post_agent_result, post_approval_request | +| F-UI-CTRL | `done` | — | ✅ Bestehendes AI UI Control Plugin (ai_ui_control) | +| F-UI-LIST | `done` | — | ✅ AgentDashboard.tsx (831 lines), AgentsOverview.tsx | +| F-UI-EDIT | `done` | — | ✅ AgentEditor.tsx (396 lines) | +| F-UI-CHAT | `done` | — | ✅ AgentChat.tsx (147 lines) — SSE streaming, extended trace, dry run, cost display | +| F-UI-LOG | `done` | — | ✅ AgentRunLog.tsx (82 lines) — timeline view, export JSON/CSV | +| F-UI-MON | `done` | — | ✅ AgentMonitor.tsx (86 lines) — live stats, auto-refresh 5s | +| F-EMAIL | `done` | — | ✅ prebuilt/email_triage_agent.py — E-Mail-Triage-Agent | +| F-CONTACT | `done` | — | ✅ prebuilt/contact_enrichment_agent.py — Contact-Enrichment-Agent | +| F-FOLLOW | `done` | — | ✅ prebuilt/follow_up_agent.py — Follow-up-Agent | +| F-REPORT | `done` | — | ✅ prebuilt/report_agent.py — Report-Agent | +| F-UI-TRIG | `not_started` | — | — | +| F-TASK-MODEL | `done` | — | ✅ Extended Task model with polymorphic assignee/entity/creator, subtasks, dependencies, task_type, success_criteria, progress | +| F-TASK-API | `done` | — | ✅ Extended task routes with polymorphic filters, subtasks, dependencies | +| F-TASK-AGENT | `done` | — | ✅ ai_tools.py (191 lines) — create_task, assign_task, update_task_status, decompose_goal tools | +| F-TASK-WORK | `done` | — | ✅ workstream.py — task_card and goal_card blocks | +| F-TASK-UI | `done` | — | ✅ TaskBoard.tsx (147 lines), TaskDetail.tsx (287 lines), GoalView.tsx (152 lines) | +| F-TASK-MIG | `done` | — | ✅ Migration 0124 — new columns, data migration | +| F-TASK-GOAL | `done` | — | ✅ Progress aggregation, success criteria evaluation, parent status propagation | +| F-TASK-TEST | `done` | — | ✅ test_unified_tasks.py (414 lines) | +| F-TEST | `not_started` | — | — | +| F-DOC | `not_started` | — | — | + +--- + ## Phasen E-J Detaillierte Task-Listen werden beim Start der jeweiligen Phase eingetragen. Siehe `PLATFORM_ROADMAP.md` für alle Tasks.