ddd92e3dd4
- Add ToolType.home_directory column with default /home/user
- Add Alembic migration to add column, set existing rows, and rewrite
/workspace to /home/user/{{WORKSPACE_NAME}} in legacy templates
- Add merge migration fc8f1a20cbf6 to resolve Alembic multiple heads
- Update manifest compiler to honor manifest.home_directory for HOME,
WORKDIR, /workspace symlink, and default repo mount target
- Update legacy dockerfile/compose instance generation to use
tool_type.home_directory
- Thread resolved home_dir through config profile and git mount expansion
- Generate entrypoint permission fixer to chown home/mounts at startup
- Update base.dockerfile with sudo/passwordless sudo for permission fixer
- Add unit tests for manifest compiler, instance service, and migrations
- Add placeholder integration test for container lifecycle
- Update openspec/tasks/home-path-expansion.md task checkboxes
- Update project maps for modified files
Quality gates: py_compile, ruff, mypy, pytest tests/unit (205 passed),
pytest tests/integration (110 passed, 35 skipped). Alembic round-trip
and container lifecycle integration tests require Docker/PostgreSQL.
2.1 KiB
2.1 KiB
. (index)
dir: .
Project Map Protocol
- Read this protocol and the root
.pi-map.index.mdfirst. - Use
index:/map:references to open relevant directory indexes and maps. - Load indexes before rich maps during task-start navigation.
- Read the local rich map and actual source before editing.
- Treat non-empty
## dirtysections in either artifact as stale. - If source and generated artifacts disagree, trust source.
- If map and index disagree, trust neither blindly; verify from source and regenerate the pair.
- After editing source, run
project_map_patchfor each changed file. - Before broad architectural claims or final handoff, run
project_map_validatewhen freshness matters.
Trust boundary: index routes, map orients, source decides.
role
A self-hosted web-based project management and Git repository platform with OAuth2 authentication, designed for deployment via Docker Compose with Traefik reverse proxy.
parent
children
- .atl index: .atl/.pi-map.index.md map: .atl/.pi-map.md
- .claude index: .claude/.pi-map.index.md map: .claude/.pi-map.md
- .opencode index: .opencode/.pi-map.index.md map: .opencode/.pi-map.md
- .pi index: .pi/.pi-map.index.md map: .pi/.pi-map.md
- .sisyphus index: .sisyphus/.pi-map.index.md map: .sisyphus/.pi-map.md
- .stoneforge index: .stoneforge/.pi-map.index.md map: .stoneforge/.pi-map.md
- apps index: apps/.pi-map.index.md map: apps/.pi-map.md
- docs index: docs/.pi-map.index.md map: docs/.pi-map.md
- e2e index: e2e/.pi-map.index.md map: e2e/.pi-map.md
- minerv3 index: minerv3/.pi-map.index.md map: minerv3/.pi-map.md
- openspec index: openspec/.pi-map.index.md map: openspec/.pi-map.md
- scripts index: scripts/.pi-map.index.md map: scripts/.pi-map.md
- tool-images index: tool-images/.pi-map.index.md map: tool-images/.pi-map.md
- uploads index: uploads/.pi-map.index.md map: uploads/.pi-map.md
files
- .env.example
- .gitignore
- AGENTS.md
- CHANGELOG.md
- Makefile
- README.md
- docker-compose.traefik.yml
- docker-compose.yml
- progress.md
- swap-pane
links
index: ./.pi-map.index.md map: ./.pi-map.md