From 002ccd07087afa1f0630392b80fd986d90b41166 Mon Sep 17 00:00:00 2001 From: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> Date: Mon, 26 Oct 2026 14:34:39 +0800 Subject: [PATCH] fix(accounts): share native policy and elect one observer Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> --- loopx/chat_server.py | 8 +- .../loopx-codex-provider-routing/NATIVE.md | 48 ++++++ .../assets/native-policy-owner-desktop.png | Bin 0 -> 84996 bytes .../assets/native-policy-owner-narrow.png | Bin 0 -> 48115 bytes .../native-policy-owner-unknown-narrow.png | Bin 0 -> 49579 bytes .../extension.toml | 2 +- .../pyproject.toml | 2 +- .../smoke/test_native_observer.py | 145 ++++++++++++++++++ .../loopx_codex_provider_routing/__init__.py | 2 +- .../loopx_codex_provider_routing/native.py | 20 ++- tests/test_chat_transport_composition.py | 98 ++++++++++++ 11 files changed, 318 insertions(+), 7 deletions(-) create mode 100644 packages/loopx-codex-provider-routing/docs/assets/native-policy-owner-desktop.png create mode 100644 packages/loopx-codex-provider-routing/docs/assets/native-policy-owner-narrow.png create mode 100644 packages/loopx-codex-provider-routing/docs/assets/native-policy-owner-unknown-narrow.png create mode 100644 packages/loopx-codex-provider-routing/smoke/test_native_observer.py diff --git a/loopx/chat_server.py b/loopx/chat_server.py index 4687d7e606..8a8a04e975 100644 --- a/loopx/chat_server.py +++ b/loopx/chat_server.py @@ -1830,7 +1830,13 @@ def serve_chat( server = ChatHTTPServer((host, port), ChatRequestHandler) server.registry_path = resolved_registry_path server.runtime_root = runtime_root - server.codex_account_service = CodexAccountService(runtime_root) + # Account policy follows the registry's native owner. A separate Chat + # history directory must not silently create another account policy. + account_runtime_root = ( + resolve_runtime_root(registry, registry_path=resolved_registry_path) + if registry.get("common_runtime_root") else runtime_root + ) + server.codex_account_service = CodexAccountService(account_runtime_root) server.runtime_root_override = resolved_runtime_root_override server.scan_roots = resolved_scan_roots server.limit = limit diff --git a/packages/loopx-codex-provider-routing/NATIVE.md b/packages/loopx-codex-provider-routing/NATIVE.md index 1222f137c0..55c7d3819b 100644 --- a/packages/loopx-codex-provider-routing/NATIVE.md +++ b/packages/loopx-codex-provider-routing/NATIVE.md @@ -48,6 +48,24 @@ TypeScript selector. Enrol accounts through the native owner's official login. Click **Switch automatically when quota runs out** to authorize the listed slots as destinations. Installation alone grants no account effect. The App observer runs with its serving LoopX process and rehydrates the saved opt-in on restart. +Version 0.12.8 uses the registry's declared runtime owner for this policy even when Chat +history uses a separate `--runtime-root`. The settings page and the native CLI +therefore read and update the same policy; no history or credential data is +copied. A registry without `common_runtime_root` retains the explicit Chat +runtime for its policy, so an isolated setup cannot fall back to the user's +global policy. Explicit separate registry/runtime owners remain isolated. For a CLI +watch, pass that registry owner's runtime to `--runtime-root` as usual. + +An App observer and CLI `watch` sharing that policy elect one active observer +with a private process lock. Contenders perform no native account observations +or switches; they wait up to five seconds between ownership checks and can take +over when the active owner exits. Stopping a contender releases its thread +without stopping the active owner. The existing transaction lock still serializes +configuration, explicit checks and switches. Turning the policy off affects the +actual observer, while an already dispatched credential transaction retains its +normal completion/recovery contract. Upgrade and restart all existing observers +before relying on this ownership fence; an older process does not acquire it. + Client restart is a separate permission, off by default and absent from older policies. Enabling it also permits a subsequent explicit manual switch to quit and reopen the GPT instance. Neither permission is enabled by installation. @@ -290,3 +308,33 @@ exercised, followed by a fresh successful check without changing the account. ![Desktop force-quit settings / 桌面强关设置](docs/assets/native-accounts-force-desktop.png) ![Narrow settings / 窄屏设置](docs/assets/native-accounts-force-narrow.png) + +### Shared policy owner / 共用策略来源 + +The settings page and CLI use the registry-declared native account owner even +when Chat history has a separate runtime directory. Without a declared owner, +an explicit isolated Chat runtime remains isolated. Version 0.12.8 also holds a +process lock for the observer lifetime: another App or CLI stays passive until +the owner exits. Upgrade and restart every existing observer before relying on +this guarantee; an older observer does not participate in the new lock. + +设置页与 CLI 共用 registry 声明的原生账号策略来源,会话历史仍保留在原目录。 +未声明公共来源时,显式隔离的 Chat runtime 保持隔离。0.12.8 通过跨进程锁保证同一 +策略来源只有一个自动观察器;原观察器退出后,等待者接管。升级时需要重启所有旧 +观察器,旧版本不会自动遵守新锁。 + +The actual packaged page and HTTP service below use synthetic A/B/C accounts. +Turning automatic switching off and back on persisted to the shared owner and +survived reload without changing the separate conversation policy. Unknown +allowance kept account A selected; a fresh successful check recovered. These +images do not qualify a real credential switch. + +以下为实际打包网页与 HTTP 服务,账号 A/B/C 为合成数据。关闭、重新开启和刷新后 +均读回共用策略,会话目录中的独立旧策略未被改写。额度未知时保留 A,重新检查后 +恢复;不代表已完成真实账号切换。 + +![Shared account policy, desktop / 桌面](docs/assets/native-policy-owner-desktop.png) + +![Shared account policy, narrow / 窄屏](docs/assets/native-policy-owner-narrow.png) + +![Unknown allowance preserves selection / 额度未知保留当前账号](docs/assets/native-policy-owner-unknown-narrow.png) diff --git a/packages/loopx-codex-provider-routing/docs/assets/native-policy-owner-desktop.png b/packages/loopx-codex-provider-routing/docs/assets/native-policy-owner-desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..9dfa4a9b8b9939489e6ab298fa0405676197b96f GIT binary patch literal 84996 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

Kt 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 literal 0 HcmV?d00001 diff --git a/packages/loopx-codex-provider-routing/docs/assets/native-policy-owner-narrow.png b/packages/loopx-codex-provider-routing/docs/assets/native-policy-owner-narrow.png new file mode 100644 index 0000000000000000000000000000000000000000..9cb1ef3ece9489021fdb1aec97a996109d6654e6 GIT binary patch literal 48115 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%0A??yOiHS|fBoA~*>uW_<(Qp|ndU3$?QJH@vX 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 literal 0 HcmV?d00001 diff --git a/packages/loopx-codex-provider-routing/extension.toml b/packages/loopx-codex-provider-routing/extension.toml index b6b15a6a56..c7110dbe1c 100644 --- a/packages/loopx-codex-provider-routing/extension.toml +++ b/packages/loopx-codex-provider-routing/extension.toml @@ -1,6 +1,6 @@ schema_version = "loopx_extension_manifest_v0" id = "loopx-codex-provider-routing" -version = "0.12.7" +version = "0.12.8" requires_loopx_api = ">=1,<2" permissions = [] diff --git a/packages/loopx-codex-provider-routing/pyproject.toml b/packages/loopx-codex-provider-routing/pyproject.toml index ccf795dabf..224fe98548 100644 --- a/packages/loopx-codex-provider-routing/pyproject.toml +++ b/packages/loopx-codex-provider-routing/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "loopx-codex-provider-routing" -version = "0.12.7" +version = "0.12.8" description = "Native Codex account slots and exhausted-account handoff for LoopX" readme = "README.md" requires-python = ">=3.11" diff --git a/packages/loopx-codex-provider-routing/smoke/test_native_observer.py b/packages/loopx-codex-provider-routing/smoke/test_native_observer.py new file mode 100644 index 0000000000..ad5895e691 --- /dev/null +++ b/packages/loopx-codex-provider-routing/smoke/test_native_observer.py @@ -0,0 +1,145 @@ +"""Real process ownership; synthetic allowance never accesses native credentials.""" +from __future__ import annotations + +import importlib +import os +from pathlib import Path +import subprocess +import sys +import tempfile +import time +import unittest + +SOURCE = Path(__file__).resolve().parents[1] / "src" +sys.path.insert(0, str(SOURCE)) +native = importlib.import_module("loopx_codex_provider_routing.native") + +CHILD = r''' +import json, os, sys, time +from pathlib import Path +from loopx_codex_provider_routing.native import NativeAccounts, Watcher +root = Path(sys.argv[1]) +def transport(adapter, operation, **parameters): + if operation == "status": + return {"slots": ["a", "b"], "active_slot": "a", "selection_revision": "fixture", + "current_login_matches": True, "recovery_required": False} + if operation == "observe": + with (root / "observations").open("a") as stream: + stream.write(str(os.getpid()) + "\n") + return {"observations": [{"slot": s, "status": "ok", "observed_at": time.time(), + "usage": {"rate_limit": {"primary_window": {"used_percent": 0, + "reset_at": time.time() + 3600}}, "credits": {"has_credits": False}}} + for s in parameters["slots"]]} + raise AssertionError("No native account effect is authorized: " + operation) +provider = NativeAccounts(root, transport=transport) +tick = provider.tick +def observed_tick(): + with (root / "ticks").open("a") as stream: + stream.write(str(os.getpid()) + "\n") + value = tick() + value["retry_at"] = time.time() + 5 # Bound the fixture's scheduling wait only. + return value +provider.tick = observed_tick +Watcher(provider).run() +''' + + +@unittest.skipUnless(os.name == "posix", "Native account ownership uses POSIX locks") +class NativeObserverOwnership(unittest.TestCase): + def setUp(self): + self.temporary = tempfile.TemporaryDirectory(prefix="native-observer-") + self.root = Path(self.temporary.name).resolve() + self.children = [] + + def tearDown(self): + for process in self.children: + if process.poll() is None: + process.terminate() + try: + process.wait(timeout=5) + except subprocess.TimeoutExpired: + process.kill() + process.wait(timeout=5) + self.temporary.cleanup() + + def policy(self, name): + root = self.root / name + provider = native.NativeAccounts(root) + provider.root.mkdir(parents=True, mode=0o700) + native.atomic(provider.path, { + "schema_version": native.SCHEMA, "revision": 1, + "policy": {"enabled": True, "slots": ["a", "b"], "cooldown_seconds": 300, + "restart_clients": False, "force_quit_clients": False}, + "adapter": {"synthetic": True}, "observations": [], "last_switch_at": None, + "action": "checking", + }) + return root, provider + + def start(self, root): + env = {**os.environ, "PYTHONPATH": str(SOURCE)} + process = subprocess.Popen([sys.executable, "-c", CHILD, str(root)], env=env, + stdin=subprocess.DEVNULL, stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL) + self.children.append(process) + return process + + def ticks(self, root): + path = root / "ticks" + return path.read_text().splitlines() if path.exists() else [] + + def wait_for_ticks(self, root, count): + deadline = time.monotonic() + 9 + while len(self.ticks(root)) < count and time.monotonic() < deadline: + time.sleep(0.025) + self.assertEqual(len(self.ticks(root)), count) + + def test_only_one_process_observes_and_owner_exit_allows_takeover(self): + root, _ = self.policy("shared") + first = self.start(root) + self.wait_for_ticks(root, 1) + second = self.start(root) + time.sleep(0.4) + self.assertIsNone(first.poll()) + self.assertIsNone(second.poll()) + self.assertEqual(self.ticks(root), [str(first.pid)]) + first.terminate() + first.wait(timeout=5) + self.wait_for_ticks(root, 2) + self.assertEqual(self.ticks(root), [str(first.pid), str(second.pid)]) + + def test_explicit_separate_policy_owners_do_not_block_each_other(self): + left, _ = self.policy("left") + right, _ = self.policy("right") + first, second = self.start(left), self.start(right) + self.wait_for_ticks(left, 1) + self.wait_for_ticks(right, 1) + self.assertEqual(self.ticks(left), [str(first.pid)]) + self.assertEqual(self.ticks(right), [str(second.pid)]) + + def test_disable_from_another_process_stops_native_observation(self): + root, provider = self.policy("disable") + process = self.start(root) + deadline = time.monotonic() + 9 + observations = root / "observations" + while not observations.exists() and time.monotonic() < deadline: + time.sleep(0.025) + self.assertEqual(observations.read_text().splitlines(), [str(process.pid)]) + provider.configure(expected_revision=1, enabled=False, slots=["a", "b"]) + self.wait_for_ticks(root, 2) + self.assertEqual(observations.read_text().splitlines(), [str(process.pid)]) + self.assertFalse(provider._load()["policy"]["enabled"]) + + def test_untrusted_observer_lock_is_not_followed(self): + root, provider = self.policy("untrusted") + target = self.root / "unrelated" + target.write_text("untouched") + (provider.root / "observer.lock").symlink_to(target) + process = self.start(root) + time.sleep(0.4) + self.assertIsNone(process.poll()) + self.assertEqual(self.ticks(root), []) + self.assertEqual(target.read_text(), "untouched") + + +if __name__ == "__main__": + unittest.main() diff --git a/packages/loopx-codex-provider-routing/src/loopx_codex_provider_routing/__init__.py b/packages/loopx-codex-provider-routing/src/loopx_codex_provider_routing/__init__.py index 4fe34bb21c..c08e33c9d0 100644 --- a/packages/loopx-codex-provider-routing/src/loopx_codex_provider_routing/__init__.py +++ b/packages/loopx-codex-provider-routing/src/loopx_codex_provider_routing/__init__.py @@ -1,3 +1,3 @@ __all__ = ["__version__"] -__version__ = "0.12.3" +__version__ = "0.12.8" diff --git a/packages/loopx-codex-provider-routing/src/loopx_codex_provider_routing/native.py b/packages/loopx-codex-provider-routing/src/loopx_codex_provider_routing/native.py index 0281efa98f..26bdc643c5 100644 --- a/packages/loopx-codex-provider-routing/src/loopx_codex_provider_routing/native.py +++ b/packages/loopx-codex-provider-routing/src/loopx_codex_provider_routing/native.py @@ -115,7 +115,7 @@ def _load(self) -> dict: "observations": [], "last_switch_at": None, "action": "disabled"} @contextmanager - def _lock(self, *, wait_seconds: float = 0): + def _lock(self, *, wait_seconds: float = 0, name: str = "lock"): if os.name != "posix": raise HostError("platform_unavailable") import fcntl @@ -125,7 +125,7 @@ def _lock(self, *, wait_seconds: float = 0): self.root.mkdir(mode=0o700, parents=True, exist_ok=True) if self.root.stat().st_uid != os.getuid() or self.root.stat().st_mode & 0o077: raise HostError("state_untrusted") - path = self.root / "lock" + path = self.root / name if path.is_symlink(): raise HostError("state_untrusted") with open(path, "a", opener=lambda p, flags: os.open(p, flags, 0o600)) as stream: @@ -386,7 +386,7 @@ def reopen(self, *, expected_selection: str) -> dict: class Watcher: - """Owned by the serving App (or explicit CLI watch), never an import effect.""" + """One observer per policy owner; App/CLI contenders stay passive.""" def __init__(self, provider: NativeAccounts): self.provider = provider self.stop = threading.Event() @@ -400,6 +400,20 @@ def start(self): return self def run(self): + while not self.stop.is_set(): + try: + # Keep ownership across sleeps, not just one transaction. An + # App restart and an existing CLI watch can share policy without + # duplicating native observations. The kernel releases this + # lock on exit; a waiting owner can then take over safely. + with self.provider._lock(name="observer.lock"): + self._observe() + except BlockingIOError: + self.stop.wait(5) + except (HostError, OSError, ValueError): + self.stop.wait(60) + + def _observe(self): while not self.stop.is_set(): delay = 60.0 try: diff --git a/tests/test_chat_transport_composition.py b/tests/test_chat_transport_composition.py index e911b46d95..2c1f2512d1 100644 --- a/tests/test_chat_transport_composition.py +++ b/tests/test_chat_transport_composition.py @@ -219,6 +219,10 @@ def __init__(self, *args, **kwargs): assert json.load(response)["ok"] is True assert server.runtime_controller.startup_timeout_sec == 30.0 assert server.runtime_controller.acp_startup_timeout_sec is None + if server.codex_account_service.provider is not None: + assert server.codex_account_service.provider.root == ( + server.runtime_root / "extensions" / "codex-native-accounts" + ) assert server.manager_return_service.args[2] is server.chat_store if installed: assert server.manager_return_service.args[3] is server.conversation_transports @@ -236,3 +240,97 @@ def __init__(self, *args, **kwargs): worker.join(8) assert not worker.is_alive() assert external.calls == [("start", server), "close"] if installed else external.calls == [] + + +def test_account_settings_control_registry_owner_with_separate_conversation_storage(tmp_path, monkeypatch): + """The settings toggle must control the same policy the native CLI reads.""" + import importlib + from pathlib import Path + from urllib.error import HTTPError + from urllib.request import Request + + import loopx.chat_server as chat + from loopx.extensions.lark.cli_resolution import LarkCliResolution + + monkeypatch.syspath_prepend(str(Path(__file__).resolve().parents[1] / + "packages/loopx-codex-provider-routing/src")) + native = importlib.import_module("loopx_codex_provider_routing.native") + monkeypatch.setattr(native, "discover", lambda: {"synthetic": True}) + effects = [] + + def transport(adapter, operation, **parameters): + effects.append(operation) + if operation == "status": + return {"slots": ["a", "b"], "active_slot": "a", "selection_revision": "fixture", + "current_login_matches": True, "recovery_required": False} + if operation == "observe": + import time + return {"observations": [{"slot": slot, "status": "ok", "observed_at": time.time(), + "usage": {"rate_limit": {"primary_window": {"used_percent": 0, + "reset_at": time.time() + 3600}}, "credits": {"has_credits": False}}} + for slot in parameters["slots"]]} + raise AssertionError("No account effect is authorized in this fixture: " + operation) + + provider_type = native.NativeAccounts + monkeypatch.setattr(native, "NativeAccounts", lambda root: provider_type(root, transport=transport)) + owner_root, conversation_root = tmp_path / "owner", tmp_path / "conversations" + owner = provider_type(owner_root, transport=transport) + owner.configure(expected_revision=0, enabled=True, slots=["a", "b"], restart_clients=True) + separate = provider_type(conversation_root, transport=transport) + separate.configure(expected_revision=0, enabled=False, slots=[]) + separate_before = separate.path.read_bytes() + registry = tmp_path / "registry.json" + registry.write_text(json.dumps({"goals": [], "common_runtime_root": str(owner_root)})) + assets = tmp_path / "assets" + assets.mkdir() + (assets / "index.html").write_text("fixture") + monkeypatch.setattr(chat, "build_lark_goal_topic_runtime_snapshot", lambda **kwargs: {}) + monkeypatch.setattr(chat, "resolve_lark_cli_for_runtime", lambda **kwargs: + LarkCliResolution(None, False, "missing", None, "lark_cli_not_installed")) + servers, ready, failures = [], threading.Event(), [] + + class Server(chat.ChatHTTPServer): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + servers.append(self) + ready.set() + + monkeypatch.setattr(chat, "ChatHTTPServer", Server) + + def serve(): + try: + chat.serve_chat(registry_path=registry, runtime_root_override=conversation_root, + port=0, assets_dir=assets, codex_bin="unavailable-fixture") + except BaseException as error: + failures.append(error) + + worker = threading.Thread(target=serve, daemon=True) + worker.start() + try: + assert ready.wait(8) + server = servers[0] + url = f"http://127.0.0.1:{server.server_port}/api/chat/codex-accounts" + with urlopen(url, timeout=8) as response: + before = json.load(response) + assert before["policy"]["enabled"] is True + assert before["policy"]["slots"] == ["a", "b"] + assert server.chat_store.root == conversation_root / "chat" + request = {"operation": "configure", "parameters": { + "expected_revision": before["revision"], "enabled": False, "slots": ["a", "b"]}} + headers = {"Content-Type": "application/json"} + with urlopen(Request(url, data=json.dumps(request).encode(), headers=headers), timeout=8) as response: + disabled = json.load(response) + assert disabled["policy"]["enabled"] is False + assert owner.status()["policy"]["enabled"] is False + assert owner.status()["policy"]["restart_clients"] is True + with pytest.raises(HTTPError) as conflict: + urlopen(Request(url, data=json.dumps(request).encode(), headers=headers), timeout=8) + assert conflict.value.code == 409 + assert json.load(conflict.value)["code"] == "configuration_changed" + assert separate.path.read_bytes() == separate_before + assert "switch" not in effects + finally: + if servers: + servers[0].shutdown() + worker.join(8) + assert not worker.is_alive() and not failures