feat: give the curator continuous context and durable idea history
This commit is contained in:
+49
-6
@@ -82,9 +82,10 @@ def test_login_isolation_roles_and_debug_privacy(
|
||||
headers=WRITE_HEADERS,
|
||||
)
|
||||
assert member_fragment.status_code == 201
|
||||
assert [item["content"] for item in client.get("/api/fragments").json()["items"]] == [
|
||||
"用户二的记录"
|
||||
]
|
||||
assert [
|
||||
item["content"]
|
||||
for item in client.get("/api/fragments").json()["items"]
|
||||
] == ["用户二的记录"]
|
||||
assert client.get("/api/admin/overview").status_code == 403
|
||||
|
||||
run_id = database.start_agent_run(
|
||||
@@ -105,9 +106,10 @@ def test_login_isolation_roles_and_debug_privacy(
|
||||
)
|
||||
|
||||
client.cookies.set(COOKIE_NAME, admin_cookie)
|
||||
assert [item["content"] for item in client.get("/api/fragments").json()["items"]] == [
|
||||
"管理员的记录"
|
||||
]
|
||||
assert [
|
||||
item["content"]
|
||||
for item in client.get("/api/fragments").json()["items"]
|
||||
] == ["管理员的记录"]
|
||||
redacted = client.get(f"/api/admin/runs/{run_id}").json()
|
||||
assert redacted["fragment"]["content_visible"] is False
|
||||
assert redacted["events"][-1]["payload"] == {
|
||||
@@ -127,3 +129,44 @@ def test_login_isolation_roles_and_debug_privacy(
|
||||
visible = client.get(f"/api/admin/runs/{run_id}").json()
|
||||
assert visible["fragment"]["content_visible"] is True
|
||||
assert visible["fragment"]["content"] == "用户二的记录"
|
||||
|
||||
retry_error = RuntimeError("tool loop exceeded")
|
||||
database.finish_agent_run(
|
||||
run_id,
|
||||
status="error",
|
||||
duration_ms=100,
|
||||
attempt_count=1,
|
||||
model_rounds=4,
|
||||
tool_calls=4,
|
||||
search_calls=3,
|
||||
inspection_calls=1,
|
||||
input_tokens=400,
|
||||
output_tokens=80,
|
||||
reasoning_tokens=60,
|
||||
cached_tokens=0,
|
||||
error=retry_error,
|
||||
)
|
||||
database.set_fragment_status(
|
||||
member_fragment.json()["id"], "error", str(retry_error)
|
||||
)
|
||||
queued: list[str] = []
|
||||
monkeypatch.setattr(main.curator, "enqueue", queued.append)
|
||||
|
||||
client.cookies.set(COOKIE_NAME, member_cookie)
|
||||
assert client.post(
|
||||
f"/api/admin/runs/{run_id}/retry",
|
||||
headers=WRITE_HEADERS,
|
||||
).status_code == 403
|
||||
|
||||
client.cookies.set(COOKIE_NAME, admin_cookie)
|
||||
retried = client.post(
|
||||
f"/api/admin/runs/{run_id}/retry",
|
||||
headers=WRITE_HEADERS,
|
||||
)
|
||||
assert retried.status_code == 202
|
||||
assert retried.json() == {"queued": True}
|
||||
assert queued == [member_fragment.json()["id"]]
|
||||
assert client.post(
|
||||
f"/api/admin/runs/{run_id}/retry",
|
||||
headers=WRITE_HEADERS,
|
||||
).status_code == 409
|
||||
|
||||
Reference in New Issue
Block a user