Merge pull request #2846 from alexbelgium/agent/fix-claude-rtk-arm64

Fix RTK compatibility and Claude add-on validation
This commit is contained in:
Alexandre
2026-07-12 19:12:22 +02:00
committed by GitHub
5 changed files with 33 additions and 60 deletions

View File

@@ -35,6 +35,7 @@ jobs:
git fetch origin "${{ github.event.before }}" || true
changed_changelog_files=$(git diff --name-only "${{ github.event.before }}" "${{ github.sha }}" | grep -iE '^([^/]+/)?changelog\.(md|txt|ya?ml|json)$' || true)
echo "$changed_changelog_files"
echo "changelogs_files=$changed_changelog_files" >> "$GITHUB_OUTPUT"
changed_config_files=$(git diff --name-only "${{ github.event.before }}" "${{ github.sha }}" | grep -E '^[^/]+/config\.(json|ya?ml)$' || true)
echo "$changed_config_files"
all_changed_files=$(echo -e "$changed_config_files\n$changed_changelog_files" | sort -u)
@@ -208,6 +209,7 @@ jobs:
uses: docker/build-push-action@v7
with:
context: ${{ matrix.addon }}
platforms: linux/arm64
push: false
load: true
file: ${{ matrix.addon }}/Dockerfile

View File

@@ -1,51 +0,0 @@
---
name: Claude Add-on Build Diagnostic
on:
pull_request:
branches:
- master
jobs:
diagnose:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Gather add-on information
id: information
uses: frenck/action-addon-information@v1.4
with:
path: ./claude_desktop/
- name: Set up QEMU
uses: docker/setup-qemu-action@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Build aarch64 and capture tail
shell: bash
run: |
set +e
BUILD_FROM="$(jq -r '.build_from.aarch64 // empty' '${{ steps.information.outputs.build }}')"
docker buildx build \
--platform linux/arm64 \
--progress=plain \
--build-arg "BUILD_FROM=${BUILD_FROM}" \
--file claude_desktop/Dockerfile \
claude_desktop >build.log 2>&1
status=$?
tail -n 300 build.log >build-tail.log
printf 'build_status=%s\n' "$status" >build-status.txt
exit 0
- name: Upload diagnostic log
uses: actions/upload-artifact@v4
with:
name: claude-aarch64-build-log
path: |
build-tail.log
build-status.txt
retention-days: 1

View File

@@ -1,4 +1,10 @@
## 1.14 (10-07-2026)
- Build pinned RTK 0.43.0 source on Debian Bookworm for both architectures instead of installing the upstream arm64 release binary, which requires GLIBC 2.39 and cannot run in the add-on image.
- Execute `rtk --version` inside the final image during the Docker build so future ABI incompatibilities fail CI instead of surfacing at runtime.
- Validate the final Bookworm-built RTK binary in a native aarch64 image build.
- Correct the repository PR checks so changed changelog paths are exported and aarch64 images are built explicitly for `linux/arm64`.
## debiantrixie-version-c55d3809 (2026-07-11)
- Update to latest version from linuxserver/docker-baseimage-selkies (changelog : https://github.com/linuxserver/docker-baseimage-selkies/releases)
## 1.13 (10-07-2026)

View File

@@ -9,6 +9,22 @@
ARG BUILD_FROM
ARG BUILD_VERSION
ARG RTK_VERSION="v0.43.0"
ARG RTK_COMMIT="5a7880d404db8364d602f2ecdc41dd790f64013f"
# The upstream aarch64 release is cross-built on ubuntu-latest and requires
# GLIBC 2.39. Build the pinned source on Bookworm instead so it is compatible
# with the add-on runtime on both supported architectures.
FROM rust:1.91-bookworm AS rtk-builder
ARG RTK_VERSION
ARG RTK_COMMIT
RUN git clone --depth 1 --branch "${RTK_VERSION}" https://github.com/rtk-ai/rtk.git /src/rtk && \
test "$(git -C /src/rtk rev-parse HEAD)" = "${RTK_COMMIT}" && \
cd /src/rtk && \
cargo build --release --locked && \
install -D -m 0755 target/release/rtk /out/rtk && \
/out/rtk --version
FROM ${BUILD_FROM}
##################
@@ -89,15 +105,15 @@ RUN set -eux; \
chmod 0755 /usr/local/bin/ttyd; \
/usr/local/bin/ttyd --version
# Copy the pinned Bookworm-built RTK binary and execute it in the final image.
# This makes an ABI mismatch fail the image build instead of surfacing at runtime.
COPY --from=rtk-builder /out/rtk /usr/local/bin/rtk
RUN /usr/local/bin/rtk --version
# Install only the Headroom proxy, code-compression, and MCP features used by this add-on.
RUN apt-get update && \
apt-get install -y --no-install-recommends nodejs && \
pip3 install --break-system-packages "headroom-ai[proxy,code,mcp]" && \
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh -o /tmp/rtk-install.sh && \
HOME=/root sh /tmp/rtk-install.sh && \
rm /tmp/rtk-install.sh && \
if [ -x /root/.local/bin/rtk ] && [ ! -x /usr/local/bin/rtk ]; then mv /root/.local/bin/rtk /usr/local/bin/rtk; fi && \
if [ -x /usr/local/bin/rtk ]; then chmod +x /usr/local/bin/rtk; else echo "rtk binary was not installed on PATH"; exit 1; fi && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /root/.cache

View File

@@ -2,7 +2,7 @@ arch:
- aarch64
- amd64
audio: true
description: Claude Desktop with a persistent Claude Code web terminal in one add-on
description: Claude Desktop and a persistent Claude Code web terminal
devices:
- /dev/dri
- /dev/dri/card0
@@ -62,7 +62,7 @@ ports:
8787/tcp: 8787
ports_description:
3001/tcp: Claude Desktop web interface
7681/tcp: HTTP Basic-auth Claude Code terminal (no TLS)
7681/tcp: Claude Code web terminal over HTTP Basic auth (no TLS)
8787/tcp: Headroom dashboard and proxy
privileged:
- SYS_ADMIN
@@ -100,5 +100,5 @@ slug: claude_desktop
tmpfs: true
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "debiantrixie-version-c55d3809-2"
version: "1.14"
video: true