Skip to content

feat!: deprecate streams product#13

Merged
ryanwaits merged 37 commits into
mainfrom
feat/deprecate-streams
Apr 15, 2026
Merged

feat!: deprecate streams product#13
ryanwaits merged 37 commits into
mainfrom
feat/deprecate-streams

Conversation

@ryanwaits

Copy link
Copy Markdown
Owner

Summary

Remove the streams product feature across the entire stack. Streams are replaced by workflows + subgraphs. This is a major version bump for 10 packages.

Breaking changes

  • SDK: client.streams.* removed. @secondlayer/sdk/streams subpath export removed.
  • CLI: sl streams *, sl receiver, sl setup commands removed.
  • MCP: streams_* tools removed; workflows_scaffold no longer accepts type: "stream".
  • API: /api/streams* and /api/logs routes removed; /api/admin/stats no longer returns totalStreams; /api/accounts/usage no longer returns current.streams.
  • Shared: StreamsTable/StreamMetricsTable/JobsTable/DeliveriesTable dropped. StreamNotFoundErrorNotFoundError. StreamsError base class → SecondLayerError. @secondlayer/shared/queue and /queue/recovery subpaths removed. db/queries/metrics removed.
  • Worker: stream processing removed. Worker now only runs scheduled storage measurement.
  • Workflows: StreamTrigger removed. WorkflowTrigger = EventTrigger | ScheduleTrigger | ManualTrigger.
  • Database: migration fix: filter continuous FT decoder stream #32 drops `streams`, `stream_metrics`, `jobs`, `deliveries` tables. PG NOTIFY channel renamed from `streams:new_job` to `indexer:new_block`.

Bug fixes discovered along the way

  • CLI webhook receivers were reading `x-streams-signature` while the worker ships `X-Secondlayer-Signature` — silent signature-verification failures. Entire receiver removed.
  • Workflow scaffold paths (SDK + MCP + sessions + scaffold) were emitting `type: "stream"` triggers that no longer typecheck. Removed.
  • `sl db reset/resync` TRUNCATEd dropped `deliveries`/`jobs` tables — would crash at runtime. Fixed.
  • `StreamsError` base class renamed to `SecondLayerError`. Dead `DeliveryError` and `FilterEvaluationError` subclasses deleted.
  • `config.ports.receiver` dead wiring (env var, CLI flags, doctor check, config print) removed after the receiver command was deleted.

Test plan

  • `bunx tsc --noEmit` clean
  • `bun run build` clean
  • Template test passing
  • 3 independent review passes
  • CI `bun install --frozen-lockfile` verified (lockfile refreshed)
  • CI deploy.yml typecheck job (auto)
  • CI deploy.yml deploy job (auto on merge)
  • Manual server verification
  • Post-merge NPM publish via `bun run release`

Before merging: take a Postgres snapshot on Hetzner. Migration #32 is destructive and irreversible.

@vercel

vercel Bot commented Apr 15, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
secondlayer Ready Ready Preview, Comment Apr 15, 2026 4:45pm

Request Review

@ryanwaits ryanwaits merged commit 3ce577a into main Apr 15, 2026
3 of 4 checks passed
@ryanwaits ryanwaits deleted the feat/deprecate-streams branch April 15, 2026 18:19
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