bd94cc9bbf
The previous commit moved the pi-agent repo mount from /workspace to
/home/user/{repo_name}. This exposed a permission bug: the Dockerfile
creates /workspace as a root-owned symlink in the image, and the
non-root entrypoint could not replace it because / is owned by root.
- Update compile_entrypoint to recreate /workspace via sudo when running
as the container user, or directly when running as root
- Add unit test covering sudo/root symlink creation
- Update OpenSpec change docs with the additional root cause
Quality gates:
- pytest tests/unit: 208 passed
- ruff: clean on changed files
- mypy: clean on changed files
- alembic heads: single head
52 lines
1.4 KiB
Markdown
52 lines
1.4 KiB
Markdown
# apps/api (index)
|
|
dir: apps/api
|
|
|
|
## role
|
|
FastAPI backend API that manages projects, git repositories, and development tools via Docker instances with PostgreSQL database and async Alembic migrations.
|
|
## parent
|
|
index: apps/.pi-map.index.md
|
|
map: apps/.pi-map.md
|
|
## children
|
|
- apps/api/.mypy_cache
|
|
index: apps/api/.mypy_cache/.pi-map.index.md
|
|
map: apps/api/.mypy_cache/.pi-map.md
|
|
- apps/api/.pi-lens
|
|
index: apps/api/.pi-lens/.pi-map.index.md
|
|
map: apps/api/.pi-lens/.pi-map.md
|
|
- apps/api/.pytest_cache
|
|
index: apps/api/.pytest_cache/.pi-map.index.md
|
|
map: apps/api/.pytest_cache/.pi-map.md
|
|
- apps/api/.ruff_cache
|
|
index: apps/api/.ruff_cache/.pi-map.index.md
|
|
map: apps/api/.ruff_cache/.pi-map.md
|
|
- apps/api/.venv-test
|
|
index: apps/api/.venv-test/.pi-map.index.md
|
|
map: apps/api/.venv-test/.pi-map.md
|
|
- apps/api/alembic
|
|
index: apps/api/alembic/.pi-map.index.md
|
|
map: apps/api/alembic/.pi-map.md
|
|
- apps/api/src
|
|
index: apps/api/src/.pi-map.index.md
|
|
map: apps/api/src/.pi-map.md
|
|
- apps/api/tests
|
|
index: apps/api/tests/.pi-map.index.md
|
|
map: apps/api/tests/.pi-map.md
|
|
- apps/api/uploads
|
|
index: apps/api/uploads/.pi-map.index.md
|
|
map: apps/api/uploads/.pi-map.md
|
|
## files
|
|
- .dockerignore
|
|
- Dockerfile
|
|
- README.md
|
|
- alembic.ini
|
|
- pyproject.toml
|
|
- uv.lock
|
|
- wait-for-db.sh
|
|
## links
|
|
index: apps/api/.pi-map.index.md
|
|
map: apps/api/.pi-map.md
|
|
## workflows
|
|
-
|
|
## dirty
|
|
-
|