Skip to content

feat: controlpanel move to a accept first strategy for batch - #2963

Merged
wilsonrivera merged 30 commits into
mainfrom
wilson/eng-9724-controlpanel-move-to-a-accept-first-strategy-for-batch
Jun 16, 2026
Merged

feat: controlpanel move to a accept first strategy for batch#2963
wilsonrivera merged 30 commits into
mainfrom
wilson/eng-9724-controlpanel-move-to-a-accept-first-strategy-for-batch

Conversation

@wilsonrivera

@wilsonrivera wilsonrivera commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • New Features

    • Asynchronous subgraph publishing: enqueue a publish, receive a job ID, and track progress.
    • New job status API to query batch publish progress, results, failure reasons, and updated subgraph names.
    • Background cleanup of job details to remove old job records automatically.
  • Enhancements

    • Improved error and status reporting for batch publishes (composition/deployment counts and sliced diagnostics).
  • Reliability

    • Per-namespace locking to prevent concurrent batch publish conflicts.

Checklist

Open Source AI Manifesto

This project follows the principles of the Open Source AI Manifesto. Please ensure your contribution aligns with its principles.

@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

This PR introduces asynchronous batch publish operations via optional request flag and response job tracking. It adds database schema for job persistence and namespace-level locking, implements a cleanup worker to delete completed jobs, refactors the main handler to support both sync and async execution paths with a shared batch helper, and wires the worker infrastructure into the server bootstrap while correcting logging field names across workers.

Changes

Async Batch Publish Core

