Skip to content

smithers integration: 0.31.x makes two workarounds deletable, upstream fixes in flight for the restΒ #11

Description

@roninjin10

Hi @RonTuretzky πŸ‘‹ β€” smithers maintainer here. We read the .smithers/ gateway embedding, the src/seam client, and the build backend closely β€” it's a solid integration, and it surfaced real upstream API gaps we're now fixing. This is the vibecode-room-side action list, smallest-effort-first. Happy to send PRs for any of it.

1 Β· Delete after bumping 0.23.0 β†’ 0.31.x

You're pinned at 0.23.0 (package.json#L37, .smithers/package.json#L17). Two workarounds are already obsolete upstream:

Workaround Fixed upstream Action
parked-run cancel dance the gateway cancels parked runs itself since 0.31.x β†’ gateway.js@v0.31.0#L9558 delete
rpcRaw any-cast SmithersGatewayClient exposes a public rpcRaw since 0.31.0 β†’ SmithersGatewayClient.ts#L319 call it directly, drop the cast

While bumping: VIBERSYN_BUILD.md#L23-L25 still carries the stale global-install guidance β€” worth refreshing in the same PR.

2 Β· Staleness in the integration

  • Stale spec β€” d1-fix-steer-loop.md#L14-L17 says the steer loop signals with a static correlationId = "steer", but the current workflow already passes the dynamic ctx.input.correlationId (vibersyn-process.tsx#L167-L174). The spec describes a bug that no longer exists β€” worth updating before someone "fixes" it back.
  • Private internals β€” the embedded self-issued RPCs (gateway.ts#L117-L145, smithers-client.ts#L177-L214) go through the private routeRequest / internal connection shapes. They work today, but can shift on any minor β€” Β§3 has the sanctioned replacement in flight.

3 Β· Upstream gaps β€” fixes in flight on smithersai/smithers

Your embedding surfaced these. We're filing them from this review and will cross-link the numbers here as they land on the tracker.

Upstream gap What it unblocks here
WaitForEvent timeout deadlines don't wake a parked run (gateway.js@v0.31.0#L5852, deferred-state-bridge.js#L1135) deleting your deadline tracker (gateway.ts#L94-L100, #L185-L210) β€” keep it until this ships
Gateway.register typing is non-generic (index.d.ts@v0.31.0#L1515) dropping the casts in gateway.ts#L61-L80
no public API for embedded self-issued RPCs moving gateway.ts#L117-L145 + smithers-client.ts#L177-L214 off private internals

4 Β· Proposed sub-issues

  • bump smithers 0.23.0 β†’ 0.31.x, delete the two Β§1 workarounds, refresh VIBERSYN_BUILD.md#L23-L25
  • let smithers own the claude CLI lifecycle in the build backend β€” smithers.ts#L1-L14, #L70-L155 spawn the CLI directly and hand-roll timeout/salvage; running it as a smithers agent (timeoutMs/heartbeatTimeoutMs, durable retries) deletes that block
  • update the stale steer-loop spec to match the dynamic-correlationId code (Β§2)
  • swap the seam client's poll loop for gateway push events β€” smithers-client.ts#L125-L137 polls run state; the gateway's WS event stream covers it once you're on 0.31.x

Compiled against vibecode-room@355e89d with every claim checked against smithers v0.31.0 source. We're happy to send PRs β€” the version bump is the natural first one.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions