commits
Major improvements to build system, authentication flow, and user experience:
Build System:
- Configure common source set for shared security/network code
- Fix compilation errors by properly organizing source sets
- Add Mod Menu integration for configuration GUI
Client-Side Authentication:
- Replace Slingshot with official Bluesky identity resolution APIs
- Use com.atproto.identity.resolveHandle for standard handle resolution
- Improve error handling and user feedback
- Add /atproto config and /atproto gui commands
New Features:
- Add AtProtoConfigScreen for GUI-based authentication
- Integrate with Mod Menu for easy access to settings
- No-typing-required login flow with visual feedback
- Client-side password handling with security notices
Code Organization:
- Move security classes to src/common/kotlin/com/jollywhoppers/security/
- Move network classes to src/common/kotlin/com/jollywhoppers/network/
- Organize server code under atproto/server/ package
- Organize client code under atproto/client/ package
- Move example code to docs/examples/
This update resolves all compilation errors and provides a much better
user experience with GUI-based authentication.
Updates README and build configuration from 0.0.1 to 0.3.0 to match the
addition of client-side authentication, hardened security, and the
RecordManager API. Project remains alpha and pre-1.0.
Shift AT Protocol authentication fully to the client for improved security.
Client now handles login and session creation locally, with verified sessions
sent to the server via network packets. Server-side login commands are removed
and deprecated APIs are marked accordingly.
Adds client-side initialisation, commands, and packet handlers, and updates
server session management to store verified client-authenticated sessions.
Also updates RecordManager and examples to use explicit kotlinx.serialization
serializers, improving type safety and avoiding reified Serializable bounds.
Introduce a full-featured RecordManager for AT Protocol repositories.
Adds type-safe CRUD operations for records, including create, read, list,
update (upsert), and delete, with support for pagination, compare-and-swap,
and atomic batch writes via applyWrites.
Includes utility helpers for TID generation and AT URI parsing, plus
serialisable request/response models.
Also adds a comprehensive examples module demonstrating real-world usage
patterns (stats syncing, achievements, profiles, safe updates, pagination,
and atomic transactions) to serve as reference documentation.
- Encrypt session data at rest using AES-256-GCM
- Add rate limiting and temporary lockouts for auth attempts
- Introduce security audit logging for sensitive operations
- Harden HTTP client against SSRF and DNS rebinding
- Enforce restricted file permissions and atomic writes
- Improve error sanitisation to avoid leaking sensitive details
- Update README with security features, config details, and roadmap
Add core AT Protocol integration with Slingshot-based PDS resolution,
player identity linking, authenticated sessions, and in-game commands.
Includes session persistence, token refresh, and expanded documentation.
Major improvements to build system, authentication flow, and user experience:
Build System:
- Configure common source set for shared security/network code
- Fix compilation errors by properly organizing source sets
- Add Mod Menu integration for configuration GUI
Client-Side Authentication:
- Replace Slingshot with official Bluesky identity resolution APIs
- Use com.atproto.identity.resolveHandle for standard handle resolution
- Improve error handling and user feedback
- Add /atproto config and /atproto gui commands
New Features:
- Add AtProtoConfigScreen for GUI-based authentication
- Integrate with Mod Menu for easy access to settings
- No-typing-required login flow with visual feedback
- Client-side password handling with security notices
Code Organization:
- Move security classes to src/common/kotlin/com/jollywhoppers/security/
- Move network classes to src/common/kotlin/com/jollywhoppers/network/
- Organize server code under atproto/server/ package
- Organize client code under atproto/client/ package
- Move example code to docs/examples/
This update resolves all compilation errors and provides a much better
user experience with GUI-based authentication.
Shift AT Protocol authentication fully to the client for improved security.
Client now handles login and session creation locally, with verified sessions
sent to the server via network packets. Server-side login commands are removed
and deprecated APIs are marked accordingly.
Adds client-side initialisation, commands, and packet handlers, and updates
server session management to store verified client-authenticated sessions.
Also updates RecordManager and examples to use explicit kotlinx.serialization
serializers, improving type safety and avoiding reified Serializable bounds.
Introduce a full-featured RecordManager for AT Protocol repositories.
Adds type-safe CRUD operations for records, including create, read, list,
update (upsert), and delete, with support for pagination, compare-and-swap,
and atomic batch writes via applyWrites.
Includes utility helpers for TID generation and AT URI parsing, plus
serialisable request/response models.
Also adds a comprehensive examples module demonstrating real-world usage
patterns (stats syncing, achievements, profiles, safe updates, pagination,
and atomic transactions) to serve as reference documentation.
- Encrypt session data at rest using AES-256-GCM
- Add rate limiting and temporary lockouts for auth attempts
- Introduce security audit logging for sensitive operations
- Harden HTTP client against SSRF and DNS rebinding
- Enforce restricted file permissions and atomic writes
- Improve error sanitisation to avoid leaking sensitive details
- Update README with security features, config details, and roadmap