Layer / File(s) Summary
Protocol and database schema definitions
proto/wg/cosmo/platform/v1/platform.proto, connect/src/wg/cosmo/platform/v1/platform_pb.ts, connect/src/wg/cosmo/platform/v1/platform-PlatformService_connectquery.ts, connect/src/wg/cosmo/platform/v1/platform_connect.ts, controlplane/migrations/0142_hot_sphinx.sql, controlplane/migrations/meta/_journal.json, controlplane/src/db/schema.ts, controlplane/src/db/models.ts
Protobuf messages gain optional async request flag and jobId response field; new job-status API and RPC added; SQL migration adds batch_publish_job_status enum, batch_publish_job_details and batch_publish_job_details_job_locks tables; Drizzle schema and exported TS types added; generated Connect/TS protobuf artifacts updated.
Job locking and repository foundation
controlplane/src/core/repositories/BatchPublishJobDetailsRepository.ts, controlplane/src/core/repositories/SubgraphRepository.ts
BatchPublishJobDetailsRepository adds withNamespaceLock() and private #acquireLock() with DB upsert lock and 30-minute acquisition deadline plus cleanup; batchWriteAndCollect now supplies a defined fallback for splitConfigFeature.
Background job deletion worker
controlplane/src/core/workers/DeleteBatchPublishJobDetailsWorker.ts, controlplane/src/core/routes.ts, controlplane/src/core/build-server.ts, controlplane/test/test-util.ts
Adds DeleteBatchPublishJobDetailsQueue wrapper with deterministic organizationId/jobId job IDs and 24-hour delayed enqueue; createDeleteBatchPublishJobDetailsWorker deletes job rows using repository; queue is wired into routes, build-server, and test setup.
Handler async/sync execution flow and status endpoint
controlplane/src/core/bufservices/subgraph/publishFederatedSubgraphs.ts, controlplane/src/core/bufservices/subgraph/getBatchPublishJobStatus.ts, controlplane/src/core/bufservices/PlatformService.ts
publishFederatedSubgraphs branches on req.async: async path creates pending job, schedules deletion, runs batch in Sentry span and updates job status/results/failure, returns jobId; sync path calls runBatchPublish helper. Added getBatchPublishJobStatus RPC handler that authenticates, bounds limits, loads job details per organization, maps DB status to protobuf enum, computes response code based on error presence, slices details for output while preserving totals, and returns updated subgraph names.
Configuration and logging fixes
package.json, controlplane/.gitattributes, various controlplane/src/core/workers/* files
Adds pnpm msgpackr@1.12.1 override; marks migration metadata as linguist-generated; standardizes stalled-job worker logging to use jobId structured field across several workers.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • wundergraph/cosmo#2949: Both PRs modify controlplane/src/core/bufservices/subgraph/publishFederatedSubgraphs.ts by changing the logic inside the publish handler (this PR adds async job-tracking and work-queue flow; the other PR changes subgraph resolution, auth, router-compat, and payload building).
  • wundergraph/cosmo#2899: That PR introduces the PublishFederatedSubgraphs RPC and CLI command; this PR extends the same RPC with new async/jobId fields and adds server-side async job tracking, schema, locking, and cleanup infrastructure.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 25.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title refers to implementing an 'accept first strategy for batch' publishing, which aligns with the core changes: adding async batch publish job support with immediate acceptance and asynchronous processing.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov

codecov Bot commented Jun 11, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 76.80141% with 132 lines in your changes missing coverage. Please review.
✅ Project coverage is 48.02%. Comparing base (1658315) to head (093e325).

Files with missing lines Patch % Lines
...mmands/subgraph/utils/poll-batch-publish-status.ts 1.53% 64 Missing ⚠️
.../bufservices/subgraph/publishFederatedSubgraphs.ts 84.73% 29 Missing ⚠️
...li/src/commands/subgraph/commands/batch-publish.ts 12.50% 14 Missing ⚠️
...core/workers/DeleteBatchPublishJobDetailsWorker.ts 85.71% 12 Missing ⚠️
...e/bufservices/subgraph/getBatchPublishJobStatus.ts 87.83% 9 Missing ⚠️
...e/repositories/BatchPublishJobDetailsRepository.ts 95.74% 4 Missing ⚠️

❌ Your patch check has failed because the patch coverage (76.80%) is below the target coverage (90.00%). You can increase the patch coverage or adjust the target coverage.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2963      +/-   ##
==========================================
+ Coverage   46.83%   48.02%   +1.18%     
==========================================
  Files        1115     1139      +24     
  Lines      151058   156048    +4990     
  Branches     9883    10931    +1048     
==========================================
+ Hits        70755    74935    +4180     
- Misses      78501    79275     +774     
- Partials     1802     1838      +36     
Files with missing lines Coverage Δ
...ntrolplane/src/core/bufservices/PlatformService.ts 83.86% <100.00%> (+0.08%) ⬆️
controlplane/src/core/build-server.ts 75.82% <100.00%> (+0.64%) ⬆️
controlplane/src/core/plugins/redis.ts 64.78% <100.00%> (+5.11%) ⬆️
...lplane/src/core/repositories/SubgraphRepository.ts 88.89% <100.00%> (ø)
controlplane/src/core/routes.ts 100.00% <ø> (ø)
controlplane/src/db/models.ts 100.00% <ø> (ø)
controlplane/src/db/schema.ts 100.00% <100.00%> (ø)
...e/repositories/BatchPublishJobDetailsRepository.ts 95.74% <95.74%> (ø)
...e/bufservices/subgraph/getBatchPublishJobStatus.ts 87.83% <87.83%> (ø)
...core/workers/DeleteBatchPublishJobDetailsWorker.ts 85.71% <85.71%> (ø)
... and 3 more

... and 32 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown

Router-nonroot image scan passed

✅ No security vulnerabilities found in image:

ghcr.io/wundergraph/cosmo/router:sha-15692247b86bc7e2c07bbe39d9f63e7b6efc910e-nonroot

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

🧹 Nitpick comments (2)
controlplane/src/core/repositories/BatchPublishJobDetailsRepository.ts (1)

85-88: ⚡ Quick win

Consider logging lock deletion errors for observability.

The .catch(() => {}) silently swallows all errors during lock cleanup. While this correctly prevents cleanup failures from affecting the function's result, it hides potential database issues that could indicate problems with the locking infrastructure.

📊 Suggested improvement
       await this.db
         .delete(schema.batchPublishJobDetailsJobLocks)
         .where(eq(schema.batchPublishJobDetailsJobLocks.id, lock))
-        .catch(() => {});
+        .catch((err) => {
+          // Log but don't throw - cleanup failure shouldn't affect the function result
+          console.error('Failed to delete lock after job completion:', err);
+        });
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@controlplane/src/core/repositories/BatchPublishJobDetailsRepository.ts`
around lines 85 - 88, The silent .catch(() => {}) on the delete of
schema.batchPublishJobDetailsJobLocks in BatchPublishJobDetailsRepository hides
DB errors; change it to catch the error and log it (including the lock id)
without rethrowing so cleanup can't break flow—e.g., in the method containing
the await this.db.delete(...).where(eq(schema.batchPublishJobDetailsJobLocks.id,
lock)), replace the empty catch with catch(err => (this.logger ??
console).error(`Failed to delete lock ${lock}`, err)) or use the repository's
existing logger instance to record the error and context.
controlplane/src/core/bufservices/subgraph/publishFederatedSubgraphs.ts (1)

360-367: ⚡ Quick win

Align new TS shapes/signatures with repository typing guidelines.

Please switch RunBatchPublishParams to an interface and add an explicit return type for runBatchPublish.

As per coding guidelines, **/*.{ts,tsx} prefers interfaces for object shapes and requires explicit function parameter/return type annotations.

