Skip to content

feat: add standalone recovery console and shared Harness settings - #432

Merged
BytePioneer-AI merged 6 commits into
mainfrom
feat/settings-rail-page
Sep 28, 2026
Merged

BytePioneer-AI merged 6 commits into
mainfrom
feat/settings-rail-page

Conversation

@BytePioneer-AI

Copy link
Copy Markdown
Owner

Summary

  • 将 Desktop 设置呈现为侧边导航页面,并增加独立本机 Web 控制台。
  • 提供总览、启动诊断、日志导出、更新与复用的设置页面;集成 npm 和安装包。
  • Host 统一保存 Harness 排序与分组,Web 与 Desktop 共享;Web 会话导入以成功提示结束。
  • 在校验 Desktop 资源前启动控制台,并依据 Launcher 记录显示启动中、成功或失败,避免重复启动。
  • 清理无调用接口、样式、参数和响应字段。

Related issues

N/A

Test plan

  • npm run lint:通过,含依赖边界检查。
  • npm run typecheck:通过。
  • npx vitest run --config tests/vitest.config.js packages/console-server/test packages/renderer-extension/test/console tests/release/npm-package.test.mjs:86 个测试通过。
  • cargo fmt --all --check:通过。
  • cargo test --locked --package codexhost-launcher:64 个测试通过。
  • npm run build:renderer:通过。
  • 使用本地模拟 API 和 Chromium 验证启动中页面,不显示重复启动按钮,无页面异常。
  • 此前完成本机 npm 安装和 macOS ARM64 DMG 打包;最终启动状态修复尚未在新安装包上端到端验证。
  • 未验证 Windows/Linux 实机及真实发布包离线更新全流程。

BytePioneer-AI and others added 4 commits September 28, 2026 18:00
Replace the settings dialog with a non-modal surface beside the native rail. Keep navigation, selection, and settings requests functional on pages without a Composer.

Inspired by https://github.com/liki-0814/codex-host/tree/feat/account-model-skill; the page integration is independently implemented.

Co-authored-by: liki-0814 <182258439+liki-0814@users.noreply.github.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-28T12:46:46.451315Z 7b166a4 PR opened
🔒 Security Review ✅ Completed 2026-09-28T12:46:50.203751Z 7b166a4 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: Repository: BytePioneer-AI/codex-host/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: e4be9645-6bd6-4538-a593-f85345a0faf9

📥 Commits

