Tiny, Fast, and Deployable anywhere — automate the mundane, unleash your creativity
301 matches across 10 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| CRITICAL | web/backend/api/config.go | 681 | cfg.Tools.Skills.Github.Token.Set(token) |
| CRITICAL | web/backend/api/tools.go | 565 | APIKeySet: cfg.Tools.Web.Gemini.APIKey.String() != "", |
| CRITICAL | web/backend/api/tools.go | 570 | APIKeySet: len(cfg.Tools.Web.Brave.APIKeys.Values()) > 0, |
| CRITICAL | web/backend/api/tools.go | 576 | APIKeySet: len(cfg.Tools.Web.Tavily.APIKeys.Values()) > 0, |
| CRITICAL | web/backend/api/tools.go | 581 | APIKeySet: len(cfg.Tools.Web.Perplexity.APIKeys.Values()) > 0, |
| CRITICAL | web/backend/api/tools.go | 592 | APIKeySet: cfg.Tools.Web.GLMSearch.APIKey.String() != "", |
| CRITICAL | web/backend/api/tools.go | 598 | APIKeySet: cfg.Tools.Web.BaiduSearch.APIKey.String() != "", |
| CRITICAL | web/backend/api/tools_test.go | 508 | if got := updated.Tools.Web.Brave.APIKeys.Values(); len(got) != 2 || |
| CRITICAL | web/backend/api/tools_test.go | 537 | if got := updated.Tools.Web.Brave.APIKeys.Values(); len(got) != 2 || |
| CRITICAL | pkg/tools/integration/web.go | 1207 | BraveAPIKeys: cfg.Tools.Web.Brave.APIKeys.Values(), |
| CRITICAL | pkg/tools/integration/web.go | 1210 | TavilyAPIKeys: cfg.Tools.Web.Tavily.APIKeys.Values(), |
| CRITICAL | pkg/tools/integration/web.go | 1218 | GeminiAPIKey: cfg.Tools.Web.Gemini.APIKey.String(), |
| CRITICAL | pkg/tools/integration/web.go | 1222 | PerplexityAPIKeys: cfg.Tools.Web.Perplexity.APIKeys.Values(), |
| CRITICAL | pkg/tools/integration/web.go | 1228 | GLMSearchAPIKey: cfg.Tools.Web.GLMSearch.APIKey.String(), |
| CRITICAL | pkg/tools/integration/web.go | 1233 | BaiduSearchAPIKey: cfg.Tools.Web.BaiduSearch.APIKey.String(), |
| CRITICAL | pkg/config/security.go | 148 | if cfg.Tools.Skills.Github.Token.String() == "" && legacyGitHub.Token.String() != "" { |
| CRITICAL | pkg/config/security.go | 159 | if name == "github" && cfg.Tools.Skills.Github.Token.String() != "" { |
| CRITICAL | pkg/config/security_integration_test.go | 124 | assert.Equal(t, "ghp-from-security-yml", cfg.Tools.Skills.Github.Token.String()) |
| CRITICAL | pkg/config/security_integration_test.go | 460 | t.Logf("GLMSearch APIKey(): %s", cfg.Tools.Web.GLMSearch.APIKey.String()) |
| CRITICAL | pkg/config/security_integration_test.go | 461 | assert.Equal(t, "glm-test-glm-search-key", cfg.Tools.Web.GLMSearch.APIKey.String()) |
| CRITICAL | pkg/config/security_integration_test.go | 464 | assert.Equal(t, "ghp-github-from-file-abc123", cfg.Tools.Skills.Github.Token.String()) |
| CRITICAL | pkg/config/security_integration_test.go | 465 | t.Logf("Github Token(): %s", cfg.Tools.Skills.Github.Token.String()) |
| CRITICAL | pkg/config/security_integration_test.go | 632 | assert.Equal(t, "legacy-github-token", cfg.Tools.Skills.Github.Token.String()) |
| CRITICAL | pkg/channels/feishu/feishu_reply.go | 139 | resp, err := c.client.Im.V1.Message.Get(ctx, req) |
| CRITICAL | pkg/channels/feishu/feishu_64.go | 253 | resp, err := c.client.Im.V1.Message.Patch(ctx, req) |
| CRITICAL | pkg/channels/feishu/feishu_64.go | 278 | resp, err := c.client.Im.V1.Message.Delete(ctx, req) |
| CRITICAL | pkg/channels/feishu/feishu_64.go | 315 | resp, err := c.client.Im.V1.Message.Create(ctx, req) |
| CRITICAL | pkg/channels/feishu/feishu_64.go | 441 | resp, err := c.client.Im.V1.MessageReaction.Create(ctx, req) |
| CRITICAL | pkg/channels/feishu/feishu_64.go | 478 | _, _ = c.client.Im.V1.MessageReaction.Delete(context.Background(), delReq) |
| CRITICAL | pkg/channels/feishu/feishu_64.go | 894 | resp, err := c.client.Im.V1.MessageResource.Get(ctx, req) |
| CRITICAL | pkg/channels/feishu/feishu_64.go | 934 | resp, err := c.client.Im.V1.Image.Get(ctx, req) |
| CRITICAL | pkg/channels/feishu/feishu_64.go | 1058 | resp, err := c.client.Im.V1.Message.Create(ctx, req) |
| CRITICAL | pkg/channels/feishu/feishu_64.go | 1091 | resp, err := c.client.Im.V1.Message.Create(ctx, req) |
| CRITICAL | pkg/channels/feishu/feishu_64.go | 1120 | uploadResp, err := c.client.Im.V1.Image.Create(ctx, uploadReq) |
| CRITICAL | pkg/channels/feishu/feishu_64.go | 1145 | resp, err := c.client.Im.V1.Message.Create(ctx, req) |
| CRITICAL | pkg/channels/feishu/feishu_64.go | 1176 | uploadResp, err := c.client.Im.V1.File.Create(ctx, uploadReq) |
| CRITICAL | pkg/channels/feishu/feishu_64.go | 1201 | resp, err := c.client.Im.V1.Message.Create(ctx, req) |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | docs/security/ANTIGRAVITY_AUTH.ja.md | 694 | "api_keys": ["your-api-key"], |
| HIGH | docs/security/ANTIGRAVITY_AUTH.vi.md | 694 | "api_keys": ["your-api-key"], |
| HIGH | docs/security/ANTIGRAVITY_AUTH.md | 692 | "api_keys": ["your-api-key"], |
| HIGH | docs/security/ANTIGRAVITY_AUTH.fr.md | 694 | "api_keys": ["your-api-key"], |
| HIGH | docs/security/ANTIGRAVITY_AUTH.zh.md | 694 | "api_keys": ["your-api-key"], |
| HIGH | docs/security/ANTIGRAVITY_AUTH.pt-br.md | 694 | "api_keys": ["your-api-key"], |
| HIGH | docs/project/README.zh.md | 364 | "api_keys": ["sk-your-api-key"] |
| HIGH | docs/project/README.fr.md | 367 | "api_keys": ["sk-your-api-key"] |
| HIGH | docs/project/README.it.md | 363 | "api_keys": ["sk-your-api-key"] |
| HIGH | docs/project/README.ja.md | 364 | "api_keys": ["sk-your-api-key"] |
| HIGH | docs/project/README.pt-br.md | 364 | "api_keys": ["sk-your-api-key"] |
| HIGH | docs/project/README.id.md | 363 | "api_keys": ["sk-your-api-key"] |
| HIGH | docs/project/README.vi.md | 364 | "api_keys": ["sk-your-api-key"] |
| HIGH | docs/guides/docker.vi.md | 95 | "api_keys": ["sk-your-api-key"], |
| HIGH | docs/guides/docker.vi.md | 101 | "api_keys": ["your-api-key"], |
| HIGH | docs/guides/docker.ms.md | 94 | "api_keys": ["sk-your-api-key"], |
| HIGH | docs/guides/docker.ms.md | 100 | "api_keys": ["your-api-key"], |
| HIGH | docs/guides/providers.md | 88 | "api_keys": ["sk-your-api-key"] |
| HIGH | docs/guides/providers.zh.md | 85 | "api_keys": ["sk-your-api-key"] |
| HIGH | docs/guides/docker.pt-br.md | 95 | "api_keys": ["sk-your-api-key"], |
| HIGH | docs/guides/docker.pt-br.md | 101 | "api_keys": ["your-api-key"], |
| HIGH | docs/guides/providers.fr.md | 76 | "api_keys": ["sk-your-api-key"] |
| HIGH | docs/guides/docker.ja.md | 97 | "api_keys": ["sk-your-api-key"], |
| HIGH | docs/guides/docker.ja.md | 103 | "api_keys": ["your-api-key"], |
| HIGH | docs/guides/configuration.zh.md | 548 | "api_keys": ["sk-your-api-key"] |
| HIGH | docs/guides/providers.pt-br.md | 76 | "api_keys": ["sk-your-api-key"] |
| HIGH | docs/guides/configuration.md | 751 | "api_keys": ["sk-your-api-key"] |
| HIGH | docs/guides/providers.ja.md | 77 | "api_keys": ["sk-your-api-key"] |
| HIGH | docs/guides/docker.fr.md | 95 | "api_keys": ["sk-your-api-key"], |
| HIGH | docs/guides/docker.fr.md | 101 | "api_keys": ["your-api-key"], |
| HIGH | docs/guides/docker.zh.md | 98 | "api_keys": ["sk-your-api-key"], |
| HIGH | docs/guides/docker.zh.md | 105 | "api_keys": ["your-api-key"], |
| HIGH | docs/guides/docker.md | 99 | "api_keys": ["sk-your-api-key"], |
| HIGH | docs/guides/docker.md | 106 | "api_keys": ["your-api-key"], |
| HIGH | docs/guides/providers.vi.md | 76 | "api_keys": ["sk-your-api-key"] |
| HIGH | docs/migration/model-list-migration.md | 211 | "api_keys": ["your-api-key"], |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | cmd/picoclaw/internal/cliui/mcp_show.go | 49 | // ── plain (narrow / non-TTY) ──────────────────────────────────────────────── |
| MEDIUM | cmd/picoclaw/internal/cliui/mcp_show.go | 110 | // ── fancy (wide TTY) ──────────────────────────────────────────────────────── |
| MEDIUM | cmd/picoclaw/internal/cliui/mcp_show.go | 240 | // ── mcp list ──────────────────────────────────────────────────────────────── |
| MEDIUM | cmd/picoclaw/internal/cliui/mcp_show.go | 355 | // ── helpers ───────────────────────────────────────────────────────────────── |
| MEDIUM | docker/docker-compose.full.yml | 2 | # ───────────────────────────────────────────── |
| MEDIUM | docker/docker-compose.full.yml | 5 | # ───────────────────────────────────────────── |
| MEDIUM | docker/docker-compose.full.yml | 21 | # ───────────────────────────────────────────── |
| MEDIUM | docker/docker-compose.full.yml | 24 | # ───────────────────────────────────────────── |
| MEDIUM | docker/docker-compose.yml | 2 | # ───────────────────────────────────────────── |
| MEDIUM | docker/docker-compose.yml | 5 | # ───────────────────────────────────────────── |
| MEDIUM | docker/docker-compose.yml | 23 | # ───────────────────────────────────────────── |
| MEDIUM | docker/docker-compose.yml | 26 | # ───────────────────────────────────────────── |
| MEDIUM | docker/docker-compose.yml | 42 | # ───────────────────────────────────────────── |
| MEDIUM | docker/docker-compose.yml | 45 | # ───────────────────────────────────────────── |
| MEDIUM | .github/workflows/docker-build.yml | 26 | # ── Checkout ────────────────────────────── |
| MEDIUM | .github/workflows/docker-build.yml | 32 | # ── Docker Buildx ───────────────────────── |
| MEDIUM | .github/workflows/docker-build.yml | 36 | # ── Login to GHCR ───────────────────────── |
| MEDIUM | .github/workflows/docker-build.yml | 44 | # ── Login to Docker Hub ──────────────────── |
| MEDIUM | .github/workflows/docker-build.yml | 52 | # ── Metadata (tags & labels) ────────────── |
| MEDIUM | .github/workflows/docker-build.yml | 63 | # ── Build & Push ────────────────────────── |
| MEDIUM | pkg/config/config_channel_test.go | 466 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 468 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 525 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 527 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 828 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 830 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 1005 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 1007 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 32 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 34 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 99 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 101 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 310 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 312 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 354 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 356 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 374 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 376 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 400 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 402 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 430 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 432 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 625 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 627 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 668 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 670 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 740 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 742 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 776 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 778 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 937 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 939 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 1068 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/config/config_channel_test.go | 1070 | // ═══════════════════════════════════════════════════ |
| MEDIUM | pkg/utils/bm25.go | 21 | // ── Tuning defaults ─────────────────────────────────────────────────────────── |
| MEDIUM | pkg/routing/router_test.go | 10 | // ── ExtractFeatures ────────────────────────────────────────────────────────── |
| MEDIUM | pkg/routing/router_test.go | 146 | // ── RuleClassifier ─────────────────────────────────────────────────────────── |
| MEDIUM | pkg/routing/router_test.go | 242 | // ── Router ─────────────────────────────────────────────────────────────────── |
| MEDIUM | pkg/routing/router_test.go | 365 | // ── newWithClassifier (internal testing hook) ───────────────────────────────── |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | web/frontend/src/features/chat/history.ts | 64 | function normalizeMessageTimestamp(timestamp: number | string): string { |
| LOW | web/frontend/src/features/chat/state.ts | 53 | export function getInitialActiveSessionId(): string { |
| LOW | …/frontend/src/features/chat/assistant-message-state.ts | 22 | function normalizeAssistantMessageKind( |
| LOW | …/frontend/src/features/chat/assistant-message-state.ts | 32 | function parseAssistantMessageKind( |
| LOW | …/frontend/src/features/chat/assistant-message-state.ts | 46 | function hasExplicitAssistantKindPayload( |
| LOW | …/frontend/src/features/chat/assistant-message-state.ts | 65 | export function parseAssistantMessageCreateState( |
| LOW | …/frontend/src/features/chat/assistant-message-state.ts | 78 | export function parseAssistantMessageUpdateState( |
| LOW | web/frontend/src/features/chat/detail-visibility.ts | 40 | function serializeAssistantDetailVisibility( |
| LOW | web/frontend/src/features/chat/detail-visibility.ts | 58 | function parseAssistantDetailVisibility( |
| LOW | web/frontend/src/features/chat/detail-visibility.ts | 78 | function parseLegacyShowAssistantDetails( |
| LOW | web/frontend/src/features/chat/detail-visibility.ts | 100 | export function resolveAssistantDetailVisibilityPreference( |
| LOW | web/frontend/src/features/chat/detail-visibility.ts | 136 | export function syncAssistantDetailVisibilityStorage( |
| LOW | web/frontend/src/features/chat/detail-visibility.ts | 238 | export function shouldShowAssistantMessage( |
| LOW | web/frontend/src/features/chat/tool-calls.ts | 3 | function parseLegacyToolFeedbackContent( |
| LOW | web/frontend/src/features/chat/tool-calls.ts | 107 | export function parseToolCallsFromContent( |
| LOW | web/frontend/src/features/chat/controller.ts | 69 | function needsActiveSessionHydration(): boolean { |
| LOW | web/frontend/src/components/chat/chat-page.tsx | 65 | function resolveChatInputDisabledReason({ |
| LOW | …ontend/src/components/chat/message-code-block.utils.ts | 31 | function findFirstDescendantByTagName( |
| LOW | …ontend/src/components/chat/message-code-block.utils.ts | 57 | export function extractTextFromMarkdownNode( |
| LOW | …ontend/src/components/chat/message-code-block.utils.ts | 83 | export function stripSingleTrailingLineBreak(value: string): string { |
| LOW | …ontend/src/components/chat/message-code-block.utils.ts | 87 | export function extractCodeBlockFromPreNode(node: MarkdownNode | undefined): { |
| LOW | …ontend/src/components/chat/message-code-block.utils.ts | 99 | export function extractCodeBlockRenderState(children: ReactNode): { |
| LOW | …ontend/src/components/chat/message-code-block.utils.ts | 180 | function splitHighlightedHtmlIntoNodeLines( |
| LOW | …ontend/src/components/chat/message-code-block.utils.ts | 200 | export function splitHighlightedHtmlIntoLines(highlightedHtml: string): string[] { |
| LOW | …ontend/src/components/chat/message-code-block.utils.ts | 221 | export function trimTrailingEmptyStringLine(lines: string[]): string[] { |
| LOW | …ontend/src/components/chat/message-code-block.utils.ts | 249 | export function trimTrailingEmptyRenderedCodeLine( |
| LOW | …ontend/src/components/chat/message-code-block.utils.ts | 327 | export function splitRenderedCodeContentIntoLines( |
| LOW | …omponents/agent/tools/web-search-provider-settings.tsx | 40 | export function WebSearchProviderSettings({ |
| LOW | web/frontend/src/components/agent/hub/tool-support.ts | 15 | export function buildUnavailableToolMessages({ |
| LOW | web/frontend/src/components/models/provider-registry.ts | 118 | export function getProviderDefaultAPIBase( |
| LOW | web/frontend/src/components/models/provider-registry.ts | 125 | export function getProviderDefaultAuthMethod( |
| LOW | web/frontend/src/components/models/provider-registry.ts | 132 | export function isProviderAuthMethodLocked( |
| LOW | …components/credentials/antigravity-credential-card.tsx | 22 | export function AntigravityCredentialCard({ |
| LOW | …ontend/src/components/channels/channel-config-page.tsx | 85 | function serializeGroupTriggerForSubmit(value: unknown): unknown { |
| LOW | …ntend/src/components/channels/channel-config-fields.ts | 76 | export function getFieldValueForValidation( |
| LOW | …ntend/src/components/channels/channel-config-fields.ts | 94 | export function getSecretInputPlaceholder( |
| LOW | …rontend/src/components/channels/channel-array-utils.ts | 50 | export function parseConservativeStringListInput(raw: string): string[] { |
| LOW | …rontend/src/components/channels/channel-array-utils.ts | 67 | export function serializeStringArrayForSubmit(value: unknown): unknown { |
| LOW | web/frontend/src/hooks/use-highlight-theme.ts | 22 | function getOrCreateThemeStyleElement(): HTMLStyleElement { |
| LOW | web/frontend/src/hooks/use-highlight-theme.ts | 22 | function getOrCreateThemeStyleElement(): HTMLStyleElement { |
| LOW | web/frontend/src/hooks/use-sidebar-channels.ts | 46 | function getChannelImportanceOrder(language: string): string[] { |
| LOW | web/frontend/src/lib/clipboard.ts | 33 | function getDefaultClipboardEnvironment(): ClipboardEnvironment { |
| LOW | web/frontend/src/lib/restart-required.ts | 10 | export function showSaveSuccessOrRestartToast( |
| LOW | web/frontend/src/api/launcher-auth.ts | 9 | export async function postLauncherDashboardLogin( |
| LOW | web/frontend/src/api/launcher-auth.ts | 44 | export async function postLauncherDashboardLogout(): Promise<boolean> { |
| LOW | web/frontend/src/api/launcher-auth.ts | 56 | export async function postLauncherDashboardSetup( |
| LOW | web/frontend/src/store/gateway.ts | 45 | function clearGatewayStoppingTimeout() { |
| LOW | web/frontend/src/store/gateway.ts | 52 | function normalizeGatewayStoreState( |
| LOW | web/frontend/src/store/gateway.ts | 86 | export function beginGatewayStoppingTransition() { |
| LOW | web/frontend/src/store/gateway.ts | 102 | export function cancelGatewayStoppingTransition() { |
| LOW | web/frontend/src/store/gateway.ts | 109 | export function applyGatewayStatusToStore( |
| LOW | docs/security/ANTIGRAVITY_AUTH.ja.md | 508 | export function sanitizeAntigravityThinkingBlocks( |
| LOW | docs/security/ANTIGRAVITY_AUTH.vi.md | 508 | export function sanitizeAntigravityThinkingBlocks( |
| LOW | docs/security/ANTIGRAVITY_AUTH.md | 506 | export function sanitizeAntigravityThinkingBlocks( |
| LOW | docs/security/ANTIGRAVITY_AUTH.fr.md | 508 | export function sanitizeAntigravityThinkingBlocks( |
| LOW | docs/security/ANTIGRAVITY_AUTH.zh.md | 508 | export function sanitizeAntigravityThinkingBlocks( |
| LOW | docs/security/ANTIGRAVITY_AUTH.pt-br.md | 508 | export function sanitizeAntigravityThinkingBlocks( |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | web/backend/app_runtime.go | 21 | // - Disables HTTP keep-alive to prevent new connections during shutdown |
| LOW | pkg/seahorse/fts5_sanitize.go | 1 | package seahorse |
| LOW | pkg/seahorse/fts5_sanitize.go | 21 | // treats it as a literal phrase token. User-quoted phrases ("...") are |
| LOW | pkg/seahorse/store_test.go | 741 | // |
| LOW | pkg/seahorse/store_test.go | 761 | {Ordinal: 104, ItemType: "message", MessageID: msgs[4], TokenCount: 2}, |
| LOW | pkg/seahorse/store_test.go | 781 | // After delete: 100, 104 |
| LOW | pkg/seahorse/store_test.go | 821 | } |
| LOW | pkg/seahorse/short_engine_test.go | 1741 | // Uses (role, content, token_count) multi-dimensional comparison. |
| LOW | pkg/credential/credential.go | 1 | // Package credential resolves API credential values for model_list entries. |
| LOW | pkg/credential/credential.go | 41 | ) |
| LOW | pkg/tools/shell.go | 101 | // apply on Windows, where commands are executed via powershell -Command. |
| LOW | pkg/tools/shared/result.go | 41 | // Used for internal error handling and logging. |
| LOW | pkg/tools/shared/result.go | 101 | // result := NewToolResult("File updated successfully") |
| LOW | pkg/tools/shared/result.go | 121 | ForLLM: forLLM, |
| LOW | pkg/tools/shared/result.go | 161 | } |
| LOW | pkg/tools/shared/base.go | 141 | // asynchronous execution with completion callbacks. |
| LOW | pkg/fileutil/file.go | 21 | // - Unchanged (if any step fails before rename) |
| LOW | pkg/fileutil/file.go | 41 | // |
| LOW | pkg/memory/jsonl.go | 21 | ) |
| LOW | pkg/config/config.go | 1141 | |
| LOW | pkg/config/migration_integration_test.go | 721 | } |
| LOW | pkg/config/migration_integration_test.go | 741 | // for _, m := range v1.ModelList { |
| LOW | pkg/config/migration_integration_test.go | 761 | // |
| LOW | pkg/config/migration_integration_test.go | 781 | //func TestMigrateModelEnabled_ExplicitEnabledPreserved(t *testing.T) { |
| LOW | pkg/config/migration_integration_test.go | 801 | // {ModelName: "gpt-4", Model: "openai/gpt-4", APIKeys: SimpleSecureStrings("sk-test"), Enabled: false}, |
| LOW | pkg/config/migration_integration_test.go | 821 | // Model: "openai/gpt-4", |
| LOW | pkg/config/migration_integration_test.go | 841 | // assertEnabled("with-key", true) |
| LOW | pkg/config/migration_integration_test.go | 861 | // "group_trigger": map[string]any{"mention_only": true}, |
| LOW | pkg/config/migration_integration_test.go | 881 | // ModelList: []*ModelConfig{ |
| LOW | pkg/config/envkeys.go | 21 | const ( |
| LOW | pkg/config/config_channel.go | 201 | // IsEmpty returns true if the node has not been populated. |
| LOW | pkg/providers/factory_provider.go | 41 | } |
| LOW | pkg/providers/openai_compat/provider_test.go | 861 | } |
| LOW | pkg/utils/bm25.go | 1 | // Package utils provides shared, reusable algorithms. |
| LOW | pkg/agent/subturn.go | 81 | // |
| LOW | pkg/agent/subturn.go | 101 | // } |
| LOW | pkg/agent/subturn.go | 121 | // When Async = true (asynchronous sub-turn): |
| LOW | pkg/agent/subturn.go | 141 | // When parent finishes with hard abort (Finish(true)): |
| LOW | pkg/agent/subturn.go | 161 | MaxContextRunes int |
| LOW | pkg/agent/subturn.go | 521 | // IMPORTANT: This function is ONLY called for asynchronous sub-turns (Async=true). |
| LOW | pkg/agent/context_budget.go | 1 | // PicoClaw - Ultra-lightweight personal AI agent |
| LOW | pkg/agent/steering.go | 561 | // - Automated workflows that need to chain multiple turns |
| LOW | pkg/agent/agent.go | 281 | // "scope": msg.MediaScope, |
| LOW | pkg/agent/agent.go | 501 | // SetMediaStore injects a MediaStore for media lifecycle management. |
| LOW | pkg/agent/agent.go | 641 | |
| LOW | pkg/agent/agent.go | 661 | |
| LOW | pkg/agent/agent.go | 681 | // isNativeSearchProvider reports whether the given LLM provider implements |
| LOW | pkg/agent/context.go | 841 | // (fixes issue #607). Profile-customized static prompts are built on demand. |
| LOW | pkg/mcp/manager_real_server_integration_test.go | 21 | // |
| LOW | pkg/routing/classifier.go | 1 | package routing |
| LOW | pkg/routing/classifier.go | 21 | // token > 200 (≈600 chars): 0.35 — very long prompts are almost always complex |
| LOW | pkg/gateway/channel_matrix.go | 1 | //go:build !mipsle && !netbsd && !(freebsd && arm) && !android |
| LOW | pkg/channels/registry.go | 21 | |
| LOW | pkg/channels/marker.go | 1 | // PicoClaw - Ultra-lightweight personal AI agent |
| LOW | pkg/channels/base.go | 141 | // A value of 0 means no limit. |
| LOW | pkg/channels/telegram/parse_markdown_to_md_v2.go | 81 | // |
| LOW | pkg/session/session_store.go | 1 | package session |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | pkg/seahorse/store.go | 1193 | // Step 1: Move all items to temp negative ordinals |
| LOW | pkg/seahorse/store.go | 1206 | // Step 2: Insert new summary at the end with positive ordinal |
| LOW | pkg/seahorse/store.go | 1218 | // Step 3: Update each temp item to its final positive ordinal |
| LOW | pkg/tools/fs/filesystem_test.go | 830 | // Step 2: Read the second chunk (10 bytes) --- |
| LOW | pkg/tools/fs/filesystem_test.go | 849 | // Step 3: Read the final chunk (remaining 6 bytes) --- |
| LOW | pkg/config/config_channel.go | 739 | // Step 2: validate singleton constraints |
| LOW | pkg/config/config_channel_test.go | 471 | // Step 1: Load from extend.json |
| LOW | pkg/config/config_channel_test.go | 488 | // Step 2: Load secure from security.yml |
| LOW | pkg/config/config_channel_test.go | 498 | // Step 3: Merge |
| LOW | pkg/config/config_channel_test.go | 501 | // Step 4: Decode merged result |
| LOW | pkg/config/config_channel_test.go | 508 | // Step 5: Save extend.json → token masked as [NOT_HERE] |
| LOW | pkg/config/config_channel_test.go | 516 | // Step 6: Save security.yml → only token |
| LOW | pkg/config/config_channel_test.go | 833 | // Step 1: Load from extend.json |
| LOW | pkg/config/config_channel_test.go | 846 | // Step 2: Merge secure from security.yml |
| LOW | pkg/config/config_channel_test.go | 856 | // Step 3: Decode — both SecureString and SecureStrings should be populated |
| LOW | pkg/config/config_channel_test.go | 865 | // Step 4: Save extend.json — both secure fields removed |
| LOW | pkg/config/config_channel_test.go | 875 | // Step 5: Save security.yml — only secure fields |
| LOW | pkg/config/config_channel_test.go | 976 | // Step 2: Merge enc:// token from security.yml |
| LOW | pkg/config/config_channel_test.go | 979 | // Step 3: Decode — SecureString.fromRaw resolves enc:// → plaintext |
| LOW | pkg/config/config_channel_test.go | 988 | // Step 4: Save extend.json → token masked as [NOT_HERE] |
| LOW | pkg/config/config_channel_test.go | 995 | // Step 5: Save security.yml → token preserved as enc:// |
| LOW | pkg/config/config_channel_test.go | 958 | // Step 1: Load from extend.json (token is [NOT_HERE]) |
| LOW | pkg/config/example_security_usage.go | 331 | ## Step 1: Backup your config |
| LOW | pkg/config/example_security_usage.go | 336 | ## Step 2: Create .security.yml |
| LOW | pkg/config/example_security_usage.go | 341 | ## Step 3: Fill in your API keys |
| LOW | pkg/config/example_security_usage.go | 344 | ## Step 4: Simplify config.json (Recommended) |
| LOW | pkg/config/example_security_usage.go | 351 | ## Step 5: Set permissions |
| LOW | pkg/config/example_security_usage.go | 356 | ## Step 6: Test |
| LOW | pkg/utils/bm25.go | 123 | // Step 4: score via posting lists |
| LOW | pkg/utils/bm25.go | 145 | // Step 5: top-K via fixed-size min-heap |
| LOW | pkg/skills/clawhub_registry.go | 278 | // Step 1: Fetch metadata (with fallback). |
| LOW | pkg/skills/clawhub_registry.go | 292 | // Step 2: Resolve version. |
| LOW | pkg/skills/clawhub_registry.go | 302 | // Step 3: Download ZIP to temp file (streams in ~32KB chunks). |
| LOW | pkg/skills/clawhub_registry.go | 321 | // Step 4: Extract from file on disk. |
| LOW | pkg/channels/marker_test.go | 92 | // Step 1: Marker split should give us 2 chunks |
| LOW | pkg/channels/marker_test.go | 97 | // Step 2: Length split should be applied to each marker chunk |
| LOW | pkg/channels/manager.go | 1417 | // Step 1: Try marker-based splitting if enabled. |
| LOW | pkg/channels/manager.go | 1433 | // Step 2: Fallback to length-based splitting if no chunks from marker |
| LOW | pkg/channels/manager.go | 1438 | // Step 3: Send all chunks |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | workspace/skills/agent-browser/SKILL.md | 24 | agent-browser fill @e1 "user@example.com" |
| LOW | docs/security/ANTIGRAVITY_AUTH.ja.md | 608 | "email": "user@example.com", |
| LOW | docs/security/ANTIGRAVITY_AUTH.vi.md | 608 | "email": "user@example.com", |
| LOW | docs/security/ANTIGRAVITY_AUTH.md | 606 | "email": "user@example.com", |
| LOW | docs/security/ANTIGRAVITY_AUTH.fr.md | 608 | "email": "user@example.com", |
| LOW | docs/security/ANTIGRAVITY_AUTH.zh.md | 608 | "email": "user@example.com", |
| LOW | docs/security/ANTIGRAVITY_AUTH.pt-br.md | 608 | "email": "user@example.com", |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | docs/architecture/hooks/README.zh.md | 577 | except Exception as exc: |
| LOW | docs/architecture/hooks/plugin-tool-injection.zh.md | 173 | except Exception as exc: |
| LOW | docs/architecture/hooks/plugin-tool-injection.zh.md | 445 | except Exception as e: |
| LOW | docs/architecture/hooks/README.md | 577 | except Exception as exc: |
| LOW | docs/architecture/hooks/plugin-tool-injection.md | 173 | except Exception as exc: |
| LOW | docs/architecture/hooks/plugin-tool-injection.md | 445 | except Exception as e: |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | pkg/credential/credential.go | 242 | // Uses filepath.IsLocal on the relative path for robust cross-platform traversal detection. |
| MEDIUM | pkg/routing/features.go | 83 | // the content string, so it is robust to any message format. |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | pkg/skills/loader_test.go | 411 | content := "<!--\n# COPYRIGHT NOTICE\n# This file is part of the \"Universal Biomedical Skills\" project.\n# Copyright |