mirror of
https://github.com/Mezeporta/Erupe.git
synced 2026-03-22 07:32:32 +01:00
205 lines
6.4 KiB
Markdown
205 lines
6.4 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
## [Unreleased]
|
|
|
|
## [9.2.1] - 2026-02-08
|
|
|
|
### Added
|
|
|
|
- Log analyzer tool suite (`tools/loganalyzer/`) for filtering, error analysis, connection tracking, and real-time monitoring of server logs
|
|
- User check CLI tool (`tools/usercheck/`) for querying connected users and server status
|
|
- File-based server logging enabled by default with log rotation
|
|
- Docker configuration backported from main for local testing and deployment
|
|
- Release automation CI/CD workflow
|
|
- CI pipeline with gofmt and golangci-lint checks
|
|
- Database connection pool configuration options
|
|
- `RealClientMode` infrastructure for multi-version client support
|
|
- Database schemas directory from upstream
|
|
|
|
### Changed
|
|
|
|
- Upgraded Go version requirement from 1.19 to 1.25
|
|
- Renamed `config.json` to `config.example.json` as template file
|
|
- Distribution system refactored to use `distribution_items` table instead of data blob
|
|
- Docker setup improved with smaller image size and more robust init script
|
|
- Renamed `GuildMealDuration` to `ClanMealDuration` to match upstream naming
|
|
- Replaced panic calls with proper error handling throughout the codebase
|
|
|
|
### Fixed
|
|
|
|
- Personal poogie (goocoo) system completely broken due to database table/column name mismatch; backported correct implementation from main
|
|
- `TimeWeekStart` returning next Monday instead of last Monday on Sundays, breaking all weekly reset logic
|
|
- Infinite loop in gacha `getRandomEntries` when no valid entries available
|
|
- Guild poogie outfit unlock using incorrect math.Pow calculation instead of bitmask
|
|
- Guild `GetGuildManageRight` nil pointer condition (wrong `&&` vs `||`)
|
|
- Guild `InfoGuild` writing GR field unconditionally, crashing pre-G10 clients
|
|
- Cafe `PointCost` read as wrong type for G1-G5.2 clients
|
|
- Entrance server clan member limit hardcoded instead of reading from config
|
|
- Quest data compatibility for Season 6.0 clients
|
|
- Stage deadlock causing 60-second timeout when players change zones
|
|
- Three race conditions in stage handlers causing nil pointer panics
|
|
- Session race condition during player logout
|
|
- Array out-of-bounds crash on clans with 0 members
|
|
- Save error crashes on disconnect
|
|
- `LoadDecoMyset` crash when players have more than 40 decoration presets
|
|
- `WaitStageBinary` handler missing timeout, could hang indefinitely
|
|
- Race condition in server broadcast causing panics
|
|
|
|
### Security
|
|
|
|
- Bumped golang.org/x/net from 0.33.0 to 0.38.0
|
|
- Bumped golang.org/x/crypto from 0.31.0 to 0.35.0
|
|
|
|
### Testing
|
|
|
|
- Expanded overall test coverage significantly across all packages
|
|
- Sign server coverage increased from 1.5% to 45.2%
|
|
- Channel server coverage increased from ~7% to 25%
|
|
- Pascal string coverage at 100%
|
|
- Added comprehensive tests for guild, gacha, cafe, goocoo packet parsing, and core network layer
|
|
|
|
## [9.2.0] - 2023-04-01
|
|
|
|
### Added in 9.2.0
|
|
|
|
- Gacha system with box gacha and stepup gacha support
|
|
- Multiple login notices support
|
|
- Daily quest allowance configuration
|
|
- Gameplay options system
|
|
- Support for stepping stone gacha rewards
|
|
- Guild semaphore locking mechanism
|
|
- Feature weapon schema and generation system
|
|
- Gacha reward tracking and fulfillment
|
|
- Koban my mission exchange for gacha
|
|
|
|
### Changed in 9.2.0
|
|
|
|
- Reworked logging code and syntax
|
|
- Reworked broadcast functions
|
|
- Reworked netcafe course activation
|
|
- Reworked command responses for JP chat
|
|
- Refactored guild message board code
|
|
- Separated out gacha function code
|
|
- Rearranged gacha functions
|
|
- Updated golang dependencies
|
|
- Made various handlers non-fatal errors
|
|
- Moved various packet handlers
|
|
- Moved caravan event handlers
|
|
- Enhanced feature weapon RNG
|
|
|
|
### Fixed in 9.2.0
|
|
|
|
- Mail item workaround removed (replaced with proper implementation)
|
|
- Possible infinite loop in gacha rolls
|
|
- Feature weapon RNG and generation
|
|
- Feature weapon times and return expiry
|
|
- Netcafe timestamp handling
|
|
- Guild meal enumeration and timer
|
|
- Guild message board enumerating too many posts
|
|
- Gacha koban my mission exchange
|
|
- Gacha rolling and reward handling
|
|
- Gacha enumeration recommendation tag
|
|
- Login boost creating hanging connections
|
|
- Shop-db schema issues
|
|
- Scout enumeration data
|
|
- Missing primary key in schema
|
|
- Time fixes and initialization
|
|
- Concurrent stage map write issue
|
|
- Nil savedata errors on logout
|
|
- Patch schema inconsistencies
|
|
- Edge cases in rights integer handling
|
|
- Missing period in broadcast strings
|
|
|
|
### Removed in 9.2.0
|
|
|
|
- Unused database tables
|
|
- Obsolete LauncherServer code
|
|
- Unused code from gacha functionality
|
|
- Mail item workaround (replaced with proper implementation)
|
|
|
|
### Security in 9.2.0
|
|
|
|
- Escaped database connection arguments
|
|
|
|
## [9.1.1] - 2022-11-10
|
|
|
|
### Changed in 9.1.1
|
|
|
|
- Temporarily reverted versioning system
|
|
- Fixed netcafe time reset behavior
|
|
|
|
## [9.1.0] - 2022-11-04
|
|
|
|
### Added in 9.1.0
|
|
|
|
- Multi-language support system
|
|
- Support for JP strings in broadcasts
|
|
- Guild scout language support
|
|
- Screenshot sharing support
|
|
- New sign server implementation
|
|
- Multi-language string mappings
|
|
- Language-based chat command responses
|
|
|
|
### Changed in 9.1.0
|
|
|
|
- Rearranged configuration options
|
|
- Converted token to library
|
|
- Renamed sign server
|
|
- Mapped language to server instead of session
|
|
|
|
### Fixed in 9.1.0
|
|
|
|
- Various packet responses
|
|
|
|
## [9.1.0-rc3] - 2022-11-02
|
|
|
|
### Fixed in 9.1.0-rc3
|
|
|
|
- Prevented invalid bitfield issues
|
|
|
|
## [9.1.0-rc2] - 2022-10-28
|
|
|
|
### Changed in 9.1.0-rc2
|
|
|
|
- Set default featured weapons to 1
|
|
|
|
## [9.1.0-rc1] - 2022-10-24
|
|
|
|
### Removed in 9.1.0-rc1
|
|
|
|
- Migrations directory
|
|
|
|
## [9.0.1] - 2022-08-04
|
|
|
|
### Changed in 9.0.1
|
|
|
|
- Updated login notice
|
|
|
|
## [9.0.0] - 2022-08-03
|
|
|
|
### Fixed in 9.0.0
|
|
|
|
- Fixed readlocked channels issue
|
|
- Prevent rp logs being nil
|
|
- Prevent applicants from receiving message board notifications
|
|
|
|
### Added in 9.0.0
|
|
|
|
- Implement guild semaphore locking
|
|
- Support for more courses
|
|
- Option to flag corruption attempted saves as deleted
|
|
- Point limitations for currency
|
|
|
|
---
|
|
|
|
## Historical Context
|
|
|
|
This changelog documents releases from v9.0.0 onwards. For a complete history of all changes, refer to the [git repository](https://github.com/Mezeporta/Erupe).
|
|
|
|
The project follows semantic versioning and maintains tagged releases for stable versions. Development continues on the main branch with features merged from feature branches.
|