Repository navigation
feat(cli): O99 show real progress during long runs (wired to O98) - #96
Merged
Merged
Conversation
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.
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.
Consume resolveRunOutcome + formatOutcomeLine on the progress path (no second outcome vocabulary). Unfinished stopReasons → Incomplete/ 未完成 via O98; honest complete → non-empty 完成/Completed. Exit codes remain owned by oneshot's O98 resolveRunOutcome (now on main).
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
4 of 6 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
O99 — show real progress during long runs so users do not think Moss is hung and hit Ctrl+C.
--print(stderr only for print; stdout keeps the final answer).tool_progressheartbeats → thinking-wait lines (正在推理,已等待 Ns/ English equivalent) when the model is silent ≥30s.tool_execution_progressintoMossAgentEvent.tool_progress(previously dropped).working…/ rotating slogans; identical lines do not stack ≥3 times.src/safety, tool scheduling, or default permissions.O98 (#94) is on main and wired
#94 merged to main as
adf2d987. This branch is rebased onto that tip (fix/o99-progress-v2, replaces #95 headfix/o99-progressto avoid force-push).Progress-path unfinished/completion footer now read-only consumes O98:
resolveRunOutcome+formatOutcomeLinefromsrc/cli/run-outcome.tscompleted | incomplete | verify_failed | blocked | unverifiedformatOutcomeLinealways non-empty (完成:…/Incomplete:/未完成:…/ …)noteRunCompletionEventinside the progress tracker; helpersresolveProgressOutcome/formatProgressOutcomeLineinsrc/cli/run-progress.tsresolveRunOutcome(unfinished → non-0; no half-progress + exit 0)--printprogress stays on stderr; stdout final answer (+ O98 conclusion line from oneshot)Do not treat progress heartbeats as a success signal.
Test plan
node --test test/o99-progress.spec.mjs test/run-completion-o98.spec.mjs→ 14/14 pass (13 O99 + O98 suite)cli-output+output-renderer-edit-diff+cli-headless-json-contract+oneshot-cancellation→ 4/4 passnpm run check(format / lint / typecheck) → greennpm test/ CI--print≥5 min, stderr 60s window check (post-merge)Files
src/cli/run-progress.tsformatOutcomeLinesrc/cli/output.ts--printtracker; unfinished last line usesformatProgressOutcomeLinesrc/cli/oneshot.tssrc/cli/print.tstool_progress→ no stdout eventssrc/cli/tui/transcript.tssrc/cli/tui/render-bridge.tstool_progressrefreshes toolLinesrc/core/agent/moss-agent-types.tstool_progresseventsrc/core/agent/moss-agent-loop-adapter.tstool_execution_progresstest/o99-progress.spec.mjsBase:
adf2d987(post-O98 #94). Head:4a818669. Nosrc/safetychanges. Do not merge until QA/UX sign.Supersedes #95 (
fix/o99-progress@0e3ef243).