Skip to content

[Production] Release 2026-07-16 - #153

Merged
wasimxyz merged 3 commits into
productionfrom
staging
Jul 16, 2026
Merged

[Production] Release 2026-07-16#153
wasimxyz merged 3 commits into
productionfrom
staging

Conversation

@wasimxyz

Copy link
Copy Markdown
Member

No description provided.

wasimxyz and others added 3 commits July 15, 2026 08:33
* Generate a Click CLI catalog for the docs site.

Walk the watcher Click tree into JSON so data-hub-docs can render and export the command reference without hand-maintaining flag tables.

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

* Wire CLI catalog snapshot writer and tighten its tests.

Route `main()` through `write_cli_catalog_snapshot` (was dead code) via a
shared serializer, clarify that the tests are walker smoke checks rather than
a docs-snapshot drift guard, and replace the tautological default-path test
with determinism and write round-trip coverage.

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

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
* Derive file S3 location server-side on upload (ENG-1450)

The PATCH /api/v1/files/:fileId endpoint accepted arbitrary s3_bucket and
s3_key values, letting any files:update caller repoint a record at any S3
object. Downstream download redirects and Lambda reprocessing trusted those
DB values, enabling data tampering and unauthorized object access.

The watcher only ever echoed back the canonical bucket/key that
request-upload-url already computed, so these fields carried no new
information. Drop them from patchFileBody and rebuild the canonical
{instrumentId}/{runId}/{filename} key from trusted DB state on the uploaded
transition instead of validating client input.

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

* Trim ENG-1450 comments to the 3-line inline limit

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

* Remove Linear ticket references from comments and docs

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

* Stop sending server-derived S3 fields from the watcher

The upload PATCH no longer sends s3_bucket / s3_key now that the server
derives the canonical S3 location itself; the watcher only reports status
and content type. Bump the watcher to 0.5.1.

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

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
* Fix path traversal in watcher upload queue (ENG-1452)

Malicious runs could set detected_files[].relative_path to a `..` or
absolute path; the watcher joined it onto its watch directory and
uploaded the resolved file, exfiltrating arbitrary files from the
instrument PC.

Server-side: reject `..` segments, absolute prefixes, and null bytes in
relative_path/filename (both POSIX and Windows separators).
Watcher: defense-in-depth containment check so queued paths escaping the
watch directory are refused and cancelled instead of read.

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

* Push pagination page changes to browser history

Add `history: "push"` to the pagination nuqs option so paging back and
forth is reflected in browser history and the back button works.

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

* Guard request-upload-url filename against path traversal

Apply the same safe-relative-path check to `requestUploadUrlBody.filename`
that `detected_files` already use: the filename is persisted as
`relative_path` and joined into the S3 key, so an unchecked `..`/absolute
value could reach the watcher's upload queue. Add integration coverage for
the rejection and drop internal ticket references from comments.

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

* Bump watcher version to 0.5.2

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

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
@wasimxyz wasimxyz self-assigned this Jul 16, 2026
@wasimxyz
wasimxyz merged commit 4bb3be2 into production Jul 16, 2026
16 checks passed
@vercel

vercel Bot commented Jul 16, 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 16, 2026 11:50pm

Request Review

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