fix: pre-v0.1 review feedback (#14)

* fix(sdk-android): add @JvmOverloads to Uatu.start

Java callers can now invoke start(application) without supplying a
Configuration, matching the Kotlin default-arg ergonomics.

* feat(agent): add protocol_version to HELLO handshake

ProtocolVersion=1 lives on Message and is set by Hello(). Server.Accept
rejects mismatches with a clear error. SDK upgrades that don't change
the wire format keep the same protocol_version; bump on breaking changes.

* test(agent): assert protocol_version in Hello round-trip

* feat(sdk-android): send protocol_version=1 in HELLO

Mirrors agent.ProtocolVersion on the Go side. Bump in lockstep with
the Go constant when the wire format breaks.

* chore(sample-app): pull @uatu/spec from npm next tag

Replaces the file: dep. Copy-paste users can now npm install against
the registry. The release workflow publishes pre-release tags to
npm dist-tag 'next', so the sample tracks the latest rc without
manual version bumps. Lockfile currently resolves to 0.0.1-rc3.
This commit is contained in:
pj authored and GitHub committed 2026-04-18 18:00:12 +07:00
1 parent d0578dbaaa
commit 00f66ba48d
9 files changed
+67 -20

No files matched your search

+22
View File
@@ -141,6 +141,28 @@ func TestServer_SnapshotAndRelease(t *testing.T) {
wg.Wait()
}
func TestServer_AcceptRejectsProtocolVersionMismatch(t *testing.T) {
server := newLoopbackServer(t)
go func() {
client, err := net.Dial("tcp", server.Addr().String())
if err != nil {
return
}
defer client.Close()
mismatched := Hello("0.0.1", "android", "com.x")
mismatched.ProtocolVersion = ProtocolVersion + 99
_ = WriteMessage(client, mismatched)
}()
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
_, err := server.Accept(ctx)
if err == nil || !strings.Contains(err.Error(), "protocol version mismatch") {
t.Fatalf("expected protocol-version-mismatch error, got %v", err)
}
}
func TestServer_AcceptRequiresHello(t *testing.T) {
server := newLoopbackServer(t)