Skip to content

v0.4 — WebSocket + gRPC requests, code-gen, environments#14

Merged
dropdevrahul merged 4 commits into
mainfrom
0.4
Jul 4, 2026
Merged

v0.4 — WebSocket + gRPC requests, code-gen, environments#14
dropdevrahul merged 4 commits into
mainfrom
0.4

Conversation

@dropdevrahul

Copy link
Copy Markdown
Owner

What

Adds non-REST request kinds and the surrounding v0.4 tooling.

WebSocket & gRPC

  • WebSocket panel — live ws:// / wss:// streams over Wails events, with a persisted stream log.
  • gRPC panel — unary calls via server reflection (no .proto upload), with a persisted last response.
  • Config and output persist through the store (session + collections) the same way REST requests do. New ConnConfig carries connection settings plus WSLog / GRPCResponse; live socket handles stay transient (a dead connection doesn't restore).
  • New-request kind menu + sidebar badges for rest / ws / grpc.

Also in this branch

  • Copy-as-code (fetch / Go / Python)
  • Environments with {{var}} substitution
  • Payload diffing
  • README: WebSocket screenshot + feature note

Testing

  • go test . — green, incl. new TestStore_WSGRPCConnRoundTrip (saves → reloads from disk → asserts wsLog / grpcResponse survive; guards the Go dropped-field bug).
  • tsc --noEmit clean.

Not included

  • ws/grpc request headers still hardcoded {} (no header UI on those tabs yet).

Rahul Tyagi added 4 commits July 4, 2026 13:21
Add non-REST request kinds alongside the existing HTTP editor:

- WebSocket panel: live ws:// / wss:// streams over Wails events, with a
  persisted stream log.
- gRPC panel: unary calls via server reflection (no .proto upload), with a
  persisted last response.
- ws/grpc config and output persist through the store (session +
  collections) the same way REST requests do — a new ConnConfig carries the
  connection settings plus WSLog / GRPCResponse output.
- New-request kind menu and sidebar badges for rest / ws / grpc.

Also lands the surrounding v0.4 work: copy-as-code (fetch/Go/Python),
environments with {{var}} substitution, and payload diffing.

Docs: add the WebSocket screenshot and feature note to the README.
Selecting a gRPC method now fetches a JSON template of its request
message (all fields at zero value) via a new GRPCMethodTemplate backend
method, and loads it into the body editor. A pending-ref guard prevents
a slow fetch from overwriting a newer method selection.
The backend and lint CI jobs run go vet / go test / golangci-lint
without building the frontend, so //go:embed all:frontend/dist had no
matching files and failed. .gitignore already excepts this placeholder;
it was just never committed.
grpcurl's reflection API returns jhump/protoreflect/desc descriptors,
so we can't drop the deprecated package without leaving grpcurl. The
warning was previously masked by the go:embed typecheck failure.
@dropdevrahul
dropdevrahul merged commit a87bc8e into main Jul 4, 2026
3 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.

1 participant