feat: wire native Codex UI as /console entry, keep classic console at /console-classic
ci / test (push) Successful in 45m25s

- Vendor codex-ui-stack host/ as cloud/codex-ui-host/ (original/ not vendored, 650MB)
- Bridge emulates 7 methods missing in codex 0.164.0-alpha.9, exposes 29
  experimental-protocol methods (150 -> 179), Linux binary candidates,
  read-only POST /__codex_git
- GET /console 302s to the UI host (:8095) when reachable, else falls back
  to the classic React console; GET /console-classic always serves it
- Alignment tables: docs/codex-native-ui-alignment.md
- Tests: test_console 7, new test_codex_ui_host 4, handler method pin 247 -> 249
This commit is contained in:
host committed 2026-11-06 19:03:35 +00:00
1 parent 41f3985248
commit 3e0ff898e0
20 files changed
+3018 -24

No files matched your search

@@ -148,7 +148,10 @@ class TestMethodAccounting(unittest.TestCase):
# 增量全是 main 侧方法(_routing_shadow、_resolve_create_
# agent_definition、_validate_create_audit_loop),源线方法
# 零丢失、mixin 侧零增减;此为源线 34b9a34 同款 re-pin。
def test_total_247_no_duplicates(self):
# 补漏注:codex 原生 UI 接线新增 2 个 server.py 自有方法
# (_send_redirect、_serve_console_classic),总数 247 -> 249、
# server.py 自有 153 -> 155;mixin 侧零增减,源线方法零丢失。
def test_total_249_no_duplicates(self):
seen = {}
dups = []
classes = [CloudControlPlaneHandler]
@@ -163,9 +166,9 @@ class TestMethodAccounting(unittest.TestCase):
dups.append((seen[name], cls.__name__, name))
seen[name] = cls.__name__
self.assertEqual(dups, [])
self.assertEqual(total, 247)
self.assertEqual(total, 249)
self.assertEqual(len(_own_methods(CloudControlPlaneHandler)),
247 - 94)
249 - 94)
if __name__ == "__main__":