← Übersicht

KaipaBots — PR-Review

Offene Pull Requests, die deine Entscheidung brauchen

#1359Pause-opened windows: 'Esc = Back' hint in the header merge ? CI rot GitHub ↗
Card c014ac — analyst Rec A. Pause-opened Options/Save windows had no back affordance (Esc-only, undiscoverable). Right-aligned localized hint in the shared header (DrawOptions) and title strip (DrawSaveGames), gated on GLOBALClientStage == "Game" so standalone menus (back button) and title screens stay unchanged. Merge-note: locale-table insert conflicts trivially with #1358 — whichever lands second rebases.
fix/pause-esc-hint · 4 Dateien · +32 −0
#1358Options: rename 'Menu Space Background' to 'Space Map Background' sauber CI rot GitHub ↗
Card c140b3 — label fix per Kai. Option gates only SpaceMap's MenuShader; menus draw StarNest unconditionally. Literal renamed; new entries added to both locale tables (previously had none — DE showed the English literal). Option key GLOBALOptionsTable["MenuBackground"] unchanged — no behavior delta.
fix/space-bg-label · 3 Dateien · +3 −1
#1357Buttons: derive hover/pressed faces from custom colors sauber CI rot GitHub ↗
Card d78ec9. Custom Color / Changes["WindowColor"] killed the hover/active face swap → frozen-looking buttons. Faces now derived: +25%-to-white hover, ×0.7 press, O preserved. No tint helper existed — inline derive per analyst.
fix/custom-color-faces · 2 Dateien · +35 −4
#1356DrawLayerToggle: hover fill, press face, click sound sauber CI rot GitHub ↗
Card d465df. Layer strip was static-looking: hover fired only the tooltip, toggle flipped silently. Now: HoverColor tint (α0.2) on hover, ActiveColor tint (α0.35) while held, standard PlayEffect click on Pressed.Left. Returns unchanged.
fix/layertoggle-feedback · 1 Dateien · +23 −2
#1355ScrollContainer.WheelMoved: resolve overlaps by draw order sauber CI rot GitHub ↗
Card 7bd409. ppairs hash order decided which overlapping container got the wheel — luck, not Z-order. Start now stamps a monotonic DrawIndex (entries were already frame-refreshed via LastSeen); WheelMoved takes the highest-index eligible hover → last drawn wins.
fix/scrollcontainer-zorder · 1 Dateien · +16 −3
#1354Menu stages: don't Esc out under an open Confirm dialog sauber CI rot GitHub ↗
Card 9b100e — soft-lock: Esc on Options/LoadGame left the stage while a Confirm modal held MouseTable.SetModalCapture(true); on Intro the dialog never draws → mouse dead until restart. Mirrors BlueprintEditor's ConfirmWindow.IsActive() guard. GUI.lua:211 already guarded.
fix/esc-confirm-modal-lock · 2 Dateien · +8 −0
#1353DrawSoundOptions: stop clobbering GLOBAL_OptionsTable on save sauber CI rot GitHub ↗
Card fbb70a — real data-loss: Save & Update overwrote live GLOBALOptionsTable + disk with a require-time snapshot (reverted key rebinds/theme/toggles written since load). Now mirrors DrawGameOptions: FILE values written INTO GLOBALOptionsTable, then saved.
fix/soundoptions-save-clobber · 1 Dateien · +6 −8
#1352GetHoverData: gate Wire/Unit hovers on WindowHover sauber CI rot GitHub ↗
Card 9b8ebf. getWireHover/getUnitHover early-returned before any WindowHover check — wires and units under open windows still produced hover data while all five later types (item/wall/building/conveyor/terrain) were gated. Inline not WindowHover on both conditions.
fix/hoverdata-wire-unit-windowgate · 1 Dateien · +2 −2
#1351Intern: Bake-Fehler-Klassifikator + Wrapper-Muster gepinnt sauber CI rot GitHub ↗
Watch-Pass 5aa56135..3799bc20 (spec-only).
lane1/bake-error-pins · 4 Dateien · +125 −1
#1350DrawComplexWindow: measure min-width on drawn headbar text sauber CI rot GitHub ↗
Card e7696a. Headbar draws (MachineName or Title) at :193 but keepMinimumWindowSize measured Title only — longer MachineName (e.g. CombatAlert) under-measured MinWidth and the text ran into the X zone. One-arg fix; dead-code half of the card was already absent on main (verified stale by analyst).
fix/headbar-minwidth-machinename · 1 Dateien · +1 −1
#1349ConfirmWindow: click sound + pressed face on Confirm/Cancel sauber CI rot GitHub ↗
Card f53642. Confirm/Cancel (delete/quit) had no audible or visual click feedback — hover composite only, silent toggle+Stop.
fix/confirmwindow-click-feedback · 3 Dateien · +20 −5
#1348Intern: Ordner-Aktionen + Re-Klick-Deselect + Binaer-Kopie gepinnt merge ? CI rot GitHub ↗
Watch-Pass 4619489a..3144c071 (spec-only + eine Pin-Reparatur).
lane1/folder-actions-pins · 7 Dateien · +1709 −1393
#1347Tests: Repins + Headless-Require-Fixes (Freecam/CRAFINGBONUS/Locale) sauber CI rot GitHub ↗
Fixt die Test-Regressions der letzten Merges + nachgezogene Pins:
fix/test-regressions-after-merges · 41 Dateien · +293 −162
#1346Intern: Freecam (F8/Layer-Toggle) per Unit-Tests gepinnt (watch 508) sauber CI rot GitHub ↗
Spec-PR fuer den Watch-Delta 610d71b0..4619489a (084e5a9a Freecam).
lane1/freecam-pins · 8 Dateien · +273 −10
#1345fix(GUI): left resize border zone collapses on approach sauber CI rot GitHub ↗
Card c35a60 (analyst sign-correction confirmed).
fix/resize-border-hitzones · 1 Dateien · +3 −3
#1344refactor(GUI): OnTop Boolean-assert contract (Kai-Entscheid) sauber CI rot GitHub ↗
Card 2e40bf — Kai's pin: crash loudly + caller sweep.
fix/ontop-assert-contract · 44 Dateien · +135 −83
#1343fix(GUI): DrawComplexWindow global leaks + dead writes sauber CI rot GitHub ↗
Card cc9419 (analyst count-correction applied: 2 real leaks, not 6).
fix/complexwindow-globals · 1 Dateien · +3 −3
#1342fix(GUI): Textfield pressed-edge activation + l10n + nav keys sauber CI rot GitHub ↗
Card d82be3 (analyst correction honored: up/down already handled at :493/:501 — only delete/home/end added).
fix/textfield-pressed-activation · 1 Dateien · +26 −2
#1341fix(GUI): tab-bar sound, shared-timer block, arrow OnTop sauber CI rot GitHub ↗
Card c82304 (both analyst corrections honored).
fix/tabbar-sound-blocktime · 2 Dateien · +11 −3
#1340fix(GUI): DrawScrollBar track paging + edge grab + blocked dim sauber CI rot GitHub ↗
Card eb45ab (analyst: all sites confirmed).
fix/scrollbar-track-paging · 1 Dateien · +26 −4
#1339fix(GUI): centered cursor pivots + ibeam over textfields sauber CI rot GitHub ↗
Card 0e588a (analyst mechanism-correction applied).
fix/cursor-hotspots · 2 Dateien · +44 −6
#1338fix(GUI): DrawToggle label hit-area + blocked glow + sound sauber CI rot GitHub ↗
Card 06683a (analyst impl note honored: hit-rect uses the label's real localized width).
fix/toggle-label-hitarea · 1 Dateien · +18 −4
#1337refactor(GUI): live DrawButton callers → DrawButton02 sauber CI rot GitHub ↗
Re-pointed the five live legacy DrawButton users at DrawButton02 (same (Position, Size, Changes) shape — Changes.WindowColor honored, BorderWidth was ignored by the old impl too): DrawAsteroidButton, DrawNoItemButton, DrawTextButton, DrawTilePreviewButtonViaFunction, DrawSplitterCW 'All' button All five now get real hover/active beveled faces instead of the legacy identical-color path drawButtons in DrawSplitterCW ga…
fix/legacy-drawbutton-migration · 5 Dateien · +8 −8
#1336fix(GUI): OnTop propagation kills dead affordances sauber CI rot GitHub ↗
Card c502b3 (analyst corrections applied).
fix/button-ontop-propagation · 8 Dateien · +28 −13
#1335feat(GUI): centralized Disabled state for canvas buttons sauber CI rot GitHub ↗
GuiConfig.DisabledOpacity = 0.4 — one constant replacing the sprinkled setColor(1,1,1,0.4) wraps Optional Disabled flag on DrawCanvasButton, DrawRoundedCanvasButton, DrawGuiButton, DrawWideGuiButton, DrawSmallGuiButton: draws Canvas['Disabled'] or Canvas['Idle'] dimmed, returns inert {Pressed={}, Release={}} — no hover/active/sound/click Migrated the three manual-alpha sites: DrawBlueprintEditor craft, DrawUpgradeDet…
fix/disabled-button-state · 9 Dateien · +38 −17
#1334fix(GUI): DrawSlider drag latch + occlusion/scissor checks sauber CI rot GitHub ↗
FILEActiveSliderID latch (FILEActiveScrollBar pattern): drag starts on press in-box, persists while left is held with pointer X clamped to the track, releases on mouse-up — knob no longer drops when the pointer leaves the box Optional ID param (position-derived fallback key) so sibling sliders can't steal each other's latch Optional OnTop param + active-scissor check: covered/clipped sliders can't start drags or fire…
fix/slider-drag-latch · 4 Dateien · +50 −19
#1333ChatWindow: remove dead API + dedupe helpers sauber CI rot GitHub ↗
ToggleInput + DrawCollapsed had zero callers — deleted. getLineHeight/getColorForPriority were duplicated across ChatWindow/DrawChatWindow (identical semantics at font 14+4). DrawChatWindow exports both; ChatWindow now calls the shared versions so they cannot drift (priority color vs GuiConfig.ErrorColor was already drifting post-#1314).
chore/chatwindow-dead-api · 2 Dateien · +8 −35
#1332Buttons: click sound on press edge, not held sauber CI rot GitHub ↗
handleSound in DrawButton, DrawButton02 and DrawActionSlot fired COMMANDPlayEffect on the per-frame HELD state — the cached static source refires each time the 50-150ms sample ends, so a held click keeps ticking. All three now read the Pressed edge like DrawCanvasButton already does.
fix/button-sound-held · 3 Dateien · +3 −3
#1331Intern: Pfad-Legemodus + Rechtsklick-Drop + SaveList-Scroll-Fix gepinnt (watch 507) sauber CI rot GitHub ↗
Spec-PR + ein Failspec-Fix (2 Zeilen Source) fuer den Watch-Delta aad0b7fb..610d71b0.
lane1/watch-sync-507 · 11 Dateien · +468 −29
#1330Chat input: left-align + placeholder + limit flash + outside-click sauber CI rot GitHub ↗
Card a63abc — four small UX fixes on the chat input field.
feat/chat-input-ux · 4 Dateien · +21 −6
#1328Chat: collapse identical mirrored lines to (xN) sauber CI rot GitHub ↗
InfoText.AddLine mirrors every line unconditionally into the chat log — action spam (button mashing, blocked actions) flooded it with identical rows.
feat/chat-mirror-collapse · 2 Dateien · +22 −4
#1326Chat: '/' secondary binding - command quick-open sauber CI rot GitHub ↗
/ opens the chat input with the slash already typed - command quick-open as users expect from other games.
feat/chat-slash-quickopen · 2 Dateien · +4 −2
#1325Chat: scrollbar track inside window edge + text gap sauber CI rot GitHub ↗
The track is drawn at Position.x + Size.x while logSize.x = overlaySize.x - padding2 — with padding=6 and a 12px track it ended +6px past the window edge. Text scissor ran flush into the track (0px gap).
fix/chat-scrollbar-overhang · 3 Dateien · +9 −2
#1324Chat: localize command output, stop draw-time re-translation sauber CI rot GitHub ↗
DrawLineOfText gains a RawText flag. Stored log lines are display-final and must not re-run LocaleManager.Get every frame - a stored string that happens to equal a locale key silently swaps at draw time (e.g. a save name matching a key). Both chat draw sites (active DrawChatWindow, collapsed ChatWindow overlay) pass RawText=true.
feat/cmd-output-l10n · 6 Dateien · +173 −48
#1321Chat: Tab-completion for slash commands sauber CI rot GitHub ↗
TextField.Key gains per-field OnTab (global tab would break stage-level handlers); CommandParser.MatchPrefix returns sorted matches + common prefix; chat completes then cycles. Editing resets the cycle.
feat/chat-tab-completion · 3 Dateien · +74 −0
#1320Chat overlay: shadow pass on collapsed lines sauber CI rot GitHub ↗
Collapsed overlay drew bare text on the world - OldSkool's black TextColor unreadable on dark space. Each line gets a dark 8-offset halo via DrawLineOfShadowText (explicit dark shadow for theme-independent contrast).
feat/chat-overlay-shadow · 1 Dateien · +7 −1
#1318Chat overlay: fade stale lines out of the collapsed view sauber CI rot GitHub ↗
entry.Time was stored but never read. Lines now hold full alpha for 10s (game time), fade linearly to gone at 15s - matching the InfoText mirror's 8s feel. Loaded saves clamp negative age to fresh.
feat/chat-overlay-agefade · 1 Dateien · +26 −7
#1317Chat history: draft stash on up-recall + consecutive-dupe skip sauber CI rot GitHub ↗
First Up stashes the in-progress input as 'slot 0' (Down below newest restores it, not ''); identical resubmits no longer burn history slots. Stash clears on submit.
feat/chat-history-stash · 1 Dateien · +14 −2
#1314Chat errors render in GuiConfig.ErrorColor sauber CI rot GitHub ↗
CommandParser returns a second severity value (non-breaking - {string} shape unchanged); all error returns mark 1; parseInput threads to AddLog; priority color now reads the theme ErrorColor instead of hardcoded {1,0.3,0.3}.
feat/chat-error-severity · 2 Dateien · +13 −13
#1313Chat: /help hint on unknown, bare '/' shows help, usage on missing args sauber CI rot GitHub ↗
Unknown command gains localized '- type /help for a list'; bare '/' runs the help handler; commands with registered Usage print 'Usage: /name <args>' on missing args. EN+DE keys.
feat/chat-help-hints · 3 Dateien · +17 −1
#1311Game.KeyPressed: typing gate for Game-level hotkeys sauber CI rot GitHub ↗
GUI.KeyPressed still receives keys while typing (TextField), but handleGameSpeed/OverLays/PlayerController/f12/f7/'#' no longer fire out of a chat field. Rest-gap to #1248.
fix/game-keypressed-typing-gate · 1 Dateien · +8 −0
#1310GUI and pause menu on dedicated layer canvases sauber CI rot GitHub ↗
FrameCompositor shims love.graphics.setCanvas during the GUI.Draw bracket: bare resets in the 135-file GUI call-graph resolve to the active layer canvas; targeted calls pass through - zero factory edits. Game.Draw composites Scene -> GUI -> Pause -> screen. Save thumbnails build from scene+GUI via CaptureShot -> the open save/pause menu no longer lands in the image; F12 captureScreenshot unchanged.
feat/gui-pause-canvases · 5 Dateien · +137 −0
#1308Save-list sweep: bounded caches, Travel-Save label, info order, Open Folder sauber CI rot GitHub ↗
Per-title canvas buffers were unbounded (unique generated save names) -> ClearBuffer exports + outpost-switch clear in SaveNameList. TransitionSave/MapTransferSave rows show localized 'Travel Save' with preserved datetime suffix. Info line reordered Date|Mode|Playtime. Shared OpenSaveFolder lib extracted; 'Open Folder' added to the healthy save-detail pane (4-button row, zoom 3->4).
fix/save-list-sweep · 9 Dateien · +127 −52
#1307Save folders: show per-outpost save count + active marker sauber CI rot GitHub ↗
SaveFolderList stores counts computed during enumeration, exposes GetCount(FolderName); folder labels render 'name (n)' and '> ' for the active outpost. Selection logic still uses raw folder names.
feat/outpost-count-marker · 2 Dateien · +20 −2
#1306Save Options: amber WarningColor for unsaved state + cap explainer sauber CI rot GitHub ↗
New WarningColor theme key exposed via GuiConfig; unsaved Save Options highlight uses amber instead of error red; localized explainer 'Oldest saves are removed beyond these limits' (EN+DE).
feat/save-warning-color · 5 Dateien · +12 −1
#1305Selected save rows render via ActiveColor canvas, not a border sauber CI rot GitHub ↗
MakeSaveNameButtonCanvas gains a Selected flag + selected-canvas variant (keyed with a suffix); SaveNameList and DrawSaveGameFolders pass selection state; obsolete drawHighlight blocks/constants removed. ClearBuffer() exports on all three row-button modules; buffers cleared on outpost switch.
feat/save-selected-canvas · 8 Dateien · +51 −70
#1304Save feedback via chat only; delete DrawFeedbackWindow sauber CI rot GitHub ↗
All save kinds (AutoSave, QuickSave, menu Save, Overwrite) report via localized InfoText.AddLine -> ChatWindow.AddLog. DrawFeedbackWindow widget, its requires and the getShowFeedBackWindow helper deleted.
feat/save-feedback-chat · 5 Dateien · +10 −159
#1303MakeLabelCanvas: font floor + ellipsis instead of newFont(0) crash sauber CI rot GitHub ↗
Shrinking loop could hit fontsize 0 -> newFont(0) crash. Floor at 8px; text still too wide is truncated with '...' so the drawn label always fits.
fix/labelcanvas-font-floor · 1 Dateien · +20 −4
#1301Save-detail rename flow sauber CI rot GitHub ↗
Renaming saves was impossible; only filesystem support existed.
feat/save-rename · 3 Dateien · +185 −3
#1300Localize all save-menu user-facing strings sauber CI rot GitHub ↗
Save menu shipped mixed-language text for German sessions.
fix/save-locales · 4 Dateien · +24 −4
#1299New-save form: autofocus, placeholder, inline error, cancel sauber CI rot GitHub ↗
The form needed click-to-activate, showed a hardcoded Input... ghost, failed silently on invalid names, and had no way out.
feat/newsave-form · 5 Dateien · +77 −5
#1298Save-detail nil-safety + font floor + stacked overflow sauber CI rot GitHub ↗
Legacy saves missing GameMode/PlayTime/TimeStamp crashed the whole save-menu frame (fields healGameData never heals).
fix/save-nil-safe-concats · 1 Dateien · +65 −26
#1297Save kind badge + keep-N hint (fleet 851f65) sauber CI rot GitHub ↗
Colored Auto/Quick/Transit tags on save rows (healed flags); localized keep-N line under the title reading live MaxAutoSaves cap. Fleet 851f65.
feat/save-kind-badge · 4 Dateien · +52 −0
#1295Confirm on save-name collision (fleet 77b5b9) sauber CI rot GitHub ↗
Typed name checked against preview FolderName entries; collision routes through localized ConfirmWindow before FILETriggerSave. Fleet 77b5b9.
fix/save-name-collision · 3 Dateien · +61 −1
#1294Real OnTop gate in DrawContainer (fleet b05605) sauber CI rot GitHub ↗
Signature (Position,Data,OnTop,SlotGap): BonusInventory call becomes natively correct, DrawContainerWithTooltip forwards OnTop. Hover/highlight/press gated. NOTE: overlaps ready PR #1289 in same file — rebase whichever lands second. Fleet b05605.
fix/container-ontop-gate · 2 Dateien · +11 −2
#1293Context slot-gesture hints + options toggle (fleet 206fc2) sauber CI rot GitHub ↗
Hand x slot-state gesture hints appended to slot tooltips; ShowSlotHints toggle default ON; EN+DE locales; UsedBattery maps to swap. Fleet 206fc2.
feat/slot-gesture-hints · 4 Dateien · +64 −5
#1291No amount badge on 1-stacks (fleet b0d3e8) sauber CI rot GitHub ↗
Both DrawSlotVisual amount wrappers early-return on amount <= 1. Fleet b0d3e8.
fix/stack-counter-guard · 1 Dateien · +2 −2
#1290Gate actionbar unbind on unarmed state (fleet 8758a7) sauber CI rot GitHub ↗
Right-click on a slot no longer unbinds while an action is armed — the armed click only deselects. Fleet 8758a7.
fix/actionbar-unbind-gate · 1 Dateien · +3 −1
#1289Click sound on inventory-slot press (fleet dd7347) sauber CI rot GitHub ↗
DrawContainer fires COMMANDPlayEffect (buttontest1 @ 0.5) on Pressed Left/Right edges — pattern ported from dead DrawContainerSlot.lua, which is deleted. Covers every container caller. Fleet card dd7347.
fix/slot-click-sound · 2 Dateien · +14 −73
#1288Centralize shift+left quick-transfer in UpdateHandSlot (fleet a9bfc6) sauber CI rot GitHub ↗
24 dupe moveStackToInventory/handleShortcuts blocks deleted; UpdateHandSlot.handleLeftClick handles shift+left via new QuickTransfer.SlotToPlayer; LootOnly gains quick-loot. MERGE-ORDER NOTE: touches Radar/Teleporter DrawEnergyTab which #1283 deletes — whichever lands second needs a rebase. Fleet card a9bfc6.
fix/quick-transfer · 27 Dateien · +82 −567
#1287Unify window-size writeback (fleet f4edb5) sauber CI rot GitHub ↗
All 17 outliers normalized to WindowData["Size"] = windowSize: 5 in-place towers, 11 no-write machines (DefenceTower trivially conforming), MagicEnergy delegation now return-assigns. Fleet card f4edb5.
fix/cw-size-writeback · 17 Dateien · +23 −6
#1286Stop silent item loss on capped-slot deposits (fleet a7e98b) sauber CI rot GitHub ↗
Caller-side cap in UpdateHandSlot + OverPlayerInventory twins; command-side clamp in AddItemToSlot/AddItemToPlayerInventorySlot returning the un-inserted remainder. Fleet card a7e98b.
fix/shift-cap-overflow · 4 Dateien · +57 −7
#1285UsedBattery merge guard in loot windows (fleet 0f440b) sauber CI rot GitHub ↗
LootOnly.sameItem gains the UsedBattery exclusion both siblings carry. Fleet card 0f440b.
fix/lootonly-battery-guard · 1 Dateien · +1 −1
#1284Splitter filter picker: legacy TabBar -> DrawCWTabs (fleet 5a734c) sauber CI rot GitHub ↗
Tab state moves from module-global FILETabData to MachineData["CurrentTab"] (persisted); canvas tabs; title/grid +TABBARHEIGHT; MachineData threaded into DrawFilterChoice. Fleet card 5a734c.
fix/filter-picker-tabs · 2 Dateien · +12 −12
#1282Clamp grown windows fully on screen (fleet 567924) sauber CI rot GitHub ↗
FirstOpenPosition.ClampToScreen exported; re-applied in drawComplexWindow at-rest block — tab-refit and post-release resize growth can no longer overflow right/bottom. Fleet card 567924.
fix/window-growth-clamp · 2 Dateien · +13 −0
#1281Show I/O numbers toggle for six more machines (fleet 2611c8) sauber CI rot GitHub ↗
Adds the toggle after Show Status in Drill, MetalWorker, Smelter, Storage, DarkPyramidB/C — the world-overlay gate honors ShowSlotNumbers for pyramids too (MachineOverlayLayer :482). Fleet card 2611c8.
fix/io-numbers-toggles · 6 Dateien · +24 −0
#1280Delete five dead config-window files (fleet d33566) sauber CI rot GitHub ↗
DrawResources, DrawIOMCW, StorageModule x3 — zero external requires. Fleet card d33566.
fix/dead-cw-files · 5 Dateien · +0 −444
#1279Drop TABBARHEIGHT offsets in tab-less CWs (fleet f55efc) sauber CI rot GitHub ↗
BatteryLight, Capacitor, PyramidLeech — 56px dead band under the header. Fleet card f55efc.
fix/tabless-cw-offsets · 3 Dateien · +3 −6
#1278Un-shadow BORDERWIDTH in SmallPort storage tab (fleet 88b067) sauber CI rot GitHub ↗
SLOTBORDERWIDTH=6 for the slot pitch vs GuiConfig border for paddings; duplicate HEADERHEIGHT decl dropped. Fleet card 88b067.
fix/smallport-borderwidth · 1 Dateien · +2 −3
#1277Unify tab labels: Show Process -> Process (fleet 9b74bb) sauber CI rot GitHub ↗
Renames all nine occurrences (grep-truth: Drill included, card listed 8). Fleet card 9b74bb.
fix/process-tab-label · 9 Dateien · +9 −9
#1276Debounce ResearchLab sort button (fleet 60b792) sauber CI rot GitHub ↗
BlockTimer Main gate + Set(0) + ConsumeClick — the button fired on raw Pressed.Left. Fleet card 60b792.
fix/sort-button-blocktimer · 1 Dateien · +5 −0
#1275Rename edit-button tooltip (fleet 88433b) sauber CI rot GitHub ↗
Localized TooltipManager.Trigger on edit hover, OnTop-gated. Fleet card 88433b.
fix/rename-tooltip · 3 Dateien · +13 −0
#1274TrashCannon details tab: add rename row (fleet 78f1a5) sauber CI rot GitHub ↗
Adds the standard bottom-pinned DrawMachineRenameRow (lazy-require pattern per Storage). Fleet card 78f1a5.
fix/trashcannon-rename-row · 1 Dateien · +8 −0
#1272QuantumCrank tab-fit memory per machine (fleet 73d6d2) sauber CI rot GitHub ↗
FILELastActiveTab file-global -> MachineData["LastFitTab"] — the shared global made two open crank CWs fight the refit per frame and skipped refits on reopen. Fleet card 73d6d2.
fix/crank-tab-cache · 1 Dateien · +4 −6
#1271Splitter filter window: count partial last row (fleet 819571) sauber CI rot GitHub ↗
rowAmount mfloor -> math.ceil — the partial item row was dropped from the window-size calc, so the CANCEL/BLOCK/ALL button row overlapped items. Fleet card 819571.
fix/filter-row-ceil · 1 Dateien · +1 −1
#1270QuantumCrank tab label typo (fleet e8d9ed) sauber CI rot GitHub ↗
Quatum Prediction -> Quantum Prediction. Fleet card e8d9ed.
fix/crank-tab-typo · 1 Dateien · +1 −1
#1268Fix dead click-edge into drawActiveWindow (fleet 6fd277) sauber CI rot GitHub ↗
Pass leftClick as parameter into drawActiveWindow — it was read as an undeclared global (always nil), so the click edge never reached DrawComplexWindow (X, lock, drag, resize). Fleet card 6fd277.
fix/leftclick-edge · 1 Dateien · +2 −2
#1267Smelter/Furnace icon export scenario (a0c1f5) sauber CI rot GitHub ↗
Item icons and Machines/Icons glyphs show the generic 'flame-in-house' instead of the real machine. Kai-agreed approach: throw-away scenario that renders the actual body canvas rather than screenshots.
feat/smelter-furnace-icons · 1 Dateien · +81 −0
#1266Area-demolish: type+position mark keys — wires under machines (f851f8) sauber CI rot GitHub ↗
With the wire layer visible, a tile carries both Type.Machine and Type.Wire — but getHoverTargetType returned only the priority winner and FILEMarkMap deduped by position alone, so wires under every footprint cell (not just the anchor) survived demolish.
feat/area-demolish-wire · 2 Dateien · +73 −47
#1265Sound options: per-channel preview samples (651bd1) sauber CI rot GitHub ↗
All 5 channels were staged-only until 'Save & Update' — volume was tuned blind. Now a representative sample plays at the STAGED volume × staged master.
feat/sound-preview · 2 Dateien · +128 −7
#1264Robot window redesign — Modules/Upgrades tabs (8e47d3) sauber CI rot GitHub ↗
Kai-agreed design: the 'Modules' window becomes 'Robot' — smaller landscape format, tabs Modules/Upgrades, structured stats with base/upgrade/module breakdown, list-style upgrade view.
feat/robot-window · 7 Dateien · +357 −305
#1256PyramidLeech: chaining + LeechRange overlay + anchor details sauber CI rot GitHub ↗
Implements card b09805 (3 Kai-coordinated parts; analyst CONFIRMED with flags, all addressed).
feat/leech-chaining · 7 Dateien · +464 −21