Conversation
…nment A machine that turns telemetry off for every other process on it expects one more process to join in without being told twice, and T3 Code kept exporting anyway. Its own name is read first so getting T3 Code's telemetry back does not mean unsetting a variable the rest of the machine depends on. Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
…ean what it looks like The specification asks for a warning whenever a boolean value other than true or false is read, because being silently read as the opposite of its apparent meaning is the whole hazard of these values. T3 Code's own name also answered to a narrower set of values than every other T3CODE_ boolean in the codebase. Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This PR adds a cross-cutting environment-controlled kill switch that changes existing server and desktop telemetry export behavior and propagates across the WSL boundary. It also introduces static-analysis suppression directives, warranting human review. You can add or adjust custom eligibility rules. Learn more. |
|
Understand this PR’s impact Explore downstream dependencies and potential security impact with 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 (17)
Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughThe pull request adds shared OpenTelemetry kill-switch parsing. Server and desktop endpoint resolution now honor the disabled state, log parsing warnings, forward the variables through WSL, and include test coverage and operational documentation. ChangesOpenTelemetry export kill switch
Priority: ⬇️ Low Estimated code review effort: 4 (Complex) | ~45 minutes Change: Feature Sequence Diagram(s)sequenceDiagram
participant Environment
participant ServerConfig
participant ObservabilityLive
participant OTLPExporter
Environment->>ServerConfig: Provide OpenTelemetry kill-switch variables
ServerConfig->>ServerConfig: Resolve disabled state and OTLP URLs
ServerConfig->>ObservabilityLive: Provide otelEnvironment and endpoints
ObservabilityLive->>ObservabilityLive: Log warnings
ObservabilityLive-->>OTLPExporter: Configure enabled or omitted exports
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
The list reads as though OpenTelemetry defined it. It does not: the specification recognizes one true spelling and forbids adding more, so these are Config.Boolean's literals and apply only to T3 Code's own name. Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
…at imposes it The narrow value set on OTEL_SDK_DISABLED is not a T3 Code convention, so it should not read as one: it is the specification forbidding implementations from accepting anything but the string true, and that is what an operator needs to know to stop trying OTEL_SDK_DISABLED=1. Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
A reviewer read the trim as accidental, and the answer is worth keeping: padding is not something the operator typed, so dropping it before the comparison is what makes a value mean what it says. Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
There was a problem hiding this comment.
All clear
Posted via Macroscope — Effect Service Conventions
|
All clear Posted via Macroscope — Effect Service Conventions |
The rule about which strings are a yes belongs in a value object rather than in the reader that happens to need it, and the spec rule and ours then read the same way instead of looking like one decision. Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
A switch that silences this process while the server it launched keeps exporting is worse than no switch, and nothing crosses wsl.exe that WSLENV does not declare. Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
|
@juliusmarminge send the 🐶 doggy out! |
OTEL_SDK_DISABLEDis only read inside the Effect library'slayerFromConfig, and T3 Code builds each exporter explicitly instead.OTEL_SDK_DISABLEDfrom a shell profile is common, so T3 Code's own name is read first. Without a name of its own the only way to get T3 Code's telemetry back would be to unset a variable the rest of the machine depends on.trueand forbids implementations from extending that, soOTEL_SDK_DISABLED=1has to leave export running. It also asks for a warning when that happens, because a value being read as the opposite of what it looks like is the whole hazard of these variables. T3 Code's own name is not bound by that and accepts the same values as every otherT3CODE_*boolean.Summary by CodeRabbit
New Features
T3CODE_OTEL_SDK_DISABLED, which takes precedence overOTEL_SDK_DISABLED.Bug Fixes
Documentation