RaidBook 17.3.26.zip
What's new
# Changelog
Version = **`## Version`** in `RaidBook.toc`.
Full patch-by-patch history: **`CHANGELOG-archive.md`** (local only; omit from CurseForge zip if desired).
## [17.3.26] — latest
**UX — Trade cue volume:** Sold-trade voice cues no longer force master volume to 100% then restore; play at the player's normal volume.
**한글:** **거래 음성 볼륨** — 재생 때 주음량 100%로 올렸다 되돌리던 처리 제거. 기본 볼륨으로 재생.
**Feat — SkshinPresence BattleTag:** Presence ping may append the player's BattleTag (`P\tAddon\tVersion[\tBattleTag]`) for My AddOns matching.
**한글:** **SkshinPresence 배틀태그** — 존재 확인 핑에 배틀태그를 붙여 My AddOns 매칭에 사용.
## [17.3.25]
**UX —「N 에 거래」amount-confirm voice:** Plays `Sounds/amount_confirm.mp3`(금액 확인) when the mismatch accept button is clicked.
**한글:** **「N 에 거래」금액 확인 음성** — 버튼 클릭 시 `amount_confirm.mp3` 재생.
## [17.3.24]
**UX —「N 에 거래」only after partner accept:** Show the mismatch accept button only when the partner has accepted (same moment the green「거래 N」would appear if gold matched). Hidden while waiting on gold/accept.
**한글:** **「N 에 거래」는 상대 수락 후만** — 녹색「거래 N」이 뜰 타이밍과 같게, 상대가 확인한 뒤에만 표시.
## [17.3.23]
**Fix —「N 에 거래」flag leak:** Consume mismatch-paid into a local at trade-complete start (clear global immediately). Also clear on cancel, TRADE_SHOW, and failed AcceptTrade. Rewrite ledger only when shortfall ≠ 0 so a leftover flag cannot discount a matching trade.
**한글:** **「N 에 거래」플래그 잔류** — 정산 시작 때 바로 로컬로 옮겨 쓰고 전역은 비움. 취소·새 거래창·수락 실패 때도 제거. 금액이 이미 맞으면(shortfall 0) 덮지 않음.
## [17.3.22]
**UX —「N 에 거래」hint line:** Below the mismatch accept button, show one line「클릭시 N 으로 장부 기록」.
**한글:** **「N 에 거래」주의** — 버튼 바로 아래에「클릭시 N 으로 장부 기록」한 줄 표시.
## [17.3.21]
**UX — Sold correction modal readability:** Player names and quantity labels use outline fonts and brighter colors; modal is parented to UIParent so dock opacity no longer washes out the list.
**한글:** **낙찰 정보 수정창 가독성** — 이름·개수가 희미하던 문제. 외곽선·밝은 글자색, 창을 UIParent에 붙여 장부 불투명도에 묻히지 않게 함.
## [17.3.20]
**Fix —「N 에 거래」wrote 0 to ledger:** Settle no longer requires snap.money == button gold (TRADE_CLOSED often clears GetTargetTradeMoney to 0). Uses the clicked「N 에 거래」amount; refuses writing 0; cancels clear the flag.
**한글:** **「N 에 거래」장부 0원** — 거래 종료 직후 API 골드가 0이 되면 장부도 0으로 쓰이던 문제. 버튼에 찍힌 금액으로 기록하고, 0원 덮어쓰기·취소 시 플래그 잔류를 막음.
## [17.3.19]
**Fix —「N 에 거래」updates progress banner after settle:** Paid-gold sync no longer goes through ApplySoldCorrection’s pending-only guard (which failed after trade confirm). Sets correctedBid, memo,「경매담당수정」log, and refreshes the sold banner to「낙찰 (수정)」at the paid amount.
**한글:** **「N 에 거래」후 진행 창 낙찰가** — 거래 확정 뒤엔 미확정 가드 때문에 배너가 100으로 남던 문제. 수정가·메모·최근입찰(경매담당수정)까지 받은 금액으로 갱신.
## [17.3.18]
**Perf — Live invalidate hitch / missed bids:** Live bid invalidate no longer sync Persist+full RefreshPanel (uses the same deferred schedule as ApplyBid). Rebuild with stored bids skips rewriting bidLog and per-row RecomputeRanks.
**한글:** **라이브 무효화 멈칫·입찰 누락** — 클릭 시 동기 저장/전체 Refresh 제거(입찰과 같이 지연). 라이브 재계산은 로그만 두고 순위만 다시 짬.
## [17.3.17]
**Fix — Mismatch accept updates sold bid display:**「N 에 거래」/「받은 N으로」now sync auction session corrected/clearing bid (banner·memo), not only ledger cost.
**한글:** **불일치 수락 시 낙찰가 표시** — 장부만 200이고 배너·세션이 100으로 남던 문제. 경매 낙찰가(수정가/클리어링)도 받은 금액으로 맞춤.
## [17.3.16]
**UX — Mismatch accept button style:** Label「N 에 거래」, size match「거래 N」(158×34), purple border/text.
**한글:** **「N 에 거래」스타일** — 띄어쓰기·크기를 `거래 N`과 동일, 보라색 테두리.
## [17.3.15]
**UX — Auction panel no timed auto-close:** After sold/pass, the progress panel no longer hides when the 15s `soldUntil` timer ends. It stays until another ledger row is opened or the panel is toggled closed.
**한글:** **경매 진행 창 시간 만료 닫힘 제거** — 낙찰/유찰 후 15초가 지나도 창이 안 닫힘. 다른 장부 행을 열거나 우클릭으로 닫을 때만 사라짐.
## [17.3.14]
**UX — Mismatch「N에 거래」single-item only:** Show the wrong-gold accept button only when this settle is 1 item; clicking it AcceptTrade and writes that paid gold to the ledger (skips the balance dialog). Hidden for 2+ items where cost split is ambiguous.
**한글:** **「N에 거래」는 아이템 1개만** — 복수 낙찰은 금액 배분이 애매해서 숨김. 1개일 때 누르면 그 금액으로 장부 기록(거래 금액 창 생략).
## [17.3.13]
**UX — Accept trade at mismatched gold:** When partner gold ≠ bid sum, under「상대방 N 골드 확인됨」show「N에 거래」to AcceptTrade anyway (main「거래 N」stays red). Ledger balance dialog still follows after settle.
**한글:** **금액 불일치 수락** — `거래 N`이 빨강일 때 「상대방 N 골드 확인됨」 아래 `N에 거래` 버튼으로 틀린 금액도 수락 가능. 완료 후 기존 거래 금액 창이 뜸.
## [17.3.12]
**UX — Follow button class color + range:** Winner「이름 따라가기」uses class-colored name; enables only within follow interact distance (~28 yd / CheckInteractDistance 4), refreshed with the sold banner.
**한글:** **따라가기 직업색·거리** — `티요 따라가기`에서 이름은 직업색. 따라가기 거리(약 28야드) 안일 때만 활성화, 멀면 비활성.
## [17.3.11]
**UX — Unified trade-gold mismatch dialog:** Shortfall and overpay share one「거래 금액」banner: keep recorded bid, or「받은 N으로」to rewrite ledger costs. Body still says more-to-collect vs refund amount.
**한글:** **거래 금액 창 통합** — 덜 받든 더 받든 같은 창. `낙찰가 유지` / `받은 N으로`. 안내 문구만 「더 받으세요」·「돌려주세요」로 달라짐.
## [17.3.10]
**Feature — Refund banner accept paid gold:** When trade gold exceeds the recorded bid sum, the center banner offers「돌려주세요」(keep ledger bid) and「받은 N으로」(rewrite confirmed row costs to the paid amount). Shortfall banner still confirmation-only.
**한글:** **환급 배너「받은 금액으로 기록」** — 낙찰 합보다 많이 받으면 `돌려주세요`(장부 유지) / `받은 N으로`(장부 낙찰가를 받은 금액으로 수정). 미수금은 기존처럼 확인만.
## [17.3.9]
**Fix — Ledger trade button misses leftover copy:** After ×N partial sold, the ledger「거래」button was GUID-strict and refused when the remaining bag copy’s GUID no longer matched the leftover row (often after the sold trade took the other physical copy via itemID). Own-loot rows now allow the same itemID fallback as the sold banner (17.3.4).
**한글:** **×N 잔여 장부「거래」아이템 없음** — 부분 낙찰 뒤 남은 사본이 가방에 있어도 장부 GUID가 안 맞으면 거절하던 문제. 내가 루팅한 줄은 낙찰 배너와 같이 itemID로 올림.
## [17.3.8]
**Fix — Live invalidate stops chat bids:** During a live auction, invalidating a bid no longer re-parses later short digits against a lower top (which could collapse `30`→3000 and make new numbers look ignored). Keep stored amounts, re-assert bid intake, and skip ledger full Refresh while live.
**한글:** **라이브 중 무효화 후 숫자 입찰 안 먹힘** — 높은 입찰을 무효화해도 이미 수락된 금액(`30`→3000 등)을 유지하고, 입찰 접수를 다시 켠다. 라이브 중 장부 전체 Refresh는 생략.
## [17.3.7]
**Fix — Follow winner Lua error:** Stop calling `TargetUnit` (protected / can throw). Wrap follow in `pcall` and print failure reason to chat so it can be copied.
**한글:** **따라가기 Lua 에러** — 보호 호출인 `TargetUnit` 제거. `FollowUnit`만 쓰고, 실패 원인은 채팅에 남겨 복사 가능하게 함.
## [17.3.6]
**Fix — RBAuction 200 local limit:** Move follow/bag helpers onto `BID` table so the main chunk loads again after 17.3.5.
**한글:** **로컬 200개 한도** — 따라가기·가방 헬퍼를 `BID`로 옮겨 17.3.5 로드 오류 수정.
## [17.3.5]
**Feature — Follow winner from sold banner:** When trade buttons like `티요 · 1 · 100` show, add `티요 따라가기` under the sold banner (above 재경매). Click targets the winner and `FollowUnit` so you can close distance for trade.
**한글:** **낙찰자 따라가기** — `티요 · 1 · 100` 같은 거래 버튼이 뜰 때 배너 하단(재경매 위)에 `티요 따라가기` 표시. 누르면 대상 지정 후 따라가기로 거래 거리까지 접근.
## [17.3.4]
**Fix — Own ×N loot marked remote:** If you looted the row (or bag GUID unread), GUID mismatch no longer forces remote/gold-only — allow same itemID put. Other-looter unique rows stay GUID-strict. Winner edit does not change looter, so pre-correcting winners is safe with this ownership rule.
**한글:** **내가 루팅한 ×N이 가방에 있는데 원격 처리** — 루터가 나이거나 가방 GUID를 못 읽는 클라에서는 GUID 불일치여도 보유(올림)로 판정. 타인 루팅 고유템은 기존처럼 GUID 엄격. 낙찰자만 미리 바꿔도 looter는 그대로라 같은 규칙으로 맞음.
## [17.3.3]
**Fix — Sold-correction Apply no response:** Dim close no longer fights the Apply button; Apply prints every failure reason; open modal keeps apply allowed after `soldUntil` expiry; gold-only edit falls back to current winner counts; RefreshPanel errors no longer swallow success.
**한글:** **낙찰 정보 수정「적용」무반응** — 바깥 딤 클릭과 적용 버튼 충돌 제거. 실패 시 채팅 안내. 창이 열린 동안은 soldUntil 만료 후에도 적용 가능. 개수 0으로만 보일 때 수정가만 바꿔도 현재 낙찰자로 적용.
## [17.3.2]
**UX — Deposit confirm voice at full master:** Play female/male confirm cue with Master volume temporarily forced to 100%, then restore.
**한글:** **입금 확인 음성** — 재생 중에만 주 음량 100%로 올리고, 끝나면 이전 볼륨으로 복구.
## [17.3.1]
**Fix — ×N / remote trade settle integrity:** Prepared `ledgerIdx`/GUID drive batch settle (puttable scope); GUI/Put-all no longer ID-fallback when GUID missing; put queue uses same GUID sources as ownership split; remote gold settle only exact prefix/full sum; put-count uses trade `numItems`; Clear/self-confirm respect puttable vs remote; winner slot cap sources aligned with `WinnerKeyAtSlot`.
**한글:** **×N·타인루팅 거래 정산** — 올린 줄(prepared)·GUID·보유 스코프로 확정. GUID 없으면 같은 itemID로 대체 올림 금지. 원격은 금액이 맞는 접두만 부분 확정. 스택 수량·내리기 스코프·본인확정(보유만) 정리.
## [17.3.0]
**Release — 17.3.0:** Minor line. Raid claim attribution stamp (two RAID lines). 확인→장부확인 closes ledger (lock gold + raid roster, unlock 상세/요약; caution accept delay 3s). 상세/요약 announce without re-showing caution.
**한글:** **17.3.0** — 경매담당 수락 시 공대 저자·버전 / 담당 두 줄. 확인→장부확인으로 골드·공대원 고정+상세/요약 해금(장부확인 3초). 상세/요약은 분배 주의 없이 바로 발표.
## [17.2.1]
**UX — Raid claim attribution stamp / close ledger on 확인:** Claim RAID stamp; 확인→장부확인 locks gold+roster and unlocks 상세/요약; 상세/요약 skip caution.
**한글:** **17.2.1** — 공대 출처 스탬프, 확인→장부확인 마감·상세/요약 해금 (17.3.0으로 승격).
## [17.2.0]
**Release — 17.2.0:** Minor line. Ledger sort (remaining time / status / pending `#` loot order), distribution-caution polish (mode title colors, speaker/X buttons), remote unique-row gold-only settle, sync send errors chat-only, remote sold-trade whisper looter hint.
**한글:** **17.2.0** — 장부 SORT(남은시간·상태·미확정 루팅순), 분배 주의(모드 색·스피커/X 버튼), 다른 루터 고유템 골드만 확정, sync 전송실패 채팅만, 원격 거래 귓말 루터 수령 안내.
## [17.1.26]
**UX — Remote sold-trade whisper:** Gold-only (other-looter) trade whispers tell the winner to collect each item from the looter (`[루터] 에게 수령하세요`).
**한글:** **원격(다른 루터) 골드만 거래 귓말** — 아이템마다 `[루터] 에게 수령하세요` 안내.
## [17.1.25]
**UX — Caution button icons:** 「장부확인」 uses the same speaker icon as 상세/요약; 「장부검토」 uses an X (ReadyCheck-NotReady).
**한글:** **분배 주의 버튼 아이콘** — 장부확인=스피커(상세/요약과 동일), 장부검토=X.
## [17.1.24]
**UX — Distribution mode title colors:** 「전체 분배」 green, 「무득 분배」 blue on the caution title.
**한글:** **분배 주의 모드 색** — `전체 분배` 초록 / `무득 분배` 파랑.
## [17.1.23]
**UX — Distribution caution buttons:** Cancel is 「? 장부검토」, accept is 「! 장부확인」.
**한글:** **분배 주의 버튼** — `? 장부검토` / `! 장부확인`.
## [17.1.22]
**UX — Distribution caution shows mode:** Title is large 「분배 주의 전체 분배」 / 「분배 주의 무득 분배」 so the split mode is obvious before confirm.
**한글:** **분배 주의** — 제목에 `전체 분배` / `무득 분배`를 크게 표시.
## [17.1.21]
**UX — Remaining-time header on item column:** The item header shows 「남은시간」 on the right (aligned with row timers); click it to sort by trade remaining time. Item name stays on the left click-to-sort.
**한글:** **아이템 열 우측 「남은시간」** — 행 타이머와 같은쪽에 헤더를 두고 클릭으로 남은시간 정렬. 좌측 아이템명은 이름순.
**Fix — RBGui local 200 limit:** Pack ledger sort column constants into one `RB_LEDGER_SORT` table so the main chunk loads again.
**한글:** **로드 오류** — 장부 SORT 상수를 테이블로 묶어 `main function has more than 200 local variables` 수정.
## [17.1.20]
**UX — Sort by trade remaining time:** Right-click the item header to sort by trade timer (soonest first); left-click still sorts by name. Pending-only (`미확정 N`) now honors name/beneficiary/cost/expire header sorts; `#` keeps signal-light order.
**한글:** **남은시간 정렬** — 아이템 헤더 우클릭=남은시간(임박 위), 좌클릭=이름. **미확정 N**에서도 이름·득자·낙찰가·남은시간 SORT 동작 (`#`만 기존 신호등순).
## [17.1.19]
**UX — Sync send errors chat-only:** Payload/send failures (ADD/SNAP/CLRALL etc.) no longer open the center modal that dims the screen; they only print to your chat (`/rb syncerrors` still lists them). Peer mute-after-failures behavior is unchanged.
**한글:** **동기화 전송 실패** — 화면 중앙 모달·딤 없이 채팅에만 표시. 실패 누적 시 해당 peer sync 일시 중단은 그대로.
## [17.1.18]
**Fix — Other-looter unique row → gold-only:** Auctioning another looter’s unique copy settles that row as remote (gold only). Do not auto-put your bag’s same itemID, and do not attach that sold session to your own `g:GUID` ledger row.
**한글:** **다른 루터 고유템 행** — 그 행만 경매·골드만(remote) 확정. 내 가방 같은 itemID는 올리지 않고, 내 `g:GUID` 줄에 남의 낙찰 세션이 붙지 않음. 행이 여러 개면 경매한 그 행만 처리.
## [17.1.17]
**Dev — Preview with +/- sides:** `/rb bid previewleftover` shows ×4 / 3 winners / remain 1 with `−`/`+` on each trade row (in/out/in fill).
**한글:** **−/+ 포함 미리보기** — `/rb bid previewleftover` 가 ×4·3명·잔여1·좌우 −/+·거리 안/밖 채움까지 표시.
## [17.1.16]
**UX — In-range trade button fill:** Winner trade buttons in range get a green inset fill so they stand out vs out-of-range (border only, dimmer).
**한글:** **거리 안 거래 버튼 채움** — 거리 안은 안쪽 초록 채움으로 또렷이, 밖은 채움 없이 살짝만 흐리게.
## [17.1.15]
**Dev — 3-winner range preview:** `/rb bid previewleftover` shows ×3 / three winners (in / out / in range) to compare soft out-of-range styling.
**한글:** **3명 낙찰 미리보기** — `/rb bid previewleftover` 가 ×3·3명(거리 안/밖/안)으로 거리 밖 톤 비교.
## [17.1.14]
**UX — Softer out-of-range trade button:** Far-range winner buttons stay readable (alpha ~0.78, muted same-color border) instead of near-invisible gray at 0.4.
**한글:** **거래 거리 밖 버튼** — 회색·알파 0.4로 거의 안 보이던 것을, 같은 색 톤으로 살짝만 흐리게(더 잘 보임 / 덜 보임).
## [17.1.13]
**Fix — 3-char names stay intact:** Names already ≤3 syllables (e.g. 하제나) are not cut to 2; leftover preview used a wrong `하제` stub.
**한글:** **3글자 이름 유지** — `하제나`처럼 이미 3글자면 그대로. 미리보기가 `하제`로 잘못 잘리던 것 수정.
## [17.1.12]
**UX — Truncate banner name only with +/-:** Shorten winner names to 3 chars only when leftover `−`/`+` controls are shown; otherwise show the full name.
**한글:** **이름 축약 조건** — `−/+`가 붙을 때만 3글자, 그 외 거래 버튼은 전체 이름.
## [17.1.11]
**UX — Banner trade name 3 chars:** Winner trade button labels truncate the player name to 3 characters (full name still used for trade/tooltip).
**한글:** **거래 버튼 이름 3글자** — `−/+`로 좁아진 칸에 맞춰 낙찰자 이름 3글자만 표시(거래·툴팁은 전체 이름).
## [17.1.10]
**UX — Remain label below trade buttons:** Show `잔여 n` after the winner trade row(s) so `−`/`+` no longer shifts the buttons when remaining hits 0.
**한글:** **잔여 표기 위치** — `잔여 n`을 거래 버튼 나열 아래로. ± 해도 버튼이 위아래로 안 밀림.
## [17.1.9]
**Dev — Leftover preview matches ×N banner:** Preview title uses `2등가` (+ name line) like a real multi-copy sold banner, not plain `낙찰`.
**한글:** **잔여 미리보기** — 실제 ×2 배너처럼 제목을 `2등가`로 표시(이름줄 포함).
## [17.1.8]
**UX — Leftover +/- on trade button sides:** Bold amber `−` / green `+` sit on the left/right edges of the winner trade button (no faint row underneath).
**한글:** **잔여 −/+ 위치·가시성** — 거래 버튼 좌·우에 진한 `−`(호박) / `+`(초록). 아래 희미한 줄 배치 제거.
## [17.1.7]
**Dev — Leftover +/- UI preview:** `/rb bid previewleftover` shows a mock ×2 / 하제나 300 banner with `−`/`+` (no ledger writes). Off: `/rb bid previewleftover off`.
**한글:** **잔여 −/+ 미리보기** — `/rb bid previewleftover` 로 ×2·하제나 300 배너 모양만 확인(장부 무변경). 닫기: `… off`.
## [17.1.6]
**UX — Banner leftover controls without mid count:** Under each winner trade button show only `−` / `+`; assigned count and gold stay on the trade label (`A · 2 · 600`).
**한글:** **잔여 배정 UI 단순화** — 거래 버튼 아래는 `−` / `+`만. 개수·골드는 거래 버튼 라벨이 갱신.
## [17.1.5]
**UX — Banner leftover +/- below trade button:** Keep the winner trade button full width; put `− / N개 / +` centered on the next line (banner ~160px was too narrow for side-by-side).
**한글:** **잔여 +/- 레이아웃** — 거래 버튼은 전폭 유지, `−/개수/+`는 바로 아래 가운데(좁은 배너에서 옆으로 붙이면 답답함).
## [17.1.4]
**Feature — Tier leftover +/- on auction banner:** On ×N sold with remaining copies, the progress banner shows `잔여 n` and per-winner `− / N개 / +` to assign leftovers to current winners. Gold uses clearing price (Nth bid) × count via existing sold-correction persist (modal kept for non-bidders / custom price).
**한글:** **티어 잔여 사본 배정** — ×N 낙찰 후 남은 사본이 있으면 경매 진행 창 낙찰자 줄에서 `−/개수/+`로 바로 배정. 금액은 클리어링가(N등가)×개수. 「낙찰 정보 수정」모달은 그대로(미입찰자·수정가).
## [17.1.3]
**Fix — Empty auction panel despite saved bids:** When ledger row index moves (e.g. `s:30105:28` empty shell vs `s:30105:29` with bids) and both `i:`/`s:` mirrors exist, itemID fallback no longer aborts on 2+ candidates — pick the richest bid session.
**한글:** **입찰은 있는데 진행 창이 비던 문제** — 장부 줄 번호가 바뀌어 빈 껍데기만 붙고, `i:`/`s:` 미러가 둘이라 복원을 포기하던 경우. 입찰 있는 세션 중 최선을 고르도록 수정.
## [17.1.2]
**Fix — Sold-trade whisper timing & delivery:** Do not whisper on `InitiateTrade` (only after trade UI is open / `TRADE_SHOW`, or already-open trade / `거래 N`). Pack item lines and send at 0.85s with retries so chat throttle is less likely to drop lines.
**한글:** **낙찰 거래 귓말** — 거래 요청 직후가 아니라 거래창이 열린 뒤에만 전송(거절·실패 시 미전송). 줄 패킹 + 0.85초 간격·실패 재시도로 스로틀 누락 완화.
## [17.1.1]
**Feature — Sold-trade put whisper:** Clicking banner auto-trade / winner trade, or sold-panel `거래 N` to put items, whispers the winner (also on partner-initiated auto-put; 8s dedupe). Format: header → `[아이템] 가격골` per line → `총 N 개 아이템 : 입금가 …골`.
**한글:** **낙찰 거래 올리기 귓말** — 배너/`거래 N`/상대 선거래 자동올리기 시 귓말. `[Raid Book] 낙찰자 자동 거래 시스템` → `[아이템] 개별가골`(줄별) → `총 N 개 아이템 : 입금가 …골`. 8초 중복 방지.
## [17.1.0]
**Release — 17.1.0:** Minor bump consolidating recent ledger UX/stability (strata `HIGH`, split-count lock/manual edit, trade-confirm layering cleanup).
**한글:** **17.1.0 릴리스** — 장부 레이어(`HIGH`)·분배 인원 잠금/수동 수정·거래 확인창 레이어 정리 등 최근 변경을 마이너 버전으로 묶음.
## [17.0.105]
**UX — Ledger strata HIGH:** Main window uses `HIGH` (above typical `MEDIUM` addons/bags bleed-through, below trade “정말 이 거래를…” 3s confirm at `DIALOG`). Not `FULLSCREEN_DIALOG`.
**한글:** **장부 레이어 HIGH** — 일반 애드온보다 위, 거래 3초 확인창(`DIALOG`)보다 아래. FULLSCREEN 상향은 쓰지 않음.
## [17.0.104]
**Fix — Manual split count while ledger has rows:** Ledger rows still block auto 10/25/40 band sync, but no longer force-revert the 분배 인원 edit box. You can type 25→10 during an active raid ledger.
**한글:** **장부 있는 중 분배 인원 수동 수정** — 공대 해산으로 자동 25→10 되는 것만 막고, 입력칸을 저장값으로 되돌리던 잠금 제거. 레이드·장부 유지 중에도 10으로 직접 바꿀 수 있음.
## [17.0.103]
**Fix — Split count editable after 기록삭제:** Clearing the ledger now clears `splitcountUserEdited` and resets 분배 인원 to the current raid band (10/25/40). While the ledger still has rows it stays locked; after delete you can change it again.
**한글:** **기록삭제 후 분배 인원 수정** — 장부에 줄이 있을 때만 고정. 삭제·초기화 시 수동잠금을 풀고 현재 공대 구간(10/25/40)으로 다시 맞춤.
## [17.0.102]
**Revert — Ledger layer raise:** Remove the 17.0.78+ main-window strata raise entirely (no forced `FULLSCREEN_DIALOG`/`MEDIUM`/`FrameLevel(120)`/`Raise` on show). Back to default frame layering like before that change.
**한글:** **장부 레이어 상향 완전 철회** — 17.0.78 이후 메인 장부 strata/level/`Raise` 강제 제거. 올리기 전(기본 레이어)으로 복귀.
## [17.0.101]
**Revert — Ledger strata:** Main ledger back to `MEDIUM` (undo `FULLSCREEN_DIALOG` raise). Temporary lowering for trade confirm darkened the window; with `MEDIUM`, Blizzard’s “정말 이 거래를…” (`DIALOG`) sits above again.
**한글:** **장부 strata 복구** — 메인 장부를 다시 `MEDIUM`. FULLSCREEN 상향·거래 시 장부 내리기는 철회. 「정말 이 거래를…」가 장부 위에 뜸.
## [17.0.100]
**Fix — SecureTransferDialog IsShown error:** Guard `SecureTransferDialog` visibility checks with `pcall` (`bad self` on `IsShown` when opening the ledger).
**한글:** **SecureTransferDialog IsShown 오류** — 장부 열 때 `IsShown` bad self. 확인창 표시 여부는 pcall로 조회.
## [17.0.99]
**Fix — “정말 이 거래를…” under ledger:** That confirm is `SecureTransferDialog` (`CONFIRM_TRADE`, strata `DIALOG`). While it is open the ledger is temporarily lowered to `HIGH` and the dialog is raised to `TOOLTIP` so the countdown accept stays clickable.
**한글:** **「정말 이 거래를…」가 장부 뒤** — SecureTransfer 확인창(CONFIRM_TRADE). 뜨는 동안 장부를 잠깐 내리고 확인창을 TOOLTIP으로 올려 수락을 누를 수 있게 함.
## [17.0.98]
**Fix — Trade UI under ledger:** Raising the ledger to `FULLSCREEN_DIALOG` hid TradeFrame / accept-countdown popups. Trade window and StaticPopups are raised above the ledger on trade open, accept click, and popup show.
**한글:** **거래 UI가 장부 뒤로** — 장부 strata 상향 후 거래창·수락 카운트가 가려지던 문제. 거래 열림·수락 클릭·팝업 표시 시 장부 위로 올림.
## [17.0.97]
**Fix — Snap payload fail toast spam:** Oversized ledger lines shrink player names (realm strip + UTF-8 chop) before aborting; toast/chat share a cooldown; same-hash snap retries pause ~60s after a line payload failure.
**한글:** **스냅 페이로드 실패 토스트 스팸** — 긴 줄은 이름 축소를 더 한 뒤 전송 시도, 토스트 쿨다운, 동일 해시 실패 후 약 60초 재시도 억제.
## [17.0.96]
**UX — Caution column titles:** Left/right headers are `분배전` / `분배후` only (drop long titles and subtitles).
**한글:** **분배 주의 열 제목** — 좌 `분배전` / 우 `분배후`만 표시.
## [17.0.95]
**Fix — Final audit hotfixes:** RBGui local-200 load fail (expire tickers → `GUI.*`); snap build failure drains send queue; same-target force/handoff restarts snap; TRADE_SHOW Persist follows bid intake; bag update invalidates pending-sold cache; stack reconcile debounced 0.15s.
**한글:** **최종 점검 핫픽스** — RBGui 로드 실패(local 200)·스냅 큐/force·입찰 Persist 가드·가방 캐시 무효화·스택 재맞춤 debounce.
## [17.0.94]
**Fix — Expire blink without full Refresh:** Minute text still updates every 60s; ≤15m row blink uses a 0.5s alpha-only ticker (no full ledger rebuild).
**한글:** **거래 만료 깜빡임** — `N분` 숫자는 1분마다, ≤15분 깜빡임은 알파만 0.5초 틱 (전체 Refresh 아님).
## [17.0.93]
**Perf — Trade-expire refresh always 60s:** Expire display (including ≤15m) refreshes once per minute; no 1s blink refresh.
**한글:** **거래 만료 표시** — 15분 이하 포함 **모두 1분**마다 갱신 (기존 1초 깜빡임 Refresh 제거).
## [17.0.92]
**Perf — Trade-expire slow refresh 30s→60s:** When not in the ≤15m blink window, ledger expire display refreshes once per minute.
**한글:** **거래 만료 표시** — 15분 초과 구간은 30초가 아니라 **1분**마다 갱신.
## [17.0.91]
**Perf — Remaining live/trade hitch:** Defer TRADE_SHOW live Persist (0.4s coalesce); coalesce ledger Refresh/뽀각 to next frame; skip expire-blink Refresh while bid intake; expire tick 0.5→1.0s; cache item hint/tooltip lines; one-pass bag index for pending-sold split; chunk full-sync SNAP line build across frames; cache ledger hash until items change; defer CloseSold panel Refresh.
**한글:** **남은 라이브·거래 랙** — 거래창 열릴 때 라이브 Persist·장부 Refresh 지연/묶음, 입찰 중 만료 깜빡임 Refresh 생략, 힌트·해시 캐시, pending 가방 스캔 1회화, 풀싱크 스냅샷 조립 프레임 분할.
## [17.0.90]
**Fix — No bid loss during winner trade:** While an announce/live auction is accepting bids (`bidIntakeActive`), TRADE_SHOW never switches the auction session to the trader’s sold item. Intake stays on until sold/pass close; if `live` flickers off, bids still apply and `live` is restored.
**한글:** **낙찰자 거래 중 입찰 누락 방지** — 경보로 연 경매 입찰 중에는 거래창이 떠도 세션을 바꾸지 않음. 마감 전까지 입찰 수신 유지.
## [17.0.89]
**UX — Toggle auction panel on row right-click:** Right-click the same ledger row again to hide the auction progress panel (session/bids kept). Left-click announce or opening another row shows it again.
**한글:** **장부 행 우클릭 토글** — 같은 행을 다시 우클릭하면 경매 진행 상황 창 닫기(세션·입찰 유지). 좌클릭 경보·다른 행 열면 다시 표시.
## [17.0.88]
**Perf — Live bid hitch:** Coalesce session persist (0.4s) and panel refresh (next frame) on accepted bids; skip per-bid ledger table Refresh. Cheap chat prefilter before bid parse. Banner trade button poll 0.5s→1.0s. Flush deferred work canceled on sold/pass close.
**한글:** **라이브 입찰 랙** — 입찰마다 장부 통째 Refresh·동기 저장 제거(프레임/0.4초로 묶음). 수다 채팅은 입찰 파싱 스킵. 낙찰 배너 거리 갱신 1초. 마감 시 지연 작업 취소 후 동기 저장.
## [17.0.87]
**UX — Pending confirm row gone with toast:** In「미확정」view, confirmed rows leave the list immediately when the confirm toast appears (no 1.2s hold ghost). Click-lock still blocks double-clicks for 1.2s.
**한글:** **미확정→확정** — 확정 토스트가 뜨면 해당 행이 바로 목록에서 사라짐(잠깐 남던 hold 제거). 연타 잠금 1.2초는 유지.
## [17.0.86]
**UX — Ledger stays on screen:** Main ledger window is clamped to the screen while dragging; no edge can leave the viewport.
**한글:** **장부창 화면 이탈 방지** — 드래그해도 창의 일부가 화면 밖으로 나가지 않음.
## [17.0.85]
**UX — AM correction two-line recent row:** 「경매담당수정」 shows amount on line 1 and winner names on line 2 (taller row).
**한글:** **경매담당수정 입찰기록** — 1줄 금액 / 2줄 낙찰자 이름으로 표시.
## [17.0.84]
**UX — AM correction bid commas:** 「경매담당수정」 recent-bid amounts use thousand separators (e.g. `2,000`). Existing unformatted raw strings are reformatted on display.
**한글:** **경매담당수정 입찰기록** — 금액 천단위 콤마 (`2,000`). 기존 저장분도 표시 시 보정.
## [17.0.83]
**UX — Banner auto-trade buttons:** No green inset fill when in trade range (border only). Sold panel「거래 N」fill unchanged.
**한글:** **낙찰 배너 자동거래 버튼** — 거래 거리 내 초록 채움 제거(테두리만). 거래 N 버튼은 그대로.
## [17.0.82]
**Fix — Split count after raid ends:** Do not auto-rewrite 분배 인원 (10/25/40) from current roster while the ledger still has rows; keep saved count until 기록삭제. Opening UI / GetSplitNumber no longer fall back to live raid size over a filled ledger.
**한글:** **레이드 종료 후 분배 인원** — 장부에 기록이 있으면 공대 해산·인원 감소로 25→10 등으로 자동 바뀌지 않음. 기록삭제 후에만 현재 공대 규모로 다시 맞춤.
## [17.0.81]
**UX — Trade ledger toast:** No confirm button; auto-dismiss in ~0.35s (was 1s with 확인).
**한글:** **거래 장부 반영 안내** — 확인 버튼 제거, 표시 시간 약 0.35초로 단축.
## [17.0.80]
**Perf — TRADE_SHOW hitch:** Defer sold-trade panel / ledger open / full refresh off the trade-open frame; share pending-sold summary cache; skip GetItemInfo in pending scan hot path.
**한글:** **거래창 오픈 랙** — 장부 전수·가방 스캔·Refresh를 거래창이 뜬 다음 프레임으로 미룸. pending 조회 캐시 공유.
## [17.0.79]
**Fix — Looter class while still 획득자:** Persist `looterClass` on loot add (roster merge + raid unit lookup); keep class fields longer in ADD sync shrink; sync storeClass matches winner path. Open rows get class color before becoming 낙찰자.
**한글:** **획득자 상태 직업색** — 루팅 직후 `looterClass` 저장·공대 unit 조회·동기화 축소 시 직업 필드 유지. 낙찰 전에도 이름 직업색.
## [17.0.78]
**UX — Ledger above other game UI:** Main window uses `FULLSCREEN_DIALOG` (was default `MEDIUM`) so bags/character/etc. no longer sit behind the translucent ledger. Title/toolbar children keep parent strata.
**한글:** **장부 창을 다른 게임 UI 위로** — 반투명인데 가방·캐릭터창 등이 뒤로 비치던 문제. 장부 strata를 FULLSCREEN_DIALOG로 올림.
## [17.0.77]
**UX — Deposit confirm voice gender:** Settings top: 여성=`confirm.mp3` / 남성=`confirm2.mp3`. Choice stored account-wide; click previews.
**한글:** **입금 확인 음성 남/여** — 설정 상단에서 선택. 여성 confirm / 남성 confirm2.
## [17.0.76]
**Fix — Lock left pocket peak on 장부확인:** Confirm freezes left「현재 골드」high-water so later mail/spend cannot change it. Locked snapshots ignore `TouchPreDist`.
**한글:** **장부확인 시 좌측 현재 골드 잠금** — 수집 피크 고정. 이후 소지 변동·Touch 무시.
## [17.0.75]
**UX — 장부확인 green border:** Distribution caution accept button uses a green border (cancel stays danger red).
**한글:** **장부확인 녹색 테두리** — 분배 주의 확인 버튼만 녹색.
## [17.0.74]
**UX — Caution label rename:** `공대 분배금`→`공대 분배`, `내 지출`→`나의 지출`.
**한글:** **분배 주의 라벨** — 공대 분배 / 나의 지출.
## [17.0.73]
**UX — Caution header one line + left diff spacing:** Top income/expense summary is a single line; blank row before left `현재 차액`.
**한글:** **분배 주의 상단 한 줄** — 수입·지출 항목을 한 줄로. 좌측 현재 차액 위 한 줄 띄움.
## [17.0.72]
**UX — Right caution is payout plan only:** Remove right `현재 골드` / `현재 차액` (confirm is before sharing). Drop post-dist pocket lock. Title → `분배 계획`.
**한글:** **우측은 분배 계획만** — 현재 골드·차액·장부확인 잠금 제거. (확인 시점엔 아직 미분배)
## [17.0.71]
**UX — Caution labels + freeze right pocket:** Left `분배전 골드`→`현재 골드`; right `1인분`→`인당 분배`, `분배 후 차액`→`현재 차액`. Right pocket locks on 장부확인 (`/rb postdist`).
**한글:** **분배 주의 라벨·우측 현재 골드 잠금** — 장부확인 시 종료 소지 고정. 수동: `/rb postdist [골드]`.
## [17.0.70]
**UX — Left caution subtracts my spend:** Pre-collect column lists `내 지출` under auction income; `예상 = 시작+수입+경매−내지출` (own wins counted in auction rev but not received as gold).
**한글:** **좌측 내 지출 반영** — 경매 수입 아래에 내 지출 표시. 예상에서 차감(내 낙찰분은 입금 아님).
## [17.0.69]
**Fix — `/rb predist` verify + caution refresh:** Confirms stored gold, refreshes open caution; locked「분배전 골드」in green; value column not covered by labels.
**한글:** **`/rb predist` 저장 확인·창 갱신** — 잠긴 분배전 골드는 초록. 금액이 라벨에 가려지지 않게 수정.
## [17.0.68]
**Fix — Pre-dist gold is peak pocket (auto-persist):** Left「분배전 골드」tracks raid high-water `GetMoney` and never lowers after payout. Removed one-off 39902 force; already-ended raids: `/rb predist <골드>`.
**한글:** **분배전 골드 = 레이드 중 최고 소지 자동 저장** — 분배로 줄어도 유지. 39902 강제 제거. 이미 끝난 장부는 `/rb predist 39902`.
## [17.0.67]
**UX — Left caution omits my spend:** Pre-collect column no longer lists/subtracts `내 지출` (`예상 = 시작+수입+경매` only). Right post-payout column still uses it.
**한글:** **좌측 경매 장부 검증** — 내 지출 행·차감 제거. 우측 분배 종료 검증만 내지출 반영.
## [17.0.66]
**Fix — Force show pre-dist 39902:** Caution UI always applies forced snapshot (start 20,506 → 39,902) in memory on open/`PLAYER_ENTERING_WORLD` so `/reload` does not keep a stale low pocket value.
**한글:** **분배전 39,902 표시 강제** — 리로드 후 메모리에 낮은 소지가 남아도 주의창에서 39,902로 맞춤.
## [17.0.65]
**Fix — Pre-dist gold is pocket at payout time:** Left「분배전 골드」= pocket before sharing (this raid 39,902); locked so post-payout `GetMoney` cannot overwrite it.
**한글:** **분배전 골드 = 분배 직전 소지** — 이번 레이드 39,902 고정. 분배 후 소지로 덮어쓰지 않음.
## [17.0.64]
**Fix — Pre-dist snapshot 39902:** Current raid ledger (start 20,506) snapshot set to 39,902g; `/rb predist <gold>` to set manually.
**한글:** **분배전 골드 39,902** — 이번 장부 스냅샷 보정. 수동: `/rb predist 39902`.
## [17.0.63]
**UX — Distribution caution spreadsheet layout:** Caution body is a two-column table (label / right-aligned amount / fixed `골드`·`명` column) so unit text aligns exactly.
**한글:** **분배 주의 표 레이아웃** — 엑셀처럼 라벨·금액·단위(골드/명) 열로 나눠 세로 정렬.
## [17.0.62]
**Fix — Distribution caution pad glyphs:** Replace unsupported Unicode figure/ideographic spaces (□ tofu) with plain ASCII spaces.
**한글:** **분배 주의 공백 □ 깨짐** — 유니코드 공백을 일반 스페이스로 교체.
## [17.0.61]
**UX — Distribution caution amount align:** Left/right ledger rows pad labels and figures so the `골드`/`명` suffix shares one vertical column.
**한글:** **분배 주의 금액 정렬** — 좌·우 라벨·숫자 칸을 맞춰 `골드`/`명`이 세로로 일렬로 보이게 수정.
## [17.0.60]
**UX — Distribution caution edit/confirm:** Modal is confirm-style with `장부수정` (close, no report) and `장부확인` (proceed to raid report / text view). ESC = 장부수정.
**한글:** **분배 주의 버튼** — `장부수정`(닫기·보고 안 함) / `장부확인`(보고·텍스트 진행). ESC=장부수정.
## [17.0.59]
**UX — Pre-distribute gold snapshot:** Left「경매 장부 검증」uses `분배전 골드` (high-water pocket snapshot), not live gold after payout, so `현재 차액` stays meaningful post-distribute. Right column still uses live `현재 골드`.
**한글:** **분배전 골드 스냅샷** — 좌측은 최고 소지액을 분배전 골드로 유지(분배 후에도 수집 차액 의미 유지). 우측은 실시간 현재 골드.
## [17.0.58]
**Fix — Distribution caution subtracts my auction spend:** Pre-collect expected and post-payout keep both subtract `내 지출` (self-wins counted in auction revenue but not received as pocket gold), so 분배 후 차액 is not inflated.
**한글:** **분배 주의·내지출 반영** — 예상/기대 잔액에서 내 낙찰(실입금 없음)을 빼 분배 후 차액이 과대 표시되던 문제 수정.
## [17.0.57]
**UX — Distribution caution on 확인:** The local text「확인」button also shows the distribution caution modal before opening the export view (close still skips the modal).
**한글:** **확인 버튼에도 분배 주의** — 상세/요약과 같이 확인 시 주의창 → 확인 후 텍스트 보기 오픈(닫을 때는 생략).
## [17.0.56]
**UX — Distribution caution post-payout column:** 「분배 주의」 is two-column: left = pre-collect verify; right = after-payout check (`분배 인원/1인분/지급 합계/내 분배금/기대 잔액/분배 후 차액`, guest→내분배 0).
**한글:** **분배 주의 우측 분배 종료 검증** — 좌=수집 검증, 우=분배 후(인원·1인분·지급합계·내분배·기대잔액·차액). 손님이면 내분배 0.
## [17.0.55]
**Fix — Inset button fill visibility:** Winner auto-trade / sold-trade ready fills use `SetColorTexture` instead of nested `BackdropTemplate` (edgeSize was eating the center on short buttons, so green fill looked missing).
**한글:** **버튼 안쪽 채움 안 보이던 문제** — 낮은 버튼에서 Backdrop 테두리가 중앙을 가려 채움이 안 보이던 것을 ColorTexture로 수정(낙찰자 자동거래·거래 N).
## [17.0.54]
**UX — Banner winner auto-trade fill:** Progress-banner winner buttons (`이름 · N · 골드`) use the same inset fill when enabled (in trade range / self-confirm / remote); fill matches border color (green or gold).
**한글:** **경매 진행 창 낙찰자 자동거래 버튼** — 거래 가능 거리 등으로 활성화되면 안쪽 채움(테두리색과 동일).
## [17.0.53]
**UX — Sold-trade button green fill:** Ready fill is inset from the border with rounded tooltip-edge corners; fill color matches the green border (no sharp rect underlay).
**한글:** **거래 N 버튼 녹색 채움** — 테두리보다 살짝 안쪽·둥근 가장자리, 채움색=테두리 초록과 동일.
## [17.0.52]
**Fix — Looter-only beneficiary class color:** Confirmed/priced tip or fee rows with looter but no auction winner now use `looterClass` / roster color (was plain green winner fallback).
**한글:** **looter만 있는 줄 직업색** — 착귀 차비·팁처럼 낙찰자 없이 획득자만 있을 때도 직업색 표시.
## [17.0.51]
**Fix — Whisper sync throttle recovery:**
- Slower peer whisper gaps / longer retry delay; ADD retries 3→5, mute-after-skips 3→5.
- Send-fail mute is temporary (45s) then peers rejoin sync; `SYNCOPT` decline stays permanent.
- Async pump watchdog 90→120s to match longer retry chains.
**한글:** **귓속말 sync 스로틀 완화** — 간격·재시도 여유, 전송실패 mute는 45초 후 자동 해제(수신거부는 유지).
## [17.0.50]
**Fix — Full pre-raid audit:**
- `SessionKeysRelated`: `item:ID` no longer matches unrelated `i:`/`s:` rows of same item.
- `GetAuctionMemo` itemID fallback only when exactly one stack memo exists.
- Self-win confirm aborts if current-auction scope is empty (no all-pending blast).
- After multi-settle fail with pending left: no single-row fallback (blocks winner overwrite).
- Single-trade path: reject other-winner rows and non-handoff 0g paid confirms.
- FindStored promotes `best` with sessionKey; pending trader match ignores `#winners`×N inflate.
**한글:** **전반 감사 수정** — item:ID 오관련·메모 전역 폴백·본인확정 범위 실패 시 전체 확정·배치 실패 후 단건 우회·다른 낙찰자 줄 덮기 차단.
## [17.0.49]
**Fix — Cost field right-click no longer clears gold:** 낙찰가 EditBox ignores RMB focus/clear/paste; restores text and skips 0g persist on accidental right-click.
**한글:** **낙찰가 우클릭** — 포커스되며 값이 비워지던 동작 차단. 표시 복구·0골 저장 안 함.
## [17.0.48]
**UX — Row delete only on beneficiary column:** Right-click delete is limited to the 획득자/낙찰자 cell (not value/status/no-bene/confirm). Prevents accidental clears while editing bid gold.
**한글:** **줄 삭제 = 획득자/낙찰자 칸 우클릭만** — 낙찰가·상태·무득·확정에서 우클릭해도 삭제 안 됨.
## [17.0.47]
**Fix — Partial trade UI, winner guard, self-confirm scope:**
- Sold-trade green ready uses put count/gold (`N/M`) so partial put + matching gold can ready (aligned with settle).
- `ApplyMultiAuctionTradeSnap` rejects rows whose winner is already a different player.
- Self-win confirm scopes to the open auction (related rowKey + same itemID), not all pending for the name.
**한글:** **부분 거래 초록·오매칭 가드·본인확정 범위** — 일부만 올려도 올린 합계로 레디. 다른 낙찰자 줄 덮기 금지. 본인 확정은 현재 경매만.
## [17.0.46]
**Fix — Re-audit holes after 17.0.45:**
- Gold 0 batch refuse no longer falls through to single-item ledger confirm.
- `FindPendingSoldSessionForTrader` winner check no longer truncated by polluted `sess.copies=1`.
**한글:** **재검사** — 골드 0 거절 후 단건 경로로 다시 확정되던 구멍 차단. 거래 패널이 2등 낙찰자를 못 찾던 `copies=1` 오염 수정.
## [17.0.45]
**Fix — Final pre-raid pass (session/memo/trade):**
- `FindStoredSessionForRow`: no longer attaches unrelated same-itemID sessions (`score>=100` hole).
- `GetAuctionMemo`: related stack memo wins over stale peel ×1 exact (trade gold 1st-price residue).
- ×N size only from stack key/`stackCopies`/live — not `sess.copies` / winner count (`ListPending`, Continue, `bestIsMulti`).
- `CloseSold` reconciles before `SaveAuctionMemo`; memo copyCap uses live count.
- Batch/remote settle: refuse confirm when **gold == 0** but expected > 0; prefer `ledgerIdx`/`seq` match before itemID.
**한글:** **레이드 전 최종** — 다른 줄 세션 오부착·peel ×1 메모가 거래가 가리기·copies로 가짜 ×N·마감 시 memo×1 저장·골드 0 확정을 막음.
## [17.0.44]
**Fix — Trade gold still used polluted 1st price:** `ResolvePendingSoldBidForWinner` now prefers live Nth clearing, skips `clearingBid==topBid`, and treats ×N only via stack key/`stackCopies` (not winner count). Banner/clearing line/SaveAuctionMemo reject 1st-as-clearing; ×3+ falls back to `thirdBid` before `secondBid`.
**한글:** **거래 골드 1등가 잔존** — 패널 안 열어도 pending 금액이 N등가. ×1에 낙찰 2명만으로 ×N 오인 제거. 배너·클리어링 줄·메모 저장도 동일.
## [17.0.43]
**Fix — Clearing heal for ×3+ and trade memo sync:** Polluted `clearingBid==topBid` now heals to **Nth** price (not always 2nd). Session heal also rewrites related `memo.clearingBid` so trade gold matches the banner (배너 300 / 거래 400 mismatch).
**한글:** **N등가 힐 + 메모 동기화** — ×3+도 3등가로 교정. 세션만 고치고 memo가 1등가로 남아 거래 금액이 어긋나던 문제 수정.
## [17.0.42]
**Fix — Helm ×2 still showed 1st price:** Sold review now force-restores stack session `s:id:a,b` (e.g. 정복당한 용사의 투구 54+57); clearing uses Nth bid / `secondBid`, and heals polluted `clearingBid==topBid` (400→300).
**한글:** **투구 2등가 300** — peel 후에도 묶음 세션 강제 복구. 저장이 낙찰 400으로 오염돼도 2등 300으로 표시·재저장.
## [17.0.41]
**Fix — 2등가 flip-flop:** Reconcile no longer peels `s:id:a,b` down to a single key (that was wiping ×N after restore). Stable rule: ×N only for stack key / live≥2 / parent stack; never bidder count. Memo scoring ignores polluted copies/winners.
**한글:** **2등가 왔다 갔다** — 묶음 키를 peel 로 깎던 경로 제거. 판정 고정: 묶음 키·장부 live≥2만 ×N, 입찰 2명으로는 ×N 아님.
## [17.0.40]
**Fix — False 2등가 on ×1 auctions:** Stopped treating “2 bidders / secondBid / polluted copies·winners” as stack×N. `2등가` only when stack key or ledger live count ≥ 2.
**한글:** **단일 아이템에 2등가** — 입찰 2명·오염된 copies를 ×2로 오인하던 문제 수정. 장부 묶음(live≥2)일 때만 2등가.
## [17.0.39]
**Fix — Lua 5.1 “main function has more than 200 local variables”:** Moved newly added stack helpers + chat bid entry off main-chunk `local function` onto `BID.*` fields (200-local hard limit).
**한글:** **로드 오류** — `RBAuction.lua` local 200개 초과로 애드온이 안 뜨던 문제. 헬퍼를 `BID` 테이블로 옮겨 한도 확보.
## [17.0.38]
**Fix — Reconcile demoted ×2→×1 on peel keys:** `ReconcileAuctionStackToLiveLedger` / `PersistCurrentSession` were forcing single-copy when the open row was a peel key (`s:id:57`), wiping `2등가` back to `낙찰` + 1st price (400). Now promote from live parent stack `s:id:54,57` and keep multi when 2+ bidders/winners; banner prefers memo `clearingBid`.
**한글:** **진짜 원인** — peel 한 줄 열 때 ×2를 ×1로 깎아 진행 창이 낙찰 400으로 돌아가던 문제. 부모 묶음·입찰 2명 기준으로 `2등가 300` 유지.
## [17.0.37]
**Fix — Sold panel still showed 낙찰/1st price:** Re-apply session on same-row reopen; banner heals ×N from memo/winners so `2등가` + clearing gold shows even if in-memory state was stuck at ×1.
**한글:** **진행 창 2등가** — 같은 줄 재클릭·배너 갱신 시 메모로 ×N 복구 (장부 300인데 창만 낙찰 400이던 문제).
## [17.0.36]
**Fix — Corrupted ×2 session restore (정복당한 용사의 투구):**
- Infer ×N from store key / `winners` / `soldWinnerCount` even if `startedAsMulti` was saved as false.
- Prefer stack store key over broken `sessionKey` field; heal flags on load.
- Do not persist `copies=1` onto `s:id:a,b` keys; do not prefer peel exact over multi-winner stack.
**한글:**
- **2등가 깨짐** — 저장 플래그가 ×1로 덮여도 묶음 키·낙찰자 2명으로 ×N 복구.
- **열람** — 손상된 sessionKey 대신 `s:id:a,b` 유지.
- **저장** — 묶음 키에 copies=1 덮어쓰기 방지.
## [17.0.35]
**Fix — ×N / 2등가 review after peel:**
- Keep `startedAsMulti` + copies on sold/review even when the open row key is single.
- `GetAuctionMemo` only blocks related ×N for true solo ×1 memos (peel ×2 can still use stack memo).
- Persist `stackCopies` on sessions for restore.
**한글:**
- **2등가 열람** — 묶음 낙찰 후 단일 행으로 열어도 ×N/2등가 유지.
- **메모** — 진짜 ×1만 related ×N 차단 (peel 2등가는 허용).
- **세션** — `stackCopies` 저장.
## [17.0.34]
**Fix — Harden 17.0.32 trade/loot paths:**
- Do not warn on normal (non-auction) paid trades about missing pending.
- Sold bid hint only for matching itemID (no cross-item bid).
- Loot retry once for missing rows only; skip if quality rules still fail.
**한글:**
- **일반 거래** — 낙찰 pending 경고가 뜨지 않게 제한.
- **낙찰가 힌트** — 같은 아이템만 매칭.
- **루팅 재시도** — 부족한 줄만 1회, 품질 미달이면 스킵.
## [17.0.33]
**Fix — Load error:** `s:HasAuctionManager` without `()` broke parse in loot toast (`RBCmd.lua`).
**한글:** **로드 오류** — 루팅 안내 토스트의 `HasAuctionManager` 문법 수정.
## [17.0.32]
**Fix — Loot/sold/trade reliability:**
- Auto-loot no longer forces rarity=0 on uncached `GetItemInfo` (use link color + short retry).
- Keep sold panel / auto-trade buttons while sale is still pending after the 15s overlay.
- `GetAuctionMemo` does not promote related ×N memos over a live ×1 row (wrong clearing price).
- Manual trade fallback prefers auction bid hint over trade-window gold when they differ; warns if pending missing.
- Toast when loot auto-add is blocked because auction manager is unset / not you.
**한글:**
- **루팅 미수집** — 아이템 캐시 전 rarity=0 강제 제거(링크 색·재시도).
- **낙찰 거래 UI** — 미확정이면 15초 후에도 진행 창·자동거래 유지.
- **금액 오염** — ×1 행이 옛 ×N 메모(N등가)로 덮이지 않음.
- **수동 거래** — pending 실패 시 거래창 골드보다 낙찰 기록 우선, 안내 출력.
- **담당 미지정** — 자동수집 차단 시 안내 토스트.
## [17.0.31]
**Fix — Partial ×N unsold copy in trades:** When K of N copies sell, unsold slots stay out of that winner’s pending/trade highlight; clear stray `winner` on pass copies; trade fallback skips partial-pass rows.
**한글:** **×N 부분 낙찰** — 낙찰 안 된 남은 사본은 낙찰자 거래·강조에서 제외, 잘못 남은 winner 제거.
## [17.0.30]
**UX — Ledger verify note spacing:** Blank line before the `현재 차액 : 몹골드, 수리…` hint.
**한글:** **분배 주의** — 차액 안내 문구 앞에 한 줄 공백.
## [17.0.29]
**UX — Ledger verify amount align:** Distribution caution modal uses left body justify; `시작 골드`~`현재 차액` rows pad so gold amounts sit on the right like a ledger.
**한글:** **분배 주의** — 시작~차액 줄 금액 우측 정렬(장부 느낌).
## [17.0.28]
**UX — Ledger verify trim:** Keep income/expense + wallet check only; remove after-distribution share/expense leftover lines from the caution modal.
**한글:** **분배 주의** — 수입·지출 + 경매 장부 검증만 유지, 분배 후 잔액 줄 제거.
## [17.0.27]
**UX — Ledger verify label format:** `시작/공대/경매/예상/현재 골드 :` lines; `현재 차액` with green `+` / red `-`, note `몹골드, 수리, 상점, 사적거래`.
**한글:** **분배 주의** — 경매 장부 검증 라벨 형식·현재 차액 색상(+녹/-빨)·차액 안내 문구.
## [17.0.26]
**UX — Ledger verify formula:** Stack `시작 + 공대수입 + 경매수입 → 예상/현재/차액`; after-distrib = `현재 − 공대분배 − 공대지출 + 내분배` (expense personal share unknown).
**한글:** **분배 주의** — 차액=현재−예상, 분배후=현재−공대분배−공대지출+내분배 (지출 내몫 미상).
## [17.0.25]
**UX — Ledger verify copy polish:** Clearer labels/hints only (`시작시` / `예상` / `현재` / `지급` / `지급 후`, breakdown in gray).
**한글:** **분배 주의** — 경매 장부 검증 문구만 다듬음.
## [17.0.24]
**UX — Ledger verify wording:** Rename pocket block to `경매 장부 검증`. Expected = start + raid income + auction income; payout = share total + raid expense; after-payout expected = start.
**한글:** **분배 주의** — `경매 장부 검증`. 예상=시작시+공대수입+경매수입, 지급=분배금합+공대지출, 지급후≈시작시.
## [17.0.23]
**UX — Distribution caution copy cleanup:** Pocket-gold block shortened to `시작 / 예상 / 현재` and `지급 / 지급 후` with compact `맞음` / `±N` gaps.
**한글:** **분배 주의** — 소지골드 문구 정리 (시작·예상·현재 / 지급·지급 후).
## [17.0.22]
**UX — Distribution caution total payout lines:** Adds `전체 분배금` (`N×1인분 + 공대지출`) and `분배 후 남는` (`현재 − 전체분배금`), with expected keep `시작+내분배` for a rough match.
**한글:** **분배 주의** — 전체 분배금·분배 후 남는 금액 추가. 남는≈시작+내분배로 눈대중.
## [17.0.21]
**UX — Distribution caution pocket gold simplified:** Pre-distribute check shows only start gold, expected end gold (`시작 + 장부 최종`), and current gold. Per-person share lines removed (not meaningful before payout).
**한글:** **분배 주의** — 시작 / 종료 후 예상 / 현재 소지만 표시. 내 분배금 관련 줄 제거.
## [17.0.20]
**UX — Distribution caution my share:** Shows 1인분, whether you receive a cut (guest / 무득분배 winner = no), expected payout to others, and expected start-relative leftover after distribute (`내 분배금` or 0).
**한글:** **분배 주의** — 내 분배 수령 여부·타인 지급·분배 후 시작대비 기대 표시.
## [17.0.19]
**UX — Distribution caution ledger breakdown:** Shows auction / raid income(+) / raid expense(−) / final with `= 낙찰+수입-지출`, and notes that pocket-gold delta should be compared to **낙찰**, not final.
**한글:** **분배 주의** — 낙찰·공대수입·공대지출·최종 관계 표시. 소지 차이는 **낙찰**과 비교하라는 안내.
## [17.0.18]
**UX — Wallet gold on distribution caution:** The 「분배 주의」 modal shows start/current pocket gold, their delta, plus ledger auction/final totals for a rough sanity check (no auto pass/fail; repairs/mob gold/private trades not subtracted).
**한글:** **분배 주의** — 시작·현재 소지골드·차이, 장부 낙찰/최종을 참고용으로 표시 (자동 판정 없음).
## [17.0.17]
**Fixed — Ledger cost sort order:** Column sort used `not (a < b)`, which returns true when values are equal and can scramble `table.sort` (e.g. `5500 3500 700 2000…` instead of true gold order). Comparator now uses strict numeric `>`/`<` and returns false on ties.
**한글:** **낙찰가 정렬** — 같음 비교가 `true`가 되어 순서가 깨지던 문제 수정 (`5500→3500→2000→…→700`로 정렬).
## [17.0.16]
**UX — Pass-after-trade banner title:** When a passed auction is later sold via trade (ledger confirmed with winner + gold), the progress banner title shows `유찰후거래` (with name/gold lines) instead of plain `유찰`.
**한글:** **유찰 후 거래** — 경매 진행 배너 제목을 `유찰후거래`로 표시 (이름·골드 줄 유지).
## [17.0.15]
**UX — Banner trade count color:** Middle count on sold trade buttons is green when puttable (`· 1 ·`), red when remote/unowned (`· 0 ·`).
**한글:** **배너 거래 버튼** — 개수 `1` 초록, 미보유 `0` 빨강.
## [17.0.14]
**Feature — Remote / unowned sold split:** On sold close, ledger `winner` is written from auction winners (looter kept). Banner trade buttons split puttable (`이름 · N · 골드`) vs remote unowned (`이름 · 0 · 골드`). Remote opens gold-only sold trade (`거래 0`); settle via gold + accept without putting the item.
**한글:** **미보유 낙찰 분리** — 낙찰 시 장부 winner=낙찰자(획득자 유지). 배너에 보유 `N · 골드` / 미보유 `0 · 골드` 버튼 분리. 미보유는 아이템 없이 골드·수락으로 확정.
## [17.0.13]
**Fixed — ×N multi-winner trade settles wrong row:** Single-item trades with a pending sold winner now use that winner’s `ledgerIdx`/seq/GUID (via `ListPendingSoldForTrader` + `ApplyMultiAuctionTradeSnap`), not the first unconfirmed same-`itemID` ledger row. Prevents trading with A from clearing B’s trade button (e.g. tier ×2 / 2nd-price).
**한글:** **×N 복수 낙찰 거래** — A와 거래했는데 B 버튼이 꺼지던 문제. 동일 itemID 첫 줄이 아니라 **거래 상대 pending 줄**을 확정.
## [17.0.12]
**UX — Trade button green match:** Ready-to-accept fill uses the same green as the existing border (`0.35, 0.95, 0.45`), not a different lime.
**한글:** **낙찰 거래 `거래 N`** — 채움 녹색을 기존 테두리 초록과 동일하게.
## [17.0.11]
**UX — Green fill on partner accept:** `거래 N` fills green and plays `confirm.mp3` only when items are up, gold matches, **and** the partner has accepted.
**한글:** **낙찰 거래 `거래 N`** — 아이템 올림 + 골드 일치 + **상대 수락**일 때만 배경 녹색 채움·확인 음성.
## [17.0.10]
**UX — Gold-confirm cue + green fill:** When items are up and trade gold matches the bid total, `거래 N` fills solid green and `confirm.mp3` plays once (no longer waits for partner accept).
**한글:** **낙찰 거래 `거래 N`** — 아이템 올림 + 골드 일치 확인 시 배경 녹색 채움과 확인 음성을 동시에. (상대 수락 전)
## [17.0.9]
**UX — Sold-trade put/remove fill:** Green fill on `거래 N` when items are in the trade window (put-up state), not only at accept/confirm.mp3. Clear when items are removed; red when gold mismatches.
**한글:** **낙찰 거래 `거래 N`** — 아이템 올린 상태(올리고/내리기)일 때 녹색으로 채움. 내리면 해제. (이전에 수락 음성 시점으로 잘못 적용했던 것 수정)
## [17.0.8]
**Fix — Sold-trade green fill visible:** `거래 N` used DialogBox backdrop so `SetBackdropColor` green barely showed. Switched to WHITE8X8 + solid fill texture at confirm.mp3 (`readyToAccept`).
**한글:** **낙찰 거래 `거래 N` 녹색 채움** — DialogBox 배경 때문에 안 보이던 문제. 확인 음성 시점에 단색 녹색으로 확실히 채움.
## [17.0.7]
**UX — Sold-trade button fill:** When confirm.mp3 plays (gold ok + partner accepted), the `거래 N` button fills solid green for visibility (was border-only).
**한글:** **낙찰 거래 `거래 N`** — 확인 음성(금액 일치·상대 수락) 시점에 버튼 안을 녹색으로 채움.
## [17.0.6]
**UX — Ledger toast shorter:** Registration / confirm toasts auto-close in ~0.5s. Removed the hard 2s minimum on text toasts.
**한글:** **장부 등록·확정 안내 창** — 자동 닫힘 약 0.5초로 단축 (기존 최소 2초 고정 제거).
## [17.0.5]
**Fixed — Confirm unchecks after bid:** Clicking Confirm while cost focused no longer toggles off. Intent is captured on MouseDown before FocusLost/auto-confirm; cost flush before Confirm skips auto-confirm so the toggle cannot invert to unconfirm.
**한글:** **200 넣고 확정 → 확정해제** — 낙찰가 포커스 중 확정 클릭 시 FocusLost 자동확정 후 토글이 해제로 뒤집히던 문제. MouseDown에서 확정 의도 고정, flush는 금액만 저장.
## [17.0.4]
**Fixed — Nether Vortex bid saves as 0:** Cost persist now unions UI `stackIndices` with `CollectNetherVortexStackIndices` (incomplete ×N lists no longer leave sibling rows at 0g). Apply gold to all rows first, then auto-confirm once. Confirm checkbox flushes focused cost edit before toggle. Disenchant-handoff noBene skip respects vortex `bundleBidGold`.
**한글:** **황천 낙찰가 200→0** — ×N 일부만 저장되던 문제(형제 줄 0골) 수정. 전 줄 금액 반영 후 자동확정. 확정 체크 전 낙찰가 입력 flush. 황천을 뽀각 0골로 오인하지 않음.
## [17.0.3]
**Maintenance:** Build/version bump. No ledger or auction UI changes. Update the whole raid together so sync stays on the same version.
**한글:** 유지보수 배포(버전만 갱신). 장부·경매 UI 변경 없음. 공대 sync는 동일 버전이 필요하니 **공대원 모두 업데이트**하세요.
## [17.0.0]
**Release — RaidBook 17.0.0:** Major line. Includes Who/Support ledger dim toggles, sold-correction toggle, Who status labels/colors, sync data-safety hardening (ambiguous row match, snap hash gate, ADD/SNAP no silent drop, stored-field hash, send-fail toast), NoBene button gray rule.
**한글:** **17.0.0** 정식. 누구/지원·낙찰수정 토글, 상태 문구·색, sync 안전 강화, 무득처리 버튼 회색 조건 포함.
## [16.5.158]
**UI — NoBene button gray:** Title「무득처리」gray only when recipe-off and Nether Vortex = normal auction.
**한글:** 상단「무득처리」회색 — 각종 도안 무득 OFF + 황천 일반 경매일 때만.
## [16.5.157]
**Sync — data safety:** Ambiguous ledger row match rejected; snap apply gated by hash; ADD/SNAP no silent line drop; UTF-8-safe shrink; hash uses stored name fields; CLRALL/ADD send failures toasted + `/rb syncerrors`.
**한글:** sync 안전 — 모호한 줄 매칭 거부, 스냅 hash 검증, ADD/SNAP 줄 생략 금지, UTF-8 축소, hash 저장필드, 전송실패 토스트.
## [16.5.156]
**UI — Who status colors:** 「경매담당」보라 / 「장부일치」파랑.
**한글:** 누구「상태」색 — 경매담당 보라, 장부일치 파랑.
## [16.5.155]
**UI — Who status labels:** 「상태」열 — 장부일치 / 미동기화 / 대상아님 / 사용확인 / 알수없음.
**한글:** 누구「상태」— 동기화→장부일치, 대상외→대상아님, 확인됨→사용확인, ?→알수없음. (미동기화 유지)
## [16.5.154]
**UI — Who status labels:** 「상태」열 문구 정리 (동기화중 표기는 155에서 미동기화로 되돌림).
**한글:** 누구「상태」문구 정리.
## [16.5.153]
**UI — Sold correction toggle:** 「낙찰 정보 수정」 opens/closes on click; button stays brighter above dim while open.
**한글:** 「낙찰 정보 수정」— 다시 눌러 닫기. 열린 동안 버튼 밝게·딤 위.
## [16.5.152]
**UI — Who/Support ledger dim:** 「누구」「지원」 use the same ledger-scoped dim overlay as 「무득처리」; toggle buttons stay above dim.
**한글:** 「누구」「지원」— 무득처리처럼 장부 어둡게. 버튼은 딤 위에서 다시 눌러 닫기.
## [16.5.150]
**UI — Who panel title:** Modal title set to 「Raid Book 애드온 사용 공대원 현황」.
**한글:** 누구 창 제목 — Raid Book 애드온 사용 공대원 현황.
## [16.5.149]
**UI — Who toggle above modal:** 「누구」 stays clickable/visible over the dim overlay (same open→brighter / click-again-to-close as 「지원」).
**한글:** 「누구」창이 떠도 버튼이 위에 남아 다시 눌러 닫기·밝기 강조가 「지원」과 같이 동작.
## [16.5.148]
### This release
- Changelog trimmed for CurseForge (`CHANGELOG-archive.md` keeps detail)
- **Who** for all users (manager & receivers); purple open-state like **Support**
- **Support** toggle (Discord / CurseForge); title **−** removed (X closes)
- Delete confirm: item / looter·winner / gold; mini lock **account-wide**
- Handoff: sync then final accept; options help updated
### 이번 배포 (한글)
- CurseForge용 CHANGELOG 축약 (상세는 archive)
- **누구** 전원 사용 · 열리면 밝게 / **지원** 토글
- 제목줄 **−** 제거, 삭제 확인에 아이템·사람·골드
- 미니창 자물쇠 계정 공통, 넘기기·설명서 정리
### 16.5.x recent (summary)
| Ver | Note |
|-----|------|
| 147 | Who for everyone |
| 146–140 | Support UI, delete labels, − removed |
| 139–138 | Mini lock account-wide, help sync |
| 136–133 | Handoff / sync fixes; no row-count protect |
This mod has no additional files