Also applies to: 369-376

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@controlplane/src/core/bufservices/subgraph/publishFederatedSubgraphs.ts`
around lines 360 - 367, Change the exported type alias RunBatchPublishParams to
an interface (interface RunBatchPublishParams { ... }) and update any other
nearby object-shaped type aliases in the same area (the similar shape at lines
369-376) to interfaces as well; then add an explicit return type annotation to
the runBatchPublish function signature (e.g., runBatchPublish(...):
Promise<YourReturnType> or appropriate synchronous return type) so both
parameter shapes and function return types follow the repository typing
guidelines. Ensure you keep the same property names (opts, logger, authContext,
disableResolvabilityValidation, items, shouldRefreshSubgraphs) and reference the
existing UpdateSubgraphSchemaData and RouterOptions types when declaring the
interface.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@controlplane/migrations/0142_hot_sphinx.sql`:
- Around line 12-19: The lock table batch_publish_job_details_job_locks allows
namespace_id, job_id and organization_id to disagree; fix by enforcing same-org
constraints: either drop organization_id and derive org via joins from
namespace_id/job_id, or add composite foreign keys that bind organization_id to
the referenced rows (e.g., add FK (organization_id, namespace_id) referencing
the namespaces table (organization_id,id) and FK (organization_id, job_id)
referencing the jobs table (organization_id,id)), and remove any independent FKs
that permit cross-org rows; update or add constraint names similar to
batch_publish_job_details_job_locks_namespace_id_key so namespace_id and job_id
cannot point to a different organization than organization_id.

In `@controlplane/src/core/bufservices/subgraph/publishFederatedSubgraphs.ts`:
- Around line 277-315: Sentry.startSpan in
publishFederatedSubgraphs.runBatchPublish is invoked fire-and-forget but returns
the Promise from the async callback, so attach error handling to that returned
Promise instead of ignoring it; update the call site (the Sentry.startSpan(...)
invocation) to either await the returned Promise or append .catch(...) that
captures the error (Sentry.captureException) and updates
batchPublishJobDetailsRepo.update(jobId, { status: 'failed', failureReason: ...
}) for any unhandled rejections, and ensure Sentry.flush is still invoked in all
paths; reference the existing symbols Sentry.startSpan, runBatchPublish, and
batchPublishJobDetailsRepo.update to locate where to add the .catch or await.

