mirror of
https://github.com/aaddrick/claude-desktop-debian.git
synced 2026-05-17 08:36:35 +03:00
* ci: run BATS test suite on push and PR The /tests/ directory has 186 BATS tests (launcher-common, launcher-xrdp-detection, and four cowork-*.bats files) but no workflow ever invoked `bats` — the entire suite was effectively inert. A regression in launcher-common.sh or cowork-vm-service.js would not fail any check, including the BATS suite added by PR #395. Add a standalone tests.yml workflow that: - installs bats + nodejs - runs `bats tests/*.bats` - executes on every PR - executes on pushes to main Push triggers are path-filtered to: - tests/ - scripts/ - .github/workflows/tests.yml PR triggers remain unfiltered so required-check behaviour stays predictable. Kept this standalone rather than extending test-artifacts.yml so unit tests run in seconds instead of waiting for full artifact builds. This can be promoted to a build gate later once it proves stable in CI. CODEOWNERS - adds /.github/workflows/tests.yml under @sabiut - keeps /tests/cowork-*.bats ownership with @RayCharlizard This PR only enables CI coverage for existing tests and does not modify cowork test logic. * fix(tests): unset XDG_CONFIG_HOME in cowork-bwrap-config setup The "doctor: reports custom bwrap mounts" and "doctor: warns about disabled critical mount /usr" tests failed in CI but passed locally. Root cause: - _doctor_check_bwrap_mounts in scripts/doctor.sh resolves the config dir via ${XDG_CONFIG_HOME:-$HOME/.config}/Claude - The test setup() only sandboxes HOME via TEST_TMP - GitHub Actions runners export XDG_CONFIG_HOME ambient - Function reads the runner's real config dir, not the test fixture, and silently emits no output - Assertions on /opt/tools, WARN, etc. fail Surfaced by PR #520 wiring BATS into CI for the first time; the bug existed before but was hidden by the suite never running. Fix: unset XDG_CONFIG_HOME in setup() so the function falls back to \$HOME/.config (which is sandboxed). Comment in the file documents why HOME alone is insufficient. Verified: 186/186 pass with XDG_CONFIG_HOME set ambient (reproduces CI env).
101 lines
4.1 KiB
Plaintext
101 lines
4.1 KiB
Plaintext
# CODEOWNERS — per-subsystem review ownership
|
|
#
|
|
# Rules match top-to-bottom; the LAST matching rule wins.
|
|
# Layout:
|
|
# 1. Default owner
|
|
# 2. Explicit @aaddrick assignments grouped by logical role
|
|
# (listed even where redundant, so the intent is visible to
|
|
# future collaborators scanning the file)
|
|
# 3. Cowork and Nix overrides at the bottom so they stick
|
|
#
|
|
# Each listed user must be a repo collaborator (Settings →
|
|
# Collaborators) with at least read access, or GitHub silently
|
|
# ignores them.
|
|
|
|
# ---- Default: aaddrick owns anything not explicitly claimed ----
|
|
* @aaddrick
|
|
|
|
# ---- Build orchestration ----
|
|
# The top-level dispatcher and shared shell utilities.
|
|
/build.sh @aaddrick
|
|
/scripts/_common.sh @aaddrick
|
|
|
|
# ---- Setup (host detection, dependencies, upstream download) ----
|
|
/scripts/setup/ @aaddrick
|
|
|
|
# ---- Electron patches / minified JS ----
|
|
# The regex-driven patches applied to the unpacked app.asar, plus
|
|
# the frame-fix wrapper and native-binding stubs that ride along.
|
|
/scripts/patches/_common.sh @aaddrick
|
|
/scripts/patches/app-asar.sh @aaddrick
|
|
/scripts/patches/titlebar.sh @aaddrick
|
|
/scripts/patches/claude-code.sh @aaddrick
|
|
/scripts/frame-fix-wrapper.js @aaddrick
|
|
/scripts/claude-native-stub.js @aaddrick
|
|
|
|
# ---- Linux desktop integration ----
|
|
# Tray, menu bar, and quick-window behavior on Wayland/X11.
|
|
/scripts/patches/tray.sh @aaddrick
|
|
/scripts/patches/quick-window.sh @aaddrick
|
|
|
|
# ---- Staging (non-cowork) ----
|
|
# Electron copy-out, icon processing, locales, SSH helpers.
|
|
/scripts/staging/electron.sh @aaddrick
|
|
/scripts/staging/icons.sh @aaddrick
|
|
/scripts/staging/locales.sh @aaddrick
|
|
/scripts/staging/ssh-helpers.sh @aaddrick
|
|
|
|
# ---- Packaging formats (deb, rpm, AppImage) + runtime launcher ----
|
|
/scripts/packaging/ @aaddrick
|
|
/scripts/launcher-common.sh @aaddrick
|
|
|
|
# ---- Distribution & signing ----
|
|
# APT/DNF repo publishing, GPG signing, release automation.
|
|
# Most of this lives in workflows — gh-pages branch content isn't
|
|
# reachable via CODEOWNERS.
|
|
/.github/workflows/ @aaddrick
|
|
/scripts/resolve-download-url.py @aaddrick
|
|
|
|
# ---- CI / other GitHub metadata ----
|
|
/.github/ @aaddrick
|
|
|
|
# ---- Docs & style ----
|
|
/README.md @aaddrick
|
|
/CLAUDE.md @aaddrick
|
|
/STYLEGUIDE.md @aaddrick
|
|
/docs/ @aaddrick
|
|
|
|
# ---- Testing & release quality ----
|
|
# Integration test suite, artifact validation, flag-parsing tests,
|
|
# and the --doctor diagnostic tool. Cowork-specific tests stay with
|
|
# @RayCharlizard via the override below.
|
|
/tests/ @sabiut
|
|
/scripts/doctor.sh @sabiut
|
|
/.github/workflows/test-artifacts.yml @sabiut
|
|
/.github/workflows/test-flags.yml @sabiut
|
|
/.github/workflows/tests.yml @sabiut
|
|
|
|
# Shared review — either owner can approve.
|
|
# TROUBLESHOOTING is mostly the --doctor user-facing guide; lint
|
|
# touches everything, so either maintainer can sign off.
|
|
/docs/TROUBLESHOOTING.md @aaddrick @sabiut
|
|
/.github/workflows/shellcheck.yml @aaddrick @sabiut
|
|
|
|
#===============================================================================
|
|
# Overrides — listed last so their assignments stick against the
|
|
# broad globs above (/docs/, /.github/, etc.)
|
|
#===============================================================================
|
|
|
|
# ---- Cowork ----
|
|
# Electron-side patching, staging, daemon, and integration tests.
|
|
/scripts/patches/cowork.sh @RayCharlizard
|
|
/scripts/staging/cowork-resources.sh @RayCharlizard
|
|
/scripts/cowork-vm-service.js @RayCharlizard
|
|
/tests/cowork-*.bats @RayCharlizard
|
|
/docs/cowork-*.md @RayCharlizard
|
|
|
|
# ---- Nix ----
|
|
/flake.nix @typedrat
|
|
/flake.lock @typedrat
|
|
/nix/ @typedrat
|