kubestronaut-sim/CHANGELOG.md
vumas3r a87668c183 docs: add CHANGELOG.md covering every release so far
Add a changelog from the first release (2026.10.12.1) up to
2026.10.15.3, newest first, with Added/Changed/Removed/Fixed sections
and the commit behind each entry. List dark mode under 2026.10.15.3,
since it shipped without a version bump.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JZPd3GGWyxTgAkL6a4gAJz
2026-10-15 17:42:21 -06:00

5.8 KiB

Changelog

Notable changes to kubestronaut-sim, newest first. A version is the VERSION string in ksim (year.month.day.n); ./ksim help and the top bar of the web page show the one you are running. Every entry names the commit it came in.

2026.10.15.3 — 2026-10-15

Added

  • Browser UI in the style of CK-X (bab85d1), itself modelled on the Linux Foundation exam UI. Written from scratch, with nothing loaded from the network.
    • Landing page. The track switch sits in the top bar. Start exam opens a dialog to pick the session: the next step on the path, an objective, a domain, the next domain, the whole bank, tasks of your choice, a simulator set or a full exam, with or without hard mode. The full exam warns while a domain has not been drilled yet. Below the dialog button come the path, a card per domain, and every objective with its notes and skip links. While a session is prepared, an overlay shows the clusters' progress and log; it comes back if the page is reloaded meanwhile.
    • Exam screen. A dark top bar holds the clock and three menus: Exam Interface (fullscreen, panel sizes, reconnect the desktop), Exam Controls (submit, pause, restart the clock, terminate the session) and Exam Information (exam instructions, Kubernetes docs, history). The light question panel has < Question N of M >, with flags and grades marked. Each task is headed Solve this question on instance: ssh host, and ends with Flag for review, Satisfied with answer → and, in drills, Check this task. The remote desktop sits beside it, with reconnect and fullscreen buttons and a divider you can drag.
    • Results page. Points, pass or fail, bars per domain, every task's checks and reference solution, View answers, Drill what I missed, Review tasks and History.
    • A session started in the browser opens a "Ready to begin" dialog, and its Start puts the full time on the clock.
  • Terminate session and Delete the hosts (bab85d1), backed by POST /api/terminate. An open session ends ungraded and nothing is recorded, as with ./ksim abort; a finished session only loses its hosts. Either way, only that session's hosts are deleted. The session payload now says whether a session was aborted.
  • Dark mode (db2575b): ◐ Auto (your system's setting, the default), ☀ Light or ☾ Dark. The switch is in the landing page's top bar, the Exam Interface menu and on the results page. The browser keeps the choice and applies it before the page draws. This came without a version bump.

Changed

  • The landing page, exam screen and results page replace the lobby overlay, the number rail with its task pane, and the old results overlay. The browser remembers hard mode and the width of the question panel.

2026.10.15.2 — 2026-10-15

Added

  • ./ksim restart and a Restart clock button (c244bd9). The session's full time goes back on the clock and starts running; the hosts, the work on them, results, flags and notes stay. Like pause, it is recorded nowhere: the attempt's time used counts from the restart. A submitted session refuses it. The button is backed by POST /api/restart.

2026.10.15.1 — 2026-10-15

Removed

  • Study mode (c266eeb): there are no more untimed sessions with the reference solutions open from the start, and ./ksim study is gone. Every session runs against the clock.

Changed

  • The path is objective drills against the clock, then a mock, then the fixed simulator sets. An objective is done when every task passed on its latest timed attempt; the "studied" stage and its ~ mark are gone. ./ksim next always drills, and the lobby's "Study mode" became "Drill an objective".
  • study-<track>.json keeps your focus, the domains you marked known and when each objective was done. Results of old study sessions stay in it, read by nothing.

Added

Work from 2026-10-13, first committed here:

  • ./ksim skip / unskip, and the lobby's "I know this — skip it" links. They mark a domain or an objective as known, so the path, the drill with no argument and drill all leave it out. A mock still draws from every domain.
  • DOMAIN:N picks N tasks of a domain spread over its objectives: ./ksim drill OBS:3, or ./ksim next OBS:3 to add them to the next step.
  • A command with neither --track nor KSIM_TRACK is for the track whose session is under way. ./ksim show says where a task's host resolves.

Fixed

  • CKAD Q60: its check now says which file holds which run's output.

2026.10.12.1 — 2026-10-13

The first release (f3d0e53), grown out of cka-sim.

  • One host per task. Each task gets a kind (kubeadm) cluster in rootless podman, with real etcd, a static-pod control plane and a systemd kubelet. You reach it with ssh <host> from a remote desktop in the browser (XFCE, a terminal, Firefox limited to the documentation the exam allows).
  • CKS hosts carry kube-bench, trivy, kubesec, kube-linter, bom, cosign, istioctl, gVisor and Kubernetes from apt packages. The Falco and AppArmor tasks run on QEMU/KVM Ubuntu VMs.
  • A pull-through image cache (ksim-registry) keeps sessions under Docker Hub's pull limit.
  • Task banks: CKA 131, CKAD 105 and CKS 110 tasks, with at least 17 pool tasks in every domain. Each track comes with its curriculum, study notes, reference solutions and scripted solutions.
  • Drills, full mocks with hard mode, the fixed simulator sets (CKA C and D, CKAD A), a curriculum path with study mode, attempt history and weak spots.
  • ./ksim coverage and ./ksim audit. All 346 tasks pass the audit: each seeds cleanly, scores nothing untouched and reaches full marks with its scripted solution.

The repository's initial commit (3d7605c) holds the licence and a stub README.