v0.5.0
·
83 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Added
- Added a versioned, hash-verified state snapshot format and one shared state CLI for host and Kubernetes backup, validation, process-serialized crash recovery, and failure-injection drills.
- Added semantic-index provenance for corpus, model artifact, vector dimensions, and chunking format, with serialized generation swaps and safe keyword fallback.
- Added a typed domain fixture and portability contract that exercises a second domain across tools, PII policy, A2A, ADK trajectories, and MLflow evaluation.
- Added deterministic learner-exercise contracts, route and source-drift checks, released-URL preservation, rendered accessibility checks, social metadata, and machine-readable course evidence.
- Added five hermetic dependency-profile audits plus repository, license, observability, and container-image checks shared by local tasks and CI.
- Added quarterly freshness evidence with compatibility-hold metadata, reviewed upstream provenance, and issue-based human follow-up.
- Added exact-candidate Platform and Eval workflows plus release qualification, digest-bound image promotion, attestation verification, and cleanup evidence.
- Added least-privilege state-backup resources, Kubernetes policy fixtures, and isolated GKE deployment and teardown guidance.
Changed
- Upgraded the supported stack to current compatible stable releases, including Google ADK 2.6, MLflow 3.15, OpenAI 2.51, spaCy 3.8.14, PyArrow 25, SQLite 3.53.4, K3s 1.36.2, and kubeconform 1.36.
- Constrained Python to 3.13 until the locked ADK and GenAI dependency chain supports 3.14 without runtime warnings.
- Split the learner runtime from model-backed evaluation dependencies so the default installation remains smaller and account-free.
- Made course requirements, costs, dependency pins, task expansions, ports, support boundaries, and release procedures derive from or validate against one repository authority.
- Reworked the capstone around the shipped portability seam and an evidence matrix that distinguishes deterministic proof from learner-owned domain outcomes.
- Restricted GitHub Actions to SHA-pinned, explicitly allowed actions and strengthened branch, tag, environment, CodeQL, Dependabot, secret-scanning, and immutable-release controls.
- Made the optional GCP path use a clean committed source revision, isolated credentials and Kubernetes context, explicit resource inventories, and a plan-before-destroy teardown.
- Made model-backed release evidence retain a whitelisted six-signal verdict, exact run identity, model digest, and scorer versions without prompts, responses, or tool data.
Fixed
- Compatibility-pinned the optional GKE backend to Gemini 3.5 Flash and added a live two-step tool/A2A smoke after the pinned gateway's Vertex function-response filler exposed a Gemini 3.6 failure.
- Rejected future audit schemas before readiness, reads, migrations, or writes and made failed migrations and restores preserve byte-identical input state.
- Prevented stale or partially rebuilt semantic vectors from being presented as current after corpus, model, dimension, or chunker changes.
- Rejected embedding-model alias changes around query or corpus generation before publishing or querying a mismatched vector generation.
- Replaced probabilistic required exercises and broad directory restores with deterministic offline checks, dirty-worktree preflights, and named-file cleanup.
- Closed documentation drift across dependency versions, tool profiles, CLI expansions, route ordering, setup tiers, retrieval behavior, and release evidence.
- Made CI concurrency, permissions, job scopes, diagnostics, and scheduled evidence explicit while keeping all required pull-request gates deterministic.
- Restored App-level policy parity in ADK and MLflow evaluation, made recall, skill loading, and both approval proposals individually required, and prevented failed critical transcripts from becoming cost baselines.
- Upgraded scheduled model evidence to Ollama 0.32.5 with its Linux runner fix, and made a real first inference fail fast while retaining the server diagnostic log.
- Hardened Platform acceptance around isolated DNS, MLflow's measured 2 GiB ceiling, PII-stable backup evidence, fail-fast restore Jobs, and sanitized container diagnostics.
- Made release lookup, run qualification, SPDX attestation matching, image cleanup, and package-index publication retry-safe and fail-closed.
- Made GKE delivery authenticate Docker explicitly, select the exact cluster context, publish only a clean source SHA, and document complete application and infrastructure cleanup.
- Made optional GKE cleanup capture exact CSI handles across both course namespaces, accept a valid empty partial-deploy inventory, and restore only APIs enabled by that lab.
- Made a failed host-observability readiness check tear down its project-scoped containers while preserving named volumes.
- Made the online publication gate resolve root-relative site links, check static anchors, bound request concurrency, isolate LinkedIn's documented bot-blocked profile, and use responsive upstream authorities.
- Corrected the container, release, and publication lessons to match the exact-archive handoff, pre-push SBOM, source-digest evidence, public-index sealing, proof boundaries, and residual-artifact boundary.
Security
- Tightened Kubernetes network policies to exact callers and ports, plus backup-job privileges, non-root images, read-only filesystems, capabilities, seccomp, service-account tokens, and state access.
- Added complete lockfile, history, configuration, container, license, and vulnerability scanning without relying on mutable user-level tool configuration.
- Kept GitHub secret scanning and push protection enabled; repository-plan-dependent advanced validity and non-provider checks remain outside the claimed contract.
Migration and rollback
- Run
mise run install:maintainer, then the completeformat,check,test,scan, andbuildgates after updating an existing checkout. - Existing runtime state is migrated through the versioned state boundary. Take and validate a snapshot before upgrading; future schemas fail closed.
- Roll back source and images together to the previous supported release, then restore only a snapshot whose manifest and schema are accepted by that release.
- The GCP module remains plan-first and project-neutral. Review the saved destroy plan and exact resource inventory before removing an optional lab.