Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,7 @@ jobs:
uses: ./.github/actions/setup-coldvox

- name: Start Xvfb
uses: GabrielBB/action-xvfb@v1
uses: GabrielBB/xvfb-action@v1
with:
run: |
set -euo pipefail
Expand Down
45 changes: 45 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,51 @@ Default: `silero`, `text-injection`
- `docs/architecture.md` - System design and future vision
- `docs/domains/` - Domain-specific technical docs

## CI Environment

> **Principle**: The self hosted runner on the laptop is used for hardware tests, CI for everything else.

See [CI Architecture](docs/dev/CI/architecture.md) for full details.

### Self-Hosted Runner (Fedora/Nobara)

| Fact | Implication |
|------|-------------|
| **Live KDE Plasma session** | NO Xvfb needed. Use real `$DISPLAY`. |
| **Fedora-based** | `apt-get` does NOT exist. Use `dnf`. |
| **Always available** | Auto-login, survives reboots. |
| **Warm sccache** | Incremental builds ~2-3 min. |

### CI Split

| Task | Runner | Why |
|------|--------|-----|
| `cargo fmt`, `cargo clippy` | GitHub-hosted | Fast, parallel, free |
| `cargo audit`, `cargo deny` | GitHub-hosted | Security checks, no build needed |
| `cargo build` | **Self-hosted** | Warm cache, THE build |
| Hardware tests | **Self-hosted** | Requires display/audio/clipboard |

### DON'T (Common AI Mistakes)

```yaml
# WRONG - runner has live display, also uses apt-get internally
- uses: GabrielBB/xvfb-action@v1

# WRONG - this is Fedora, not Ubuntu
- run: sudo apt-get install -y xdotool

# WRONG - real display is :0
env:
DISPLAY: ":99"

# WRONG - delays self-hosted by 5-10 min
hardware:
needs: [lint, build]

# WRONG - wasted work, can't share artifacts with Fedora
- run: cargo build # On ubuntu-latest
```

## PR Checklist

- [ ] `just lint` passes
Expand Down
Loading
Loading