feat: expand ~ and $HOME in mount target paths
- Add expand_container_path() helper that resolves ~/ and $HOME/ prefixes
- Add get_manifest_home_dir() to compute /home/{user.name} or /root from manifest
- Set ENV HOME=... and ENV USER=... in generated Dockerfile for runtime compatibility
- Pass home_dir through instance creation and startup pipeline
- Expand mount targets in apply_resolved_profile() for regular profile mounts
- Expand mapping targets in _resolve_git_mount_mappings() for git mounts
- Expand working_directory and volume targets in _modify_compose_file()
- Update _prepare_manifest_instance to return home_dir alongside image tag
- Fetch tool_type early in start_instance to determine home_dir before profile application
Quality gates: pytest 188 passed, frontend typecheck clean
Addresses: home-path-expansion
This commit is contained in:
@@ -148,7 +148,10 @@ class TestResolveSingleGitMount:
|
||||
async def test_missing_remote_url(self) -> None:
|
||||
"""Git mount without remote_url returns empty list."""
|
||||
result = await _resolve_single_git_mount(
|
||||
MagicMock(), {"mappings": [{"source_path": ".", "target_path": "/app"}]}, "/tmp", None
|
||||
MagicMock(),
|
||||
{"mappings": [{"source_path": ".", "target_path": "/app"}]},
|
||||
"/tmp",
|
||||
None,
|
||||
)
|
||||
assert result == []
|
||||
|
||||
@@ -157,7 +160,10 @@ class TestResolveSingleGitMount:
|
||||
"""Git mount without instance_dir returns empty list."""
|
||||
result = await _resolve_single_git_mount(
|
||||
MagicMock(),
|
||||
{"remote_url": "https://github.com/user/repo.git", "mappings": [{"source_path": ".", "target_path": "/app"}]},
|
||||
{
|
||||
"remote_url": "https://github.com/user/repo.git",
|
||||
"mappings": [{"source_path": ".", "target_path": "/app"}],
|
||||
},
|
||||
None,
|
||||
None,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user