From 23ba5c2e35117f9098884a8b150c35e4fcd08696 Mon Sep 17 00:00:00 2001 From: Chris Farhood Date: Fri, 20 Feb 2026 06:33:40 -0500 Subject: [PATCH 1/3] Fix Happy Coder startup: use happy daemon start, create home dir The npm package installs a binary named 'happy', not 'happy-coder'. Use 'happy daemon start' to run it as a background service. Also create $HOME on the PVC if it doesn't exist yet, which was causing git config failures on fresh volumes. Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude Co-Authored-By: Happy --- scripts/init-repo.sh | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/scripts/init-repo.sh b/scripts/init-repo.sh index c4af4e6..9b77e41 100644 --- a/scripts/init-repo.sh +++ b/scripts/init-repo.sh @@ -55,23 +55,17 @@ RUN_UID="${USER_ID:-1000}" RUN_GID="${GROUP_ID:-1000}" chown -R "$RUN_UID:$RUN_GID" "$WORKSPACE_DIR" -# Start Happy Coder in background as the app user +# Ensure home directory exists on the PVC (may be absent on a fresh volume) +mkdir -p "$HOME" +chown "$RUN_UID:$RUN_GID" "$HOME" + +# Start Happy Coder daemon echo "Starting Happy Coder..." cd "$WORKSPACE_DIR" -# Create Happy Coder log file -HAPPY_LOG="/tmp/happy-coder.log" -touch "$HAPPY_LOG" -chown "$RUN_UID:$RUN_GID" "$HAPPY_LOG" +happy daemon start -# Start Happy Coder (already running as the correct user via baseimage-gui) -bash -c "cd '$WORKSPACE_DIR' && happy-coder > '$HAPPY_LOG' 2>&1 &" - -# Save PID for monitoring -echo $! > /tmp/happy-coder.pid - -echo "Happy Coder started (PID: $(cat /tmp/happy-coder.pid))" -echo "Logs available at: $HAPPY_LOG" +echo "Happy Coder daemon started" # Export workspace directory for startapp.sh echo "$WORKSPACE_DIR" > /tmp/workspace-dir -- 2.52.0 From 2472dc5b3fcda5e5125f43dcd8cbfc6e9ed3431e Mon Sep 17 00:00:00 2001 From: Chris Farhood Date: Fri, 20 Feb 2026 06:51:40 -0500 Subject: [PATCH 2/3] Add GitHub Actions workflow to publish Helm chart to GHCR OCI Packages chart/ and pushes to oci://ghcr.io/cpfarhood/charts on every push to main that touches chart/** files. Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude Co-Authored-By: Happy --- .github/workflows/helm-release.yaml | 37 +++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 .github/workflows/helm-release.yaml diff --git a/.github/workflows/helm-release.yaml b/.github/workflows/helm-release.yaml new file mode 100644 index 0000000..70aef7d --- /dev/null +++ b/.github/workflows/helm-release.yaml @@ -0,0 +1,37 @@ +name: Publish Helm Chart + +on: + push: + branches: + - main + paths: + - 'chart/**' + workflow_dispatch: + +permissions: + contents: read + packages: write + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Helm + uses: azure/setup-helm@v4 + + - name: Log in to GHCR + run: | + helm registry login ghcr.io \ + --username ${{ github.actor }} \ + --password ${{ secrets.GITHUB_TOKEN }} + + - name: Package chart + run: helm package chart/ + + - name: Push chart to GHCR + run: | + CHART_VERSION=$(helm show chart chart/ | grep '^version:' | awk '{print $2}') + helm push antigravity-${CHART_VERSION}.tgz oci://ghcr.io/cpfarhood/charts -- 2.52.0 From 4984e5200ce35a304bf4dad8f1262c579cf7adaa Mon Sep 17 00:00:00 2001 From: Chris Farhood Date: Fri, 20 Feb 2026 07:17:18 -0500 Subject: [PATCH 3/3] chore(deps): replace Dependabot with Renovate Adds renovate.json modelled after the kubernetes repo config. Removes .github/dependabot.yml. Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude Co-Authored-By: Happy --- .github/dependabot.yml | 19 ----------- renovate.json | 72 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+), 19 deletions(-) delete mode 100644 .github/dependabot.yml create mode 100644 renovate.json diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 750717a..0000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,19 +0,0 @@ -version: 2 -updates: - # Maintain dependencies for GitHub Actions - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "weekly" - labels: - - "dependencies" - - "github-actions" - - # Maintain dependencies for Docker - - package-ecosystem: "docker" - directory: "/" - schedule: - interval: "weekly" - labels: - - "dependencies" - - "docker" diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..2f8052d --- /dev/null +++ b/renovate.json @@ -0,0 +1,72 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:recommended", + ":gitSignOff" + ], + "semanticCommits": "enabled", + "dependencyDashboard": true, + "suppressNotifications": [ + "prEditedNotification" + ], + "rebaseWhen": "conflicted", + "commitMessagePrefix": "chore(deps):", + "commitMessageAction": "update", + "commitMessageTopic": "{{depName}}", + "prConcurrentLimit": 5, + "prHourlyLimit": 2, + "schedule": [ + "before 6am on monday" + ], + "packageRules": [ + { + "description": "GitHub Actions", + "matchManagers": [ + "github-actions" + ], + "groupName": "github-actions", + "additionalBranchPrefix": "github-actions-", + "semanticCommitScope": "github-actions", + "pinDigests": true + }, + { + "description": "Docker base image", + "matchManagers": [ + "dockerfile" + ], + "groupName": "docker", + "additionalBranchPrefix": "docker-", + "semanticCommitScope": "docker" + }, + { + "description": "Automerge patch updates", + "matchUpdateTypes": [ + "patch" + ], + "automerge": true, + "automergeType": "pr", + "platformAutomerge": true + }, + { + "description": "Automerge minor updates for stable packages", + "matchUpdateTypes": [ + "minor" + ], + "matchCurrentVersion": "!/^0/", + "automerge": true, + "automergeType": "pr", + "platformAutomerge": true + }, + { + "description": "Separate major updates - require manual review", + "matchUpdateTypes": [ + "major" + ], + "automerge": false, + "additionalBranchPrefix": "major-" + } + ], + "ignorePaths": [ + "**/node_modules/**" + ] +} -- 2.52.0