Skip to content

[codex] Structure desktop backend settings read errors#3379

Merged
juliusmarminge merged 1 commit into
mainfrom
codex/desktop-backend-configuration-errors
Jun 20, 2026
Merged

[codex] Structure desktop backend settings read errors#3379
juliusmarminge merged 1 commit into
mainfrom
codex/desktop-backend-configuration-errors

Conversation

@juliusmarminge

@juliusmarminge juliusmarminge commented Jun 20, 2026

Copy link
Copy Markdown
Member

Summary

  • replace the exists/read fallback pair with one race-free read
  • treat only NotFound as an expected missing settings file
  • log other read failures as a structured Schema error with the settings path and exact platform cause while preserving the existing defaults fallback

Verification

  • vp test apps/desktop/src/backend/DesktopBackendConfiguration.test.ts (5 passed)
  • vp check (passes; 20 existing warnings)
  • vp run typecheck

Note

Low Risk
Localized desktop bootstrap config read path; behavior on missing files is unchanged and failures still degrade to defaults with better observability.

Overview
Desktop backend config now loads persisted OTLP settings with a single readFileString instead of exists plus read, avoiding a race when the file appears or disappears between checks.

Missing settings are handled only when the read fails with NotFound; other filesystem errors (e.g. permission denied) emit a structured DesktopBackendObservabilitySettingsReadError via Effect.logWarning with component, settingsPath, and the platform cause, then still fall back to empty observability defaults so startup is unchanged.

A new test asserts that behavior on read failure: bootstrap URLs stay undefined and the logged error matches the path and cause.

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

Note

Structure desktop backend observability settings read errors with DesktopBackendObservabilitySettingsReadError

  • Adds a new DesktopBackendObservabilitySettingsReadError Schema tagged error class in DesktopBackendConfiguration.ts with settingsPath and cause fields, replacing the previous generic string warning log.
  • When reading persisted observability settings fails, non-NotFound errors (e.g. PermissionDenied) now log a structured warning annotated with component: desktop-backend-configuration; NotFound errors return empty settings silently.
  • Removes the FileSystem.exists pre-check, instead attempting readFileString directly and branching on the error reason tag.
  • Adds a test in DesktopBackendConfiguration.test.ts that injects a failing FileSystem layer and asserts the structured error is logged with the expected fields.

Macroscope summarized fc020f5.

Co-authored-by: codex <codex@users.noreply.github.com>
@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: 959386f2-073c-4007-9ede-0b66dae60c32

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/desktop-backend-configuration-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:M 30-99 changed lines (additions + deletions). labels Jun 20, 2026
@macroscopeapp

macroscopeapp Bot commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved

Refactors error handling to use structured error classes with better context for debugging. Runtime behavior is preserved - read failures still gracefully return empty settings. Original file author with comprehensive test coverage.

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

@juliusmarminge juliusmarminge merged commit 53a477c into main Jun 20, 2026
16 checks passed
@juliusmarminge juliusmarminge deleted the codex/desktop-backend-configuration-errors branch June 20, 2026 18:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 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