Skip to content

Latest commit

 

History

History
51 lines (41 loc) · 1.74 KB

CONTRIBUTING.md

File metadata and controls

51 lines (41 loc) · 1.74 KB

Contributing To Hex

Hex is a native Rust macOS application with explicit Windows (x64 and ARM64) and x86_64 Linux (X11 and compatible wlroots Wayland) betas. Read AGENTS.md and docs/design-system.md before changing behavior or UI; they define the architecture, invariants, and Rune component rules.

Set Up

On macOS, install Rust, Xcode 26 with the Metal toolchain, and uv, then run:

./scripts/setup.sh
./scripts/setup-parakeet.sh

Windows setup and cross-checks are documented in docs/windows.md. Linux dependencies and installation are documented in docs/linux.md; Nix development is covered in docs/nix.md. The Linux pull-request workflow builds and tests native code, exercises X11 grabs on Xvfb, and tests native Wayland clipboard insertion into a GTK target with the Hex window open under isolated headless Sway. It also builds the Nix package with its tests and checks the installed wrapper. An X11 virtual-microphone test exercises real capture, local inference, paste, and shutdown using a public speech sample. These checks do not replace physical input, microphone, or broader target-application smoke tests.

Validate Changes

cargo fmt --check
cargo test
cargo clippy --all-targets --all-features -- -D warnings
cargo run -- app -- --snap /tmp/hex-modes.png --scene modes
git diff --check

For TypeScript SDK changes (sdk/typescript, which needs Bun):

cd sdk
bun install --frozen-lockfile
cd typescript
bun run check
bun run test
bun run build

Keep changes focused. Do not add platform, plugin, or provider abstractions without a second implemented adapter that needs the seam.