[Release] fix(resources): send Packs highest priority first #95

Merged
bot merged 1 commit from fix/pack-stack-order into main 2026-10-01 20:55:29 +00:00
Member

Client treats ResourcePackStack index 0 as highest priority (top of the in-game Active list). #94 reversed Resources.Packs, so on the PR-756 dev server core sat above the 3d pack and every Pokémon rendered 2D.

  • Offers go on the wire in config order: Packs, then legacy URL/path packs (a legacy-only config is unchanged; production uses only URLResources).
  • Translator merge still runs lowest priority first, so Packs[0] wins shared keys.
  • Removed stackOrder and the unused legacy field.

go test ./gobds/ ./gobds/util/translator/ pass. Lint's only finding is the pre-existing SA1019 in nethernet.go that also fails on main.

Client treats `ResourcePackStack` index 0 as highest priority (top of the in-game Active list). #94 reversed `Resources.Packs`, so on the PR-756 dev server core sat above the 3d pack and every Pokémon rendered 2D. - Offers go on the wire in config order: `Packs`, then legacy URL/path packs (a legacy-only config is unchanged; production uses only `URLResources`). - Translator merge still runs lowest priority first, so `Packs[0]` wins shared keys. - Removed `stackOrder` and the unused `legacy` field. `go test ./gobds/ ./gobds/util/translator/` pass. Lint's only finding is the pre-existing SA1019 in `nethernet.go` that also fails on `main`.
fix(resources): send Packs highest priority first
Some checks failed
golangci-lint / Lint Dockerfile. (pull_request) Successful in 5s
golangci-lint / lint (pull_request) Failing after 1m8s
fed1627d11
The client gives ResourcePackStack index 0 the highest priority: it tops
the in-game Active list and overrides the packs below it. #94 reversed
Resources.Packs on the assumption that index 0 was lowest, so a dev
server listed audio-other above core and core above 3d, and every
Pokemon rendered with core's 2D entity files instead of the 3d pack's.

Send offers in config order (Packs, then legacy URL/path packs, which
keeps a legacy-only config unchanged). The translator still merges
lowest priority first so Packs[0] wins a shared key.
bot merged commit 05d04980d1 into main 2026-10-01 20:55:29 +00:00
bot deleted branch fix/pack-stack-order 2026-10-01 20:55:29 +00:00
bot left a comment

Desk review (post-merge)

Head fed1627d11f6b088da42dcbcaa6d045510d04885 — already merged to main when the desk ran. Bot cannot APPROVED its own PR (Forgejo 422); recording COMMENT with approve-grade findings.

Correctness

  • Removing stackOrder matches the stated client rule: ResourcePackStack index 0 is highest priority. The #94 reverse put core ahead of the 3d pack on the wire, which explains the all-2D Pokémon symptom on the PR-756 dev server.
  • Wire path now keeps config order (Packs, then legacy URL/path) via packsFrom(offers) / FetchResourcePacks — Packs[0] stays on top; legacy stays below Packs.
  • Translator path still walks lowest-first (len-1 → 0) so later-wins leaves Packs[0] owning shared keys. Consistent with the new stack model.
  • Dropping unused legacy is clean once split/reorder is gone.

Tests / CI

  • TestStackOrder removal is fine given the helper is gone; soft gap only: no replacement asserting offers → wire order (Packs prefix highest-first). Not a blocker.
  • user_config_test.go lost the final newline — tiny nit.
  • golangci-lint on this SHA is red (golangci-lint / lint failure); PR body attributes SA1019 in nethernet.go as pre-existing on main, and post-merge push runs on 05d04980 are also failure — treat as base noise, not introduced here.

No open gobds issue matches pack-stack / resource priority (open set: #92 doors, #89 MOTD, #88 stick, #87 ping, #83 kick). #94 is historical context only — no Fixes: / Could Fix: comment.

Verdict: LGTM — focused, correct priority fix for the reported regression.

## Desk review (post-merge) Head `fed1627d11f6b088da42dcbcaa6d045510d04885` — already merged to `main` when the desk ran. Bot cannot `APPROVED` its own PR (Forgejo 422); recording COMMENT with approve-grade findings. ### Correctness - Removing `stackOrder` matches the stated client rule: `ResourcePackStack` index 0 is highest priority. The #94 reverse put `core` ahead of the 3d pack on the wire, which explains the all-2D Pokémon symptom on the PR-756 dev server. - Wire path now keeps config order (`Packs`, then legacy URL/path) via `packsFrom(offers)` / `FetchResourcePacks` — Packs[0] stays on top; legacy stays below Packs. - Translator path still walks lowest-first (`len-1 → 0`) so later-wins leaves Packs[0] owning shared keys. Consistent with the new stack model. - Dropping unused `legacy` is clean once split/reorder is gone. ### Tests / CI - `TestStackOrder` removal is fine given the helper is gone; soft gap only: no replacement asserting offers → wire order (Packs prefix highest-first). Not a blocker. - `user_config_test.go` lost the final newline — tiny nit. - golangci-lint on this SHA is red (`golangci-lint / lint` failure); PR body attributes SA1019 in `nethernet.go` as pre-existing on `main`, and post-merge push runs on `05d04980` are also failure — treat as base noise, not introduced here. ### Issue link No open gobds issue matches pack-stack / resource priority (open set: #92 doors, #89 MOTD, #88 stick, #87 ping, #83 kick). #94 is historical context only — no `Fixes:` / `Could Fix:` comment. **Verdict:** LGTM — focused, correct priority fix for the reported regression.
Sign in to join this conversation.
No description provided.