Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞
28684 matches across 20 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tsdown.config.ts | 145 | function nodeWorkspacePackageBuildConfig(config: UserConfig): UserConfig { |
| LOW | tsdown.config.ts | 207 | function shouldNeverBundleDependency(id: string): boolean { |
| LOW | tsdown.config.ts | 213 | function shouldAlwaysBundleDependency(id: string): boolean { |
| LOW | tsdown.config.ts | 222 | function listBundledPluginEntrySources( |
| LOW | tsdown.config.ts | 320 | function buildAgentCoreDistEntries(): Record<string, string> { |
| LOW | tsdown.config.ts | 352 | function buildGatewayProtocolDistEntries(): Record<string, string> { |
| LOW | tsdown.config.ts | 365 | function buildGatewayClientDistEntries(): Record<string, string> { |
| LOW | tsdown.config.ts | 375 | function buildNetPolicyDistEntries(): Record<string, string> { |
| LOW | tsdown.config.ts | 387 | function buildSpeechCoreDistEntries(): Record<string, string> { |
| LOW | tsdown.config.ts | 406 | function buildLlmRuntimeDistEntries(): Record<string, string> { |
| LOW | tsdown.config.ts | 414 | function shouldExternalizeAgentCoreDependency(id: string): boolean { |
| LOW | tsdown.config.ts | 428 | function shouldExternalizeGatewayProtocolDependency(id: string): boolean { |
| LOW | tsdown.config.ts | 432 | function shouldExternalizeGatewayClientDependency(id: string): boolean { |
| LOW | tsdown.config.ts | 441 | function shouldExternalizeNetPolicyDependency(id: string): boolean { |
| LOW | tsdown.config.ts | 445 | function shouldExternalizeSpeechCoreDependency(id: string): boolean { |
| LOW | tsdown.config.ts | 449 | function shouldExternalizeLlmCoreDependency(id: string): boolean { |
| LOW | tsdown.config.ts | 453 | function shouldExternalizeLlmRuntimeDependency(id: string): boolean { |
| LOW | ui/vite.config.ts | 86 | function controlUiServiceWorkerBuildIdPlugin(buildId: string): Plugin { |
| LOW | ui/src/ui/session-display.ts | 80 | export function resolveSessionDisplayName( |
| LOW | ui/src/ui/activity-model.ts | 176 | export function updateActivityFromToolEvent(host: ActivityHost, payload: ToolEventPayload) { |
| LOW | ui/src/ui/app-settings.ts | 395 | function loadConfigSchemaAfterPrimary( |
| LOW | ui/src/ui/app-settings.ts | 642 | function clearPendingSessionsChangedReload(host: SettingsHost) { |
| LOW | ui/src/ui/app-settings.ts | 811 | export function hasMissingSkillDependencies( |
| LOW | ui/src/ui/chat-model-ref.ts | 5 | export function buildQualifiedChatModelValue(model: string, provider?: string | null): string { |
| LOW | ui/src/ui/chat-model-ref.ts | 31 | export function normalizeChatModelOverrideValue( |
| LOW | ui/src/ui/chat-model-ref.ts | 49 | export function resolveServerChatModelValue( |
| LOW | ui/src/ui/chat-model-ref.ts | 82 | function resolveUniqueCatalogValueById(model: string, catalog: ModelCatalogEntry[]): string { |
| LOW | ui/src/ui/chat-model-ref.ts | 106 | export function resolvePreferredServerChatModelValue( |
| LOW | ui/src/ui/chat-model-ref.ts | 172 | function resolveCatalogDisplayName(entry: ModelCatalogEntry): string { |
| LOW | ui/src/ui/chat-model-ref.ts | 176 | function createQualifiedCatalogKey(entry: ModelCatalogEntry): string { |
| LOW | ui/src/ui/chat-model-ref.ts | 186 | export function buildCatalogDisplayLookup(catalog: ModelCatalogEntry[]): Map<string, string> { |
| LOW | ui/src/ui/chat-model-ref.ts | 236 | export function formatCatalogEntryDisplay( |
| LOW | ui/src/ui/chat-model-ref.ts | 243 | export function formatCatalogChatModelDisplayFromLookup( |
| LOW | ui/src/ui/chat-model-ref.ts | 255 | export function formatCatalogChatModelDisplay(value: string, catalog: ModelCatalogEntry[]): string { |
| LOW | ui/src/ui/chat-model-ref.ts | 266 | export function buildChatModelOptionFromLookup( |
| LOW | ui/src/ui/realtime-talk-webrtc.test.ts | 154 | function expectSpokenStatusMessage(events: SentRealtimeEvent[], message: string): void { |
| LOW | ui/src/ui/usage-cache-status.ts | 6 | export function getUsageCacheRefreshTitle(cacheStatus: UsageCacheStatus): string | null { |
| LOW | ui/src/ui/control-ui-auth.ts | 23 | export function resolveControlUiAuthToken(source: ControlUiAuthSource): string | null { |
| LOW | ui/src/ui/control-ui-auth.ts | 32 | export function resolveControlUiAuthHeader(source: ControlUiAuthSource): string | null { |
| LOW | ui/src/ui/control-ui-auth.ts | 41 | export function resolveControlUiAuthCandidates(source: ControlUiAuthSource): string[] { |
| LOW | ui/src/ui/app-render.ts | 254 | function resolveSidebarRecentSessions(state: AppViewState): GatewaySessionRow[] { |
| LOW | ui/src/ui/app-render.ts | 319 | function renderSidebarRecentSession(state: AppViewState, row: GatewaySessionRow) { |
| LOW | ui/src/ui/app-render.ts | 451 | function loadDismissedUpdateBanner(): DismissedUpdateBanner | null { |
| LOW | ui/src/ui/app-render.ts | 581 | function normalizeMainConfigSelection( |
| LOW | ui/src/ui/app-render.ts | 591 | function normalizeScopedConfigSelection( |
| LOW | ui/src/ui/app-render.ts | 602 | function countScopedTopLevelSchemaProperties( |
| LOW | ui/src/ui/app-render.ts | 642 | function resolveAssistantAvatarUrl(state: AppViewState): string | undefined { |
| LOW | ui/src/ui/app-render.ts | 658 | function resolveAssistantAvatarOverride(config: unknown): string | null { |
| LOW | ui/src/ui/app-render.ts | 673 | function buildAssistantAvatarRoute(basePathValue: string | null | undefined, agentId: string) { |
| LOW | ui/src/ui/app-render.ts | 702 | function extractQuickSettingsChannels(state: AppViewState): QuickSettingsChannel[] { |
| LOW | ui/src/ui/app-render.ts | 752 | export function extractQuickSettingsSecurity(state: AppViewState): { |
| LOW | ui/src/ui/app-render.ts | 836 | function resolveQuickSettingsSessionRow(state: AppViewState) { |
| LOW | ui/src/ui/app-render.ts | 840 | function renderCronQuickCreateForTab( |
| LOW | ui/src/ui/chat-model.test-helpers.ts | 35 | export function createAmbiguousModelCatalog( |
| LOW | ui/src/ui/navigation.ts | 154 | export function inferBasePathFromPathname(pathname: string): string { |
| LOW | ui/src/ui/chat-event-reload.ts | 7 | function hasRenderableAssistantFinalMessage(message: unknown): boolean { |
| LOW | ui/src/ui/chat-event-reload.ts | 23 | export function shouldReloadHistoryForFinalEvent(payload?: ChatEventPayload): boolean { |
| LOW | ui/src/ui/chat-model-select-state.ts | 34 | export function resolveChatModelOverrideValue(state: ChatModelSelectStateInput): string { |
| LOW | ui/src/ui/chat-model-select-state.ts | 88 | export function resolveChatModelSelectState( |
| LOW | ui/src/ui/user-identity.ts | 31 | export function normalizeLocalUserIdentity( |
| 28067 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| CRITICAL | extensions/memory-lancedb/index.test.ts | 2091 | expect(harness.logger.warn.mock.calls.map(([message]) => String(message))).toEqual([ |
| CRITICAL | extensions/discord/src/voice/manager.e2e.test.ts | 1483 | expect(client.rest.get.mock.calls.slice(0, 31)).toEqual( |
| CRITICAL | extensions/discord/src/voice/manager.e2e.test.ts | 1486 | expect(client.rest.get.mock.calls.slice(31)).toEqual( |
| CRITICAL | extensions/device-pair/notify.ts | 291 | const adapter = await params.api.runtime.channel.outbound.loadAdapter("telegram"); |
| CRITICAL | extensions/device-pair/index.ts | 625 | const adapter = await params.api.runtime.channel.outbound.loadAdapter(params.ctx.channel); |
| CRITICAL | extensions/openshell/src/backend.ts | 372 | ...this.params.execContext.config.providers.flatMap((provider) => ["--provider", provider]), |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 2837 | telemetryState.tracer.startSpan.mock.calls.filter((call) => call[0] === "openclaw.run"), |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 2840 | telemetryState.tracer.startSpan.mock.calls.filter( |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 2845 | telemetryState.tracer.startSpan.mock.calls.filter( |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 2850 | telemetryState.tracer.startSpan.mock.calls.filter( |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 707 | const spanNames = telemetryState.tracer.startSpan.mock.calls.map((call) => call[0]); |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 1111 | const modelCall = telemetryState.tracer.startSpan.mock.calls.find( |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 1469 | const modelUsageCall = telemetryState.tracer.startSpan.mock.calls.find( |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 1789 | const skillSpanCall = telemetryState.tracer.startSpan.mock.calls.find( |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 1877 | const spanNames = telemetryState.tracer.startSpan.mock.calls.map((call) => call[0]); |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 2540 | const linkedSpanContexts = telemetryState.tracer.setSpanContext.mock.calls.map( |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 2549 | telemetryState.tracer.startSpan.mock.calls.map((call) => [ |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 2612 | const modelUsageCall = telemetryState.tracer.startSpan.mock.calls.find( |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 2664 | telemetryState.tracer.startSpan.mock.calls.map((call) => [call[0], call[2]]), |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 2706 | telemetryState.tracer.startSpan.mock.calls.map((call) => [call[0], call[2]]), |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 2762 | telemetryState.tracer.startSpan.mock.calls.map((call) => [call[0], call[2]]), |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 2953 | const deliverySpanCalls = telemetryState.tracer.startSpan.mock.calls.filter( |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 3211 | const modelCall = telemetryState.tracer.startSpan.mock.calls.find( |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 3214 | const toolCall = telemetryState.tracer.startSpan.mock.calls.find( |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 3261 | const modelCall = telemetryState.tracer.startSpan.mock.calls.find( |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 3322 | const modelCall = telemetryState.tracer.startSpan.mock.calls.find( |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 3407 | const modelCall = telemetryState.tracer.startSpan.mock.calls.find( |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 3453 | const modelCall = telemetryState.tracer.startSpan.mock.calls.find( |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 3519 | const modelCall = telemetryState.tracer.startSpan.mock.calls.find( |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 3578 | const modelCall = telemetryState.tracer.startSpan.mock.calls.find( |
| CRITICAL | extensions/diagnostics-otel/src/service.test.ts | 3622 | const modelUsageCall = telemetryState.tracer.startSpan.mock.calls.find( |
| CRITICAL | extensions/slack/src/send.blocks.test.ts | 167 | const postedTexts = client.chat.postMessage.mock.calls.map((call) => call[0].text); |
| CRITICAL | extensions/slack/src/monitor/context.ts | 452 | await params.app.client.assistant.threads.setStatus({ |
| CRITICAL | extensions/slack/src/monitor/context.ts | 480 | await params.app.client.assistant.threads.setSuggestedPrompts({ |
| CRITICAL | extensions/slack/src/monitor/message-handler/prepare.ts | 172 | const response = (await params.ctx.app.client.conversations.replies({ |
| CRITICAL | …lack/src/monitor/message-handler/prepare-dm-history.ts | 50 | const response = (await params.ctx.app.client.conversations.history({ |
| CRITICAL | …slack/src/monitor/events/interactions.block-actions.ts | 459 | await params.ctx.app.client.chat.update({ |
| CRITICAL | …st/src/mattermost/monitor.inbound-system-event.test.ts | 860 | const [recordCall] = runtimeCore.channel.session.recordInboundSession.mock.calls.at(0) ?? []; |
| CRITICAL | …st/src/mattermost/monitor.inbound-system-event.test.ts | 943 | const [recordCall] = runtimeCore.channel.session.recordInboundSession.mock.calls.at(0) ?? []; |
| CRITICAL | extensions/active-memory/index.ts | 550 | for (const { sessionKey, entry } of params.api.runtime.agent.session.listSessionEntries({ |
| CRITICAL | extensions/active-memory/index.ts | 666 | const sessionEntry = params.api.runtime.agent.session.getSessionEntry({ |
| CRITICAL | extensions/active-memory/index.ts | 1579 | const existingEntry = params.api.runtime.agent.session.getSessionEntry({ |
| CRITICAL | extensions/active-memory/index.ts | 1590 | await params.api.runtime.agent.session.patchSessionEntry({ |
| CRITICAL | src/infra/outbound/deliver.test.ts | 1459 | hookMocks.runner.runMessageSending.mock.calls.map( |
| CRITICAL | src/infra/outbound/deliver.test.ts | 1504 | hookMocks.runner.runMessageSending.mock.calls.map( |
| CRITICAL | src/agents/embedded-agent-runner/run/attempt.ts | 611 | if (isMidTurnPrecheckAssistantError(params.activeSession.agent.state.messages.at(-1))) { |
| CRITICAL | src/cli/directory-cli.test.ts | 74 | return runtimeState.defaultRuntime.error.mock.calls.map(([message]) => String(message)); |
| CRITICAL | src/cli/capability-cli.test.ts | 686 | return mocks.runtime.error.mock.calls.map((call) => String(call[0] ?? "")); |
| CRITICAL | src/cli/webhooks-cli.test.ts | 31 | return mocks.defaultRuntime.error.mock.calls.map(([message]) => String(message)); |
| CRITICAL | src/cli/exec-policy-cli.test.ts | 431 | mocks.defaultRuntime.log.mock.calls.map((call) => String(call[0] ?? "")).join("\n"), |
| CRITICAL | src/cli/node-cli/daemon.test.ts | 76 | return mocks.runtime.log.mock.calls.map(([line]) => line).join("\n"); |
| CRITICAL | src/cli/node-cli/daemon.test.ts | 80 | return mocks.runtime.error.mock.calls.map(([line]) => line).join("\n"); |
| CRITICAL | …ging/diagnostic-stuck-session-recovery.runtime.test.ts | 108 | return mocks.diag.warn.mock.calls.map(([message]) => { |
| CRITICAL | src/auto-reply/reply/dispatch-from-config.test.ts | 6610 | const tailDispatchCall = hookMocks.runner.runReplyDispatch.mock.calls.find( |
| CRITICAL | src/auto-reply/reply/dispatch-from-config.test.ts | 7390 | const replyDispatchCall = hookMocks.runner.runReplyDispatch.mock.calls.find( |
| CRITICAL | src/gateway/config-reload.test.ts | 1169 | harness.log.info.mock.calls.some(([message]) => message.includes("gateway.auth.token")), |
| CRITICAL | src/process/command-queue.test.ts | 260 | const waitWarning = diagnosticMocks.diag.warn.mock.calls.find( |
| CRITICAL | src/process/command-queue.test.ts | 306 | const waitWarning = diagnosticMocks.diag.warn.mock.calls.find( |
| CRITICAL | src/process/command-queue.test.ts | 563 | diagnosticMocks.diag.warn.mock.calls.some(([message]) => |
| CRITICAL | src/process/command-queue.test.ts | 829 | const waitWarning = diagnosticMocks.diag.warn.mock.calls.find( |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | ui/src/ui/types.ts | 827 | // ── Attention ─────────────────────────────────────── |
| MEDIUM | ui/src/ui/app-render.helpers.node.test.ts | 307 | // ── Key-only fallbacks (no row) ────────────────── |
| MEDIUM | ui/src/ui/app-render.helpers.node.test.ts | 339 | // ── With row data (label / displayName) ────────── |
| MEDIUM | ui/src/ui/views/dreaming.ts | 12 | // ── Diary entry parser ───────────────────────────────────────────────── |
| MEDIUM | ui/src/ui/views/dreaming.ts | 180 | // ── Sub-tab state ───────────────────────────────────────────────────── |
| MEDIUM | ui/src/ui/views/dreaming.ts | 212 | // ── Diary pagination state ───────────────────────────────────────────── |
| MEDIUM | ui/src/ui/views/dreaming.ts | 334 | // ── Scene renderer ──────────────────────────────────────────────────── |
| MEDIUM | ui/src/ui/views/dreaming.ts | 1411 | // ── Diary section renderer ──────────────────────────────────────────── |
| MEDIUM | extensions/msteams/src/file-consent.test.ts | 29 | // ─── isPrivateOrReservedIP ─────────────────────────────────────────────────── |
| MEDIUM | extensions/msteams/src/file-consent.test.ts | 84 | // ─── validateConsentUploadUrl ──────────────────────────────────────────────── |
| MEDIUM | extensions/msteams/src/file-consent.test.ts | 240 | // ─── CONSENT_UPLOAD_HOST_ALLOWLIST ─────────────────────────────────────────── |
| MEDIUM | extensions/msteams/src/file-consent.test.ts | 269 | // ─── uploadToConsentUrl (integration with validation) ──────────────────────── |
| MEDIUM | extensions/msteams/src/token.ts | 14 | // ── Credential types ─────────────────────────────────────────────────────── |
| MEDIUM | extensions/msteams/src/token.ts | 35 | // ── Helpers ──────────────────────────────────────────────────────────────── |
| MEDIUM | extensions/msteams/src/token.ts | 51 | // ── hasConfiguredMSTeamsCredentials ──────────────────────────────────────── |
| MEDIUM | extensions/msteams/src/token.ts | 81 | // ── resolveMSTeamsCredentials ───────────────────────────────────────────── |
| MEDIUM | extensions/msteams/src/attachments/shared.test.ts | 124 | // ─── resolveAndValidateIP ──────────────────────────────────────────────────── |
| MEDIUM | extensions/msteams/src/attachments/shared.test.ts | 163 | // ─── safeFetch ─────────────────────────────────────────────────────────────── |
| MEDIUM | extensions/qqbot/src/engine/group/history.ts | 29 | // ───────────────────────────── Constants ───────────────────────────── |
| MEDIUM | extensions/qqbot/src/engine/group/history.ts | 53 | // ───────────────────────────── Types ───────────────────────────── |
| MEDIUM | extensions/qqbot/src/engine/group/history.ts | 94 | // ───────────────────────────── Content formatting ───────────────────────────── |
| MEDIUM | extensions/qqbot/src/engine/group/history.ts | 167 | // ───────────────────────────── Attachment tags ───────────────────────────── |
| MEDIUM | extensions/qqbot/src/engine/group/history.ts | 174 | // ───────────────────────────── Internal LRU helpers ───────────────────────────── |
| MEDIUM | extensions/qqbot/src/engine/group/history.ts | 228 | // ───────────────────────────── Public API ───────────────────────────── |
| MEDIUM | …ensions/qqbot/src/engine/utils/attachment-tags.test.ts | 10 | // ────────────────────────── shared body (mode-agnostic) ────────────────────────── |
| MEDIUM | …ensions/qqbot/src/engine/utils/attachment-tags.test.ts | 62 | // ────────────────────────── ref mode = body + source suffix ────────────────────────── |
| MEDIUM | …ensions/qqbot/src/engine/utils/attachment-tags.test.ts | 129 | // ────────────────────────── Prompt-contract regression guards ────────────────────────── |
| MEDIUM | …ensions/qqbot/src/engine/utils/attachment-tags.test.ts | 164 | // ────────────────────────── Options ────────────────────────── |
| MEDIUM | …nsions/qqbot/src/engine/gateway/stages/access-stage.ts | 77 | // ─────────────────────────── Internal helpers ─────────────────────────── |
| MEDIUM | …sions/qqbot/src/engine/gateway/stages/content-stage.ts | 18 | // ─────────────────────────── Types ─────────────────────────── |
| MEDIUM | …sions/qqbot/src/engine/gateway/stages/content-stage.ts | 37 | // ─────────────────────────── Stage ─────────────────────────── |
| MEDIUM | …sions/qqbot/src/engine/gateway/stages/content-stage.ts | 63 | // ─────────────────────────── Internal ─────────────────────────── |
| MEDIUM | …ions/qqbot/src/engine/gateway/stages/assembly-stage.ts | 27 | // ─────────────────────────── buildUserMessage ─────────────────────────── |
| MEDIUM | …ions/qqbot/src/engine/gateway/stages/assembly-stage.ts | 70 | // ─────────────────────────── buildAgentBody ─────────────────────────── |
| MEDIUM | …ions/qqbot/src/engine/gateway/stages/assembly-stage.ts | 115 | // ─────────────────────────── Internal ─────────────────────────── |
| MEDIUM | …ions/qqbot/src/engine/gateway/stages/envelope-stage.ts | 15 | // ─────────────────────────── Envelope body ─────────────────────────── |
| MEDIUM | …ions/qqbot/src/engine/gateway/stages/envelope-stage.ts | 41 | // ─────────────────────────── Quote / dynamic ctx ─────────────────────────── |
| MEDIUM | …ions/qqbot/src/engine/gateway/stages/envelope-stage.ts | 75 | // ─────────────────────────── System prompt ─────────────────────────── |
| MEDIUM | …ions/qqbot/src/engine/gateway/stages/envelope-stage.ts | 96 | // ─────────────────────────── Media classification ─────────────────────────── |
| MEDIUM | …ensions/mattermost/src/mattermost/interactions.test.ts | 49 | // ── HMAC token management ──────────────────────────────────────────── |
| MEDIUM | …ensions/mattermost/src/mattermost/interactions.test.ts | 77 | // ── Token generation / verification ────────────────────────────────── |
| MEDIUM | …ensions/mattermost/src/mattermost/interactions.test.ts | 199 | // ── Callback URL registry ──────────────────────────────────────────── |
| MEDIUM | …ensions/mattermost/src/mattermost/interactions.test.ts | 322 | // ── buildButtonAttachments ─────────────────────────────────────────── |
| MEDIUM | extensions/mattermost/src/mattermost/interactions.ts | 60 | // ── Callback URL registry ────────────────────────────────────────────── |
| MEDIUM | extensions/mattermost/src/mattermost/interactions.ts | 170 | // ── HMAC token management ────────────────────────────────────────────── |
| MEDIUM | extensions/mattermost/src/mattermost/interactions.ts | 241 | // ── Button builder helpers ───────────────────────────────────────────── |
| MEDIUM | extensions/mattermost/src/mattermost/interactions.ts | 358 | // ── Request body reader ──────────────────────────────────────────────── |
| MEDIUM | extensions/mattermost/src/mattermost/interactions.ts | 367 | // ── HTTP handler ─────────────────────────────────────────────────────── |
| MEDIUM | extensions/mattermost/src/mattermost/slash-commands.ts | 4 | // ─── Types ─────────────────────────────────────────────────────────────────── |
| MEDIUM | extensions/mattermost/src/mattermost/slash-commands.ts | 71 | // ─── MM API types ──────────────────────────────────────────────────────────── |
| MEDIUM | extensions/mattermost/src/mattermost/slash-commands.ts | 114 | // ─── Default commands ──────────────────────────────────────────────────────── |
| MEDIUM | extensions/mattermost/src/mattermost/slash-commands.ts | 176 | // ─── Command registration ──────────────────────────────────────────────────── |
| MEDIUM | extensions/mattermost/src/mattermost/slash-commands.ts | 422 | // ─── Callback parsing ──────────────────────────────────────────────────────── |
| MEDIUM | extensions/mattermost/src/mattermost/slash-commands.ts | 515 | // ─── Config resolution ─────────────────────────────────────────────────────── |
| MEDIUM | extensions/mattermost/src/mattermost/slash-state.ts | 50 | // ─── Per-account state ─────────────────────────────────────────────────────── |
| MEDIUM | extensions/mattermost/src/mattermost/monitor.ts | 588 | // ─── Interactive buttons registration ────────────────────────────────────── |
| MEDIUM | extensions/mattermost/src/mattermost/client.test.ts | 9 | // ── Helper: mock fetch that captures requests ──────────────────────── |
| MEDIUM | extensions/mattermost/src/mattermost/client.test.ts | 73 | // ── normalizeMattermostBaseUrl ──────────────────────────────────────── |
| MEDIUM | extensions/mattermost/src/mattermost/client.test.ts | 97 | // ── createMattermostClient ─────────────────────────────────────────── |
| MEDIUM | extensions/mattermost/src/mattermost/client.test.ts | 168 | // ── createMattermostPost ───────────────────────────────────────────── |
| 108 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | docker-compose.yml | 41 | volumes: |
| LOW | ui/src/ui/markdown.ts | 301 | // We chose the www-only approach instead because: |
| LOW | qa/scenarios/agents/subagent-fanout-synthesis.md | 121 | # Tool-call assertion (criterion 2 of the |
| LOW | extensions/copilot/harness.ts | 121 | // Build a string fingerprint of the attempt params that must agree |
| LOW | extensions/copilot/src/tool-bridge.ts | 481 | // inside `wrapToolWithBeforeToolCallHook` (see |
| LOW | extensions/copilot/src/compaction-bridge.ts | 1 | import { mkdir, writeFile } from "node:fs/promises"; |
| LOW | extensions/copilot/src/telemetry-bridge.ts | 1 | import type { CopilotClientOptions } from "@github/copilot-sdk"; |
| LOW | extensions/copilot/src/telemetry-bridge.ts | 21 | // `CopilotClientPool` keys on `{agentId, copilotHome, authMode, |
| LOW | extensions/copilot/src/replay-shim.ts | 1 | // Replay-shim for the GitHub Copilot agent runtime. |
| LOW | extensions/copilot/src/workspace-bootstrap.test.ts | 161 | // provided yet. This is intentional — PI and codex inject the |
| LOW | extensions/copilot/src/attempt.test.ts | 1761 | // dualWriteCopilotTranscriptBestEffort is already best-effort |
| LOW | extensions/copilot/src/attempt.ts | 341 | // Load OpenClaw workspace bootstrap files (SOUL.md, IDENTITY.md, |
| LOW | extensions/copilot/src/attempt.ts | 521 | // |
| LOW | extensions/copilot/src/attempt.ts | 741 | // but the primary catalog restriction is `availableTools` below |
| LOW | extensions/copilot/src/attempt.ts | 761 | // requires routing the request to the OpenClaw channel/TUI prompt |
| LOW | extensions/copilot/src/attempt.ts | 781 | // Infinite sessions / background compaction: only attach when the |
| LOW | extensions/copilot/src/attempt.ts | 801 | // `@github/copilot-sdk/dist/types.d.ts:1198` (it picks |
| LOW | extensions/copilot/src/attempt.ts | 821 | // and `resumeSession` (`ResumeSessionConfig` picks `gitHubToken` |
| LOW | extensions/feishu/src/docx-color-text.ts | 61 | */ |
| LOW | extensions/qa-lab/src/providers/mock-openai/server.ts | 2581 | !/interrupted by a gateway reload/i.test(prompt) |
| LOW | extensions/deepinfra/provider-models.ts | 221 | // live discovery fails. Kept deliberately minimal: the dynamic |
| LOW | extensions/oc-path/src/cli.test.ts | 301 | // the per-kind emit boundary). The CLI handler must catch that |
| LOW | extensions/oc-path/src/oc-path/jsonl/parse.ts | 21 | // Detect the line-ending convention from the input. Windows-authored |
| LOW | …ensions/codex/src/app-server/transcript-mirror.test.ts | 501 | role: record.message?.role, |
| LOW | extensions/msteams/src/messenger.ts | 581 | // replyStyle === "top-level" — explicit "post at the top of the channel" |
| LOW | extensions/msteams/src/reply-dispatcher.test.ts | 301 | // After the user presses Stop (Teams returns 403 → SDK flips canceled), |
| LOW | extensions/msteams/src/sdk.ts | 101 | ): MSTeamsApp; |
| LOW | extensions/msteams/src/thread-parent-context.ts | 1 | // Parent-message context injection for Teams channel thread replies. |
| LOW | extensions/telegram/src/polling-session.ts | 241 | #restartAttempts = 0; |
| LOW | extensions/slack/http-routes-api.ts | 1 | // Narrow entry point for registerSlackPluginHttpRoutes — avoids pulling in |
| LOW | extensions/slack/src/channel.lazy-seams.test.ts | 1 | // Regression tests for the lazy-loading boundaries introduced for Slack |
| LOW | extensions/mattermost/channel-plugin-runtime.ts | 1 | // Private runtime-bearing plugin export for the bundled Mattermost entry. |
| LOW | extensions/imessage/src/monitor/catchup.ts | 1 | import { createHash } from "node:crypto"; |
| LOW | extensions/file-transfer/src/shared/policy.ts | 1 | // Path policy for file-transfer node.invoke calls. |
| LOW | extensions/file-transfer/src/shared/policy.ts | 21 | // "followSymlinks": false |
| LOW | extensions/whatsapp/src/auto-reply/mentions.ts | 41 | mentionCfg: MentionConfig, |
| LOW | extensions/memory-core/src/dreaming-narrative.ts | 1101 | } |
| LOW | extensions/memory-core/src/memory/manager-sync-ops.ts | 501 | // Linux is intentionally NOT in the native set: Node's |
| LOW | scripts/recover-orphaned-processes.sh | 1 | #!/usr/bin/env bash |
| LOW | scripts/create-dmg.sh | 1 | #!/usr/bin/env bash |
| LOW | scripts/run-opengrep.sh | 1 | #!/usr/bin/env bash |
| LOW | scripts/run-openclaw-podman.sh | 1 | #!/usr/bin/env bash |
| LOW | scripts/notarize-mac-artifact.sh | 1 | #!/usr/bin/env bash |
| LOW | scripts/auth-monitor.sh | 1 | #!/bin/bash |
| LOW | scripts/podman/setup.sh | 1 | #!/usr/bin/env bash |
| LOW | scripts/k8s/deploy.sh | 1 | #!/usr/bin/env bash |
| LOW | scripts/k8s/create-kind.sh | 1 | #!/usr/bin/env bash |
| LOW | scripts/k8s/create-kind.sh | 181 | # hostPort: 8080 |
| LOW | scripts/clawdock/clawdock-helpers.sh | 1 | #!/usr/bin/env bash |
| LOW | scripts/e2e/multi-node-update-docker.sh | 1 | #!/usr/bin/env bash |
| LOW | .github/workflows/labeler.yml | 181 | // const mergedQuery = `repo:${repo} is:pr is:merged author:${login}`; |
| LOW | .github/workflows/labeler.yml | 201 | // }); |
| LOW | .github/workflows/labeler.yml | 821 | // let mergedCount = 0; |
| LOW | …s/Tests/OpenClawIPCTests/GatewayEnvironmentTests.swift | 1 | import Foundation |
| LOW | …ests/OpenClawIPCTests/TalkModeGatewayConfigTests.swift | 41 | |
| LOW | …OpenClawIPCTests/OnboardingRemoteAuthPromptTests.swift | 121 | let noAuth = RemoteGatewayProbeSuccess(authSource: GatewayAuthSource.none) |
| LOW | …/Tests/OpenClawIPCTests/GatewayAgentChannelTests.swift | 21 | #expect(GatewayAgentChannel(raw: " ") == .last) |
| LOW | …ests/OpenClawIPCTests/TalkModeRuntimeSpeechTests.swift | 61 | speakerBoost: true, |
| LOW | …acos/Tests/OpenClawIPCTests/CommandResolverTests.swift | 161 | #expect(cmd.first == "/usr/bin/ssh") |
| LOW | …shared/OpenClawKit/Sources/OpenClawKit/DeepLinks.swift | 61 | return self.fromGatewayURLString( |
| 52 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | ui/src/ui/markdown.test.ts | 375 | print(f"--- {ws.title} ---") |
| HIGH | ui/src/ui/markdown.test.ts | 379 | print(row) |
| HIGH | …sions/qa-lab/src/mantis/slack-desktop-smoke.runtime.ts | 727 | elif [ "$hydrate_mode" = "prehydrated" ]; then |
| HIGH | …sions/qa-lab/src/mantis/slack-desktop-smoke.runtime.ts | 1004 | elif kill -0 "$watcher_pid" >/dev/null 2>&1; then |
| HIGH | …sions/qa-lab/src/mantis/slack-desktop-smoke.runtime.ts | 1059 | elif [ "$approval_checkpoints" = "1" ] && [ -s "$out/approval-checkpoints/slack-approval-exec-native-pending.png" ]; the |
| HIGH | …/qa-lab/src/mantis/telegram-desktop-builder.runtime.ts | 436 | elif [ "$hydrate_mode" = "prehydrated" ]; then |
| HIGH | …sions/codex/src/app-server/sandbox-exec-server/http.ts | 239 | print(json.dumps(payload, separators=(",", ":")), flush=True) |
| HIGH | extensions/line/src/markdown-to-line.test.ts | 106 | print("hello") |
| HIGH | extensions/line/src/markdown-to-line.test.ts | 296 | print("done") |
| HIGH | scripts/e2e/telegram-user-crabbox-proof.ts | 1734 | print((payload.get("session") or {}).get("id") or "") |
| HIGH | scripts/e2e/parallels/windows-git.ts | 35 | print(preferred_names[0]) |
| HIGH | scripts/e2e/parallels/windows-git.ts | 36 | print(fallback_urls[preferred_names[0]]) |
| HIGH | scripts/e2e/parallels/windows-git.ts | 60 | elif "-arm64." in name: |
| HIGH | scripts/e2e/parallels/windows-git.ts | 62 | elif "-32-bit." in name: |
| HIGH | scripts/e2e/parallels/windows-git.ts | 73 | print(best["name"]) |
| HIGH | scripts/e2e/parallels/windows-git.ts | 74 | print(best["browser_download_url"])`, |
| HIGH | src/agents/sandbox/fs-bridge-mutation-helper.ts | 96 | " return None", |
| HIGH | src/agents/sandbox/fs-bridge-mutation-helper.ts | 99 | " return None", |
| HIGH | src/cli/update-cli/restart-helper.ts | 98 | elif systemctl is-active --quiet '${escaped}' || systemctl is-enabled --quiet '${escaped}'; then |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | .agents/skills/crabbox/SKILL.md | 470 | ../crabbox/bin/crabbox desktop paste --provider hetzner --id <cbx_id-or-slug> --text "user@example.com" |
| LOW | docs/gateway/configuration-examples.md | 352 | imessage: ["user@example.com"], |
| LOW | docs/gateway/config-channels.md | 609 | allowFrom: ["+15555550123", "user@example.com", "chat_id:123"], |
| LOW | docs/channels/line.md | 178 | address: "123 Main St", |
| LOW | extensions/microsoft-foundry/index.test.ts | 368 | user: { name: "user@example.com" }, |
| LOW | extensions/feishu/skills/feishu-perm/SKILL.md | 29 | "member_id": "user@example.com", |
| LOW | extensions/feishu/skills/feishu-perm/SKILL.md | 42 | "member_id": "user@example.com" |
| LOW | extensions/google/index.test.ts | 301 | email: "user@example.com", |
| LOW | extensions/google/index.test.ts | 317 | email: "user@example.com", |
| LOW | extensions/google/index.test.ts | 324 | email: "user@example.com", |
| LOW | extensions/codex/src/app-server/event-projector.test.ts | 2709 | arguments: { to: "user@example.com" }, |
| LOW | extensions/msteams/src/mentions.test.ts | 53 | name: "John Doe", |
| LOW | extensions/msteams/src/mentions.test.ts | 103 | name: "John Doe", |
| LOW | extensions/googlechat/src/channel.test.ts | 461 | to: "user@example.com", |
| LOW | extensions/googlechat/src/channel.test.ts | 529 | id: "user@example.com", |
| LOW | extensions/imessage/src/config-accessors.test.ts | 17 | allowFrom: ["chat_id:9", "user@example.com"], |
| LOW | extensions/imessage/src/config-accessors.test.ts | 26 | "user@example.com", |
| LOW | extensions/imessage/src/targets.test.ts | 104 | allowFrom: ["user@example.com"], |
| LOW | extensions/imessage/src/targets.test.ts | 153 | expect(looksLikeIMessageExplicitTargetId("user@example.com")).toBe(false); |
| LOW | extensions/imessage/src/targets.test.ts | 195 | entries: ["+15555550123", "user@example.com"], |
| LOW | extensions/imessage/src/normalize.test.ts | 24 | expect(looksLikeIMessageTargetId("user@example.com")).toBe(true); |
| LOW | extensions/imessage/src/actions.runtime.test.ts | 195 | expect(normalizeDirectChatIdentifierForTest("foo@bar.com")).toBe("foo@bar.com"); |
| LOW | extensions/nostr/src/config-schema.ts | 50 | /** NIP-05 identifier (e.g., "user@example.com") */ |
| LOW | extensions/nostr/src/nostr-profile-import.test.ts | 146 | nip05: "user@example.com", |
| LOW | extensions/nostr/src/nostr-profile-import.test.ts | 158 | expect(result.nip05).toBe("user@example.com"); |
| LOW | extensions/openai/openai-codex-provider.test.ts | 146 | email: "user@example.com", |
| LOW | skills/himalaya/references/message-composition.md | 34 | To: "John Doe" <john@example.com> |
| LOW | skills/himalaya/references/configuration.md | 9 | email = "user@example.com" |
| LOW | skills/himalaya/references/configuration.md | 18 | backend.login = "user@example.com" |
| LOW | skills/himalaya/references/configuration.md | 27 | message.send.backend.login = "user@example.com" |
| LOW | skills/himalaya/references/configuration.md | 143 | email = "user@example.com" |
| LOW | skills/peekaboo/SKILL.md | 123 | peekaboo type "user@example.com" --app Safari |
| LOW | …ps/macos/Tests/OpenClawIPCTests/SessionDataTests.swift | 12 | #expect(SessionKind.from(key: "user@example.com") == .direct) |
| LOW | …ps/macos/Tests/OpenClawIPCTests/SessionDataTests.swift | 29 | key: "user@example.com", |
| LOW | apps/macos/Sources/OpenClaw/AppState.swift | 869 | state.remoteTarget = "user@example.com" |
| LOW | apps/macos/Sources/OpenClaw/SessionData.swift | 151 | key: "user@example.com", |
| LOW | src/security/external-content.ts | 333 | * sender: "user@example.com", |
| LOW | src/plugins/provider-openai-codex-oauth.test.ts | 54 | email: "user@example.com", |
| LOW | src/agents/auth-profiles.ensureauthprofilestore.test.ts | 323 | email: "user@example.com", |
| LOW | src/agents/auth-profiles.ensureauthprofilestore.test.ts | 345 | email: "user@example.com", |
| LOW | src/agents/auth-profiles.ensureauthprofilestore.test.ts | 413 | email: "user@example.com", |
| LOW | src/agents/auth-profiles.ensureauthprofilestore.test.ts | 432 | email: "user@example.com", |
| LOW | src/agents/auth-profiles.ensureauthprofilestore.test.ts | 440 | email: "user@example.com", |
| LOW | src/agents/auth-profiles.ensureauthprofilestore.test.ts | 488 | email: "user@example.com", |
| LOW | src/agents/auth-profiles.ensureauthprofilestore.test.ts | 569 | email: "user@example.com", |
| LOW | src/agents/cli-credentials.test.ts | 578 | JSON.stringify({ sub: "google-account-42", email: "user@example.com" }), |
| LOW | src/agents/cli-credentials.test.ts | 600 | email: "user@example.com", |
| LOW | src/agents/cli-auth-epoch.test.ts | 160 | email: "user@example.com", |
| LOW | src/agents/cli-auth-epoch.test.ts | 182 | email: "user@example.com", |
| LOW | src/agents/cli-auth-epoch.test.ts | 205 | email: "user@example.com", |
| LOW | src/agents/cli-auth-epoch.test.ts | 213 | email: "user@example.com", |
| LOW | src/agents/embedded-agent-runner/history.test.ts | 96 | dms: { "user@example.com": { historyLimit: 7 } }, |
| LOW | src/agents/auth-profiles/oauth-manager.test.ts | 72 | createCredential({ access: "rotated-access", email: "user@example.com" }), |
| LOW | src/agents/auth-profiles/oauth-identity.test.ts | 38 | expect(normalizeAuthEmailToken("USER@Example.COM")).toBe("user@example.com"); |
| LOW | src/agents/auth-profiles/oauth-identity.test.ts | 39 | expect(normalizeAuthEmailToken(" user@example.com ")).toBe("user@example.com"); |
| LOW | src/agents/auth-profiles/oauth-identity.test.ts | 90 | isSameOAuthIdentity({ email: "user@example.com" }, { email: "USER@Example.COM" }), |
| LOW | src/agents/auth-profiles/oauth-identity.test.ts | 106 | { accountId: "acct-1", email: "user@example.com" }, |
| LOW | src/agents/auth-profiles/oauth-identity.test.ts | 107 | { email: "user@example.com" }, |
| LOW | src/agents/auth-profiles/oauth-identity.test.ts | 117 | { accountId: " ", email: "user@example.com" }, |
| LOW | src/agents/auth-profiles/oauth-identity.test.ts | 130 | expect(isSameOAuthIdentity({ email: "user@example.com" }, {})).toBe(false); |
| 28 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | test/proof/thinking-signature-real-proof.ts | 247 | // Step 1: Send a request with thinking enabled |
| LOW | test/proof/thinking-signature-real-proof.ts | 282 | // Step 2: Parse SSE stream, collect signature_delta events |
| LOW | test/proof/thinking-signature-real-proof.ts | 336 | // Step 3: Validate results |
| LOW | test/proof/thinking-signature-real-proof.ts | 360 | // Step 4: Assertions |
| LOW | test/proof/thinking-signature-real-proof.ts | 409 | // Step 5: Replay validation — verify the concatenated signature can be sent back |
| LOW | test/proof/thinking-signature-real-proof.ts | 466 | // Step 6: Negative proof — replay with truncated signature should fail |
| LOW | test/scripts/install-sh.test.ts | 829 | /# Step 1: Node\.js[\s\S]*?load_nvm_for_node_detection\s+if ! check_node; then/, |
| LOW | extensions/discord/src/voice-message.ts | 403 | // Step 1: Request upload URL from Discord |
| LOW | extensions/discord/src/voice-message.ts | 431 | // Step 3: Send the message with voice message flag and metadata |
| LOW | extensions/feishu/src/bitable.ts | 297 | // Step 1: Clean up default fields |
| LOW | extensions/feishu/src/bitable.ts | 348 | // Step 2: Delete empty placeholder rows (batch when possible) |
| LOW | extensions/feishu/src/docx.ts | 717 | // Step 1: Create an empty image block (block_type 27). |
| LOW | extensions/feishu/src/docx.ts | 732 | // Step 2: Resolve and upload the image buffer. |
| LOW | extensions/feishu/src/docx.ts | 749 | // Step 3: Set the image token on the block. |
| LOW | …ons/qqbot/src/engine/messaging/streaming-media-send.ts | 92 | // Step 1: 将八进制转义转换为字节 |
| LOW | …ons/qqbot/src/engine/messaging/streaming-media-send.ts | 97 | // Step 2: 提取所有字节(包括 Latin-1 字符) |
| LOW | …ons/qqbot/src/engine/messaging/streaming-media-send.ts | 109 | // Step 3: 尝试按 UTF-8 解码 |
| LOW | …tensions/imessage/src/monitor/self-chat-dedupe.test.ts | 569 | // Step 1: is_from_me=true copy arrives (real user message) → processed, selfChatCache populated |
| LOW | …tensions/imessage/src/monitor/self-chat-dedupe.test.ts | 589 | // Step 2: is_from_me=false reflection arrives 2s later with same text+createdAt |
| LOW | …atrix/src/matrix/monitor/handler.group-history.test.ts | 515 | // Step 1: trigger msg A — don't await, let it block in dispatch |
| LOW | …atrix/src/matrix/monitor/handler.group-history.test.ts | 521 | // Step 2: wait until dispatch is in-flight |
| LOW | …atrix/src/matrix/monitor/handler.group-history.test.ts | 526 | // Step 3: msg B arrives while agent is processing — must not be lost |
| LOW | …atrix/src/matrix/monitor/handler.group-history.test.ts | 529 | // Step 4: unblock dispatch and complete |
| LOW | …atrix/src/matrix/monitor/handler.group-history.test.ts | 534 | // Step 5: trigger msg C — should see [msg B] in history (msg A was consumed) |
| LOW | extensions/signal/src/monitor/event-handler.ts | 573 | // We need to check if it's from our own account to prevent self-reply loops |
| LOW | scripts/install.sh | 3104 | # Step 1: Node.js. macOS package-manager branches install Homebrew lazily |
| LOW | scripts/install.sh | 3141 | # Step 3: Git (required for npm installs that may fetch from git or apply patches) |
| LOW | scripts/install.sh | 3146 | # Step 4: npm permissions (Linux) |
| LOW | scripts/install.sh | 3149 | # Step 5: OpenClaw |
| LOW | scripts/install.sh | 3172 | # Step 6: Run doctor for migrations on upgrades and git installs |
| LOW | scripts/install.sh | 3182 | # Step 7: If BOOTSTRAP.md is still present in the workspace, resume onboarding |
| LOW | scripts/setup-auth-system.sh | 15 | # Step 1: Check current auth status |
| LOW | scripts/setup-auth-system.sh | 20 | # Step 2: Set up long-lived token |
| LOW | scripts/setup-auth-system.sh | 41 | # Step 3: Set up auth monitoring |
| LOW | scripts/setup-auth-system.sh | 84 | # Step 4: Termux widget setup |
| LOW | …-definition-adapter.after-tool-call.fires-once.test.ts | 192 | // Step 1: Simulate tool_execution_start event (SDK emits this) |
| LOW | …-definition-adapter.after-tool-call.fires-once.test.ts | 195 | // Step 2: Execute tool through the adapter wrapper (SDK calls this) |
| LOW | …-definition-adapter.after-tool-call.fires-once.test.ts | 198 | // Step 3: Simulate tool_execution_end event (SDK emits this after execute returns) |
| LOW | src/agents/sessions/package-manager.ts | 757 | // Step 1: Apply includes (or all if no includes) |
| LOW | src/agents/sessions/package-manager.ts | 765 | // Step 2: Apply excludes |
| LOW | src/agents/sessions/package-manager.ts | 770 | // Step 3: Force-include (add back from allPaths, overriding exclusions) |
| LOW | src/agents/sessions/package-manager.ts | 779 | // Step 4: Force-exclude (remove even if included or force-included) |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | extensions/msteams/src/messenger.ts | 286 | // Mark as AI-generated so Teams renders the "AI generated" badge. |
| HIGH | extensions/msteams/src/messenger.ts | 296 | // Start with mention entities (if any) + AI-generated entity |
| HIGH | extensions/msteams/src/reply-stream-controller.ts | 316 | // Emit a final MessageActivity carrying the AI-generated marker and (if |
| HIGH | extensions/msteams/src/reply-stream-controller.ts | 319 | // get the AI-generated label and thumbs up/down. |
| HIGH | extensions/msteams/src/sdk.ts | 113 | // Feedback (thumbs up/down) on AI-generated messages — Teams delivers |
| HIGH | extensions/msteams/src/monitor.ts | 572 | // Feedback (thumbs up/down) on AI-generated messages. Teams delivers this as |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | test/scripts/npm-telegram-live.test.ts | 38 | const installRunEnd = script.indexOf("# Mount only QA harness source"); |
| MEDIUM | test/scripts/npm-telegram-live.test.ts | 72 | const runtimeRunStart = script.indexOf("# Mount only QA harness source"); |
| MEDIUM | extensions/qa-lab/src/docker-harness.ts | 154 | return `# QA Docker harness example env |
| MEDIUM | scripts/test-live-codex-harness-docker.sh | 208 | # Force the Codex harness to use the staged `~/.codex` auth files. This lane |
| MEDIUM | scripts/test-live-codex-harness-docker.sh | 308 | # Codex. This lane must rebuild the live image so the plugin-owned harness is |
| MEDIUM | scripts/docker/install-sh-e2e/run.sh | 2 | # Official installer E2E harness for Docker. |
| MEDIUM | scripts/e2e/cron-mcp-cleanup-docker.sh | 3 | # child-process cleanup through a mounted test harness. |
| MEDIUM | scripts/e2e/crestodian-rescue-docker.sh | 3 | # functional E2E image, with only the test harness mounted from the checkout. |
| MEDIUM | scripts/e2e/crestodian-planner-docker.sh | 3 | # functional E2E image, with only the test harness mounted from the checkout. |
| MEDIUM | scripts/e2e/npm-telegram-live-docker.sh | 3 | # onboarding/doctor recovery, then runs the Telegram QA live harness. |
| MEDIUM | scripts/e2e/npm-telegram-live-docker.sh | 273 | # Mount only QA harness source; the SUT itself, including bundled plugin runtime, |
| MEDIUM | scripts/e2e/npm-telegram-live-docker.sh | 309 | # The mounted QA harness imports openclaw/plugin-sdk and package dependencies; |
| MEDIUM | scripts/e2e/npm-telegram-live-docker.sh | 358 | # QA Lab is intentionally mounted as harness source, so its package-local |
| MEDIUM | scripts/e2e/crestodian-first-run-docker.sh | 3 | # functional E2E image, with only the test harness mounted from the checkout. |
| MEDIUM | src/cli/completion-cli.ts | 373 | // For a robust implementation, usually one maps out the tree. |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | …t/java/ai/openclaw/app/ui/GatewayConfigResolverTest.kt | 0 | {"url":"wss://gateway.example:18789","bootstraptoken":"bootstrap-1"} |
| HIGH | …t/java/ai/openclaw/app/ui/GatewayConfigResolverTest.kt | 0 | {"url":"wss://gateway.example:18789","bootstraptoken":"bootstrap-1"} |
| HIGH | …t/java/ai/openclaw/app/ui/GatewayConfigResolverTest.kt | 0 | {"url":"wss://gateway.example:18789","bootstraptoken":"bootstrap-1"} |
| HIGH | …t/java/ai/openclaw/app/ui/GatewayConfigResolverTest.kt | 0 | {"url":"wss://gateway.example:18789","bootstraptoken":"bootstrap-1"} |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | scripts/recover-orphaned-processes.sh | 8 | # Usage: |
| LOW | scripts/create-dmg.sh | 6 | # Usage: |
| LOW | scripts/run-opengrep.sh | 8 | # Usage: |
| LOW | scripts/notarize-mac-artifact.sh | 6 | # Usage: |
| LOW | scripts/k8s/deploy.sh | 7 | # Usage: |
| LOW | scripts/k8s/create-kind.sh | 6 | # Usage: |
| LOW | scripts/clawdock/clawdock-helpers.sh | 10 | # Usage: |
| LOW | scripts/e2e/multi-node-update-docker.sh | 13 | # Usage: |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | scripts/ios-team-id.sh | 72 | except Exception: |
| LOW | scripts/ios-team-id.sh | 125 | except Exception: |
| LOW | scripts/docker/setup.sh | 73 | except Exception: |
| LOW | scripts/e2e/parallels/npm-update-scripts.ts | 163 | except Exception: |
| LOW | scripts/e2e/parallels/windows-git.ts | 34 | except Exception: |
| LOW | skills/model-usage/scripts/model_usage.py | 91 | except Exception: |
| LOW | skills/model-usage/scripts/model_usage.py | 259 | except Exception as exc: |
| LOW | skills/skill-creator/scripts/init_skill.py | 280 | except Exception as e: |
| LOW | skills/skill-creator/scripts/init_skill.py | 292 | except Exception as e: |
| LOW | skills/skill-creator/scripts/init_skill.py | 300 | except Exception as e: |
| LOW | skills/skill-creator/scripts/package_skill.py | 109 | except Exception as e: |
| LOW | skills/python-debugpy/SKILL.md | 48 | except Exception: |
| MEDIUM | apps/macos/Sources/OpenClawMacCLI/ConnectCommand.swift | 226 | print("Error: \(error)") |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | docs/concepts/memory-honcho.md | 74 | apiKey: "your-api-key", // omit for self-hosted |
| HIGH | skills/trello/SKILL.md | 35 | export TRELLO_API_KEY="your-api-key" |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | docker-compose.yml | 49 | ## Set DOCKER_GID to the host's docker group GID (run: stat -c '%g' /var/run/docker.sock). |
| LOW | scripts/clawlog.sh | 300 | # Check if file was created and has content |
| LOW | scripts/auth-monitor.sh | 38 | # Check if we notified recently |
| LOW | scripts/auth-monitor.sh | 46 | # Check if we can still use openclaw |
| LOW | scripts/k8s/create-kind.sh | 154 | # Check if cluster already exists |
| LOW | skills/skill-creator/scripts/init_skill.py | 271 | # Check if directory already exists |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | scripts/create-dmg.sh | 4 | # Create a styled DMG containing the app bundle + /Applications symlink. |
| MEDIUM | scripts/e2e/multi-node-update-docker.sh | 125 | # Create a systemctl shim since we are in Docker (no real systemd). |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | skills/skill-creator/scripts/init_skill.py | 256 | Initialize a new skill directory with template SKILL.md. Args: skill_name: Name of the skill p |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | scripts/e2e/telegram-user-driver.py | 274 | |
| LOW | skills/model-usage/scripts/model_usage.py | 131 | |
| LOW | skills/skill-creator/scripts/init_skill.py | 227 | |
| LOW | skills/skill-creator/scripts/package_skill.py | 28 |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | …s/embedded-agent-helpers.isbillingerrormessage.test.ts | 203 | "Let me know if you need more details on any of these topics!"; |
| MEDIUM | …ents/embedded-agent-runner/run.incomplete-turn.test.ts | 2771 | attempt: makeAttemptWithTools(["read"], "Let me know if you need anything else."), |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …es/memory-host-sdk/src/host/embeddings-worker-child.ts | 71 | async function handleRequest(request: LocalEmbeddingWorkerRequest): Promise<void> { |
| LOW | src/auto-reply/chunk.test.ts | 140 | const fence = "```python\ndef my_function():\n x = 1\n\n y = 2\n return x + y\n```"; |
| LOW | src/gateway/server-http.ts | 531 | async function handleRequest(req: IncomingMessage, res: ServerResponse) { |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | scripts/check-composite-action-input-interpolation.py | 2 | |
| LOW | skills/model-usage/scripts/model_usage.py | 8 |