Repository navigation
Open
Description
Parent
Problem
The first Web workbench projects compact status summaries for Subagents, Workflows, and Background Terminals. The browser cannot inspect their full bounded evidence, understand dependency/state transitions, or invoke supported lifecycle controls. Tasks/Goals have no Web projection yet.
This limits the workbench to passive status badges for the OpenPI capabilities that most need long-running operational visibility.
Value
- Give operators one place to inspect delegated and background work.
- Expose exact progress and terminal evidence without copying capability logic into the browser.
- Allow supported stop/cancel actions through the capability owner.
Approach constraints
- Existing capability registries and lifecycle events remain authoritative.
- The browser consumes stable projections; it must not reconstruct completion from labels.
- Controls are exposed only where the owning capability already has exact semantics and authority checks.
- Every action binds resource identity, Session identity, controller lease, and current epoch.
- Logs, graphs, node lists, results, and retained resources require explicit size and retention bounds.
- Tasks/Goals must follow their accepted Pi/OpenPI lifecycle design rather than introducing a Web-only task system.
Acceptance criteria
- Subagent panels show identity, role/model when available, status, elapsed time, bounded progress, result, and cancellation evidence.
- Workflow panels show graph/node state, dependencies, bounded input/output evidence, failure, replay/provenance, and terminal result.
- Background Terminal panels show command identity, bounded output, readiness, exit/cancel state, and supported stop controls.
- Supported lifecycle commands return exact accepted/stale/settled/failed receipts and are idempotent.
- Tasks/Goals appear only after their canonical runtime contract exists, using the same projection boundary.
- Snapshot, SSE replay, reconnect, Session switch, and shutdown converge without ghost resources.
- Capability details remain bounded and provide recovery references for omitted evidence.
- Read-only viewers cannot invoke controller actions.
- Focused registry/protocol/UI/browser tests, bun run check, and bun run test pass.
Related work
- Todo 没有消失,只是被降级了:Codex 的 Plan / Goal / Evidence 演进,以及 OpenPI Tasks 应该怎么走 #43 tracks the broader Tasks design.
- control: 研究 Pi-native 的全局安全暂停,让所有 Agent 在下一执行边界停住 #161 tracks global safe pause semantics.
- docs(lifecycle): define background ownership, isolation, cancellation, settlement, and delivery #196 tracks cross-capability lifecycle ownership and cancellation documentation.
Out of scope
- A second orchestration runtime.
- Browser-owned task/workflow state.
- Recursive team management.
Metadata
Metadata
Assignees
Labels
No labels
Activity
testikun commentedon Sep 4, 2026
I am taking a focused capability-detail projection slice, starting with Background Terminals as the first authoritative owner. I will extend the existing observer registry with an exact-id, Session-scoped detail lookup, project bounded stdout/stderr/status/error evidence from the terminal owner, and expose it through an authenticated read-only Web endpoint with missing/stale/oversized cases covered. This is distinct from #366, which only exposes the compact capability snapshot; controls and UI panels remain separate follow-ups. No UI changes are planned, so a real-browser screenshot is not applicable to this slice.
tt-a1i commentedon Sep 9, 2026
Source-read follow-up for this ticket (2026-09-09). No UI implemented, no
pi install, no browser run.Pinned trees:
a9b40f0044ee59c360a6077c1c0bdbdbd30da10bhas noweb/and no observer registry;origin/main0d17f4577fe31315fe6c95370d251bdb4e2413cf(@tt-a1i/openpi0.8.1) already has the compact capability snapshot and the Background Terminal exact-id detail path.Already on that origin revision (do not redo as a second registry):
#366/#367—GET /api/capabilitiesviawebCapabilitySnapshot;#444/#445—GET /api/capabilities/detail?kind=background-terminals&id=…plus InspectionPanel; Subagent and Workflow providers still have nodetail();killed/timed_out/abortedinto a single UIerrorcolor — that must stay presentation, not the wire status;/api/turns/cancelis the parent-turn receipt template (sessionId+commandId+epoch). There is still no capability stop/kill HTTP./webstill deletesPI_SESSION_ID/PI_SESSION_FILEand stores Web Sessions under~/.pi/agent/web-sessions. Capability chips therefore inspect the Web-ownedSessionManager, not the TUI session that launched/web. Deep-link / attach stays on#76; it is not this ticket’s first slice.TUI
/ps,/subagents, and/workflowsalready own inspect + the existing stop/kill paths (bg_kill/requestAbort/controller.abort). Remaining#346work is ownerdetail()for Subagent and Workflow, then optional controller-only commands that return accepted/stale/settled/failed receipts. Out of scope remains a second orchestration runtime, browser-owned task/workflow state, recursive teams, and Tasks/Goals until#43.No
#455UX subtask from this pass — no real-browser evidence.testikun commentedon Sep 17, 2026
我想认领 #346 的 Subagent 只读详情切片,请维护者确认是否与未公开工作重叠。只复用现有 capability observer/detail endpoint 和 Subagent owner 的有界状态/进度/结果/取消证据,保留精确 Session 与 resource identity、missing/stale/partial 语义,并接入现有 InspectionPanel。不会重做已合入的 Background Terminal 详情,也不在这一 PR 增加 Workflow 控制命令或第二套 registry。验收涵盖协议/owner/UI/真实浏览器与 check/test;不提前关闭整个 Issue。
testikun commentedon Sep 17, 2026
Subagent 只读详情切片已提交 PR #548:直接读取现有 manager.view.get(id),通过现有 Session-scoped capability detail endpoint 返回有界状态、结果、轮次、近期工具和文本输出,Web chip 可进入 InspectionPanel。没有新增控制命令或第二套状态;README 与真实浏览器截图在 PR,Workflow/控制回执仍留在本 Issue。