fix(modules-16,18,19,20): runner receipt on red, runnable M20 Part A, container caveats

- M19: `if: always()` on the "where did this run?" receipt step only (GitLab
  when: always noted) so it prints even when lint/test fail; real steps unchanged.
- M20: mark Part A optional with its runtime prereq (npx/Node or uvx/uv) named;
  Part B/C (Python SDK) carry the load-bearing path. Reconciled objectives/checks.
- M16: native-Linux bind-mount caveat (root-owned __pycache__; PYTHONDONTWRITEBYTECODE).
- M16/M18: prerequisite that the container engine/daemon must be RUNNING
  (docker --version is false reassurance; docker info; podman machine start).

Closes #41
Closes #42
Closes #45
Closes #46

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TfzV5QvtPDz8LJS3Pu5VLT
This commit is contained in:
2026-06-22 17:20:22 -04:00
parent 6691755060
commit 5166d58c20
5 changed files with 51 additions and 15 deletions
@@ -44,7 +44,11 @@ jobs:
run: pytest -q
# The point of THIS workflow: make the runner identify itself.
# if: always() so the receipt prints even when Lint/Test fail above — a diagnostic step
# shouldn't vanish on a red build. The job still reports red; only this step is unconditional.
# (On GitLab CI the same idea is `when: always` on the job/step.)
- name: Where did this run?
if: always()
shell: bash
run: |
echo "=== runner identity ==="