Skip to content

feat(dash): surface waiting lane host-neutral as agent - #3006

Merged
huangruiteng merged 1 commit into
huangruiteng:frontend-control-plane-im-prototype-rfcfrom
xiaods:codex/dash-agent-centric2
Aug 9, 2026
Merged

feat(dash): surface waiting lane host-neutral as agent#3006
huangruiteng merged 1 commit into
huangruiteng:frontend-control-plane-im-prototype-rfcfrom
xiaods:codex/dash-agent-centric2

Conversation

@xiaods

@xiaods xiaods commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

The session dash panel displayed Waiting on: codex for goals whose latest run classification is codex-ready (CODEX_READY_CLASSIFICATIONS). That reads as a product reference (Codex CLI) even though the lane is actionable by any agent host — Pi, Codex, etc. codex is LoopX's internal classification for an agent-actionable lane (session_runtime_status_waiting_on treats agent/codex as synonyms).

Change: map the codex waiting classification to the host-neutral agent word at the session-dash projection layer. Both words classify identically in the status-bucket logic, so bucket behavior is unchanged.

  • loopx/presentation/projections/session_dash.py: waiting_on == "codex""agent" with a comment explaining the synonym.
  • examples/session-dash-panel-smoke.py: asserts a codex-classified fixture goal projects waiting_on == "agent".

Validation: session-dash-panel-smoke OK (14 tests), static-site-presentation-smoke OK, cli-command-module-contract OK, ruff/py_compile/diff-check clean. Verified live: loopx-goal now projects waiting_on=agent (was codex), status_bucket unchanged.

The panel displayed 'Waiting on: codex' for goals whose latest run is
classified as codex-ready, which reads as a product reference (Codex
CLI) even when the lane is actionable by any agent host (Codex, Pi,
etc.). Map the codex waiting classification to the host-neutral 'agent'
word at the projection layer; both words classify identically in the
status-bucket logic, so no bucket behavior changes.

Smoke: session-dash-panel-smoke asserts a codex-classified fixture goal
projects waiting_on == 'agent'; verified live against the loopx registry.

@huangruiteng huangruiteng left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Verdict

APPROVE - no blockers. Reviewed exact head 756247f4fa72e28696889fc7cf11d3b161da9044; session-dash smoke passes locally and all checks pass.

动机

session dash 对 codex-ready 分类显示 Waiting on: codex,容易被误读为 Codex CLI 产品引用,但该 lane 实际可由任意 agent host(Codex、Pi 等)执行。PR 在 projection 层把 codex 映射为 host-neutral 的 agent

改动思路

只在展示投影层做同义词映射,status_bucket 分类逻辑不变,因此不会改变状态分组行为。

具体改动

  • loopx/presentation/projections/session_dash.py_goal_entrywaiting_on == "codex" 时改为 "agent",并加注释说明同义词。
  • examples/session-dash-panel-smoke.py:新增断言,codex-main-control session 的 goal 投影 waiting_on == "agent" 且不等于 "codex"

关键代码讲解

  1. _goal_entrywaiting_on fallback:先取 status item,再取 run goal,最后默认 "auto";映射发生在最终显示前,确保 status_bucket 仍按原始分类工作。
  2. 回归 smoke 直接覆盖原 codex 分类的 goal,防止未来再次暴露内部分类名。

对主干的风险

无阻塞项。改动只影响展示字段,bucket 行为不变,smoke 和 CI 均通过。该 PR 目标是 frontend prototype 分支,不涉及 main。

我的整体评价

改动小、意图清晰、测试覆盖到位,可以合并到特性分支。

English Verdict

Approve. Maps the codex waiting classification to host-neutral agent at the dash projection layer without changing bucket behavior; smoke and CI pass at 756247f4fa72e28696889fc7cf11d3b161da9044.

@huangruiteng
huangruiteng merged commit 2b1e048 into huangruiteng:frontend-control-plane-im-prototype-rfc Aug 9, 2026
5 checks passed
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.

2 participants