fix(cli): route remaining status output through Fluent - #7499
Conversation
4a90664 to
4a6e9c8
Compare
4a6e9c8 to
3e84db9
Compare
Audacity88
left a comment
There was a problem hiding this comment.
Thanks @silas-qiao. I checked head 3e84db9 against the current PR body, #7099, the linked #5987 context, the status diff, and the visible CI. The Fluent migration itself is moving in the right direction: trace storage, heartbeat, memory, security details, cost tracking, channel status words, and peripherals now resolve through the CLI Fluent path, and the patch is whitespace-clean.
🔴 Blocking — Fixes #7099 would close the Web UI follow-up too early
#7099 is the tracker for the broader zeroclaw status i18n debt, and its acceptance criteria specifically include routing the Web UI status diagnostics from #5987 through the CLI i18n path.
This PR is based on current master, where #5987 is still open, so those Web UI status lines are not present in this diff. The PR body also scopes them out explicitly: "does not reintroduce or change Web UI status lines." That makes this a useful partial slice, but not a complete Fixes #7099 change.
Please either include the Web UI status migration once that code is available on this branch, or adjust the PR body so #7099 stays open for the #5987 follow-up. In practice, that means replacing Fixes #7099 with a non-closing reference such as Related #7099 unless this PR also completes the remaining acceptance criteria.
Once that tracking mismatch is corrected, I expect the code path to be straightforward to re-review.
WareWolf-MoonWall
left a comment
There was a problem hiding this comment.
Re-review: head 3e84db91. Audacity88 has an active CHANGES_REQUESTED — not approving over it per protocol. Commenting to confirm the code quality is sound and the only required change is the issue tracker reference.
✅ The Fluent migration itself is correct
The 19 new Fluent keys in crates/zeroclaw-runtime/locales/en/cli.ftl correctly cover the remaining bare strings: trace storage, heartbeat, memory, security detail lines, cost tracking, channel config words, and peripherals status. Every new t("cli-status-*", fallback) call in src/main.rs is paired with a matching key and the fallback string matches the pre-existing English literal, so missing-key degradation is invisible. The layout and output values are confirmed unchanged by the author's live zeroclaw status run. Validation evidence (fmt, clippy, test, build) is complete and literal.
🔴 Supporting @Audacity88's blocker — change Fixes #7099 to Related #7099
#7099 tracks the full zeroclaw status i18n debt including Web UI status diagnostics from #5987. This PR explicitly scopes out the Web UI lines ("does not reintroduce or change Web UI status lines"). Closing #7099 here would mark that remaining work as done when it isn't. The one-word fix is: replace Fixes #7099 with Related #7099 in the PR body. Once that's updated, this PR should be straightforward to approve.
|
Updated the PR body to use This PR only covers the remaining bare The code in this PR is unchanged. |
@WareWolf-MoonWall @Audacity88 I have updated. Please check it again. |
Audacity88
left a comment
There was a problem hiding this comment.
Re-reviewing head 3e84db91 after the body-only update. I checked the current PR body update, #7099, #5987, my prior request-changes review, WareWolf-MoonWall's comment review, the current diff, and the green CI snapshot.
The update resolves the body-reference blocker from my June 11 review by keeping #7099 and #5987 open as Related references. This approval clears only that blocker; it is not a merge-readiness review.
✅ Resolved — #7099 now stays open for the Web UI/status follow-up
The body now says Linked issue(s): Related #7099. Related #5987., so it no longer claims to close #7099. That matches the actual slice here: this PR routes the remaining current zeroclaw status CLI strings through Fluent, while #7099 can continue tracking the broader status-output i18n debt and the Web UI diagnostic work tied to #5987.
🟢 What looks good — The Fluent migration is a clean focused slice
The code path still looks sound on current head. The new English cli-status-* keys cover the status labels and status words this diff moves out of bare println! strings, and the t(...) / ta(...) fallbacks preserve the existing English output shape when a key is missing. The author-provided status smoke plus green CI are enough for this low-risk CLI i18n slice. I do not see a remaining blocker from my prior review.
singlerider
left a comment
There was a problem hiding this comment.
Reviewed at head 3e84db91 against current master. Clean, focused i18n slice. Approving.
🟢 The Fluent migration follows the localization rule
The diff replaces the remaining bare println! literals in zeroclaw status with t() / ta() Fluent calls — trace storage, heartbeat cadence, memory, allowed roots/commands, and the status words (on/off/disabled/(none)) — and adds 19 matching cli-status-* keys to crates/zeroclaw-runtime/locales/en/cli.ftl. Each call carries an English fallback (e.g. t("cli-status-word-disabled", "disabled")), so the existing English output shape is preserved when a key is missing. That is exactly the AGENTS.md localization pattern — user-facing strings routed through Fluent rather than hardcoded literals.
🟢 Scope and references are honest
This is correctly scoped to the current zeroclaw status strings, with the body using Related #7099 / Related #5987 rather than claiming to close the broader status-output i18n / Web UI diagnostic debt — which @Audacity88's prior block was about and which is now resolved. CI is green and the branch is MERGEABLE / CLEAN.
@Audacity88 cleared his earlier changes-requested and approved at this head. Approving — the strings move out of bare literals into Fluent with safe fallbacks, the scope is a clean slice, and the references are accurate.
|
@silas-qiao this is approved and the prior tracking-reference issue is resolved. It's currently blocked only because Could you merge current |
# Conflicts: # src/main.rs
Summary
masterzeroclaw statusCLI strings through the existing Fluent/i18n path insrc/main.rs.cli-status-*Fluent keys needed for trace storage, heartbeat, memory, security detail lines, cost tracking, channel configuration words, and peripherals status.statusoutput layout and behavior; this patch only changes where user-facing strings come from.zeroclaw statuslayout, does not reintroduce or change Web UI status lines, and does not add non-English translations in this pass.statusoutput path and English CLI Fluent resources.enhancement,priority:p3,coreValidation Evidence (required)
cargo fmt --all -- --check cargo clippy --all-targets -- -D warnings cargo testzeroclaw statusoutput still renders with the same layout and values while the previously bare strings now resolve through Fluent-backed keys. Did not verify non-English locale overrides in this pass; missing locale-specific keys fall back to English by design.cargo testevidence in this note is user-run rather than captured in this session.Security & Privacy Impact (required)
NoNoNoNoYes, describe the risk and mitigation:Compatibility (required)
YesNoNoorYesto either: exact upgrade steps for existing users: None.Rollback (required for
risk: mediumandrisk: high)Low-risk PR:
git revert <sha>is sufficient.Supersede Attribution (required only when
Supersedes #is used)#<pr> by @<author>, one per line):Co-authored-bytrailers added in commit messages for incorporated contributors? (Yes/No)No, why (inspiration-only, no direct code/design carry-over):