Skip to content

feat(conformance): Go SDK harness driver (DEV-1144) - #6

Merged
pavel-y-ivanov merged 5 commits into
mainfrom
pavel/dev-1144-go-conformance-driver
Jul 13, 2026
Merged

feat(conformance): Go SDK harness driver (DEV-1144)#6
pavel-y-ivanov merged 5 commits into
mainfrom
pavel/dev-1144-go-conformance-driver

Conversation

@pavel-y-ivanov

Copy link
Copy Markdown
Contributor

Conformance driver for raindrop-sdk-harness per DEV-1144. Authored by a local agent, independently verified: full fault-lane corpus exits 0 — 6 pass / 10 expected_fail (ratcheted) / 4 experimental gaps.

Only conformance/ is touched — no SDK changes. Driver must be prebuilt (go build -o driver ./conformance): go run swallows the protocol's exit code 3.

Capabilities declared: events.track, events.track_ai, events.track_partial, identify (signal deferred per MVP).

Real SDK findings ratcheted (10 entries, all bug)

  1. No events/track code path exists: TrackEvent/TrackAI are sugar over Patch(IsPending:false) → immediate single-object POST to events/track_partial — not the ratified array-batch wire shape (8 entries).
  2. Class-1 hot-path violation (CONTRACT §1.1): TrackAI/TrackEvent do network I/O and Retry-After sleeps (clamped 30s) synchronously on the caller's goroutine (2 entries). Same bug class as python-sdk feat(conformance): Go SDK harness driver (DEV-1144) #6/#16/#32.

The partial lifecycle (begin/patch/finish), identify, and blocking Close are fully conformant. Follow-up SDK tickets being filed for findings 1–2.

🤖 Generated with Claude Code

pavel-y-ivanov and others added 5 commits July 12, 2026 19:54
A thin CLI under conformance/ mapping the harness's language-neutral
step vocabulary onto the public Go SDK API (driver protocol 1):
--describe handshake, JSON step array on stdin, per-step timing lines
on stdout, exit 3 unsupported path for the deferred signal step.

Capabilities declared: events.track, events.track_ai,
events.track_partial, identify.

failures.txt ratchets the real SDK gaps found by the fault lane: the
Go SDK never POSTs the ratified events/track array batch (track and
track_ai ship via events/track_partial as single-object bodies,
synchronously on the caller's goroutine — a CONTRACT 1.1 Class 1
violation for the hot-path scenarios). All partial-lifecycle and
identify scenarios pass; runner exits 0 with the ratchet in place.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…; hot-path as bug → DEV-1148

Per Pavel: gaps stay visible as to-be-implemented in the matrix.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…efault to production ingest

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ts.track_ai_partial, justified N/A for wrapper.capture

Declaring the factually-true partial routing lights up the wrap-*
partial scenarios: wrap-track-ai-never-hits-track passes, and
wrap-retry-429-partial-hot-path now demonstrates the DEV-1148 hot-path
violation live on the SDK's real route (ratcheted). traces.otlp stays a
visible gap (SDK ships spans; harness can't drive them yet — DEV-1153).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ce on sink guard

Same fleet-wide hardening as the rust driver (silent-no-op prevention).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@pavel-y-ivanov

Copy link
Copy Markdown
Contributor Author

Closing to reopen from a Devin session (ruleset requires non-author approval). Same branch pavel/dev-1144-go-conformance-driver, zero code changes — new PR link follows.

@pavel-y-ivanov

Copy link
Copy Markdown
Contributor Author

Reopened — staying under the original author; a human reviewer will approve tomorrow (ruleset requires non-author approval). Branch is final: all checks green, 4 review rounds addressed, corpus verified exit 0.

@pavel-y-ivanov
pavel-y-ivanov merged commit 91cc3f1 into main Jul 13, 2026
4 checks passed
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.

2 participants