Skip to content

[codex] Structure mobile cloud-link failures#3320

Merged
juliusmarminge merged 5 commits into
codex/redact-dpop-request-targetfrom
codex/mobile-cloud-link-errors
Jun 21, 2026
Merged

[codex] Structure mobile cloud-link failures#3320
juliusmarminge merged 5 commits into
codex/redact-dpop-request-targetfrom
codex/mobile-cloud-link-errors

Conversation

@juliusmarminge

@juliusmarminge juliusmarminge commented Jun 20, 2026

Copy link
Copy Markdown
Member

Summary

  • replace the generic mobile cloud-link error bucket and constructor factories with structured Schema errors
  • promote decoded relay errors, environment API failures, and trace IDs through a value-adding static mapper while retaining each exact cause chain
  • represent environment ID, endpoint, and provider mismatches with typed expected/actual attributes
  • type synchronous URL/client initialization failures instead of letting them escape as defects
  • remove cause-derived development messages and the adjacent relay-error switch

Validation

  • vp test run apps/mobile/src/features/cloud/linkEnvironment.test.ts (21 tests)
  • vp run lint:mobile
  • vp check (passes with 20 pre-existing warnings)
  • vp run typecheck

Overlap


Note

Medium Risk
Error _tag values and user-visible messages change across link/list/connect/status flows; UI or logging that matched old URL-embedded strings or a single CloudEnvironmentLinkError tag needs updating.

Overview
Replaces the single CloudEnvironmentLinkError bucket in mobile cloud linking with a Schema.Union of tagged errors and removes URL-heavy, dev-only, and relay-string message builders.

CloudEnvironmentLinkOperationError now records an action, optional environmentId, redacted URL diagnostics via getUrlDiagnostics (length/protocol/hostname only), nested relayError / environmentError, and traceId, with stable user-facing messages like Could not {action} for environment "{id}". Mismatch cases use dedicated types (CloudEnvironmentIdMismatchError, CloudEnvironmentEndpointMismatchError, CloudEnvironmentEndpointProviderMismatchError, CloudEnvironmentLocalBearerRequiredError, CloudRelayUrlNotConfiguredError) with expected/actual fields instead of generic strings.

Synchronous throws for URL parsing and HTTP client setup are routed through Effect.try into operation errors. Per-environment statusError strings now come from these typed message getters. Tests assert secret redaction in serialization and updated _tag / field shapes; isCloudEnvironmentLinkError narrows the union.

Reviewed by Cursor Bugbot for commit d0671a3. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Replace generic cloud link errors with structured, action-specific error types in mobile

  • Introduces several new tagged error classes in linkEnvironment.ts: CloudEnvironmentLinkOperationError, CloudRelayUrlNotConfiguredError, CloudEnvironmentLocalBearerRequiredError, CloudEnvironmentIdMismatchError, CloudEnvironmentEndpointMismatchError, and CloudEnvironmentEndpointProviderMismatchError.
  • All error types carry structured diagnostics (action label, redacted URL fields like protocol/hostname/input-length, traceId, relay/environment error bodies) instead of raw error strings.
  • Exports a CloudEnvironmentLinkError union type and isCloudEnvironmentLinkError guard so callers can reliably discriminate all link-related failures.
  • Behavioral Change: Every failure path in linkEnvironmentToCloud, connectRelayManagedEnvironment, listCloudEnvironments, and getCloudEnvironmentStatus now emits a different _tag and message format than before; callers matching on previous error shapes will need updating.

Macroscope summarized d0671a3.

@coderabbitai

coderabbitai Bot commented Jun 20, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: c198374f-00a5-4982-b0a7-6e8cff91c2e1

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/mobile-cloud-link-errors

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

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL 500-999 changed lines (additions + deletions). labels Jun 20, 2026
@macroscopeapp

macroscopeapp Bot commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved

This PR refactors error handling to use structured error types and redacts URL secrets from error diagnostics - a security improvement. The core cloud-linking business logic is unchanged; only error construction and formatting changes.

You can customize Macroscope's approvability policy. Learn more.

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Jun 20, 2026
@macroscopeapp macroscopeapp Bot dismissed their stale review June 20, 2026 14:25

Dismissing prior approval to re-evaluate fb67183

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Jun 20, 2026
@juliusmarminge juliusmarminge force-pushed the codex/mobile-cloud-link-errors branch from fb67183 to 21bfa07 Compare June 20, 2026 16:56
@juliusmarminge juliusmarminge changed the base branch from main to codex/redact-dpop-request-target June 20, 2026 16:56
@macroscopeapp macroscopeapp Bot dismissed their stale review June 20, 2026 16:56

Dismissing prior approval to re-evaluate 21bfa07

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Jun 20, 2026
@juliusmarminge juliusmarminge force-pushed the codex/redact-dpop-request-target branch from b87e64a to 3167aeb Compare June 20, 2026 19:21
@macroscopeapp macroscopeapp Bot dismissed their stale review June 20, 2026 20:12

Dismissing prior approval to re-evaluate 9a2733c

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Jun 20, 2026
@juliusmarminge juliusmarminge force-pushed the codex/redact-dpop-request-target branch from 6eba786 to aacb560 Compare June 20, 2026 22:40
@juliusmarminge juliusmarminge force-pushed the codex/mobile-cloud-link-errors branch from 9a2733c to e9c868a Compare June 20, 2026 22:46
@macroscopeapp macroscopeapp Bot dismissed their stale review June 20, 2026 22:46

Dismissing prior approval to re-evaluate e9c868a

@juliusmarminge juliusmarminge force-pushed the codex/redact-dpop-request-target branch from aacb560 to 77e5b36 Compare June 20, 2026 22:49
@juliusmarminge juliusmarminge force-pushed the codex/mobile-cloud-link-errors branch from e9c868a to 8163b74 Compare June 20, 2026 22:51
@juliusmarminge juliusmarminge force-pushed the codex/redact-dpop-request-target branch from 77e5b36 to 6bc2561 Compare June 20, 2026 23:10
@juliusmarminge juliusmarminge force-pushed the codex/mobile-cloud-link-errors branch 2 times, most recently from b954b21 to 296e9bb Compare June 20, 2026 23:14
@juliusmarminge juliusmarminge force-pushed the codex/redact-dpop-request-target branch from 6bc2561 to 71f9ff5 Compare June 20, 2026 23:20
@juliusmarminge juliusmarminge force-pushed the codex/mobile-cloud-link-errors branch from 296e9bb to adaf66f Compare June 20, 2026 23:20
@juliusmarminge juliusmarminge force-pushed the codex/redact-dpop-request-target branch from 71f9ff5 to 8bc20f2 Compare June 20, 2026 23:49
@juliusmarminge juliusmarminge force-pushed the codex/mobile-cloud-link-errors branch from adaf66f to 0fcf0f4 Compare June 20, 2026 23:49
@juliusmarminge juliusmarminge force-pushed the codex/redact-dpop-request-target branch from 8bc20f2 to 3f67e2b Compare June 21, 2026 00:08
@juliusmarminge juliusmarminge force-pushed the codex/mobile-cloud-link-errors branch 2 times, most recently from 49b97b4 to 9b6ce56 Compare June 21, 2026 00:21
@juliusmarminge juliusmarminge force-pushed the codex/redact-dpop-request-target branch from 70fdb85 to 5a80908 Compare June 21, 2026 00:21
@juliusmarminge juliusmarminge force-pushed the codex/redact-dpop-request-target branch 2 times, most recently from 553daf6 to ed36096 Compare June 21, 2026 00:38
@juliusmarminge juliusmarminge force-pushed the codex/mobile-cloud-link-errors branch 2 times, most recently from 2a031a9 to b63cfb3 Compare June 21, 2026 01:10
@juliusmarminge juliusmarminge force-pushed the codex/redact-dpop-request-target branch from ed36096 to 15aa01a Compare June 21, 2026 01:10
@juliusmarminge juliusmarminge force-pushed the codex/mobile-cloud-link-errors branch from b63cfb3 to eadf056 Compare June 21, 2026 01:26
@juliusmarminge juliusmarminge force-pushed the codex/redact-dpop-request-target branch 2 times, most recently from bd937be to 517c1ea Compare June 21, 2026 01:38
@juliusmarminge juliusmarminge force-pushed the codex/mobile-cloud-link-errors branch 2 times, most recently from 1830060 to 534fad3 Compare June 21, 2026 01:44
@juliusmarminge juliusmarminge force-pushed the codex/redact-dpop-request-target branch 2 times, most recently from 8d916bc to 7670d78 Compare June 21, 2026 01:50
@juliusmarminge juliusmarminge force-pushed the codex/mobile-cloud-link-errors branch from 534fad3 to 6601ea3 Compare June 21, 2026 01:51
@juliusmarminge juliusmarminge force-pushed the codex/redact-dpop-request-target branch from 7670d78 to 1ed6271 Compare June 21, 2026 02:03
@juliusmarminge juliusmarminge force-pushed the codex/mobile-cloud-link-errors branch from 6601ea3 to 6c8a6b1 Compare June 21, 2026 02:04
@macroscopeapp macroscopeapp Bot dismissed their stale review June 21, 2026 02:04

Dismissing prior approval to re-evaluate 6c8a6b1

@github-actions github-actions Bot added size:XXL 1,000+ changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Jun 21, 2026
@juliusmarminge juliusmarminge force-pushed the codex/redact-dpop-request-target branch from c91fad6 to 9e0c536 Compare June 21, 2026 02:22
juliusmarminge and others added 5 commits June 20, 2026 19:23
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
@juliusmarminge juliusmarminge force-pushed the codex/mobile-cloud-link-errors branch from 6c8a6b1 to d0671a3 Compare June 21, 2026 02:24
@github-actions github-actions Bot added size:XL 500-999 changed lines (additions + deletions). and removed size:XXL 1,000+ changed lines (additions + deletions). labels Jun 21, 2026
@juliusmarminge juliusmarminge merged commit a7d56b3 into codex/redact-dpop-request-target Jun 21, 2026
16 checks passed
@juliusmarminge juliusmarminge deleted the codex/mobile-cloud-link-errors branch June 21, 2026 02:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL 500-999 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant