chore: release api v1.0.0
Build and Push API / release (push) Successful in 4s
Build and Push API / build (push) Successful in 2m26s

- Event-based streaming for task agent
- Retry logic when LLM responds without calling tools
- Hardened prompts to enforce tool use
- Working directory context in all agent prompts
- Project paused: local LLMs not capable enough for agentic use

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-15 07:54:33 +01:00
co-authored by Claude Opus 4.5
parent 6ea520519c
commit d385f47395
13 changed files with 1061 additions and 110 deletions
+11 -13
View File
@@ -276,19 +276,17 @@ class TestPermissionModeIntegration:
@pytest.mark.anyio
async def test_stream_with_plan_mode(self, auth_client):
"""Test streaming agent with plan mode passes through correctly."""
async def mock_stream(*args, **kwargs):
yield "chunk1"
yield "chunk2"
from src.domains.agents.schemas import StreamEvent, StreamEventType
with patch("src.domains.agents.task.agent.TaskAgentImpl._get_agent_for_mode") as mock_get_agent:
mock_agent = MagicMock()
mock_agent.run_stream = MagicMock(return_value=MagicMock(
__aenter__=AsyncMock(return_value=MagicMock(
stream_text=lambda: mock_stream()
)),
__aexit__=AsyncMock(return_value=None)
))
mock_get_agent.return_value = mock_agent
async def mock_event_stream(*args, **kwargs):
"""Mock event-based stream."""
yield StreamEvent(event=StreamEventType.thinking, message="Starting...")
yield StreamEvent(event=StreamEventType.response, text="chunk1")
yield StreamEvent(event=StreamEventType.response, text="chunk2")
yield StreamEvent(event=StreamEventType.done, mode="plan")
with patch("src.domains.agents.task.agent.TaskAgentImpl.run_stream") as mock_run_stream:
mock_run_stream.return_value = mock_event_stream()
response = await auth_client.post(
"/agents/stream",
@@ -302,7 +300,7 @@ class TestPermissionModeIntegration:
assert response.status_code == 200
assert response.headers["content-type"] == "text/event-stream; charset=utf-8"
mock_get_agent.assert_called_once_with(PermissionMode.plan)
mock_run_stream.assert_called_once()
class TestAgentMethodSignatures: