Open
Conversation
f726148 to
2758a44
Compare
2758a44 to
da3d8dc
Compare
620ce09 to
495e0c1
Compare
- Bundle activation tracer methods (setAuthState, traceDeploymentInit) into a span-scoped ActivationTracer interface; drop instance-state from ActivationTelemetry - Mirror the same shape for remote.setup: RemoteSetupTracer exposes phase() and is owned by RemoteSetupTelemetry; remote.ts no longer touches Span directly - Build RemoteSetupContext after auth retrieval (no empty-default mutation); group setup args under args; rename baseUrlRaw -> baseUrl - Reuse AuthorityParts from util instead of synthesizing a local alias - Drop redundant post-download recordDownloadedBytes and the BinaryDownloadResult/DownloadResult types; per-chunk progress already records the final value - Adopt createTestTelemetryService helper in commandManager.test.ts
495e0c1 to
374c156
Compare
Collaborator
Author
|
/coder-agents-review |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
authState, duration, and result; activation no longer emits granular phase properties.activation.deployment_init.remote.setupwith hierarchical child phases:auth_retrieval,workspace_lookup,workspace_ready,agent_ready, andssh_config_write.downloadedBytesonce response body bytes are written.Notes
remote.setup.workspace_lookuprather thanremote.setup.phasewith a phase property.RemoteSetupTelemetryexposes a single typedphase(...)helper instead of one method per phase.cli.download.reasoncurrently supportsmissingandversion_mismatch; there is no true forced-download path in the current CLI manager flow.cli.download.measurements.downloadedBytesis emitted when bytes are written, including failed downloads that wrote a partial body; it is omitted when the server returns HTTP 304 because no response body bytes are written.Tests
pnpm lintpnpm typecheckpnpm test:extension ./test/unit/core/cliManager.test.tspnpm test:extension ./test/unit/core/cliManager.concurrent.test.tspnpm test:extension ./test/unit/telemetry/service.test.tspnpm format:checkCloses #904.
Implementation plan and decisions
Decisions
remote.setup.workspace_lookup, notremote.setup.phasewith aphaseproperty.activation.deployment_init.authState,durationMs, andresult.downloadedBytesas bytes are written from an HTTP 200 response, so partial failed downloads retain the last written byte count. HTTP 304 emitscli.downloadbut omits the byte measurement.cli.downloadreasons use what the current code can determine. Current code supportsmissingandversion_mismatch; there is no trueforceddownload path today.ServiceContaineris still constructed beforeinitVscodeProposed; construction does not call proposed APIs, and proposed API usage remains after initialization.Implementation
TelemetryServiceintoCliManagerthroughServiceContainer.Span.setPropertyandSpan.setMeasurement, withTelemetryServicecopying caller-owned objects at span start.TelemetryService.trace("activation", ...), using boundedauthStatevalues.Remote.setup()withTelemetryService.trace("remote.setup", ...)and child phases.remote.tswhile calling helper methods without telemetry where possible.cli.download.cli.verify.Generated by Coder Agents.