get2knowio / get2knowio/devcontainer-templates

ai-clis feature: codeRabbit and qmd fail to install on arm64 (Ubuntu Noble)

Open
#2 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Shell
Stars
3
Forks
0
PR merge metrics
No merged PRs in 30d

Description

## Summary

Two tools in the `ai-clis` feature fail to install when building a devcontainer on **arm64** (Apple Silicon / OrbStack) with Ubuntu Noble as the base image. The feature uses `set -e`, so either failure aborts the entire feature install.

## Failures

### 1. `codeRabbit` — installer exits non-zero on arm64

The CodeRabbit installer (`curl -fsSL https://cli.coderabbit.ai/install.sh | ... sh`) prints `[SUCCESS] Installation complete` but returns a non-zero exit code on arm64. With `set -e`, this immediately kills the feature script.

**Log excerpt:**
```
[INFO] Platform: linux-arm64
[INFO] Downloading CodeRabbit CLI...
[INFO] Installing to /usr/local/bin/coderabbit
[SUCCESS] Installation verified
[SUCCESS] Installation complete
ERROR: Feature "AI CLI Tools" failed to install! ← exit code: 2
```

### 2. `qmd` — node-gyp native build fails (Python `shlex` missing)

`npm install -g @tobilu/qmd` requires building native modules (`tree-sitter-javascript`) via node-gyp. The build fails because Python cannot import `shlex`, which is a standard library module — suggesting the Python runtime in the container is broken or sandboxed in a way that breaks gyp.

**Log excerpt:**
```
npm error ModuleNotFoundError: No module named 'shlex'
npm error gyp ERR! configure error
npm error gyp ERR! stack Error: `gyp` failed with exit code: 1
npm error gyp ERR! cwd .../node_modules/@tobilu/qmd/node_modules/tree-sitter-javascript
```

## Environment

- Host: macOS (Apple Silicon, arm64)
- Container runtime: OrbStack
- Base image: `mcr.microsoft.com/devcontainers/base:ubuntu` (Ubuntu 24.04 Noble)
- Node version: 22.22.3 (via `devcontainers/features/node:1`)
- `ai-clis` feature version: 2.0.6

## Workaround

Adding `"omit": "codeRabbit,qmd"` to the feature options in `devcontainer.json` allows the build to succeed.

## Suggested Fixes

- **codeRabbit**: Investigate whether the CodeRabbit installer's arm64 path has an issue, or wrap the install in `|| true` to make it non-fatal.
- **qmd**: Either skip native-module packages that require gyp, or ensure `python3` is properly available (with standard library intact) before the npm install. Alternatively consider wrapping with `|| echo "Warning: qmd installation failed"` similar to how Claude Code is handled.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.