Skip to content

[Production] Release 2026-07-01 - #114

Merged
wasimxyz merged 4 commits into
productionfrom
staging
Jul 2, 2026
Merged

[Production] Release 2026-07-01#114
wasimxyz merged 4 commits into
productionfrom
staging

Conversation

@wasimxyz

@wasimxyz wasimxyz commented Jul 2, 2026

Copy link
Copy Markdown
Member

No description provided.

wasimxyz and others added 4 commits July 1, 2026 12:45
* Add script to clear run/file records while preserving instruments and watchers

Adds web/scripts/clear-run-file-records.ts (npm run db:clear-runs) to wipe
run and file records from a remote database ahead of production cutover,
keeping instruments and watchers so lab PCs stay movable between
environments. Dry-run by default, requires --confirm to delete, and does
not touch S3.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Document all web/scripts entries in scripts README

Adds sections for seed-database, process-seeded-fixtures, and
clear-run-file-records, plus a helper-modules list, so every runnable
script and internal helper is covered.

Co-authored-by: Cursor <cursoragent@cursor.com>

* chore: Ignore .vscode/

* Add a full-width preview deployment banner so reviewers know they are not on production.

Uses Vercel system env vars for the branch name and a link back to production, with layout offsets so the fixed sidebar and auth pages are not covered.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
…112)

Runs `npm run db:migrate` against the environment's Render database when
a PR merges into `staging` or `production` and touches `web/drizzle/`.
Uses per-environment GitHub secrets; production is gated on a required-
reviewer environment protection rule.

Co-authored-by: Cursor <cursoragent@cursor.com>
* Move Slack channel webhook from env var to admin settings.

Store the incoming webhook URL in a DB singleton editable under Settings >
Notifications, replacing SLACK_WEBHOOK_URL for org-wide run notifications.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Validate Slack webhook URL client-side with shared Zod schemas.

Reuse the same shape checks on the form and API so invalid URLs are
caught inline and Save stays disabled until the value passes.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Address review feedback on Slack channel webhook settings

Fix an SSR/client hydration mismatch on the masked webhook input by
randomising the decoy length after hydration, drop the deprecated Zod
`.url()` in favour of the existing regex refinement, dedupe webhook
validation through `isValidSlackWebhookUrl`, and reuse
`getSlackChannelConfigForAdmin` in the API route.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Manual-mode upload-queue polling ran on the heartbeat tick, so a slow or
large upload delayed heartbeats and the dashboard flagged busy watchers as
offline (prompting operator restarts). On stop, a long upload could also
outlive the heartbeat join and write to the state DB after close, raising
"Cannot operate on a closed database".

Introduce `UploadQueueWorker`, a long-lived thread that owns the poll loop
and shares a stop event with `Uploader` so shutdown can interrupt the retry
backoff and abort between queued files. `stop_runtime` now stops the worker
before closing the state DB, skipping the close if it can't stop in time,
restoring the writer-threads-joined-before-close invariant.

Bumps the watcher version to 0.4.0.

Co-authored-by: Cursor <cursoragent@cursor.com>
@wasimxyz wasimxyz self-assigned this Jul 2, 2026
@vercel

vercel Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

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

Project Deployment Actions Updated (UTC)
data-hub Ready Ready Preview, Comment Jul 2, 2026 12:21am

Request Review

@wasimxyz
wasimxyz merged commit bb3b1dd into production Jul 2, 2026
13 of 16 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