What's Changed
- feat: Refactor module imports and organization by @mkmccarty in #1415
- feat: Add support for OpenAI API client by @mkmccarty in #1417
- feat: Update Go version to 1.25 by @mkmccarty in #1418
- feat: Disable Go vet and audit checks in CI/CD workflows by @mkmccarty in #1419
- feat: Disable go test in CI workflow by @mkmccarty in #1420
- feat: Disable test step and enable build step by @mkmccarty in #1421
- feat(go.sum): Update dependencies by @mkmccarty in #1422
- Gitbutler/workspace by @mkmccarty in #1423
- feat: Add 'pkg' directory to .gitignore by @mkmccarty in #1424
- feat: Exclude 'pkg' directory from .gitignore by @mkmccarty in #1425
- feat: use nickname instead of full name in boost message by @mkmccarty in #1426
- feat(boost): Display egg inc name in boost message by @mkmccarty in #1427
- feat(boost): remove booster from contract by @mkmccarty in #1428
- feat(contract): set sink boost position based on contract duration by @mkmccarty in #1429
- feat: update google.golang.org/genproto dependencies by @mkmccarty in #1430
- Potential fix for code scanning alert no. 22: Workflow does not contain permissions by @mkmccarty in #1431
- feat(boost): Modify boost reaction message based on contract style by @mkmccarty in #1432
- feat(deps): update google.golang.org/api and google.golang.org/protobuf by @mkmccarty in #1433
- feat(boost): Improve boost list advancement logic by @mkmccarty in #1434
- feat(emoji): Improve emoji handling and case-insensitivity by @mkmccarty in #1435
- feat(emoji): convert emoji name to lowercase by @mkmccarty in #1436
- feat(emoji): Allow uppercase emoji names by @mkmccarty in #1437
- feat(emoji): Add support for GIF emoji imports by @mkmccarty in #1438
- feat(examples/README.md): Clarify DiscordGuildID setting by @mkmccarty in #1439
- feat(boost): add progenitor support for contract creation by @mkmccarty in #1440
- feat(contract): Add coordinator to progenitors list by @mkmccarty in #1441
- Contributed Docker container configurations from James WST by @mkmccarty in #1442
- feat(boost): handle contract state for token sending by @mkmccarty in #1443
- feat(docker): Add emoji directory to container by @mkmccarty in #1444
- feat: Update Go dependencies by @mkmccarty in #1445
- feat: Add github/go-github/v33 dependency by @mkmccarty in #1446
- feat: Add context and integration types to slash command by @mkmccarty in #1447
- feat(ci): update GolangCI-Lint to v8.0.0 by @mkmccarty in #1448
- feat(banners): Add automatic download of latest egg images by @mkmccarty in #1449
- feat(bottools): Save egg image to config.BannerPath directory by @mkmccarty in #1450
- feat(events): update periodicals event configuration by @mkmccarty in #1451
- feat(version): Bump application version to 5.0 by @mkmccarty in #1452
- feat(boost): Display egg inc name in boost message by @mkmccarty in #1453
- feat: Remove QTargetAmount field from boost struct by @mkmccarty in #1454
- feat: Add waitlist functionality to contract by @mkmccarty in #1455
- feat: Update Google API dependencies by @mkmccarty in #1456
- feat: Disable speedrun start button when contract is full by @mkmccarty in #1457
- feat(message_redraw): Improve boost list message handling by @mkmccarty in #1458
- feat(boost): Respect contract boost position for fast-run contracts by @mkmccarty in #1459
- feat(boost): Recalculate token values after duration change by @mkmccarty in #1460
- feat(boost/contract): Improve role name generation by @mkmccarty in #1461
- feat(go.mod): Update dependencies by @mkmccarty in #1463
- feat(events): update ACO channel for Colleggtibles by @mkmccarty in #1464
- feat(teamwork): Optimize post-SIAB rate calculation by @mkmccarty in #1465
- Auxbrain made changes which ended the reign of CRT. Removing that from BB and disabling Leaderboard until we learn about new techniques. by @mkmccarty in #1467
- feat(speedrun): Enable changing sinks only by @mkmccarty in #1468
- feat(teamwork): Optimize Chicken Run calculations and display by @mkmccarty in #1469
- feat(contract): Add leaderboard playstyle and update handling by @mkmccarty in #1470
- feat: Improve chicken run response message by @mkmccarty in #1471
- feat: Update contract data structure to simplify chicken runs by @mkmccarty in #1472
- feat(contract): remove CRT-related logic by @mkmccarty in #1473
- feat(contract): remove DISABLE_SELFRUN and BANKER_ONLY flags by @mkmccarty in #1474
- feat(boost): disable tango leg calculation for CRT contracts by @mkmccarty in #1475
- feat(boost): Improve speedrun status display by @mkmccarty in #1476
- feat(boost): remove CRT-related functionality by @mkmccarty in #1477
- feat: Upgrade Google Gemini model and simplify API usage by @mkmccarty in #1478
- feat(teamwork): Add minimum score metric and update score table by @mkmccarty in #1479
- feat(boost): remove CRT state and related logic by @mkmccarty in #1480
- feat: Update Boosting Sink User ID and remove TimeCRT by @mkmccarty in #1481
- feat: remove speedrun mode and use contract flags instead by @mkmccarty in #1482
- feat(boost): update contract style and boost order for leaderboard by @mkmccarty in #1483
- feat: Implement Egg Inc API integration by @mkmccarty in #1484
- feat: Refactor archived contracts printing logic by @mkmccarty in #1485
- feat(boost): remove join with ping button by @mkmccarty in #1486
- feat: Add banker boost details for active contracts by @mkmccarty in #1487
- feat: Improve contract boosting phase messaging by @mkmccarty in #1488
- feat: Implement user authentication and authorization by @mkmccarty in #1490
- feat(stones): Round Colleggtible Egg Laying Rate and Colleggtible Ship Rate by @mkmccarty in #1491
- feat(teamwork): Add more details to the teamwork output by @mkmccarty in #1492
- feat(stones): Adjust ELR and Shipping display logic by @mkmccarty in #1493
- feat: Improve contract and shipping cost calculations by @mkmccarty in #1494
- feat: Improve token value calculation accuracy by @mkmccarty in #1495
- feat: Update dependencies to latest versions by @mkmccarty in #1496
- Removed remaining CRT references by @mkmccarty in #1497
- feat: Add volunteer sink for all fastrun contracts by @mkmccarty in #1498
- feat: Improve SIAB artifact swap logic by @mkmccarty in #1499
- feat: Improve SIAB contribution rate calculation by @mkmccarty in #1500
- feat(stones): Add ELR colleggtible to Staabmia link by @mkmccarty in #1501
- feat(siab): Remove debug print statement for contract duration by @mkmccarty in #1502
- feat: update contract banker after completion by @mkmccarty in #1503
- feat(boost): add parade host functionality by @mkmccarty in #1504
- feat(bottools): update staabmia_link.go to fix modifier types by @mkmccarty in #1505
- feat(staabmia_link): Update Staabia calculator link to v-5 by @mkmccarty in #1506
- mm-branch-1 by @mkmccarty in #1507
- feat(contract): Set current banker when contract is in banker state by @mkmccarty in #1508
- feat(boost/handlers): Add Banker sink for signup and banker states by @mkmccarty in #1509
- feat: Implement contract score estimation and display archived contracts by @mkmccarty in #1510
- feat: Refactor GetFirstContactFromAPI and GetContractArchiveFromAPI by @mkmccarty in #1511
- feat: Implement output truncation and contract count display by @mkmccarty in #1512
- feat(ei_api): Implement caching and encryption for Egg Inc API requests by @mkmccarty in #1513
- feat(replay): Replace eggIncID with userID in JSON data by @mkmccarty in #1514
- feat: Generate encryption key if missing in config by @mkmccarty in #1515
- feat: add support for reading encryption key from file by @mkmccarty in #1516
- feat: add modal for requesting Egg Inc ID by @mkmccarty in #1517
- feat: Rename "m_m_eggid" command to "m_eggid" by @mkmccarty in #1518
- feat(deps): update go-openai and google-genai dependencies by @mkmccarty in #1522
- feat(siab): Improve SIAB contract score calculation by @mkmccarty in #1523
- feat(ei_api): Add JSON backup file for debugging by @mkmccarty in #1524
- feat: Disable Go telemetry in build workflow by @mkmccarty in #1525
- feat: Build binaries for FreeBSD and Linux by @mkmccarty in #1526
- feat(eggidmodal): Add option to save or forget Egg Inc ID by @mkmccarty in #1527
- feat: Save user data to file if not cached and okay to save by @mkmccarty in #1528
- feat: Implement user authentication and authorization by @mkmccarty in #1529
- feat: Implement user authentication and authorization by @mkmccarty in #1530
- feat(ei): Add time_cheat_debt field to Game message by @mkmccarty in #1531
- Remove egg by @mkmccarty in #1532
- feat(bottools): add player data and data gathering functions by @mkmccarty in #1533
- feat: Optimize API calls and remove unused code by @mkmccarty in #1534
- feat: Add support for player data in staabmia link by @mkmccarty in #1535
- feat: Improve egg virtue display by @mkmccarty in #1536
- feat(virtue): Add mission data and improve virtue display by @mkmccarty in #1537
- feat(virtue): improve Eggs of Virtue display by @mkmccarty in #1538
- feat: Add egg effect emojis to virtue display by @mkmccarty in #1539
- feat(virtue): Increase soul egg bonus by 100x by @mkmccarty in #1540
- feat: Improve Virtue command output by @mkmccarty in #1541
- feat: Improve CXP version handling and ephemeral messages by @mkmccarty in #1542
- feat(virtue): Optimize EOV calculation by @mkmccarty in #1543
- feat: Improve Truth Egg calculation logic by @mkmccarty in #1544
- With CRT being eliminated, this can be adjusted down by @mkmccarty in #1545
- Track new/old cxp by @mkmccarty in #1546
- feat: Add support for new CXP contract version by @mkmccarty in #1547
- feat: Update dependencies by @mkmccarty in #1548
- feat(estimate_time): Improve target TVal display for CXP v1 contracts by @mkmccarty in #1549
- feat(contracts): Adjust CR cap for CxpVersion 1 contracts by @mkmccarty in #1550
- feat(contract): Simplify chicken run calculation by @mkmccarty in #1551
- feat(teamwork): Optimize contract score calculation by @mkmccarty in #1552
- feat(boost): Improve token value calculation and display by @mkmccarty in #1553
- feat(boost): Optimize token value updates and reordering by @mkmccarty in #1554
- feat(research): Improve egg laying rate calculation by @mkmccarty in #1555
- feat: Improve egg delivery and habitat reporting by @mkmccarty in #1556
- feat: Optimize internal hatchery calculations and add silo minutes by @mkmccarty in #1557
- feat: Improve silo minutes formatting and add TE formula by @mkmccarty in #1558
- feat(boost): add conditional check for message components by @mkmccarty in #1559
- feat(artifacts): add 'None' option for bot components by @mkmccarty in #1560
- feat: Implement linear growth and egg delivery calculations by @mkmccarty in #1561
- feat: Add internal hatchery sharing multiplier by @mkmccarty in #1562
- feat: Improve habitat population display logic by @mkmccarty in #1563
- feat(hab): Improve habitat status display and offline egg tracking by @mkmccarty in #1564
- feat: update egg effects based on last fueled ship by @mkmccarty in #1565
- feat: Use highest Hab for Hab emoji and ship art by @mkmccarty in #1566
- feat(hatchery): Implement fuel rate calculation and display by @mkmccarty in #1567
- mm-branch-1 by @mkmccarty in #1568
- feat(boost): Adjust delivery time message and increase laying rate by @mkmccarty in #1569
- feat(research): Optimize internal hatchery calculations by @mkmccarty in #1570
- feat: Display max Colleggtibles assumption in footer by @mkmccarty in #1571
- feat(artifacts): Adjust artifact level multipliers by @mkmccarty in #1572
- feat(virtue): Display artifact stats in separate section by @mkmccarty in #1573
- feat(virtue): Add vehicle art and display in stats by @mkmccarty in #1574
- feat(boost/virtue): Add TruthEggBreakpoints table by @mkmccarty in #1575
- feat(truth-eggs): Extend Truth Egg breakpoints to 98 tiers by @mkmccarty in #1576
- feat: add new enum types for Platform, DeviceFormFactor, and AdNetwork by @mkmccarty in #1577
- feat(virtue): Implement Colleggtible buffs and display them by @mkmccarty in #1578
- feat(habitat): display habitat art instead of array by @mkmccarty in #1579
- feat: improve habitat display formatting by @mkmccarty in #1580
- feat: Update dependencies and fix pending Truth Eggs calculation by @mkmccarty in #1581
- feat: Add JSON backup for debugging in dev mode by @mkmccarty in #1582
- feat(contract_scores): Implement new buff time value and teamwork calculations by @mkmccarty in #1583
- feat(teamwork): Refactor calculateTeamworkB function by @mkmccarty in #1584
- feat: Redact sensitive user information in backup JSON by @mkmccarty in #1585
- feat: Asynchronously write backup JSON file by @mkmccarty in #1586
- feat: Improve Chicken Run display for CXP v1 contracts by @mkmccarty in #1587
- feat: Asynchronously save encrypted user data to disk by @mkmccarty in #1588
- feat(boost): add custom emoji to farmer signup button by @mkmccarty in #1589
- feat(score_explorer): Add new chicken run option by @mkmccarty in #1590
- feat(virtue): Improve habitat handling and time calculations by @mkmccarty in #1591
- feat: Adjust highest vehicle ID to 0 by @mkmccarty in #1592
- feat: Adjust offline egg calculation to use hours by @mkmccarty in #1593
- feat: Optimize offline egg calculation by @mkmccarty in #1594
- feat: Add onVirtueFarm flag and adjust output formatting by @mkmccarty in #1595
- feat: Simplify variable declaration in virtue.go by @mkmccarty in #1596
- feat(virtue): Update Egg of Virtue farm message by @mkmccarty in #1597
- feat: Add Virtue Farm detection logic by @mkmccarty in #1598
- feat(boost): improve contract score estimation by @mkmccarty in #1599
- feat(score_explorer): Improve score explorer UI and functionality by @mkmccarty in #1600
- feat(fueling): Implement recommended fuel rate calculation by @mkmccarty in #1601
- feat(periodicals): Exclude "first-contract" from contracts by @mkmccarty in #1602
- feat(replay): Add active contract summary and improve threshold command by @mkmccarty in #1603
- feat: Improve fuel rate calculation and display by @mkmccarty in #1604
- feat: Improve fuel warning logic in virtue.go by @mkmccarty in #1605
- feat(boost/virtue): Improve fuel rate display and mission end time by @mkmccarty in #1606
- π£ feat(boost): update seasonal scoring logic by @mkmccarty in #1607
- β¨ feat: Improve contract scoring and seasonal scoring by @mkmccarty in #1608
- π feat(virtue): improve fueling logic and display by @mkmccarty in #1609
- π¨ feat(virtue): add depot art to fuel display by @mkmccarty in #1610
- β¨ feat(ei-api): Cache user data for 24 hours by @mkmccarty in #1611
- β¨ feat(virtue): handle tank limits for virtue farm fueling by @mkmccarty in #1612
- π feat: Disable fuel rate when tank is full by @mkmccarty in #1613
- β¨ feat(notok_slashcmd): add new contexts and integration types by @mkmccarty in #1614
- π§ feat(go.mod, go.sum, Dockerfile.debug, Makefile): Update dependencies and add debug Docker image by @mkmccarty in #1615
- β¨ feat: Add backstop for TruthEggBreakpoints by @mkmccarty in #1616
- π feat(boost): Add token ask order sorting by @mkmccarty in #1617
- π feat: Implement new user authentication system by @mkmccarty in #1618
- π₯ feat: add truth egg breakpoints up to 1 quadrillion by @mkmccarty in #1619
- π feat: Implement new user authentication system by @mkmccarty in #1620
- π feat: Implement new user authentication system by @mkmccarty in #1621
- β¨ feat(privacy): Remove user data files on privacy reset by @mkmccarty in #1622
- π feat: Implement new user authentication system by @mkmccarty in #1623
- β¨ feat: Display artifact icons in virtue stats by @mkmccarty in #1624
- π feat(ei): add earnings event variables and logic by @mkmccarty in #1625
- π feat: Add artifact use to replay data by @mkmccarty in #1626
- π¨ feat(virtue): improve offline rate display by @mkmccarty in #1627
- π£ feat(virtue): Add offline earnings display by @mkmccarty in #1628
- π¨ feat(Makefile): Add eggcycle target to generate animated GIF by @mkmccarty in #1629
- fix: correct command description for /virtue by @mutilis in #1630
- β¨ feat(virtue): update farmer name from backup data by @mkmccarty in #1631
- π feat(coop_status): Add compressed coop status retrieval for re-runs by @mkmccarty in #1632
- π§ Refactor replay command and improve contract archive display by @mkmccarty in #1633
- π§ feat: improve teamwork icons sorting and display with unique icons by @mkmccarty in #1634
- π fix: handle nil embed in boost calculation message by @mkmccarty in #1635
- π§ feat(replay): add contract ID filtering for active contracts by @mkmccarty in #1636
- π fix: Improve logging and error handling in contract evaluation by @mkmccarty in #1637
- π feat(replay): Add chart subcommand and improve contract evaluation display by @mkmccarty in #1638
- π fix(replay): Improve chicken run check logic and formatting by @mkmccarty in #1639
- π£ fix(egg-laying): Simplify egg-laying rate calculation by removing habitat multiplier by @mkmccarty in #1640
- π§ feat: Add token teamwork sink indicator for low performance by @mkmccarty in #1641
- π§ feat(replay): add tval footer message for teamwork scoring context by @mkmccarty in #1642
- π Update TVal footer message with clearer token teamwork scoring description by @mkmccarty in #1643
- π§ refactor: Extract help command configuration to separate function by @mkmccarty in #1645
- π§ fix: Correct capitalization of TVal in replay output formatting by @mkmccarty in #1646
- π§ fix: Improve habitat art display by joining habitat array by @mkmccarty in #1647
- Refactor: rename EggIncContract variables for clarity by @mutilis in #1644
- π fix: reduce cache expiration time from 24h to 1h for user data by @mkmccarty in #1649
- feat: update /estimate-contract-time and add support for SR Sandbox links by @mutilis in #1648
- π deps: Bump dependencies to latest versions by @mkmccarty in #1650
- π Add research data loading and calculation functions for Egg Inc by @mkmccarty in #1651
- π Add documentation comments to improve code readability by @mkmccarty in #1652
- π§ fix: remove redundant eggValue variable in GetFarmEggValue by @mkmccarty in #1653
- π§ Refactor: Improve help command with dynamic channel context by @mkmccarty in #1654
- π feat: Update help command with new contract-related commands by @mkmccarty in #1655
- fix: handle empty coopID and improve prefix detection /teamwork by @mutilis in #1656
- π§ refactor: Extract artifact level and rarity mapping to constants by @mkmccarty in #1657
- refactor: cleanup and update SiaB swap page to use new formula /teamwork by @mutilis in #1658
- π Fix typo in boost list reaction instruction message by @mkmccarty in #1659
- π feat: Add start offset option for contract scheduling by @mkmccarty in #1660
- π§ Update Go version and dependencies to latest by @mkmccarty in #1661
- π§ͺ test: Add comprehensive tests for hab and vehicle icon generation by @mkmccarty in #1662
- refactor: update /teamwork SiaB switch page and related calculations by @mutilis in #1663
- π§ fix(teamwork): trim long output and use TextDisplay component by @mkmccarty in #1664
- π§ Refactor: Move earnings bonus calculation to separate package by @mkmccarty in #1665
- π build(deps): Update Go module dependencies to latest versions by @mkmccarty in #1666
- π§ Refactor: Update teamwork data structure and message handling by @mkmccarty in #1667
- π feat: Add section headers and data to teamwork page display by @mkmccarty in #1668
- π fix: Remove redundant code block markers in teamwork output by @mkmccarty in #1669
- π₯ refactor: Remove unused code and clean up imports by @mkmccarty in #1670
- π§ fix: update teamwork data expiry message display method by @mkmccarty in #1671
- π Fix: Prevent nil pointer dereference in teamwork page rendering by @mkmccarty in #1672
- π feat: Add train car emoji for multiple train representations by @mkmccarty in #1673
- π feat(boost): Improve train emoji representation with repeated train car by @mkmccarty in #1674
- π§ͺ test(virtue): Update test cases with traffic light markers by @mkmccarty in #1675
- π§ Optimize fuel calculation and limit fueling based on total fuel by @mkmccarty in #1676
- π§ fix: Update interaction response with TextDisplay component by @mkmccarty in #1677
- π§ Refactor teamwork page rendering and cache management by @mkmccarty in #1678
- feat: add handling for users beyond endTime and truncate long names /β¦ by @mutilis in #1679
- refactor: clean up SiaB Page logic and headers by @mutilis in #1680
- π§ Add commented component field to TeamworkOutputData struct by @mkmccarty in #1681
- π feat(research): Add fleet size calculation function by @mkmccarty in #1682
- π Refactor fleet size and train length research calculations by @mkmccarty in #1683
- π Enhance egg delivery time tracking with multi-threshold display by @mkmccarty in #1684
- π fix: show at least 2 values by @mkmccarty in #1685
- π feat: Enhance time display and formatting in virtue.go by @mkmccarty in #1686
- π°οΈ feat: Reduce delivery time threshold from 1 day to 12 hours by @mkmccarty in #1687
- π fix: update header formatting with user name and Fprintf usage by @mkmccarty in #1688
- β¨ feat(ui): Enhance username display with markdown emphasis by @mkmccarty in #1689
- π fix: Remove newline and space in rocket mission formatting by @mkmccarty in #1690
- fix: Updated CS per CR calculations for both /teamwork and /estimate by @mutilis in #1691
- π₯ Remove unnecessary cache deletion in teamwork page handler by @mkmccarty in #1692
- π fix: conditionally write debug JSON only in dev environment by @mkmccarty in #1693
- π§ feat(scoring): Add semantic constants for seasonal scoring modes by @mkmccarty in #1694
- π fix: prevent rounding up in EI value formatting by @mkmccarty in #1695
- π fix(test): correct rounding in unit test for large number display by @mkmccarty in #1696
- π§ Fix: Update time step from 5 to 1 minute for precise rate calculations by @mkmccarty in #1697
- gen: add snapshot generator and initial ei snapshots by @mutilis in #1698
- π build(deps): bump google.org/genai from v1.29.0 to v1.30.0 by @mkmccarty in #1699
- refactor: reflect.Pointer updates by @mutilis in #1700
- fix: correct duration formatting in Encode using FmtDurationSingleUnit by @mutilis in #1701
- refactor(docker): remove unused Dockerfile.debug and combine two versions by @mutilis in #1702
- feat(srsandbox): generate SR sandbox links by @mutilis in #1703
- feat(srsandbox): added support for target egg < 1e12 (trillion) by @mutilis in #1704
- π± feat: Add log rotation with Lumberjack for improved log management by @mkmccarty in #1705
- π§ refactor: Replace fmt.Printf with log.Printf for debugging by @mkmccarty in #1706
- π§ Fix: Ignore return value of Rotate method call by @mkmccarty in #1707
- π feat: Add ParadeChickenRuns to track alternate chicken run strategy by @mkmccarty in #1708
- π Add log rotation and signal handling for log files by @mkmccarty in #1709
- mm-branch-1 by @mkmccarty in #1710
- πΌ build(go): Upgrade Go version from 1.25.2 to 1.25.3 by @mkmccarty in #1711
- π§ Modify contract validation and autocomplete handling by @mkmccarty in #1712
- π¨ Improve header formatting with centered ΞELR column alignment by @mkmccarty in #1713
- π feat: Add simulate-shift option to Virtue command by @mkmccarty in #1714
- π feat: Improve title casing with golang.org/x/text package by @mkmccarty in #1715
- π fix: adjust habitat population calculation for alternate egg mode by @mkmccarty in #1716
- π Remove debug print statements and unused imports by @mkmccarty in #1717
- π§ Refactor: Simplify command handling and improve code structure by @mkmccarty in #1718
- π fix: move encrypted_ei_id retrieval after potential reset by @mkmccarty in #1719
- π§ Refactor: Extract command options map creation to utility function by @mkmccarty in #1720
- π§ Refactor: Extract command options map to bottools package by @mkmccarty in #1721
- π feat: Add force refresh option for contract archive retrieval by @mkmccarty in #1722
- π chore: comment out unused ping role configuration code by @mkmccarty in #1723
- π§ refactor: Simplify command options map creation across multiple files by @mkmccarty in #1724
- π Bump iOS platform version to 1.35.2 by @mkmccarty in #1725
- π§ feat(replay): Enhance contract evaluation with threshold filtering by @mkmccarty in #1726
- π Add pagination support for archived contract replay command by @mkmccarty in #1727
- π§ fix: improve truncation message with pagination hint by @mkmccarty in #1728
- π§ fix(replay): adjust contract list pagination and display logic by @mkmccarty in #1729
- π fix: improve timer message logging for better clarity by @mkmccarty in #1730
- π build(deps): bump google.golang.org/genai to v1.31.0 by @mkmccarty in #1731
- π§ fix(research): adjust internal hatchery additive value to zero by @mkmccarty in #1732
- π§ fix: update guidance text to reference Banker instead of Sink by @mkmccarty in #1733
- π fix: handle zero growth rate in population growth calculation by @mkmccarty in #1734
- π fix: prevent index out of bounds in delivery table mapping by @mkmccarty in #1735
- π fix: Silence debug print statement in artifact processing by @mkmccarty in #1736
- π Optimize egg count tracking logic in farm size calculation by @mkmccarty in #1737
- π fix: remove unnecessary blank variable in egg count assignment by @mkmccarty in #1738
- ποΈ feat(database): Add legacy farmer state management queries by @mkmccarty in #1739
- π§ refactor: Remove dev-only condition and improve error handling by @mkmccarty in #1740
- π feat(query): Add method to retrieve user ID from EI IGN by @mkmccarty in #1741
- π§ Refactor: Centralize LastUpdated timestamp in saveSqliteData by @mkmccarty in #1742
- π§ Refactor: Improve farmer state management and SQLite interaction by @mkmccarty in #1743
- π§ fix(query): update GetUserIdFromEiIgn to accept parameter and use placeholder by @mkmccarty in #1744
- π feat: Add method to retrieve Discord user ID from Egg Inc IGN by @mkmccarty in #1745
- feature(contract-report): Add contract-report command by @mutilis in #1746
- π§ refactor: replace hardcoded version with semantic constant by @mkmccarty in #1748
- fix(coop-report): Fix incorrect call by @mutilis in #1747
- π§ refactor(contract): use GetCoopStatusForRerun for improved local caching by @mkmccarty in #1749
- π§ Rename GetCoopStatusForRerun to GetCoopStatusForCompletedContracts by @mkmccarty in #1750
- π fix: correct typo in contract report command description by @mkmccarty in #1751
- π Update Google GenAI and GenProto dependencies to latest versions by @mkmccarty in #1752
- π₯ Remove legacy data storage and conversion code by @mkmccarty in #1753
- π§ fix: update option key names for relative time and start time by @mkmccarty in #1754
- mm-branch-1 by @mkmccarty in #1756
- π§ refactor: update CustomEggMap with lowercase keys and new egg types by @mkmccarty in #1757
- π§ fix(contract): comment out order state validation check by @mkmccarty in #1758
- ποΈ feat: Add SQLite support for contract and farmer state data by @mkmccarty in #1759
- π§ Refactor: Optimize contract data saving and loading mechanism by @mkmccarty in #1760
- π Optimize query performance with indexed column selection by @mkmccarty in #1761
- π feat(boost): Improve contract scoring for solo and multi-coop contracts by @mkmccarty in #1762
- π fix: handle zero completion time in replay evaluation by @mkmccarty in #1763
- π fix: prevent coop status retrieval for solo contracts by @mkmccarty in #1764
- π§ refactor: modify contract state management and remove unused save method by @mkmccarty in #1765
- feat(contract-report): Add missing players option by @mutilis in #1766
- perf(contract-report): increase concurrent fetches to 20 by @mutilis in #1767
- π fix: Add comprehensive error definitions for contract reporting by @mkmccarty in #1768
- π§ refactor: Improve contract lookup and hash generation methods by @mkmccarty in #1769
- ποΈ feat: Add gzip compression support for proto data handling by @mkmccarty in #1770
- ποΈ feat: Add gzip compression for encrypted user data files by @mkmccarty in #1771
- π fix: simplify gzip buffer conversion to string by @mkmccarty in #1772
- Changed to only write the .json files fromt the development bots by @mkmccarty in #1773
- π§ fix: initialize sqlite queries if nil before updating contract by @mkmccarty in #1774
- π§ fix: simplify error handling in database initialization by @mkmccarty in #1775
- π refactor(debug): Remove log statements from research calculations by @mkmccarty in #1776
- feat(register): Add register command by @mutilis in #1777
- π Refactor Egg Inc ID modal and registration flow by @mkmccarty in #1778
- π₯ refactor: Remove commented-out code and unnecessary comments by @mkmccarty in #1779
- π§ fix: conditionally calculate tcount and ttime for seasonal scoring by @mkmccarty in #1780
- π fix: prevent nil pointer dereference in boost speedrun logic by @mkmccarty in #1781
- π§ fix: remove unnecessary variable declaration in boost_speedrun.go by @mkmccarty in #1782
- π fix: Correct offline egg calculation and remaining time computation by @mkmccarty in #1783
- π§ fix(boost): update guidance text for Banker contract state by @mkmccarty in #1784
- πͺ feat(boost): Simplify parade alt button logic and improve readability by @mkmccarty in #1785
- πͺ feat: Add parade booster functionality and list display by @mkmccarty in #1786
- fix(contract-report): Fix /contract-report failure for new users by @mutilis in #1787
- π§ fix: Improve Egg Inc ID registration flow and state management by @mkmccarty in #1788
- π§ fix: handle contract update with error suppression by @mkmccarty in #1789
- πͺ feat: Enhance parade functionality with user management and naming by @mkmccarty in #1790
- π§ fix: simplify variable declaration in removeParaderFromInteraction by @mkmccarty in #1791
- π¨ Improve parade name generation with user-specific naming by @mkmccarty in #1792
- π§ fix(contract): normalize parade name with lowercase first word by @mkmccarty in #1793
- π§ fix(boost): use global name when nick is empty by @mkmccarty in #1794
- π¨ Set fallback name to global name when nick is empty by @mkmccarty in #1795
- build(deps): bump google.golang.org/genai from 1.32.0 to 1.33.0 by @dependabot[bot] in #1796
- build(deps): bump modernc.org/sqlite from 1.39.1 to 1.40.0 by @dependabot[bot] in #1797
- π₯ Remove commented-out code for legacy contract interactions by @mkmccarty in #1798
- π Update dependency versions in go.mod and go.sum by @mkmccarty in #1799
- π§ chore: Update Go version and dependencies to 1.25.4 by @mkmccarty in #1800
- π§ feat(data): Add initial research data for game progression by @mkmccarty in #1801
- π§ feat: Add research discount and cost tracking for Curiosity egg by @mkmccarty in #1802
- π§ feat: Add research discount event multiplier support by @mkmccarty in #1803
- π Refactor: Categorize and optimize research cost gathering logic by @mkmccarty in #1804
- π Refactor research sorting to prioritize best value research by @mkmccarty in #1805
- π§ feat: Improve research sorting and tier-based filtering by @mkmccarty in #1806
- π§ fix: Remove dev-only condition and improve research output formatting by @mkmccarty in #1807
- π§ build(deps): bump google.golang.org/genai from 1.33.0 to 1.34.0 by @mkmccarty in #1808
- Feat(contract) Add TE boost order by @mutilis in #1809
- π¬ feat(research): Enhance research cost calculation for dev bot by @mkmccarty in #1810
- π¬ feat: Enhance research cost calculation with time-to-buy metric by @mkmccarty in #1811
- π feat: Add gem tracking and offline earnings display by @mkmccarty in #1812
- π feat(boost): improve offline gem calculation accuracy by @mkmccarty in #1813
- π build(deps): bump golang.org/x/sys to v0.38.0 by @mkmccarty in #1814
- feat(virtue) Add dev-bot cap time calculation and simplify formatting by @mutilis in #1815
- π feat: Refactor offline stats and add notes section by @mkmccarty in #1816
- π§ feat(boost): Add habitat artifact to population capacity stats display by @mkmccarty in #1817
- π fix: Reposition earnings rate calculation for correct context by @mkmccarty in #1818
- fix(virtue) Remove ELR cap calculation by @mutilis in #1819
- π fix: Preserve artifact order in artifact set processing by @mkmccarty in #1820
- π fix: Adjust time calculation and delivery status display logic by @mkmccarty in #1821
- π fix: Refactor offline delivery status logic for better readability by @mkmccarty in #1822
- β¨ feat: Improve modifier value formatting and stats display logic by @mkmccarty in #1823
- π fix: conditionally display artifact icons when buffs are non-default by @mkmccarty in #1824
- π deps: Bump Go dependencies to latest minor versions by @mkmccarty in #1825
- π feat(habs): Add prices and gems data for habitat levels by @mkmccarty in #1826
- π§ Fix SQLite busy timeout for concurrent database access by @mkmccarty in #1827
- π§ Refactor: Replace fmt.Println with log.Println for better logging by @mkmccarty in #1828
- ποΈ feat(db): Add data and timestamp tables with CRUD operations by @mkmccarty in #1829
- π§ Refactor: Improve error handling and simplify database query methods by @mkmccarty in #1830
- π Refactor: Improve data processing and add transaction support by @mkmccarty in #1831
- π feat: Enhance artifact drop data processing and logging by @mkmccarty in #1832
- π build(deps): Update Go dependencies to latest versions by @mkmccarty in #1833
- π§ refactor: rename map variable for better clarity and readability by @mkmccarty in #1834
- π Improve mission output formatting and readability by @mkmccarty in #1835
- π Refactor: Enhance data population and drop data retrieval logic by @mkmccarty in #1836
- π§ fix: use provided timestamp for CSV filename generation by @mkmccarty in #1837
- π feat: Use golang.org/x/text for proper title casing by @mkmccarty in #1838
- π refactor: Move name mappings to centralized ei package by @mkmccarty in #1839
- π§ Refactor data population logic with improved timestamp checks by @mkmccarty in #1840
- π§ feat: conditionally remove CSV file based on dev mode by @mkmccarty in #1841
- π feat(hunt): Add hunt command with artifact autocomplete functionality by @mkmccarty in #1842
- π feat: Improve artifact hunt command and data handling by @mkmccarty in #1843
- π¨ Refactor: Standardize artifact names and add ship star limits by @mkmccarty in #1844
- π¨ feat: Enhance hunt command and drop rate calculation by @mkmccarty in #1845
- π feat: Update ship hunt command with optional star level by @mkmccarty in #1846
- π¨ Refactor: Improve drop rate calculation and output formatting by @mkmccarty in #1847
- feat(virtue simulate-shift): Add target TE for current egg by @mutilis in #1848
- π feat: Add mission art data and enhance hunt command structure by @mkmccarty in #1849
- π feat: Add minimum drops filter and improve drop data display by @mkmccarty in #1850
- π§ Refactor artifact drop rate calculation and output formatting by @mkmccarty in #1851
- π Increase initial fleet size from 1 to 4 in research calculation by @mkmccarty in #1853
- π§ refactor(boost): Remove unused train length variable and add comment by @mkmccarty in #1854
- π build(deps): bump dependencies to latest versions by @mkmccarty in #1856
- π’ Add ShipMaxStars mapping for ship type star levels by @mkmccarty in #1857
- feat(virtue) Add max available vehicle and traincar count to dev bot by @mutilis in #1855
- refactor(virtue) Update max available vehicle/traincar count logic and move to prod by @mutilis in #1858
- Revert "refactor(virtue) Update max available vehicle/traincar count logic and move to prod" by @mkmccarty in #1859
- refactor(virtue) Move available vehicle info to notes by @mutilis in #1860
- π§ refactor: Remove hardcoded mission data and improve code structure by @mkmccarty in #1861
- π Refactor: Simplify mission art emoji handling by @mkmccarty in #1862
- π Refactor: Move mission ship data to ei package and simplify indexing by @mkmccarty in #1863
- feat(virtue) Add compact mode and update available vehicle logic by @mutilis in #1864
- π§ refactor: Improve artifact buff formatting and readability by @mkmccarty in #1865
- π§ fix: simplify artifact icons display logic and improve readability by @mkmccarty in #1866
- π§ feat(contract): add HasPE flag for prophecy egg detection by @mkmccarty in #1867
- π build(deps): Update Go module dependencies to latest versions by @mkmccarty in #1868
- Feat Add /signups and season information helpers by @mutilis in #1869
- fix(signups): Revert current-date-based drop time retrival logic. by @mutilis in #1870
- π§ feat(utils): Add RefreshMap utility function for map copying by @mkmccarty in #1871
- π§ refactor: Simplify contract drop time calculation logic by @mkmccarty in #1872
- π§ feat(timestamp): Introduce TimestampNumber interface and enhance WrapTimestamp function by @mutilis in #1873
- feat(signups): Improve signups display logic and add separator helper by @mutilis in #1874
- feat(contract-report) Add go-runewidth for better emoji handling by @mutilis in #1875
- π£ fix: Remove redundant offline eggs calculation in egg delivery by @mkmccarty in #1876
- π fix: Adjust offline egg calculation by subtracting fuel rate by @mkmccarty in #1877
- π feat: Add minimum drops filter for hunt command by @mkmccarty in #1878
- π₯ Remove development note from drop rates output by @mkmccarty in #1879
- π§ chore(deps): update clipperhouse/uax29/v2 to v2.3.0 by @mkmccarty in #1880
- π feat: Add duration type abbreviations and Humility mission tracking by @mkmccarty in #1881
- refactor(signups): Remove '@' from prediction formula attribution by @mutilis in #1882
- π§ build(go): Bump Go version from 1.25.4 to 1.25.5 by @mkmccarty in #1883
- π Refactor mission processing with improved comments and logic by @mkmccarty in #1884
- π§ Update Go version from 1.25.5 to 1.25.4 in CI workflows by @mkmccarty in #1885
- π§ build: Downgrade Go version from 1.25.5 to 1.25.4 by @mkmccarty in #1886
- πΌ build(go): Upgrade Go version from 1.25.4 to 1.25.5 by @mkmccarty in #1887
- π§ Update Go version setup to check latest in CI workflow by @mkmccarty in #1888
- π§ chore: Update GitHub Actions to use latest action refs by @mkmccarty in #1889
- Potential fix for code scanning alert no. 31: Incorrect conversion between integer types by @mkmccarty in #1890
- Potential fix for code scanning alert no. 30: Incorrect conversion between integer types by @mkmccarty in #1891
- π§ chore: Update dependencies and import order by @mkmccarty in #1892
- π build(deps): bump google.golang.org/genai from 1.36.0 to 1.37.0 by @mkmccarty in #1893
- π§ fix(db): remove duplicate legacy farmer records and improve handling by @mkmccarty in #1894
- π₯ refactor: remove unnecessary parent channel logging in contract signup by @mkmccarty in #1895
- π§ fix(config): Adjust default minimum drops and remove debug prints by @mkmccarty in #1896
- π§ refactor: use DefaultMinimumDrops constant for minimum drops value by @mkmccarty in #1897
- fix(signups) remove ping by @mutilis in #1898
- π Remove debug print statement from mission processing loop by @mkmccarty in #1899
- π§ refactor: remove unused mission end calculation and index by @mkmccarty in #1900
- π§ refactor: replace
map[string]interface{}withmap[string]anyby @mkmccarty in #1901 - π Fix typo: Correct misspelled variable names in virtue.go by @mkmccarty in #1902
- π Fix typos in comments and boost order description by @mkmccarty in #1903
- π fix: correct typo in comment about theoretical teamwork threshold by @mkmccarty in #1904
- π§ refactor(contract_report): Improve variable naming for parallel job handling by @mkmccarty in #1905
- π§ refactor: Replace
interface{}withanyin type definitions by @mkmccarty in #1906 - π Add comments to clarify season and duration type constants by @mkmccarty in #1907
- π fix: remove unnecessary variable declaration and add fallback team name generation by @mkmccarty in #1908
- π§ fix(contract): improve team name generation and state reset logic by @mkmccarty in #1909
- [WIP] Refactor team name generation logic for better handling of edge cases by @Copilot in #1911
- π§ Refactor team name generation logic for better handling of edge cases by @mkmccarty in #1910
- π·οΈ Remove prefix from team name generation by @mkmccarty in #1912
- π feat: Add save time tracking to prevent frequent contract saves by @mkmccarty in #1913
- π feat: Implement TE boost order with async EI data refresh by @mkmccarty in #1914
- mm-branch-1 by @mkmccarty in #1916
- π deps: Bump dependencies to latest versions by @mkmccarty in #1917
- π§ refactor(ci): Restructure GitHub Actions workflow for improved clarity by @mkmccarty in #1918
- π§ Update GitHub Actions workflow to use latest action versions by @mkmccarty in #1919
- π§ build: Update GitHub Actions artifact upload to v4 by @mkmccarty in #1920
New Contributors
Full Changelog: v5.0...v5.1