From 6aadf932f4532f61c1434dab2c7da2eeac97e32c Mon Sep 17 00:00:00 2001 From: Dmitry Kireev Date: Sat, 31 Jan 2026 10:10:38 +0000 Subject: [PATCH 1/2] Remove Playwright env and adjust backups and workflow - chore(Dockerfile): remove Playwright environment variables for system Chromium - chore(Taskfile.yml): move claude-json backup and restore tasks, add silent flag and cleanup duplicates - chore(.github/workflows/release.yml): enable DEVCELL_GUI_ENABLED build arg and lowercase image name in manifest creation --- .github/workflows/release.yml | 3 +++ Dockerfile | 4 --- Taskfile.yml | 51 +++++++++++++++++++---------------- 3 files changed, 31 insertions(+), 27 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 01d42648..5809b89f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -73,10 +73,12 @@ jobs: cache-from: type=gha,scope=${{ matrix.arch }} cache-to: type=gha,mode=max,scope=${{ matrix.arch }} provenance: false + # TODO: make GUI a separate image build-args: | USER_NAME=devuser USER_UID=1000 USER_GID=1000 + DEVCELL_GUI_ENABLED=true manifest: name: Create Multi-Arch Manifest @@ -106,6 +108,7 @@ jobs: - name: Create and push multi-arch manifest run: | IMAGE="${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}" + IMAGE="${IMAGE,,}" # lowercase echo '${{ steps.meta.outputs.tags }}' | while read -r TAG; do [ -z "$TAG" ] && continue diff --git a/Dockerfile b/Dockerfile index 57f4e340..ea365ee5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -98,10 +98,6 @@ ENV TINI_VERSION=v0.19.0 ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-arm64 /tini RUN chmod +x /tini -# Configure Playwright to use system Chromium -ENV PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 -ENV PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/usr/bin/chromium -ENV PLAYWRIGHT_BROWSERS_PATH=0 # Create non-root user matching host user (uid 501, gid 20) # This ensures proper file permissions when mounting volumes from macOS diff --git a/Taskfile.yml b/Taskfile.yml index 6b353e11..a1a74f48 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -55,29 +55,6 @@ env: # flatten: true tasks: - devcell:claude-json:backup: - desc: Backup .claude.json with timestamp, keep last 5 - internal: true - cmds: - - mkdir -p "{{.CELL_HOME}}" - - touch "{{.CELL_HOME}}/.claude.json" - - | - BACKUP_FILE="{{.CELL_HOME}}/.claude.json-devcell-$(date +%Y-%m-%dT%H-%M-%S)-backup" - cp "{{.CELL_HOME}}/.claude.json" "$BACKUP_FILE" 2>/dev/null || true - ls -t "{{.CELL_HOME}}"/.claude.json-devcell-*-backup 2>/dev/null | tail -n +6 | xargs rm -f 2>/dev/null || true - - devcell:claude-json:restore: - desc: Restore .claude.json from latest backup - cmds: - - | - LATEST=$(ls -t "{{.CELL_HOME}}"/.claude.json-devcell-*-backup 2>/dev/null | head -1) - if [ -n "$LATEST" ]; then - cp "$LATEST" "{{.CELL_HOME}}/.claude.json" - echo "Restored from: $LATEST" - else - echo "No backup found in {{.CELL_HOME}}" - exit 1 - fi claude: desc: Run Claude CLI in the dev container @@ -269,3 +246,31 @@ tasks: echo "Use with: MACOS_BOX=$BOX_NAME task macos:claude" echo "" vagrant box list + + + ######################################################################################################################## + devcell:claude-json:backup: + desc: Backup .claude.json with timestamp, keep last 5 + silent: true + internal: true + cmds: + - mkdir -p "{{.CELL_HOME}}" + - touch "{{.CELL_HOME}}/.claude.json" + - | + BACKUP_FILE="{{.CELL_HOME}}/.claude.json-devcell-$(date +%Y-%m-%dT%H-%M-%S)-backup" + cp "{{.CELL_HOME}}/.claude.json" "$BACKUP_FILE" 2>/dev/null || true + ls -t "{{.CELL_HOME}}"/.claude.json-devcell-*-backup 2>/dev/null | tail -n +6 | xargs rm -f 2>/dev/null || true + + devcell:claude-json:restore: + desc: Restore .claude.json from latest backup + silent: true + cmds: + - | + LATEST=$(ls -t "{{.CELL_HOME}}"/.claude.json-devcell-*-backup 2>/dev/null | head -1) + if [ -n "$LATEST" ]; then + cp "$LATEST" "{{.CELL_HOME}}/.claude.json" + echo "Restored from: $LATEST" + else + echo "No backup found in {{.CELL_HOME}}" + exit 1 + fi From 54341998b94330cb926007e345522aa7a948a641 Mon Sep 17 00:00:00 2001 From: Dmitry Kireev Date: Sat, 31 Jan 2026 12:40:24 +0000 Subject: [PATCH 2/2] Update multi-arch manifest creation in release workflow - chore(.github/workflows/release.yml): simplify image tag parsing for manifest creation --- .github/workflows/release.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5809b89f..a337ddd5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -107,11 +107,9 @@ jobs: - name: Create and push multi-arch manifest run: | - IMAGE="${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}" - IMAGE="${IMAGE,,}" # lowercase - echo '${{ steps.meta.outputs.tags }}' | while read -r TAG; do [ -z "$TAG" ] && continue + IMAGE="${TAG%:*}" TAG_NAME="${TAG##*:}" echo "Creating manifest for ${TAG}"