47de2a0133
The previous ordering checked SUDO before checking if the process was already running as root. When Docker starts the container with a non-root user, SUDO may be empty, but the real fix is that the entrypoint should try root first (e.g. when the image is started as root) and only then fall back to sudo. - Reorder symlink creation logic: root first, then sudo, then best-effort - Update unit test to assert root is checked before sudo Quality gates: - pytest tests/unit: 208 passed - ruff: clean on changed files - mypy: clean on changed files
83 lines
2.2 KiB
Markdown
83 lines
2.2 KiB
Markdown
# . (index)
|
|
dir: .
|
|
|
|
## Project Map Protocol
|
|
|
|
1. Read this protocol and the root `.pi-map.index.md` first.
|
|
2. Use `index:` / `map:` references to open relevant directory indexes and maps.
|
|
3. Load indexes before rich maps during task-start navigation.
|
|
4. Read the local rich map and actual source before editing.
|
|
5. Treat non-empty `## dirty` sections in either artifact as stale.
|
|
6. If source and generated artifacts disagree, trust source.
|
|
7. If map and index disagree, trust neither blindly; verify from source and regenerate the pair.
|
|
8. After editing source, run `project_map_patch` for each changed file.
|
|
9. Before broad architectural claims or final handoff, run `project_map_validate` when freshness matters.
|
|
|
|
Trust boundary: index routes, map orients, source decides.
|
|
|
|
## role
|
|
Infrastructure and deployment configuration for a self-hosted project management platform with multi-service Docker orchestration, SSO integration, and AI agent development guidelines.
|
|
## 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
|
|
## workflows
|
|
-
|
|
## dirty
|
|
-
|