6 Commits
Author SHA1 Message Date
e349124fc4 native-compat: remove [api] and [dependencies] before horizon-mixins, as the launcher does (#364)
The launcher strips these launcher-only tables before horizon-mixins reads a
bundle's manifest (native_mods/api.rs). The check passed them through, so a
mod with a trait package (cpm, #317) failed with E_MANIFEST "unknown field api"
while players' launchers apply it. Mods with an API package are applied but
not compiled, as health already leaves them out.

Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-07 09:35:45 +01:00
d2de4c18de native health: cargo check the mods that apply, and mark those whose own code doesn't compile (#313)
* native health: also cargo check, and mark the mods whose own code doesn't compile

The daily check only applied the mods, so versions that apply but don't
compile on the newest Nightly (eatinganimation's ItemRenderState, hitbox_plus's
module path, carryblock's removed Dim::min_y...) weren't marked broken_on,
while every player's build leaves them out.

After the apply pass, the mods that apply are checked together (cargo check,
with Horizon's `mods` feature) in rounds: each round's errors are traced to the
mod whose helper or support module holds them (scripts/native_trace.py, the
launcher's rule), those mods and the ones needing them leave, and the rest
compile again. An error of the kind two mods cause together (a name defined
twice...) is checked again with that mod alone, so a pair is never marked.
Mods that use an API the launcher prepares ([api], trait_method) aren't
compiled here. Dependencies and horizon-mixins come from the Actions cache.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* native health: trace helpers whose signature holds an array type, mask each file once

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* native health: an error in the call horizon-mixins generates for a helper is the helper's mod's

Co-Authored-By: Claude Opus 5.5 <[email protected]>

---------

Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-06 00:53:49 +01:00
037298b5a7 native health: mark only the mods that don't apply with just what they need (#309)
The first daily run (42099210086) marked horizon_physics broken for an
E_OVERWRITE_CONFLICT with another mod: a pair conflict, not a mod that
fails on the Nightly. Each mod refused in the full set is now applied
again with only the mods it needs, and is broken on that Horizon only if
horizon-mixins still refuses it.

Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 21:19:25 +01:00
68bd653d9c Check native mods on the newest Nightly, together, before publish (#308)
Players' native builds broke on mods made for an older Horizon (targets moved
by the crate split, a support module refused by a glob) and the whole build
failed. scripts/native_compat.py applies mods as the launcher builds them:

- check (pull requests): each new native-mod version on the newest Nightly
  with the 20 most downloaded native mods, horizon-mixins apply then cargo
  check, and its support modules' (file, name) against every registry mod's.
- health (daily, native-compat.yml): every native mod's newest version on the
  newest Nightly; the ones horizon-mixins refuses go to the native-health
  release, and publish marks them `broken_on` in index.json so the launcher
  warns before an install.

The PR job runs main's script with a read-only token; the submission's build
scripts run under that token only.

Co-authored-by: Horizon agent <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-11-05 20:59:55 +01:00
Ludovic MarieandClaude Opus 5.5 006ca9fa3c Point links at the horizon-rust organization (#12)
The repositories moved from ludovic111 to horizon-rust. GitHub redirects the
repository URLs, but not GitHub Pages: the index now lives at
https://horizon-rust.github.io/horizon-mods/. The build passes --site so icon
URLs use the new address without waiting for a new cargo-horizon-mod.

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-10-27 21:22:11 +01:00
Ludovic MarieandClaude Opus 5.5 52e1f7d0f9 The registry: coords_hud, the checks, publishing to Pages, the weekly cleanup
- mods/coords_hud.toml: the SDK's example mod, MIT, built from
  crates/horizon-mod-sdk/examples/coords-hud in Horizon.
- check.yml: a pull request's changes, each new file's checks and a trial
  run in the sandbox, the index it would publish (cargo horizon-mod from
  Horizon at HORIZON_REV).
- publish.yml: on main, new versions become releases, index.json and the
  icons go to GitHub Pages.
- cleanup.yml: staging copies nobody needs, weekly.
- CODEOWNERS, the report form, the pull request template, revoked.toml.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 15:01:10 +01:00