Skip to content

Refine app operator UX#400

Merged
kacy merged 1 commit intomainfrom
feat/app-operator-ux-phase6
Apr 11, 2026
Merged

Refine app operator UX#400
kacy merged 1 commit intomainfrom
feat/app-operator-ux-phase6

Conversation

@kacy
Copy link
Copy Markdown
Owner

@kacy kacy commented Apr 11, 2026

Summary

This refines the app-first operator surface so rollback, status, apps, and history behave consistently across local and remote usage.

What Changed

  • made yoq rollback --app perform a real rollback apply locally instead of only printing the stored snapshot
  • added --print for non-mutating local and remote rollback snapshot inspection
  • defaulted app rollback target selection to the previous successful release when --release is omitted
  • added canonical nested JSON views for app status and history (current_release, previous_successful_release, workloads, training_runtime / release)
  • added yoq apps rollout filters: --status, --failed, and --in-progress
  • tightened app history/status text output with clearer release markers and rollout summaries
  • updated operator docs and shell completion/help text to match the new app-first behavior

Why

The app control plane was already unified underneath, but the operator UX still had one major asymmetry: local app rollback printed config while remote rollback re-applied releases. Status, apps, and history also relied too much on top-level fields and message text. This closes that gap and gives the app-first surfaces one clearer day-2 workflow.

Validation

Ran serially with YOQ_SKIP_SLOW_TESTS=1:

  • zig build test -Doptimize=ReleaseSafe -Dtest-filter='loadLocalRollbackSnapshot preserves service runtime fields while keeping original snapshot'
  • zig build test -Doptimize=ReleaseSafe -Dtest-filter='formatAppStatusResponse summarizes latest release'
  • zig build test -Doptimize=ReleaseSafe -Dtest-filter='writeHistoryJsonObject round-trips through remote parser'
  • zig build test -Doptimize=ReleaseSafe -Dtest-filter='app rollback defaults to the previous successful release when release id is omitted'
  • zig build test -Doptimize=ReleaseSafe -Dtest-filter='writeAppStatusJsonObject includes nested release and workload views'
  • zig build test -Doptimize=ReleaseSafe -Dtest-filter='app rollback print returns the selected snapshot without creating a new release'
  • zig build test -Doptimize=ReleaseSafe -Dtest-filter='appMatchesFilters applies failed and in-progress filters'
  • zig build test -Doptimize=ReleaseSafe -Dtest-filter='writeHistoryJsonObject includes nested release markers'
  • zig build test -Doptimize=ReleaseSafe -Dtest-filter='writeAppStatusJsonObject round-trips through remote parser'
  • git diff --check

Risk

The main remaining gap is broader end-to-end local rollback integration coverage against a live running app. The rollback path is wired and covered through focused unit and route-flow tests, but I did not run a wider live-session smoke test in this slice.

@kacy kacy marked this pull request as ready for review April 11, 2026 01:17
@kacy kacy merged commit 67aa52d into main Apr 11, 2026
2 of 7 checks passed
@kacy kacy deleted the feat/app-operator-ux-phase6 branch April 11, 2026 01:17
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