Skip to content

fix: unbreak main, and add the CI that would have caught it - #9

Merged
stormer78 merged 1 commit into
mainfrom
fix/broken-main-and-no-ci
Aug 24, 2026
Merged

fix: unbreak main, and add the CI that would have caught it#9
stormer78 merged 1 commit into
mainfrom
fix/broken-main-and-no-ci

Conversation

@stormer78

Copy link
Copy Markdown
Contributor

main does not compile.

error[E0223]: ambiguous associated type
   --> src/config.rs:280:23
    |
280 |             identity: Identity::PnmSession {

#7 and #8 both edited the test module in src/config.rs, from branches that did not know about each other. Git merged them cleanly — the blocks are textually distinct — but #7's test references Identity::PnmSession, an enum variant #8 deleted. A textual merge cannot see that; only building the result can.

Nothing built the result. This repo has shipped eight PRs with no CI at all, only a DCO check.

It stayed quiet because the breakage is confined to the test target: cargo build still succeeds, so anyone cloning to use the plugin would not notice, and anyone cloning to work on it would trip over it immediately with no way to tell it was pre-existing rather than their own doing.

The fix

Removes the stale test — #8 already covers its intent with the_sessions_dir_is_never_left_to_a_default — and adds CI.

The CI, and why it looks like this

  • fmt, clippy, test under RUSTFLAGS=-D warnings.
  • On macOS, deliberately. Two of the bugs shipped in this repo were platform-specific paths — pnm stores config under dirs::config_dir(), which is ~/Library/Application Support on macOS and ~/.config on Linux. A Linux-only runner would have been green through both.
  • On merge_group as well as pull_request, because "a PR that was green on its own branch" is exactly what just broke main. Checking only the branch would not have caught this.
  • A manifest job. The plugin JSON files and the command/skill frontmatter are what a person meets before any Rust runs; a malformed plugin.json breaks the plugin without breaking the build, so the build alone would never report it.

Every step was dry-run locally before being committed — a CI file that has never executed is a guess, and this PR is about not guessing.

Testing

cargo test — 84 pass. cargo clippy --all-targets --all-features clean under -D warnings. cargo fmt --check clean. Both CI jobs' commands run locally.

main does not compile. #7 and #8 both edited the test module in
src/config.rs from branches that did not know about each other. Git merged
them cleanly — the blocks are textually distinct — but #7's test
references `Identity::PnmSession`, an enum variant #8 deleted. A textual
merge cannot see that; only building the result can.

Nothing built the result. This repo has shipped eight PRs with no CI at
all, only a DCO check, so a main that fails `cargo test` merged and sat
there. The library and binary still build, which is why it was quiet: the
breakage is confined to the test target, so anyone cloning to *use* the
plugin would not notice, and anyone cloning to *work* on it would trip
over it immediately with no idea it was pre-existing.

Removes the stale test — #8 already covers its intent — and adds CI:

- fmt, clippy and test under RUSTFLAGS=-D warnings.
- On **macOS**, deliberately. Two of the bugs shipped here were
  platform-specific paths (`dirs::config_dir()` is ~/Library/Application
  Support, not ~/.config), and a Linux-only runner would have been green
  through both.
- On `merge_group` as well as `pull_request`, because a PR green on its own
  branch is exactly what just broke main when combined with another.
- A manifest job: the plugin JSON files and the command/skill frontmatter
  are what a person meets before any Rust runs, and a malformed one breaks
  the plugin without breaking the build.

Every step was dry-run locally before being committed, since a CI file
that has never executed is a guess.

Signed-off-by: Glenn Gore <glenn.gore@gmail.com>
@stormer78
stormer78 merged commit 20e3686 into main Aug 24, 2026
3 checks passed
@stormer78
stormer78 deleted the fix/broken-main-and-no-ci branch August 24, 2026 14:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant