Skip to content

Hide hardware serial numbers from public surfaces - #730

Merged
Gajesh2007 merged 15 commits into
masterfrom
cursor/hide-serial-numbers-6e44
Aug 25, 2026
Merged

Gajesh2007 merged 15 commits into
masterfrom
cursor/hide-serial-numbers-6e44

Conversation

@Gajesh2007

@Gajesh2007 Gajesh2007 commented Aug 25, 2026 •

Copy link
Copy Markdown
Member

Summary

Removes hardware serial numbers, UDIDs, and raw identity-bearing MDA certificates from public APIs, headers, URLs, UIs, documentation, enrollment, and support reports.

Coordinator/provider internals retain device identity only where required for attestation, MDM checks, and machine lifecycle. Public operations now use opaque IDs and privacy-redacted trust status.

Before

flowchart LR
  subgraph Behavior
    A1[Consumer or browser] --> B1[Public APIs and headers]
    B1 --> C1[Serials, UDIDs, raw MDA chain]
    D1[Enrollment and reports] --> E1[Serial in body, filename, URL, and lookup]
  end
  subgraph Code
    F1[Internal provider records] --> G1[Directly serialized DTOs]
    H1[Doctor] --> I1[Independently loaded key]
    I1 --> J1[Potentially wrong provider match]
  end
Loading

After

flowchart LR
  subgraph Behavior
    A2[Consumer or browser] --> B2[Allowlisted redacted DTOs]
    B2 --> C2[Opaque IDs and trust verdict only]
    D2[Enrollment and reports] --> E2[Identity-free profile and opaque report ID]
  end
  subgraph Code
    F2[Private coordinator identity] --> G2[MDM, attestation, and dedup only]
    H2[Active ProviderLoop signer] --> I2[PID and start-time-bound daemon state]
    I2 --> J2[Doctor matches exact public key without keychain mutation]
  end
Loading

Test plan

  • cd coordinator && go test ./...
  • Live PostgreSQL migration test verifies historical scrubbing and future-write protection
  • cd console-ui && npm test && npx eslint src/ && npm run build
  • cd admin-ui && npm test && npm run lint && npm run build
  • Swift 6.3 parses all changed provider sources and regression tests
  • bash -n scripts/install.sh coordinator/api/install.sh
  • scripts/sync-install-embed.sh check
  • Two independent final reviews passed

Components touched

  • coordinator
  • provider-swift
  • console-ui
  • admin-ui
  • documentation

Protocol and interface changes

  • Public provider deletion now uses opaque provider IDs.
  • Public attestation responses expose only privacy-redacted status.
  • Enrollment requests and profiles contain no hardware identity.
  • Support uploads return opaque report IDs.
  • Legacy ?serial= report uploads return HTTP 426.
  • Consumer-provided serial routing constraints are removed.

Notes for reviewers

  • The log-report migration installs its write guard before scrubbing historical rows, preventing concurrent writes from reintroducing serial metadata.
  • Doctor uses the running daemon’s exact signer identity and validates PID plus process start time.
  • Already-published Git history requires a separate owner-authorized history rewrite; this PR removes identifiers from the current tree without force-rewriting shared history.

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

cursoragent and others added 15 commits August 25, 2026 17:31
Co-authored-by: gajcodex <gajcodex@users.noreply.github.com>
Co-authored-by: gajcodex <gajcodex@users.noreply.github.com>
Co-authored-by: gajcodex <gajcodex@users.noreply.github.com>
Co-authored-by: gajcodex <gajcodex@users.noreply.github.com>
Co-authored-by: gajcodex <gajcodex@users.noreply.github.com>
Co-authored-by: gajcodex <gajcodex@users.noreply.github.com>
Co-authored-by: gajcodex <gajcodex@users.noreply.github.com>
Co-authored-by: gajcodex <gajcodex@users.noreply.github.com>
…numbers-6e44

Co-authored-by: gajcodex <gajcodex@users.noreply.github.com>
Co-authored-by: gajcodex <gajcodex@users.noreply.github.com>
Co-authored-by: gajcodex <gajcodex@users.noreply.github.com>
Co-authored-by: gajcodex <gajcodex@users.noreply.github.com>
Co-authored-by: gajcodex <gajcodex@users.noreply.github.com>
Co-authored-by: gajcodex <gajcodex@users.noreply.github.com>
Co-authored-by: gajcodex <gajcodex@users.noreply.github.com>
@vercel

vercel Bot commented Aug 25, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
d-inference Ready Ready Preview Aug 25, 2026 7:32pm
d-inference-console-ui-dev Ready Ready Preview Aug 25, 2026 7:32pm
d-inference-landing Ready Ready Preview Aug 25, 2026 7:32pm

Request Review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 99fcb69626

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/architecture/operations/routing.md
@Gajesh2007
Gajesh2007 merged commit 3b7c281 into master Aug 25, 2026
24 of 26 checks passed
@Gajesh2007
Gajesh2007 deleted the cursor/hide-serial-numbers-6e44 branch August 25, 2026 20:02
Gajesh2007 added a commit that referenced this pull request Aug 31, 2026
…60822

Brings the test-suite refactor up to date with the 22 commits master
gained since the last sync (#700-#790: Qwen3-VL and Qwen3.8 serving,
first-content deadline admission, MTP-in-the-weights, serial-number
privacy, MLX core 0.32.2, usage-checkpoint fixes).

Every master-side test added or modified inside files this branch
deletes, splits, or rewrites was re-homed into the refactor's successor
suites and lanes rather than dropped, including:

- PrefillDeadlineProductionConfigTests and the Qwen required-tool-choice
  tests into the slimmed EngineV2ProductionWiringTests
- bridgeDeadlineRefusalReleasesRealStaging into
  SSDPrefixCacheReservationTests
- excludesInferenceControls into WatchdogRecoveryTests
- the rewritten #777 MTP config/beta suites into ConfigTests and
  BetaFeaturesTests (MTPConfigTests stays deleted)
- vision/DeepStack/media additions into the split EngineV2Vision* and
  MediaIngest suites
- the #704 writeDeferred provider-writer tests, first-content-budget
  wire test, #730 serial-privacy subtests, and #752 benchmark-control
  tests into their branch successors

Master-added test files were audited against the lane architecture:
the Qwen3.8 production canary trio moved to Live/ (with a #filePath
depth fix), SchedulerPrefillDecision's real-weights suite split out to
Probes/ behind its per-probe gates, and hermetic additions stay in the
default lane. docs/developer/test.md updated to match.

Production-code unions of note: registry.go keeps both the branch's
PrivateOnly/catalog public-listing gates and master's per-model
capability gating; provider_writer.go carries both determinism-seam
families; LaunchAgent forwards the union of both env allowlists;
postgres_model_registry.go extends nil-canonicalization to master's new
required_provider_capabilities column. The branch-side prefill-keepalive
tests were dropped with the feature master removed in #704.

Two master-branch interaction defects fixed so the merged tree is green:
the store contract harness now re-seeds the usage_totals counter row its
truncate wipes (the #665 migration guard treats the bare marker as
corruption), and the #730 log-report migration test restores the pooled
connection's search_path before release.

Submodules: mlx-swift and mlx-swift-lm test branches merged with
master's 0.32.2-era pins; relocated suites verified present.

Verified: go vet + full coordinator/testbed tests green; store contracts
green twice consecutively against real Postgres 16; swift build
--build-tests clean; default Swift lane 2,264 tests in 248 suites all
passing.

This branch had an error being deployed

1 failed and 3 active deployments
benchmarks — 99fcb696 Deployed Aug 25, 2026 by Gajesh2007 via E2E Benchmarks #459
Preview – d-inference-console-ui-dev — 99fcb696 Deployed Aug 25, 2026 by vercel[bot]
Preview – d-inference-landing — 99fcb696 Deployed Aug 25, 2026 by vercel[bot]
Preview – d-inference — 99fcb696 Deployed Aug 25, 2026 by vercel[bot]
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.

3 participants