Cory Policht
← Back to the Devlog
DEVLOG · 2026-05-28 .. 2026-06-05 · RETRO

The protocol lands in three review cycles, and the pins chase themselves.

US-PLAT-2 ships as three WebSocket protocol stories, each arriving with its own review-findings fix — while a parallel run of CI pin bumps consumes the week. Two different kinds of repair, only one of them interesting.

WINDOW
Start2026-05-28
End2026-06-05
Kindretro
Projectsai-service-implementation
Delivered
  • ai-service-implementation
    WebSocket message envelope and payload handling
    US-PLAT-2.1.1 — the wire format the rest of the protocol depends on, landed with a review-findings fix the same day.
    AIService · 3b664dfAIService · 7478dba
  • ai-service-implementation
    Session lifecycle — open, heartbeat and close
    US-PLAT-2.1.2 on top of the envelope, again with a same-day review fix.
    AIService · 87f9f70AIService · 30ccf27
  • ai-service-implementation
    Channel routing, metadata and liveness
    US-PLAT-2.1.3 completes the protocol layer, with resume replay and the live channel router wired in.
    AIService · 33aa354AIService · 859715c
  • ai-service-implementation
    MAF provider, core, MCP SDK, reasoning and git integration all close
    Five Epic-2 stories (US-AIS-2.1 through 2.5) move backlog to done on 2026-05-29, the same day the CI pin churn peaks.
    AIService · 5686a93
  • ai-service-implementation
    MCPSdkClient behind a feature flag
    The gRPC to MCP SDK migration starts as a flagged path rather than a cutover — and the nested-argument and timeout behaviour is fixed before anything switches over.
    AIService · 9d32ee1

This window is two repair stories running at once, and confusing them is the mistake worth avoiding.

The interesting one is US-PLAT-2. The WebSocket protocol lands in three stories over three days: the message envelope and payload handling (2.1.1), session lifecycle with open/heartbeat/close (2.1.2), and channel routing with metadata and liveness (2.1.3). Each one arrives as a feat commit and is followed the same day by a fix commit titled “address review findings”.

That pattern — ship, then repair the review findings within hours — is worth looking at honestly. It is not the same as shipping bugs. It means the review gate is working and the units are small enough that findings are cheap to clear. The thing to watch for is whether the same findings recur; here they do not, which makes it a process working rather than a quality problem.

Underneath, five Epic-2 stories close at once on 05-29: MAF provider, MAF core, MCP SDK integration, reasoning, and git integration. And the gRPC → MCP SDK migration starts — MCPSdkClient goes in behind a feature flag, with nested argument structure and real timeouts fixed before anything switches over. That is how a transport migration should go: additive and reversible, not a cutover.

The uninteresting one is the CI pin run. PRs #9 through #18 are almost all the same move: bump a shared-workflows pin. Trivy exits 127, so bump. The image scan needs container-based scanning, so bump. The cache escape hatch needs an immutable pin, so bump again. PKG_TOKEN vs USER_TOKEN for registry auth. An org migration from admin to homelab. Six PRs that change one number.

This is the actual fix-storm the signal caught, and the honest reading is that only part of it is engineering.

Lessons learned

  • A same-day review-findings fix is a process signal, not a quality signal. What tells them apart is whether the same finding comes back. Clearing findings in hours on fresh issues means the review gate is doing its job.
  • Pin churn is not progress — it is tax. Six PRs bumping a version number is a workflow library that has not quite decided its own contract yet. Owning the workflow outright is cheaper than chasing its pins every fortnight.
  • Feature-flag a transport migration instead of cutting over. The SDK path went in behind a flag with the edge cases fixed first, so turning it on is a decision rather than an event.