Skip to content

fix(observability): desktop dev version and web environment match the other services - #23975

Merged
juliusmarminge merged 1 commit into
pingdotgg:mainfrom
yordis:yordis/fix-otel-desktop-dev-version-web-env
Oct 24, 2026
Merged

juliusmarminge merged 1 commit into
pingdotgg:mainfrom
yordis:yordis/fix-otel-desktop-dev-version-web-env

Conversation

@yordis

@yordis yordis commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

Problem

  • A development desktop run reports Electron's own version as its service version, so it cannot be grouped with the server by version.
  • The UI has no deployment.environment.name, so its spans cannot be filtered by tier like the server and desktop main process.

Change

  • An unpackaged desktop reports the app's own version, and the UI reports development under the Vite dev server and production otherwise.

Scope and approval

  • Small, focused fix to resources T3 Code already exports. No new signal or setting.

Verification

  • The new DesktopObservability.test.ts assertion on the exported service.version passes (5 of 5) and fails with the fix reverted. The UI environment line has no test. Format, lint, knip and typecheck pass for the changed scope.
  • vp run check:changed with GIT_CONFIG_GLOBAL=/dev/null GIT_CONFIG_SYSTEM=/dev/null: format, lint, knip and typecheck pass; 1753 tests pass and 2 fail in files this change does not touch (ForgejoSourceControlProvider.test.ts "reads Forgejo jobs that did not run as finished checks" and storageCleanup.test.ts "compares the checked-out branch without a full status"). I did not check those two against a clean upstream/main.

… other services

A dev desktop run reported Electron's own version, and the UI had no deployment.environment.name, so neither could be grouped with the server and desktop main process by version or tier.

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XS 0-9 changed lines (additions + deletions). labels Oct 23, 2026
@yordis
yordis marked this pull request as ready for review October 23, 2026 07:12
@coderabbitai

coderabbitai Bot commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
📥 Commits

Reviewing files that changed from the base of the PR and between 56c365c and d97dd85.

📒 Files selected for processing: 4
  • apps/desktop/src/app/DesktopObservability.test.ts
  • apps/desktop/src/app/DesktopObservability.ts
  • apps/web/src/observability/clientTracing.ts
  • docs/operations/observability.md

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 2 remain after this review.

📝 Walkthrough

Desktop observability uses the package version for unpackaged runs. Web tracing sets the deployment environment to development or production based on the Vite build mode. A desktop test and observability documentation cover these values.

Changes: Observability metadata

Layer / File(s) Summary
Desktop service version
apps/desktop/src/app/DesktopObservability.ts, apps/desktop/src/app/DesktopObservability.test.ts
Unpackaged desktop runs use the desktop package version for service.version. Packaged runs continue to use environment.appVersion. A test checks the version in the exported OTLP log request.
Web deployment environment
apps/web/src/observability/clientTracing.ts, docs/operations/observability.md
The web tracing resource reports development when import.meta.env.DEV is true and production otherwise. The documentation describes this behavior.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Suggested labels: bugfix

Suggested reviewers: t3dotgg

Merge Risk: ⚪ Minimal · up to d97dd

The metadata changes preserve the documented desktop version and web environment classification, with no actionable merge-blocking risk identified.

Pre-merge checks: Passed 4
Check name Status Explanation
Title check Passed The title follows the conventional commit format and names the two changes: the desktop dev service version and the web environment tag. It is specific and matches the changeset. It does not name the …
Description check Passed The description follows the template's Problem, Change, Scope and approval, and Verification sections. The Problem and Change sections state the two fixes clearly. The Scope section says the change is…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title follows the conventional commit format and names the two changes: the desktop dev service version and the web environment tag. It is specific and matches the changeset. It does not name the shared mechanism (OpenTelemetry resource attributes), but the title is accurate and scannable.

Full details: Description check

Explanation

The description follows the template's Problem, Change, Scope and approval, and Verification sections. The Problem and Change sections state the two fixes clearly. The Scope section says the change is a small fix to resources already exported and adds no new signal or setting. The Verification section gives the focused test result, the UI gap, and the repo check output. It reports two unrelated test failures and says they were not checked against upstream/main. It does not list the reproduction steps or environment, and it does not end with the model and harness line the template asks for. Those gaps are minor for a fix this small.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

@macroscopeapp

macroscopeapp Bot commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at d97dd85

Macroscope's review found this PR approvable — This is a focused observability metadata correction: unpackaged desktop runs report the app version, while web spans identify development versus production builds. Packaged behavior, product functionality, APIs, and deployment behavior remain unchanged, and the desktop branch has focused test coverage.

You can add or adjust custom eligibility rules. Learn more.

serviceName: "t3code-web",
attributes: {
"service.namespace": "t3code",
"deployment.environment.name": import.meta.env.DEV ? "development" : "production",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

do we wanna differentaite different stages of production here? development, preview, nightly, stable ? or save that for another attribute? i guess it's already kidna included in service.version

@juliusmarminge
juliusmarminge merged commit bf5ffe8 into pingdotgg:main Oct 24, 2026
33 checks passed
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Oct 24, 2026
## What's Changed
* fix(web): clear stale resource monitor errors after retry by @juliusmarminge in pingdotgg/t3code#24229
* fix(mobile): align draft workspace controls with the composer by @PixPMusic in pingdotgg/t3code#24239
* feat(mobile): thread header minimizes on the Duo while reading back through history by @juliusmarminge in pingdotgg/t3code#24235
* fix(web): center pull request timeline actions by @PixPMusic in pingdotgg/t3code#24259
* fix(server): find the resource monitor when the server runs from its build output by @yordis in pingdotgg/t3code#23965
* fix(pull-requests): list filters narrow on every host that can by @juliusmarminge in pingdotgg/t3code#23922
* fix(pull-requests): a filtered list fills its page instead of waiting for a scroll by @juliusmarminge in pingdotgg/t3code#23923
* feat(pull-requests): label and author filters search the host by @juliusmarminge in pingdotgg/t3code#23924
* fix(mobile): chat and composer chips stay readable in light mode by @flamboh in pingdotgg/t3code#22585
* fix(web): review thread avatars no longer clip in collapsed activity rows by @flamboh in pingdotgg/t3code#23545
* ci: close "needs more info" issues after 7 days without a reply by @juliusmarminge in pingdotgg/t3code#22628
* fix(server): Codex accounts show ChatGPT's current plan names by @flamboh in pingdotgg/t3code#24200
* fix(observability): desktop dev version and web environment match the other services by @yordis in pingdotgg/t3code#23975
* fix(observability): custom resource attributes use the t3code prefix by @yordis in pingdotgg/t3code#23974
* fix(mobile): Home and pull request lists let UIKit own their top inset by @juliusmarminge in pingdotgg/t3code#24284
* fix(mobile): keep the Duo's Home and pull request headers fixed by @juliusmarminge in pingdotgg/t3code#24295
* fix(server): interrupts started by an agent no longer say "by user" in the timeline by @juliusmarminge in pingdotgg/t3code#24299
* ci(relay): deploy labeled PRs to relay preview stages by @juliusmarminge in pingdotgg/t3code#23872
* fix(mobile): HTML links in pull request comments open when tapped by @flamboh in pingdotgg/t3code#22110
* perf(client): avoid full ordering scans for streamed replacements by @juliusmarminge in pingdotgg/t3code#24264
* fix(server): a fork's first /compact compacts its inherited history by @juliusmarminge in pingdotgg/t3code#24172
* fix(server): agent recordings honor the browser frame rate setting by @juliusmarminge in pingdotgg/t3code#23895
* fix(client-runtime): Stop clears commands already finished on the server by @juliusmarminge in pingdotgg/t3code#23814
* fix(web): SSH environments on an older reused remote server explain the version mismatch instead of reconnecting forever by @juliusmarminge in pingdotgg/t3code#23647
* fix(web): keep usage-limit wake action visible by @juliusmarminge in pingdotgg/t3code#23803
* fix(server): reject pairing with an incompatible server protocol by @juliusmarminge in pingdotgg/t3code#23789


**Full Changelog**: pingdotgg/t3code@v0.1.3-nightly.20261023.3592...v0.1.3-nightly.20261024.3604

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.3-nightly.20261024.3604
adampeterhiggins added a commit to adampeterhiggins/t3code that referenced this pull request Oct 24, 2026
* test: delete low-value tests and dead test-only exports (pingdotgg#24058)

* test(server): restore DST scheduling tests deleted in the test snap (pingdotgg#23991)

* test(web): restore project settings permission tests deleted in the test snap (pingdotgg#24011)

* test(mobile): restore clipboard secret-redaction test deleted in the test snap (pingdotgg#23980)

* fix(web): Cmd+B toggles the sidebar unless text is selected (pingdotgg#24063)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): agent-browser and Chrome no longer outlive the agent that started them (pingdotgg#21299)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Theo Browne <me@theo.li>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* test(client-runtime): restore render scheduler tests deleted in the test snap (pingdotgg#23977)

* fix(web): cmd+k search hides subagents and favors recent, whole-word matches (pingdotgg#24032)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* test(lint): new polling loops in tests now fail lint (pingdotgg#23983)

* ci: unused dependency patches fail in check:changed, not after push (pingdotgg#23988)

* fix(desktop): PDFs in the preview can be annotated (pingdotgg#24022)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): instructed compact runs without a bare compaction first (pingdotgg#24008)

Co-authored-by: fixfon <12512757+fixfon@users.noreply.github.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>

* fix(desktop): reduce app crashes when a preview tab's renderer dies during agent screenshots (pingdotgg#24056)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): Stop stops a thread's subagents again (pingdotgg#23886)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(desktop): a stuck quit no longer leaves the app unkillable (pingdotgg#23873)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): keep blockquote text readable in every theme (pingdotgg#24036)

* fix(bitbucket): stop the startup sweep from flooding Bitbucket with 429s (pingdotgg#23889)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): screen readers hear when the open thread starts, needs you or finishes (pingdotgg#23752)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* perf(web): reduce allocations in streaming timeline scans (pingdotgg#23739)

* perf(web): reuse a collator when sorting changed-file trees (pingdotgg#23776)

* perf(scripts): check:changed finishes in about 10 s (pingdotgg#23581)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): size Usage header controls to the available width (pingdotgg#24123)

* perf(server): speed up large terminal clipboard sequences (pingdotgg#23819)

Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(server): make stale CLI service recovery actionable (pingdotgg#23541)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): pasted images show their upload tile instantly (pingdotgg#23832)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>

* fix(server): clean up deleted threads worktrees with subagents (pingdotgg#23900)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): pause periodic PR discovery without foreground clients (pingdotgg#23852)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): meter checkpoint git subprocess attempts (pingdotgg#24218)

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Co-authored-by: Yordis Prieto <yordis.prieto@gmail.com>

* fix(web): clear stale resource monitor errors after retry (pingdotgg#24229)

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Co-authored-by: Yordis Prieto <yordis.prieto@gmail.com>

* fix(mobile): align draft workspace controls with the composer (pingdotgg#24239)

* feat(mobile): thread header minimizes on the Duo while reading back through history (pingdotgg#24235)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): center pull request timeline actions (pingdotgg#24259)

* fix(server): find the resource monitor when the server runs from its build output (pingdotgg#23965)

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Co-authored-by: Theo Browne <me@t3.gg>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Victor Vogel <satsdev@only21mil.xyz>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Yash Singh <saiansh2525@gmail.com>
Co-authored-by: Joseph Vidal <135430578+josephv123@users.noreply.github.com>
Co-authored-by: Theo Browne <me@theo.li>
Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>
Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: fixfon <12512757+fixfon@users.noreply.github.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: Yukun Shan <92423096+nateEc@users.noreply.github.com>
Co-authored-by: Akshar Patel <123344143+AksharP5@users.noreply.github.com>
Co-authored-by: Ben Davis <45952064+bmdavis419@users.noreply.github.com>

* fix(pull-requests): list filters narrow on every host that can (pingdotgg#23922)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(pull-requests): a filtered list fills its page instead of waiting for a scroll (pingdotgg#23923)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* feat(pull-requests): label and author filters search the host (pingdotgg#23924)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(mobile): chat and composer chips stay readable in light mode (pingdotgg#22585)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): review thread avatars no longer clip in collapsed activity rows (pingdotgg#23545)

* ci: close "needs more info" issues after 7 days without a reply (pingdotgg#22628)

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>

* fix(server): Codex accounts show ChatGPT's current plan names (pingdotgg#24200)

* fix(observability): desktop dev version and web environment match the other services (pingdotgg#23975)

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>

* fix(observability): custom resource attributes use the t3code prefix (pingdotgg#23974)

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>

* fix(mobile): Home and pull request lists let UIKit own their top inset (pingdotgg#24284)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(mobile): keep the Duo's Home and pull request headers fixed (pingdotgg#24295)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): interrupts started by an agent no longer say "by user" in the timeline (pingdotgg#24299)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* feat(relay): deploy on-demand preview stages for labeled PRs

Labeled same-repo PRs deploy stage pr-<n> behind the relay-preview environment reviewer gate. Unlabel or close tears the stage down, and a nightly job retries failed teardowns. Runtime-created managed endpoint tunnels and CNAMEs are swept by a PreviewTunnelSweep resource.

Known gaps, tracked as follow-ups: an interrupted preview deploy can leave runtime tunnels behind; repo-level relay secrets still bypass the environment gate until moved.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

* fix(mobile): HTML links in pull request comments open when tapped (pingdotgg#22110)

* perf(client): avoid full ordering scans for streamed replacements (pingdotgg#24264)

* fix(server): a fork's first /compact compacts its inherited history (pingdotgg#24172)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): agent recordings honor the browser frame rate setting (pingdotgg#23895)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(client-runtime): Stop clears commands already finished on the server (pingdotgg#23814)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): SSH environments on an older reused remote server explain the version mismatch instead of reconnecting forever (pingdotgg#23647)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): keep usage-limit wake action visible (pingdotgg#23803)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(server): reject pairing with an incompatible server protocol (pingdotgg#23789)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(mobile): Live Activity stops shouting the running-agent count (pingdotgg#24329)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* feat(usage): include Muse Code session history (pingdotgg#22443)

Co-authored-by: Theo Browne <me@theo.li>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* feat(mobile): add Usage and Settings to workspace navigation (pingdotgg#23841)

* fix(mobile): keep iPad workspace columns aligned while resizing (pingdotgg#24182)

* fix(mobile): no-project threads show a chat bubble instead of a monogram (pingdotgg#21546)

* fix(mobile): stabilize Duo search and portrait navigation (pingdotgg#24206)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(mobile): the unfolded Duo keeps its header in portrait (pingdotgg#24339)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* fix(client-runtime): avoid duplicate handoff previews during startup (pingdotgg#24349)

* fix(mobile): Usage and Settings use the glass header and the Duo rail (pingdotgg#24348)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* perf(server): coalesce superseded streaming text updates (pingdotgg#24267)

* fix(server): stop flooding analytics with successful MCP tool calls (pingdotgg#24287)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* feat(search): Cmd+K finds the right thread first, with indexed message search (pingdotgg#24343)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

---------

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Co-authored-by: Theo Browne <me@t3.gg>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Joseph Vidal <135430578+josephv123@users.noreply.github.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Theo Browne <me@theo.li>
Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>
Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: fixfon <12512757+fixfon@users.noreply.github.com>
Co-authored-by: Yash Singh <saiansh2525@gmail.com>
Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com>
Co-authored-by: Yukun Shan <92423096+nateEc@users.noreply.github.com>
Co-authored-by: Akshar Patel <123344143+AksharP5@users.noreply.github.com>
Co-authored-by: Ben Davis <45952064+bmdavis419@users.noreply.github.com>
Co-authored-by: Yordis Prieto <yordis.prieto@gmail.com>
Co-authored-by: Alex <me@pixp.cc>
Co-authored-by: Victor Vogel <satsdev@only21mil.xyz>
Co-authored-by: oliver <97427849+flamboh@users.noreply.github.com>
Co-authored-by: Wiktor Golicz <56449542+Wiktor102@users.noreply.github.com>
Pipyakas pushed a commit to Pipyakas/t3code that referenced this pull request Oct 24, 2026
… other services (pingdotgg#23975)

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
(cherry picked from commit bf5ffe8)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS 0-9 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.

2 participants