Skip to content

docs(e02-s004): 启动交互式命令(S004)需求讨论 - #12

Open
alienzhou wants to merge 1 commit into
mainfrom
agent/claude/c19bb22b769b
Open

alienzhou wants to merge 1 commit into
mainfrom
agent/claude/c19bb22b769b

Conversation

@alienzhou

Copy link
Copy Markdown
Owner

背景

E02-S003(terminal)已收口,Epic 2 只剩最后一个 Story:S004 交互式命令。S003 讨论中两次重画 S003/S004 的线后,S004 的边界收敛为「要不要人输入」,此前「尚未开始讨论」。本 PR 按项目 讨论 → spec → 实现 → 复盘 的迭代流程,推进 S004 的需求讨论环节。

改动

新增 .discuss/2026-09-18/e02-s004-interactive-commands/

  • outline.md:驱动文档 —— 问题框定、五议题议程与叙事链、竞品指针、Confirmed/Rejected/Pending 表
  • decisions/D01–D05(初步收敛,待评审):
    • D01 交互式是什么:四道防线防的是「盲等」非「输入」;判据「要不要人输入」再拆「谁持有答案」(模型能答 vs 只有人能答)
    • D02 怎么知道在等输入:系统层无「blocked on stdin」信号 → 不检测,改「模型声明 + 复用 S003 静默兜底」
    • D03 会话与谁写 stdin:新工具 write_stdin + 会话表(持有 live handle,与 S003 只存 pid 的后台登记表相反);stdio[0]ignorepipe;模型写不是人接管
    • D04 pty 与原生依赖:守 S003 零依赖基调不引 node-pty;只覆盖「读 stdin」那类,isatty 门控 / /dev/tty 密码提示记明示缺口;「无 pty」既是能力缺失也是安全防线
    • D05 生命周期与安全边界:会话复用 S003 三道防线 + 新增空闲兜底 + 软上限;「只有人能答」的密码类推给审批专章(Epic 3)

同步:Epic 2 README 的 S004 行状态改为「🚧 讨论中」并接上链接;S003 outline 的「下一步」指针接到本讨论。

说明

  • 全部为 Markdown 文档,未触碰任何 .ts 代码;prettier/eslint 仅 gate packages/**e2e/** 的 TS,本 PR 不受影响。
  • 状态为「初步收敛,待评审 + 待代码核对」。进 spec 前需按 outline「Current Focus」对 D03/D04 涉及的 terminal.ts / process-registry.ts 现状做一次代码核对(遵循 S003 D03-8「写决策前先看代码」)。

关联 issue:ALI-70《继续推进下一期 z2a 课程》

启动 E02-S004(交互式命令)需求讨论,产出 outline + D01–D05 五份决策初稿(初步收敛待评审):

- D01 交互式定义:四道防线防的是"盲等"非"输入";判据"要不要人输入"再拆"谁持有答案"
- D02 检测:系统层无"blocked on stdin"信号;改"模型声明 + 复用 S003 静默兜底"
- D03 范式:新工具 write_stdin + 会话表(持有 live handle,与 S003 只存 pid 的登记表相反);stdio[0] 由 ignore 改 pipe
- D04 pty:守零依赖基调不引 node-pty;只覆盖"读 stdin"那类,isatty 门控/密码提示记明示缺口
- D05 生命周期与安全:复用三道防线 + 新增会话空闲兜底 + 软上限;密码类推给审批专章

同步更新 Epic 2 README S004 行状态为"讨论中",并接上 S003 outline 的"下一步"指针。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
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