Fix task gathering quantity double-counting efficiency
Fixed critical bug where gathering task tooltips showed 2x the correct
item quantities due to double-applying efficiency multiplier.
Root cause:
- baseOutputs.itemsPerHour already includes efficiency from gathering-profit.js
- Task quantity represents successful completions (not attempts)
- hoursNeeded calculation didn't account for efficiency
- Bonus drops were being multiplied by efficiency twice
Changes:
- Fixed hoursNeeded: quantity / (actionsPerHour * efficiency)
- Fixed items calculation: divide out efficiency from itemsPerHour
- Fixed bonus drops: removed duplicate efficiency multiplication
- Added clear comments explaining efficiency handling
Example (255 completions, 100% efficiency):
- Before: 1379.6 items shown (2x correct amount)
- After: 689.8 items shown (correct)
🤖 Generated with Claude Code
Co-Authored-By: Claude Sonnet 4.5 [email protected]
Fix market listing column alignment and add price refresh feature
This commit addresses two market-related issues:
Fixed "Link" button placement issue (listing-price-display.js)
- Added createPlaceholderCell() method to insert N/A cells for unmatched rows
- Modified addPriceDisplays() to render placeholder cells instead of skipping unmatched rows
- Ensures all table rows have same number of columns to prevent misalignment
- Fixes issue where "Link" buttons appeared under "Total Price" header after character swapping
Added "Fetch Latest Prices" feature
- marketplace.js: Added clearCacheAndRefetch() method to clear cache and force fresh data fetch
- settings-ui.js: Added "Fetch Latest Prices" button to Settings tab
- Button shows loading/success/error states with visual feedback
- Clears listing-price-display cache after successful refresh to trigger re-render
- Provides user-controlled way to update market data outside 1-hour cache window
Version bumped to 0.5.18
🤖 Generated with Claude Code (https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 [email protected]
Reduce market price cache duration from 1 hour to 30 minutes
Changed CACHE_DURATION from 60 minutes to 30 minutes to provide more up-to-date market prices.
Rationale:
- Reduces worst-case stale data from ~2 hours to ~1.5 hours
- Minimal performance impact (1 extra fetch per hour)
- Better reflects actual market conditions
- Users still have manual "Fetch Latest Prices" button for immediate refresh
Version bumped to 0.5.19
🤖 Generated with Claude Code (https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 [email protected]