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
@@ -1710,6 +1710,7 @@ class CompanyRuntime:
**dict(session.resume_state),
**runtime_state,
}
await self._refresh_adapter_session_state_from_store(session)
adapter_state_updates = self._adapter_state_from_result(task, result)
if adapter_state_updates:
session.adapter_session_state = {
@@ -1899,6 +1900,31 @@ class CompanyRuntime:
return candidate
return None
async def _refresh_adapter_session_state_from_store(
self,
session: CompanyMemberSession,
) -> None:
role_session_id = str(session.role_session_id or "").strip()
getter = getattr(self.store, "get_delegation_role_session", None)
if not role_session_id or not callable(getter):
return
try:
persisted = await getter(role_session_id)
except Exception:
logger.opt(exception=True).debug(
"company runtime adapter-state refresh failed"
)
return
if persisted is None:
return
adapter_state = dict(
getattr(persisted, "adapter_session_state", {}) or {}
)
session.adapter_session_state = adapter_state
role_session = self.role_sessions.get(role_session_id)
if role_session is not None:
role_session.adapter_session_state = dict(adapter_state)
def _ensure_role_session(self, task: Task) -> DelegationRoleSession | None:
role_id = self._role_id(task)
if not role_id: