labctl 1.1.0
A usability-focused release: the full "Autoscaling Under Load" UX audit remediation plus platform, observability, application, and lab-reset improvements — and the new SnowOps Labs brand. Each artifact below is the labctl CLI with the web UI embedded — one self-contained binary per platform.
Highlights
Applications
- Application Details page — project overview, detected tech stack, and the real Dockerfile + Helm chart (with in-repo paths) so you can understand and tinker with how each app is built and deployed.
app deploynow imports the local image into k3d/kind (building it first if missing) before deploying — no more ImagePullBackOff on a fresh cluster.
Platform
- Fixed the component Details view crashing ("Cannot read properties of null (reading 'length')") for most tools.
- Install commands now resolve
$NAMESPACE/$DOMAIN_SUFFIX/$SCRIPT_DIR/$VALUES_FILEinline and show a variables legend explaining every value (secrets included). - New "Configuring Grafana" guide (login, pre-provisioned datasources + UIDs, dashboard provisioning).
Observability
- Application Request Metrics and Autoscaling Under Load dashboards now show data — fixed PromQL label/histogram bugs and pinned the Prometheus datasource UID.
- Chaos Mesh dashboard reachable via a Traefik ingress at
chaos.<domain>— no manual port-forward. - Live HPA state surfaced on the Apps view; app logs open correctly in Grafana Explore.
Scenarios
- Scenarios that set up a platform tool (chaos-mesh, argocd, kyverno, cert-manager) now declare it as a prerequisite, so dependencies are listed and the platform "used in scenarios" links resolve.
- Scenario detail modal renders Objectives, an applyable "how it's implemented" snippet section (paths shown from the repo root), and a checks table with in-UI Verify.
- User-tunable scenario parameters (min/max replicas, thresholds), validated before apply.
Lab reset
- New "Reset lab" button in the UI.
- Reset now deactivates scenarios and incidents (both
labctl lab resetand the top-levellabctl reset), in proper order — no more stale "active" state against a fresh cluster. - Learning progress survives a lab reset and has its own separate reset control.
Brand & docs
- New SnowOps Labs brand identity, logo, and README polish (badges, demo screenshots/GIFs).
- Windows/WSL2 support noted in the README.
Install
Download the archive for your platform below (verify against checksums.txt), or follow the README Quickstart.
Full changelog: v1.0.0...v1.1.0
Commit changelog
Changelog
- 464a7d5: Merge pull request #28 from sagar2395/claude/readme-demo-assets-sus0d5 (@sagar2395)
- fb96823: Merge pull request #29 from sagar2395/claude/readme-demo-assets-sus0d5 (@sagar2395)
- 27be54e: Merge pull request #34 from sagar2395/fix/autoscaling-audit-p0-p1 (@sagar2395)
- e71cc9a: feat(apps): add an application details page (Claude Opus 4.8 noreply@anthropic.com)
- 9cf2a48: feat(reset): UI lab reset, deactivate scenarios/incidents, separate learn reset (Claude Opus 4.8 noreply@anthropic.com)
- 5a725d5: feat(ui): add SnowOps Labs brand identity (@sagar2395)
- 99948ae: fix(ci): deploy env-promotion's prerequisite app in the kind e2e (Claude Opus 4.8 noreply@anthropic.com)
- cd0c681: fix(observability): make app dashboards show data; fix Grafana/chaos UX (Claude Opus 4.8 noreply@anthropic.com)
- 3886357: fix(platform): declare self-installed deps, resolve install vars, reset ordering (Claude Opus 4.8 noreply@anthropic.com)
- 5bf39aa: fix(ui): stop platform detail crash on empty lists; root snippet paths (Claude Opus 4.8 noreply@anthropic.com)
- 3880c84: fix: Making changes during review ( <>)
- cf08032: test(appdetail): raise coverage; fix errcheck on deferred Close (Claude Opus 4.8 noreply@anthropic.com)
- bc852e0: test(ui): pass requestConfirm to Learn in tests (Claude Opus 4.8 noreply@anthropic.com)