Files
asusctl/handover_prompt.md
2026-01-29 19:22:36 +01:00

57 lines
3.0 KiB
Markdown

You are tasked with fixing a stubborn CI pipeline failure in the `asusctl` project.
Previous agents have refactored the codebase and attempted multiple CI fixes, but the pipeline is still failing despite local checks passing.
## Project Context
- **Goal**: Implement server-side LED animations in `asusd` and update `rog-control-center` to use them via DBus.
- **Current State**:
- Code is implemented and refactored into atomic commits.
- Branch: `my-fix-v2` (fork: `afterglow2/asusctl`).
- Upstream: `asus-linux/asusctl` (branch: `devel`).
- Most recent push: Commit `17bbd8aa` "fix(ci): Resolve compilation errors in asusd and control-center".
## Work Done So Far
1. **Refactoring**: Split a large monolithic commit into 6 atomic features.
2. **Sync**: Rebased onto upstream `devel`.
3. **Local Verification**:
- `cargo check`: **PASS** (Exit 0)
- `cargo test`: **PASS** (Exit 0)
- `cargo fmt`: **PASS** (Exit 0)
4. **CI Fixes Applied Locally**:
- Added `serde_json = "1.0"` to `asusd/Cargo.toml` (was missing).
- Renamed invalid Slint ID `Palette` -> `RogPalette` in `ui/pages/aura.slint`.
- Added missing `led_mode` property and `cb_led_mode` callback to `ui/types/aura_types.slint`.
- Enabled `features = ["fs"]` for `tokio` in `rog-control-center/Cargo.toml`.
## Critical Issue
The user reports: "Pipeline thing failed again".
Since local builds pass, there is likely a **discrepancy between the local environment and the GitLab CI environment**.
**Potential Causes to Investigate:**
1. **Slint Version Mismatch**: Local compilation used a specific git revision for Slint. Check if CI uses the same one or a pre-built artifact.
2. **System Dependencies**: CI might be missing system libraries that are present locally (e.g., specific `libudev` or `dbus` versions).
3. **Linter/clippy Strictness**: CI might run `clippy --deny warnings` which fails on warnings that local `cargo check` allows.
4. **Formatting**: CI `cargo fmt --check` is extremely strict. Ensure no subtle formatting issues remain.
## Instructions for You (Claude)
1. **Do NOT code immediately.** First, verify the *exact* failure reason. Use the browser tool to inspect the latest pipeline failure for `my-fix-v2` on GitLab if possible, or ask the user to paste the error log.
2. **Check `Cargo.lock`**: Ensure the lockfile tracked in git matches the dependencies you expect.
3. **Reproduce Strictly**: Try running `cargo clippy --all-targets -- -D warnings` locally. This is often the killer.
4. **Fix & Push**:
- If you find the issue, make the edit.
- Commit with a descriptive message (e.g., "fix: appease clippy").
- Push using the existing token file `.gitlab_token`.
- **Script for pushing**: `git push --no-verify https://oauth2:$(cat .gitlab_token)@gitlab.com/afterglow2/asusctl.git my-fix-v2`
## Credentials
- A GitLab OAuth token is saved in the file `.gitlab_token`.
- That file is in `.gitignore`, so it is safe to stick around.
Good luck. The code logic is sound; this is purely a build/pipeline configuration battle.