fix(observability): a malformed OTEL_RESOURCE_ATTRIBUTES no longer stops startup - #13469
Conversation
…ops startup Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a focused observability startup fix that sanitizes malformed OTEL_RESOURCE_ATTRIBUTES values while preserving existing behavior when the variable is unset or valid. Server and desktop integrations are limited to existing telemetry layers, with tests covering the new parsing and fallback behavior. You can add or adjust custom eligibility rules. Learn more. |
… own Config Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
… warning Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
There was a problem hiding this comment.
All clear
Posted via Macroscope — Effect Service Conventions
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: pingdotgg/t3code/.coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (4)
Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughThe shared OTel environment now parses ChangesOTel Resource Attributes
Estimated code review effort: 2 (Simple) | ~15 minutes Sequence Diagram(s)sequenceDiagram
participant OtelEnvironment
participant DesktopObservability
participant ServerObservability
participant OtlpResource
OtelEnvironment->>DesktopObservability: parsed resourceAttributes
DesktopObservability->>OtlpResource: provide resourceAttributesLayer
ServerObservability->>OtlpResource: provide configured resourceAttributesLayer
Suggested reviewers: Merge Risk: ⚪ Minimal · up to The change appears ready to merge after normal checks: malformed resource attributes are ignored with a warning, while accepted attributes remain available to telemetry exporters. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
…e repo names layers Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Dismissing prior approval to re-evaluate 9a8ed8e
| Config.String(RESOURCE_ATTRIBUTES).pipe( | ||
| // The value is left out because attributes can carry credentials. |
There was a problem hiding this comment.
nit: seems like a usecase for Config.Redacted then, no?
## What's Changed * lint/unknown and static by @juliusmarminge in pingdotgg/t3code#13366 * fix(web): web colors come from theme tokens by @juliusmarminge in pingdotgg/t3code#13371 * fix(web): appearance classes use theme tokens and scale values by @juliusmarminge in pingdotgg/t3code#13397 * fix(server): keep Codex's reset answer when the re-probe fails by @juliusmarminge in pingdotgg/t3code#13363 * fix(mobile): branch search finds remote and space-typed branches by @Bil0000 in pingdotgg/t3code#13454 * chore(ci): use GPT 6 Sol Max for check agents by @juliusmarminge in pingdotgg/t3code#13473 * feat(server): show and redeem Claude banked resets by @Bil0000 in pingdotgg/t3code#13118 * fix(observability): a malformed OTEL_RESOURCE_ATTRIBUTES no longer stops startup by @yordis in pingdotgg/t3code#13469 * fix(antigravity): let Stop end commands that outlived their turn by @juliusmarminge in pingdotgg/t3code#13388 * fix(web,mobile): drop the baked-in tile from the Antigravity icon by @flamboh in pingdotgg/t3code#13373 * fix(marketing): use the official OpenCode and Antigravity logos by @flamboh in pingdotgg/t3code#13365 * fix(acp): keep one answer when a running tool reports progress by @juliusmarminge in pingdotgg/t3code#13386 * feat(web): run shell commands from chat in the thread terminal by @Bil0000 in pingdotgg/t3code#13060 * fix(antigravity): keep Windows runtime unpacking under MAX_PATH by @juliusmarminge in pingdotgg/t3code#13389 * fix(codex): the protocol generator runs again on Effect rc.115 by @juliusmarminge in pingdotgg/t3code#13480 * feat(codex): require Codex 0.156 and regenerate its protocol by @juliusmarminge in pingdotgg/t3code#13481 * feat(threads): add per-thread auto-settle switch by @t3dotgg in pingdotgg/t3code#11846 * fix(web): working and monitoring threads fade in the sidebar again by @t3dotgg in pingdotgg/t3code#13506 * fix(server): streamed section titles wait for the text under them by @t3dotgg in pingdotgg/t3code#13504 * fix(web): normalize disabled control opacity by @t3-code[bot] in pingdotgg/t3code#11441 **Full Changelog**: pingdotgg/t3code@v0.0.43-nightly.20260924.2213...v0.0.43-nightly.20260924.2223 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.43-nightly.20260924.2223
OTEL_RESOURCE_ATTRIBUTESthat cannot be percent-decoded (for exampleteam=%zz) makes the exporter's own read of that variable die, so the server or desktop app fails to start over an optional tag.Config.Recordschema the exporters use, so "accepted" means exactly what they would have accepted, and a list they would have died on is ignored as a whole with a warning naming it.Summary by CodeRabbit
OTEL_RESOURCE_ATTRIBUTESand applied to application telemetry, including logs, traces, and metrics.