Update CHANGELOG.md to reflect connection persistence fix and HMAC verification implementation

This commit is contained in:
MayaTheShy
2025-11-16 21:21:07 -05:00
parent 6359f92c2d
commit b752011672

View File

@@ -5,22 +5,16 @@ All notable changes to Starworld will be documented in this file.
## [Unreleased]
### Added - November 10, 2025
- **HMAC Verification Implementation**
- Complete HMAC-MD5 packet signing using OpenSSL
- Verification hash calculation with connection secret UUID as key
- Proper hash slot insertion in sourced packet structure
- writeVerificationHash() method for NLPacket class
- See NETWORK_PROTOCOL_INVESTIGATION.md for detailed analysis
- **Connection Persistence Fix**
- Fixed Local ID byte order bug; connection now persists indefinitely
- HMAC-MD5 packet signing and verification implemented (OpenSSL)
- See NETWORK_PROTOCOL_INVESTIGATION.md for protocol details
- **Local ID Parsing Fix**
- Fixed byte order bug: Local ID is little-endian, not big-endian
- Fixed offset bug: Local ID at bytes 34-35, not 32-33 in DomainList
- Source ID now correctly matches server assignment
- **Protocol Debugging**
- Comprehensive packet hex dumping for analysis
- Server log correlation with client packets
- Detailed HMAC verification failure investigation
- **Color/Texture Download Infrastructure**
- Color and texture data are parsed, stored, and logged
- Texture download and caching implemented (SHA256-based)
- Visual application of color/texture pending StardustXR API support
- See ENTITY_TROUBLESHOOTING.md for details
### Added - November 2025
- **Overte Protocol Implementation**
@@ -67,17 +61,11 @@ All notable changes to Starworld will be documented in this file.
- Entity queries sent to domain server when no EntityServer advertised
### Known Issues
- **HMAC Verification Deadlock**: Connection killed after 11-18 seconds
- Server requires HMAC verification for sourced packets (Ping, AvatarData)
- Server does not initialize HMAC for new nodes (expects empty hash)
- Any hash value (even zeros) causes mismatch and packet rejection
- Cannot send non-sourced packets for keep-alive (don't update "last heard")
- **Root cause**: Server-side configuration issue or bug
- **Status**: Client implementation correct; blocked by server config
- See NETWORK_PROTOCOL_INVESTIGATION.md for full analysis
- **Color/Texture Not Visually Applied**: Color and texture data are captured and textures are downloaded, but not yet visually applied to models (pending StardustXR API support). See ENTITY_TROUBLESHOOTING.md.
- **ATP Protocol Not Supported**: atp:// asset protocol is not yet supported (requires AssetClient integration).
### Fixed
- Local ID byte order: now correctly reads little-endian uint16
- Local ID byte order: now correctly reads little-endian uint16 (connection persistence fixed)
- Local ID offset: now correctly reads from bytes 34-35 in DomainList
- Source ID in Ping packets: now matches server assignment
- Domain handshake retry loop when username sent in DomainConnectRequest