v0.15.0 — D5 isolation hardening
Summary
D5 isolation hardening cycle:
- Canonical container HOME =
/home/agent(auto-injected via--home), operator-independent and attestable. ApptainerSpec.fakerootopt-in (userns root inside container; host uid unchanged).- Static D5 preflight:
uid != 0(or userns-fakeroot via/proc/self/uid_map) +$HOME == /home/agent. _apptainer_iso_flagshelper centralises the auto-prepend logic (containall / cleanenv / writable-tmpfs / home / fakeroot).- credentials.json bind →
/tmp/sac-claude/+CLAUDE_CONFIG_DIRso SDK auth resolves without$HOMEpollution. - Bind destination validation — parser rejects
~/$VAR/relative with a clear error. sac-base.sifrebuild — ubuntu → agent at UID 1000 (whoami=agent).- ADR relocated to
docs/adr/0001-isolation-hardening.mdwith D5 + network addenda. docs/isolation.md+docs/spec-reference.md+ full-agent example all refreshed.- CI fix: awk regex in
publish-pypi.ymlrelease-notes extraction (was over-escaped).
Install: pip install scitex-agent-container==0.15.0