mirror of
https://github.com/alexbelgium/hassio-addons.git
synced 2026-08-16 10:02:30 +02:00
Merge pull request #2846 from alexbelgium/agent/fix-claude-rtk-arm64
Fix RTK compatibility and Claude add-on validation
This commit is contained in:
2
.github/workflows/onpr_check-pr.yaml
vendored
2
.github/workflows/onpr_check-pr.yaml
vendored
@@ -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
|
||||
|
||||
51
.github/workflows/pr2841-diagnostic.yml
vendored
51
.github/workflows/pr2841-diagnostic.yml
vendored
@@ -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
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user