Reduce internal-only labeling noise in source comments (#355)
This pass rewrites comment-only ANT-ONLY markers to neutral internal-only language across the source tree without changing runtime strings, flags, commands, or protocol identifiers. The goal is to lower obvious internal prose leakage while keeping the diff mechanically safe and easy to review. Constraint: Phase B is limited to comments/prose only; runtime strings and user-facing labels remain deferred Rejected: Broad search-and-replace across strings and command descriptions | too risky for a prose-only pass Confidence: high Scope-risk: narrow Reversibility: clean Directive: Remaining ANT-ONLY hits are mostly runtime/user-facing strings and should be handled separately from comment cleanup Tested: bun run build Tested: bun run smoke Tested: bun run verify:privacy Tested: bun run test:provider Tested: bun run test:provider-recommendation Not-tested: Full repo typecheck (upstream baseline remains noisy) Co-authored-by: anandh8x <test@example.com>
This commit is contained in:
@@ -408,7 +408,7 @@ async function countBuiltInToolTokens(
|
||||
)
|
||||
: 0
|
||||
|
||||
// Build per-tool breakdown for always-loaded tools (ant-only, proportional
|
||||
// Build per-tool breakdown for always-loaded tools (internal-only, proportional
|
||||
// split of the bulk count based on rough schema size estimation). Excludes
|
||||
// SkillTool since its tokens are shown in the separate Skills category.
|
||||
let systemToolDetails: SystemToolDetail[] = []
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// biome-ignore-all assist/source/organizeImports: ANT-ONLY import markers must not be reordered
|
||||
// biome-ignore-all assist/source/organizeImports: internal-only import markers must not be reordered
|
||||
import {
|
||||
logEvent,
|
||||
type AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS,
|
||||
|
||||
@@ -96,7 +96,7 @@ export function shouldAutoRunIssue(reason: AutoRunIssueReason): boolean {
|
||||
|
||||
/**
|
||||
* Returns the appropriate command to auto-run based on the reason
|
||||
* ANT-ONLY: good-claude command only exists in ant builds
|
||||
* internal-only: good-claude command only exists in ant builds
|
||||
*/
|
||||
export function getAutoRunCommand(reason: AutoRunIssueReason): string {
|
||||
// Only ant builds have the /good-claude command
|
||||
|
||||
@@ -417,7 +417,7 @@ export async function getGcsDistTags(): Promise<NpmDistTags> {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get version history from npm registry (ant-only feature)
|
||||
* Get version history from npm registry (internal-only feature)
|
||||
* Returns versions sorted newest-first, limited to the specified count
|
||||
*
|
||||
* Uses NATIVE_PACKAGE_URL when available because:
|
||||
|
||||
@@ -58,7 +58,7 @@ export async function parseCommand(
|
||||
): Promise<ParsedCommandData | null> {
|
||||
if (!command || command.length > MAX_COMMAND_LENGTH) return null
|
||||
|
||||
// Gate: ant-only until pentest. External builds fall back to legacy
|
||||
// Gate: internal-only until pentest. External builds fall back to legacy
|
||||
// regex/shell-quote path. Guarding the whole body inside the positive
|
||||
// branch lets Bun DCE the NAPI import AND keeps telemetry honest — we
|
||||
// only fire tengu_tree_sitter_load when a load was genuinely attempted.
|
||||
|
||||
@@ -232,9 +232,9 @@ export type GlobalConfig = {
|
||||
}
|
||||
primaryApiKey?: string // Primary API key for the user when no environment variable is set, set via oauth (TODO: rename)
|
||||
hasAcknowledgedCostThreshold?: boolean
|
||||
hasSeenUndercoverAutoNotice?: boolean // ant-only: whether the one-time auto-undercover explainer has been shown
|
||||
hasSeenUltraplanTerms?: boolean // ant-only: whether the one-time CCR terms notice has been shown in the ultraplan launch dialog
|
||||
hasResetAutoModeOptInForDefaultOffer?: boolean // ant-only: one-shot migration guard, re-prompts churned auto-mode users
|
||||
hasSeenUndercoverAutoNotice?: boolean // internal-only: whether the one-time auto-undercover explainer has been shown
|
||||
hasSeenUltraplanTerms?: boolean // internal-only: whether the one-time CCR terms notice has been shown in the ultraplan launch dialog
|
||||
hasResetAutoModeOptInForDefaultOffer?: boolean // internal-only: one-shot migration guard, re-prompts churned auto-mode users
|
||||
oauthAccount?: AccountInfo
|
||||
iterm2KeyBindingInstalled?: boolean // Legacy - keeping for backward compatibility
|
||||
editorMode?: EditorMode
|
||||
@@ -405,7 +405,7 @@ export type GlobalConfig = {
|
||||
// Claude Code usage tracking
|
||||
claudeCodeFirstTokenDate?: string // ISO timestamp of the user's first Claude Code OAuth token
|
||||
|
||||
// Model switch callout tracking (ant-only)
|
||||
// Model switch callout tracking (internal-only)
|
||||
modelSwitchCalloutDismissed?: boolean // Whether user chose "Don't show again"
|
||||
modelSwitchCalloutLastShown?: number // Timestamp of last shown (don't show for 24h)
|
||||
modelSwitchCalloutVersion?: string
|
||||
@@ -457,7 +457,7 @@ export type GlobalConfig = {
|
||||
// Cached GrowthBook feature values
|
||||
cachedGrowthBookFeatures?: { [featureName: string]: unknown }
|
||||
|
||||
// Local GrowthBook overrides (ant-only, set via /config Gates tab).
|
||||
// Local GrowthBook overrides (internal-only, set via /config Gates tab).
|
||||
// Checked after env-var overrides but before the real resolved value.
|
||||
growthBookOverrides?: { [featureName: string]: unknown }
|
||||
|
||||
@@ -545,7 +545,7 @@ export type GlobalConfig = {
|
||||
// PR status footer configuration (feature-flagged via GrowthBook)
|
||||
prStatusFooterEnabled?: boolean // Show PR review status in footer (default: true)
|
||||
|
||||
// Tmux live panel visibility (ant-only, toggled via Enter on tmux pill)
|
||||
// Tmux live panel visibility (internal-only, toggled via Enter on tmux pill)
|
||||
tungstenPanelVisible?: boolean
|
||||
|
||||
// Cached org-level fast mode status from the API.
|
||||
@@ -564,10 +564,10 @@ export type GlobalConfig = {
|
||||
// undefined = no cache, null = extra usage enabled, string = disabled reason.
|
||||
cachedExtraUsageDisabledReason?: string | null
|
||||
|
||||
// Auto permissions notification tracking (ant-only)
|
||||
// Auto permissions notification tracking (internal-only)
|
||||
autoPermissionsNotificationCount?: number // Number of times the auto permissions notification has been shown
|
||||
|
||||
// Speculation configuration (ant-only)
|
||||
// Speculation configuration (internal-only)
|
||||
speculationEnabled?: boolean // Whether speculation is enabled (default: true)
|
||||
|
||||
|
||||
@@ -913,7 +913,7 @@ let lastReadFileStats: { mtime: number; size: number } | null = null
|
||||
let configCacheHits = 0
|
||||
let configCacheMisses = 0
|
||||
// Session-total count of actual disk writes to the global config file.
|
||||
// Exposed for ant-only dev diagnostics (see inc-4552) so anomalous write
|
||||
// Exposed for internal-only dev diagnostics (see inc-4552) so anomalous write
|
||||
// rates surface in the UI before they corrupt ~/.claude.json.
|
||||
let globalConfigWriteCount = 0
|
||||
|
||||
@@ -1125,7 +1125,7 @@ export function getGlobalConfig(): GlobalConfig {
|
||||
/**
|
||||
* Returns the effective value of remoteControlAtStartup. Precedence:
|
||||
* 1. User's explicit config value (always wins — honors opt-out)
|
||||
* 2. CCR auto-connect default (ant-only build, GrowthBook-gated)
|
||||
* 2. CCR auto-connect default (internal-only build, GrowthBook-gated)
|
||||
* 3. false (Remote Control must be explicitly opted into)
|
||||
*/
|
||||
export function getRemoteControlAtStartup(): boolean {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// biome-ignore-all assist/source/organizeImports: ANT-ONLY import markers must not be reordered
|
||||
// biome-ignore-all assist/source/organizeImports: internal-only import markers must not be reordered
|
||||
import { CONTEXT_1M_BETA_HEADER } from '../constants/betas.js'
|
||||
import { getGlobalConfig } from './config.js'
|
||||
import { isEnvTruthy } from './envUtils.js'
|
||||
@@ -53,7 +53,7 @@ export function getContextWindowForModel(
|
||||
model: string,
|
||||
betas?: string[],
|
||||
): number {
|
||||
// Allow override via environment variable (ant-only)
|
||||
// Allow override via environment variable (internal-only)
|
||||
// This takes precedence over all other context window resolution, including 1M detection,
|
||||
// so users can cap the effective context window for local decisions (auto-compact, etc.)
|
||||
// while still using a 1M-capable endpoint.
|
||||
|
||||
@@ -50,7 +50,7 @@ import {
|
||||
import { jsonStringify } from './slowOperations.js'
|
||||
import type { ContentReplacementRecord } from './toolResultStorage.js'
|
||||
|
||||
// Dead code elimination: ant-only tool names are conditionally required so
|
||||
// Dead code elimination: internal-only tool names are conditionally required so
|
||||
// their strings don't leak into external builds. Static imports always bundle.
|
||||
/* eslint-disable @typescript-eslint/no-require-imports */
|
||||
const BRIEF_TOOL_NAME: string | null =
|
||||
|
||||
@@ -58,7 +58,7 @@ export const parseDebugFilter = memoize(
|
||||
* - "category: message" -> ["category"]
|
||||
* - "[CATEGORY] message" -> ["category"]
|
||||
* - "MCP server \"name\": message" -> ["mcp", "name"]
|
||||
* - "[ANT-ONLY] 1P event: tengu_timer" -> ["ant-only", "1p"]
|
||||
* - "[internal-only] 1P event: tengu_timer" -> ["internal-only", "1p"]
|
||||
*
|
||||
* Returns lowercase categories for case-insensitive matching
|
||||
*/
|
||||
@@ -85,7 +85,7 @@ export function extractDebugCategories(message: string): string[] {
|
||||
}
|
||||
|
||||
// Pattern 4: Check for additional categories in the message
|
||||
// e.g., "[ANT-ONLY] 1P event: tengu_timer" should match both "ant-only" and "1p"
|
||||
// e.g., "[internal-only] 1P event: tengu_timer" should match both "internal-only" and "1p"
|
||||
if (message.toLowerCase().includes('1p event:')) {
|
||||
categories.push('1p')
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// biome-ignore-all assist/source/organizeImports: ANT-ONLY import markers must not be reordered
|
||||
// biome-ignore-all assist/source/organizeImports: internal-only import markers must not be reordered
|
||||
import { isUltrathinkEnabled } from './thinking.js'
|
||||
import { getInitialSettings } from './settings/settings.js'
|
||||
import { isProSubscriber, isMaxSubscriber, isTeamSubscriber } from './auth.js'
|
||||
|
||||
@@ -107,7 +107,7 @@ export function _resetTmuxControlModeProbeForTesting(): void {
|
||||
|
||||
/**
|
||||
* Whether fullscreen (flicker-free) mode is enabled. Env var takes highest
|
||||
* precedence, then the `flickerFreeMode` config setting, then the ant-only
|
||||
* precedence, then the `flickerFreeMode` config setting, then the internal-only
|
||||
* default. External users can enable via `/config` instead of setting the env.
|
||||
*
|
||||
* Priority order:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// biome-ignore-all assist/source/organizeImports: ANT-ONLY import markers must not be reordered
|
||||
// biome-ignore-all assist/source/organizeImports: internal-only import markers must not be reordered
|
||||
/**
|
||||
* Hooks are user-defined shell commands that can be executed at various points
|
||||
* in Claude Code's lifecycle.
|
||||
|
||||
@@ -84,7 +84,7 @@ export function buildSystemInitMessage(inputs: SystemInitInputs): SDKMessage {
|
||||
})),
|
||||
uuid: randomUUID(),
|
||||
}
|
||||
// Hidden from public SDK types — ant-only UDS messaging socket path
|
||||
// Hidden from public SDK types — internal-only UDS messaging socket path
|
||||
if (feature('UDS_INBOX')) {
|
||||
/* eslint-disable @typescript-eslint/no-require-imports */
|
||||
;(initMessage as Record<string, unknown>).messaging_socket_path =
|
||||
|
||||
@@ -29,7 +29,7 @@ export type AntModelOverrideConfig = {
|
||||
switchCallout?: AntModelSwitchCalloutConfig
|
||||
}
|
||||
|
||||
// @[MODEL LAUNCH]: Update tengu_ant_model_override with new ant-only models
|
||||
// @[MODEL LAUNCH]: Update tengu_ant_model_override with new internal-only models
|
||||
// @[MODEL LAUNCH]: Add the codename to scripts/excluded-strings.txt to prevent it from leaking to external builds.
|
||||
export function getAntModelOverrideConfig(): AntModelOverrideConfig | null {
|
||||
if (process.env.USER_TYPE !== 'ant') {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// biome-ignore-all assist/source/organizeImports: ANT-ONLY import markers must not be reordered
|
||||
// biome-ignore-all assist/source/organizeImports: internal-only import markers must not be reordered
|
||||
/**
|
||||
* Ensure that any model codenames introduced here are also added to
|
||||
* scripts/excluded-strings.txt to avoid leaking them. Wrap any codename string
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// biome-ignore-all assist/source/organizeImports: ANT-ONLY import markers must not be reordered
|
||||
// biome-ignore-all assist/source/organizeImports: internal-only import markers must not be reordered
|
||||
import { getInitialMainLoopModel } from '../../bootstrap/state.js'
|
||||
import {
|
||||
isClaudeAISubscriber,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// biome-ignore-all assist/source/organizeImports: ANT-ONLY import markers must not be reordered
|
||||
// biome-ignore-all assist/source/organizeImports: internal-only import markers must not be reordered
|
||||
import { MODEL_ALIASES } from './aliases.js'
|
||||
import { isModelAllowed } from './modelAllowlist.js'
|
||||
import { getAPIProvider } from './providers.js'
|
||||
|
||||
@@ -92,7 +92,7 @@ const PERMISSION_MODE_CONFIG: Partial<
|
||||
|
||||
/**
|
||||
* Type guard to check if a PermissionMode is an ExternalPermissionMode.
|
||||
* auto is ant-only and excluded from external modes.
|
||||
* auto is internal-only and excluded from external modes.
|
||||
*/
|
||||
export function isExternalPermissionMode(
|
||||
mode: PermissionMode,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Stub for external builds - classifier permissions feature is ANT-ONLY
|
||||
// Stub for external builds - classifier permissions feature is internal-only
|
||||
|
||||
export const PROMPT_PREFIX = 'prompt:'
|
||||
|
||||
|
||||
@@ -50,9 +50,9 @@ export const DANGEROUS_BASH_PATTERNS: readonly string[] = [
|
||||
'env',
|
||||
'xargs',
|
||||
'sudo',
|
||||
// Anthropic internal: ant-only tools plus general tools that ant sandbox
|
||||
// Anthropic internal: internal-only tools plus general tools that ant sandbox
|
||||
// dotfile data shows are commonly over-allowlisted as broad prefixes.
|
||||
// These stay ant-only — external users don't have coo, and the rest are
|
||||
// These stay internal-only — external users don't have coo, and the rest are
|
||||
// an empirical-risk call grounded in ant sandbox data, not a universal
|
||||
// "this tool is unsafe" judgment. PS may want these once it has usage data.
|
||||
...(process.env.USER_TYPE === 'ant'
|
||||
|
||||
@@ -4,7 +4,7 @@ import { TASK_OUTPUT_TOOL_NAME } from '../../tools/TaskOutputTool/constants.js'
|
||||
import { TASK_STOP_TOOL_NAME } from '../../tools/TaskStopTool/prompt.js'
|
||||
import type { PermissionRuleValue } from './PermissionRule.js'
|
||||
|
||||
// Dead code elimination: ant-only tool names are conditionally required so
|
||||
// Dead code elimination: internal-only tool names are conditionally required so
|
||||
// their strings don't leak into external builds. Static imports always bundle.
|
||||
/* eslint-disable @typescript-eslint/no-require-imports */
|
||||
const BRIEF_TOOL_NAME: string | null =
|
||||
|
||||
@@ -558,7 +558,7 @@ export const hasPermissionsToUseTool: CanUseToolFn = async (
|
||||
createDenialTrackingState()
|
||||
|
||||
// PowerShell requires explicit user permission in auto mode unless
|
||||
// POWERSHELL_AUTO_MODE (ant-only build flag) is on. When disabled, this
|
||||
// POWERSHELL_AUTO_MODE (internal-only build flag) is on. When disabled, this
|
||||
// guard keeps PS out of the classifier and skips the acceptEdits
|
||||
// fast-path below. When enabled, PS flows through to the classifier like
|
||||
// Bash — the classifier prompt gets POWERSHELL_DENY_GUIDANCE appended so
|
||||
|
||||
@@ -1455,7 +1455,7 @@ function getClassifierModel(): string {
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolve the XML classifier setting: ant-only env var takes precedence,
|
||||
* Resolve the XML classifier setting: internal-only env var takes precedence,
|
||||
* then GrowthBook. Returns undefined when unset (caller decides default).
|
||||
*/
|
||||
function resolveTwoStageClassifier():
|
||||
|
||||
@@ -107,7 +107,7 @@ export function restoreSessionStateFromLog(
|
||||
})
|
||||
}
|
||||
|
||||
// Restore attribution state (ant-only feature)
|
||||
// Restore attribution state (internal-only feature)
|
||||
if (
|
||||
feature('COMMIT_ATTRIBUTION') &&
|
||||
result.attributionSnapshots &&
|
||||
|
||||
@@ -2233,7 +2233,7 @@ function forEachParsedJSONLBufferEntry<T>(
|
||||
function applySnipRemovals(messages: Map<UUID, TranscriptMessage>): void {
|
||||
// Structural check — snipMetadata only exists on the boundary subtype.
|
||||
// Avoids the subtype literal which is in excluded-strings.txt
|
||||
// (HISTORY_SNIP is ant-only; the literal must not leak into external builds).
|
||||
// (HISTORY_SNIP is internal-only; the literal must not leak into external builds).
|
||||
type WithSnipMeta = { snipMetadata?: { removedUuids?: UUID[] } }
|
||||
const toDelete = new Set<UUID>()
|
||||
for (const entry of messages.values()) {
|
||||
|
||||
@@ -39,7 +39,7 @@ export const MDM_SUBPROCESS_TIMEOUT_MS = 5000
|
||||
|
||||
/**
|
||||
* Build the list of macOS plist paths in priority order (highest first).
|
||||
* Evaluates `process.env.USER_TYPE` at call time so ant-only paths are
|
||||
* Evaluates `process.env.USER_TYPE` at call time so internal-only paths are
|
||||
* included only when appropriate.
|
||||
*/
|
||||
export function getMacOSPlistPaths(): Array<{ path: string; label: string }> {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* Exports complete command configuration maps that any shell tool can import:
|
||||
* - GIT_READ_ONLY_COMMANDS: all git subcommands with safe flags and callbacks
|
||||
* - GH_READ_ONLY_COMMANDS: ant-only gh CLI commands (network-dependent)
|
||||
* - GH_READ_ONLY_COMMANDS: internal-only gh CLI commands (network-dependent)
|
||||
* - EXTERNAL_READONLY_COMMANDS: cross-shell commands that work in both bash and PowerShell
|
||||
* - containsVulnerableUncPath: UNC path detection for credential leak prevention
|
||||
* - outputLimits are in outputLimits.ts
|
||||
@@ -602,7 +602,7 @@ export const GIT_READ_ONLY_COMMANDS: Record<string, ExternalCommandConfig> = {
|
||||
'-s': 'none', // Print size of object
|
||||
'-p': 'none', // Pretty-print object contents
|
||||
'-e': 'none', // Exit with zero if object exists, non-zero otherwise
|
||||
// Batch mode — read-only check variant only
|
||||
// Batch mode — read-only check variinternal only
|
||||
'--batch-check': 'none', // For each object on stdin, print type and size (no content)
|
||||
// Output control
|
||||
'--allow-undetermined-type': 'none',
|
||||
@@ -923,7 +923,7 @@ export const GIT_READ_ONLY_COMMANDS: Record<string, ExternalCommandConfig> = {
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// GH_READ_ONLY_COMMANDS — ant-only gh CLI commands (network-dependent)
|
||||
// GH_READ_ONLY_COMMANDS — internal-only gh CLI commands (network-dependent)
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
// SECURITY: Shared callback for all gh commands to prevent network exfil.
|
||||
|
||||
@@ -81,7 +81,7 @@ export type ClaudeCodeStats = {
|
||||
// Speculation time saved
|
||||
totalSpeculationTimeSavedMs: number
|
||||
|
||||
// Shot stats (ant-only, gated by SHOT_STATS feature flag)
|
||||
// Shot stats (internal-only, gated by SHOT_STATS feature flag)
|
||||
shotDistribution?: { [shotCount: number]: number }
|
||||
oneShotRate?: number
|
||||
}
|
||||
@@ -208,7 +208,7 @@ async function processSessionFiles(
|
||||
// their token usage counted, but not as separate sessions.
|
||||
const isSubagentFile = sessionFile.includes(`${sep}subagents${sep}`)
|
||||
|
||||
// Extract shot count from PR attribution in gh pr create calls (ant-only)
|
||||
// Extract shot count from PR attribution in gh pr create calls (internal-only)
|
||||
// This must run before the sidechain filter since subagent transcripts
|
||||
// mark all messages as sidechain
|
||||
if (feature('SHOT_STATS') && shotDistributionMap) {
|
||||
|
||||
@@ -70,7 +70,7 @@ export type PersistedStatsCache = {
|
||||
hourCounts: { [hour: number]: number }
|
||||
// Speculation time saved across all sessions
|
||||
totalSpeculationTimeSavedMs: number
|
||||
// Shot distribution: map of shot count → number of sessions (ant-only)
|
||||
// Shot distribution: map of shot count → number of sessions (internal-only)
|
||||
shotDistribution?: { [shotCount: number]: number }
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// biome-ignore-all assist/source/organizeImports: ANT-ONLY import markers must not be reordered
|
||||
// biome-ignore-all assist/source/organizeImports: internal-only import markers must not be reordered
|
||||
import { Box, Text } from '../ink.js';
|
||||
import * as React from 'react';
|
||||
import { getLargeMemoryFiles, MAX_MEMORY_CHARACTER_COUNT, type MemoryFileInfo } from './claudemd.js';
|
||||
|
||||
@@ -316,7 +316,7 @@ export async function getTask(
|
||||
const content = await readFile(path, 'utf-8')
|
||||
const data = jsonParse(content) as { status?: string }
|
||||
|
||||
// TEMPORARY: Migrate old status names for existing sessions (ant-only)
|
||||
// TEMPORARY: Migrate old status names for existing sessions (internal-only)
|
||||
if (process.env.USER_TYPE === 'ant') {
|
||||
if (data.status === 'open') data.status = 'pending'
|
||||
else if (data.status === 'resolved') data.status = 'completed'
|
||||
|
||||
@@ -426,7 +426,7 @@ export function addBetaLLMResponseAttributes(
|
||||
}
|
||||
}
|
||||
|
||||
// Add thinking_output - ant-only
|
||||
// Add thinking_output - internal-only
|
||||
if (
|
||||
process.env.USER_TYPE === 'ant' &&
|
||||
metadata.thinkingOutput !== undefined
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* This module generates traces in the Chrome Trace Event format that can be
|
||||
* viewed in ui.perfetto.dev or Chrome's chrome://tracing.
|
||||
*
|
||||
* NOTE: This feature is ant-only and eliminated from external builds.
|
||||
* NOTE: This feature is internal-only and eliminated from external builds.
|
||||
*
|
||||
* The trace file includes:
|
||||
* - Agent hierarchy (parent-child relationships in a swarm)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// biome-ignore-all assist/source/organizeImports: ANT-ONLY import markers must not be reordered
|
||||
// biome-ignore-all assist/source/organizeImports: internal-only import markers must not be reordered
|
||||
import type { Theme } from './theme.js'
|
||||
import { feature } from 'bun:bundle'
|
||||
import { getFeatureValue_CACHED_MAY_BE_STALE } from '../services/analytics/growthbook.js'
|
||||
|
||||
Reference in New Issue
Block a user