f1180f6053
Root cause: manifest-based Dockerfile created the home directory and chowned only the home root. Files/directories copied from /etc/skel by useradd -m (or created later by root) remained root-owned, so apps like ranger failed when writing to ~/.config. Changes: - manifest_compiler.py: recursive chown of the home directory after useradd so /etc/skel contents are owned by the container user - Pre-create .config, .local/share, .cache and chown them to the user so first-run apps have writable directories immediately - Add unit test verifying the Dockerfile emits the expected user/home setup and config directory creation Quality gates: py_compile all backend files pass, test file compiles, tsc --noEmit pass, npm run build pass, 82/82 web tests pass Note: pytest not available in this shell; backend unit test was not executed but follows existing project conventions.