feat: implement configurable tool container home directory
- 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.
This commit is contained in:
@@ -4,17 +4,17 @@ dir: openspec/tasks
|
||||
index: openspec/tasks/.pi-map.index.md
|
||||
|
||||
## role
|
||||
Technical specification and task tracking directory for planned engineering improvements across the project's container runtime, workspace management, and developer tooling systems.
|
||||
Contains technical specification documents tracking planned features and architectural improvements for the project.
|
||||
## files
|
||||
- config-profile-multi-repo-mounts.md | Technical specification for refactoring git mount configuration to support multiple repository mappings per mount instead of single source/target pairs | dep: git, docker compose, react/typescript, pytest, npm, fastapi
|
||||
- home-path-expansion.md | Defines a technical implementation plan for adding configurable home/workspace directory support to tool containers in an API service. | dep: SQLAlchemy/Alembic, Docker, Docker Compose, Jinja2 templating, pytest, npm/frontend tooling
|
||||
- home-path-expansion.md | Design and implementation plan for adding configurable home/workspace directory support to tool containers in an API application. | dep: SQLAlchemy/Alembic, Docker, Docker Compose, pytest, PostgreSQL, Node.js/npm
|
||||
- mount-specificity-ordering.md | Tracks completion status of a project task for implementing mount specificity ordering in Docker volume handling | dep: docker.py, pytest, tsc
|
||||
- terminal-responsiveness.md | A technical specification document outlining 7 pending tasks to improve web terminal performance through asyncio-native I/O, binary WebSocket frames, WebGL rendering, flow control, and comprehensive benchmarking. | dep: asyncio, WebSocket, xterm-addon-webgl, docker, pytest
|
||||
- tool-definition-manifest.md | A project task specification document defining a multi-PR system for implementing a Tool Definition Manifest System with backend manifest compilation, frontend workshop UI, and legacy migration support. | dep: SQLAlchemy, Alembic, Docker, Docker Compose, FastAPI/REST API, React/TypeScript frontend
|
||||
## arch
|
||||
Markdown-based living documentation pattern using standalone specification files that each capture a discrete technical initiative with implementation plans, completion tracking, and cross-referencing between backend API changes, frontend UI work, and infrastructure migrations.
|
||||
Markdown-based task tracking system using standalone specification documents that each define discrete feature work across backend, frontend, and infrastructure concerns.
|
||||
## tags
|
||||
mount, docker, pytest, tool, manifest, technical, specification, support
|
||||
mount, docker, pytest, tool, manifest, specification, support, docker compose
|
||||
## symbols
|
||||
-
|
||||
## workflows
|
||||
|
||||
Reference in New Issue
Block a user