Comments name no chat reporter, channel or message id, and quote no report (#90)
Comments that named a chat reporter, cited a chat channel or message id, or quoted a report word for word now state the symptom in their own words. The test fixtures that used real character names use invented ones. Verified: 52 of the 56 files strip to identical code with their comments removed; the other 4 differ only in the fixture names, and with those mapped back they strip identical too. `cargo fmt --check` is clean, and the `ui_party`, `unit_frame_tests` and `capture` tests pass with the install present and no skips. Record numbers still in these comments go with the comment pass (#41). Fixes #34 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
8952d590e6
commit
5b94c3eba8
@@ -2579,7 +2579,7 @@ mod extract_gate_tests {
|
||||
/// half that can silently rot: the shader's `select(a, k, premultiplied)` is only correct if
|
||||
/// exactly the render-target quads carry the flag. Drop it and every additive effect the pane
|
||||
/// draws over EMPTY space is multiplied by its own zero alpha again — the R14 pauldrons' fire
|
||||
/// gone, a weapon glow chopped at the model's silhouette (Goudy, `#bugs` 2026-07-27).
|
||||
/// gone, a weapon glow chopped at the model's silhouette.
|
||||
#[test]
|
||||
fn a_booth_bake_quad_is_flagged_premultiplied_and_a_plain_one_is_not() {
|
||||
let mut app = app_with_marker();
|
||||
|
||||
@@ -784,8 +784,8 @@ fn selecting_a_row_reads_back_in_the_same_tick() {
|
||||
.contains(&SocialRequest::SelectFriend(2)));
|
||||
}
|
||||
|
||||
/// **B363 — the who list reaches its last rows.** Liho's `/who` found 49, showed 17, and the knob
|
||||
/// travelled while the rows stayed. On the stock window the mechanism is a one-row loss:
|
||||
/// **B363 — the who list reaches its last rows.** The symptom: a `/who` of 49 shows 17, and the
|
||||
/// knob travels while the rows stay. On the stock window the mechanism is a one-row loss:
|
||||
/// `WhoListScrollFrame` is 287 tall (stock `FriendsFrame.xml` l.1661) against seventeen rows of
|
||||
/// sixteen, so the child's overflow past the frame, `n × 16 − 287`, sits fifteen pixels under the
|
||||
/// bar's `(n − 17) × 16`, and an engine that clamped `SetVerticalScroll` into that overflow
|
||||
|
||||
@@ -633,8 +633,8 @@ pub(crate) fn load_ingame_ui_on_world_entry(world: &mut World) {
|
||||
});
|
||||
// **Say it out loud when an addon didn't load** (decision 1495). Every failure the walk found
|
||||
// is retained now, but a log nobody knows to open does not fix silence — and silence is the
|
||||
// actual defect B293 reports: *"there are a lot of addons that still doesn't work"*, with
|
||||
// nothing on screen to say which or why. Counted off the retained log rather than the walk's
|
||||
// actual defect: addons that do not load, with nothing on screen to say which or why. Counted
|
||||
// off the retained log rather than the walk's
|
||||
// `failures` vec so the number matches what `/errors` will show: the log deduplicates, and one
|
||||
// broken addon that fails four files should not read as four broken addons. The VM is fresh
|
||||
// per world entry, so every `Load` row here is this load's.
|
||||
|
||||
@@ -670,7 +670,7 @@ fn the_keybind_pair_pushes_and_casts_without_the_clicks_forks() {
|
||||
|
||||
/// A hunter bar hovered through the REAL gesture, with the real binding registry and the real CVar
|
||||
/// table behind it — `mouse_move` runs the shipped `<OnEnter>` with `this` bound, which is the only
|
||||
/// way this fork gets exercised the way nazriel exercised it.
|
||||
/// way this fork gets exercised the way a player's hover exercises it.
|
||||
///
|
||||
/// Buttons are 30 px chained +8 from the bar's own origin: button 1 spans x[72,102] y[56,86] ⇒
|
||||
/// centre (87,71), button 4's left = 72 + 3·38 ⇒ centre (201,71) — the geometry
|
||||
@@ -701,8 +701,7 @@ fn tooltip_line1(s: &UiScript) -> String {
|
||||
|
||||
/// **B230 — Attack/Follow/Stay name their keybinding; the pet's own spells do not.**
|
||||
///
|
||||
/// nazriel: *"On 1.12 when you hover over Attack, Follow, Stay pet action buttons they show the
|
||||
/// keybinding - which is not the case with Benilla"*. The reference agrees with him and is
|
||||
/// On 1.12, hovering Attack, Follow or Stay shows the button's keybinding in its tooltip. That is
|
||||
/// narrower than "the pet bar": `PetActionButton_OnEnter` (PetActionBarFrame.lua l.285-305) forks
|
||||
/// on `isToken or UberTooltips == "0"`, and only THAT branch concatenates
|
||||
/// `NORMAL_FONT_COLOR_CODE.." ("..GetBindingText(GetBindingKey("BONUSACTIONBUTTON"..id), "KEY_")..")"`.
|
||||
|
||||
@@ -537,11 +537,11 @@ fn clicking_a_bar_opens_the_detail_popup_on_that_faction() {
|
||||
/// gates its hide-old step on the new state having a texture, so the `UI-CheckBox-Up` box stays up
|
||||
/// and the row reads "a greyed **At War** beside an empty box". Ours resolved the shown texture as
|
||||
/// a pure function of the state, hid it, and left a bare grey label with nothing beside it — which
|
||||
/// is what MarcusAga photographed on Ironforge.
|
||||
/// is how the Ironforge row drew.
|
||||
///
|
||||
/// Three rows, because the tick is the half that made the report confusing: a peace-forced faction
|
||||
/// that is NOT at war shows the empty box (the shot), a peace-forced faction that IS at war shows
|
||||
/// the box plus its grey `DisabledCheckedTexture` (*"the tick renders, however"*), and a
|
||||
/// the box plus its grey `DisabledCheckedTexture` (the tick still draws), and a
|
||||
/// toggleable one is the control that must not move.
|
||||
#[test]
|
||||
fn the_at_war_box_keeps_its_art_while_it_is_disabled() {
|
||||
|
||||
@@ -507,8 +507,8 @@ fn the_expand_tab_fits_its_label_at_load() {
|
||||
assert!(s.errors().is_empty(), "errors: {:?}", s.errors());
|
||||
}
|
||||
|
||||
/// **B370 — the list reaches its last rows.** MarcusAga's Skills tab stopped three rows short of
|
||||
/// the end: the knob mid-track, Maces the last row shown. The reference's own
|
||||
/// **B370 — the list reaches its last rows.** The symptom: the Skills tab stops three rows short
|
||||
/// of the end, the knob mid-track, Maces the last row shown. The reference's own
|
||||
/// `FauxScrollFrame_Update` sizes the bar to `(n − 12) × 15` and the scroll child to `n × 15`, and
|
||||
/// `SkillListScrollFrame` is 220 tall (stock `SkillFrame.xml` l.468) against twelve rows of
|
||||
/// fifteen — so the child's overflow past the frame, `n × 15 − 220`, is forty pixels short of
|
||||
|
||||
@@ -1364,7 +1364,7 @@ fn a_feigning_target_paints_empty_bars_and_the_dead_text() {
|
||||
Some(UnitState {
|
||||
exists: true,
|
||||
is_connected: true, // CheckDead's second term — a feign is not a link-drop
|
||||
name: Some("Nazriel".into()),
|
||||
name: Some("Corvane".into()),
|
||||
health,
|
||||
max_health: 1500,
|
||||
level: 60,
|
||||
@@ -1991,7 +1991,7 @@ fn the_player_frame_wears_the_leader_and_master_looter_icons() {
|
||||
"player",
|
||||
Some(UnitState {
|
||||
exists: true,
|
||||
name: Some("Frostshake".into()),
|
||||
name: Some("Aldwyn".into()),
|
||||
health: 100,
|
||||
max_health: 100,
|
||||
level: 60,
|
||||
@@ -2013,7 +2013,7 @@ fn the_player_frame_wears_the_leader_and_master_looter_icons() {
|
||||
|
||||
let party = |leader_index: u32, master_looter: Option<u32>, method: &str| PartyState {
|
||||
members: vec![PartyMemberInfo {
|
||||
name: "Thalyn".into(),
|
||||
name: "Brisca".into(),
|
||||
guid: 0x7A17,
|
||||
}],
|
||||
leader_index,
|
||||
|
||||
@@ -938,8 +938,7 @@ fn the_login_one_shots_wait_for_the_in_game_ui() {
|
||||
/// ship — used to `warn!` to the terminal and vanish. Nothing raised, so 1305's dialog could not
|
||||
/// fire; the walk's failure list was dropped on the floor at `load_ingame_ui_on_world_entry`; and
|
||||
/// the per-frame drain kept no history. From the player's chair the addon simply was not there and
|
||||
/// the client said nothing, which is the literal content of *"there are a lot of addons that still
|
||||
/// doesn't work"*.
|
||||
/// the client said nothing.
|
||||
///
|
||||
/// Three claims, and the third is the one that makes the first two reachable: the failure is
|
||||
/// **retained**, it is **readable from Lua** (so the window is a view of it, not a second copy),
|
||||
@@ -1121,9 +1120,9 @@ fn a_repeating_error_is_one_row_with_a_count_not_a_flood() {
|
||||
|
||||
// ── B353 · the layout cache is a resident of the shutdown tail ───────────────────────────────
|
||||
//
|
||||
// st1rk, 2026-09-01: *"Unlock a chat window (right-click tab → Unlock Window), resize or drag it,
|
||||
// `/logout` or `/reload`, log back in. It's back at the original size. `benilla-config/layout/`
|
||||
// isnt created."* The engine seam and the file round trip were already proven by
|
||||
// The symptom: an unlocked chat window, resized or dragged, comes back at its original size after
|
||||
// a `/reload` or a relog, and `benilla-config/layout/` is never created. The engine seam and the
|
||||
// file round trip were already proven by
|
||||
// [`crate::ui_script::chat_resize_tests::the_geometry_round_trips_through_the_save_file`]; what
|
||||
// was wrong is which edge writes. [`crate::ui_layout`] hung its saver off `OnExit(InWorld)`, and a
|
||||
// `/reload` never leaves `InWorld` — [`super::run_pending_reload`] calls the shutdown and the
|
||||
@@ -1278,7 +1277,7 @@ fn window_geometry(world: &World) -> (f32, f32, String, f32, f32) {
|
||||
.expect("read the probe window back")
|
||||
}
|
||||
|
||||
/// **The whole loop, on the root that reported it** — st1rk's retest, in one test: place a window,
|
||||
/// **The whole loop, on the root that reported it**, in one test: place a window,
|
||||
/// `/reload`, meet a fresh tree that has it on its authored anchors, and let the loader seat the
|
||||
/// saved geometry back over the top.
|
||||
///
|
||||
|
||||
Reference in New Issue
Block a user