Sync with upstream dev (2026-09-05) - #9
Merged
Merged
Conversation
* Port big pr * More stuff * Manifest * Port everything * Regen modcache and querymods * Cleanup * Restore headless global cache cleanup --------- Co-authored-by: LocalIdentity <31035929+LocalIdentity@users.noreply.github.com>
…unity#2435) * Port big pr * More stuff * Manifest * Port everything * Regen modcache and querymods * Cleanup * Port #10196 * Port #10281 * Fix tests + both weapon hit breakdown * Fix duplicate crit breakdown --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com> Co-authored-by: LocalIdentity <31035929+LocalIdentity@users.noreply.github.com>
…nity#2432) * Add Path of Exile 2 BuildPlanner (.build) export Writes a .build JSON file to the in-game BuildPlanner folder (Documents/My Games/Path of Exile 2/BuildPlanner/) from a new section in the Import tab. Tree specs, item sets and skill sets export as level-bracketed loadouts via the format's level_interval field, with per-set Lvl Min/Max in each tab's Manage popup. The New Loadout dialog also takes a level range that propagates across the matching tree spec, item set and skill set on save. New sets auto-preset on a 30-level cadence (1-30, 30-60, 60-90, 90-100). Per-passive and per-gem author notes via Shift+Right-Click on the Tree and Skills tabs. The keybind hint and any existing note are shown in the respective tooltips. Notes flow into the exported additional_text; the format's Custom Text markup (<bold>{}, <italic>{}, <red>{}, <rgb(R,G,B)>{}) is preserved in the input. Non-unique items render rolled title + base type + mod list using the same markup (italic implicits, plain explicits). Active skills carry a "Level N[, Q% Quality]" hint when no note is set; trivial Level 1 / 0% Quality on uncustomised support gems is suppressed to avoid noise. Skill IDs use the Gems.lua table key to work around the singular "Metadata/Items/Gem/" typo on the gameId field of ~486 auto-generated entries. Passive IDs are emitted as PassiveSkills.Id strings (e.g. "projectiles18", "AscendancyMercenary2Notable5"). This required adding stringId to src/Export/Scripts/passivetree.lua and regenerating src/TreeData/0_4/tree.lua against GGPK. Older tree versions (0_1, 0_2, 0_3) still carry numeric IDs and fall back accordingly with a one-time console warning until they're regenerated too. * Export build planner inventories * Add note buttons for item slots, abstract UI elements, remove some complexity * Add string ids to nodes in dev mode * Fix spacing and missing merge conflict resolution * Update UI spacing, inventory slots export, removed auto-bracketing * Finish up ImportTab UI * Tweak .build file export path to be correct on Windows * Re-export * Rethink build file exporting and fix various issues: - Add markup buttons to note menu - Fix thorns crashing due to missing gem data - Avoid notes overwriting item text - Add colour to item text (quality, magic mod colour, fractured etc) - Remove a lot of dead code - Convert exporting to export single loadouts. This happens either by selecting specific sets, or by exporting all loadouts. The GGG file format is not really compatible with putting a whole leveling experience in one file due to level interval limitations. This now matches what build sites are currently doing more closely. * Add weapon set field to passives * Regen modcache * Satisfy cspell * Fix various issues * Fix gem selector opening * Fix few issues If a build was saved while you had the the 2nd skill part selected, on load it would not export the skill id for the main stat set of the skill gem e.g. Add a second skill set and select Shattering Palm as the gem. Select Freezing Explosion as the active set then go back to your first set of skills and reopen the build. On export it wont include Shattering palm anymore If a build used the {1} way to link loadouts it could only create 1 build file when the name before the {1} was the same e.g Leveling {a} and Leveling {b} as different loadouts would only make 1 build file Made the default names for the build name and aurthor name use place holder text so that it's easy for people to write their own without having to delete the text first Adds a bunch of tests for the export too * Revert file changes * Fix a few issues Passive node notes now survive tree copying and conversion via undo state. Socket slots without note buttons no longer clear item tooltips. PoE2 exports now exclude inactive item variants using CheckModLineVariant. Duplicate variants now use GetModLineVariantCount, preserving repeated Mageblood selections while excluding inactive variants New item sets no longer inherit notes from the active set The gem note tooltip isn't shown while searching for gems in the dropdown list anymore, only when you have a gem actually in your build Added regression tests for all three fixes. * Spellcheck --------- Co-authored-by: TheClassified <7460948+TheClassified@users.noreply.github.com> Co-authored-by: Wires77 <Wires77@users.noreply.github.com> Co-authored-by: LocalIdentity <localidentity2@gmail.com>
…#10112, #10168) (PathOfBuildingCommunity#2439) * Port refactor custom modifiers block into toggleable blocks (#10020) * Port improve disable mods and custom mods box (#10112) * Port add tree nodes to mod "browser", show support, and sources (#10168) * Fix tests * Fix 2 issues Custom-group tooltip previews now restore build.buildFlag, preventing hover-triggered rebuild loops. Dynamic group controls now use named controls entries, replacing old controls instead of accumulating hidden ones. --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
…ommunity#2440) * Port refactor custom modifiers block into toggleable blocks (#10020) * Port improve disable mods and custom mods box (#10112) * Port add tree nodes to mod "browser", show support, and sources (#10168) * Fix tests * Port allow config tab sections to be collapsed and expanded (#10204) * Fix 2 issues Custom-group tooltip previews now restore build.buildFlag, preventing hover-triggered rebuild loops. Dynamic group controls now use named controls entries, replacing old controls instead of accumulating hidden ones. --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
* Improve Build Export qol Uses the entered build name for the exported filename. Appends the passive tree version to filenames, for example `Build Name [0.5].build`. Places loadout names before the tree version, for example `Build Name - Leveling [0.5].build`. Hides the full save path by default to avoid exposing personal information during streams. Adds a Show full path checkbox. Adds an Open Folder button below the save location. * Show formatted tooltip Shows a formatted tooltip with the colours and bold / italic / size if they are on a new line * Change item note haviour + UI tweaks Adds a config option when exporting the build to add the item rolls to a note if that item note is empty Adds a button that adds the item note into the edit box Hovering over the save button now shows the formatted text Doubled the height of the not text box --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
…#2441) * Port "Improve buy similar matching" (#10284) * Fix Instant Recovery searches incorrectly requiring a minimum of 100. Buy Similar now prefers the exact trade stat text when multiple descriptors match. This selects the boolean Instant Recovery stat without a numeric minimum, while percentage recovery mods still keep their values. --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
PathOfBuildingCommunity#2442) * Port "Use Currency Exchange API instead of poe.ninja in trader" #10077 * Fix item parsing to actually add the parsed line flags * Fix exalts not being used * Remove old table + fix exalt name * Revert exalt change --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
* Port Fix megalomaniac trader crash (#10181) * Port row hide logic change from #10277
…Community#2445) * Port Add support for select pseudo stats in trader weights (#10085) * Disable pseudo stat functionality but keep it for parity
…ildingCommunity#2446) * Port Add support for select pseudo stats in trader weights (#10085) * Disable pseudo stat functionality but keep it for parity * Port "Improve stat search with pseudo stats and word order ignore" (#10036)
* Port "Add NOT filters to trader" (#10259) * Fix filter count in test
* Port "Improve calc performance" (#10228) * Use multisource bfs for bdap * Fix allocmode issue * Fix issues with the new passive tree pathfinding Restore jewel socket distance calculations, preserve weapon-set paths when a normal path is available, and promote them when they are required. Also remove unused code and add tests for both pathing cases. --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
…uildingCommunity#2453) * Add support for increased mod magnitude mods and Unborn Lich * Regen modcache * Fix crafted items losing the suffix / prefix type tag * Preserve mod tags and unscalable flags when crafting items Crafted items were losing modifier tags when rebuilt, preventing tag-specific magnitude modifiers from applying correctly. Preserve modifier tags and unscalable metadata during crafting, export the Mods.IsUnscalable field for generated modifiers and unique item text, and add regression coverage for Destruction magnitude scaling. --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
* Fix double spirit breakdown * Fix attributes, spirit, deflect * Fix missing breakdowns Breakdowns were missing for: Mana / ES leech Unreserved Spirit / Life Fixed the commend for modNames Remove unneeded skipSideBarIndex --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
* Add a bunch of type hints * Fix inaccurate PoE 2 type hints Add the missing AnchorPoint enum and generic Prop<T> type definitions. Allow control anchors to use a Control, ControlHost, or no parent. Pass nil when creating CalcSectionControl without a parent control. Mark optional UI fields such as label, slotLabel, and forceTooltip correctly. Mark optional callbacks and conversion functions correctly. Correct passive tree types, including integer node IDs, optional background data, and nullable node comparisons. Mark main-hand and off-hand calculation outputs as optional. Restrict CalcEnvMode to the modes actually accepted by initEnv. Correct the calculator callback name from toggleTincture to toggleCharm. Mark optional calculator callback arguments correctly. Remove unused or invalid declarations such as byTitle, TransformFunc, points, and Doubled. --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
…unity#2455) * Add support for Grip of Kulemak Abyssal Wasting * Round values --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
…y#2456) Add types for mod creation, mod tags, ModStore methods, and calculation structures. Type ModDB and ModList constructor returns, define Tabulate results, and describe Env, Actor, and ActiveSkill fields so autocomplete works throughout the calculation code. Add the required casts to ModParser and generated skill files, including their export templates. Co-authored-by: LocalIdentity <localidentity2@gmail.com>
Fixes the export of these 2 uniques
…BuildingCommunity#2470) * Apply changes from PathOfBuildingCommunity/PathOfBuilding#10120 * Fix port --------- Co-authored-by: vaisest <vaisest@users.noreply.github.com> Co-authored-by: LocalIdentity <localidentity2@gmail.com>
…athOfBuildingCommunity#2464) * Apply changes from PathOfBuildingCommunity/PathOfBuilding#10084 * Fix port --------- Co-authored-by: xoxorwr <xoxorwr@users.noreply.github.com> Co-authored-by: LocalIdentity <localidentity2@gmail.com>
…on item tooltip (PathOfBuildingCommunity#2468) * Apply changes from PathOfBuildingCommunity/PathOfBuilding#10210 * Fix port --------- Co-authored-by: Blitz54 <Blitz54@users.noreply.github.com> Co-authored-by: LocalIdentity <localidentity2@gmail.com>
* Apply changes from PathOfBuildingCommunity/PathOfBuilding#10098 * Fix port --------- Co-authored-by: Blitz54 <Blitz54@users.noreply.github.com> Co-authored-by: LocalIdentity <localidentity2@gmail.com>
…mmunity#2465) * Apply changes from PathOfBuildingCommunity/PathOfBuilding#10051 * Fix port --------- Co-authored-by: LocalIdentity <LocalIdentity@users.noreply.github.com> Co-authored-by: LocalIdentity <localidentity2@gmail.com>
…ab (PathOfBuildingCommunity#2461) * Apply changes from PathOfBuildingCommunity/PathOfBuilding#10091 * Fix port --------- Co-authored-by: cupkax <cupkax@users.noreply.github.com> Co-authored-by: LocalIdentity <localidentity2@gmail.com>
…mmunity#2457) * Apply changes from PathOfBuildingCommunity/PathOfBuilding#10256 * Fix port --------- Co-authored-by: LocalIdentity <LocalIdentity@users.noreply.github.com> Co-authored-by: LocalIdentity <localidentity2@gmail.com>
…fBuildingCommunity#2486) Co-authored-by: czarandy <czarandy@users.noreply.github.com>
…fBuildingCommunity#2488) Co-authored-by: apYdr6uxv <apYdr6uxv@users.noreply.github.com>
…OfBuildingCommunity#2489) Co-authored-by: cupkax <cupkax@users.noreply.github.com>
…athOfBuildingCommunity#2490) * Apply changes from PathOfBuildingCommunity/PathOfBuilding#10133 * Fix port --------- Co-authored-by: vaisest <vaisest@users.noreply.github.com> Co-authored-by: LocalIdentity <localidentity2@gmail.com>
…h Life / ES cost conversion (PathOfBuildingCommunity#2478) * Apply changes from PathOfBuildingCommunity/PathOfBuilding#10262 * Fix port --------- Co-authored-by: LocalIdentity <LocalIdentity@users.noreply.github.com> Co-authored-by: LocalIdentity <localidentity2@gmail.com>
…hOfBuildingCommunity#2477) * Apply changes from PathOfBuildingCommunity/PathOfBuilding#10263 * fix port --------- Co-authored-by: LocalIdentity <LocalIdentity@users.noreply.github.com> Co-authored-by: LocalIdentity <localidentity2@gmail.com>
…ard (PathOfBuildingCommunity#2481) * Apply changes from PathOfBuildingCommunity/PathOfBuilding#10069 * fix port --------- Co-authored-by: kylhuk <kylhuk@users.noreply.github.com> Co-authored-by: LocalIdentity <localidentity2@gmail.com>
…ngCommunity#2491) * Apply changes from PathOfBuildingCommunity/PathOfBuilding#10121 * Fix port --------- Co-authored-by: vaisest <vaisest@users.noreply.github.com> Co-authored-by: LocalIdentity <localidentity2@gmail.com>
…ommunity#2473) * Apply changes from PathOfBuildingCommunity/PathOfBuilding#9959 * Fix port --------- Co-authored-by: xoxorwr <xoxorwr@users.noreply.github.com> Co-authored-by: LocalIdentity <localidentity2@gmail.com>
…gCommunity#2487) * Apply changes from PathOfBuildingCommunity/PathOfBuilding#9965 * Fix port --------- Co-authored-by: xoxorwr <xoxorwr@users.noreply.github.com> Co-authored-by: LocalIdentity <localidentity2@gmail.com>
…ngCommunity#2474) * Apply changes from PathOfBuildingCommunity/PathOfBuilding#10039 * Fix port * Fix poe 1 only mechanics --------- Co-authored-by: LocalIdentity <LocalIdentity@users.noreply.github.com> Co-authored-by: LocalIdentity <localidentity2@gmail.com>
…ngCommunity#2374) * Add scoring breakdown to Trader result dropdown * Fix dropdown --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com> Co-authored-by: LocalIdentity <31035929+LocalIdentity@users.noreply.github.com>
* Cache tooltip assets This solves two problems: - Item influence icons were being allocated and loaded on **every** frame while the tooltip was open. - Every tooltip was allocating and loading its own header and separator images, even though most of them share the same images. As a consequence, tooltip assets now stay loaded and do not get freed. This is fine because they're fairly small and commonly used anyway. * Fix crash when displaying unknown tooltip headers Unknown tooltip types should use the normal header assets, but the new cache indexed the unknown type directly and crashed. Resolve unknown types to the normal header before loading and caching their images. --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
* Add Minion Rage configuration support * Refactor Minion Rage modifier ownership * Fix Player Rage config The player Rage config would show up if you linked rage to a minion skill as it wasn't making sure the rage source was from a player --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
…egative elemental resistances" (PathOfBuildingCommunity#2373) * Fix an interaction between Rakiatas Flow and sources of "ignore non-negative elemental resistances" Support for "ignore non-negative elemental resistances" was raised as [2] and implemented with [3], however the implementation did not address resistances inversion. As shown in [1], Rakiatas inversion is done before ignoring. [1] https://youtu.be/2d646c8_m0k?t=428 [2] PathOfBuildingCommunity#498 [3] PathOfBuildingCommunity#690 * Fix implementation Fixes the implementation that had issues in a number of circumstances Fixes the breakdown too when change to invert mods are involved and adds tests --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
* bugfix: fix +1 suffix breaking UI by refreshing affix controls * Move handling to rune logic code --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
…dingCommunity#2368) * Fix 2H weapons not removing off-hand items in comparisons * Fix Giants Blood with quivers When you had Giant's Blood and compared a two hand mace vs a bow and quiver it wasn't showing the effect of removing the quiver Update the tests for the new format --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
* Runic Ward export and copy paste fix * More Runic Ward renaming * Fix armour data never printing in blue * Fix Ward scaling with armour, ev, es rune * More fixes * Add to resource * Ward costs * Some ward on block (doesn't affect EHP yet) * Runic ward cost efficiency * Runic ward cost warning * Fix ward regen mod * Per maximum runic ward mods * Change spirit colour to more creamy yellow like in game, and move spirit higher in side bar * Runic Infusion support * Fix helmet export * Low Runic Ward config * Typo * Change "Ward" mods to use "RunicWard" * Runic Ward bypass * Olroth's Hubris * EHP Calcs, Ward moved to last, Ward on Block works as other gaining sources * Fix Ward costs not scaling with other support multis * Revert mod names from RunicWard to Ward * Scouring Flame - and ward cost from life and mana cost * Per runic ward cost - modparser * Add runic ward to resourceTypes - modparser * Fix Runic Ward being used for recovery still * Rune Of Equinox - mana regen also applies to Ward * Add missing totalWardDegen * Small RunicWard naming change * Add Ward to DOT calcs * Fix EHP Calcs to leave 1 life, and max hit to leave 1 life * Small fix * Remove hitpool fix for tests for now, need to find a cleaner way to fix max hits * remove duplicate spirit sidebar * Fix Runic Ward calculation and other issues Correct Runic Ward parsing from copied items and account imports while retaining support for the older Ward property name. Use the in-game “Runic Ward” name consistently across item displays, trade comparisons, costs, recovery, and breakdowns. Correct Runic Ward EHP and maximum-hit calculations so damage is taken from Life first, bypassed Ward is excluded, and remaining Ward is tracked properly. Include Runic Ward in damage-over-time pools and total/comprehensive net recovery. Apply redirected Energy Shield increases additively to Runic Ward without incorrectly applying Energy Shield more multipliers. Include doubled body-armour defence when calculating Ward. Add support for Runic Ward regeneration, degeneration, recovery on block, mana-regeneration recovery, and life-flask recovery. Add calculations for Leylines, Scouring Flame, Runic Infusion, Olroth’s Hubris, and Runic Reprieve costs. Distinguish between missing Runic Ward and having no Runic Ward in modifier conditions. Prevent costs derived from another resource from being counted multiple times as Ward costs. Remove an unrelated duplicate DPS multiplier application. Prevent item properties without a base value from incorrectly appearing as modified. Add regression tests covering parsing, importing, costs, recovery, degeneration, EHP, bypass behavior, and Energy Shield-to-Ward modifiers. --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
…unity#2496) * Fix Bringer of Rain not importing off hand shields When you use the Bringer of Rain helmet, it allows you to equip a Two Handed weapon in your main hand and still have a shield in your off hand The shield would not be equipped on import because the mod on the helmet wasn't checked until later * Fix import using wrong mace strike --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
The build export PR changed the tooltip line colours so was making some gem tooltips have white text Also caused a crash on holding alt on some gems like Ancestral Call II
…OfBuildingCommunity#2366) * Add support for Idolatry and change how Bonded lines are parsed Export Bonded modifiers into separate rune data sub-tables instead of adding "Bonded:" as a line prefix. Fix export of some Bonded mods that had separate stat entries that were not being combined. e.g. Perfect Resolve Rune did not add the bonded mods for armour, weapons, wands and staves Rebuild rune mods from rune data, keeping Bonded lines unparsed until they are enabled. Add support for the global `CanUseBonded` flag and the item-local Idol-only unlock, including socketed augment effect scaling. Add tests for many of the new changes. This now fixes all the mods that didn't parse correctly before because they were not a piece-meal mod and required explicit "Bonded:" ModParser lines * Simplify implementation --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
* Add martial artist rune slots * Fix merge errors and regenerate runes * Fix merge issue * Simplify implementation * Fix crashes Fix crash from rune having no source Fix crash from using repItem for character rune slots * Fixes logic for the runes that can apply to different items Fixes the logic for which runes can be used on different items / the chakra slots The soulcores dat inlcudes a bunch of bools that I mapped that place restrictions on uniques, jewelry and the chakra slots Also fixed an issue where the tooltip was very laggy as it was causing a calc rebuild on each frame * Fix slowdown from Idolatry change CalcSetup called GetActiveModListForSlotNum at least twice per equipped item. That function was rebuilding and copying every item modifier on every calculation, even without Bonded modifiers. * Fix tests --------- Co-authored-by: LocalIdentity <localidentity2@gmail.com>
* Improve JITability of Calc-related code:
- Convert ModStore code to not use select(i, ...) and to not pass ... onwards. This is done by unpacking n1 through n8 if there are multiple arguments.
- Move some closure definitions out of functions as this breaks traces.
- Convert AND64 and others to not do {...}, which results in a table allocation for each call. This is done in a similar way to the ModStore changes.
* Refactor code to increase compiled %
* Increase max trace count
* Nuke some more closures
* More JIT fixes
Reduce allocations and JIT trace aborts in calculation paths used when sorting gems by Full DPS.
Reuse the skill type expression stack, move damage conversion and self-hit handlers outside the offence calculation, and avoid recreating Full DPS aggregation closures for every candidate gem.
This reduced sorting time on a heavy seven-minion Full DPS build from roughly 2.35 seconds to around 2 seconds.
* Fix compare crash
---------
Co-authored-by: LocalIdentity <localidentity2@gmail.com>
* Added support for Decree of Loyalty mods These are "Convert 1% of maximum Life to twice as much Armour per 1% Chaos Resistance above 0%" and "Defend with (150-200)% of Armour while you have Energy Shield". * Fixed hardcoded values in Decree of Loyalty mod * Consistently accept decimals for both values --------- Co-authored-by: Nils Carlson <nt_carlson@protonmail.com>
…9-05 # Conflicts: # src/Classes/TradeQuery.lua # src/Classes/TradeQueryRequests.lua # src/Launch.lua
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Merges 72 upstream commits from
PathOfBuildingCommunity/PathOfBuilding-PoE2@dev(9a2c480d5..3887ae68a) into the fork'sdev.Conflicts and how they were resolved
All three conflicts were exactly the fork's macOS/trader patch files.
src/Launch.lua— upstream bumpedjit.opt.startfrommaxtrace=4000tomaxtrace=20000. Kept upstream's line and the fork'sjit.os == "OSX"→jit.off()block. The macOS JIT-disable fix is preserved verbatim.src/Classes/TradeQueryRequests.lua— two fork deltas, different outcomes:{fractured}/{crafted}flag-prefix fix (return s .. escapeGGGString(...)): upstream has now adopted the same fix independently. The fork's explanatory comment said "upstream buildssand then returns without it", which is no longer true, so the stale comment was dropped. The code is identical to what the fork wanted. Note for the next sync: this makes part ofa3e01e572a legitimately stale P4 signature — do not "restore" it.weight = pseudoModLine and pseudoModLine:match(...)nil-crash guard: upstream still has the buggytrade_entry.item.pseudoMods and ...form. The fork's guard and its marker comment are preserved.src/Classes/TradeQuery.lua— the fork's "Find best returns URL only" change deletes the block that upstream touched (upstream only restylednew("Item", ...)→new("Item"):Item(...)inside it). Kept the fork'sPerformSearchblock; upstream's other changes to this file merged cleanly and are retained. VerifiedTradeQueryRequestsClass:PerformSearch(realm, league, query, callback)still exists with an unchanged signature after upstream's seven trader commits.Verification
git diff upstream/dev HEADover the three fork files equals the pre-merge fork delta minus exactly the two intended drops above. No fork fix lost, nothing unintended absorbed.src/; all three files byte-compile underluajit -b.grep -rn 'new("Item",' src/returns nothing — no fork code left on the old constructor form.vcpkg-ports. Checked, not skipped.REGENERATE_MOD_CACHE=1run completes;src/Data/ModCache.luaregenerates byte-identical, so the cache is not stale.Not verified
bustedis not on this machine's PATH — the Lua suite runs on CI only.maxtracebump and the Improve JITability of Calc-related code: PathOfBuildingCommunity/PathOfBuilding-PoE2#2494 JITability work are inert on macOS underjit.off(). Expected, not a regression.