From 47d5cc1f8f42f39920fe7ae9d82fcbdccb473da9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Jul 2026 19:06:57 +0000 Subject: [PATCH 1/2] Bump golang.org/x/crypto from 0.46.0 to 0.52.0 Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.46.0 to 0.52.0. - [Commits](https://github.com/golang/crypto/compare/v0.46.0...v0.52.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-version: 0.52.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 88ea914..ebb7a6e 100644 --- a/go.mod +++ b/go.mod @@ -37,9 +37,9 @@ require ( go.opentelemetry.io/otel v1.29.0 // indirect go.opentelemetry.io/otel/trace v1.29.0 // indirect go.uber.org/goleak v1.3.0 // indirect - golang.org/x/crypto v0.46.0 // indirect + golang.org/x/crypto v0.52.0 // indirect golang.org/x/sync v0.21.0 // indirect - golang.org/x/sys v0.39.0 // indirect + golang.org/x/sys v0.45.0 // indirect golang.org/x/text v0.38.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 43b62e6..bda8dfb 100644 --- a/go.sum +++ b/go.sum @@ -75,12 +75,12 @@ go.opentelemetry.io/otel/trace v1.29.0 h1:J/8ZNK4XgR7a21DZUAsbF8pZ5Jcw1VhACmnYt3 go.opentelemetry.io/otel/trace v1.29.0/go.mod h1:eHl3w0sp3paPkYstJOmAimxhiFXPg+MMTlEh3nsQgWQ= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= -golang.org/x/crypto v0.46.0 h1:cKRW/pmt1pKAfetfu+RCEvjvZkA9RimPbh7bhFjGVBU= -golang.org/x/crypto v0.46.0/go.mod h1:Evb/oLKmMraqjZ2iQTwDwvCtJkczlDuTmdJXoZVzqU0= +golang.org/x/crypto v0.52.0 h1:RMs7fP2rXdep0CftQlK8Uf+kibLm7qkCcradZWYz988= +golang.org/x/crypto v0.52.0/go.mod h1:1QgfPxDqh0T2M/elOJtp9RvuR95kVjir0e6/BvEmGbc= golang.org/x/sync v0.21.0 h1:HLII4xRRTtCRkxYp4HNFF0Js/Og6q2i++KXbg0gHCwM= golang.org/x/sync v0.21.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= -golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk= -golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= +golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/text v0.38.0 h1:sXmwo9DwP3OK9EZ7PqAdaooSGozfl/3a6/xJcbzPRhE= golang.org/x/text v0.38.0/go.mod h1:YXZt3QhHUKYT53r2lLKFIVi6Ao1jdzrTR/KQ09qyxF4= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 28ff847fdde407001330997756c9ccbd0f0c3759 Mon Sep 17 00:00:00 2001 From: Blake Gentry Date: Thu, 9 Jul 2026 18:13:06 -0500 Subject: [PATCH 2/2] remove obsolete client table feature River v0.40 drops `river_client` and `river_client_queue`, leaving the features endpoint's probe permanently false on current schemas. The frontend never consults the flag, so retaining it only breaks the mounted endpoint response test and carries dead capability data. Remove the table probe and extension, delete its frontend feature plumbing, and trim tests that create or expect the retired table. Existing producer, sequence, and workflow capability checks remain. --- handler_api_endpoint_test.go | 8 ++----- riverproui/endpoints.go | 9 -------- riverproui/endpoints_test.go | 30 -------------------------- riverproui/pro_handler_test.go | 1 - src/App.tsx | 1 - src/components/WorkflowDetail.test.tsx | 1 - src/services/features.test.ts | 4 ---- src/services/features.ts | 1 - src/test/utils/features.ts | 1 - 9 files changed, 2 insertions(+), 54 deletions(-) diff --git a/handler_api_endpoint_test.go b/handler_api_endpoint_test.go index b555f54..b6bab19 100644 --- a/handler_api_endpoint_test.go +++ b/handler_api_endpoint_test.go @@ -245,9 +245,7 @@ func TestAPIHandlerFeaturesGet(t *testing.T) { // DisableSchemaSharing is required because we're making DB schema changes. endpoint, bundle := setupEndpointWithOpts(ctx, t, newFeaturesGetEndpoint, &riverdbtest.TestTxOpts{DisableSchemaSharing: true}) - _, err := bundle.tx.Exec(ctx, `DROP TABLE IF EXISTS river_client CASCADE;`) - require.NoError(t, err) - _, err = bundle.tx.Exec(ctx, `DROP TABLE IF EXISTS river_job_sequence;`) + _, err := bundle.tx.Exec(ctx, `DROP TABLE IF EXISTS river_job_sequence;`) require.NoError(t, err) _, err = bundle.tx.Exec(ctx, `DROP TABLE IF EXISTS river_producer;`) require.NoError(t, err) @@ -270,9 +268,7 @@ func TestAPIHandlerFeaturesGet(t *testing.T) { // DisableSchemaSharing is required because we're making DB schema changes. endpoint, bundle := setupEndpointWithOpts(ctx, t, newFeaturesGetEndpoint, &riverdbtest.TestTxOpts{DisableSchemaSharing: true}) - _, err := bundle.tx.Exec(ctx, `CREATE TABLE IF NOT EXISTS river_client (id SERIAL PRIMARY KEY);`) - require.NoError(t, err) - _, err = bundle.tx.Exec(ctx, `CREATE TABLE IF NOT EXISTS river_job_sequence (id SERIAL PRIMARY KEY);`) + _, err := bundle.tx.Exec(ctx, `CREATE TABLE IF NOT EXISTS river_job_sequence (id SERIAL PRIMARY KEY);`) require.NoError(t, err) _, err = bundle.tx.Exec(ctx, `CREATE TABLE IF NOT EXISTS river_producer (id SERIAL PRIMARY KEY);`) require.NoError(t, err) diff --git a/riverproui/endpoints.go b/riverproui/endpoints.go index 387f417..2ed66a2 100644 --- a/riverproui/endpoints.go +++ b/riverproui/endpoints.go @@ -90,14 +90,6 @@ func (e *endpoints[TTx]) Extensions(ctx context.Context) (map[string]bool, error } defer execTx.Rollback(ctx) - hasClientTable, err := execTx.TableExists(ctx, &riverdriver.TableExistsParams{ - Schema: schema, - Table: "river_client", - }) - if err != nil { - return nil, err - } - hasPeriodicJobTable, err := execTx.TableExists(ctx, &riverdriver.TableExistsParams{ Schema: schema, Table: "river_periodic_job", @@ -131,7 +123,6 @@ func (e *endpoints[TTx]) Extensions(ctx context.Context) (map[string]bool, error "durable_periodic_jobs": hasPeriodicJobTable, "producer_queries": true, "workflow_queries": hasWorkflowV2Tables, - "has_client_table": hasClientTable, "has_producer_table": hasProducerTable, "has_sequence_table": hasSequenceTable, }, nil diff --git a/riverproui/endpoints_test.go b/riverproui/endpoints_test.go index 1c6d926..5282892 100644 --- a/riverproui/endpoints_test.go +++ b/riverproui/endpoints_test.go @@ -95,36 +95,6 @@ func TestProEndpointsExtensions(t *testing.T) { }) }) - t.Run("ClientTableDetection", func(t *testing.T) { //nolint:dupl - t.Parallel() - - t.Run("NoClientTable", func(t *testing.T) { - t.Parallel() - - bundle := setup(ctx, t) - - _, err := bundle.tx.Exec(ctx, `DROP TABLE IF EXISTS river_client CASCADE;`) - require.NoError(t, err) - - ext, err := bundle.endpoint.Extensions(ctx) - require.NoError(t, err) - require.False(t, ext["has_client_table"]) - }) - - t.Run("WithClientTable", func(t *testing.T) { - t.Parallel() - - bundle := setup(ctx, t) - - _, err := bundle.tx.Exec(ctx, `CREATE TABLE IF NOT EXISTS river_client (id SERIAL PRIMARY KEY);`) - require.NoError(t, err) - - ext, err := bundle.endpoint.Extensions(ctx) - require.NoError(t, err) - require.True(t, ext["has_client_table"]) - }) - }) - t.Run("ProducerTableDetection", func(t *testing.T) { //nolint:dupl t.Parallel() diff --git a/riverproui/pro_handler_test.go b/riverproui/pro_handler_test.go index 1add446..5267f07 100644 --- a/riverproui/pro_handler_test.go +++ b/riverproui/pro_handler_test.go @@ -186,7 +186,6 @@ func TestProMountedEndpointResponses(t *testing.T) { // Static flags always true; dynamic flags should also be true because pro migrations run for tests expectedExtensions := map[string]bool{ "durable_periodic_jobs": true, // dynamic - "has_client_table": true, // dynamic "has_producer_table": true, // dynamic "has_sequence_table": true, // dynamic "producer_queries": true, // static diff --git a/src/App.tsx b/src/App.tsx index 48535d3..7275187 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -29,7 +29,6 @@ const router = createRouter({ basepath: getBasePath(), context: { features: { - hasClientTable: false, hasProducerTable: false, producerQueries: false, workflowQueries: false, diff --git a/src/components/WorkflowDetail.test.tsx b/src/components/WorkflowDetail.test.tsx index 444cbc8..3b59f70 100644 --- a/src/components/WorkflowDetail.test.tsx +++ b/src/components/WorkflowDetail.test.tsx @@ -42,7 +42,6 @@ vi.mock("@components/workflow-diagram/WorkflowDiagram", () => ({ const features: Features = { durablePeriodicJobs: false, - hasClientTable: false, hasProducerTable: true, hasSequenceTable: false, jobListHideArgsByDefault: false, diff --git a/src/services/features.test.ts b/src/services/features.test.ts index 31d9cc6..e1b6428 100644 --- a/src/services/features.test.ts +++ b/src/services/features.test.ts @@ -7,7 +7,6 @@ describe("apiFeaturesToFeatures", () => { const apiFeatures = { extensions: { durable_periodic_jobs: true, - has_client_table: true, has_producer_table: true, producer_queries: true, workflow_queries: true, @@ -17,7 +16,6 @@ describe("apiFeaturesToFeatures", () => { const expected = { durablePeriodicJobs: true, - hasClientTable: true, hasProducerTable: true, hasSequenceTable: false, jobListHideArgsByDefault: true, @@ -32,7 +30,6 @@ describe("apiFeaturesToFeatures", () => { const apiFeatures = { extensions: { durable_periodic_jobs: false, - has_client_table: false, has_producer_table: false, producer_queries: false, workflow_queries: false, @@ -42,7 +39,6 @@ describe("apiFeaturesToFeatures", () => { const expected = { durablePeriodicJobs: false, - hasClientTable: false, hasProducerTable: false, hasSequenceTable: false, jobListHideArgsByDefault: false, diff --git a/src/services/features.ts b/src/services/features.ts index a3d876d..b7cd9c5 100644 --- a/src/services/features.ts +++ b/src/services/features.ts @@ -20,7 +20,6 @@ const KNOWN_EXTENSIONS = [ "durable_periodic_jobs", "producer_queries", "workflow_queries", - "has_client_table", "has_producer_table", "has_sequence_table", ] as const; diff --git a/src/test/utils/features.ts b/src/test/utils/features.ts index d7f7395..ca04b79f 100644 --- a/src/test/utils/features.ts +++ b/src/test/utils/features.ts @@ -4,7 +4,6 @@ export const createFeatures = ( overrides: Partial = {}, ): Features => ({ durablePeriodicJobs: false, - hasClientTable: false, hasProducerTable: false, hasSequenceTable: false, jobListHideArgsByDefault: false,