"mounts": [
"source=${localWorkspaceFolder}/..,target=${localWorkspaceFolder}/..,type=bind,consistency=cached",
"source=${localEnv:HOME}/.config/opencode,target=/home/ftuser/.config/opencode,type=bind,consistency=cached",
- "source=${localEnv:HOME}/.config/gh,target=/home/ftuser/.config/gh,type=bind,consistency=cached",
"source=${localEnv:HOME}/.local/share/opencode,target=/home/ftuser/.local/share/opencode,type=bind,consistency=cached",
"source=${localEnv:HOME}/.local/state/opencode,target=/home/ftuser/.local/state/opencode,type=bind,consistency=cached"
],
"version": "latest"
}
},
- "postCreateCommand": "PARENT=\"${containerWorkspaceFolder}/..\" && CWF=\"${containerWorkspaceFolder}\" && if [ \"${CWF}\" != \"${PARENT}\" ]; then [ ! -e \"${CWF}/.serena\" ] && ln -sf \"${PARENT}/.serena\" \"${CWF}/.serena\" || true; [ ! -e \"${CWF}/openspec\" ] && ln -sf \"${PARENT}/openspec\" \"${CWF}/openspec\" || true; [ ! -e \"${CWF}/.clinerules\" ] && ln -sf \"${PARENT}/.clinerules\" \"${CWF}/.clinerules\" || true; fi; nix --extra-experimental-features 'nix-command flakes' profile add 'nixpkgs#ripgrep' 'nixpkgs#delta' 'nixpkgs#btop' || true",
+ "postCreateCommand": "PARENT=\"${containerWorkspaceFolder}/..\" && CWF=\"${containerWorkspaceFolder}\" && if [ \"${CWF}\" != \"${PARENT}\" ]; then [ ! -e \"${CWF}/.serena\" ] && ln -sf \"${PARENT}/.serena\" \"${CWF}/.serena\" || true; [ ! -e \"${CWF}/openspec\" ] && ln -sf \"${PARENT}/openspec\" \"${CWF}/openspec\" || true; [ ! -e \"${CWF}/.clinerules\" ] && ln -sf \"${PARENT}/.clinerules\" \"${CWF}/.clinerules\" || true; fi; nix --extra-experimental-features 'nix-command flakes' profile add 'nixpkgs#ripgrep' 'nixpkgs#delta' 'nixpkgs#btop' || true; mkdir -p \"$HOME/.config/gh\" && rm -f \"$HOME/.config/gh/config.yml\" && printf 'git_protocol: ssh\\n' > \"$HOME/.config/gh/config.yml\"",
"postStartCommand": "npm install -g @fission-ai/openspec@latest opencode-ai@latest && pip install --user -r ${containerWorkspaceFolder}/.devcontainer/requirements-dev.txt",
"customizations": {
"vscode": {
"mounts": [
"source=${localWorkspaceFolder}/..,target=${localWorkspaceFolder}/..,type=bind,consistency=cached",
"source=${localEnv:HOME}/.config/opencode,target=/home/ftuser/.config/opencode,type=bind,consistency=cached",
- "source=${localEnv:HOME}/.config/gh,target=/home/ftuser/.config/gh,type=bind,consistency=cached",
"source=${localEnv:HOME}/.local/share/opencode,target=/home/ftuser/.local/share/opencode,type=bind,consistency=cached",
"source=${localEnv:HOME}/.local/state/opencode,target=/home/ftuser/.local/state/opencode,type=bind,consistency=cached"
],
"version": "latest"
}
},
- "postCreateCommand": "PARENT=\"${containerWorkspaceFolder}/..\" && CWF=\"${containerWorkspaceFolder}\" && if [ \"${CWF}\" != \"${PARENT}\" ]; then [ ! -e \"${CWF}/.serena\" ] && ln -sf \"${PARENT}/.serena\" \"${CWF}/.serena\" || true; [ ! -e \"${CWF}/openspec\" ] && ln -sf \"${PARENT}/openspec\" \"${CWF}/openspec\" || true; [ ! -e \"${CWF}/.clinerules\" ] && ln -sf \"${PARENT}/.clinerules\" \"${CWF}/.clinerules\" || true; fi; nix --extra-experimental-features 'nix-command flakes' profile add 'nixpkgs#ripgrep' 'nixpkgs#delta' 'nixpkgs#btop' || true",
+ "postCreateCommand": "PARENT=\"${containerWorkspaceFolder}/..\" && CWF=\"${containerWorkspaceFolder}\" && if [ \"${CWF}\" != \"${PARENT}\" ]; then [ ! -e \"${CWF}/.serena\" ] && ln -sf \"${PARENT}/.serena\" \"${CWF}/.serena\" || true; [ ! -e \"${CWF}/openspec\" ] && ln -sf \"${PARENT}/openspec\" \"${CWF}/openspec\" || true; [ ! -e \"${CWF}/.clinerules\" ] && ln -sf \"${PARENT}/.clinerules\" \"${CWF}/.clinerules\" || true; fi; nix --extra-experimental-features 'nix-command flakes' profile add 'nixpkgs#ripgrep' 'nixpkgs#delta' 'nixpkgs#btop' || true; mkdir -p \"$HOME/.config/gh\" && rm -f \"$HOME/.config/gh/config.yml\" && printf 'git_protocol: ssh\\n' > \"$HOME/.config/gh/config.yml\"",
"postStartCommand": "npm install -g @fission-ai/openspec@latest opencode-ai@latest && pip install --user -r ${containerWorkspaceFolder}/.devcontainer/requirements-dev.txt",
"customizations": {
"vscode": {