- Replace hardcoded partition ranges with centralized kafka.CreateSMQPartition
- Use proper SMQ ranges instead of single partition numbers in storage paths
- All offset mapping tests now pass with consistent 32-slot ranges
- Remove unused pub_balancer import
- Changed from strings.Split to strings.LastIndex to find the last colon
- This allows topic names like 'namespace:service:events' to be parsed correctly
- Updated test cases to verify topics with single and multiple colons work properly
- Kafka topic names are allowed to contain colons, so parsing must be robust
The previous logic would incorrectly parse 'my:topic:0' as topic='my', partition='topic:0'
Now it correctly parses as topic='my:topic', partition='0'
- Add unit tests for gateway connection/refusal in test/kafka/unit/gateway_test.go
- Add Schema Registry connectivity test in test/kafka/integration/docker_test.go
- Implement legacy offset key parsing in weed/mq/kafka/offset/smq_storage.go
- Fix leaderEpoch placeholder to return 0 instead of -1 in offset_management.go
- Add comprehensive test coverage for parseTopicPartitionKey function
All tests passing. Ready for Phase 0 Part 2 (API cleanup and logging).
- Add SMQOffsetStorage that uses same filer locations and format as SMQ brokers
- Store offsets in <topic-dir>/<partition-dir>/<consumerGroup>.offset files
- Use 8-byte big-endian format matching SMQ broker implementation
- Include comprehensive test coverage for core functionality
- Maintain backward compatibility through legacy method support