From d5e37dd975cfec99d3744015ef01649fcbe9bc33 Mon Sep 17 00:00:00 2001 From: Sam Sung <51686767+samwhosung@users.noreply.github.com> Date: Sat, 31 Oct 2026 06:23:34 +0700 Subject: [PATCH] Every deviation names its reason, and a gate keeps it so (#2868) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `docs/METHOD.md` asks each deviation to name the reference fact and why benilla differs. About 130 `Deviation:` comments gave no reason, and the Warden comment lost its reason when the refusal became a read-past. - `scripts/genmap.sh --check`, now a gate, fails a `Deviation:` comment without "because" and a `Deviates` row without a Why. - `scripts/deviation-why.allow` lists the 43 comments whose change recorded no reason. It only shrinks: an entry that gains its reason, or is new against main's copy, fails. - About 190 comments that gave their reason in other words now say "because", with their meaning kept. - Nine reasons, the Warden one among them, come back from the commits and pull requests that made them. Tested by the gate on the full tree, and by its failure on a comment with no reason and on a stale entry. Fixes #2856 Fixes #2857 πŸ€– Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 5.5 --- .../assets/ui/ContainerFrameAdapters.xml | 11 +- .../benilla-app/assets/ui/FrameXMLFixes.xml | 16 +- crates/benilla-app/assets/ui/OptionsFrame.xml | 33 +- .../benilla-app/assets/ui/ScriptLogFrame.xml | 3 +- .../assets/ui/SpellBookAdapters.xml | 4 +- crates/benilla-app/src/bindings.rs | 12 +- crates/benilla-app/src/bindings/chord.rs | 3 +- crates/benilla-app/src/bindings/layout.rs | 17 +- crates/benilla-app/src/camera_shake.rs | 6 +- crates/benilla-app/src/chat_bubble.rs | 2 +- crates/benilla-app/src/cinematic.rs | 4 +- crates/benilla-app/src/combat_text/mod.rs | 2 +- crates/benilla-app/src/console.rs | 15 +- .../src/creature_anim/spell_visual.rs | 4 +- crates/benilla-app/src/cvars/mod.rs | 3 +- crates/benilla-app/src/death/mod.rs | 5 +- crates/benilla-app/src/entities/chain_beam.rs | 5 +- crates/benilla-app/src/entities/conform.rs | 7 +- .../src/entities/equipment/resolve.rs | 5 +- crates/benilla-app/src/local_state.rs | 4 +- crates/benilla-app/src/nameplates.rs | 5 +- crates/benilla-app/src/net/io.rs | 3 +- crates/benilla-app/src/net/motion/remote.rs | 4 +- crates/benilla-app/src/net/objects/update.rs | 5 +- crates/benilla-app/src/net/session.rs | 6 +- crates/benilla-app/src/player/approach.rs | 15 +- crates/benilla-app/src/player/camera_zoom.rs | 2 +- crates/benilla-app/src/player/state.rs | 5 +- crates/benilla-app/src/shutdown.rs | 6 +- crates/benilla-app/src/smart_rect.rs | 2 +- crates/benilla-app/src/sound/emitter_pool.rs | 6 +- crates/benilla-app/src/sound/kit.rs | 4 +- crates/benilla-app/src/sound/mod.rs | 10 +- crates/benilla-app/src/spell/targeting/mod.rs | 19 +- crates/benilla-app/src/target/relations.rs | 2 +- crates/benilla-app/src/target/scan.rs | 12 +- crates/benilla-app/src/ui_action/cast_fail.rs | 4 +- crates/benilla-app/src/ui_aura.rs | 3 +- crates/benilla-app/src/ui_chat.rs | 4 +- crates/benilla-app/src/ui_chat/feed.rs | 2 +- crates/benilla-app/src/ui_chat/input/send.rs | 4 +- crates/benilla-app/src/ui_chat/settings.rs | 2 +- crates/benilla-app/src/ui_duel.rs | 2 +- crates/benilla-app/src/ui_gamma.rs | 16 +- crates/benilla-app/src/ui_gm_ticket.rs | 2 +- crates/benilla-app/src/ui_honor.rs | 4 +- crates/benilla-app/src/ui_item_text.rs | 4 +- crates/benilla-app/src/ui_layout.rs | 4 +- crates/benilla-app/src/ui_loot/mod.rs | 12 +- crates/benilla-app/src/ui_loot_roll.rs | 12 +- crates/benilla-app/src/ui_macro/store.rs | 4 +- crates/benilla-app/src/ui_mail/net.rs | 2 +- crates/benilla-app/src/ui_script/addons.rs | 8 +- .../benilla-app/src/ui_script/extract/mod.rs | 4 +- crates/benilla-app/src/ui_script/glue.rs | 5 +- crates/benilla-app/src/ui_script/glue_mgr.rs | 6 +- crates/benilla-app/src/ui_script/input.rs | 10 +- crates/benilla-app/src/ui_script/lifecycle.rs | 3 +- crates/benilla-app/src/ui_script/load_log.rs | 2 +- .../benilla-app/src/ui_script/server_alert.rs | 8 +- crates/benilla-app/src/ui_social/query.rs | 8 +- crates/benilla-app/src/ui_summon.rs | 6 +- crates/benilla-app/src/ui_text/engine/mod.rs | 4 +- crates/benilla-app/src/ui_text/outline.rs | 5 +- crates/benilla-app/src/video.rs | 4 +- crates/benilla-app/src/vplates.rs | 15 +- crates/benilla-app/src/wdb.rs | 3 +- crates/benilla-app/src/world_console.rs | 2 +- crates/benilla-assets/src/anim_rng.rs | 2 +- crates/benilla-formats/src/chain.rs | 2 +- crates/benilla-formats/src/elevators.rs | 2 +- crates/benilla-formats/src/emote_text.rs | 2 +- crates/benilla-formats/src/loose.rs | 5 +- crates/benilla-formats/src/models/key_anim.rs | 5 +- crates/benilla-formats/src/models/types.rs | 3 +- crates/benilla-formats/src/spells/tokens.rs | 6 +- crates/benilla-formats/src/tga.rs | 17 +- crates/benilla-formats/src/transports/mod.rs | 8 +- crates/benilla-lua/src/api.rs | 4 +- crates/benilla-lua/src/lib_math.rs | 3 +- crates/benilla-lua/src/lib_string.rs | 8 +- crates/benilla-lua/src/lib_table.rs | 6 +- .../examples/version_check_probe.rs | 2 +- crates/benilla-protocol/src/auth.rs | 2 +- crates/benilla-protocol/src/events/decode.rs | 5 +- .../src/messages/battlefield.rs | 2 +- crates/benilla-protocol/src/messages/guild.rs | 6 +- crates/benilla-protocol/src/messages/pet.rs | 4 +- crates/benilla-protocol/src/world/session.rs | 19 +- crates/benilla-ui/src/civil.rs | 4 +- crates/benilla-ui/src/loader/mod.rs | 11 +- crates/benilla-ui/src/loader/widgets.rs | 6 +- crates/benilla-ui/src/order.rs | 8 +- crates/benilla-ui/src/script/addon.rs | 8 +- crates/benilla-ui/src/script/calls.rs | 2 +- crates/benilla-ui/src/script/chat_bubble.rs | 4 +- crates/benilla-ui/src/script/clock.rs | 5 +- crates/benilla-ui/src/script/container.rs | 2 +- crates/benilla-ui/src/script/craft.rs | 6 +- crates/benilla-ui/src/script/cursor.rs | 14 +- .../benilla-ui/src/script/cursor/bag_verbs.rs | 4 +- crates/benilla-ui/src/script/cvars.rs | 4 +- crates/benilla-ui/src/script/editbox/flush.rs | 2 +- crates/benilla-ui/src/script/glue_core.rs | 6 +- crates/benilla-ui/src/script/glue_realm.rs | 4 +- crates/benilla-ui/src/script/held.rs | 2 +- crates/benilla-ui/src/script/hyperlink.rs | 6 +- crates/benilla-ui/src/script/item_stats.rs | 5 +- crates/benilla-ui/src/script/keybind.rs | 3 +- crates/benilla-ui/src/script/layer_batch.rs | 15 +- crates/benilla-ui/src/script/macros.rs | 6 +- crates/benilla-ui/src/script/mod.rs | 5 +- crates/benilla-ui/src/script/pvp/mod.rs | 6 +- crates/benilla-ui/src/script/quest_log.rs | 2 +- crates/benilla-ui/src/script/reputation.rs | 6 +- crates/benilla-ui/src/script/saved.rs | 7 +- crates/benilla-ui/src/script/spellbook.rs | 3 +- crates/benilla-ui/src/script/stdlib.rs | 7 +- crates/benilla-ui/src/script/taxi.rs | 6 +- crates/benilla-ui/src/script/tooltip/verbs.rs | 4 +- crates/benilla-ui/src/script/tooltip_aura.rs | 3 +- .../src/script/tooltip_item/build.rs | 6 +- .../src/script/tooltip_item/render.rs | 4 +- crates/benilla-ui/src/script/unit/by_name.rs | 2 +- crates/benilla-ui/src/script/unit/resolve.rs | 4 +- crates/benilla-ui/src/script/who_sort.rs | 4 +- crates/benilla-ui/src/strings.rs | 4 +- crates/benilla-ui/src/widget/kinds/editbox.rs | 30 +- .../src/widget/kinds/messageframe.rs | 5 +- crates/benilla-ui/src/widget/kinds/mod.rs | 5 +- crates/benilla-world/src/clouds/kernel.rs | 9 +- crates/benilla-world/src/clouds/tables.rs | 4 +- crates/benilla-world/src/collision.rs | 4 +- crates/benilla-world/src/exterior_cull.rs | 4 +- .../benilla-world/src/shaders/static_gx.wgsl | 2 +- crates/benilla-world/src/terrain_stream.rs | 4 +- .../src/terrain_stream/residency.rs | 4 +- crates/benilla-world/src/view.rs | 2 +- crates/benilla-world/src/water_fx/params.rs | 2 +- crates/benilla-world/src/zfill.rs | 7 +- docs/DEVIATIONS.md | 402 +++++++++--------- scripts/deviation-why.allow | 46 ++ scripts/gates.sh | 2 + scripts/genmap.sh | 59 ++- 144 files changed, 743 insertions(+), 602 deletions(-) create mode 100644 scripts/deviation-why.allow diff --git a/crates/benilla-app/assets/ui/ContainerFrameAdapters.xml b/crates/benilla-app/assets/ui/ContainerFrameAdapters.xml index dbf4261d2..bb62cd9b8 100644 --- a/crates/benilla-app/assets/ui/ContainerFrameAdapters.xml +++ b/crates/benilla-app/assets/ui/ContainerFrameAdapters.xml @@ -6,11 +6,12 @@