All four .proto files (auth.proto, ping.proto, pong.proto, welcome.proto) declare package proto at line 5 and carry no option go_package directive. The .gitignore already lists *.pb.go, confirming that Go consumers regenerate bindings directly from these definitions.
Without option go_package, protoc-gen-go derives the output package identifier from the proto package name, producing a Go package also named proto. This collides with google.golang.org/protobuf/proto — the standard library package used to marshal and unmarshal these very messages — forcing a local alias in every Go file that imports both. The conflict compounds as the consumer codebase grows and is easy to miss when adding new files.
Add option go_package = "github.com/APN-Network/protos;apnproto"; (or the module's canonical import path) to each .proto file. This resolves the collision without altering the wire format.
All four .proto files (auth.proto, ping.proto, pong.proto, welcome.proto) declare
package protoat line 5 and carry nooption go_packagedirective. The .gitignore already lists*.pb.go, confirming that Go consumers regenerate bindings directly from these definitions.Without
option go_package,protoc-gen-goderives the output package identifier from the proto package name, producing a Go package also namedproto. This collides withgoogle.golang.org/protobuf/proto— the standard library package used to marshal and unmarshal these very messages — forcing a local alias in every Go file that imports both. The conflict compounds as the consumer codebase grows and is easy to miss when adding new files.Add
option go_package = "github.com/APN-Network/protos;apnproto";(or the module's canonical import path) to each .proto file. This resolves the collision without altering the wire format.