mirror of
https://github.com/alexbelgium/hassio-addons.git
synced 2026-08-22 12:53:32 +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
|
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)
|
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 "$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)
|
changed_config_files=$(git diff --name-only "${{ github.event.before }}" "${{ github.sha }}" | grep -E '^[^/]+/config\.(json|ya?ml)$' || true)
|
||||||
echo "$changed_config_files"
|
echo "$changed_config_files"
|
||||||
all_changed_files=$(echo -e "$changed_config_files\n$changed_changelog_files" | sort -u)
|
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
|
uses: docker/build-push-action@v7
|
||||||
with:
|
with:
|
||||||
context: ${{ matrix.addon }}
|
context: ${{ matrix.addon }}
|
||||||
|
platforms: linux/arm64
|
||||||
push: false
|
push: false
|
||||||
load: true
|
load: true
|
||||||
file: ${{ matrix.addon }}/Dockerfile
|
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)
|
## debiantrixie-version-c55d3809 (2026-07-11)
|
||||||
- Update to latest version from linuxserver/docker-baseimage-selkies (changelog : https://github.com/linuxserver/docker-baseimage-selkies/releases)
|
- Update to latest version from linuxserver/docker-baseimage-selkies (changelog : https://github.com/linuxserver/docker-baseimage-selkies/releases)
|
||||||
## 1.13 (10-07-2026)
|
## 1.13 (10-07-2026)
|
||||||
|
|||||||
@@ -9,6 +9,22 @@
|
|||||||
|
|
||||||
ARG BUILD_FROM
|
ARG BUILD_FROM
|
||||||
ARG BUILD_VERSION
|
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}
|
FROM ${BUILD_FROM}
|
||||||
|
|
||||||
##################
|
##################
|
||||||
@@ -89,15 +105,15 @@ RUN set -eux; \
|
|||||||
chmod 0755 /usr/local/bin/ttyd; \
|
chmod 0755 /usr/local/bin/ttyd; \
|
||||||
/usr/local/bin/ttyd --version
|
/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.
|
# Install only the Headroom proxy, code-compression, and MCP features used by this add-on.
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get install -y --no-install-recommends nodejs && \
|
apt-get install -y --no-install-recommends nodejs && \
|
||||||
pip3 install --break-system-packages "headroom-ai[proxy,code,mcp]" && \
|
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 && \
|
apt-get clean && \
|
||||||
rm -rf /var/lib/apt/lists/* /root/.cache
|
rm -rf /var/lib/apt/lists/* /root/.cache
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ arch:
|
|||||||
- aarch64
|
- aarch64
|
||||||
- amd64
|
- amd64
|
||||||
audio: true
|
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:
|
devices:
|
||||||
- /dev/dri
|
- /dev/dri
|
||||||
- /dev/dri/card0
|
- /dev/dri/card0
|
||||||
@@ -62,7 +62,7 @@ ports:
|
|||||||
8787/tcp: 8787
|
8787/tcp: 8787
|
||||||
ports_description:
|
ports_description:
|
||||||
3001/tcp: Claude Desktop web interface
|
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
|
8787/tcp: Headroom dashboard and proxy
|
||||||
privileged:
|
privileged:
|
||||||
- SYS_ADMIN
|
- SYS_ADMIN
|
||||||
@@ -100,5 +100,5 @@ slug: claude_desktop
|
|||||||
tmpfs: true
|
tmpfs: true
|
||||||
udev: true
|
udev: true
|
||||||
url: https://github.com/alexbelgium/hassio-addons
|
url: https://github.com/alexbelgium/hassio-addons
|
||||||
version: "debiantrixie-version-c55d3809-2"
|
version: "1.14"
|
||||||
video: true
|
video: true
|
||||||
|
|||||||
Reference in New Issue
Block a user