Skip to content

Conversation

@sprunk
Copy link
Collaborator

@sprunk sprunk commented Dec 27, 2025

See #2140.

Something to figure out would be how to tell autohosts this, since either modifying SERVER_STARTED or sending a different packet would be a breaking change. Perhaps just send two packets (SERVER_STARTED as-is, plus a new future-compatible one with metadata)?

@sprunk sprunk requested a review from p2004a December 27, 2025 09:41
Copy link
Collaborator

@p2004a p2004a left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change looks good. For autohost I would change the SERVER_STARTED adding a field to it. It is one breaking change and IMHO that's the point: we switch from "magic frozen autohost interface" to "able to make changes and communicate".

@sprunk
Copy link
Collaborator Author

sprunk commented Dec 30, 2025

Sounds good, will do.

One more thing, protocol versioning was mentioned in the context of #2712 which doesn't introduce any breaking compatibility. If we increment the number on non-breaking changes then it becomes hard to know when you should stop trusting existing packets. Should this be two numbers, major (incremented on breaking changes to existing packets' meaning) and minor (incremented when it's just adding something new but all existing packets still mean the same thing)?

@p2004a
Copy link
Collaborator

p2004a commented Dec 31, 2025

I have a hard time at the moment determining where would be the breaking/non-breaking line in context of protocol. It's unlike breaking/non-breaking in context of libraries where you can just not use new feature. Any change, any addition could be considered breaking from perspective of application interpreting protocol, e.g. addition of new chat message type can be considered breaking from perspective of application that extracts all messages for moderation purposes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants