From 7f04f3f50bec4e4c3368d70d98b894e0882e7ea2 Mon Sep 17 00:00:00 2001 From: Niall Munro Date: Thu, 2 Oct 2025 15:04:39 +0000 Subject: [PATCH 01/12] Add Codex configuration and update VS Code extensions for improved functionality --- .devcontainer/Dockerfile | 4 ++ .devcontainer/codex-config.toml | 72 +++++++++++++++++++ .devcontainer/devcontainer.json | 8 +-- .../vscode-init/extensions-to-download.txt | 8 ++- .../vscode-init/extensions-to-install.txt | 1 + 5 files changed, 88 insertions(+), 5 deletions(-) create mode 100644 .devcontainer/codex-config.toml diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 43081c9..d8077ea 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -8,6 +8,10 @@ ENV VSCODE_COMMIT=${VSCODE_COMMIT} # Copy and run VS Code installation files COPY ./vscode-init /opt/vscode-init + +# Copy Codex config +COPY ./codex-config.toml /root/.codex/config.toml + RUN cd /opt/vscode-init \ && ./00-install-vscode-server.sh ${VSCODE_COMMIT} \ && ./01-install-extensions.sh ${VSCODE_COMMIT} \ diff --git a/.devcontainer/codex-config.toml b/.devcontainer/codex-config.toml new file mode 100644 index 0000000..e9c4835 --- /dev/null +++ b/.devcontainer/codex-config.toml @@ -0,0 +1,72 @@ +# Default Codex Configuration for gpt-oss:20b via Ollama +# This configuration sets up Codex to use the gpt-oss:20b model through a local Ollama instance + +# Default model to use +model = "gpt-oss:20b" + +# Default model provider +model_provider = "ollama" + +# Approval policy - change to "never" for fully automated operation, or "untrusted" for safety +approval_policy = "untrusted" + +# Sandbox mode for security +sandbox_mode = "read-only" + +# Model provider configurations +[model_providers.ollama] +# Display name for the provider +name = "Ollama Local" + +# Base URL for Ollama API (default local installation) +# Change this if your Ollama instance is running on a different host/port +base_url = "http://host.containers.internal:11434/v1" + +# Environment variable for API key (Ollama typically doesn't require authentication for local usage) +# You can set OLLAMA_API_KEY if your setup requires it, or remove this line +env_key = "OLLAMA_API_KEY" + +# Use the chat completions API (compatible with OpenAI API format) +wire_api = "chat" + +# Optional: Additional configuration +# request_max_retries = 4 +# stream_max_retries = 5 + +# Optional: Custom HTTP headers if needed +# [model_providers.ollama.http_headers] +# "User-Agent" = "Codex-CLI/1.0" + +# Optional: Query parameters if needed +# [model_providers.ollama.query_params] +# "stream" = "true" + +# History configuration +[history] +persistence = "save-all" + +# File opener configuration for VS Code integration +file_opener = "vscode" + +# Optional: Hide reasoning events for cleaner output +# hide_agent_reasoning = true + +# Optional: MCP servers configuration (uncomment and configure as needed) +# [mcp_servers.example-server] +# command = "npx" +# args = ["-y", "@your/mcp-server"] +# env = { "API_KEY" = "your-api-key" } + +# Optional: Custom instructions file +# experimental_instructions_file = "/path/to/your/instructions.md" + +# Optional: TUI configuration +[tui] +notifications = false + +# Optional: Shell environment policy +[shell_environment_policy] +inherit = "core" +ignore_default_excludes = false +exclude = [] +set = {} \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index fffe73b..ebce43e 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -13,7 +13,6 @@ "features": { "ghcr.io/devcontainers/features/python:1": { "installTools": true, - "toolsToInstall": "flake8,autopep8,black,yapf,mypy,pydocstyle,pycodestyle,bandit,pipenv,virtualenv,pytest,pylint,poetry,marimo[recommended]", "version": "os-provided" }, "ghcr.io/devcontainers/features/common-utils:2": { @@ -22,8 +21,7 @@ "installOhMyZsh": true, "installOhMyZshConfig": true, "upgradePackages": true, - "nonFreePackages": true, - "username": "automatic", + "username": "none", "userUid": "automatic", "userGid": "automatic" }, @@ -38,8 +36,10 @@ "installRMarkdown": true, "installRadian": true, "installVscDebugger": true, + "useTesting": true, "vscodeRSupport": "full" - } + }, + "ghcr.io/jsburckhardt/devcontainer-features/codex:1": {} // Example of adding R packages via apt during build: // Uncomment the following lines to install the 'curl' package for R // "features": { diff --git a/.devcontainer/vscode-init/extensions-to-download.txt b/.devcontainer/vscode-init/extensions-to-download.txt index ae18db9..2b70d1c 100644 --- a/.devcontainer/vscode-init/extensions-to-download.txt +++ b/.devcontainer/vscode-init/extensions-to-download.txt @@ -3,4 +3,10 @@ # into the user's VS Code. They will not be available in the devcontainer. # One extension ID per line. ms-vscode-remote.remote-containers -vscodevim.vim \ No newline at end of file +vscodevim.vim + +# Extensions that should be installed on the host +Continue.continue +ms-toolsai.jupyter-keymap +openai.chatgpt +REditorSupport.r-syntax \ No newline at end of file diff --git a/.devcontainer/vscode-init/extensions-to-install.txt b/.devcontainer/vscode-init/extensions-to-install.txt index feafa5f..e77037e 100644 --- a/.devcontainer/vscode-init/extensions-to-install.txt +++ b/.devcontainer/vscode-init/extensions-to-install.txt @@ -10,6 +10,7 @@ mechatroner.rainbow-csv ms-python.black-formatter ms-toolsai.datawrangler ms-toolsai.jupyter +openai.chatgpt REditorSupport.r REditorSupport.r-syntax yzhang.markdown-all-in-one \ No newline at end of file From 26fe6f7405d1c80ad2930cd4496e8c3e0381ef04 Mon Sep 17 00:00:00 2001 From: Niall Munro Date: Fri, 3 Oct 2025 13:10:31 +0000 Subject: [PATCH 02/12] Update Codex configuration and restored missing devcontainer features --- .devcontainer/codex-config.toml | 8 +++++--- .devcontainer/devcontainer.json | 4 +++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.devcontainer/codex-config.toml b/.devcontainer/codex-config.toml index e9c4835..d98fd3f 100644 --- a/.devcontainer/codex-config.toml +++ b/.devcontainer/codex-config.toml @@ -8,10 +8,12 @@ model = "gpt-oss:20b" model_provider = "ollama" # Approval policy - change to "never" for fully automated operation, or "untrusted" for safety -approval_policy = "untrusted" +# approval_policy = "untrusted" +approval_policy = "on-request" # Sandbox mode for security -sandbox_mode = "read-only" +# sandbox_mode = "read-only" +sandbox_mode = "workspace-write" # Model provider configurations [model_providers.ollama] @@ -24,7 +26,7 @@ base_url = "http://host.containers.internal:11434/v1" # Environment variable for API key (Ollama typically doesn't require authentication for local usage) # You can set OLLAMA_API_KEY if your setup requires it, or remove this line -env_key = "OLLAMA_API_KEY" +# env_key = "OLLAMA_API_KEY" # Use the chat completions API (compatible with OpenAI API format) wire_api = "chat" diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index ebce43e..4767e05 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -13,6 +13,7 @@ "features": { "ghcr.io/devcontainers/features/python:1": { "installTools": true, + "toolsToInstall": "flake8,autopep8,black,yapf,mypy,pydocstyle,pycodestyle,bandit,pipenv,virtualenv,pytest,pylint,poetry,marimo[recommended],nvitop", "version": "os-provided" }, "ghcr.io/devcontainers/features/common-utils:2": { @@ -21,6 +22,7 @@ "installOhMyZsh": true, "installOhMyZshConfig": true, "upgradePackages": true, + "nonFreePackages": true, "username": "none", "userUid": "automatic", "userGid": "automatic" @@ -28,7 +30,6 @@ "ghcr.io/rocker-org/devcontainer-features/quarto-cli:1": { "version": "latest" }, - // R language support, https://github.com/rocker-org/devcontainer-features/tree/main/src/r-apt "ghcr.io/rocker-org/devcontainer-features/r-apt:0": { "installDevTools": true, @@ -40,6 +41,7 @@ "vscodeRSupport": "full" }, "ghcr.io/jsburckhardt/devcontainer-features/codex:1": {} + // Example of adding R packages via apt during build: // Uncomment the following lines to install the 'curl' package for R // "features": { From 540f1dda9053151ced95b78e2dfa53a75dee12ef Mon Sep 17 00:00:00 2001 From: Niall Munro Date: Fri, 3 Oct 2025 16:40:40 +0100 Subject: [PATCH 03/12] Update VS Code commit hash description and enhance tag generation logic for better clarity and flexibility --- .github/workflows/build-devcontainer.yml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-devcontainer.yml b/.github/workflows/build-devcontainer.yml index 4829dd4..6364a82 100644 --- a/.github/workflows/build-devcontainer.yml +++ b/.github/workflows/build-devcontainer.yml @@ -10,7 +10,7 @@ on: workflow_dispatch: inputs: vscode_commit: - description: 'VS Code commit hash to use (defaults to Dockerfile ARG default if not provided)' + description: 'VS Code commit hash to use (defaults to Dockerfile declaration if not provided)' required: false type: string @@ -78,11 +78,17 @@ jobs: type=ref,event=branch type=ref,event=pr type=ref,event=tag + # Tags for default branch (main) only type=sha,prefix={{branch}}-,enable={{is_default_branch}} type=raw,value=latest,enable={{is_default_branch}} - type=raw,value=vscode-${{ steps.vscode-commit.outputs.vscode_short }} - type=raw,value=vscode-${{ steps.vscode-commit.outputs.vscode_short }}-{{sha}} - + type=raw,value=vscode-${{ steps.vscode-commit.outputs.vscode_short }},enable={{is_default_branch}} + type=raw,value=vscode-${{ steps.vscode-commit.outputs.vscode_short }}-{{sha}},enable={{is_default_branch}} + # Tags for PRs only + type=raw,value=pr-${{ github.event.number }}-${{ steps.vscode-commit.outputs.vscode_short }},enable={{is_pr}} + type=raw,value=pr-${{ github.event.number }}-${{ steps.vscode-commit.outputs.vscode_short }}-{{sha}},enable={{is_pr}} + # Tags for other branches (not main, not PR) + type=raw,value={{branch}}-${{ steps.vscode-commit.outputs.vscode_short }},enable={{is_branch}} + type=raw,value={{branch}}-${{ steps.vscode-commit.outputs.vscode_short }}-{{sha}},enable={{is_branch}} - name: Extract tag names only id: tags run: | From 4fcb815be122d6f668b1addfdcc5661f1a0aea1f Mon Sep 17 00:00:00 2001 From: Niall Munro Date: Thu, 16 Oct 2025 22:35:18 +0100 Subject: [PATCH 04/12] Feature/continue (#5) * Add Continue Dev configuration and environment files for enhanced functionality. Also incuded fzf and tmux * Update Dockerfile and devcontainer configuration for improved compatibility and clarity. Adjust VS Code commit hash and correct Continue Dev config file extension. Comment out deprecated npm package feature in devcontainer.json and update extensions list for clarity. * Comment out sensitive OPENWEB_API_KEY in continue.env for security reasons --- .devcontainer/Dockerfile | 6 +- .devcontainer/continue-config.yaml | 101 ++++++++++++++++++ .devcontainer/continue.env | 3 + .devcontainer/devcontainer.json | 12 ++- .../vscode-init/extensions-to-install.txt | 3 +- 5 files changed, 122 insertions(+), 3 deletions(-) create mode 100644 .devcontainer/continue-config.yaml create mode 100644 .devcontainer/continue.env diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index d8077ea..077730e 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -2,7 +2,7 @@ FROM mcr.microsoft.com/devcontainers/base:noble # VS Code commit ID for devcontainer compatibility. Can be overridden at build time via build args. # Default chosen for current stable VS Code Server version used in this repository. -ARG VSCODE_COMMIT=f220831ea2d946c0dcb0f3eaa480eb435a2c1260 +ARG VSCODE_COMMIT=385651c938df8a906869babee516bffd0ddb9829 ENV VSCODE_COMMIT=${VSCODE_COMMIT} @@ -12,6 +12,10 @@ COPY ./vscode-init /opt/vscode-init # Copy Codex config COPY ./codex-config.toml /root/.codex/config.toml +# Copy Continue Dev config +COPY ./continue-config.yaml /root/.continue/config.toml +COPY ./continue.env /root/.continue/.env + RUN cd /opt/vscode-init \ && ./00-install-vscode-server.sh ${VSCODE_COMMIT} \ && ./01-install-extensions.sh ${VSCODE_COMMIT} \ diff --git a/.devcontainer/continue-config.yaml b/.devcontainer/continue-config.yaml new file mode 100644 index 0000000..7a202e6 --- /dev/null +++ b/.devcontainer/continue-config.yaml @@ -0,0 +1,101 @@ +name: Local Assistant +version: 1.0.0 +schema: v1 +models: + # - name: Llama 3.1 8B + # model: llama3.1:8b + # provider: openai + # apiBase: ${{ secrets.OPENWEB_BASE_URL }} + # apiKey: ${{ secrets.OPENWEB_API_KEY }} + # roles: + # - chat + # - edit + # - apply + + - name: gemma3 4B + model: gemma3:4b + provider: openai + apiBase: ${{ secrets.OPENWEB_BASE_URL }} + apiKey: ${{ secrets.OPENWEB_API_KEY }} + roles: + - chat + - edit + - apply + - autocomplete + + - name: deepseek-r1 8b + model: deepseek-r1:8b + provider: openai + apiBase: ${{ secrets.OPENWEB_BASE_URL }} + apiKey: ${{ secrets.OPENWEB_API_KEY }} + roles: + - chat + - edit + - apply + + - name: qwen3 8B + model: qwen3:8b + provider: openai + apiBase: ${{ secrets.OPENWEB_BASE_URL }} + apiKey: ${{ secrets.OPENWEB_API_KEY }} + roles: + - chat + - edit + - apply + - autocomplete + + - name: Nomic Embed + model: nomic-embed-text:latest + provider: openai + apiBase: ${{ secrets.OPENWEB_BASE_URL }} + apiKey: ${{ secrets.OPENWEB_API_KEY }} + embedOptions: + maxChunkSize: 8192 + roles: + - embed + + - name: Qwen 2.5b Autocomplete Model + model: qwen2.5-coder:1.5b + provider: openai + apiBase: ${{ secrets.OPENWEB_BASE_URL }} + apiKey: ${{ secrets.OPENWEB_API_KEY }} + roles: + - chat + - edit + - apply + - autocomplete + defaultCompletionOptions: + contextLength: 32768 + maxTokens: 8192 + + - name: gpt-oss-20b + provider: openai + model: bedrock.openai.gpt-oss-20b-1:0 + apiBase: ${{ secrets.OPENWEB_BASE_URL }} + apiKey: ${{ secrets.OPENWEB_API_KEY }} + roles: + - chat + - edit + - apply + + # - name: Qwen3-Coder-30B-A3B-Instruct + # provider: openai + # model: bedrock.qwen.qwen3-coder-30b-a3b-v1:0 + # apiBase: ${{ secrets.OPENWEB_BASE_URL }} + # apiKey: ${{ secrets.OPENWEB_API_KEY }} + # roles: + # - chat + # - edit + # - apply + +context: + - provider: code + - provider: currentFile + - provider: codebase + - provider: docs + - provider: diff + - provider: file + - provider: problems + - provider: repo-map + - provider: terminal + - provider: tree diff --git a/.devcontainer/continue.env b/.devcontainer/continue.env new file mode 100644 index 0000000..70187cd --- /dev/null +++ b/.devcontainer/continue.env @@ -0,0 +1,3 @@ +# Open WebUI +# OPENWEB_API_KEY=sk-8a29c7f1de6b3582a4fd71e093b25167 +OPENWEB_BASE_URL=http://host.containers.internal:11434/v1 diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 4767e05..495c05f 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -28,6 +28,8 @@ "userGid": "automatic" }, "ghcr.io/rocker-org/devcontainer-features/quarto-cli:1": { + "installTinyTex": true, + "installChromium": true, "version": "latest" }, // R language support, https://github.com/rocker-org/devcontainer-features/tree/main/src/r-apt @@ -40,7 +42,15 @@ "useTesting": true, "vscodeRSupport": "full" }, - "ghcr.io/jsburckhardt/devcontainer-features/codex:1": {} + "ghcr.io/jsburckhardt/devcontainer-features/codex:1": {}, + "ghcr.io/duduribeiro/devcontainer-features/tmux:1": { + "version": "latest" + }, + // "ghcr.io/devcontainers-extra/features/npm-package:1": { + // "package": "continuedev/cli", + // "version": "latest" + // }, + "ghcr.io/braun-daniel/devcontainer-features/fzf:1": {} // Example of adding R packages via apt during build: // Uncomment the following lines to install the 'curl' package for R diff --git a/.devcontainer/vscode-init/extensions-to-install.txt b/.devcontainer/vscode-init/extensions-to-install.txt index e77037e..8a3ef5a 100644 --- a/.devcontainer/vscode-init/extensions-to-install.txt +++ b/.devcontainer/vscode-init/extensions-to-install.txt @@ -5,7 +5,8 @@ charliermarsh.ruff Continue.continue DavidAnson.vscode-markdownlint eamodio.gitlens -marimo-team.vscode-marimo +# The marimo extension has been removed from the marketplace whilst it is being rewritten. +# marimo-team.vscode-marimo mechatroner.rainbow-csv ms-python.black-formatter ms-toolsai.datawrangler From 9846fc011c556f7e3545219d2e6db1d45cc175a0 Mon Sep 17 00:00:00 2001 From: Niall Munro Date: Thu, 16 Oct 2025 22:56:40 +0100 Subject: [PATCH 05/12] Refactor tag generation logic in build-devcontainer.yml for improved clarity and consistency --- .github/workflows/build-devcontainer.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-devcontainer.yml b/.github/workflows/build-devcontainer.yml index 6364a82..849c9fe 100644 --- a/.github/workflows/build-devcontainer.yml +++ b/.github/workflows/build-devcontainer.yml @@ -84,8 +84,8 @@ jobs: type=raw,value=vscode-${{ steps.vscode-commit.outputs.vscode_short }},enable={{is_default_branch}} type=raw,value=vscode-${{ steps.vscode-commit.outputs.vscode_short }}-{{sha}},enable={{is_default_branch}} # Tags for PRs only - type=raw,value=pr-${{ github.event.number }}-${{ steps.vscode-commit.outputs.vscode_short }},enable={{is_pr}} - type=raw,value=pr-${{ github.event.number }}-${{ steps.vscode-commit.outputs.vscode_short }}-{{sha}},enable={{is_pr}} + type=ref,prefix=pr-,suffix=-${{ steps.vscode-commit.outputs.vscode_short }},event=pr,enable=true + type=ref,prefix=pr-,suffix=-${{ steps.vscode-commit.outputs.vscode_short }}-{{sha}},event=pr,enable=true # Tags for other branches (not main, not PR) type=raw,value={{branch}}-${{ steps.vscode-commit.outputs.vscode_short }},enable={{is_branch}} type=raw,value={{branch}}-${{ steps.vscode-commit.outputs.vscode_short }}-{{sha}},enable={{is_branch}} From 61733acdd6ddf1c5a53cd0bcf0e32d720a299706 Mon Sep 17 00:00:00 2001 From: Niall Munro Date: Thu, 16 Oct 2025 23:01:37 +0100 Subject: [PATCH 06/12] Refactor tag generation logic in build-devcontainer.yml to simplify PR tag handling --- .github/workflows/build-devcontainer.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-devcontainer.yml b/.github/workflows/build-devcontainer.yml index 849c9fe..dd94917 100644 --- a/.github/workflows/build-devcontainer.yml +++ b/.github/workflows/build-devcontainer.yml @@ -84,11 +84,8 @@ jobs: type=raw,value=vscode-${{ steps.vscode-commit.outputs.vscode_short }},enable={{is_default_branch}} type=raw,value=vscode-${{ steps.vscode-commit.outputs.vscode_short }}-{{sha}},enable={{is_default_branch}} # Tags for PRs only - type=ref,prefix=pr-,suffix=-${{ steps.vscode-commit.outputs.vscode_short }},event=pr,enable=true - type=ref,prefix=pr-,suffix=-${{ steps.vscode-commit.outputs.vscode_short }}-{{sha}},event=pr,enable=true - # Tags for other branches (not main, not PR) - type=raw,value={{branch}}-${{ steps.vscode-commit.outputs.vscode_short }},enable={{is_branch}} - type=raw,value={{branch}}-${{ steps.vscode-commit.outputs.vscode_short }}-{{sha}},enable={{is_branch}} + type=ref,prefix=pr-,suffix=-${{ steps.vscode-commit.outputs.vscode_short }},event=pr + type=ref,prefix=pr-,suffix=-${{ steps.vscode-commit.outputs.vscode_short }}-{{sha}},event=pr - name: Extract tag names only id: tags run: | From 7c632e45b25968849ef365bce84e74f106e228a2 Mon Sep 17 00:00:00 2001 From: Niall Munro Date: Fri, 24 Oct 2025 14:47:48 +0100 Subject: [PATCH 07/12] Update VS Code extensions installation script and add pre-release extension --- .devcontainer/vscode-init/01-install-extensions.sh | 4 ++-- .devcontainer/vscode-init/extensions-to-install.txt | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.devcontainer/vscode-init/01-install-extensions.sh b/.devcontainer/vscode-init/01-install-extensions.sh index 4ac30a2..3328bc2 100755 --- a/.devcontainer/vscode-init/01-install-extensions.sh +++ b/.devcontainer/vscode-init/01-install-extensions.sh @@ -24,7 +24,7 @@ fi echo "Installing VS Code extensions from ${EXTENSIONS_FILE}..." # Read extensions from file, remove comments and empty lines, then install all at once -extensions=$(grep -v '^#' "${EXTENSIONS_FILE}" | grep -v '^$' | tr -d '\r' | tr '\n' ' ') +extensions=$(grep -v '^#' "${EXTENSIONS_FILE}" | grep -v '^$' | tr -d '\r') if [ -z "${extensions}" ]; then echo "No extensions found in ${EXTENSIONS_FILE}" @@ -34,7 +34,7 @@ fi echo "Extensions to install: ${extensions}" # Install all extensions in a single command -"${VSCODE_SERVER_HOME}/bin/code-server" --accept-server-license-terms $(echo "${extensions}" | sed 's/[^ ]* */--install-extension &/g') +"${VSCODE_SERVER_HOME}/bin/code-server" --accept-server-license-terms $(echo "${extensions}" | sed 's/^/--install-extension /' | tr '\n' ' ') echo "VS Code extensions installation completed successfully" diff --git a/.devcontainer/vscode-init/extensions-to-install.txt b/.devcontainer/vscode-init/extensions-to-install.txt index 8a3ef5a..1a61dbc 100644 --- a/.devcontainer/vscode-init/extensions-to-install.txt +++ b/.devcontainer/vscode-init/extensions-to-install.txt @@ -8,6 +8,7 @@ eamodio.gitlens # The marimo extension has been removed from the marketplace whilst it is being rewritten. # marimo-team.vscode-marimo mechatroner.rainbow-csv +--pre-release ms-ossdata.vscode-pgsql ms-python.black-formatter ms-toolsai.datawrangler ms-toolsai.jupyter From 633f72423a17da5a2f0bd7b8fb3553f64876147a Mon Sep 17 00:00:00 2001 From: Niall Munro Date: Fri, 24 Oct 2025 18:52:54 +0100 Subject: [PATCH 08/12] Fix formatting of VS Code extension installation for ms-ossdata.vscode-pgsql to include proper pre-release flag --- .devcontainer/vscode-init/extensions-to-install.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/vscode-init/extensions-to-install.txt b/.devcontainer/vscode-init/extensions-to-install.txt index 1a61dbc..08d66b1 100644 --- a/.devcontainer/vscode-init/extensions-to-install.txt +++ b/.devcontainer/vscode-init/extensions-to-install.txt @@ -8,7 +8,7 @@ eamodio.gitlens # The marimo extension has been removed from the marketplace whilst it is being rewritten. # marimo-team.vscode-marimo mechatroner.rainbow-csv ---pre-release ms-ossdata.vscode-pgsql +ms-ossdata.vscode-pgsql --pre-release ms-python.black-formatter ms-toolsai.datawrangler ms-toolsai.jupyter From 931e00cdd574df53e270c36dfa5c290c4d581efd Mon Sep 17 00:00:00 2001 From: Niall Munro Date: Sat, 25 Oct 2025 23:58:41 +0100 Subject: [PATCH 09/12] Update npm-package feature in devcontainer.json to include multiple packages and clean up apt list --- .devcontainer/devcontainer.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 495c05f..662afd4 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -42,15 +42,15 @@ "useTesting": true, "vscodeRSupport": "full" }, - "ghcr.io/jsburckhardt/devcontainer-features/codex:1": {}, - "ghcr.io/duduribeiro/devcontainer-features/tmux:1": { + "ghcr.io/devcontainers-extra/features/npm-package:1": { + "package": "@continuedev/cli,@openai/codex,@qwen-code/qwen-code", "version": "latest" }, - // "ghcr.io/devcontainers-extra/features/npm-package:1": { - // "package": "continuedev/cli", - // "version": "latest" - // }, - "ghcr.io/braun-daniel/devcontainer-features/fzf:1": {} + "ghcr.io/devcontainers-extra/features/apt-packages:1": { + "clean_ppas": true, + "preserve_apt_list": true, + "packages": "busybox,curl,fzf,htop,postgresql-client" + } // Example of adding R packages via apt during build: // Uncomment the following lines to install the 'curl' package for R From c45a75461e95fab17969044af786624eabc2c3ee Mon Sep 17 00:00:00 2001 From: Niall Munro Date: Thu, 30 Oct 2025 13:19:44 +0000 Subject: [PATCH 10/12] Update npm-packages feature in devcontainer.json to correct package format --- .devcontainer/devcontainer.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 662afd4..552b3f6 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -42,8 +42,8 @@ "useTesting": true, "vscodeRSupport": "full" }, - "ghcr.io/devcontainers-extra/features/npm-package:1": { - "package": "@continuedev/cli,@openai/codex,@qwen-code/qwen-code", + "ghcr.io/devcontainers-extra/features/npm-packages:1": { + "package": "continuedev/cli,openai/codex,qwen-code/qwen-code", "version": "latest" }, "ghcr.io/devcontainers-extra/features/apt-packages:1": { From 311263ee6ae61f753458c0c22cddbe55d346de2c Mon Sep 17 00:00:00 2001 From: Niall Munro Date: Fri, 7 Nov 2025 13:58:57 +0000 Subject: [PATCH 11/12] Update VS Code commit ID in Dockerfile for compatibility with the latest stable version --- .devcontainer/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 077730e..5816afd 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -2,7 +2,7 @@ FROM mcr.microsoft.com/devcontainers/base:noble # VS Code commit ID for devcontainer compatibility. Can be overridden at build time via build args. # Default chosen for current stable VS Code Server version used in this repository. -ARG VSCODE_COMMIT=385651c938df8a906869babee516bffd0ddb9829 +ARG VSCODE_COMMIT=7d842fb85a0275a4a8e4d7e040d2625abbf7f084 ENV VSCODE_COMMIT=${VSCODE_COMMIT} From d99144566673abab3334acf4236dd39f51316c33 Mon Sep 17 00:00:00 2001 From: Niall Munro Date: Fri, 7 Nov 2025 15:02:08 +0000 Subject: [PATCH 12/12] Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .devcontainer/Dockerfile | 2 +- .devcontainer/continue-config.yaml | 4 ++-- .devcontainer/continue.env | 1 - .devcontainer/devcontainer.json | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 5816afd..f3b85c5 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -13,7 +13,7 @@ COPY ./vscode-init /opt/vscode-init COPY ./codex-config.toml /root/.codex/config.toml # Copy Continue Dev config -COPY ./continue-config.yaml /root/.continue/config.toml +COPY ./continue-config.yaml /root/.continue/config.yaml COPY ./continue.env /root/.continue/.env RUN cd /opt/vscode-init \ diff --git a/.devcontainer/continue-config.yaml b/.devcontainer/continue-config.yaml index 7a202e6..3da790d 100644 --- a/.devcontainer/continue-config.yaml +++ b/.devcontainer/continue-config.yaml @@ -70,7 +70,7 @@ models: - name: gpt-oss-20b provider: openai - model: bedrock.openai.gpt-oss-20b-1:0 + model: gpt-oss:20b apiBase: ${{ secrets.OPENWEB_BASE_URL }} apiKey: ${{ secrets.OPENWEB_API_KEY }} roles: @@ -80,7 +80,7 @@ models: # - name: Qwen3-Coder-30B-A3B-Instruct # provider: openai - # model: bedrock.qwen.qwen3-coder-30b-a3b-v1:0 + # model: qwen3-coder:30b # apiBase: ${{ secrets.OPENWEB_BASE_URL }} # apiKey: ${{ secrets.OPENWEB_API_KEY }} # roles: diff --git a/.devcontainer/continue.env b/.devcontainer/continue.env index 70187cd..b2e0433 100644 --- a/.devcontainer/continue.env +++ b/.devcontainer/continue.env @@ -1,3 +1,2 @@ # Open WebUI -# OPENWEB_API_KEY=sk-8a29c7f1de6b3582a4fd71e093b25167 OPENWEB_BASE_URL=http://host.containers.internal:11434/v1 diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 552b3f6..6eee560 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -23,7 +23,7 @@ "installOhMyZshConfig": true, "upgradePackages": true, "nonFreePackages": true, - "username": "none", + "username": "automatic", "userUid": "automatic", "userGid": "automatic" },