Skip to content

SYN-1388: Add devcontainer.json declarative env definition to dev-sandbox#190

Open
JoshuaPurtell wants to merge 5 commits intomainfrom
agent/syn-1388
Open

SYN-1388: Add devcontainer.json declarative env definition to dev-sandbox#190
JoshuaPurtell wants to merge 5 commits intomainfrom
agent/syn-1388

Conversation

@JoshuaPurtell
Copy link
Collaborator

@JoshuaPurtell JoshuaPurtell commented Feb 19, 2026

Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 potential issue.

View 3 additional findings in Devin Review.

Open in Devin Review

"workspaceMount": "source=${localWorkspaceFolder},target=/workspace/synth-ai,type=bind",
"remoteUser": "root",
"build": {
"dockerfile": "Dockerfile",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Dockerfile path resolves to non-existent .devcontainer/Dockerfile

The devcontainer.json specifies "dockerfile": "Dockerfile" at line 8. Per the devcontainer spec, the dockerfile path is resolved relative to the devcontainer.json file, which means it resolves to .devcontainer/Dockerfile. However, no such file exists in the .devcontainer/ directory — only devcontainer.json is present.

Root Cause and Fix

The intent is to reuse the Dockerfile from the sibling synth-bazel/dev-sandbox repo (as stated in the README at README.md:245). The build.context is correctly set to "../../synth-bazel/dev-sandbox" (resolving to ../synth-bazel/dev-sandbox/ from the repo root), but the dockerfile field needs to point to the Dockerfile within that context directory.

The dockerfile should be "../../synth-bazel/dev-sandbox/Dockerfile" to correctly reference the Dockerfile in the sibling repo, relative to the devcontainer.json location.

Impact: Running devcontainer up --workspace-folder . (as documented in README.md:250) will fail because Docker cannot find the Dockerfile, making the entire dev container setup non-functional.

Suggested change
"dockerfile": "Dockerfile",
"dockerfile": "../../synth-bazel/dev-sandbox/Dockerfile",
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Feb 19, 2026

Greptile Summary

Added declarative devcontainer configuration that standardizes dev-sandbox setup across Colima and Daytona environments. The .devcontainer/devcontainer.json references an external Dockerfile from the sibling synth-bazel repo, sets up the workspace at /workspace/synth-ai, and runs the enhanced setup.sh script.

  • New .devcontainer/devcontainer.json provides declarative environment spec reusing synth-bazel/dev-sandbox Dockerfile
  • Updated .sandbox/setup.sh to honor WORKSPACE_DIR environment variable with proper quoting
  • Added comprehensive README documentation covering Colima bootstrapping, Daytona integration, and multi-repo extension patterns

One note: the devcontainer build relies on ../../synth-bazel/dev-sandbox/Dockerfile existing at that relative path, which requires the sibling repo to be checked out alongside this one.

Confidence Score: 4/5

  • Safe to merge with verification that external Dockerfile dependency exists
  • Changes are well-structured and properly implement devcontainer spec with improved shell script using proper variable quoting and defaults. Documentation is thorough. Only concern is the external dependency on ../../synth-bazel/dev-sandbox/Dockerfile which requires the sibling repo to be present.
  • Verify .devcontainer/devcontainer.json build context path points to existing Dockerfile

Important Files Changed

Filename Overview
.devcontainer/devcontainer.json New devcontainer config added with external Dockerfile reference; requires sibling synth-bazel repo at ../../synth-bazel/dev-sandbox
.sandbox/setup.sh Improved to use WORKSPACE_DIR env var with proper quoting and default value
README.md Added comprehensive documentation for dev-sandbox setup, Colima, Daytona, and multi-repo usage

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[devcontainer up] --> B[Load devcontainer.json]
    B --> C[Build from ../../synth-bazel/dev-sandbox/Dockerfile]
    C --> D[Mount workspace at /workspace/synth-ai]
    D --> E[Set WORKSPACE_DIR env var]
    E --> F[Run postCreateCommand]
    F --> G[Execute ./.sandbox/setup.sh]
    G --> H{Check for uv command}
    H -->|Found| I[cd $WORKSPACE_DIR]
    I --> J[git config safe.directory]
    J --> K[uv sync --frozen]
    K --> L[maturin develop --release --uv]
    L --> M[Dev sandbox ready]
    H -->|Not found| N[Exit with error]
Loading

Last reviewed commit: 5349378

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3 files reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

Comment on lines +8 to +9
"dockerfile": "Dockerfile",
"context": "../../synth-bazel/dev-sandbox"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verify synth-bazel/dev-sandbox/Dockerfile exists at this relative path - devcontainer will fail to build if sibling repo is missing or in different location

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant