Commit Graph
1608 Commits
Author SHA1 Message Date
pkuzicandClaude Opus 5.5 8be58bde18 MONKEY (leftovers): warm the two sun-shadow proxy lanes in the menagerie
ShadowCasterMaterial and CutoutShadowCasterMaterial get one warm rig each (production attribute
sets, layers 0+31: the world camera mints the forward pipeline, a live sun rig's shadow views the
depth one). The cutout pair (MAY_DISCARD opaque + prepass) otherwise first compiles when the first
leaf card enters sun-rig reach, after the cover lifts. Fixes the failing
pipe_warm::menagerie::every_material_lane_has_a_warm_contributor census for real.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 16:51:30 +01:00
pkuzicandClaude Opus 5.5 af38c6eec8 MONKEY (leftovers): warm the two sun-shadow proxy lanes in the menagerie
ShadowCasterMaterial and CutoutShadowCasterMaterial get one warm rig each (production attribute
sets, layers 0+31: the world camera mints the forward pipeline, a live sun rig's shadow views the
depth one). The cutout pair (MAY_DISCARD opaque + prepass) otherwise first compiles when the first
leaf card enters sun-rig reach, after the cover lifts. Fixes the failing
pipe_warm::menagerie::every_material_lane_has_a_warm_contributor census for real.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 16:51:30 +01:00
pkuzicandClaude Opus 5.5 2776a5c1b2 MONKEY (fix-wind): log the live foliageWind tier; test the player-path rows
The review report (grass and tree sway not moving in the play build) did not
reproduce: the release/play exe publishes grass and tree strength 1 with
foliageWind absent from the config, and capture pairs show sway. The tier is
now logged at boot and on every change so a player run shows what the
receivers were given, and a test holds the no-pin default path: moving
travel, grass and tree rows set, tier 0 clearing them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 16:21:45 +01:00
pkuzicandClaude Opus 5.5 37dcd39e51 MONKEY (fix-wind): log the live foliageWind tier; test the player-path rows
The review report (grass and tree sway not moving in the play build) did not
reproduce: the release/play exe publishes grass and tree strength 1 with
foliageWind absent from the config, and capture pairs show sway. The tier is
now logged at boot and on every change so a player run shows what the
receivers were given, and a test holds the no-pin default path: moving
travel, grass and tree rows set, tier 0 clearing them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 16:21:45 +01:00
pkuzicandClaude Opus 5.5 bcd3150086 MONKEY (leftovers): sun shafts - skybox 0x8 forces them; the sky mask ignores depth-0 below the horizon
0x8: the sky's weight lifts the daylight fade so a low/just-set sun keeps full shafts.
Mask: water writes no depth, so the sea under the horizon read as sky and got a shaft lift
(Westfall sunset: up to 9.7 levels on the water, 0 above the horizon after). The mask pass now
binds the view uniform and keeps depth-0 only where the view ray is above -0.01 elevation.
Adds the leftovers-sea-sunset capture scenario.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 15:55:38 +01:00
pkuzicandClaude Opus 5.5 ffaa7863d3 MONKEY (leftovers): sun shafts - skybox 0x8 forces them; the sky mask ignores depth-0 below the horizon
0x8: the sky's weight lifts the daylight fade so a low/just-set sun keeps full shafts.
Mask: water writes no depth, so the sea under the horizon read as sky and got a shaft lift
(Westfall sunset: up to 9.7 levels on the water, 0 above the horizon after). The mask pass now
binds the view uniform and keeps depth-0 only where the view ray is above -0.01 elevation.
Adds the leftovers-sea-sunset capture scenario.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 15:55:38 +01:00
pkuzicandClaude Opus 5.5 72dd5a0ce8 MONKEY (leftovers): LightSkybox flags 0x8/0x10 plumbing; 0x10 suppresses the Modern sun-fog lobe
SKYBOX_FORCE_SUN_SHAFTS (0x8) and SKYBOX_NO_SUN_FOG (0x10) constants, CameraSkybox::flag_weight
(heaviest main layer carrying a flag). update_fog_model scales sun_fog_strength by 1 - weight of a
0x10 sky. LIGHTING.md documents both flags (0x8 consumer lands in the next commit).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 15:55:15 +01:00
pkuzicandClaude Opus 5.5 218ff0cfc0 MONKEY (leftovers): LightSkybox flags 0x8/0x10 plumbing; 0x10 suppresses the Modern sun-fog lobe
SKYBOX_FORCE_SUN_SHAFTS (0x8) and SKYBOX_NO_SUN_FOG (0x10) constants, CameraSkybox::flag_weight
(heaviest main layer carrying a flag). update_fog_model scales sun_fog_strength by 1 - weight of a
0x10 sky. LIGHTING.md documents both flags (0x8 consumer lands in the next commit).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 15:55:15 +01:00
pkuzicandGPT-5.6 Sol (Codex) de8ff38eec MONKEY (optional): add local sky and grading patch builder
Build Blizzard-derived sky assets only from the user's own CASC install, merge lighting DBCs from mounted winners, and pack a preserved patch-Z candidate. Include bilingual install and recovery guidance plus project-owned grading data.

Verified all 46 default stage payloads byte-identical to the reviewed stage; moderated WoW Forever LightIntBand byte-identical; band and mounted-chain checks pass on a hard-linked client copy. No Cargo command run.

Co-Authored-By: GPT-5.6 Sol (Codex)
2026-09-26 15:19:25 +01:00
pkuzicandGPT-5.6 Sol (Codex) 67388625ec MONKEY (optional): add local sky and grading patch builder
Build Blizzard-derived sky assets only from the user's own CASC install, merge lighting DBCs from mounted winners, and pack a preserved patch-Z candidate. Include bilingual install and recovery guidance plus project-owned grading data.

Verified all 46 default stage payloads byte-identical to the reviewed stage; moderated WoW Forever LightIntBand byte-identical; band and mounted-chain checks pass on a hard-linked client copy. No Cargo command run.

Co-Authored-By: GPT-5.6 Sol (Codex)
2026-09-26 15:19:25 +01:00
pkuzicandClaude Opus 5.5 5edb152db1 README: Everwood graphics fork header — features, upstream link, open contributions
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 14:27:33 +01:00
pkuzicandClaude Opus 5.5 5102550b2e README: Everwood graphics fork header — features, upstream link, open contributions
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 14:27:33 +01:00
Sam SungandClaude Opus 5.5 b17be2710f A repair the purse cannot cover is refused with the not-enough-money error, as in 1.12.1 (#443)
- A repair the purse cannot cover is refused as in 1.12.1: the not-enough-money error and its voice line, no repair sound, nothing sent; Repair All tests the worn gear alone
- Tidy three comments: the gift-wrap getter's reader, the repair-reset test's claim, the merchant module doc's width

Fixes #412

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 18:01:39 +07:00
Sam SungandClaude Opus 5.5 6982109d86 A repair the purse cannot cover is refused with the not-enough-money error, as in 1.12.1 (#443)
- A repair the purse cannot cover is refused as in 1.12.1: the not-enough-money error and its voice line, no repair sound, nothing sent; Repair All tests the worn gear alone
- Tidy three comments: the gift-wrap getter's reader, the repair-reset test's claim, the merchant module doc's width

Fixes #412

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 18:01:39 +07:00
Sam SungandClaude Opus 5.5 7c967eaf8d Repair costs and flight fares take 1.12.1's price discount: 10% at Honored, up to 10% more by honor rank at a PvP-flagged vendor (#439)
- Repair costs take the vendor's price discount, 10% off at Honored and up to 10% more by honor rank at a PvP-flagged vendor, rounded as 1.12.1 rounds them
- Flight map fares take the flight master's price discount, as 1.12.1 shows them, while an express flight still sends the full fare

Fixes #411
Fixes #434

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 17:20:10 +07:00
Sam SungandClaude Opus 5.5 211f9bfabf Repair costs and flight fares take 1.12.1's price discount: 10% at Honored, up to 10% more by honor rank at a PvP-flagged vendor (#439)
- Repair costs take the vendor's price discount, 10% off at Honored and up to 10% more by honor rank at a PvP-flagged vendor, rounded as 1.12.1 rounds them
- Flight map fares take the flight master's price discount, as 1.12.1 shows them, while an express flight still sends the full fare

Fixes #411
Fixes #434

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 17:20:10 +07:00
Sam SungandClaude Opus 5.5 2376fff914 Repair mode ends on a right mouse-down in the world and when a targeted spell arms, as in 1.12.1 (#435)
- Casting a targeted spell ends repair mode, as 1.12.1's targeting arm writes its cursor over Repair
- A right mouse-down on the world ends repair mode, as 1.12.1's WorldFrame hook resets the cursor to Point

Fixes #420
Fixes #422

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 16:23:36 +07:00
Sam SungandClaude Opus 5.5 d13648a5e0 Repair mode ends on a right mouse-down in the world and when a targeted spell arms, as in 1.12.1 (#435)
- Casting a targeted spell ends repair mode, as 1.12.1's targeting arm writes its cursor over Repair
- A right mouse-down on the world ends repair mode, as 1.12.1's WorldFrame hook resets the cursor to Point

Fixes #420
Fixes #422

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 16:23:36 +07:00
Sam SungandClaude Opus 5.5 cc14233a2e contributing: where to start, a pull request finished here, and the counts and paths as they are (#433)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 15:56:47 +07:00
Sam SungandClaude Opus 5.5 5c7ef3a402 contributing: where to start, a pull request finished here, and the counts and paths as they are (#433)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 15:56:47 +07:00
Sam SungandClaude Opus 5.5 24a8fb274c ClearCursor signals CURSOR_UPDATE on every call, an empty cursor included, as 1.12.1's shared tail does (#432)
Fixes #425

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 15:38:21 +07:00
Sam SungandClaude Opus 5.5 05b1441c96 ClearCursor signals CURSOR_UPDATE on every call, an empty cursor included, as 1.12.1's shared tail does (#432)
Fixes #425

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 15:38:21 +07:00
Sam SungandClaude Opus 5.5 e26e234d03 Right-clicking a bag or worn item puts a held item back first, as 1.12.1 clears the cursor before any use (#431)
- Right-clicking a bag or worn item puts a held item back first, as 1.12.1 clears the cursor before any use
- The bag frame's end-to-end test: a right-click with a held item puts it back, then uses the slot

Fixes #413
Fixes #421

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 15:25:41 +07:00
Sam SungandClaude Opus 5.5 863998aa54 Right-clicking a bag or worn item puts a held item back first, as 1.12.1 clears the cursor before any use (#431)
- Right-clicking a bag or worn item puts a held item back first, as 1.12.1 clears the cursor before any use
- The bag frame's end-to-end test: a right-click with a held item puts it back, then uses the slot

Fixes #413
Fixes #421

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 15:25:41 +07:00
Sam SungandClaude Opus 5.5 12bba15345 Repair All greys out after a repair: its total is swept before the inventory event that refreshes the button (#426)
Fixes #417

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 15:09:32 +07:00
Sam SungandClaude Opus 5.5 cf969431a3 Repair All greys out after a repair: its total is swept before the inventory event that refreshes the button (#426)
Fixes #417

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 15:09:32 +07:00
ab897f76d6 /dnd clears a standing AFK first, as every chat type but AFK does (#186)
- fix: clear a standing AFK when /dnd is sent
- The AFK clear runs once, ahead of the type arms, and a test drives /afk then /dnd through the real drain

Fixes #185

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Sam <samuv.eth@gmail.com>
2026-09-26 14:51:49 +07:00
4ebc2a9f23 /dnd clears a standing AFK first, as every chat type but AFK does (#186)
- fix: clear a standing AFK when /dnd is sent
- The AFK clear runs once, ahead of the type arms, and a test drives /afk then /dnd through the real drain

Fixes #185

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Sam <samuv.eth@gmail.com>
2026-09-26 14:51:49 +07:00
f8e0e6c702 The trainer's ability icon shows its spell tooltip on the first hover (#158)
- Fix trainer tooltip on first hover
- The spell-tooltip feed keeps its in-game gate, and a test holds it after the trainer feed

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Sam <samuv.eth@gmail.com>
2026-09-26 14:41:33 +07:00
2f35f63274 The trainer's ability icon shows its spell tooltip on the first hover (#158)
- Fix trainer tooltip on first hover
- The spell-tooltip feed keeps its in-game gate, and a test holds it after the trainer feed

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Sam <samuv.eth@gmail.com>
2026-09-26 14:41:33 +07:00
36b1c93fcd Repair mode: bag and worn-item clicks in 1.12.1's order, right-clicks clearing the cursor first (#378)
- fix: repair mode
- repair mode: a right-click puts a held payload back, then repairs the item
- repair clicks sound ITEM_REPAIR as they are sent, under the kit's no-duplicates gate
- the repair-all button is no longer driven from Rust
- repair mode: the click bindings' order, for every cursor payload
- worn-item repair clicks drain beside the bag's, in no system of their own

Fixes #147
Fixes #148

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Sam <samuv.eth@gmail.com>
2026-09-26 13:42:44 +07:00
263ea062ab Repair mode: bag and worn-item clicks in 1.12.1's order, right-clicks clearing the cursor first (#378)
- fix: repair mode
- repair mode: a right-click puts a held payload back, then repairs the item
- repair clicks sound ITEM_REPAIR as they are sent, under the kit's no-duplicates gate
- the repair-all button is no longer driven from Rust
- repair mode: the click bindings' order, for every cursor payload
- worn-item repair clicks drain beside the bag's, in no system of their own

Fixes #147
Fixes #148

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Sam <samuv.eth@gmail.com>
2026-09-26 13:42:44 +07:00
pkuzic 4bf3e51c3c Merge graphics-programme (visual fixes: ocean fog wedge, cloud ring, whitecaps, skybox allocs, fog clock) into main 2026-09-26 06:02:01 +01:00
pkuzic 942c0e47a0 Merge graphics-programme (visual fixes: ocean fog wedge, cloud ring, whitecaps, skybox allocs, fog clock) into main 2026-09-26 06:02:01 +01:00
pkuzicandClaude Opus 5.5 5f78d55794 MONKEY (visualfix): volumetric fog density follows the rendered clock
The dawn/weather density curve read WorldTime, the server clock, which stays at its noon default
offline, so a manual or capture time never got the dawn mist. It now reads the rendered minute
through grading's rendered_minute (the same rule as ac9a1ef3). Baselines move: volfog-dawn is
mistier (MAE 8.5), volfog-night is unchanged (0.07).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 06:00:26 +01:00
pkuzicandClaude Opus 5.5 f5c58c81a2 MONKEY (visualfix): volumetric fog density follows the rendered clock
The dawn/weather density curve read WorldTime, the server clock, which stays at its noon default
offline, so a manual or capture time never got the dawn mist. It now reads the rendered minute
through grading's rendered_minute (the same rule as ac9a1ef3). Baselines move: volfog-dawn is
mistier (MAE 8.5), volfog-night is unchanged (0.07).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 06:00:26 +01:00
pkuzicandClaude Opus 5.5 2193f9d33e MONKEY (visualfix): skybox animation stops allocating and re-uploading per frame
Review leftover #17. animate_skyboxes keeps its per-model clocks across frames (a path String is
cloned only when a model first shows), poses into reused buffers (SkyRig::pose_into), and
re-skins and re-uploads a skinned batch only when its model's pose changed (a generation
counter). resolve_camera_skybox compares paths with an allocation-free norm_eq and owns only the
winning WMO skybox name. Test: norm_eq agrees with norm.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 06:00:26 +01:00
pkuzicandClaude Opus 5.5 2e384482b8 MONKEY (visualfix): skybox animation stops allocating and re-uploading per frame
Review leftover #17. animate_skyboxes keeps its per-model clocks across frames (a path String is
cloned only when a model first shows), poses into reused buffers (SkyRig::pose_into), and
re-skins and re-uploads a skinned batch only when its model's pose changed (a generation
counter). resolve_camera_skybox compares paths with an allocation-free norm_eq and owns only the
winning WMO skybox name. Test: norm_eq agrees with norm.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 06:00:26 +01:00
pkuzicandClaude Opus 5.5 d26898a3e8 MONKEY (visualfix): whitecaps break in scattered short runs, not a lattice
The fold mask came from the two long wave bands only, which cross in a regular diamond lattice:
every crest broke into the same elongated patch. The mask adds the next two bands' compression,
a slow domain-warped gust field moves the break threshold and calms patches, and ~6 yd warped
segments break each crest into short runs. Geometry is unchanged; crest foam stays on steep waves.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 06:00:26 +01:00
pkuzicandClaude Opus 5.5 d78948d5c5 MONKEY (visualfix): whitecaps break in scattered short runs, not a lattice
The fold mask came from the two long wave bands only, which cross in a regular diamond lattice:
every crest broke into the same elongated patch. The mask adds the next two bands' compression,
a slow domain-warped gust field moves the break threshold and calms patches, and ~6 yd warped
segments break each crest into short runs. Geometry is unchanged; crest foam stays on steep waves.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 06:00:26 +01:00
pkuzicandClaude Opus 5.5 9c2eadd98d MONKEY (visualfix): High cloud detail no longer punches a ring round the glow
The erosion weight 4a(1-a) was 0.84 in dense cloud (a = 0.7), so one low base-octave detail cell
(~5 degrees) cut a round hole in the mass, and the detail's mean (0.573, not 0.5) lifted the
plateau around it: a hard ring near the sun, rimmed by the silver lining. Erosion is now centred
on the detail's mean and weighted 6.75a(1-a)^2 (thin edges keep the cauliflower, dense cores
keep their shape); thin cloud is not self-shadowed, and the silver lining reads a wider
footprint ahead and is capped. Cloud behind the glow is a diffuse brightening again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 06:00:26 +01:00
pkuzicandClaude Opus 5.5 5ddad6ef35 MONKEY (visualfix): High cloud detail no longer punches a ring round the glow
The erosion weight 4a(1-a) was 0.84 in dense cloud (a = 0.7), so one low base-octave detail cell
(~5 degrees) cut a round hole in the mass, and the detail's mean (0.573, not 0.5) lifted the
plateau around it: a hard ring near the sun, rimmed by the silver lining. Erosion is now centred
on the detail's mean and weighted 6.75a(1-a)^2 (thin edges keep the cauliflower, dense cores
keep their shape); thin cloud is not self-shadowed, and the silver lining reads a wider
footprint ahead and is capped. Cloud behind the glow is a diffuse brightening again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 06:00:26 +01:00
Sam SungandClaude Opus 5.5 98b0733013 contributing: what happens to a pull request after it is opened (#404)
A maintainer reviews it against the reference and usually finishes it on the contributor's branch
(a rebase, a fix, a test, a comment) rather than sending it back, so "Allow edits by maintainers"
stays ticked; it lands as one squash-merged commit with the contributor as its author, or, when
what lands would be mostly ours, as our own commit crediting them as co-author.

Docs only; no gate reads it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 11:59:13 +07:00
Sam SungandClaude Opus 5.5 11e185fc09 contributing: what happens to a pull request after it is opened (#404)
A maintainer reviews it against the reference and usually finishes it on the contributor's branch
(a rebase, a fix, a test, a comment) rather than sending it back, so "Allow edits by maintainers"
stays ticked; it lands as one squash-merged commit with the contributor as its author, or, when
what lands would be mostly ours, as our own commit crediting them as co-author.

Docs only; no gate reads it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 11:59:13 +07:00
pkuzicandClaude Opus 5.5 1895461d5c MONKEY (visualfix): volumetric haze meets the ocean at its surface, not the seabed
Water writes no depth, so the haze pass measured the seabed behind it, and water with no seabed
behind it (depth 0 below the horizon) read as sky and took no haze. The underwater slope of an
island drew a hard-edged wedge across the sea (water-ocean at High). With an ocean footprint in
reach and the eye above sea level, a point below sea level is now hazed at the ocean plane.
Samples past the cascade's far bound take the ray's mean covered visibility instead of 0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 05:05:55 +01:00
pkuzicandClaude Opus 5.5 1a892794ce MONKEY (visualfix): volumetric haze meets the ocean at its surface, not the seabed
Water writes no depth, so the haze pass measured the seabed behind it, and water with no seabed
behind it (depth 0 below the horizon) read as sky and took no haze. The underwater slope of an
island drew a hard-edged wedge across the sea (water-ocean at High). With an ocean footprint in
reach and the eye above sea level, a point below sea level is now hazed at the ocean plane.
Samples past the cascade's far bound take the ray's mean covered visibility instead of 0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 05:05:55 +01:00
pkuzic 6ea2291fc6 Merge graphics-programme (review fixes, polish, perf) into main 2026-09-26 04:17:14 +01:00
pkuzic 7759391890 Merge graphics-programme (review fixes, polish, perf) into main 2026-09-26 04:17:14 +01:00
Sam SungandClaude Opus 5.5 2306892ce9 ci: a pull request from a fork runs the no-install gates on Linux (#403)
The gates of scripts/gates.sh that need neither the install nor a display (fmt, clippy, the
workspace tests without an install, the doc-link and render-pass lints, the player build and its
tests), on ubuntu-latest, so a red pull request is seen before anyone builds it. A branch of this
repository skips the job: it runs the full chain before it lands. The job reads the repository
only, keeps no credentials in the checkout, pins its two actions by commit, drops debuginfo for
the runner's disk and caches dependencies. gates.sh and CONTRIBUTING say what runs where.

actionlint passes; the system packages are the ones CONTRIBUTING names for Linux. The workflow's
first run is a manual one on main once it lands.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 10:09:29 +07:00
Sam SungandClaude Opus 5.5 8d5e43c33f ci: a pull request from a fork runs the no-install gates on Linux (#403)
The gates of scripts/gates.sh that need neither the install nor a display (fmt, clippy, the
workspace tests without an install, the doc-link and render-pass lints, the player build and its
tests), on ubuntu-latest, so a red pull request is seen before anyone builds it. A branch of this
repository skips the job: it runs the full chain before it lands. The job reads the repository
only, keeps no credentials in the checkout, pins its two actions by commit, drops debuginfo for
the runner's disk and caches dependencies. gates.sh and CONTRIBUTING say what runs where.

actionlint passes; the system packages are the ones CONTRIBUTING names for Linux. The workflow's
first run is a manual one on main once it lands.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-26 10:09:29 +07:00