In `@controlplane/src/core/workers/DeleteBatchPublishJobDetailsWorker.ts`:
- Around line 101-103: In the worker.on('stalled', (job) => ...) handler replace
the incorrect log field name joinId with jobId in the log.warn call; update the
call to log.warn({ jobId: job }) (or log.warn({ jobId: job.id }) if the job
object exposes an id property) so the stalled-job logs use the consistent jobId
field for observability and searchability.
- Around line 73-83: The handler in DeleteBatchPublishJobDetailsWorker currently
logs errors but swallows them, preventing BullMQ retries; update the handler in
DeleteBatchPublishJobDetailsWorker.handler so that after catching and logging
the error (use this.input.logger.error with
jobId/organizationId/batchPublishJobDetailsId/err) it rethrows the caught error
(throw err) to allow BullMQ to apply defaultJobOptions retries and backoff;
ensure you reference the BatchPublishJobDetailsRepository.delete call and
preserve the existing log before rethrowing.
- Around line 62-71: The constructor currently mutates the shared input by
setting this.input.logger = input.logger.child({ worker: WorkerName }) and the
caller creates a new DeleteBatchPublishJobDetailsWorker per job; instead, modify
DeleteBatchPublishJobDetailsWorker to store the shared input unchanged and add a
private instance field (e.g., this.logger) that is set to input.logger.child({
worker: WorkerName, jobId: ??? }) inside the constructor (without writing back
to input), then update createDeleteBatchPublishJobDetailsWorker to instantiate a
single DeleteBatchPublishJobDetailsWorker once and expose a bound handler (e.g.,
worker.handler.bind(worker)) to be reused for all jobs; ensure references to
input.logger, DeleteBatchPublishJobDetailsWorker,
createDeleteBatchPublishJobDetailsWorker, handler, and WorkerName are used to
find and update the code.

In `@package.json`:
- Line 93: The package.json override for "msgpackr" appears incorrect; verify
BullMQ's recommended fix (msgpackr@1.1.2) and update the "msgpackr" entry in
package.json (the overrides/block where "msgpackr" is set) to the correct
patched version or to a safe later major (e.g., 2.0.4) only if you confirm
compatibility with BullMQ; after changing the version run npm audit / your SCA
scanner and add the audit results to the PR so we document any vulnerabilities
found.

---

Nitpick comments:
In `@controlplane/src/core/bufservices/subgraph/publishFederatedSubgraphs.ts`:
- Around line 360-367: Change the exported type alias RunBatchPublishParams to
an interface (interface RunBatchPublishParams { ... }) and update any other
nearby object-shaped type aliases in the same area (the similar shape at lines
369-376) to interfaces as well; then add an explicit return type annotation to
the runBatchPublish function signature (e.g., runBatchPublish(...):
Promise<YourReturnType> or appropriate synchronous return type) so both
parameter shapes and function return types follow the repository typing
guidelines. Ensure you keep the same property names (opts, logger, authContext,
disableResolvabilityValidation, items, shouldRefreshSubgraphs) and reference the
existing UpdateSubgraphSchemaData and RouterOptions types when declaring the
interface.

In `@controlplane/src/core/repositories/BatchPublishJobDetailsRepository.ts`:
- Around line 85-88: The silent .catch(() => {}) on the delete of
schema.batchPublishJobDetailsJobLocks in BatchPublishJobDetailsRepository hides
DB errors; change it to catch the error and log it (including the lock id)
without rethrowing so cleanup can't break flow—e.g., in the method containing
the await this.db.delete(...).where(eq(schema.batchPublishJobDetailsJobLocks.id,
lock)), replace the empty catch with catch(err => (this.logger ??
console).error(`Failed to delete lock ${lock}`, err)) or use the repository's
existing logger instance to record the error and context.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 69575bd1-4e53-401c-bdc1-f2fe916a8aa0

📥 Commits

Reviewing files that changed from the base of the PR and between f2f5502 and 74b0e9c.

⛔ Files ignored due to path filters (2)
  • connect-go/gen/proto/wg/cosmo/platform/v1/platform.pb.go is excluded by !**/*.pb.go, !**/gen/**
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (14)
  • connect/src/wg/cosmo/platform/v1/platform_pb.ts
  • controlplane/migrations/0142_hot_sphinx.sql
  • controlplane/migrations/meta/0142_snapshot.json
  • controlplane/migrations/meta/_journal.json
  • controlplane/src/core/bufservices/subgraph/publishFederatedSubgraphs.ts
  • controlplane/src/core/build-server.ts
  • controlplane/src/core/repositories/BatchPublishJobDetailsRepository.ts
  • controlplane/src/core/repositories/SubgraphRepository.ts
  • controlplane/src/core/routes.ts
  • controlplane/src/core/workers/DeleteBatchPublishJobDetailsWorker.ts
  • controlplane/src/db/models.ts
  • controlplane/src/db/schema.ts
  • package.json
  • proto/wg/cosmo/platform/v1/platform.proto

Comment thread controlplane/migrations/0142_hot_sphinx.sql Outdated
Comment thread controlplane/src/core/workers/DeleteBatchPublishJobDetailsWorker.ts
Comment thread controlplane/src/core/workers/DeleteBatchPublishJobDetailsWorker.ts
Comment thread controlplane/src/core/workers/DeleteBatchPublishJobDetailsWorker.ts
Comment thread package.json Outdated
@wilsonrivera wilsonrivera changed the title Wilson/eng 9724 controlpanel move to a accept first strategy for batch [feat] controlpanel move to a accept first strategy for batch Jun 12, 2026
@wilsonrivera wilsonrivera changed the title [feat] controlpanel move to a accept first strategy for batch feat: controlpanel move to a accept first strategy for batch Jun 12, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
controlplane/test/test-util.ts (1)

160-191: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Expose the new queue in SetupTest return to complete the test contract.

deleteBatchPublishJobDetailsQueue is instantiated (Line 160) and passed to routes (Line 191), but it is not returned in SetupTest().queues (Line 417 onward). This leaves tests unable to access/control the new queue even though this layer’s goal is to expose it in test setup.

Proposed fix
   return {
     client: platformClient,
     nodeClient,
     server,
     users,
     blobStorage,
     baseAddress: addr,
     keycloakClient,
     authenticator,
     mailerClient,
     realm,
     queues: {
       readmeQueue,
       deleteOrganizationQueue,
       deleteOrganizationAuditLogsQueue,
       deactivateOrganizationQueue,
       deleteUserQueue,
       reactivateOrganizationQueue,
+      deleteBatchPublishJobDetailsQueue,
     },
   };
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@controlplane/test/test-util.ts` around lines 160 - 191, The new queue
instance deleteBatchPublishJobDetailsQueue is created and wired into routes but
not exposed in the SetupTest return value, so update the SetupTest() return to
include deleteBatchPublishJobDetailsQueue in the queues object (alongside
readmeQueue, deleteOrganizationQueue, etc.); if there is a Queues type/interface
used in the return, add deleteBatchPublishJobDetailsQueue to that type as well
so tests can access and control the queue.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@controlplane/test/test-util.ts`:
- Around line 160-191: The new queue instance deleteBatchPublishJobDetailsQueue
is created and wired into routes but not exposed in the SetupTest return value,
so update the SetupTest() return to include deleteBatchPublishJobDetailsQueue in
the queues object (alongside readmeQueue, deleteOrganizationQueue, etc.); if
there is a Queues type/interface used in the return, add
deleteBatchPublishJobDetailsQueue to that type as well so tests can access and
control the queue.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: a97937b8-8a0f-407b-b6f3-ffae8da57bfa

📥 Commits

Reviewing files that changed from the base of the PR and between 8f6b88a and e491d4c.

📒 Files selected for processing (1)
  • controlplane/test/test-util.ts

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@controlplane/src/core/bufservices/subgraph/getBatchPublishJobStatus.ts`:
- Around line 38-56: The code initializes jobStatus to
BatchPublishJobStatus.PENDING and then switches on jobDetails?.status, which
leaves PENDING when jobDetails is undefined; change getBatchPublishJobStatus so
it first checks if jobDetails is falsy and sets jobStatus to a non-misleading
value (e.g., BatchPublishJobStatus.UNKNOWN or a NOT_FOUND/UNAVAILABLE enum
entry) before the switch, or remove the PENDING default and only set
PENDING/PROCESSING/FAILED/COMPLETED inside the switch; update any callers/return
paths to use that UNKNOWN/NOT_FOUND status to avoid showing a non-existent job
as PENDING.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 5650a2df-9d87-4cc5-ade4-0ac4734b1aec

📥 Commits

Reviewing files that changed from the base of the PR and between e491d4c and bb7610c.

⛔ Files ignored due to path filters (2)
  • connect-go/gen/proto/wg/cosmo/platform/v1/platform.pb.go is excluded by !**/*.pb.go, !**/gen/**
  • connect-go/gen/proto/wg/cosmo/platform/v1/platformv1connect/platform.connect.go is excluded by !**/gen/**
📒 Files selected for processing (6)
  • connect/src/wg/cosmo/platform/v1/platform-PlatformService_connectquery.ts
  • connect/src/wg/cosmo/platform/v1/platform_connect.ts
  • connect/src/wg/cosmo/platform/v1/platform_pb.ts
  • controlplane/src/core/bufservices/PlatformService.ts
  • controlplane/src/core/bufservices/subgraph/getBatchPublishJobStatus.ts
  • proto/wg/cosmo/platform/v1/platform.proto
✅ Files skipped from review due to trivial changes (2)
  • connect/src/wg/cosmo/platform/v1/platform_connect.ts
  • connect/src/wg/cosmo/platform/v1/platform-PlatformService_connectquery.ts

Comment thread controlplane/src/core/bufservices/subgraph/getBatchPublishJobStatus.ts Outdated
@wilsonrivera
wilsonrivera marked this pull request as ready for review June 12, 2026 10:00
@wilsonrivera
wilsonrivera requested review from a team as code owners June 12, 2026 10:00
…t-first-strategy-for-batch

# Conflicts:
#	connect-go/gen/proto/wg/cosmo/platform/v1/platform.pb.go
#	connect/src/wg/cosmo/platform/v1/platform-PlatformService_connectquery.ts
#	connect/src/wg/cosmo/platform/v1/platform_connect.ts
#	controlplane/test/test-util.ts

@comatory comatory left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did a quick pass on this, mostly not sure about the new dependency.
I think it'd be better to do synchronous review on this one.

Comment thread controlplane/src/redlock.d.ts
Comment thread controlplane/src/redlock.d.ts
Comment thread controlplane/package.json
Comment thread package.json Outdated
…t-first-strategy-for-batch

# Conflicts:
#	controlplane/migrations/meta/0142_snapshot.json
#	controlplane/migrations/meta/_journal.json
#	controlplane/package.json
#	controlplane/src/core/build-server.ts
#	pnpm-lock.yaml

@comatory comatory left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just few observations, otherwise looks fine to me 👍

Comment thread controlplane/src/core/workers/DeleteBatchPublishJobDetailsWorker.ts
Comment thread controlplane/src/core/workers/DeleteBatchPublishJobDetailsWorker.ts
Comment thread controlplane/test/subgraph/batch-publish-subgraphs.test.ts
@github-actions github-actions Bot added the cli label Jun 16, 2026
@wilsonrivera
wilsonrivera merged commit f54ef2a into main Jun 16, 2026
56 checks passed
@wilsonrivera
wilsonrivera deleted the wilson/eng-9724-controlpanel-move-to-a-accept-first-strategy-for-batch branch June 16, 2026 19:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants