Skip to content

v0.7.0 — shared UI patterns, section navigation & cron builder fix

Choose a tag to compare

@Nonetss Nonetss released this 10 Aug 08:50
· 240 commits to main since this release

Highlights

Frontend consolidation around shared UI primitives

Resource pages, lists, dialogs, and the navbar were each re-implementing the same interaction decisions. This release introduces shared data-display, form, and layout primitives (plus the small shadcn primitives they need) and reworks every resource surface to use them. Result: more coherent visual language, less duplication, and a single place to evolve interaction behaviour.

Section landings & split routes for Inventory and Jobs

The Inventory root used to be a tabbed page that jumped straight to Devices, and Jobs opened the scheduler directly while run history lived on a separate top-level route. /inventory and /jobs are now proper section landings with a reusable WithSidebar layout, and each gets dedicated sub-routes:

  • Inventory → /inventory/credentials, /inventory/devices, and /inventory/groups (with /inventory kept as a section overview and legacy /credentials redirecting to its canonical home).
  • Jobs → /jobs/scheduler and /jobs/history (with the legacy /history route redirecting to its canonical home).

Site navigation is now metadata-driven with localized labels, icons, descriptions, nested sub-items, and a dropdown for sections with related routes.

Graphical cron builder fixed

The cron schedule dialog would silently reset its schedule mode whenever you edited a minute/hour or weekday field, which made it feel broken when tweaking an existing schedule. Editing time fields now leaves the frequency choice stable, and the hour/minute and weekday controls are now dedicated NumberStepper and SegmentedPicker primitives — building a schedule visually behaves predictably.

Run consoles get jump-to-latest

All run consoles (playbook, command, script, and job detail) share a new jump-to-latest control with sticky-tail scroll behaviour, so following a live run no longer requires manual scrolling.

Backend ↔ runner service: response types & event handling

The gRPC runner service got updated response types and a refactor of its event handling across the Python service, the generated TypeScript stubs, and the run.proto contract.

Other changes

  • Centralise every lucide icon behind a semantic registry keyed by intent (actions, controls, resources, status, scheduling, …) so feature code depends on names, not on a particular icon library.
  • Nest Credentials under Inventory navigation and route it through the shared primitives.
  • Use semantic colours for play recap outcomes and tidy run-status metadata formatting.
  • Ignore .agents/ and .claude/ directories and configure VS Code to format proto files via the .codex tooling.