Reviewing files that changed from the base of the PR and between 467b216 and 1c4983b.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (121)
  • AGENTS.md
  • CLAUDE.md
  • README.md
  • crates/launcher/src/console.rs
  • crates/launcher/src/installation_layout.rs
  • crates/launcher/src/main.rs
  • crates/launcher/src/start_menu.rs
  • crates/launcher/src/startup_record.rs
  • crates/launcher/tests/cli.rs
  • docs/index.md
  • docs/operations/codexhost-console.md
  • docs/project/README.ko.md
  • docs/project/README.zh-CN.md
  • docs/proposals/独立 Web 控制台方案.md
  • openspec/changes/present-settings-as-rail-page/proposal.md
  • openspec/changes/present-settings-as-rail-page/specs/extensible-settings-shell/spec.md
  • openspec/changes/present-settings-as-rail-page/tasks.md
  • packages/console-server/package.json
  • packages/console-server/scripts/build-release.mjs
  • packages/console-server/src/diagnostic-report.ts
  • packages/console-server/src/diagnostics.ts
  • packages/console-server/src/harnesses.ts
  • packages/console-server/src/host-client.ts
  • packages/console-server/src/index.ts
  • packages/console-server/src/installation.ts
  • packages/console-server/src/main.ts
  • packages/console-server/src/open.ts
  • packages/console-server/src/page.ts
  • packages/console-server/src/paths.ts
  • packages/console-server/src/request-guard.ts
  • packages/console-server/src/server.ts
  • packages/console-server/src/updates.ts
  • packages/console-server/test/diagnostic-report.test.ts
  • packages/console-server/test/diagnostics.test.ts
  • packages/console-server/test/harnesses.test.ts
  • packages/console-server/test/host-client.test.ts
  • packages/console-server/test/installation.test.ts
  • packages/console-server/test/open.test.ts
  • packages/console-server/test/request-guard.test.ts
  • packages/console-server/test/server.test.ts
  • packages/console-server/test/updates.test.ts
  • packages/console-server/tsconfig.json
  • packages/desktop-control/src/cdp-client.ts
  • packages/desktop-control/src/controller-status.ts
  • packages/desktop-control/src/production-controller.ts
  • packages/desktop-control/src/renderer-cdp-control-session.ts
  • packages/desktop-control/test/cdp-exception-message.test.ts
  • packages/desktop-control/test/controller-status.test.ts
  • packages/desktop-control/test/production-controller.test.ts
  • packages/harness-plugin-files/package.json
  • packages/harness-plugin-files/src/discovery.ts
  • packages/harness-plugin-files/src/index.ts
  • packages/harness-plugin-files/src/launch-settings.ts
  • packages/harness-plugin-files/src/plugin-files.ts
  • packages/harness-plugin-files/test/launch-settings.test.ts
  • packages/harness-plugin-files/tsconfig.json
  • packages/host-runtime/package.json
  • packages/host-runtime/src/app-server-host.ts
  • packages/host-runtime/src/console-control-server.ts
  • packages/host-runtime/src/console-opener.ts
  • packages/host-runtime/src/harness-display-settings.ts
  • packages/host-runtime/src/harness-plugin-loader.ts
  • packages/host-runtime/src/run-host-runtime.ts
  • packages/host-runtime/test/app-server-host-fixture.ts
  • packages/host-runtime/test/app-server-host.display-settings.test.ts
  • packages/host-runtime/test/app-server-host.projection-1.test.ts
  • packages/host-runtime/test/console-control-server.test.ts
  • packages/host-runtime/test/console-opener.test.ts
  • packages/host-runtime/test/harness-display-settings.test.ts
  • packages/host-runtime/test/harness-plugin-loader.test.ts
  • packages/host-runtime/tsconfig.json
  • packages/renderer-extension/scripts/build.mjs
  • packages/renderer-extension/src/agent-group-preference.ts
  • packages/renderer-extension/src/agent-group-sync.ts
  • packages/renderer-extension/src/console-entry.ts
  • packages/renderer-extension/src/console/api.ts
  • packages/renderer-extension/src/console/app.ts
  • packages/renderer-extension/src/console/connection-diagnostics.ts
  • packages/renderer-extension/src/console/console.css
  • packages/renderer-extension/src/console/dom.ts
  • packages/renderer-extension/src/console/messages.ts
  • packages/renderer-extension/src/console/pages/diagnostics.ts
  • packages/renderer-extension/src/console/pages/harnesses-offline.ts
  • packages/renderer-extension/src/console/pages/host-required.ts
  • packages/renderer-extension/src/console/pages/overview.ts
  • packages/renderer-extension/src/console/pages/report-actions.ts
  • packages/renderer-extension/src/console/state.ts
  • packages/renderer-extension/src/index.ts
  • packages/renderer-extension/src/renderer-model-client.ts
  • packages/renderer-extension/src/renderer-settings-lifecycle.ts
  • packages/renderer-extension/src/settings/connections-page.ts
  • packages/renderer-extension/src/settings/icons.ts
  • packages/renderer-extension/src/settings/localization.ts
  • packages/renderer-extension/src/settings/pages.ts
  • packages/renderer-extension/src/settings/rail-page.ts
  • packages/renderer-extension/src/settings/session-import-page.ts
  • packages/renderer-extension/src/settings/shell.css
  • packages/renderer-extension/src/settings/shell.ts
  • packages/renderer-extension/src/settings/trigger.ts
  • packages/renderer-extension/src/versioned-renderer-adapter.ts
  • packages/renderer-extension/test/agent-group-preference.test.ts
  • packages/renderer-extension/test/agent-group-sync.test.ts
  • packages/renderer-extension/test/console/connection-diagnostics.test.ts
  • packages/renderer-extension/test/console/diagnostics-page.test.ts
  • packages/renderer-extension/test/renderer-model-client.test.ts
  • packages/renderer-extension/test/settings/pages.test.ts
  • packages/renderer-extension/test/settings/shell.test.ts
  • packages/renderer-extension/test/settings/trigger.test.ts
  • packages/renderer-extension/test/versioned-renderer-adapter.test.ts
  • packages/shared-contracts/src/console.ts
  • packages/shared-contracts/src/harness-display-settings.ts
  • packages/shared-contracts/src/index.ts
  • scripts/release/macos/package.sh
  • scripts/release/prepare-npm.mjs
  • scripts/release/prepare-payload.mjs
  • scripts/release/windows/Installer.iss
  • tests/e2e/renderer-settings-page.spec.ts
  • tests/release/console-server-bundle.test.mjs
  • tests/release/npm-package.test.mjs
  • tests/release/payload.test.mjs
  • tsconfig.json
 _________________________________________________________________________________
< CodeRabbi is my uncle. He's a bit more orthodox. Feel lucky you got me instead. >
 ---------------------------------------------------------------------------------
  \
   \   \
        \ /\
        ( )
      .( o ).
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7b166a41b0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +133 to +135
return installation.launcherExecutable
? { command: installation.launcherExecutable, args: [] }
: null;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Launch installer builds without reopening the console

When the user clicks Start in the already-open recovery console for a macOS or Windows installer, this empty argument list invokes the Launcher's no-argument path. main.rs classifies that as Presentation::Browser, and console.rs immediately calls show(None), opening a second console tab; a startup failure can open yet another tab. Invoke the explicit launch command, as the npm wrapper does, or otherwise suppress console presentation for launches initiated by the console.

Useful? React with 👍 / 👎.

@BytePioneer-AI
BytePioneer-AI merged commit 636b501 into main Sep 28, 2026
4 of 5 checks passed
YanYunCY added a commit to YanYunCY/codex-host that referenced this pull request Sep 28, 2026
Resolve the launcher test conflict and integrate the standalone Console from PR BytePioneer-AI#432 with the update handoff. Keep Windows installer updates available; require manual Windows npm and offline Windows/macOS Console updates until a cross-process Launcher handoff is available. Isolate the relocated Host test's CODEX_HOME.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant