feat: harden company resume, external sessions, and Office UI i18n

Improve suspend/resume identity continuity and external broker session handling, add Office UI internationalization with rebuilt assets, and expand company org configs.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
小东
2026-07-16 09:20:40 +08:00
parent eb934cf2bd
commit cb6b8ed6e1
32 changed files with 2562 additions and 446 deletions
@@ -276,6 +276,154 @@ class CompanyRuntimeSuspendResumeTests(unittest.IsolatedAsyncioTestCase):
self.assertEqual(refreshed_item.metadata.get("dispatch_hold"), "")
self.assertEqual(refreshed_item.claimed_by_role_runtime_session_id, "")
async def test_continue_merges_task_suspended_after_checkpoint_creation(self) -> None:
store = await self._store()
plan, task = await self._seed_runtime(store)
engine = self._engine(store)
await engine.suspend_company_runtime(
origin_task_id=task.id,
session_id="sess-parent",
reason="startup_interrupted",
)
review_item = DelegationWorkItem(
work_item_id="review-item-v3",
run_id="run-1",
role_id="executor",
seat_id="seat-1",
title="Review v3",
summary="Review the completed report.",
kind="review",
projection_id="review-v3",
phase=Phase.RUNNING,
metadata={
"work_item_projection_id": "review-v3",
"dispatch_hold": "company_runtime_suspended",
"suspend_checkpoint_type": "company_runtime_interrupted",
"suspended_phase": Phase.RUNNING.value,
},
)
await store.save_delegation_work_item(review_item)
review_task = Task(
id="review-task-v3",
title="Review v3",
session_id="sess-review-v3",
parent_session_id="sess-parent",
status=TaskStatus.RUNNING,
project_id="proj1",
assigned_to="executor",
assigned_external_agent="codex",
metadata={
"company_profile": "corporate",
"execution_model": "multi_team_org",
"runtime_model": "multi_team_org",
"work_item_runtime": True,
"work_item_projection_id": "review-v3",
"delegation_run_id": "run-1",
"delegation_role_session_id": "role-runtime-1",
"company_work_item_plan": serialize_company_work_item_runtime_plan(plan),
"company_runtime_stop_state": "suspended",
"company_runtime_suspend_checkpoint_type": "company_runtime_interrupted",
"company_runtime_suspended_at": datetime.now().isoformat(),
"dispatch_hold": "company_runtime_suspended",
"suspended_task_status": TaskStatus.RUNNING.value,
},
)
set_linked_work_item_id(review_task, review_item.work_item_id)
await store.save_task(review_task)
await store.link_work_item_runtime_task(review_item.work_item_id, review_task.id)
captured: dict[str, Any] = {}
class DummyCompanyExecutor:
async def execute(
self,
resumed_plan: CompanyWorkItemRuntimePlan,
tasks: list[Task],
) -> str:
captured["plan"] = resumed_plan
captured["tasks"] = tasks
return "runtime resumed"
engine.company_executor = DummyCompanyExecutor()
await engine._maybe_resume_checkpoint(
"continue",
"sess-parent",
reply_metadata={"ui_force_resume": True},
)
resumed_ids = {item.id for item in captured["tasks"]}
refreshed_review_item = await store.get_delegation_work_item(
review_item.work_item_id
)
resolved = await store.get_execution_checkpoints(
project_id="proj1",
session_id="sess-parent",
checkpoint_types=["company_runtime_suspended"],
statuses=["resolved"],
)
self.assertEqual(resumed_ids, {task.id, review_task.id})
assert refreshed_review_item is not None
self.assertEqual(refreshed_review_item.metadata.get("dispatch_hold"), "")
self.assertEqual(len(resolved), 1)
self.assertEqual(
set(resolved[0].payload.get("task_ids", [])),
{task.id, review_task.id},
)
self.assertEqual(
{
snapshot.get("task_id")
for snapshot in resolved[0].payload.get("task_snapshots", [])
},
{task.id, review_task.id},
)
async def test_runtime_refreshes_canonical_adapter_state_before_persisting(self) -> None:
store = await self._store()
_, task = await self._seed_runtime(store)
role_session_id = "role-runtime-1"
stale_state = {
"selected_execution_agent": "codex",
"external_resume_session_id": "thread-terminal",
"external_resume_agent_type": "codex",
"codex": {
"resume_session_id": "thread-terminal",
"provider_session_id": "thread-terminal",
},
}
role_session = await store.get_delegation_role_session(role_session_id)
assert role_session is not None
role_session.adapter_session_state = dict(stale_state)
await store.save_delegation_role_session(role_session)
runtime = CompanyRuntime(org_engine=None, communication=None, store=store)
runtime.role_sessions[role_session_id] = role_session
member = CompanyMemberSession(
member_session_id="member-operations",
role_session_id=role_session_id,
role_id="executor",
employee_id="employee-1",
adapter_session_state=dict(stale_state),
)
await store.update_role_session_adapter_state(
role_session_id,
"codex",
None,
)
await runtime._refresh_adapter_session_state_from_store(member)
self.assertNotIn("codex", member.adapter_session_state)
self.assertNotIn(
"external_resume_session_id",
member.adapter_session_state,
)
self.assertEqual(
runtime.role_sessions[role_session_id].adapter_session_state,
member.adapter_session_state,
)
async def test_second_stop_during_resumed_execution_restores_pending_checkpoint(self) -> None:
store = await self._store()
_, task = await self._seed_runtime(store)