Skip to content

feat(cli): O99 show real progress during long runs - #95

Closed
QiaolongLi1201 wants to merge 2 commits into
mainfrom
fix/o99-progress
Closed

QiaolongLi1201 wants to merge 2 commits into
mainfrom
fix/o99-progress

Conversation

@QiaolongLi1201

@QiaolongLi1201 QiaolongLi1201 commented Oct 11, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

O99 — show real progress during long runs so users do not think Moss is hung and hit Ctrl+C.

  • Emit real progress at least every 60s on TUI and --print (stderr only for print; stdout keeps the final answer).
  • Sources (priority): tool start/end summaries → long-tool tool_progress heartbeats → thinking-wait lines (正在推理,已等待 Ns / English equivalent) when the model is silent ≥30s.
  • Map existing Mini tool_execution_progress into MossAgentEvent.tool_progress (previously dropped).
  • No empty working… / rotating slogans; identical lines do not stack ≥3 times.
  • Unfinished stop reasons get a clear last line on the progress path (Unfinished: / 未完成:…).
  • Display only — does not change src/safety, tool scheduling, or default permissions.

Depends on O98 (#94)

Full unfinished exit-code / false-success gate is owned by O98 (#94). This PR lands the progress heartbeat + unfinished footer on the progress path and can merge independently while #94 is still open.

When/if O98 is present, O99 only reads run-outcome for display alignment; it does not own RunOutcome (completed|incomplete|verify_failed|blocked|unverified), formatOutcomeLine, or noteGoalVerifyResult. Do not treat progress lines as a success signal. Once #94 lands, unfinished / false-success exit codes are complete end-to-end.

Test plan

  • node --test test/o99-progress.spec.mjs → 13/13 pass
  • Related: cli-output + output-renderer-edit-diff → 15 pass; cli-headless-json-contract + background-completion-user-visible → 2 pass; oneshot-cancellation → 1 pass
  • npm run check (format / lint / typecheck) → green
  • Revert-red: checkout base src/, delete run-progress.ts, rebuild → 1 pass / 12 fail (only the main-green detail-mode guard stays green)
  • Retargeted tui-run-state + tui-shell to expect real tool progress in the live spinner (follow-up commit 0e3ef243)
  • Full npm test after TUI retarget (prior full run stopped on the old live-slogan assert; re-run pending CI)
  • UX: O90 same prompt under --print ≥5 min, stderr 60s window check (post-merge)

Files

File Role
src/cli/run-progress.ts New progress module
src/cli/output.ts text --print tracker; unfinished last line; drop empty working…
src/cli/oneshot.ts json/stream-json stderr progress
src/cli/print.ts tool_progress → no stdout events
src/cli/tui/transcript.ts Real progress copy; drop rotating verbs
src/cli/tui/render-bridge.ts tool_progress refreshes toolLine
src/core/agent/moss-agent-types.ts tool_progress event
src/core/agent/moss-agent-loop-adapter.ts Map tool_execution_progress
test/o99-progress.spec.mjs Directed red/green tests
test/cli-output.spec.mjs turn≥3 no longer expects working…

Base: 58c9e3d6 (post-O94 #93). Head: 0e3ef243. No src/safety changes.

Emit real progress at least every 60s on TUI and --print (stderr only):
tool start/end summaries, long-tool heartbeats via tool_progress, and
thinking-wait lines. Map existing tool_execution_progress heartbeats;
no empty working… slogans; unfinished runs get a clear last line on the
progress path (full false-success exit-code gate depends on O98/#94).
Display only — no safety/scheduling change.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

Live spinner now shows the in-flight tool summary instead of Working….
Update tui-run-state and tui-shell assertions; narrow panes may clip
token/queue tails after the tool line.
@QiaolongLi1201

Copy link
Copy Markdown
Collaborator Author

Superseded by fix/o99-progress-v2 (rebased onto main adf2d987 with O98 run-outcome wired; avoid force-push on fix/o99-progress). New PR opened from v2.

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