learning_ai_common_plat/reports/rule-violations-baseline.md
saravanakumardb1 4967b125fd feat(scripts): ecosystem-wide rule violation scanner + baseline report
Adds scripts/check-rule-violations.sh: a marker-based, repo-agnostic
scanner that audits every repo in repos.txt for violations of the
canonical rules in AI.dev/SKILLS/agent-behavior-guidelines.md plus
common per-repo MUST NOT rules.

Rules currently scanned (7):
- b4-console-log    \\  console.log in non-test, non-script TS/JS
- b4-swift-print    \\  print() in non-test Swift
- b4-python-print   \\  print() in src/tools/backend-python (CLIs excluded)
- ts-any-type       \\  any type in non-test TS source
- web-hardcoded-hex \\  #rgb / #rrggbb literals outside design-tokens
- b5-hardcoded-product-id \\ literal product ID strings outside config
- b7-emoji-in-code  \\  decorative emojis (faces/food/etc.) in source

Precision filters baked in:
- Cross-product UI in common_plat dashboards exempted from product-id rule
- TS literal type definitions exempted from product-id rule
- JSDoc/docstring comment lines exempted from product-id rule
- scripts/ directories exempted from console.log/print rules (CLIs print)
- CLI entrypoint files (cli.py, __main__.py) exempted from python-print
- Sandbox dirs (__LOCAL_LLMs, chat-history, __experiments) excluded
- Unicode 'Miscellaneous Symbols' block (✓✗⚠★☐) NOT flagged as emoji
  (universally used as UI status indicators, not decorative)

Bash 3.2 compatible (no associative arrays). Runs in ~13 seconds across
19 repos.

Output:
- reports/rule-violations-YYYY-MM-DD.md   (human-readable, dated, gitignored)
- reports/rule-violations-YYYY-MM-DD.json (machine-readable, dated, gitignored)
- reports/rule-violations-baseline.md     (this commit's snapshot, committed)

Baseline (2026-05-23) totals:
  Total findings:  2548 across 19 repos
  - critical: 13   (real hardcoded product IDs in non-canonical locations)
  - major:    1821 (mostly hardcoded hex colors + console.log)
  - minor:    714  (any type, decorative emojis)

By rule:
  web-hardcoded-hex       1370
  b7-emoji-in-code         465
  b4-python-print          351
  ts-any-type              249
  b4-console-log            93
  b5-hardcoded-product-id   13
  b4-swift-print             7

Repos clean (0 findings):
  - learning_ai_smart_auth (docs-only)
  - learning_ai_auth_app (small native scaffolding only)

Repos with highest finding counts:
  - learning_ai_mac_tooling: 585 (Python backend + React dashboard)
  - learning_ai_common_plat: 521 (large shared platform)
  - learning_ai_fastgap:     409
  - learning_ai_multimodal:  312

Next phase: per-repo triage and fix, processing repos in order of
ascending complexity per the roadmap (see prior planning conversation).
The scanner is the gating tool for that work.
2026-05-23 14:02:14 -07:00

2662 lines
248 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Rule Violations Report — 2026-05-23
> Generated by `scripts/check-rule-violations.sh` against canonical rules in
> [`AI.dev/SKILLS/agent-behavior-guidelines.md`](../AI.dev/SKILLS/agent-behavior-guidelines.md).
Severity legend: **critical** = data/security risk · **major** = rule violation · **minor** = style
## `learning_ai_common_plat`
**Counts:** critical=0 · major=435 · minor=86 · total=521
- **[major]** `packages/logger/src/logger.ts:40` — console.log: console.log(`${prefix} ${message}${extras}`);
- **[major]** `packages/create-app/src/scaffolder.ts:60` — console.log: console.log(`
- **[major]** `packages/create-app/src/scaffolder.ts:115` — console.log: console.log('\n📦 ByteLyst Product Scaffolder\n');
- **[major]** `packages/create-app/src/scaffolder.ts:126` — console.log: console.log('\nPlatforms (comma-separated: web, mobile, ios, android)');
- **[major]** `packages/create-app/src/scaffolder.ts:135` — console.log: console.log('\nFeatures (comma-separated: auth, billing, telemetry, flags, syn
- **[major]** `packages/create-app/src/scaffolder.ts:257` — console.log: console.log(`\n🚀 Scaffolding ${manifest.displayName}`);
- **[major]** `packages/create-app/src/scaffolder.ts:259` — console.log: console.log(` Product ID: ${manifest.productId}`);
- **[major]** `packages/create-app/src/scaffolder.ts:261` — console.log: console.log(` Output: ${outPath}`);
- **[major]** `packages/create-app/src/scaffolder.ts:263` — console.log: console.log(` Platforms: ${manifest.platforms.join(', ')}`);
- **[major]** `packages/create-app/src/scaffolder.ts:265` — console.log: console.log(` Features: ${manifest.features.join(', ')}`);
- **[major]** `packages/create-app/src/scaffolder.ts:268` — console.log: console.log(' ⚠️ DRY RUN\n');
- **[major]** `packages/create-app/src/scaffolder.ts:275` — console.log: console.log(`📄 ${files.length} files would be generated:\n`);
- **[major]** `packages/create-app/src/scaffolder.ts:278` — console.log: console.log(`── ${file.path} ──────────────────────────────────────`);
- **[major]** `packages/create-app/src/scaffolder.ts:280` — console.log: console.log(file.content);
- **[major]** `packages/create-app/src/scaffolder.ts:283` — console.log: console.log(`\n✨ Dry run complete. Re-run without --dry-run to write files.`
- **[major]** `packages/create-app/src/scaffolder.ts:293` — console.log: console.log(` ✅ ${file.path}`);
- **[major]** `packages/create-app/src/scaffolder.ts:297` — console.log: console.log(`\n✨ ${manifest.displayName} scaffolded at ${outPath}`);
- **[major]** `packages/create-app/src/scaffolder.ts:299` — console.log: console.log(`\nNext steps:`);
- **[major]** `packages/create-app/src/scaffolder.ts:301` — console.log: console.log(` cd ${outDir}/backend && npm install && npm run dev`);
- **[major]** `packages/create-app/src/scaffolder.ts:304` — console.log: console.log(` cd ${outDir}/web && npm install && npm run dev`);
- **[major]** `packages/create-app/src/generators/agents-md.ts:49` — console.log: console.log(`
- **[major]** `packages/create-app/src/generators/agents-md.ts:528` — console.log: console.log(` 📝 Would create symlink: ${target} → AGENTS.md`);
- **[major]** `packages/create-app/src/generators/agents-md.ts:533` — console.log: console.log(` ✅ ${target} → AGENTS.md`);
- **[major]** `packages/create-app/src/generators/agents-md.ts:535` — console.log: console.log(
- **[major]** `packages/create-app/src/generators/agents-md.ts:549` — console.log: console.log(`\n📄 AGENTS.md Generator`);
- **[major]** `packages/create-app/src/generators/agents-md.ts:550` — console.log: console.log(` Repo: ${repoPath}`);
- **[major]** `packages/create-app/src/generators/agents-md.ts:551` — console.log: if (dryRun) console.log(' ⚠️ DRY RUN — no files will be written\n');
- **[major]** `packages/create-app/src/generators/agents-md.ts:552` — console.log: if (update) console.log(' 🔄 UPDATE mode — preserving custom sections\n');
- **[major]** `packages/create-app/src/generators/agents-md.ts:556` — console.log: console.log(` Product: ${manifest.displayName} (${manifest.productId})`);
- **[major]** `packages/create-app/src/generators/agents-md.ts:560` — console.log: console.log(` Backend modules: ${info.backendModules.length}`);
- **[major]** `packages/create-app/src/generators/agents-md.ts:561` — console.log: console.log(` Tests: ~${info.backendTestCount + info.webTestCount + info.mob
- **[major]** `packages/create-app/src/generators/agents-md.ts:562` — console.log: console.log('');
- **[major]** `packages/create-app/src/generators/agents-md.ts:574` — console.log: console.log(` 🔄 Preserving ${customSections.size} custom section(s)`);
- **[major]** `packages/create-app/src/generators/agents-md.ts:578` — console.log: console.log(' No existing AGENTS.md to preserve custom sections from
- **[major]** `packages/create-app/src/generators/agents-md.ts:583` — console.log: console.log('── AGENTS.md ──────────────────────────────────────');
- **[major]** `packages/create-app/src/generators/agents-md.ts:584` — console.log: console.log(content);
- **[major]** `packages/create-app/src/generators/agents-md.ts:585` — console.log: console.log('\n── Symlinks ──────────────────────────────────────');
- **[major]** `packages/create-app/src/generators/agents-md.ts:587` — console.log: console.log('\n✨ Dry run complete.');
- **[major]** `packages/create-app/src/generators/agents-md.ts:594` — console.log: console.log(` ✅ AGENTS.md written`);
- **[major]** `packages/create-app/src/generators/agents-md.ts:599` — console.log: console.log(`\n✨ AGENTS.md generated for ${manifest.displayName}.`);
- **[major]** `packages/create-app/src/generators/api-routes.ts:92` — console.log: console.log(`
- **[major]** `packages/create-app/src/generators/api-routes.ts:670` — console.log: console.log(`\n🚀 Generating API routes: ${name}`);
- **[major]** `packages/create-app/src/generators/api-routes.ts:671` — console.log: console.log(` Mode: ${mode}`);
- **[major]** `packages/create-app/src/generators/api-routes.ts:672` — console.log: console.log(` Methods: ${methods.join(', ')}`);
- **[major]** `packages/create-app/src/generators/api-routes.ts:673` — console.log: console.log(` Target: ${target}`);
- **[major]** `packages/create-app/src/generators/api-routes.ts:674` — console.log: if (fields) console.log(` Fields: ${fields}`);
- **[major]** `packages/create-app/src/generators/api-routes.ts:675` — console.log: if (dryRun) console.log(' ⚠️ DRY RUN — no files will be written\n');
- **[major]** `packages/create-app/src/generators/api-routes.ts:725` — console.log: console.log('📄 Generated files:\n');
- **[major]** `packages/create-app/src/generators/api-routes.ts:727` — console.log: console.log(`── ${file.path} ──────────────────────────────────────`);
- **[major]** `packages/create-app/src/generators/api-routes.ts:728` — console.log: console.log(file.content);
- **[major]** `packages/create-app/src/generators/api-routes.ts:730` — console.log: console.log(`\n✨ Dry run complete. Re-run without --dry-run to write files.`
- **[major]** `packages/create-app/src/generators/api-routes.ts:742` — console.log: console.log(` ⚠️ SKIP ${file.path} (already exists)`);
- **[major]** `packages/create-app/src/generators/api-routes.ts:749` — console.log: console.log(` ✅ ${file.path}`);
- **[major]** `packages/create-app/src/generators/api-routes.ts:752` — console.log: console.log(`\n✨ API routes generated for "${name}".`);
- **[major]** `packages/create-app/src/generators/api-routes.ts:754` — console.log: console.log(`\nPrerequisites (if not already present):`);
- **[major]** `packages/create-app/src/generators/api-routes.ts:755` — console.log: console.log(` - lib/auth-server.ts — getCurrentUser(authHeader) function`)
- **[major]** `packages/create-app/src/generators/api-routes.ts:756` — console.log: console.log(` - lib/api-handler.ts — withErrorHandler HOF`);
- **[major]** `packages/create-app/src/generators/api-routes.ts:757` — console.log: console.log(` - lib/datastore.ts — getCosmosContainer + PRODUCT_ID`);
- **[major]** `packages/create-app/src/generators/api-routes.ts:758` — console.log: console.log(` - zod installed — npm install zod`);
- **[major]** `packages/create-app/src/generators/api-routes.ts:760` — console.log: console.log(`\nPrerequisites (if not already present):`);
- **[major]** `packages/create-app/src/generators/api-routes.ts:761` — console.log: console.log(` - lib/api-helpers.ts — getAccessToken(req) function`);
- **[major]** `packages/create-app/src/generators/api-routes.ts:762` — console.log: console.log(` - lib/api-handler.ts — withErrorHandler HOF`);
- **[major]** `packages/create-app/src/generators/api-routes.ts:763` — console.log: console.log(` - NEXT_PUBLIC_BACKEND_URL env var (or defaults to localhost:
- **[major]** `packages/mcp-client/src/index.ts:51` — console.log: console.log(
- **[major]** `packages/mcp-client/src/index.ts:76` — console.log: console.log('[MCP] Successfully connected to MCP server');
- **[major]** `packages/mcp-client/src/index.ts:102` — console.log: console.log('[MCP] Disconnected from MCP server');
- **[major]** `packages/mcp-client/src/index.ts:155` — console.log: console.log(`[MCP] Tool ${toolName} executed successfully`);
- **[major]** `packages/mcp-client/src/index.ts:321` — console.log: console.log(`[MCP-AUDIT] Tool called: ${toolName}, Args: ${JSON.stringify(sa
- **[major]** `packages/mcp-client/src/index.ts:325` — console.log: console.log(`[MCP-AUDIT] Tool succeeded: ${toolName}`);
- **[major]** `services/extraction-service/src/modules/extract/product-rate-limit.ts:408` — console.log: console.log(`[product-rate-limit] Cleaned up ${cleaned} expired entries`
- **[major]** `services/extraction-service/src/modules/extract/sidecar-monitor.ts:295` — console.log: console.log(
- **[major]** `services/monitoring/health-check.ts:39` — console.log: console.log(`🩺 Monitoring dashboard running on http://localhost:${PORT}`);
- **[major]** `services/monitoring/health-check.ts:40` — console.log: console.log(` Checking ${DEFAULT_SERVICES.length} services every request`)
- **[major]** `services/monitoring/health-check.ts:46` — console.log: console.log(`\n${icon[report.overall]} Overall: ${report.overall.toUpperCase()
- **[major]** `services/monitoring/health-check.ts:50` — console.log: console.log(
- **[major]** `services/monitoring/health-check.ts:55` — console.log: console.log(`\nHealthy: ${report.summary.healthy}/${report.summary.total}`);
- **[major]** `packages/swift-diagnostics/Sources/ByteLystDiagnostics/Core/Configuration.swift:88` — Swift print(): print("[DEBUG] \(message)")
- **[major]** `packages/swift-diagnostics/Sources/ByteLystDiagnostics/Core/Configuration.swift:93` — Swift print(): print("[INFO] \(message)")
- **[major]** `packages/swift-diagnostics/Sources/ByteLystDiagnostics/Core/Configuration.swift:97` — Swift print(): print("[WARN] \(message)")
- **[major]** `packages/swift-diagnostics/Sources/ByteLystDiagnostics/Core/Configuration.swift:101` — Swift print(): print("[ERROR] \(message)")
- **[minor]** `dashboards/admin-web/src/app/(dashboard)/ops/ab-testing/page.tsx:135` — any type: return <Badge variant={config.variant as any}>{config.label}</Badge>;
- **[minor]** `packages/mcp-client/src/index.ts:16` — any type: inputSchema?: any;
- **[minor]** `packages/mcp-client/src/index.ts:20` — any type: data: any;
- **[minor]** `packages/mcp-client/src/index.ts:77` — any type: } catch (error: any) {
- **[minor]** `packages/mcp-client/src/index.ts:103` — any type: } catch (error: any) {
- **[minor]** `packages/mcp-client/src/index.ts:109` — any type: async callTool(toolName: string, args: any = {}): Promise<any> {
- **[minor]** `packages/mcp-client/src/index.ts:143` — any type: const response = result.content as any[];
- **[minor]** `packages/mcp-client/src/index.ts:160` — any type: } catch (error: any) {
- **[minor]** `packages/mcp-client/src/index.ts:190` — any type: return response.tools.map((tool: any) => ({
- **[minor]** `packages/mcp-client/src/index.ts:195` — any type: } catch (error: any) {
- **[minor]** `packages/mcp-client/src/index.ts:225` — any type: private getCacheKey(toolName: string, args: any): string {
- **[minor]** `packages/mcp-client/src/index.ts:229` — any type: private getFromCache(key: string): any | null {
- **[minor]** `packages/mcp-client/src/index.ts:244` — any type: private setCache(key: string, data: any): void {
- **[minor]** `packages/mcp-client/src/index.ts:269` — any type: private isNonRetriableError(error: any): boolean {
- **[minor]** `packages/mcp-client/src/index.ts:318` — any type: private auditLogToolCall(toolName: string, args: any): void {
- **[minor]** `packages/mcp-client/src/index.ts:332` — any type: private sanitizeArgs(args: any): any {
- **[minor]** `services/platform-service/src/server.ts:304` — any type: const auth = (request as any).auth;
- **[minor]** `services/platform-service/src/server.ts:335` — any type: } catch (error: any) {
- **[minor]** `services/extraction-service/src/modules/transcribe/routes.ts:5` — any type: * Product-agnostic: any product backend can call this endpoint.
- **[major]** `dashboards/admin-web/src/app/api/themes/active/route.ts:30` — Hardcoded hex color: #5A8CFF
- **[major]** `dashboards/admin-web/src/app/login/page.tsx:205` — Hardcoded hex color: #4285F4
- **[major]** `dashboards/admin-web/src/app/login/page.tsx:209` — Hardcoded hex color: #34A853
- **[major]** `dashboards/admin-web/src/app/login/page.tsx:213` — Hardcoded hex color: #FBBC05
- **[major]** `dashboards/admin-web/src/app/login/page.tsx:217` — Hardcoded hex color: #EA4335
- **[major]** `dashboards/admin-web/src/components/ThemeEditor.tsx:78` — Hardcoded hex color: #5A8CFF
- **[major]** `dashboards/admin-web/src/components/ThemeEditor.tsx:127` — Hardcoded hex color: #5A8CFF
- **[major]** `dashboards/tracker-web/src/app/health/page.tsx:43` — Hardcoded hex color: #dc2626
- **[major]** `dashboards/tracker-web/src/app/health/page.tsx:56` — Hardcoded hex color: #6b7280
- **[major]** `dashboards/tracker-web/src/app/health/page.tsx:61` — Hardcoded hex color: #16a34a
- **[major]** `dashboards/tracker-web/src/app/health/page.tsx:61` — Hardcoded hex color: #dc2626
- **[major]** `dashboards/tracker-web/src/app/health/page.tsx:74` — Hardcoded hex color: #e5e7eb
- **[major]** `dashboards/tracker-web/src/app/health/page.tsx:82` — Hardcoded hex color: #e5e7eb
- **[major]** `dashboards/tracker-web/src/app/health/page.tsx:85` — Hardcoded hex color: #6b7280
- **[major]** `dashboards/tracker-web/src/app/login/page.tsx:310` — Hardcoded hex color: #4285F4
- **[major]** `dashboards/tracker-web/src/app/login/page.tsx:314` — Hardcoded hex color: #34A853
- **[major]** `dashboards/tracker-web/src/app/login/page.tsx:318` — Hardcoded hex color: #FBBC05
- **[major]** `dashboards/tracker-web/src/app/login/page.tsx:322` — Hardcoded hex color: #EA4335
- **[major]** `packages/ui/.storybook/preview.ts:8` — Hardcoded hex color: #06070A
- **[major]** `packages/ui/.storybook/preview.ts:9` — Hardcoded hex color: #0E1118
- **[major]** `packages/ui/.storybook/preview.ts:10` — Hardcoded hex color: #F8F9FC
- **[major]** `packages/ui/src/components/ConfirmDialog.tsx:40` — Hardcoded hex color: #12151c
- **[major]** `packages/ui/src/components/ConfirmDialog.tsx:40` — Hardcoded hex color: #2a2a4a
- **[major]** `packages/ui/src/components/ConfirmDialog.tsx:40` — Hardcoded hex color: #fff
- **[major]** `packages/ui/src/components/ConfirmDialog.tsx:57` — Hardcoded hex color: #a0a0b0
- **[major]** `packages/ui/src/components/Card.tsx:27` — Hardcoded hex color: #1a1a2e
- **[major]** `packages/ui/src/components/Card.tsx:27` — Hardcoded hex color: #2a2a4a
- **[major]** `packages/ui/src/components/Card.tsx:28` — Hardcoded hex color: #252540
- **[major]** `packages/ui/src/components/Card.tsx:28` — Hardcoded hex color: #2a2a4a
- **[major]** `packages/ui/src/components/Card.tsx:30` — Hardcoded hex color: #12151c
- **[major]** `packages/ui/src/components/Card.tsx:30` — Hardcoded hex color: #2a2a4a
- **[major]** `packages/ui/src/components/Card.tsx:31` — Hardcoded hex color: #2a2a4a
- **[major]** `packages/ui/src/components/Card.tsx:40` — Hardcoded hex color: #5A8CFF
- **[major]** `packages/ui/src/components/Card.tsx:67` — Hardcoded hex color: #fff
- **[major]** `packages/ui/src/components/Card.tsx:82` — Hardcoded hex color: #a0a0b0
- **[major]** `packages/ui/src/components/StatCard.tsx:21` — Hardcoded hex color: #1a1a2e
- **[major]** `packages/ui/src/components/StatCard.tsx:21` — Hardcoded hex color: #2a2a4a
- **[major]** `packages/ui/src/components/StatCard.tsx:27` — Hardcoded hex color: #a0a0b0
- **[major]** `packages/ui/src/components/StatCard.tsx:30` — Hardcoded hex color: #fff
- **[major]** `packages/ui/src/components/StatCard.tsx:35` — Hardcoded hex color: #252540
- **[major]** `packages/ui/src/components/StatCard.tsx:35` — Hardcoded hex color: #a0a0b0
- **[major]** `packages/ui/src/components/StatCard.tsx:46` — Hardcoded hex color: #34D399
- **[major]** `packages/ui/src/components/StatCard.tsx:47` — Hardcoded hex color: #FF6E6E
- **[major]** `packages/ui/src/components/StatCard.tsx:48` — Hardcoded hex color: #a0a0b0
- **[major]** `packages/ui/src/components/StatCard.tsx:54` — Hardcoded hex color: #34D399
- **[major]** `packages/ui/src/components/StatCard.tsx:55` — Hardcoded hex color: #FF6E6E
- **[major]** `packages/ui/src/components/StatCard.tsx:56` — Hardcoded hex color: #a0a0b0
- **[major]** `packages/ui/src/components/Label.tsx:12` — Hardcoded hex color: #a0a0b0
- **[major]** `packages/ui/src/components/LoadingSpinner.tsx:29` — Hardcoded hex color: #5A8CFF
- **[major]** `packages/ui/src/components/LoadingSpinner.tsx:30` — Hardcoded hex color: #a0a0b0
- **[major]** `packages/ui/src/components/Badge.tsx:21` — Hardcoded hex color: #252540
- **[major]** `packages/ui/src/components/Badge.tsx:21` — Hardcoded hex color: #a0a0b0
- **[major]** `packages/ui/src/components/Badge.tsx:21` — Hardcoded hex color: #2a2a4a
- **[major]** `packages/ui/src/components/Sidebar.tsx:33` — Hardcoded hex color: #2a2a4a
- **[major]** `packages/ui/src/components/Sidebar.tsx:33` — Hardcoded hex color: #12151c
- **[major]** `packages/ui/src/components/Sidebar.tsx:34` — Hardcoded hex color: #fff
- **[major]** `packages/ui/src/components/Sidebar.tsx:58` — Hardcoded hex color: #2a2a4a
- **[major]** `packages/ui/src/components/Sidebar.tsx:58` — Hardcoded hex color: #12151c
- **[major]** `packages/ui/src/components/Sidebar.tsx:65` — Hardcoded hex color: #2a2a4a
- **[major]** `packages/ui/src/components/Sidebar.tsx:72` — Hardcoded hex color: #2a2a4a
- **[major]** `packages/ui/src/components/Sidebar.tsx:72` — Hardcoded hex color: #a0a0b0
- **[major]** `packages/ui/src/components/Sidebar.tsx:96` — Hardcoded hex color: #5A8CFF
- **[major]** `packages/ui/src/components/Sidebar.tsx:98` — Hardcoded hex color: #1a1a2e
- **[major]** `packages/ui/src/components/Sidebar.tsx:98` — Hardcoded hex color: #fff
- **[major]** `packages/ui/src/components/Sidebar.tsx:99` — Hardcoded hex color: #a0a0b0
- **[major]** `packages/ui/src/components/Sidebar.tsx:99` — Hardcoded hex color: #252540
- **[major]** `packages/ui/src/components/Sidebar.tsx:99` — Hardcoded hex color: #fff
- **[major]** `packages/ui/src/components/Separator.tsx:14` — Hardcoded hex color: #2a2a4a
- **[major]** `packages/ui/src/components/Separator.tsx:24` — Hardcoded hex color: #2a2a4a
- **[major]** `packages/ui/src/components/Button.tsx:21` — Hardcoded hex color: #5A8CFF
- **[major]** `packages/ui/src/components/Button.tsx:21` — Hardcoded hex color: #0b0f17
- **[major]** `packages/ui/src/components/Button.tsx:25` — Hardcoded hex color: #5A8CFF
- **[major]** `packages/ui/src/components/Button.tsx:25` — Hardcoded hex color: #0b0f17
- **[major]** `packages/ui/src/components/Button.tsx:27` — Hardcoded hex color: #2a2a4a
- **[major]** `packages/ui/src/components/Button.tsx:27` — Hardcoded hex color: #1a1a2e
- **[major]** `packages/ui/src/components/Button.tsx:27` — Hardcoded hex color: #fff
- **[major]** `packages/ui/src/components/Button.tsx:27` — Hardcoded hex color: #2a2a4a
- **[major]** `packages/ui/src/components/Button.tsx:27` — Hardcoded hex color: #252540
- **[major]** `packages/ui/src/components/Button.tsx:29` — Hardcoded hex color: #a0a0b0
- **[major]** `packages/ui/src/components/Button.tsx:29` — Hardcoded hex color: #252540
- **[major]** `packages/ui/src/components/Button.tsx:29` — Hardcoded hex color: #fff
- **[major]** `packages/ui/src/components/Button.tsx:31` — Hardcoded hex color: #fff
- **[major]** `packages/ui/src/components/Button.tsx:33` — Hardcoded hex color: #2a2a4a
- **[major]** `packages/ui/src/components/Button.tsx:33` — Hardcoded hex color: #fff
- **[major]** `packages/ui/src/components/Button.tsx:33` — Hardcoded hex color: #5A8CFF
- **[major]** `packages/ui/src/components/Button.tsx:33` — Hardcoded hex color: #252540
- **[major]** `packages/ui/src/components/Button.tsx:35` — Hardcoded hex color: #252540
- **[major]** `packages/ui/src/components/Button.tsx:35` — Hardcoded hex color: #fff
- **[major]** `packages/ui/src/components/Button.tsx:35` — Hardcoded hex color: #1a1a2e
- **[major]** `packages/ui/src/components/Button.tsx:36` — Hardcoded hex color: #5A8CFF
- **[major]** `packages/ui/src/components/Modal.tsx:40` — Hardcoded hex color: #12151c
- **[major]** `packages/ui/src/components/Modal.tsx:40` — Hardcoded hex color: #2a2a4a
- **[major]** `packages/ui/src/components/Modal.tsx:40` — Hardcoded hex color: #fff
- **[major]** `packages/ui/src/components/Modal.tsx:47` — Hardcoded hex color: #a0a0b0
- **[major]** `packages/ui/src/components/Modal.tsx:54` — Hardcoded hex color: #666
- **[major]** `packages/ui/src/components/Modal.tsx:54` — Hardcoded hex color: #fff
- **[major]** `packages/ui/src/components/Toast.tsx:52` — Hardcoded hex color: #1a1a2e
- **[major]** `packages/ui/src/components/Toast.tsx:52` — Hardcoded hex color: #2a2a4a
- **[major]** `packages/ui/src/components/Toast.tsx:52` — Hardcoded hex color: #fff
- **[major]** `packages/ui/src/components/Toast.tsx:59` — Hardcoded hex color: #a0a0b0
- **[major]** `packages/ui/src/components/Toast.tsx:66` — Hardcoded hex color: #666
- **[major]** `packages/ui/src/components/Toast.tsx:66` — Hardcoded hex color: #fff
- **[major]** `packages/ui/src/components/EmptyState.tsx:30` — Hardcoded hex color: #555
- **[major]** `packages/ui/src/components/EmptyState.tsx:33` — Hardcoded hex color: #fff
- **[major]** `packages/ui/src/components/EmptyState.tsx:35` — Hardcoded hex color: #a0a0b0
- **[major]** `packages/ui/src/components/CardButton.tsx:51` — Hardcoded hex color: #5A8CFF
- **[major]** `packages/ui/src/components/CardButton.tsx:51` — Hardcoded hex color: #0b0f17
- **[major]** `packages/ui/src/components/CardButton.tsx:55` — Hardcoded hex color: #5A8CFF
- **[major]** `packages/ui/src/components/Select.tsx:37` — Hardcoded hex color: #1a1a2e
- **[major]** `packages/ui/src/components/Select.tsx:38` — Hardcoded hex color: #252540
- **[major]** `packages/ui/src/components/Select.tsx:47` — Hardcoded hex color: #a0a0b0
- **[major]** `packages/ui/src/components/Select.tsx:60` — Hardcoded hex color: #fff
- **[major]** `packages/ui/src/components/Select.tsx:62` — Hardcoded hex color: #5A8CFF
- **[major]** `packages/ui/src/components/Select.tsx:63` — Hardcoded hex color: #2a2a4a
- **[major]** `packages/ui/src/components/Select.tsx:82` — Hardcoded hex color: #555
- **[major]** `packages/ui/src/components/Textarea.tsx:25` — Hardcoded hex color: #1a1a2e
- **[major]** `packages/ui/src/components/Textarea.tsx:26` — Hardcoded hex color: #252540
- **[major]** `packages/ui/src/components/Textarea.tsx:35` — Hardcoded hex color: #a0a0b0
- **[major]** `packages/ui/src/components/Textarea.tsx:47` — Hardcoded hex color: #fff
- **[major]** `packages/ui/src/components/Textarea.tsx:48` — Hardcoded hex color: #555
- **[major]** `packages/ui/src/components/Textarea.tsx:50` — Hardcoded hex color: #5A8CFF
- **[major]** `packages/ui/src/components/Textarea.tsx:51` — Hardcoded hex color: #2a2a4a
- **[major]** `packages/ui/src/components/Textarea.tsx:64` — Hardcoded hex color: #555
- **[major]** `packages/ui/src/components/Input.tsx:25` — Hardcoded hex color: #1a1a2e
- **[major]** `packages/ui/src/components/Input.tsx:26` — Hardcoded hex color: #252540
- **[major]** `packages/ui/src/components/Input.tsx:35` — Hardcoded hex color: #a0a0b0
- **[major]** `packages/ui/src/components/Input.tsx:47` — Hardcoded hex color: #fff
- **[major]** `packages/ui/src/components/Input.tsx:48` — Hardcoded hex color: #555
- **[major]** `packages/ui/src/components/Input.tsx:50` — Hardcoded hex color: #5A8CFF
- **[major]** `packages/ui/src/components/Input.tsx:51` — Hardcoded hex color: #2a2a4a
- **[major]** `packages/ui/src/components/Input.tsx:64` — Hardcoded hex color: #555
- **[major]** `packages/devops/src/ui.tsx:76` — Hardcoded hex color: #ef4444
- **[major]** `packages/devops/src/ui.tsx:136` — Hardcoded hex color: #ef4444
- **[major]** `packages/devops/src/ui.tsx:305` — Hardcoded hex color: #6b7280
- **[major]** `packages/devops/src/ui.tsx:306` — Hardcoded hex color: #6b7280
- **[major]** `packages/devops/src/ui.tsx:310` — Hardcoded hex color: #e5e7eb
- **[major]** `packages/devops/src/ui.tsx:318` — Hardcoded hex color: #6b7280
- **[major]** `packages/devops/src/ui.tsx:323` — Hardcoded hex color: #2563eb
- **[major]** `packages/devops/src/ui.tsx:324` — Hardcoded hex color: #fff
- **[major]** `packages/devops/src/ui.tsx:330` — Hardcoded hex color: #e5e7eb
- **[major]** `packages/devops/src/ui.tsx:338` — Hardcoded hex color: #e5e7eb
- **[major]** `packages/devops/src/ui.tsx:349` — Hardcoded hex color: #6b7280
- **[major]** `packages/devops/src/ui.tsx:354` — Hardcoded hex color: #2563eb
- **[major]** `packages/devops/src/ui.tsx:365` — Hardcoded hex color: #f3f4f6
- **[major]** `packages/devops/src/ui.tsx:369` — Hardcoded hex color: #6b7280
- **[major]** `packages/devops/src/ui.tsx:385` — Hardcoded hex color: #000
- **[major]** `packages/devops/src/ui.tsx:393` — Hardcoded hex color: #000
- **[major]** `packages/devops/src/ui.tsx:409` — Hardcoded hex color: #10b981
- **[major]** `packages/devops/src/ui.tsx:410` — Hardcoded hex color: #10b981
- **[major]** `packages/devops/src/ui.tsx:413` — Hardcoded hex color: #ef4444
- **[major]** `packages/devops/src/ui.tsx:414` — Hardcoded hex color: #ef4444
- **[major]** `packages/devops/src/ui.tsx:419` — Hardcoded hex color: #6b7280
- **[major]** `packages/feature-flag-client/src/client.ts:27` — Hardcoded hex color: #000000
- **[major]** `packages/config/src/product-manifest.ts:23` — Hardcoded hex color: #5AE68C
- **[major]** `packages/config/src/product-manifest.ts:229` — Hardcoded hex color: #5AE68C
- **[major]** `packages/config/src/product-manifest.ts:230` — Hardcoded hex color: #5A8CFF
- **[major]** `packages/config/src/product-manifest.ts:231` — Hardcoded hex color: #2EE6D6
- **[major]** `packages/config/src/product-manifest.ts:232` — Hardcoded hex color: #06070A
- **[major]** `packages/config/src/product-manifest.ts:233` — Hardcoded hex color: #121725
- **[major]** `packages/config/src/product-manifest.ts:234` — Hardcoded hex color: #EFF4FF
- **[major]** `packages/config/src/product-manifest.ts:235` — Hardcoded hex color: #FF6E6E
- **[major]** `packages/config/src/product-manifest.ts:236` — Hardcoded hex color: #F59E0B
- **[major]** `packages/config/src/product-manifest.ts:237` — Hardcoded hex color: #34D399
- **[major]** `packages/auth-ui/src/VerifyEmailForm.tsx:30` — Hardcoded hex color: #333
- **[major]** `packages/auth-ui/src/VerifyEmailForm.tsx:47` — Hardcoded hex color: #ccc
- **[major]** `packages/auth-ui/src/VerifyEmailForm.tsx:61` — Hardcoded hex color: #dc3545
- **[major]** `packages/auth-ui/src/VerifyEmailForm.tsx:70` — Hardcoded hex color: #22c55e
- **[major]** `packages/auth-ui/src/VerifyEmailForm.tsx:84` — Hardcoded hex color: #0066ff
- **[major]** `packages/auth-ui/src/VerifyEmailForm.tsx:85` — Hardcoded hex color: #fff
- **[major]** `packages/auth-ui/src/VerifyEmailForm.tsx:105` — Hardcoded hex color: #0066ff
- **[major]** `packages/auth-ui/src/MfaChallenge.tsx:29` — Hardcoded hex color: #333
- **[major]** `packages/auth-ui/src/MfaChallenge.tsx:36` — Hardcoded hex color: #999
- **[major]** `packages/auth-ui/src/MfaChallenge.tsx:55` — Hardcoded hex color: #ccc
- **[major]** `packages/auth-ui/src/MfaChallenge.tsx:67` — Hardcoded hex color: #dc3545
- **[major]** `packages/auth-ui/src/MfaChallenge.tsx:81` — Hardcoded hex color: #0066ff
- **[major]** `packages/auth-ui/src/MfaChallenge.tsx:82` — Hardcoded hex color: #fff
- **[major]** `packages/auth-ui/src/MfaChallenge.tsx:102` — Hardcoded hex color: #0066ff
- **[major]** `packages/auth-ui/src/ForgotPasswordForm.tsx:25` — Hardcoded hex color: #ccc
- **[major]** `packages/auth-ui/src/ForgotPasswordForm.tsx:38` — Hardcoded hex color: #333
- **[major]** `packages/auth-ui/src/ForgotPasswordForm.tsx:56` — Hardcoded hex color: #dc3545
- **[major]** `packages/auth-ui/src/ForgotPasswordForm.tsx:65` — Hardcoded hex color: #22c55e
- **[major]** `packages/auth-ui/src/ForgotPasswordForm.tsx:79` — Hardcoded hex color: #0066ff
- **[major]** `packages/auth-ui/src/ForgotPasswordForm.tsx:80` — Hardcoded hex color: #fff
- **[major]** `packages/auth-ui/src/ForgotPasswordForm.tsx:99` — Hardcoded hex color: #0066ff
- **[major]** `packages/auth-ui/src/AuthPageLayout.tsx:27` — Hardcoded hex color: #f5f5f5
- **[major]** `packages/auth-ui/src/AuthPageLayout.tsx:35` — Hardcoded hex color: #fff
- **[major]** `packages/auth-ui/src/AuthPageLayout.tsx:53` — Hardcoded hex color: #111
- **[major]** `packages/auth-ui/src/AuthPageLayout.tsx:62` — Hardcoded hex color: #333
- **[major]** `packages/auth-ui/src/AuthPageLayout.tsx:71` — Hardcoded hex color: #666
- **[major]** `packages/auth-ui/src/AuthPageLayout.tsx:88` — Hardcoded hex color: #eee
- **[major]** `packages/auth-ui/src/AuthPageLayout.tsx:91` — Hardcoded hex color: #999
- **[major]** `packages/auth-ui/src/LoginForm.tsx:41` — Hardcoded hex color: #ccc
- **[major]** `packages/auth-ui/src/LoginForm.tsx:56` — Hardcoded hex color: #ccc
- **[major]** `packages/auth-ui/src/LoginForm.tsx:65` — Hardcoded hex color: #dc3545
- **[major]** `packages/auth-ui/src/LoginForm.tsx:79` — Hardcoded hex color: #0066ff
- **[major]** `packages/auth-ui/src/LoginForm.tsx:80` — Hardcoded hex color: #fff
- **[major]** `packages/auth-ui/src/LoginForm.tsx:99` — Hardcoded hex color: #999
- **[major]** `packages/auth-ui/src/LoginForm.tsx:104` — Hardcoded hex color: #eee
- **[major]** `packages/auth-ui/src/LoginForm.tsx:108` — Hardcoded hex color: #eee
- **[major]** `packages/auth-ui/src/RegisterForm.tsx:42` — Hardcoded hex color: #ccc
- **[major]** `packages/auth-ui/src/RegisterForm.tsx:55` — Hardcoded hex color: #333
- **[major]** `packages/auth-ui/src/RegisterForm.tsx:69` — Hardcoded hex color: #333
- **[major]** `packages/auth-ui/src/RegisterForm.tsx:83` — Hardcoded hex color: #333
- **[major]** `packages/auth-ui/src/RegisterForm.tsx:100` — Hardcoded hex color: #333
- **[major]** `packages/auth-ui/src/RegisterForm.tsx:114` — Hardcoded hex color: #dc3545
- **[major]** `packages/auth-ui/src/RegisterForm.tsx:122` — Hardcoded hex color: #dc3545
- **[major]** `packages/auth-ui/src/RegisterForm.tsx:135` — Hardcoded hex color: #333
- **[major]** `packages/auth-ui/src/RegisterForm.tsx:152` — Hardcoded hex color: #0066ff
- **[major]** `packages/auth-ui/src/RegisterForm.tsx:164` — Hardcoded hex color: #0066ff
- **[major]** `packages/auth-ui/src/RegisterForm.tsx:177` — Hardcoded hex color: #dc3545
- **[major]** `packages/auth-ui/src/RegisterForm.tsx:191` — Hardcoded hex color: #0066ff
- **[major]** `packages/auth-ui/src/RegisterForm.tsx:192` — Hardcoded hex color: #fff
- **[major]** `packages/auth-ui/src/RegisterForm.tsx:203` — Hardcoded hex color: #999
- **[major]** `packages/auth-ui/src/RegisterForm.tsx:212` — Hardcoded hex color: #0066ff
- **[major]** `packages/auth-ui/src/ResetPasswordForm.tsx:30` — Hardcoded hex color: #ccc
- **[major]** `packages/auth-ui/src/ResetPasswordForm.tsx:43` — Hardcoded hex color: #333
- **[major]** `packages/auth-ui/src/ResetPasswordForm.tsx:47` — Hardcoded hex color: #333
- **[major]** `packages/auth-ui/src/ResetPasswordForm.tsx:64` — Hardcoded hex color: #333
- **[major]** `packages/auth-ui/src/ResetPasswordForm.tsx:78` — Hardcoded hex color: #dc3545
- **[major]** `packages/auth-ui/src/ResetPasswordForm.tsx:86` — Hardcoded hex color: #dc3545
- **[major]** `packages/auth-ui/src/ResetPasswordForm.tsx:95` — Hardcoded hex color: #dc3545
- **[major]** `packages/auth-ui/src/ResetPasswordForm.tsx:104` — Hardcoded hex color: #22c55e
- **[major]** `packages/auth-ui/src/ResetPasswordForm.tsx:118` — Hardcoded hex color: #0066ff
- **[major]** `packages/auth-ui/src/ResetPasswordForm.tsx:119` — Hardcoded hex color: #fff
- **[major]** `packages/auth-ui/src/SocialButtons.tsx:34` — Hardcoded hex color: #ccc
- **[major]** `packages/auth-ui/src/SocialButtons.tsx:36` — Hardcoded hex color: #fff
- **[major]** `packages/auth-ui/src/SocialButtons.tsx:37` — Hardcoded hex color: #333
- **[major]** `packages/auth-ui/src/PasswordStrengthBar.tsx:10` — Hardcoded hex color: #dc3545
- **[major]** `packages/auth-ui/src/PasswordStrengthBar.tsx:11` — Hardcoded hex color: #f59e0b
- **[major]** `packages/auth-ui/src/PasswordStrengthBar.tsx:12` — Hardcoded hex color: #3b82f6
- **[major]** `packages/auth-ui/src/PasswordStrengthBar.tsx:13` — Hardcoded hex color: #22c55e
- **[major]** `packages/auth-ui/src/PasswordStrengthBar.tsx:44` — Hardcoded hex color: #e5e7eb
- **[major]** `packages/auth-ui/src/OnboardingShell.tsx:28` — Hardcoded hex color: #e5e7eb
- **[major]** `packages/auth-ui/src/OnboardingShell.tsx:38` — Hardcoded hex color: #0066ff
- **[major]** `packages/auth-ui/src/OnboardingShell.tsx:67` — Hardcoded hex color: #0066ff
- **[major]** `packages/auth-ui/src/OnboardingShell.tsx:69` — Hardcoded hex color: #22c55e
- **[major]** `packages/auth-ui/src/OnboardingShell.tsx:70` — Hardcoded hex color: #999
- **[major]** `packages/auth-ui/src/OnboardingShell.tsx:85` — Hardcoded hex color: #0066ff
- **[major]** `packages/auth-ui/src/OnboardingShell.tsx:85` — Hardcoded hex color: #e5e7eb
- **[major]** `packages/auth-ui/src/OnboardingShell.tsx:86` — Hardcoded hex color: #fff
- **[major]** `packages/auth-ui/src/OnboardingShell.tsx:86` — Hardcoded hex color: #999
- **[major]** `packages/auth-ui/src/OnboardingShell.tsx:116` — Hardcoded hex color: #ccc
- **[major]** `packages/auth-ui/src/OnboardingShell.tsx:118` — Hardcoded hex color: #fff
- **[major]** `packages/auth-ui/src/OnboardingShell.tsx:119` — Hardcoded hex color: #333
- **[major]** `packages/auth-ui/src/OnboardingShell.tsx:136` — Hardcoded hex color: #0066ff
- **[major]** `packages/auth-ui/src/OnboardingShell.tsx:137` — Hardcoded hex color: #fff
- **[major]** `packages/dashboard-shell/src/DashboardShell.tsx:31` — Hardcoded hex color: #f9fafb
- **[major]** `packages/dashboard-shell/src/TopBar.tsx:37` — Hardcoded hex color: #e5e7eb
- **[major]** `packages/dashboard-shell/src/TopBar.tsx:38` — Hardcoded hex color: #fff
- **[major]** `packages/dashboard-shell/src/TopBar.tsx:54` — Hardcoded hex color: #6b7280
- **[major]** `packages/dashboard-shell/src/TopBar.tsx:76` — Hardcoded hex color: #6b7280
- **[major]** `packages/dashboard-shell/src/TopBar.tsx:113` — Hardcoded hex color: #2563eb
- **[major]** `packages/dashboard-shell/src/TopBar.tsx:114` — Hardcoded hex color: #fff
- **[major]** `packages/dashboard-shell/src/TopBar.tsx:128` — Hardcoded hex color: #111827
- **[major]** `packages/dashboard-shell/src/TopBar.tsx:145` — Hardcoded hex color: #fff
- **[major]** `packages/dashboard-shell/src/TopBar.tsx:146` — Hardcoded hex color: #e5e7eb
- **[major]** `packages/dashboard-shell/src/TopBar.tsx:156` — Hardcoded hex color: #e5e7eb
- **[major]** `packages/dashboard-shell/src/TopBar.tsx:160` — Hardcoded hex color: #6b7280
- **[major]** `packages/dashboard-shell/src/TopBar.tsx:216` — Hardcoded hex color: #e5e7eb
- **[major]** `packages/dashboard-shell/src/TopBar.tsx:217` — Hardcoded hex color: #dc2626
- **[major]** `packages/dashboard-shell/src/TopBar.tsx:222` — Hardcoded hex color: #e5e7eb
- **[major]** `packages/dashboard-shell/src/TopBar.tsx:241` — Hardcoded hex color: #111827
- **[major]** `packages/dashboard-shell/src/SettingsPage.tsx:12` — Hardcoded hex color: #111827
- **[major]** `packages/dashboard-shell/src/SettingsPage.tsx:24` — Hardcoded hex color: #6b7280
- **[major]** `packages/dashboard-shell/src/SettingsPage.tsx:39` — Hardcoded hex color: #e5e7eb
- **[major]** `packages/dashboard-shell/src/SettingsPage.tsx:41` — Hardcoded hex color: #fff
- **[major]** `packages/dashboard-shell/src/SettingsPage.tsx:49` — Hardcoded hex color: #111827
- **[major]** `packages/dashboard-shell/src/SettingsPage.tsx:58` — Hardcoded hex color: #6b7280
- **[major]** `packages/dashboard-shell/src/ProfilePage.tsx:26` — Hardcoded hex color: #111827
- **[major]** `packages/dashboard-shell/src/ProfilePage.tsx:33` — Hardcoded hex color: #dc2626
- **[major]** `packages/dashboard-shell/src/ProfilePage.tsx:38` — Hardcoded hex color: #16a34a
- **[major]** `packages/dashboard-shell/src/ProfilePage.tsx:51` — Hardcoded hex color: #2563eb
- **[major]** `packages/dashboard-shell/src/ProfilePage.tsx:52` — Hardcoded hex color: #fff
- **[major]** `packages/dashboard-shell/src/ProfilePage.tsx:77` — Hardcoded hex color: #6b7280
- **[major]** `packages/dashboard-shell/src/ProfilePage.tsx:84` — Hardcoded hex color: #6b7280
- **[major]** `packages/dashboard-shell/src/ProfilePage.tsx:137` — Hardcoded hex color: #2563eb
- **[major]** `packages/dashboard-shell/src/ProfilePage.tsx:138` — Hardcoded hex color: #fff
- **[major]** `packages/dashboard-shell/src/ProfilePage.tsx:156` — Hardcoded hex color: #111827
- **[major]** `packages/dashboard-shell/src/ProfilePage.tsx:163` — Hardcoded hex color: #e5e7eb
- **[major]** `packages/dashboard-shell/src/ProfilePage.tsx:165` — Hardcoded hex color: #fff
- **[major]** `packages/dashboard-shell/src/ProfilePage.tsx:166` — Hardcoded hex color: #111827
- **[major]** `packages/dashboard-shell/src/BillingPage.tsx:5` — Hardcoded hex color: #16a34a
- **[major]** `packages/dashboard-shell/src/BillingPage.tsx:6` — Hardcoded hex color: #d97706
- **[major]** `packages/dashboard-shell/src/BillingPage.tsx:7` — Hardcoded hex color: #dc2626
- **[major]** `packages/dashboard-shell/src/BillingPage.tsx:8` — Hardcoded hex color: #6b7280
- **[major]** `packages/dashboard-shell/src/BillingPage.tsx:25` — Hardcoded hex color: #111827
- **[major]** `packages/dashboard-shell/src/BillingPage.tsx:37` — Hardcoded hex color: #e5e7eb
- **[major]** `packages/dashboard-shell/src/BillingPage.tsx:39` — Hardcoded hex color: #fff
- **[major]** `packages/dashboard-shell/src/BillingPage.tsx:54` — Hardcoded hex color: #6b7280
- **[major]** `packages/dashboard-shell/src/BillingPage.tsx:61` — Hardcoded hex color: #111827
- **[major]** `packages/dashboard-shell/src/BillingPage.tsx:85` — Hardcoded hex color: #d97706
- **[major]** `packages/dashboard-shell/src/BillingPage.tsx:98` — Hardcoded hex color: #e5e7eb
- **[major]** `packages/dashboard-shell/src/BillingPage.tsx:102` — Hardcoded hex color: #fff
- **[major]** `packages/dashboard-shell/src/BillingPage.tsx:103` — Hardcoded hex color: #111827
- **[major]** `packages/dashboard-shell/src/BillingPage.tsx:119` — Hardcoded hex color: #111827
- **[major]** `packages/dashboard-shell/src/BillingPage.tsx:140` — Hardcoded hex color: #2563eb
- **[major]** `packages/dashboard-shell/src/BillingPage.tsx:141` — Hardcoded hex color: #e5e7eb
- **[major]** `packages/dashboard-shell/src/BillingPage.tsx:142` — Hardcoded hex color: #fff
- **[major]** `packages/dashboard-shell/src/BillingPage.tsx:151` — Hardcoded hex color: #2563eb
- **[major]** `packages/dashboard-shell/src/BillingPage.tsx:163` — Hardcoded hex color: #6b7280
- **[major]** `packages/dashboard-shell/src/BillingPage.tsx:176` — Hardcoded hex color: #2563eb
- **[major]** `packages/dashboard-shell/src/Sidebar.tsx:44` — Hardcoded hex color: #111827
- **[major]** `packages/dashboard-shell/src/Sidebar.tsx:45` — Hardcoded hex color: #6b7280
- **[major]** `packages/dashboard-shell/src/Sidebar.tsx:47` — Hardcoded hex color: #f3f4f6
- **[major]** `packages/dashboard-shell/src/Sidebar.tsx:66` — Hardcoded hex color: #2563eb
- **[major]** `packages/dashboard-shell/src/Sidebar.tsx:67` — Hardcoded hex color: #fff
- **[major]** `packages/dashboard-shell/src/Sidebar.tsx:104` — Hardcoded hex color: #fff
- **[major]** `packages/dashboard-shell/src/Sidebar.tsx:105` — Hardcoded hex color: #e5e7eb
- **[major]** `packages/dashboard-shell/src/Sidebar.tsx:118` — Hardcoded hex color: #e5e7eb
- **[major]** `packages/dashboard-shell/src/Sidebar.tsx:135` — Hardcoded hex color: #2563eb
- **[major]** `packages/dashboard-shell/src/Sidebar.tsx:153` — Hardcoded hex color: #6b7280
- **[major]** `packages/dashboard-shell/src/Sidebar.tsx:183` — Hardcoded hex color: #6b7280
- **[major]** `packages/dashboard-shell/src/Sidebar.tsx:220` — Hardcoded hex color: #e5e7eb
- **[major]** `packages/dashboard-shell/src/Sidebar.tsx:222` — Hardcoded hex color: #6b7280
- **[major]** `packages/create-app/src/lib/templates.ts:455` — Hardcoded hex color: #666
- **[major]** `packages/dashboard-components/src/PageHeader.tsx:27` — Hardcoded hex color: #6b7280
- **[major]** `packages/dashboard-components/src/PageHeader.tsx:37` — Hardcoded hex color: #6b7280
- **[major]** `packages/dashboard-components/src/PageHeader.tsx:48` — Hardcoded hex color: #111827
- **[major]** `packages/dashboard-components/src/ErrorPage.tsx:20` — Hardcoded hex color: #fef2f2
- **[major]** `packages/dashboard-components/src/ErrorPage.tsx:24` — Hardcoded hex color: #ef4444
- **[major]** `packages/dashboard-components/src/ErrorPage.tsx:39` — Hardcoded hex color: #111827
- **[major]** `packages/dashboard-components/src/ErrorPage.tsx:45` — Hardcoded hex color: #6b7280
- **[major]** `packages/dashboard-components/src/ErrorPage.tsx:53` — Hardcoded hex color: #2563eb
- **[major]** `packages/dashboard-components/src/LoadingSkeleton.tsx:15` — Hardcoded hex color: #e5e7eb
- **[major]** `packages/dashboard-components/src/NotFoundPage.tsx:27` — Hardcoded hex color: #9ca3af
- **[major]** `packages/dashboard-components/src/NotFoundPage.tsx:33` — Hardcoded hex color: #111827
- **[major]** `packages/dashboard-components/src/NotFoundPage.tsx:37` — Hardcoded hex color: #6b7280
- **[major]** `packages/dashboard-components/src/NotFoundPage.tsx:45` — Hardcoded hex color: #2563eb
- **[major]** `packages/dashboard-components/src/NotFoundPage.tsx:53` — Hardcoded hex color: #2563eb
- **[major]** `packages/dashboard-components/src/EmptyState.tsx:28` — Hardcoded hex color: #f3f4f6
- **[major]** `packages/dashboard-components/src/EmptyState.tsx:35` — Hardcoded hex color: #111827
- **[major]** `packages/dashboard-components/src/EmptyState.tsx:39` — Hardcoded hex color: #6b7280
- **[major]** `packages/dashboard-components/src/EmptyState.tsx:46` — Hardcoded hex color: #2563eb
- **[major]** `services/platform-service/src/modules/status/routes.ts:22` — Hardcoded hex color: #f7f4ec
- **[major]** `services/platform-service/src/modules/status/routes.ts:23` — Hardcoded hex color: #fffdf8
- **[major]** `services/platform-service/src/modules/status/routes.ts:24` — Hardcoded hex color: #1f2933
- **[major]** `services/platform-service/src/modules/status/routes.ts:25` — Hardcoded hex color: #52606d
- **[major]** `services/platform-service/src/modules/status/routes.ts:26` — Hardcoded hex color: #1f7a3d
- **[major]** `services/platform-service/src/modules/status/routes.ts:27` — Hardcoded hex color: #b42318
- **[major]** `services/platform-service/src/modules/status/routes.ts:28` — Hardcoded hex color: #d9d3c4
- **[major]** `services/platform-service/src/modules/status/routes.ts:33` — Hardcoded hex color: #f7f4ec
- **[major]** `services/platform-service/src/modules/status/routes.ts:33` — Hardcoded hex color: #f2efe6
- **[major]** `services/platform-service/src/modules/delivery/templates.ts:205` — Hardcoded hex color: #dc3545
- **[major]** `services/platform-service/src/modules/themes/routes.ts:24` — Hardcoded hex color: #4caf50
- **[major]** `services/platform-service/src/modules/themes/routes.ts:25` — Hardcoded hex color: #2e7d32
- **[major]** `services/platform-service/src/modules/themes/routes.ts:26` — Hardcoded hex color: #66bb6a
- **[major]** `services/platform-service/src/modules/themes/routes.ts:27` — Hardcoded hex color: #ffffff
- **[major]** `services/platform-service/src/modules/themes/routes.ts:28` — Hardcoded hex color: #f5f5f5
- **[major]** `services/platform-service/src/modules/themes/routes.ts:29` — Hardcoded hex color: #f44336
- **[major]** `services/platform-service/src/modules/themes/routes.ts:30` — Hardcoded hex color: #ff9800
- **[major]** `services/platform-service/src/modules/themes/routes.ts:31` — Hardcoded hex color: #4caf50
- **[major]** `services/platform-service/src/modules/themes/routes.ts:36` — Hardcoded hex color: #4caf50
- **[major]** `services/platform-service/src/modules/themes/routes.ts:37` — Hardcoded hex color: #e94560
- **[major]** `services/platform-service/src/modules/themes/routes.ts:38` — Hardcoded hex color: #f5a623
- **[major]** `services/platform-service/src/modules/themes/routes.ts:39` — Hardcoded hex color: #9e9e9e
- **[minor]** `dashboards/admin-web/src/app/(dashboard)/surveys/[id]/page.tsx:21` — Emoji in code: 📊
- **[minor]** `dashboards/admin-web/src/app/(dashboard)/surveys/[id]/page.tsx:22` — Emoji in code: 📝
- **[minor]** `dashboards/admin-web/src/app/(dashboard)/surveys/[id]/page.tsx:23` — Emoji in code: 📄
- **[minor]** `dashboards/tracker-web/src/app/roadmap/page.tsx:513` — Emoji in code: 💬
- **[minor]** `dashboards/tracker-web/src/app/roadmap/page.tsx:569` — Emoji in code: 💬
- **[minor]** `dashboards/tracker-web/src/app/dashboard/items/[id]/page.tsx:232` — Emoji in code: 🌐
- **[minor]** `scripts/encrypt-migrate.ts:507` — Emoji in code: 📦
- **[minor]** `scripts/encrypt-migrate.ts:510` — Emoji in code: 🔐
- **[minor]** `scripts/encrypt-migrate.ts:589` — Emoji in code: 🏢
- **[minor]** `packages/dashboard-shell/src/TopBar.tsx:80` — Emoji in code: 🔔
- **[minor]** `packages/celebrations/src/index.ts:7` — Emoji in code: 👏
- **[minor]** `packages/celebrations/src/index.ts:12` — Emoji in code: 🎉
- **[minor]** `packages/celebrations/src/index.ts:14` — Emoji in code: 🔥
- **[minor]** `packages/celebrations/src/index.ts:15` — Emoji in code: 🏆
- **[minor]** `packages/swift-platform-sdk/Tests/BLFieldEncryptTests.swift:32` — Emoji in code: 🌍
- **[minor]** `packages/create-app/src/scaffolder.ts:115` — Emoji in code: 📦
- **[minor]** `packages/create-app/src/scaffolder.ts:257` — Emoji in code: 🚀
- **[minor]** `packages/create-app/src/scaffolder.ts:275` — Emoji in code: 📄
- **[minor]** `packages/create-app/src/generators/agents-md.ts:528` — Emoji in code: 📝
- **[minor]** `packages/create-app/src/generators/agents-md.ts:549` — Emoji in code: 📄
- **[minor]** `packages/create-app/src/generators/agents-md.ts:552` — Emoji in code: 🔄
- **[minor]** `packages/create-app/src/generators/agents-md.ts:574` — Emoji in code: 🔄
- **[minor]** `packages/create-app/src/generators/api-routes.ts:670` — Emoji in code: 🚀
- **[minor]** `packages/create-app/src/generators/api-routes.ts:725` — Emoji in code: 📄
- **[minor]** `packages/time-references/src/client.ts:16` — Emoji in code: 🎵
- **[minor]** `packages/time-references/src/client.ts:23` — Emoji in code: 📺
- **[minor]** `packages/time-references/src/client.ts:24` — Emoji in code: 🚶
- **[minor]** `packages/time-references/src/client.ts:31` — Emoji in code: 🧘
- **[minor]** `packages/time-references/src/client.ts:32` — Emoji in code: 📺
- **[minor]** `packages/time-references/src/client.ts:39` — Emoji in code: 🎬
- **[minor]** `packages/time-references/src/client.ts:40` — Emoji in code: 🚴
- **[minor]** `packages/time-references/src/client.ts:47` — Emoji in code: 🚗
- **[minor]** `packages/time-references/src/client.ts:48` — Emoji in code: 📺
- **[minor]** `packages/time-references/src/client.ts:55` — Emoji in code: 💼
- **[minor]** `packages/time-references/src/client.ts:56` — Emoji in code: 😴
- **[minor]** `packages/time-references/src/client.ts:64` — Emoji in code: 🌅
- **[minor]** `packages/time-references/src/client.ts:74` — Emoji in code: 🧙
- **[minor]** `packages/time-references/src/client.ts:83` — Emoji in code: 🌍
- **[minor]** `packages/time-references/src/client.ts:84` — Emoji in code: 🥾
- **[minor]** `packages/time-references/src/client.ts:91` — Emoji in code: 🏆
- **[minor]** `packages/time-references/src/client.ts:99` — Emoji in code: 🌟
- **[minor]** `packages/time-references/src/index.ts:11` — Emoji in code: 🎬
- **[minor]** `packages/time-references/src/index.ts:17` — Emoji in code: 🌙
- **[minor]** `packages/time-references/src/index.ts:20` — Emoji in code: 🏔
- **[minor]** `packages/time-references/src/index.ts:23` — Emoji in code: 🌍
- **[minor]** `packages/time-references/src/index.ts:26` — Emoji in code: 🚂
- **[minor]** `packages/time-references/src/index.ts:31` — Emoji in code: 🏕
- **[minor]** `services/mcp-server/src/modules/dev/changelog-tools.ts:156` — Emoji in code: 📊
- **[minor]** `services/mcp-server/src/modules/dev/changelog-tools.ts:164` — Emoji in code: 🚨
- **[minor]** `services/mcp-server/src/modules/dev/changelog-tools.ts:183` — Emoji in code: 🐛
- **[minor]** `services/mcp-server/src/modules/dev/changelog-tools.ts:185` — Emoji in code: 📚
- **[minor]** `services/mcp-server/src/modules/dev/changelog-tools.ts:186` — Emoji in code: 🧪
- **[minor]** `services/mcp-server/src/modules/dev/changelog-tools.ts:187` — Emoji in code: 🔧
- **[minor]** `services/mcp-server/src/modules/dev/changelog-tools.ts:189` — Emoji in code: 🎨
- **[minor]** `services/mcp-server/src/modules/dev/changelog-tools.ts:190` — Emoji in code: 🔄
- **[minor]** `services/mcp-server/src/modules/dev/changelog-tools.ts:191` — Emoji in code: 📝
- **[minor]** `services/platform-service/scripts/gen-module.ts:515` — Emoji in code: 📝
- **[minor]** `services/platform-service/scripts/gen-module.ts:551` — Emoji in code: 📝
- **[minor]** `services/platform-service/scripts/gen-module.ts:608` — Emoji in code: 🚀
- **[minor]** `services/platform-service/scripts/gen-module.ts:636` — Emoji in code: 📄
- **[minor]** `services/platform-service/src/modules/predictive-analytics/campaign-engine.ts:451` — Emoji in code: 🚨
- **[minor]** `services/platform-service/src/modules/diagnostics/auto-triggers.ts:393` — Emoji in code: 🚨
- **[minor]** `services/platform-service/src/modules/diagnostics/auto-triggers.ts:427` — Emoji in code: 🚨
- **[minor]** `services/platform-service/src/modules/delivery/templates.ts:203` — Emoji in code: 🚨
- **[minor]** `services/platform-service/src/modules/delivery/templates.ts:205` — Emoji in code: 🚨
- **[minor]** `services/platform-service/src/modules/delivery/templates.ts:214` — Emoji in code: 🚨
- **[minor]** `services/monitoring/health-check.ts:39` — Emoji in code: 🩺
## `learning_voice_ai_agent`
**Counts:** critical=2 · major=29 · minor=89 · total=120
- **[major]** `src/audio/sounds.py:115` — Python print(): print("\a", end="", flush=True)
- **[major]** `src/audio/sounds.py:120` — Python print(): print("\a", end="", flush=True)
- **[major]** `src/hotkey/fn_listener.py:93` — Python print(): print(
- **[major]** `src/cli_output.py:30` — Python print(): print(message) # noqa: T201 — intentional CLI output
- **[major]** `src/cli_output.py:36` — Python print(): print(message, file=sys.stderr) # noqa: T201 — intentional CLI output
- **[minor]** `user-dashboard-web/src/lib/api-handler.ts:10` — any type: type RouteHandler = (req: NextRequest, ctx: any) => Promise<Response | NextRespo
- **[major]** `backend/src/modules/themes/routes.ts:11` Hardcoded hex color: #4caf50
- **[major]** `backend/src/modules/themes/routes.ts:11` Hardcoded hex color: #2e7d32
- **[major]** `backend/src/modules/themes/routes.ts:11` Hardcoded hex color: #66bb6a
- **[major]** `backend/src/modules/themes/routes.ts:12` Hardcoded hex color: #ffffff
- **[major]** `backend/src/modules/themes/routes.ts:12` Hardcoded hex color: #f5f5f5
- **[major]** `backend/src/modules/themes/routes.ts:12` Hardcoded hex color: #f44336
- **[major]** `backend/src/modules/themes/routes.ts:13` Hardcoded hex color: #ff9800
- **[major]** `backend/src/modules/themes/routes.ts:13` Hardcoded hex color: #4caf50
- **[major]** `backend/src/modules/themes/routes.ts:13` Hardcoded hex color: #4caf50
- **[major]** `backend/src/modules/themes/routes.ts:14` Hardcoded hex color: #e94560
- **[major]** `backend/src/modules/themes/routes.ts:14` Hardcoded hex color: #f5a623
- **[major]** `backend/src/modules/themes/routes.ts:14` Hardcoded hex color: #9e9e9e
- **[major]** `backend/src/modules/themes/types.ts:6` Hardcoded hex color: #4caf50
- **[major]** `backend/src/modules/themes/types.ts:7` Hardcoded hex color: #2e7d32
- **[major]** `backend/src/modules/themes/types.ts:8` Hardcoded hex color: #66bb6a
- **[major]** `backend/src/modules/themes/types.ts:9` Hardcoded hex color: #ffffff
- **[major]** `backend/src/modules/themes/types.ts:10` Hardcoded hex color: #f5f5f5
- **[major]** `backend/src/modules/themes/types.ts:11` Hardcoded hex color: #f44336
- **[major]** `backend/src/modules/themes/types.ts:12` Hardcoded hex color: #ff9800
- **[major]** `backend/src/modules/themes/types.ts:13` Hardcoded hex color: #4caf50
- **[major]** `backend/src/modules/themes/types.ts:14` Hardcoded hex color: #4caf50
- **[major]** `backend/src/modules/themes/types.ts:15` Hardcoded hex color: #e94560
- **[major]** `backend/src/modules/themes/types.ts:16` Hardcoded hex color: #f5a623
- **[major]** `backend/src/modules/themes/types.ts:17` Hardcoded hex color: #9e9e9e
- **[critical]** `scripts/churn-alert.ts:25` Hardcoded product ID: const PRODUCT_ID = "lysnrai";
- **[critical]** `scripts/churn-alert.ts:44` Hardcoded product ID: database: process.env.COSMOS_DATABASE || "lysnrai",
- **[minor]** `mobile_app/ios/LysnrKeyboard/KeyboardViewController.swift:572` Emoji in code: 🌐
- **[minor]** `mobile_app/ios/LysnrAI/Views/SessionDetailView.swift:759` Emoji in code: 👍
- **[minor]** `mobile_app/common/kill_switch.py:58` Emoji in code: 📱
- **[minor]** `mobile_app/common/kill_switch.py:66` Emoji in code: 🛑
- **[minor]** `user-dashboard-web/src/app/(portal)/sessions/[id]/page.tsx:932` Emoji in code: 👍
- **[minor]** `scripts/test_stress.py:46` Emoji in code: 🏋
- **[minor]** `scripts/test_stress.py:110` Emoji in code: 📊
- **[minor]** `scripts/test_security.py:136` Emoji in code: 🔒
- **[minor]** `scripts/test_security.py:140` Emoji in code: 🔑
- **[minor]** `scripts/test_security.py:148` Emoji in code: 📝
- **[minor]** `scripts/test_security.py:156` Emoji in code: 📁
- **[minor]** `scripts/test_security.py:163` Emoji in code: 💥
- **[minor]** `scripts/test_security.py:176` Emoji in code: 🔐
- **[minor]** `scripts/churn-alert.ts:196` Emoji in code: 📊
- **[minor]** `scripts/churn-alert.ts:206` Emoji in code: 🔵
- **[minor]** `scripts/churn-alert.ts:229` Emoji in code: 🔍
- **[minor]** `scripts/test_multi_app_paste.py:75` Emoji in code: 🧪
- **[minor]** `scripts/test_multi_app_paste.py:92` Emoji in code: 📋
- **[minor]** `scripts/prove_kill_switch.py:97` Emoji in code: 🔌
- **[minor]** `scripts/prove_kill_switch.py:108` Emoji in code: 📖
- **[minor]** `scripts/prove_kill_switch.py:119` Emoji in code: 🔴
- **[minor]** `scripts/test_ui_crossplatform.py:42` Emoji in code: 🖥
- **[minor]** `scripts/test_ui_crossplatform.py:46` Emoji in code: 🪟
- **[minor]** `scripts/test_ui_crossplatform.py:60` Emoji in code: 🎯
- **[minor]** `scripts/test_ui_crossplatform.py:96` Emoji in code: 🎨
- **[minor]** `scripts/test_ui_crossplatform.py:126` Emoji in code: 🔧
- **[minor]** `scripts/prove_cosmos_rw.py:92` Emoji in code: 📖
- **[minor]** `scripts/prove_cosmos_rw.py:100` Emoji in code: 🗑
- **[minor]** `scripts/prove_cosmos_rw.py:111` Emoji in code: 🔬
- **[minor]** `scripts/test_accessibility.py:45` Emoji in code: 📢
- **[minor]** `scripts/test_accessibility.py:57` Emoji in code: 🎨
- **[minor]** `scripts/test_accessibility.py:80` Emoji in code: 🎯
- **[minor]** `scripts/test_accessibility.py:92` Emoji in code: 🪟
- **[minor]** `scripts/test_accessibility.py:102` Emoji in code: 🔊
- **[minor]** `scripts/test_accessibility.py:113` Emoji in code: 📏
- **[minor]** `assets/generate-store-assets.py:165` Emoji in code: 📱
- **[minor]** `assets/generate-store-assets.py:214` Emoji in code: 🎙
- **[minor]** `assets/generate-store-assets.py:443` Emoji in code: 🔑
- **[minor]** `assets/generate-store-assets.py:444` Emoji in code: 🚪
- **[minor]** `assets/generate-store-assets.py:447` Emoji in code: 🌐
- **[minor]** `assets/generate-store-assets.py:448` Emoji in code: 🎛
- **[minor]** `assets/generate-store-assets.py:449` Emoji in code: 🔊
- **[minor]** `assets/generate-store-assets.py:450` Emoji in code: 📋
- **[minor]** `assets/generate-store-assets.py:512` Emoji in code: 🔍
- **[minor]** `assets/generate-store-assets.py:581` Emoji in code: 📸
- **[minor]** `assets/generate-store-assets.py:623` Emoji in code: 🎨
- **[minor]** `assets/generate-store-assets.py:670` Emoji in code: 💫
- **[minor]** `assets/generate-store-assets.py:731` Emoji in code: 📁
- **[minor]** `src/main.py:150` Emoji in code: 🎙
- **[minor]** `src/main.py:154` Emoji in code: 🎙
- **[minor]** `src/main.py:234` Emoji in code: 🎙
- **[minor]** `src/main.py:310` Emoji in code: 🔵
- **[minor]** `src/main.py:324` Emoji in code: 🔇
- **[minor]** `src/main.py:326` Emoji in code: 🔴
- **[minor]** `src/main.py:331` Emoji in code: 🔴
- **[minor]** `src/main.py:682` Emoji in code: 📎
- **[minor]** `src/main.py:692` Emoji in code: 📎
- **[minor]** `src/main.py:883` Emoji in code: 📝
- **[minor]** `src/main.py:900` Emoji in code: 📝
- **[minor]** `src/main.py:1200` Emoji in code: 🧙
- **[minor]** `src/main.py:1225` Emoji in code: 🛑
- **[minor]** `src/main.py:1292` Emoji in code: 🛑
- **[minor]** `src/main.py:1306` Emoji in code: 👋
- **[minor]** `src/ui/overlay.py:238` Emoji in code: 🔴
- **[minor]** `src/ui/overlay.py:475` Emoji in code: 🔄
- **[minor]** `src/ui/history_viewer.py:72` Emoji in code: 🔍
- **[minor]** `src/ui/first_run.py:161` Emoji in code: 🎙
- **[minor]** `src/ui/macos_menubar.py:37` Emoji in code: 🎙
- **[minor]** `src/ui/macos_menubar.py:38` Emoji in code: 🔴
- **[minor]** `src/ui/macos_menubar.py:40` Emoji in code: 📡
- **[minor]** `src/ui/macos_menubar.py:119` Emoji in code: 🎙
- **[minor]** `src/ui/tray.py:136` Emoji in code: 🎙
- **[minor]** `src/ui/stats_dashboard.py:78` Emoji in code: 📊
- **[minor]** `src/ui/about.py:59` Emoji in code: 🎙
- **[minor]** `src/ui/update_dialog.py:47` Emoji in code: 🔄
- **[minor]** `src/ui/unified_window.py:166` Emoji in code: 🎙
- **[minor]** `src/ui/unified_window.py:172` Emoji in code: 📜
- **[minor]** `src/ui/unified_window.py:173` Emoji in code: 📊
- **[minor]** `src/ui/unified_window.py:250` Emoji in code: 🗣
- **[minor]** `src/ui/unified_window.py:260` Emoji in code: 🤖
- **[minor]** `src/ui/unified_window.py:273` Emoji in code: 🎛
- **[minor]** `src/ui/unified_window.py:1028` Emoji in code: 🎙
- **[minor]** `src/ui/unified_window.py:1029` Emoji in code: 📝
- **[minor]** `src/ui/unified_window.py:1031` Emoji in code: 🔥
- **[minor]** `src/ui/unified_window.py:1140` Emoji in code: 🌐
- **[minor]** `src/ui/unified_window.py:1347` Emoji in code: 🎙
- **[minor]** `src/hotkey/fn_listener.py:3` Emoji in code: 🌐
- **[minor]** `src/hotkey/fn_listener.py:8` Emoji in code: 🌐
## `learning_multimodal_memory_agents`
**Counts:** critical=11 · major=269 · minor=32 · total=312
- **[major]** `mindlyst-native/iosApp/Models/MemoryStore.swift:64` Swift print(): print("[MemoryStore] Failed to persist items: \(error)")
- **[major]** `mindlyst-native/iosApp/Models/MemoryStore.swift:76` Swift print(): print("[MemoryStore] Failed to decode stored items: \(error)")
- **[major]** `mindlyst-native/iosApp/Screens/CaptureScreen.swift:143` Swift print(): print("[CaptureScreen] Failed to persist to plat
- **[minor]** `backend/src/modules/brains/repository.ts:30` any type: const decrypted = await getEncryptor().decrypt(doc.rolePrompt as any, {
- **[minor]** `backend/src/modules/reflections/repository.ts:28` any type: const decrypted = await enc.decrypt(val as any, { userId, context });
- **[minor]** `backend/src/modules/reflections/repository.ts:36` any type: result.repeatedThemes = await encryptStringArray(result.repeatedThemes, uid, '
- **[minor]** `backend/src/modules/reflections/repository.ts:37` any type: result.postponedItems = await encryptStringArray(result.postponedItems, uid, '
- **[minor]** `backend/src/modules/reflections/repository.ts:38` any type: result.roleImbalanceSignals = await encryptStringArray(result.roleImbalanceSig
- **[minor]** `backend/src/modules/reflections/repository.ts:39` any type: result.suggestedAdjustments = await encryptStringArray(result.suggestedAdjustm
- **[minor]** `backend/src/modules/reflections/repository.ts:61` any type: const decrypted = await enc.decrypt(result.vsLastWeek!.summary as any, { use
- **[minor]** `backend/src/modules/memory/repository.ts:42` any type: const decrypted = await enc.decrypt(result.rawContent as any, ctx);
- **[minor]** `backend/src/modules/memory/repository.ts:47` any type: const decrypted = await enc.decrypt(result.triageResult.summary as any, { ..
- **[minor]** `backend/src/modules/palace/repository.ts:59` any type: const decrypted = await getEncryptor().decrypt(doc.content as any, {
- **[minor]** `backend/src/modules/daily-briefs/repository.ts:29` any type: result.priorityItems = encrypted as any;
- **[minor]** `backend/src/modules/daily-briefs/repository.ts:34` any type: result.brainSummaries = encrypted as any;
- **[minor]** `backend/src/modules/daily-briefs/repository.ts:56` any type: result.greeting = await enc.decrypt(result.greeting as any, ctx);
- **[minor]** `backend/src/modules/daily-briefs/repository.ts:60` any type: const decrypted = await enc.decrypt(result.priorityItems as any, { ...ctx, c
- **[minor]** `backend/src/modules/daily-briefs/repository.ts:65` any type: const decrypted = await enc.decrypt(result.brainSummaries as any, { ...ctx,
- **[minor]** `backend/src/modules/daily-briefs/repository.ts:70` any type: result.streakMessage = await enc.decrypt(result.streakMessage as any, { ...c
- **[minor]** `backend/src/modules/daily-briefs/repository.ts:74` any type: result.motivationalQuote = await enc.decrypt(result.motivationalQuote as any
- **[minor]** `mindlyst-native/web/src/lib/api-handler.ts:9` any type: type RouteHandler = (req: NextRequest, ctx: any) => Promise<Response | NextRespo
- **[major]** `backend/src/modules/brains/types.ts:28` Hardcoded hex color: #A5B1C7
- **[major]** `backend/src/modules/brains/types.ts:29` Hardcoded hex color: #6C7C98
- **[major]** `mindlyst-native/web/src/app/brain-packs/page.tsx:22` Hardcoded hex color: #E67E22
- **[major]** `mindlyst-native/web/src/app/brain-packs/page.tsx:22` Hardcoded hex color: #D35400
- **[major]** `mindlyst-native/web/src/app/brain-packs/page.tsx:23` Hardcoded hex color: #E74C3C
- **[major]** `mindlyst-native/web/src/app/brain-packs/page.tsx:23` Hardcoded hex color: #C0392B
- **[major]** `mindlyst-native/web/src/app/brain-packs/page.tsx:24` Hardcoded hex color: #9B59B6
- **[major]** `mindlyst-native/web/src/app/brain-packs/page.tsx:24` Hardcoded hex color: #8E44AD
- **[major]** `mindlyst-native/web/src/app/brain-packs/page.tsx:25` Hardcoded hex color: #F39C12
- **[major]** `mindlyst-native/web/src/app/brain-packs/page.tsx:25` Hardcoded hex color: #E67E22
- **[major]** `mindlyst-native/web/src/app/brain-packs/page.tsx:26` Hardcoded hex color: #1ABC9C
- **[major]** `mindlyst-native/web/src/app/brain-packs/page.tsx:26` Hardcoded hex color: #16A085
- **[major]** `mindlyst-native/web/src/app/brain-packs/page.tsx:27` Hardcoded hex color: #2ECC71
- **[major]** `mindlyst-native/web/src/app/brain-packs/page.tsx:27` Hardcoded hex color: #27AE60
- **[major]** `mindlyst-native/web/src/app/brain-packs/page.tsx:28` Hardcoded hex color: #3498DB
- **[major]** `mindlyst-native/web/src/app/brain-packs/page.tsx:28` Hardcoded hex color: #2980B9
- **[major]** `mindlyst-native/web/src/app/brain-packs/page.tsx:29` Hardcoded hex color: #A29BFE
- **[major]** `mindlyst-native/web/src/app/brain-packs/page.tsx:29` Hardcoded hex color: #6C5CE7
- **[major]** `mindlyst-native/web/src/app/brain-packs/page.tsx:30` Hardcoded hex color: #00CEC9
- **[major]** `mindlyst-native/web/src/app/brain-packs/page.tsx:30` Hardcoded hex color: #0984E3
- **[major]** `mindlyst-native/web/src/app/brain-packs/page.tsx:31` Hardcoded hex color: #FDCB6E
- **[major]** `mindlyst-native/web/src/app/brain-packs/page.tsx:31` Hardcoded hex color: #F39C12
- **[major]** `mindlyst-native/web/src/app/brain-packs/page.tsx:83` Hardcoded hex color: #fff
- **[major]** `mindlyst-native/web/src/app/brain-packs/page.tsx:145` Hardcoded hex color: #fff
- **[major]** `mindlyst-native/web/src/app/settings/page.tsx:8` Hardcoded hex color: #5A8CFF
- **[major]** `mindlyst-native/web/src/app/settings/page.tsx:8` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/settings/page.tsx:9` Hardcoded hex color: #FF6E6E
- **[major]** `mindlyst-native/web/src/app/settings/page.tsx:9` Hardcoded hex color: #FFD166
- **[major]** `mindlyst-native/web/src/app/settings/page.tsx:10` Hardcoded hex color: #34D399
- **[major]** `mindlyst-native/web/src/app/settings/page.tsx:10` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/settings/page.tsx:11` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/settings/page.tsx:11` Hardcoded hex color: #9FE870
- **[major]** `mindlyst-native/web/src/app/settings/page.tsx:12` Hardcoded hex color: #7D8FB4
- **[major]** `mindlyst-native/web/src/app/settings/page.tsx:12` Hardcoded hex color: #A5B1C7
- **[major]** `mindlyst-native/web/src/app/settings/page.tsx:275` Hardcoded hex color: #A5B1C7
- **[major]** `mindlyst-native/web/src/app/settings/page.tsx:276` Hardcoded hex color: #6C7C98
- **[major]** `mindlyst-native/web/src/app/settings/page.tsx:290` Hardcoded hex color: #9B59B6
- **[major]** `mindlyst-native/web/src/app/settings/page.tsx:290` Hardcoded hex color: #8E44AD
- **[major]** `mindlyst-native/web/src/app/settings/page.tsx:291` Hardcoded hex color: #E67E22
- **[major]** `mindlyst-native/web/src/app/settings/page.tsx:291` Hardcoded hex color: #D35400
- **[major]** `mindlyst-native/web/src/app/settings/page.tsx:292` Hardcoded hex color: #1ABC9C
- **[major]** `mindlyst-native/web/src/app/settings/page.tsx:292` Hardcoded hex color: #16A085
- **[major]** `mindlyst-native/web/src/app/settings/page.tsx:293` Hardcoded hex color: #E74C3C
- **[major]** `mindlyst-native/web/src/app/settings/page.tsx:293` Hardcoded hex color: #C0392B
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:10` Hardcoded hex color: #5A8CFF
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:10` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:11` Hardcoded hex color: #FF6E6E
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:11` Hardcoded hex color: #FFD166
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:12` Hardcoded hex color: #34D399
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:12` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:13` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:13` Hardcoded hex color: #9FE870
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:14` Hardcoded hex color: #7D8FB4
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:14` Hardcoded hex color: #A5B1C7
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:18` Hardcoded hex color: #5A8CFF
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:19` Hardcoded hex color: #FFD166
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:20` Hardcoded hex color: #FF6E6E
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:21` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:22` Hardcoded hex color: #A5B1C7
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:23` Hardcoded hex color: #34D399
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:27` Hardcoded hex color: #5A8CFF
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:28` Hardcoded hex color: #FF6E6E
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:29` Hardcoded hex color: #34D399
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:30` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:31` Hardcoded hex color: #7D8FB4
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:640` Hardcoded hex color: #A5B1C7
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:641` Hardcoded hex color: #A5B1C7
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:677` Hardcoded hex color: #7D8FB4
- **[major]** `mindlyst-native/web/src/app/dashboard/page.tsx:959` Hardcoded hex color: #fff
- **[major]** `mindlyst-native/web/src/app/palace/page.tsx:20` Hardcoded hex color: #5A8CFF
- **[major]** `mindlyst-native/web/src/app/palace/page.tsx:21` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/palace/page.tsx:22` Hardcoded hex color: #34D399
- **[major]** `mindlyst-native/web/src/app/palace/page.tsx:23` Hardcoded hex color: #FFD166
- **[major]** `mindlyst-native/web/src/app/palace/page.tsx:24` Hardcoded hex color: #A78BFA
- **[major]** `mindlyst-native/web/src/app/palace/page.tsx:25` Hardcoded hex color: #FF6E6E
- **[major]** `mindlyst-native/web/src/app/palace/page.tsx:26` Hardcoded hex color: #F59E0B
- **[major]** `mindlyst-native/web/src/app/palace/page.tsx:27` Hardcoded hex color: #EF4444
- **[major]** `mindlyst-native/web/src/app/palace/page.tsx:28` Hardcoded hex color: #8B5CF6
- **[major]** `mindlyst-native/web/src/app/palace/page.tsx:190` Hardcoded hex color: #fff
- **[major]** `mindlyst-native/web/src/app/palace/page.tsx:309` Hardcoded hex color: #fff
- **[major]** `mindlyst-native/web/src/app/palace/page.tsx:350` Hardcoded hex color: #fff
- **[major]** `mindlyst-native/web/src/app/palace/page.tsx:368` Hardcoded hex color: #fff
- **[major]** `mindlyst-native/web/src/app/palace/page.tsx:459` Hardcoded hex color: #6c7c98
- **[major]** `mindlyst-native/web/src/app/layout.tsx:29` Hardcoded hex color: #06070A
- **[major]** `mindlyst-native/web/src/app/api/brain-packs/route.ts:86` Hardcoded hex color: #5A8CFF
- **[major]** `mindlyst-native/web/src/app/api/brain-packs/route.ts:87` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/api/brain-packs/route.ts:107` Hardcoded hex color: #5A8CFF
- **[major]** `mindlyst-native/web/src/app/api/brain-packs/route.ts:108` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/api/brain-packs/route.ts:131` Hardcoded hex color: #5A8CFF
- **[major]** `mindlyst-native/web/src/app/api/brain-packs/route.ts:132` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/api/brains/route.ts:35` Hardcoded hex color: #5A8CFF
- **[major]** `mindlyst-native/web/src/app/api/brains/route.ts:35` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/api/brains/route.ts:36` Hardcoded hex color: #FF6E6E
- **[major]** `mindlyst-native/web/src/app/api/brains/route.ts:36` Hardcoded hex color: #FFD166
- **[major]** `mindlyst-native/web/src/app/api/brains/route.ts:37` Hardcoded hex color: #34D399
- **[major]** `mindlyst-native/web/src/app/api/brains/route.ts:37` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/api/brains/route.ts:38` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/api/brains/route.ts:38` Hardcoded hex color: #9FE870
- **[major]** `mindlyst-native/web/src/app/api/brains/route.ts:39` Hardcoded hex color: #7D8FB4
- **[major]** `mindlyst-native/web/src/app/api/brains/route.ts:39` Hardcoded hex color: #A5B1C7
- **[major]** `mindlyst-native/web/src/app/api/brains/route.ts:112` Hardcoded hex color: #A5B1C7
- **[major]** `mindlyst-native/web/src/app/api/brains/route.ts:113` Hardcoded hex color: #6C7C98
- **[major]** `mindlyst-native/web/src/app/api/accessibility-config/route.ts:125` Hardcoded hex color: #EFF4FF
- **[major]** `mindlyst-native/web/src/app/api/capture-config/route.ts:115` Hardcoded hex color: #06070A
- **[major]** `mindlyst-native/web/src/app/api/capture-config/route.ts:115` Hardcoded hex color: #121725
- **[major]** `mindlyst-native/web/src/app/api/capture-config/route.ts:133` Hardcoded hex color: #5A8CFF
- **[major]** `mindlyst-native/web/src/app/api/capture-config/route.ts:134` Hardcoded hex color: #FF6E6E
- **[major]** `mindlyst-native/web/src/app/api/capture-config/route.ts:135` Hardcoded hex color: #34D399
- **[major]** `mindlyst-native/web/src/app/api/capture-config/route.ts:136` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/api/capture-config/route.ts:137` Hardcoded hex color: #7D8FB4
- **[major]** `mindlyst-native/web/src/app/api/share-card/route.ts:146` Hardcoded hex color: #06070A
- **[major]** `mindlyst-native/web/src/app/api/share-card/route.ts:146` Hardcoded hex color: #121725
- **[major]** `mindlyst-native/web/src/app/api/share-card/route.ts:146` Hardcoded hex color: #1A2335
- **[major]** `mindlyst-native/web/src/app/api/share-card/route.ts:147` Hardcoded hex color: #5A8CFF
- **[major]** `mindlyst-native/web/src/app/api/share-card/route.ts:147` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/challenge/page.tsx:85` Hardcoded hex color: #127942
- **[major]** `mindlyst-native/web/src/app/challenge/page.tsx:86` Hardcoded hex color: #fff
- **[major]** `mindlyst-native/web/src/app/challenge/page.tsx:92` Hardcoded hex color: #fff
- **[major]** `mindlyst-native/web/src/app/challenge/page.tsx:123` Hardcoded hex color: #fff
- **[major]** `mindlyst-native/web/src/app/challenge/page.tsx:150` Hardcoded hex color: #fff
- **[major]** `mindlyst-native/web/src/app/challenge/page.tsx:168` Hardcoded hex color: #121725
- **[major]** `mindlyst-native/web/src/app/challenge/page.tsx:168` Hardcoded hex color: #0E1118
- **[major]** `mindlyst-native/web/src/app/challenge/page.tsx:169` Hardcoded hex color: #127942
- **[major]** `mindlyst-native/web/src/app/challenge/page.tsx:175` Hardcoded hex color: #fff
- **[major]** `mindlyst-native/web/src/app/page.tsx:34` Hardcoded hex color: #5A8CFF
- **[major]** `mindlyst-native/web/src/app/page.tsx:34` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/page.tsx:35` Hardcoded hex color: #FF6E6E
- **[major]** `mindlyst-native/web/src/app/page.tsx:35` Hardcoded hex color: #FFD166
- **[major]** `mindlyst-native/web/src/app/page.tsx:36` Hardcoded hex color: #34D399
- **[major]** `mindlyst-native/web/src/app/page.tsx:36` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/page.tsx:37` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/page.tsx:37` Hardcoded hex color: #9FE870
- **[major]** `mindlyst-native/web/src/app/onboarding/page.tsx:8` Hardcoded hex color: #5A8CFF
- **[major]** `mindlyst-native/web/src/app/onboarding/page.tsx:8` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/onboarding/page.tsx:9` Hardcoded hex color: #FF6E6E
- **[major]** `mindlyst-native/web/src/app/onboarding/page.tsx:9` Hardcoded hex color: #FFD166
- **[major]** `mindlyst-native/web/src/app/onboarding/page.tsx:10` Hardcoded hex color: #34D399
- **[major]** `mindlyst-native/web/src/app/onboarding/page.tsx:10` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/onboarding/page.tsx:11` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/onboarding/page.tsx:11` Hardcoded hex color: #9FE870
- **[major]** `mindlyst-native/web/src/app/onboarding/page.tsx:20` Hardcoded hex color: #5A8CFF
- **[major]** `mindlyst-native/web/src/app/onboarding/page.tsx:20` Hardcoded hex color: #FFD166
- **[major]** `mindlyst-native/web/src/app/onboarding/page.tsx:20` Hardcoded hex color: #FF6E6E
- **[major]** `mindlyst-native/web/src/app/onboarding/page.tsx:21` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/onboarding/page.tsx:21` Hardcoded hex color: #A5B1C7
- **[major]** `mindlyst-native/web/src/app/onboarding/page.tsx:21` Hardcoded hex color: #34D399
- **[major]** `mindlyst-native/web/src/app/onboarding/page.tsx:205` Hardcoded hex color: #A5B1C7
- **[major]** `mindlyst-native/web/src/app/onboarding/page.tsx:206` Hardcoded hex color: #A5B1C7
- **[major]** `mindlyst-native/web/src/app/onboarding/page.tsx:217` Hardcoded hex color: #7D8FB4
- **[major]** `mindlyst-native/web/src/app/onboarding/page.tsx:248` Hardcoded hex color: #6C7C98
- **[major]** `mindlyst-native/web/src/app/reflection/page.tsx:13` Hardcoded hex color: #5A8CFF
- **[major]** `mindlyst-native/web/src/app/reflection/page.tsx:13` Hardcoded hex color: #FF6E6E
- **[major]** `mindlyst-native/web/src/app/reflection/page.tsx:13` Hardcoded hex color: #34D399
- **[major]** `mindlyst-native/web/src/app/reflection/page.tsx:14` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/app/reflection/page.tsx:14` Hardcoded hex color: #7D8FB4
- **[major]** `mindlyst-native/web/src/app/reflection/page.tsx:141` Hardcoded hex color: #A5B1C7
- **[major]** `mindlyst-native/web/src/app/reflection/page.tsx:149` Hardcoded hex color: #A5B1C7
- **[major]** `mindlyst-native/web/src/app/providers.tsx:29` Hardcoded hex color: #121725
- **[major]** `mindlyst-native/web/src/app/providers.tsx:30` Hardcoded hex color: #1E293B
- **[major]** `mindlyst-native/web/src/app/providers.tsx:33` Hardcoded hex color: #EFF4FF
- **[major]** `mindlyst-native/web/src/app/providers.tsx:36` Hardcoded hex color: #A5B1C7
- **[major]** `mindlyst-native/web/src/styles/globals.css:7` Hardcoded hex color: #06070a
- **[major]** `mindlyst-native/web/src/styles/globals.css:8` Hardcoded hex color: #0e1118
- **[major]** `mindlyst-native/web/src/styles/globals.css:9` Hardcoded hex color: #121725
- **[major]** `mindlyst-native/web/src/styles/globals.css:10` Hardcoded hex color: #1a2335
- **[major]** `mindlyst-native/web/src/styles/globals.css:13` Hardcoded hex color: #eff4ff
- **[major]** `mindlyst-native/web/src/styles/globals.css:14` Hardcoded hex color: #a5b1c7
- **[major]** `mindlyst-native/web/src/styles/globals.css:15` Hardcoded hex color: #6c7c98
- **[major]** `mindlyst-native/web/src/styles/globals.css:16` Hardcoded hex color: #5a8cff
- **[major]** `mindlyst-native/web/src/styles/globals.css:17` Hardcoded hex color: #2ee6d6
- **[major]** `mindlyst-native/web/src/styles/globals.css:18` Hardcoded hex color: #34d399
- **[major]** `mindlyst-native/web/src/styles/globals.css:19` Hardcoded hex color: #f59e0b
- **[major]** `mindlyst-native/web/src/styles/globals.css:20` Hardcoded hex color: #ff6e6e
- **[major]** `mindlyst-native/web/src/styles/globals.css:33` Hardcoded hex color: #000000
- **[major]** `mindlyst-native/web/src/styles/globals.css:34` Hardcoded hex color: #0a0a0a
- **[major]** `mindlyst-native/web/src/styles/globals.css:35` Hardcoded hex color: #111111
- **[major]** `mindlyst-native/web/src/styles/globals.css:36` Hardcoded hex color: #1a1a1a
- **[major]** `mindlyst-native/web/src/styles/globals.css:37` Hardcoded hex color: #ffffff
- **[major]** `mindlyst-native/web/src/styles/globals.css:38` Hardcoded hex color: #cccccc
- **[major]** `mindlyst-native/web/src/styles/globals.css:39` Hardcoded hex color: #999999
- **[major]** `mindlyst-native/web/src/styles/globals.css:40` Hardcoded hex color: #6ea8ff
- **[major]** `mindlyst-native/web/src/styles/globals.css:41` Hardcoded hex color: #4ff0e0
- **[major]** `mindlyst-native/web/src/styles/globals.css:42` Hardcoded hex color: #50e3a0
- **[major]** `mindlyst-native/web/src/styles/globals.css:43` Hardcoded hex color: #ffb833
- **[major]** `mindlyst-native/web/src/styles/globals.css:44` Hardcoded hex color: #ff8080
- **[major]** `mindlyst-native/web/src/styles/globals.css:51` Hardcoded hex color: #0a0806
- **[major]** `mindlyst-native/web/src/styles/globals.css:52` Hardcoded hex color: #14110e
- **[major]** `mindlyst-native/web/src/styles/globals.css:53` Hardcoded hex color: #1a1612
- **[major]** `mindlyst-native/web/src/styles/globals.css:54` Hardcoded hex color: #231e19
- **[major]** `mindlyst-native/web/src/styles/globals.css:55` Hardcoded hex color: #e8dfd4
- **[major]** `mindlyst-native/web/src/styles/globals.css:56` Hardcoded hex color: #b3a898
- **[major]** `mindlyst-native/web/src/styles/globals.css:57` Hardcoded hex color: #8a7e6f
- **[major]** `mindlyst-native/web/src/styles/globals.css:58` Hardcoded hex color: #c4975a
- **[major]** `mindlyst-native/web/src/styles/globals.css:59` Hardcoded hex color: #a8c4a0
- **[major]** `mindlyst-native/web/src/styles/globals.css:262` Hardcoded hex color: #9DD7FF
- **[major]** `mindlyst-native/web/src/styles/globals.css:262` Hardcoded hex color: #5A8CFF
- **[major]** `mindlyst-native/web/src/styles/globals.css:262` Hardcoded hex color: #2EE6D6
- **[major]** `mindlyst-native/web/src/styles/globals.css:262` Hardcoded hex color: #142245
- **[major]** `mindlyst-native/web/src/styles/globals.css:2441` Hardcoded hex color: #fff
- **[major]** `design-system/web/mindlyst.css:5` Hardcoded hex color: #06070A
- **[major]** `design-system/web/mindlyst.css:6` Hardcoded hex color: #0E1118
- **[major]** `design-system/web/mindlyst.css:7` Hardcoded hex color: #121725
- **[major]** `design-system/web/mindlyst.css:8` Hardcoded hex color: #1A2335
- **[major]** `design-system/web/mindlyst.css:11` Hardcoded hex color: #EFF4FF
- **[major]** `design-system/web/mindlyst.css:12` Hardcoded hex color: #A5B1C7
- **[major]** `design-system/web/mindlyst.css:13` Hardcoded hex color: #6C7C98
- **[major]** `design-system/web/mindlyst.css:14` Hardcoded hex color: #5A8CFF
- **[major]** `design-system/web/mindlyst.css:15` Hardcoded hex color: #2EE6D6
- **[major]** `design-system/web/mindlyst.css:16` Hardcoded hex color: #34D399
- **[major]** `design-system/web/mindlyst.css:17` Hardcoded hex color: #F59E0B
- **[major]** `design-system/web/mindlyst.css:18` Hardcoded hex color: #FF6E6E
- **[major]** `design-system/web/mindlyst.css:65` Hardcoded hex color: #F6F8FC
- **[major]** `design-system/web/mindlyst.css:66` Hardcoded hex color: #EEF2FA
- **[major]** `design-system/web/mindlyst.css:67` Hardcoded hex color: #FFFFFF
- **[major]** `design-system/web/mindlyst.css:68` Hardcoded hex color: #F3F5FA
- **[major]** `design-system/web/mindlyst.css:71` Hardcoded hex color: #0E1320
- **[major]** `design-system/web/mindlyst.css:72` Hardcoded hex color: #55637A
- **[major]** `design-system/web/mindlyst.css:73` Hardcoded hex color: #6C7C98
- **[major]** `design-system/web/mindlyst.css:74` Hardcoded hex color: #13956A
- **[major]** `design-system/web/mindlyst.css:75` Hardcoded hex color: #B87504
- **[major]** `design-system/web/mindlyst.css:76` Hardcoded hex color: #D24242
- **[major]** `design-system/web/mindlyst.css:184` Hardcoded hex color: #ffffff
- **[major]** `design-system/web/mindlyst.css:186` Hardcoded hex color: #5a8cff
- **[major]** `design-system/web/mindlyst.css:186` Hardcoded hex color: #2ee6d6
- **[major]** `design-system/web/mindlyst.css:230` Hardcoded hex color: #0e4b39
- **[major]** `design-system/web/mindlyst.css:235` Hardcoded hex color: #5d3c05
- **[major]** `design-system/web/mindlyst.css:240` Hardcoded hex color: #6f1d1d
- **[major]** `design-system/web/mindlyst.css:250` Hardcoded hex color: #ffffff
- **[major]** `design-system/web/mindlyst.css:253` Hardcoded hex color: #9dd7ff
- **[major]** `design-system/web/mindlyst.css:253` Hardcoded hex color: #5a8cff
- **[major]** `design-system/web/mindlyst.css:253` Hardcoded hex color: #2ee6d6
- **[major]** `design-system/web/mindlyst.css:253` Hardcoded hex color: #142245
- **[major]** `design-system/mobile/mindlystTheme.ts:8` Hardcoded hex color: #06070A
- **[major]** `design-system/mobile/mindlystTheme.ts:9` Hardcoded hex color: #0E1118
- **[major]** `design-system/mobile/mindlystTheme.ts:10` Hardcoded hex color: #121725
- **[major]** `design-system/mobile/mindlystTheme.ts:11` Hardcoded hex color: #1A2335
- **[major]** `design-system/mobile/mindlystTheme.ts:14` Hardcoded hex color: #EFF4FF
- **[major]** `design-system/mobile/mindlystTheme.ts:15` Hardcoded hex color: #A5B1C7
- **[major]** `design-system/mobile/mindlystTheme.ts:16` Hardcoded hex color: #6C7C98
- **[major]** `design-system/mobile/mindlystTheme.ts:17` Hardcoded hex color: #5A8CFF
- **[major]** `design-system/mobile/mindlystTheme.ts:18` Hardcoded hex color: #2EE6D6
- **[major]** `design-system/mobile/mindlystTheme.ts:19` Hardcoded hex color: #34D399
- **[major]** `design-system/mobile/mindlystTheme.ts:20` Hardcoded hex color: #F59E0B
- **[major]** `design-system/mobile/mindlystTheme.ts:21` Hardcoded hex color: #FF6E6E
- **[major]** `design-system/mobile/mindlystTheme.ts:25` Hardcoded hex color: #F6F8FC
- **[major]** `design-system/mobile/mindlystTheme.ts:26` Hardcoded hex color: #EEF2FA
- **[major]** `design-system/mobile/mindlystTheme.ts:27` Hardcoded hex color: #FFFFFF
- **[major]** `design-system/mobile/mindlystTheme.ts:28` Hardcoded hex color: #F3F5FA
- **[major]** `design-system/mobile/mindlystTheme.ts:31` Hardcoded hex color: #0E1320
- **[major]** `design-system/mobile/mindlystTheme.ts:32` Hardcoded hex color: #55637A
- **[major]** `design-system/mobile/mindlystTheme.ts:33` Hardcoded hex color: #6C7C98
- **[major]** `design-system/mobile/mindlystTheme.ts:34` Hardcoded hex color: #5A8CFF
- **[major]** `design-system/mobile/mindlystTheme.ts:35` Hardcoded hex color: #2EE6D6
- **[major]** `design-system/mobile/mindlystTheme.ts:36` Hardcoded hex color: #13956A
- **[major]** `design-system/mobile/mindlystTheme.ts:37` Hardcoded hex color: #B87504
- **[major]** `design-system/mobile/mindlystTheme.ts:38` Hardcoded hex color: #D24242
- **[major]** `design-system/mobile/mindlystTheme.ts:42` Hardcoded hex color: #5A8CFF
- **[major]** `design-system/mobile/mindlystTheme.ts:42` Hardcoded hex color: #2EE6D6
- **[major]** `design-system/mobile/mindlystTheme.ts:43` Hardcoded hex color: #FF6E6E
- **[major]** `design-system/mobile/mindlystTheme.ts:43` Hardcoded hex color: #FFD166
- **[major]** `design-system/mobile/mindlystTheme.ts:44` Hardcoded hex color: #34D399
- **[major]** `design-system/mobile/mindlystTheme.ts:44` Hardcoded hex color: #2EE6D6
- **[major]** `design-system/mobile/mindlystTheme.ts:45` Hardcoded hex color: #2EE6D6
- **[major]** `design-system/mobile/mindlystTheme.ts:45` Hardcoded hex color: #9FE870
- **[major]** `design-system/mobile/mindlystTheme.ts:46` Hardcoded hex color: #7D8FB4
- **[major]** `design-system/mobile/mindlystTheme.ts:46` Hardcoded hex color: #A5B1C7
- **[critical]** `mindlyst-native/web/src/lib/cosmos.ts:3` Hardcoded product ID: export const PRODUCT_ID = process.env.NEXT_PUBLIC_PRODUCT_ID ?? "mindlyst";
- **[critical]** `mindlyst-native/web/src/lib/ecosystem-phase3.ts:50` Hardcoded product ID: productId: "mindlyst";
- **[critical]** `mindlyst-native/web/src/lib/ecosystem-phase3.ts:101` Hardcoded product ID: productId: "mindlyst";
- **[critical]** `mindlyst-native/web/src/lib/ecosystem-phase3.ts:168` Hardcoded product ID: productId: "mindlyst",
- **[critical]** `mindlyst-native/web/src/lib/ecosystem-phase3.ts:201` Hardcoded product ID: productId: "mindlyst",
- **[critical]** `mindlyst-native/web/src/lib/ecosystem-phase3.ts:221` Hardcoded product ID: productId: "mindlyst",
- **[critical]** `mindlyst-native/web/src/lib/ecosystem-phase1.ts:50` Hardcoded product ID: productId: "mindlyst";
- **[critical]** `mindlyst-native/web/src/lib/ecosystem-phase1.ts:101` Hardcoded product ID: productId: "mindlyst";
- **[critical]** `mindlyst-native/web/src/lib/ecosystem-phase1.ts:168` Hardcoded product ID: productId: "mindlyst",
- **[critical]** `mindlyst-native/web/src/lib/ecosystem-phase1.ts:201` Hardcoded product ID: productId: "mindlyst",
- **[critical]** `mindlyst-native/web/src/lib/ecosystem-phase1.ts:221` Hardcoded product ID: productId: "mindlyst",
- **[minor]** `mindlyst-native/web/src/app/layout.tsx:13` Emoji in code: 🧠
- **[minor]** `mindlyst-native/web/src/app/api/launch/route.ts:124` Emoji in code: 👋
- **[minor]** `mindlyst-native/web/src/app/api/launch/route.ts:131` Emoji in code: 🧠
- **[minor]** `mindlyst-native/web/src/app/api/prompts/route.ts:66` Emoji in code: 📱
- **[minor]** `mindlyst-native/web/src/app/api/prompts/route.ts:99` Emoji in code: 🎤
- **[minor]** `mindlyst-native/web/src/app/api/prompts/route.ts:101` Emoji in code: 📷
- **[minor]** `mindlyst-native/web/src/app/api/store-listing/route.ts:61` Emoji in code: 🧠
- **[minor]** `mindlyst-native/web/src/app/api/store-listing/route.ts:78` Emoji in code: 🔒
- **[minor]** `mindlyst-native/web/src/app/api/store-listing/route.ts:83` Emoji in code: 🚀
- **[minor]** `mindlyst-native/iosApp/Screens/BrainDetailScreen.swift:11` Emoji in code: 🎙
- **[minor]** `mindlyst-native/iosApp/Screens/BrainDetailScreen.swift:12` Emoji in code: 📸
- **[minor]** `mindlyst-native/iosApp/Screens/BrainDetailScreen.swift:13` Emoji in code: 📧
- **[minor]** `mindlyst-native/iosApp/Screens/BrainDetailScreen.swift:14` Emoji in code: 🔗
- **[minor]** `mindlyst-native/androidApp/src/main/java/com/mindlyst/android/auth/LoginScreen.kt:92` Emoji in code: 🧠
## `learning_ai_clock`
**Counts:** critical=0 · major=5 · minor=22 · total=27
- **[minor]** `backend/src/modules/shared-timers/repository.ts:31` any type: const decrypted = await getEncryptor().decrypt(doc.description as any, {
- **[minor]** `backend/src/modules/timers/repository.ts:32` any type: const decrypted = await getEncryptor().decrypt(doc.description as any, {
- **[minor]** `backend/src/modules/routines/repository.ts:49` any type: const decrypted = await enc.decrypt(result.description as any, ctx);
- **[minor]** `backend/src/modules/routines/repository.ts:56` any type: const decrypted = await enc.decrypt(step.notes as any, { ...ctx, context
- **[minor]** `backend/src/modules/webhooks/repository.ts:46` any type: const decrypted = await enc.decrypt(result.secret as any, ctx);
- **[minor]** `backend/src/modules/webhooks/repository.ts:51` any type: const decrypted = await enc.decrypt(result.description as any, { ...ctx, con
- **[major]** `web/src/app/globals.css:13` Hardcoded hex color: #FFFFFF
- **[major]** `web/src/app/globals.css:14` Hardcoded hex color: #000000
- **[major]** `web/src/app/globals.css:16` Hardcoded hex color: #6C7C98
- **[major]** `web/src/app/globals.css:16` Hardcoded hex color: #06070A
- **[major]** `web/src/app/globals.css:17` Hardcoded hex color: #8B9AB8
- **[minor]** `web/src/components/Dashboard.tsx:103` Emoji in code: 🔔
- **[minor]** `web/src/components/StreakCard.tsx:80` Emoji in code: 🏆
- **[minor]** `web/src/components/StreakCard.tsx:82` Emoji in code: 🔥
- **[minor]** `web/src/components/PomodoroView.tsx:57` Emoji in code: 🎉
- **[minor]** `web/src/components/PomodoroView.tsx:86` Emoji in code: 🍅
- **[minor]** `web/src/components/TimerCard.tsx:243` Emoji in code: 💬
- **[minor]** `web/src/lib/notifications.ts:94` Emoji in code: 🔔
- **[minor]** `ios/ChronoMind/Shared/Wellness/MoodCheckInManager.swift:165` Emoji in code: 😴
- **[minor]** `ios/ChronoMind/Shared/Wellness/MoodCheckInManager.swift:166` Emoji in code: 😐
- **[minor]** `ios/ChronoMind/Shared/Wellness/MoodCheckInManager.swift:167` Emoji in code: 😊
- **[minor]** `ios/ChronoMind/Shared/Wellness/MoodCheckInManager.swift:168` Emoji in code: 🔥
- **[minor]** `ios/ChronoMind/Shared/Gamification/GamificationEngine.swift:55` Emoji in code: 🔥
- **[minor]** `ios/ChronoMind/Shared/Gamification/GamificationEngine.swift:57` Emoji in code: 👍
- **[minor]** `ios/ChronoMind/Shared/Gamification/GamificationEngine.swift:58` Emoji in code: 📈
- **[minor]** `ios/ChronoMind/Shared/Gamification/GamificationEngine.swift:59` Emoji in code: 💪
- **[minor]** `ios/ChronoMind/Shared/Notifications/NotificationScheduler.swift:100` Emoji in code: 🔔
## `learning_ai_fastgap`
**Counts:** critical=0 · major=197 · minor=212 · total=409
- **[major]** `plugins/withAndroidWidget.js:224` console.log: console.log(`
- **[major]** `plugins/withWatchApp.js:59` console.log: console.log(`
- **[major]** `plugins/withWidgetExtension.js:57` console.log: console.log(`
- **[major]** `web/src/app/(app)/settings/page.tsx:185` Hardcoded hex color: #FF6B6B
- **[major]** `web/src/app/(app)/dashboard/page.tsx:141` Hardcoded hex color: #FF6B6B
- **[major]** `web/src/app/(app)/social/page.tsx:161` Hardcoded hex color: #000
- **[major]** `web/src/app/(app)/social/page.tsx:174` Hardcoded hex color: #FF6B6B
- **[major]** `web/src/app/(app)/social/page.tsx:194` Hardcoded hex color: #888
- **[major]** `web/src/app/(app)/social/page.tsx:194` Hardcoded hex color: #888
- **[major]** `web/src/app/(app)/simulator/page.tsx:265` Hardcoded hex color: #fff
- **[major]** `web/src/app/(app)/meals/page.tsx:620` Hardcoded hex color: #5AE68C
- **[major]** `web/src/app/(app)/meals/page.tsx:626` Hardcoded hex color: #FFB85A
- **[major]** `web/src/app/(app)/history/page.tsx:107` Hardcoded hex color: #FF6B6B
- **[major]** `web/src/app/(app)/tracking/page.tsx:144` Hardcoded hex color: #FFB85A
- **[major]** `web/src/app/(app)/tracking/page.tsx:250` Hardcoded hex color: #5A8CFF
- **[major]** `web/src/app/(app)/tracking/page.tsx:279` Hardcoded hex color: #FFB85A
- **[major]** `web/src/app/(app)/tracking/page.tsx:440` Hardcoded hex color: #FF6B6B
- **[major]** `web/src/app/(app)/tracking/page.tsx:591` Hardcoded hex color: #FF6B6B
- **[major]** `web/src/app/(app)/tracking/page.tsx:612` Hardcoded hex color: #5A8CFF
- **[major]** `web/src/app/(app)/tracking/page.tsx:618` Hardcoded hex color: #FFB85A
- **[major]** `web/src/app/(app)/tracking/page.tsx:632` Hardcoded hex color: #C471F5
- **[major]** `web/src/app/(app)/protocols/page.tsx:178` Hardcoded hex color: #FF6B6B
- **[major]** `web/src/app/(app)/billing/page.tsx:108` Hardcoded hex color: #FF6B6B
- **[major]** `web/src/app/(app)/billing/page.tsx:125` Hardcoded hex color: #FF6B6B
- **[major]** `web/src/app/(app)/billing/page.tsx:144` Hardcoded hex color: #000
- **[major]** `web/src/app/layout.tsx:21` Hardcoded hex color: #06070A
- **[major]** `web/src/app/(auth)/register/page.tsx:40` Hardcoded hex color: #FF6E6E
- **[major]** `web/src/app/(auth)/forgot-password/page.tsx:49` Hardcoded hex color: #FF6E6E
- **[major]** `web/src/app/(auth)/layout.tsx:12` Hardcoded hex color: #06070A
- **[major]** `web/src/app/(auth)/layout.tsx:23` Hardcoded hex color: #5A8CFF
- **[major]** `web/src/app/(auth)/login/page.tsx:39` Hardcoded hex color: #FF6E6E
- **[major]** `web/src/app/globals.css:8` Hardcoded hex color: #5AE68C
- **[major]** `web/src/app/globals.css:9` Hardcoded hex color: #5A8CFF
- **[major]** `web/src/app/globals.css:10` Hardcoded hex color: #FFB85A
- **[major]** `web/src/app/globals.css:11` Hardcoded hex color: #C471F5
- **[major]** `web/src/app/globals.css:12` Hardcoded hex color: #5A8CFF
- **[major]** `web/src/app/globals.css:13` Hardcoded hex color: #5AE68C
- **[major]** `web/src/app/globals.css:14` Hardcoded hex color: #FFB85A
- **[major]** `web/src/app/globals.css:15` Hardcoded hex color: #5AE68C
- **[major]** `web/src/app/globals.css:16` Hardcoded hex color: #4ECDC4
- **[major]** `web/src/app/globals.css:17` Hardcoded hex color: #FF9632
- **[major]** `web/src/app/globals.css:18` Hardcoded hex color: #FF6B6B
- **[major]** `web/src/app/globals.css:19` Hardcoded hex color: #FF3B3B
- **[major]** `web/src/app/globals.css:20` Hardcoded hex color: #5A8CFF
- **[major]** `web/src/app/globals.css:21` Hardcoded hex color: #5AE68C
- **[major]** `web/src/app/globals.css:22` Hardcoded hex color: #4ECDC4
- **[major]** `web/src/app/globals.css:23` Hardcoded hex color: #FF6B6B
- **[major]** `web/src/app/globals.css:24` Hardcoded hex color: #5AE68C
- **[major]** `web/src/app/globals.css:25` Hardcoded hex color: #FF9632
- **[major]** `web/src/app/globals.css:26` Hardcoded hex color: #5A8CFF
- **[major]** `web/src/app/globals.css:27` Hardcoded hex color: #4ECDC4
- **[major]** `web/src/app/globals.css:28` Hardcoded hex color: #E6B800
- **[major]** `web/src/app/globals.css:29` Hardcoded hex color: #FFD700
- **[major]** `web/src/app/globals.css:30` Hardcoded hex color: #5A8CFF
- **[major]** `web/src/app/globals.css:31` Hardcoded hex color: #E6B800
- **[major]** `web/src/app/globals.css:32` Hardcoded hex color: #FF9632
- **[major]** `web/src/app/globals.css:33` Hardcoded hex color: #FF5050
- **[major]** `web/src/app/globals.css:47` Hardcoded hex color: #0b1020
- **[major]** `web/src/app/globals.css:72` Hardcoded hex color: #5AE68C
- **[major]** `web/src/app/globals.css:74` Hardcoded hex color: #FECA57
- **[major]** `web/src/app/globals.css:75` Hardcoded hex color: #A66BFF
- **[major]** `web/src/app/globals.css:146` Hardcoded hex color: #05060A
- **[major]** `web/src/app/globals.css:231` Hardcoded hex color: #5A8CFF
- **[major]** `web/src/app/globals.css:282` Hardcoded hex color: #2a2a4a
- **[major]** `web/src/app/globals.css:283` Hardcoded hex color: #12151c
- **[major]** `web/src/app/globals.css:284` Hardcoded hex color: #fff
- **[major]** `web/src/app/globals.css:306` Hardcoded hex color: #F8FAFC
- **[major]** `web/src/app/globals.css:307` Hardcoded hex color: #FFFFFF
- **[major]** `web/src/app/globals.css:308` Hardcoded hex color: #FFFFFF
- **[major]** `web/src/app/globals.css:309` Hardcoded hex color: #F1F5F9
- **[major]** `web/src/app/globals.css:310` Hardcoded hex color: #0F172A
- **[major]** `web/src/app/globals.css:311` Hardcoded hex color: #475569
- **[major]** `web/src/app/globals.css:312` Hardcoded hex color: #94A3B8
- **[major]** `web/src/components/ShareCard.tsx:33` Hardcoded hex color: #0D1117
- **[major]** `web/src/components/ShareCard.tsx:34` Hardcoded hex color: #1A2332
- **[major]** `web/src/components/ShareCard.tsx:42` Hardcoded hex color: #5AE68C
- **[major]** `web/src/components/ShareCard.tsx:43` Hardcoded hex color: #4ECDC4
- **[major]** `web/src/components/ShareCard.tsx:48` Hardcoded hex color: #5AE68C
- **[major]** `web/src/components/ShareCard.tsx:53` Hardcoded hex color: #FFFFFF
- **[major]** `web/src/components/ShareCard.tsx:56` Hardcoded hex color: #8B949E
- **[major]** `web/src/components/ShareCard.tsx:76` Hardcoded hex color: #5AE68C
- **[major]** `web/src/components/ShareCard.tsx:80` Hardcoded hex color: #8B949E
- **[major]** `web/src/components/ShareCard.tsx:86` Hardcoded hex color: #484F58
- **[major]** `web/src/components/GamificationBar.tsx:46` Hardcoded hex color: #4ECDC4
- **[major]** `web/src/components/NotificationSettings.tsx:102` Hardcoded hex color: #FF6B6B
- **[major]** `web/src/components/BroadcastBanner.tsx:77` Hardcoded hex color: #5A8CFF
- **[major]** `web/src/components/ActiveFastPanel.tsx:311` Hardcoded hex color: #FF6B6B
- **[major]** `web/src/components/ActiveFastPanel.tsx:315` Hardcoded hex color: #FF6B6B
- **[major]** `web/src/components/SurveyBanner.tsx:163` Hardcoded hex color: #5A8CFF
- **[major]** `web/src/components/SurveyBanner.tsx:164` Hardcoded hex color: #5A8CFF
- **[major]** `web/src/components/SurveyBanner.tsx:165` Hardcoded hex color: #fff
- **[major]** `web/src/components/SurveyBanner.tsx:188` Hardcoded hex color: #5A8CFF
- **[major]** `web/src/components/FastCompletionModal.tsx:119` Hardcoded hex color: #FF9632
- **[major]** `web/src/components/AuthGuard.tsx:31` Hardcoded hex color: #FF6E6E
- **[major]** `web/src/components/BodyCanvas.tsx:14` Hardcoded hex color: #FF9F43
- **[major]** `web/src/components/BodyCanvas.tsx:14` Hardcoded hex color: #FECA57
- **[major]** `web/src/components/BodyCanvas.tsx:14` Hardcoded hex color: #48DBFB
- **[major]** `web/src/components/BodyCanvas.tsx:15` Hardcoded hex color: #5A8CFF
- **[major]** `web/src/components/BodyCanvas.tsx:15` Hardcoded hex color: #A66BFF
- **[major]** `web/src/components/BodyCanvas.tsx:15` Hardcoded hex color: #FFD700
- **[major]** `web/src/components/BodyCanvas.tsx:48` Hardcoded hex color: #FECA57
- **[major]** `web/src/components/BodyCanvas.tsx:48` Hardcoded hex color: #FF9F43
- **[major]** `web/src/components/BodyCanvas.tsx:48` Hardcoded hex color: #FF6B6B
- **[major]** `web/src/components/BodyCanvas.tsx:65` Hardcoded hex color: #1A2040
- **[major]** `web/src/components/BodyCanvas.tsx:75` Hardcoded hex color: #E85555
- **[major]** `web/src/components/BodyCanvas.tsx:75` Hardcoded hex color: #2A1520
- **[major]** `web/src/components/BodyCanvas.tsx:83` Hardcoded hex color: #5AC0D0
- **[major]** `web/src/components/BodyCanvas.tsx:83` Hardcoded hex color: #14222A
- **[major]** `web/src/components/BodyCanvas.tsx:91` Hardcoded hex color: #5AC0D0
- **[major]** `web/src/components/BodyCanvas.tsx:91` Hardcoded hex color: #14222A
- **[major]** `web/src/components/BodyCanvas.tsx:99` Hardcoded hex color: #1E1A10
- **[major]** `web/src/components/BodyCanvas.tsx:107` Hardcoded hex color: #1E1810
- **[major]** `web/src/components/BodyCanvas.tsx:115` Hardcoded hex color: #E8C44A
- **[major]** `web/src/components/BodyCanvas.tsx:115` Hardcoded hex color: #1A1810
- **[major]** `web/src/components/BodyCanvas.tsx:122` Hardcoded hex color: #D49A6A
- **[major]** `web/src/components/BodyCanvas.tsx:122` Hardcoded hex color: #18140E
- **[major]** `web/src/components/BodyCanvas.tsx:130` Hardcoded hex color: #C47A50
- **[major]** `web/src/components/BodyCanvas.tsx:130` Hardcoded hex color: #18140E
- **[major]** `web/src/components/BodyCanvas.tsx:139` Hardcoded hex color: #B06060
- **[major]** `web/src/components/BodyCanvas.tsx:139` Hardcoded hex color: #1E1218
- **[major]** `web/src/components/BodyCanvas.tsx:147` Hardcoded hex color: #B06060
- **[major]** `web/src/components/BodyCanvas.tsx:147` Hardcoded hex color: #1E1218
- **[major]** `web/src/components/BodyCanvas.tsx:155` Hardcoded hex color: #101820
- **[major]** `web/src/components/BodyCanvas.tsx:162` Hardcoded hex color: #101820
- **[major]** `web/src/components/BodyCanvas.tsx:169` Hardcoded hex color: #18142A
- **[major]** `web/src/components/BodyCanvas.tsx:181` Hardcoded hex color: #E8C44A
- **[major]** `web/src/components/BodyCanvas.tsx:182` Hardcoded hex color: #8899AA
- **[major]** `web/src/components/BodyCanvas.tsx:183` Hardcoded hex color: #80E0F0
- **[major]** `web/src/components/BodyCanvas.tsx:185` Hardcoded hex color: #C088FF
- **[major]** `web/src/components/BodyCanvas.tsx:186` Hardcoded hex color: #FFE066
- **[major]** `web/src/components/BodyCanvas.tsx:186` Hardcoded hex color: #C088FF
- **[major]** `web/src/components/BodyCanvas.tsx:300` Hardcoded hex color: #C0D0E8
- **[major]** `web/src/components/BodyCanvas.tsx:304` Hardcoded hex color: #C0D0E8
- **[major]** `web/src/components/BodyCanvas.tsx:315` Hardcoded hex color: #C0D0E8
- **[major]** `web/src/components/BodyCanvas.tsx:476` Hardcoded hex color: #FFFFFF
- **[major]** `web/src/components/BodyCanvas.tsx:493` Hardcoded hex color: #7B8BA5
- **[major]** `web/src/components/BodyCanvas.tsx:504` Hardcoded hex color: #000000
- **[major]** `backend/src/modules/body-stages/types.ts:91` Hardcoded hex color: #FF8C42
- **[major]** `backend/src/modules/body-stages/types.ts:92` Hardcoded hex color: #FFB366
- **[major]** `backend/src/modules/body-stages/types.ts:111` Hardcoded hex color: #4ECDC4
- **[major]** `backend/src/modules/body-stages/types.ts:112` Hardcoded hex color: #7EDDD6
- **[major]** `backend/src/modules/body-stages/types.ts:131` Hardcoded hex color: #45B7D1
- **[major]** `backend/src/modules/body-stages/types.ts:132` Hardcoded hex color: #6DC8E0
- **[major]** `backend/src/modules/body-stages/types.ts:152` Hardcoded hex color: #5A8CFF
- **[major]** `backend/src/modules/body-stages/types.ts:153` Hardcoded hex color: #8AB4FF
- **[major]** `backend/src/modules/body-stages/types.ts:177` Hardcoded hex color: #A855F7
- **[major]** `backend/src/modules/body-stages/types.ts:178` Hardcoded hex color: #C084FC
- **[major]** `backend/src/modules/body-stages/types.ts:198` Hardcoded hex color: #F59E0B
- **[major]** `backend/src/modules/body-stages/types.ts:199` Hardcoded hex color: #FBBF24
- **[major]** `src/screens/protocol/ProtocolDetail.tsx:183` Hardcoded hex color: #1A2335
- **[major]** `src/components/platform/InAppBroadcastBanner.tsx:18` Hardcoded hex color: #ef4444
- **[major]** `src/components/platform/InAppBroadcastBanner.tsx:19` Hardcoded hex color: #f59e0b
- **[major]** `src/components/platform/InAppBroadcastBanner.tsx:20` Hardcoded hex color: #38bdf8
- **[major]** `src/components/platform/ActiveSurveyModal.tsx:188` Hardcoded hex color: #f87171
- **[major]** `src/theme/colors.ts:16` Hardcoded hex color: #FF9F43
- **[major]** `src/theme/colors.ts:17` Hardcoded hex color: #FECA57
- **[major]** `src/theme/colors.ts:18` Hardcoded hex color: #48DBFB
- **[major]** `src/theme/colors.ts:19` Hardcoded hex color: #5A8CFF
- **[major]** `src/theme/colors.ts:20` Hardcoded hex color: #A66BFF
- **[major]** `src/theme/colors.ts:21` Hardcoded hex color: #FFD700
- **[major]** `src/theme/colors.ts:39` Hardcoded hex color: #5AE68C
- **[major]** `src/theme/colors.ts:99` Hardcoded hex color: #5AE68C
- **[major]** `src/theme/colors.ts:100` Hardcoded hex color: #FECA57
- **[major]** `src/theme/colors.ts:101` Hardcoded hex color: #FF9F43
- **[major]** `src/theme/colors.ts:102` Hardcoded hex color: #FF6B6B
- **[major]** `src/theme/colors.ts:103` Hardcoded hex color: #A66BFF
- **[major]** `src/theme/spacing.ts:33` Hardcoded hex color: #000
- **[major]** `src/theme/spacing.ts:40` Hardcoded hex color: #000
- **[major]** `src/theme/spacing.ts:47` Hardcoded hex color: #000
- **[major]** `src/lib/organ-data.ts:47` Hardcoded hex color: #1A2040
- **[major]** `src/lib/organ-data.ts:63` Hardcoded hex color: #E85555
- **[major]** `src/lib/organ-data.ts:64` Hardcoded hex color: #2A1520
- **[major]** `src/lib/organ-data.ts:80` Hardcoded hex color: #5AC0D0
- **[major]** `src/lib/organ-data.ts:81` Hardcoded hex color: #14222A
- **[major]** `src/lib/organ-data.ts:96` Hardcoded hex color: #5AC0D0
- **[major]** `src/lib/organ-data.ts:97` Hardcoded hex color: #14222A
- **[major]** `src/lib/organ-data.ts:113` Hardcoded hex color: #1E1A10
- **[major]** `src/lib/organ-data.ts:130` Hardcoded hex color: #1E1810
- **[major]** `src/lib/organ-data.ts:144` Hardcoded hex color: #E8C44A
- **[major]** `src/lib/organ-data.ts:145` Hardcoded hex color: #1A1810
- **[major]** `src/lib/organ-data.ts:160` Hardcoded hex color: #D49A6A
- **[major]** `src/lib/organ-data.ts:161` Hardcoded hex color: #18140E
- **[major]** `src/lib/organ-data.ts:176` Hardcoded hex color: #C47A50
- **[major]** `src/lib/organ-data.ts:177` Hardcoded hex color: #18140E
- **[major]** `src/lib/organ-data.ts:192` Hardcoded hex color: #B06060
- **[major]** `src/lib/organ-data.ts:193` Hardcoded hex color: #1E1218
- **[major]** `src/lib/organ-data.ts:208` Hardcoded hex color: #B06060
- **[major]** `src/lib/organ-data.ts:209` Hardcoded hex color: #1E1218
- **[major]** `src/lib/organ-data.ts:225` Hardcoded hex color: #101820
- **[major]** `src/lib/organ-data.ts:243` Hardcoded hex color: #101820
- **[major]** `src/lib/organ-data.ts:261` Hardcoded hex color: #18142A
- **[major]** `src/lib/molecule-flows.ts:45` Hardcoded hex color: #E8C44A
- **[major]** `src/lib/molecule-flows.ts:49` Hardcoded hex color: #8899AA
- **[major]** `src/lib/molecule-flows.ts:53` Hardcoded hex color: #80E0F0
- **[major]** `src/lib/molecule-flows.ts:63` Hardcoded hex color: #C088FF
- **[major]** `src/lib/molecule-flows.ts:68` Hardcoded hex color: #FFE066
- **[major]** `src/lib/molecule-flows.ts:69` Hardcoded hex color: #C088FF
- **[minor]** `web/src/app/(app)/settings/page.tsx:109` Emoji in code: 🌙
- **[minor]** `web/src/app/(app)/social/page.tsx:231` Emoji in code: 🔥
- **[minor]** `web/src/app/(app)/tracking/page.tsx:126` Emoji in code: 💧
- **[minor]** `web/src/components/StreakCalendar.tsx:52` Emoji in code: 🔥
- **[minor]** `web/src/components/CoachingCard.tsx:11` Emoji in code: 📋
- **[minor]** `web/src/components/CoachingCard.tsx:13` Emoji in code: 💧
- **[minor]** `web/src/components/CoachingCard.tsx:14` Emoji in code: 🔥
- **[minor]** `web/src/components/CoachingCard.tsx:15` Emoji in code: 💪
- **[minor]** `web/src/components/CoachingCard.tsx:16` Emoji in code: 🎉
- **[minor]** `web/src/components/CoachingCard.tsx:17` Emoji in code: 📈
- **[minor]** `web/src/components/CoachingCard.tsx:50` Emoji in code: 💡
- **[minor]** `web/src/components/SafetyBanner.tsx:13` Emoji in code: 🔶
- **[minor]** `web/src/components/SafetyBanner.tsx:14` Emoji in code: 🛑
- **[minor]** `web/src/components/Sidebar.tsx:33` Emoji in code: 🧬
- **[minor]** `web/src/components/OnboardingFlow.tsx:30` Emoji in code: 🧬
- **[minor]** `web/src/components/OnboardingFlow.tsx:35` Emoji in code: 📋
- **[minor]** `web/src/components/OnboardingFlow.tsx:40` Emoji in code: 📊
- **[minor]** `web/src/components/OnboardingFlow.tsx:45` Emoji in code: 🛡
- **[minor]** `web/src/components/OnboardingFlow.tsx:50` Emoji in code: 🚀
- **[minor]** `web/src/lib/gamification.ts:78` Emoji in code: 🔥
- **[minor]** `web/src/lib/gamification.ts:80` Emoji in code: 💪
- **[minor]** `web/src/lib/gamification.ts:81` Emoji in code: 👑
- **[minor]** `web/src/lib/gamification.ts:85` Emoji in code: 🌙
- **[minor]** `web/src/lib/gamification.ts:86` Emoji in code: 💯
- **[minor]** `web/src/lib/gamification.ts:87` Emoji in code: 🏆
- **[minor]** `web/src/lib/gamification.ts:90` Emoji in code: 🌱
- **[minor]** `web/src/lib/gamification.ts:91` Emoji in code: 🎯
- **[minor]** `web/src/lib/gamification.ts:93` Emoji in code: 🌟
- **[minor]** `web/src/lib/gamification.ts:94` Emoji in code: 🏅
- **[minor]** `web/src/lib/gamification.ts:97` Emoji in code: 🔒
- **[minor]** `web/src/lib/gamification.ts:98` Emoji in code: 💎
- **[minor]** `web/src/lib/ai-coach.ts:61` Emoji in code: 🔥
- **[minor]** `ios-extensions/NomGapWidget/NomGapLiveActivity.swift:131` Emoji in code: 🧬
- **[minor]** `ios-extensions/NomGapWidget/NomGapLiveActivity.swift:139` Emoji in code: 💧
- **[minor]** `ios-extensions/NomGapWidget/NomGapLiveActivity.swift:171` Emoji in code: 🧬
- **[minor]** `ios-extensions/NomGapWidget/NomGapLiveActivity.swift:174` Emoji in code: 💧
- **[minor]** `ios-extensions/NomGapWidget/NomGapLockScreenWidget.swift:108` Emoji in code: 💧
- **[minor]** `ios-extensions/NomGapShortcuts/NomGapShortcuts.swift:31` Emoji in code: 💪
- **[minor]** `ios-extensions/NomGapShortcuts/NomGapShortcuts.swift:57` Emoji in code: 🎉
- **[minor]** `ios-extensions/NomGapShortcuts/NomGapShortcuts.swift:102` Emoji in code: 💧
- **[minor]** `ios-extensions/NomGapShortcuts/NomGapShortcuts.swift:104` Emoji in code: 💧
- **[minor]** `ios-extensions/NomGapShortcuts/NomGapShortcuts.swift:125` Emoji in code: 💪
- **[minor]** `watch/Shared/FastingState.swift:29` Emoji in code: 🍽
- **[minor]** `watch/Shared/FastingState.swift:31` Emoji in code: 🔥
- **[minor]** `watch/Shared/FastingState.swift:33` Emoji in code: 🧬
- **[minor]** `watch/Shared/FastingState.swift:34` Emoji in code: 🌟
- **[minor]** `watch/NomGapWatch/FastingTimerView.swift:287` Emoji in code: 🎉
- **[minor]** `watch/NomGapWatch/ComplicationProvider.swift:33` Emoji in code: 🔥
- **[minor]** `watch/NomGapWatch/StatsView.swift:20` Emoji in code: 🔥
- **[minor]** `watch/NomGapWatch/HydrationView.swift:18` Emoji in code: 💧
- **[minor]** `src/utils/shareCardExport.ts:24` Emoji in code: 🍽
- **[minor]** `src/utils/shareCardExport.ts:57` Emoji in code: 🍽
- **[minor]** `src/utils/shareCardExport.ts:58` Emoji in code: 🧬
- **[minor]** `src/utils/shareCardExport.ts:59` Emoji in code: 🔬
- **[minor]** `src/utils/shareCardExport.ts:60` Emoji in code: 💧
- **[minor]** `src/screens/learn/LearnScreen.tsx:24` Emoji in code: 💧
- **[minor]** `src/screens/learn/LearnScreen.tsx:34` Emoji in code: 🌊
- **[minor]** `src/screens/learn/LearnScreen.tsx:39` Emoji in code: 🍵
- **[minor]** `src/screens/learn/LearnScreen.tsx:44` Emoji in code: 😴
- **[minor]** `src/screens/learn/LearnScreen.tsx:49` Emoji in code: 🚶
- **[minor]** `src/screens/fast/TimerControls.tsx:63` Emoji in code: 🔥
- **[minor]** `src/screens/fast/TimerControls.tsx:103` Emoji in code: 🎉
- **[minor]** `src/screens/fast/FastCompletionModal.tsx:147` Emoji in code: 🎉
- **[minor]** `src/screens/fast/FastCompletionModal.tsx:170` Emoji in code: 💧
- **[minor]** `src/screens/fast/FastCompletionModal.tsx:208` Emoji in code: 🍽
- **[minor]** `src/screens/fast/FastCompletionModal.tsx:219` Emoji in code: 📤
- **[minor]** `src/screens/fast/SafetyBanner.tsx:29` Emoji in code: 🔶
- **[minor]** `src/screens/fast/SafetyBanner.tsx:30` Emoji in code: 🚨
- **[minor]** `src/screens/fast/SafetyBanner.tsx:109` Emoji in code: 🧂
- **[minor]** `src/screens/fast/SafetyBanner.tsx:129` Emoji in code: 🛑
- **[minor]** `src/screens/fast/CoachingTipsSheet.tsx:66` Emoji in code: 🤖
- **[minor]** `src/screens/fast/CoachingTipsSheet.tsx:83` Emoji in code: 🌱
- **[minor]** `src/screens/fast/MoodCheckinModal.tsx:150` Emoji in code: 😞
- **[minor]** `src/screens/fast/MoodCheckinModal.tsx:158` Emoji in code: 🪫
- **[minor]** `src/screens/fast/MoodCheckinModal.tsx:166` Emoji in code: 🍽
- **[minor]** `src/screens/fast/MoodCheckinModal.tsx:175` Emoji in code: 🌫
- **[minor]** `src/screens/protocol/ProtocolPicker.tsx:87` Emoji in code: 🔥
- **[minor]** `src/screens/protocol/ProtocolPicker.tsx:88` Emoji in code: 📅
- **[minor]** `src/screens/protocol/ProtocolPicker.tsx:89` Emoji in code: 🙏
- **[minor]** `src/screens/protocol/ProtocolPicker.tsx:188` Emoji in code: 🛠
- **[minor]** `src/screens/protocol/ProtocolPicker.tsx:289` Emoji in code: 📍
- **[minor]** `src/screens/protocol/ProtocolDetail.tsx:151` Emoji in code: 🕉
- **[minor]** `src/screens/protocol/ProtocolDetail.tsx:202` Emoji in code: 🔬
- **[minor]** `src/screens/protocol/ProtocolDetail.tsx:213` Emoji in code: 💡
- **[minor]** `src/screens/protocol/ProtocolDetail.tsx:238` Emoji in code: 🔥
- **[minor]** `src/screens/journey/StreakCalendar.tsx:88` Emoji in code: 🔥
- **[minor]** `src/screens/journey/StreakCalendar.tsx:131` Emoji in code: 🔥
- **[minor]** `src/screens/journey/StreakCalendar.tsx:152` Emoji in code: 🔥
- **[minor]** `src/screens/journey/MoodChart.tsx:18` Emoji in code: 😞
- **[minor]** `src/screens/journey/MoodChart.tsx:19` Emoji in code: 😐
- **[minor]** `src/screens/journey/MoodChart.tsx:20` Emoji in code: 🙂
- **[minor]** `src/screens/journey/MoodChart.tsx:21` Emoji in code: 😊
- **[minor]** `src/screens/journey/MoodChart.tsx:22` Emoji in code: 🤩
- **[minor]** `src/screens/journey/MoodChart.tsx:26` Emoji in code: 🪫
- **[minor]** `src/screens/journey/MoodChart.tsx:27` Emoji in code: 😴
- **[minor]** `src/screens/journey/MoodChart.tsx:29` Emoji in code: 💪
- **[minor]** `src/screens/journey/MoodChart.tsx:30` Emoji in code: 🔥
- **[minor]** `src/screens/journey/MoodChart.tsx:58` Emoji in code: 😊
- **[minor]** `src/screens/journey/MoodChart.tsx:68` Emoji in code: 🙂
- **[minor]** `src/screens/journey/MoodChart.tsx:83` Emoji in code: 🍽
- **[minor]** `src/screens/journey/MoodChart.tsx:96` Emoji in code: 🙂
- **[minor]** `src/screens/journey/InsightsCard.tsx:96` Emoji in code: 💡
- **[minor]** `src/screens/journey/InsightsCard.tsx:110` Emoji in code: 💡
- **[minor]** `src/screens/journey/InsightsCard.tsx:166` Emoji in code: 📈
- **[minor]** `src/screens/journey/InsightsCard.tsx:167` Emoji in code: 📉
- **[minor]** `src/screens/social/SocialScreen.tsx:241` Emoji in code: 🏆
- **[minor]** `src/screens/social/SocialScreen.tsx:264` Emoji in code: 🥇
- **[minor]** `src/screens/social/SocialScreen.tsx:276` Emoji in code: 👥
- **[minor]** `src/screens/profile/GoalSetting.tsx:34` Emoji in code: 🧬
- **[minor]** `src/screens/profile/GoalSetting.tsx:35` Emoji in code: 🧠
- **[minor]** `src/screens/profile/GoalSetting.tsx:37` Emoji in code: 🕊
- **[minor]** `src/screens/profile/GoalSetting.tsx:38` Emoji in code: 💪
- **[minor]** `src/screens/profile/ProfileScreen.tsx:104` Emoji in code: 🧬
- **[minor]** `src/screens/profile/AchievementShelf.tsx:95` Emoji in code: 🔒
- **[minor]** `src/screens/profile/AchievementShelf.tsx:119` Emoji in code: 🔒
- **[minor]** `src/screens/meal/MealLogScreen.tsx:35` Emoji in code: 🥩
- **[minor]** `src/screens/meal/MealLogScreen.tsx:36` Emoji in code: 🍞
- **[minor]** `src/screens/meal/MealLogScreen.tsx:37` Emoji in code: 🥑
- **[minor]** `src/screens/meal/MealLogScreen.tsx:38` Emoji in code: 🥗
- **[minor]** `src/screens/meal/MealLogScreen.tsx:39` Emoji in code: 🍎
- **[minor]** `src/screens/meal/MealLogScreen.tsx:40` Emoji in code: 🧀
- **[minor]** `src/screens/meal/MealLogScreen.tsx:41` Emoji in code: 🍲
- **[minor]** `src/screens/meal/MealLogScreen.tsx:42` Emoji in code: 🥜
- **[minor]** `src/screens/meal/MealLogScreen.tsx:51` Emoji in code: 🌅
- **[minor]** `src/screens/meal/MealLogScreen.tsx:57` Emoji in code: 🌙
- **[minor]** `src/screens/meal/MealLogScreen.tsx:63` Emoji in code: 🍽
- **[minor]** `src/screens/meal/MealLogScreen.tsx:69` Emoji in code: 🥜
- **[minor]** `src/screens/meal/MealLogScreen.tsx:275` Emoji in code: 💡
- **[minor]** `src/screens/onboarding/OnboardingScreen.tsx:34` Emoji in code: 🧬
- **[minor]** `src/screens/onboarding/OnboardingScreen.tsx:35` Emoji in code: 🧠
- **[minor]** `src/screens/onboarding/OnboardingScreen.tsx:36` Emoji in code: 🔥
- **[minor]** `src/screens/onboarding/OnboardingScreen.tsx:37` Emoji in code: 🕊
- **[minor]** `src/screens/onboarding/OnboardingScreen.tsx:38` Emoji in code: 💚
- **[minor]** `src/screens/onboarding/OnboardingScreen.tsx:109` Emoji in code: 🧬
- **[minor]** `src/screens/onboarding/OnboardingScreen.tsx:117` Emoji in code: 🔥
- **[minor]** `src/screens/onboarding/OnboardingScreen.tsx:118` Emoji in code: 🧠
- **[minor]** `src/screens/onboarding/OnboardingScreen.tsx:119` Emoji in code: 💧
- **[minor]** `src/screens/onboarding/OnboardingScreen.tsx:120` Emoji in code: 🏆
- **[minor]** `src/components/BodyVisualization/BiomarkerCards.tsx:58` Emoji in code: 🔬
- **[minor]** `src/components/BodyVisualization/BiomarkerCards.tsx:60` Emoji in code: 💪
- **[minor]** `src/components/BodyVisualization/BodyVisualizationFullScreen.tsx:267` Emoji in code: 📤
- **[minor]** `src/components/common/WaterTracker.tsx:42` Emoji in code: 💧
- **[minor]** `src/hooks/useLiveActivity.ts:71` Emoji in code: 🍽
- **[minor]** `src/hooks/useLiveActivity.ts:73` Emoji in code: 🔥
- **[minor]** `src/hooks/useLiveActivity.ts:75` Emoji in code: 🧬
- **[minor]** `src/hooks/useLiveActivity.ts:76` Emoji in code: 🌟
- **[minor]** `src/hooks/useLiveActivity.ts:86` Emoji in code: 🌟
- **[minor]** `src/lib/gamification.ts:41` Emoji in code: 🌱
- **[minor]** `src/lib/gamification.ts:50` Emoji in code: 💪
- **[minor]** `src/lib/gamification.ts:59` Emoji in code: 🏆
- **[minor]** `src/lib/gamification.ts:78` Emoji in code: 🔥
- **[minor]** `src/lib/gamification.ts:96` Emoji in code: 🧬
- **[minor]** `src/lib/gamification.ts:105` Emoji in code: 🛡
- **[minor]** `src/lib/gamification.ts:115` Emoji in code: 🔗
- **[minor]** `src/lib/gamification.ts:124` Emoji in code: 📅
- **[minor]** `src/lib/gamification.ts:133` Emoji in code: 👑
- **[minor]** `src/lib/gamification.ts:143` Emoji in code: 💧
- **[minor]** `src/lib/gamification.ts:153` Emoji in code: 😊
- **[minor]** `src/lib/gamification.ts:163` Emoji in code: 🦉
- **[minor]** `src/lib/gamification.ts:172` Emoji in code: 🐦
- **[minor]** `src/lib/gamification.ts:181` Emoji in code: 🗺
- **[minor]** `src/lib/gamification.ts:190` Emoji in code: 🦋
- **[minor]** `src/lib/gamification.ts:199` Emoji in code: 📤
- **[minor]** `src/lib/fasting-science.ts:110` Emoji in code: 💧
- **[minor]** `src/lib/fasting-science.ts:121` Emoji in code: 🚨
- **[minor]** `src/lib/insights.ts:156` Emoji in code: 📈
- **[minor]** `src/lib/insights.ts:165` Emoji in code: 📉
- **[minor]** `src/lib/insights.ts:179` Emoji in code: 🎯
- **[minor]** `src/lib/insights.ts:188` Emoji in code: 💪
- **[minor]** `src/lib/insights.ts:201` Emoji in code: 🧬
- **[minor]** `src/lib/insights.ts:213` Emoji in code: 📊
- **[minor]** `src/lib/insights.ts:289` Emoji in code: 📈
- **[minor]** `src/lib/insights.ts:298` Emoji in code: 📉
- **[minor]** `src/lib/insights.ts:310` Emoji in code: 🗺
- **[minor]** `src/lib/insights.ts:321` Emoji in code: 🏅
- **[minor]** `src/lib/insights.ts:332` Emoji in code: 📊
- **[minor]** `src/lib/insights.ts:504` Emoji in code: 🏆
- **[minor]** `src/lib/insights.ts:514` Emoji in code: 🔥
- **[minor]** `src/lib/insights.ts:524` Emoji in code: 🧬
- **[minor]** `src/lib/celebrations.ts:46` Emoji in code: 🚀
- **[minor]** `src/lib/celebrations.ts:49` Emoji in code: 🧬
- **[minor]** `src/lib/celebrations.ts:50` Emoji in code: 💧
- **[minor]** `src/lib/celebrations.ts:51` Emoji in code: 🧠
- **[minor]** `src/lib/celebrations.ts:52` Emoji in code: 🎯
- **[minor]** `src/lib/celebrations.ts:54` Emoji in code: 💪
- **[minor]** `src/lib/celebrations.ts:55` Emoji in code: 🔥
- **[minor]** `src/lib/celebrations.ts:59` Emoji in code: 🌟
- **[minor]** `src/lib/gentle-notifications.ts:42` Emoji in code: 💧
- **[minor]** `src/lib/hydration-reminders.ts:75` Emoji in code: 💧
- **[minor]** `src/lib/hydration-reminders.ts:76` Emoji in code: 💧
- **[minor]** `src/lib/hydration-reminders.ts:77` Emoji in code: 💧
- **[minor]** `src/lib/hydration-reminders.ts:78` Emoji in code: 💧
- **[minor]** `src/lib/hydration-reminders.ts:79` Emoji in code: 💧
- **[minor]** `src/lib/hydration-reminders.ts:80` Emoji in code: 💧
- **[minor]** `src/lib/hydration-reminders.ts:175` Emoji in code: 🎉
- **[minor]** `src/lib/ai-coach.ts:88` Emoji in code: 🚀
- **[minor]** `src/lib/ai-coach.ts:181` Emoji in code: 📅
- **[minor]** `src/lib/ai-coach.ts:196` Emoji in code: 🔥
- **[minor]** `src/lib/ai-coach.ts:206` Emoji in code: 🔥
- **[minor]** `src/lib/ai-coach.ts:216` Emoji in code: 👑
- **[minor]** `src/lib/ai-coach.ts:235` Emoji in code: 💧
- **[minor]** `src/lib/ai-coach.ts:245` Emoji in code: 🏆
- **[minor]** `src/lib/ai-coach.ts:286` Emoji in code: 🌱
- **[minor]** `src/lib/ai-coach.ts:297` Emoji in code: 😴
- **[minor]** `src/lib/ai-coach.ts:305` Emoji in code: 🧂
- **[minor]** `src/lib/ai-coach.ts:313` Emoji in code: 🏃
- **[minor]** `src/lib/streaks.ts:27` Emoji in code: 🔥
- **[minor]** `src/lib/streaks.ts:28` Emoji in code: 💪
- **[minor]** `src/lib/streaks.ts:29` Emoji in code: 👑
- **[minor]** `src/lib/streaks.ts:31` Emoji in code: 🏆
- **[minor]** `src/lib/streaks.ts:32` Emoji in code: 🌟
- **[minor]** `src/lib/streaks.ts:33` Emoji in code: 💎
## `learning_ai_jarvis_jr`
**Counts:** critical=0 · major=38 · minor=15 · total=53
- **[major]** `web/src/app/(app)/progress/page.tsx:91` Hardcoded hex color: #fff
- **[major]** `web/src/app/(app)/dashboard/page.tsx:125` Hardcoded hex color: #fff
- **[major]** `web/src/app/layout.tsx:18` Hardcoded hex color: #06070A
- **[major]** `web/src/app/error.tsx:14` Hardcoded hex color: #06070A
- **[major]** `web/src/app/error.tsx:16` Hardcoded hex color: #FF6E6E
- **[major]** `web/src/app/error.tsx:17` Hardcoded hex color: #A5B1C7
- **[major]** `web/src/app/error.tsx:23` Hardcoded hex color: #7C6BFF
- **[major]** `web/src/app/error.tsx:23` Hardcoded hex color: #fff
- **[major]** `web/src/app/loading.tsx:3` Hardcoded hex color: #06070A
- **[major]** `web/src/app/loading.tsx:7` Hardcoded hex color: #7C6BFF
- **[major]** `web/src/app/loading.tsx:9` Hardcoded hex color: #A5B1C7
- **[major]** `web/src/app/globals.css:13` Hardcoded hex color: #5a8cff
- **[major]** `web/src/app/globals.css:14` Hardcoded hex color: #ffb74d
- **[major]** `web/src/app/globals.css:15` Hardcoded hex color: #e040fb
- **[major]** `web/src/app/globals.css:16` Hardcoded hex color: #34d399
- **[major]** `web/src/app/globals.css:17` Hardcoded hex color: #2ee6d6
- **[major]** `web/src/app/globals.css:18` Hardcoded hex color: #ff9f43
- **[major]** `web/src/app/globals.css:31` Hardcoded hex color: #7C6BFF
- **[major]** `web/src/app/globals.css:126` Hardcoded hex color: #2a2a4a
- **[major]** `web/src/app/globals.css:127` Hardcoded hex color: #12151c
- **[major]** `web/src/app/globals.css:128` Hardcoded hex color: #fff
- **[major]** `web/src/app/globals.css:156` Hardcoded hex color: #F8FAFC
- **[major]** `web/src/app/globals.css:157` Hardcoded hex color: #FFFFFF
- **[major]** `web/src/app/globals.css:158` Hardcoded hex color: #FFFFFF
- **[major]** `web/src/app/globals.css:159` Hardcoded hex color: #F1F5F9
- **[major]** `web/src/app/globals.css:160` Hardcoded hex color: #0F172A
- **[major]** `web/src/app/globals.css:161` Hardcoded hex color: #475569
- **[major]** `web/src/app/globals.css:162` Hardcoded hex color: #94A3B8
- **[major]** `web/src/app/not-found.tsx:5` Hardcoded hex color: #06070A
- **[major]** `web/src/app/not-found.tsx:7` Hardcoded hex color: #7C6BFF
- **[major]** `web/src/app/not-found.tsx:8` Hardcoded hex color: #A5B1C7
- **[major]** `web/src/app/not-found.tsx:9` Hardcoded hex color: #6C7C98
- **[major]** `web/src/app/not-found.tsx:15` Hardcoded hex color: #7C6BFF
- **[major]** `web/src/app/not-found.tsx:15` Hardcoded hex color: #fff
- **[major]** `web/src/app/providers.tsx:51` Hardcoded hex color: #3D2E00
- **[major]** `web/src/app/providers.tsx:52` Hardcoded hex color: #FFD666
- **[major]** `web/src/app/providers.tsx:57` Hardcoded hex color: #665200
- **[major]** `backend/src/modules/jarvis-agents/types.ts:55` Hardcoded hex color: #7C6BFF
- **[minor]** `web/src/app/(app)/settings/page.tsx:72` Emoji in code: 🌙
- **[minor]** `web/src/app/(app)/dashboard/page.tsx:20` Emoji in code: 🎯
- **[minor]** `web/src/app/(app)/dashboard/page.tsx:27` Emoji in code: 🌍
- **[minor]** `web/src/app/(app)/history/page.tsx:34` Emoji in code: 📋
- **[minor]** `web/src/components/Sidebar.tsx:8` Emoji in code: 👥
- **[minor]** `web/src/components/Sidebar.tsx:9` Emoji in code: 📋
- **[minor]** `web/src/components/Sidebar.tsx:10` Emoji in code: 📊
- **[minor]** `web/src/components/Sidebar.tsx:11` Emoji in code: 🏪
- **[minor]** `web/src/lib/share.ts:40` Emoji in code: 🏆
- **[minor]** `web/src/lib/share.ts:41` Emoji in code: 🔥
- **[minor]** `web/src/lib/share.ts:42` Emoji in code: 📊
- **[minor]** `web/src/lib/share.ts:44` Emoji in code: 📈
- **[minor]** `web/src/lib/share.ts:61` Emoji in code: 💡
- **[minor]** `android/app/src/main/java/com/jarvisjr/app/ui/screens/HistoryScreen.kt:33` Emoji in code: 📋
- **[minor]** `android/app/src/main/java/com/jarvisjr/app/ui/screens/ProgressScreen.kt:33` Emoji in code: 📊
## `learning_ai_peakpulse`
**Counts:** critical=0 · major=0 · minor=1 · total=1
- **[minor]** `backend/src/modules/peak-sessions/repository.ts:31` any type: const decrypted = await getEncryptor().decrypt(doc.notes as any, {
## `learning_ai_notes`
**Counts:** critical=0 · major=0 · minor=11 · total=11
- **[minor]** `web/src/app/(app)/workspaces/page.tsx:198` any type: <Badge variant="neutral">owner:any</Badge>
- **[minor]** `web/src/app/(app)/workspaces/page.tsx:199` — any type: <Badge variant="neutral">visibility:any</Badge>
- **[minor]** `backend/src/lib/request-context.ts:15` — any type: return _ctx.getRequestProductId(req as any);
- **[minor]** `backend/src/lib/request-context.ts:20` — any type: return _ctx.getUserId(req as any);
- **[minor]** `mobile/src/app/(tabs)/capture.tsx:16` — Emoji in code: 📷
- **[minor]** `mobile/src/app/(tabs)/capture.tsx:17` — Emoji in code: 🎙
- **[minor]** `mobile/src/app/(tabs)/capture.tsx:18` — Emoji in code: 🔗
- **[minor]** `mobile/src/app/(tabs)/capture.tsx:19` — Emoji in code: 📄
- **[minor]** `mobile/src/app/(tabs)/capture.tsx:20` — Emoji in code: 📋
- **[minor]** `mobile/src/app/(tabs)/capture/scan.tsx:21` — Emoji in code: 📄
- **[minor]** `mobile/src/app/(tabs)/capture/voice.tsx:22` — Emoji in code: 🎙
## `learning_ai_flowmonk`
**Counts:** critical=0 · major=151 · minor=4 · total=155
- **[minor]** `web/src/app/(app)/tasks/page.tsx:153` — any type: { value: '', label: 'Energy: any' },
- **[minor]** `backend/src/lib/scheduler/engine.ts:468` — any type: // Priority 3: any remaining slot (no zone match)
- **[minor]** `backend/src/modules/tasks/repository.ts:28` — any type: const decrypted = await getEncryptor().decrypt(task.description as any, {
- **[major]** `web/src/app/globals.css:6` — Hardcoded hex color: #5a8cff
- **[major]** `web/src/app/globals.css:7` — Hardcoded hex color: #5a8cff
- **[major]** `web/src/app/globals.css:8` — Hardcoded hex color: #f59e0b
- **[major]** `web/src/app/globals.css:9` — Hardcoded hex color: #ff6e6e
- **[major]** `web/src/app/globals.css:25` — Hardcoded hex color: #3b1117
- **[major]** `web/src/app/globals.css:26` — Hardcoded hex color: #7f1d1d
- **[major]** `web/src/app/globals.css:27` — Hardcoded hex color: #fca5a5
- **[major]** `web/src/app/globals.css:28` — Hardcoded hex color: #422006
- **[major]** `web/src/app/globals.css:29` — Hardcoded hex color: #92400e
- **[major]** `web/src/app/globals.css:30` — Hardcoded hex color: #fcd34d
- **[major]** `web/src/app/globals.css:31` — Hardcoded hex color: #ef4444
- **[major]** `web/src/app/globals.css:32` — Hardcoded hex color: #f59e0b
- **[major]** `web/src/app/globals.css:63` — Hardcoded hex color: #5A8CFF
- **[major]** `web/src/app/globals.css:141` — Hardcoded hex color: #2a2a4a
- **[major]** `web/src/app/globals.css:142` — Hardcoded hex color: #12151c
- **[major]** `web/src/app/globals.css:143` — Hardcoded hex color: #fff
- **[major]** `web/src/app/globals.css:165` — Hardcoded hex color: #F8FAFC
- **[major]** `web/src/app/globals.css:166` — Hardcoded hex color: #FFFFFF
- **[major]** `web/src/app/globals.css:167` — Hardcoded hex color: #FFFFFF
- **[major]** `web/src/app/globals.css:168` — Hardcoded hex color: #F1F5F9
- **[major]** `web/src/app/globals.css:169` — Hardcoded hex color: #0F172A
- **[major]** `web/src/app/globals.css:170` — Hardcoded hex color: #475569
- **[major]** `web/src/app/globals.css:171` — Hardcoded hex color: #94A3B8
- **[major]** `backend/src/modules/zones/repository.ts:28` — Hardcoded hex color: #5A8CFF
- **[major]** `backend/src/modules/zones/repository.ts:29` — Hardcoded hex color: #5AE68C
- **[major]** `backend/src/modules/zones/repository.ts:30` — Hardcoded hex color: #FF6B6B
- **[major]** `backend/src/modules/zones/repository.ts:31` — Hardcoded hex color: #FECA57
- **[major]** `backend/src/modules/zones/repository.ts:32` — Hardcoded hex color: #A66BFF
- **[major]** `backend/src/modules/zones/repository.ts:69` — Hardcoded hex color: #5A8CFF
- **[major]** `backend/src/modules/zones/types.ts:9` — Hardcoded hex color: #5A8CFF
- **[major]** `mobile/src/app/index.tsx:57` — Hardcoded hex color: #07111f
- **[major]** `mobile/src/app/index.tsx:59` — Hardcoded hex color: #5ae68c
- **[major]** `mobile/src/app/index.tsx:60` — Hardcoded hex color: #eff4ff
- **[major]** `mobile/src/app/index.tsx:61` — Hardcoded hex color: #a8b4c8
- **[major]** `mobile/src/app/index.tsx:64` — Hardcoded hex color: #0f1b2d
- **[major]** `mobile/src/app/index.tsx:64` — Hardcoded hex color: #24344d
- **[major]** `mobile/src/app/index.tsx:68` — Hardcoded hex color: #eff4ff
- **[major]** `mobile/src/app/index.tsx:70` — Hardcoded hex color: #07111f
- **[major]** `mobile/src/app/index.tsx:70` — Hardcoded hex color: #5ae68c
- **[major]** `mobile/src/app/index.tsx:73` — Hardcoded hex color: #a8b4c8
- **[major]** `mobile/src/app/urgent.tsx:39` — Hardcoded hex color: #ef4444
- **[major]** `mobile/src/app/urgent.tsx:39` — Hardcoded hex color: #f59e0b
- **[major]** `mobile/src/app/urgent.tsx:69` — Hardcoded hex color: #07111f
- **[major]** `mobile/src/app/urgent.tsx:70` — Hardcoded hex color: #eff4ff
- **[major]** `mobile/src/app/urgent.tsx:71` — Hardcoded hex color: #a8b4c8
- **[major]** `mobile/src/app/urgent.tsx:74` — Hardcoded hex color: #22170a
- **[major]** `mobile/src/app/urgent.tsx:74` — Hardcoded hex color: #5b4112
- **[major]** `mobile/src/app/urgent.tsx:79` — Hardcoded hex color: #eff4ff
- **[major]** `mobile/src/app/urgent.tsx:80` — Hardcoded hex color: #d9c7a4
- **[major]** `mobile/src/app/urgent.tsx:81` — Hardcoded hex color: #a8b4c8
- **[major]** `mobile/src/app/urgent.tsx:83` — Hardcoded hex color: #5b4112
- **[major]** `mobile/src/app/urgent.tsx:84` — Hardcoded hex color: #5ae68c
- **[major]** `mobile/src/app/urgent.tsx:85` — Hardcoded hex color: #f59e0b
- **[major]** `mobile/src/app/urgent.tsx:86` — Hardcoded hex color: #5a8cff
- **[major]** `mobile/src/app/urgent.tsx:88` — Hardcoded hex color: #a8b4c8
- **[major]** `mobile/src/app/login.tsx:31` — Hardcoded hex color: #5a6a82
- **[major]** `mobile/src/app/login.tsx:40` — Hardcoded hex color: #5a6a82
- **[major]** `mobile/src/app/login.tsx:54` — Hardcoded hex color: #07111f
- **[major]** `mobile/src/app/login.tsx:55` — Hardcoded hex color: #0f1b2d
- **[major]** `mobile/src/app/login.tsx:56` — Hardcoded hex color: #5ae68c
- **[major]** `mobile/src/app/login.tsx:57` — Hardcoded hex color: #a8b4c8
- **[major]** `mobile/src/app/login.tsx:58` — Hardcoded hex color: #07111f
- **[major]** `mobile/src/app/login.tsx:58` — Hardcoded hex color: #24344d
- **[major]** `mobile/src/app/login.tsx:58` — Hardcoded hex color: #eff4ff
- **[major]** `mobile/src/app/login.tsx:59` — Hardcoded hex color: #5ae68c
- **[major]** `mobile/src/app/login.tsx:60` — Hardcoded hex color: #07111f
- **[major]** `mobile/src/app/tasks.tsx:7` — Hardcoded hex color: #ef4444
- **[major]** `mobile/src/app/tasks.tsx:8` — Hardcoded hex color: #f59e0b
- **[major]** `mobile/src/app/tasks.tsx:9` — Hardcoded hex color: #5a8cff
- **[major]** `mobile/src/app/tasks.tsx:10` — Hardcoded hex color: #a8b4c8
- **[major]** `mobile/src/app/tasks.tsx:69` — Hardcoded hex color: #5ae68c
- **[major]** `mobile/src/app/tasks.tsx:74` — Hardcoded hex color: #5a8cff
- **[major]** `mobile/src/app/tasks.tsx:79` — Hardcoded hex color: #f59e0b
- **[major]** `mobile/src/app/tasks.tsx:83` — Hardcoded hex color: #a8b4c8
- **[major]** `mobile/src/app/tasks.tsx:98` — Hardcoded hex color: #07111f
- **[major]** `mobile/src/app/tasks.tsx:99` — Hardcoded hex color: #eff4ff
- **[major]** `mobile/src/app/tasks.tsx:100` — Hardcoded hex color: #a8b4c8
- **[major]** `mobile/src/app/tasks.tsx:102` — Hardcoded hex color: #a8b4c8
- **[major]** `mobile/src/app/tasks.tsx:104` — Hardcoded hex color: #0f1b2d
- **[major]** `mobile/src/app/tasks.tsx:104` — Hardcoded hex color: #24344d
- **[major]** `mobile/src/app/tasks.tsx:107` — Hardcoded hex color: #ef4444
- **[major]** `mobile/src/app/tasks.tsx:110` — Hardcoded hex color: #eff4ff
- **[major]** `mobile/src/app/tasks.tsx:111` — Hardcoded hex color: #fff
- **[major]** `mobile/src/app/tasks.tsx:111` — Hardcoded hex color: #ef4444
- **[major]** `mobile/src/app/tasks.tsx:112` — Hardcoded hex color: #a8b4c8
- **[major]** `mobile/src/app/tasks.tsx:114` — Hardcoded hex color: #24344d
- **[major]** `mobile/src/app/schedule.tsx:7` — Hardcoded hex color: #5a8cff
- **[major]** `mobile/src/app/schedule.tsx:8` — Hardcoded hex color: #5ae68c
- **[major]** `mobile/src/app/schedule.tsx:9` — Hardcoded hex color: #e879f9
- **[major]** `mobile/src/app/schedule.tsx:10` — Hardcoded hex color: #f59e0b
- **[major]** `mobile/src/app/schedule.tsx:71` — Hardcoded hex color: #24344d
- **[major]** `mobile/src/app/schedule.tsx:81` — Hardcoded hex color: #5ae68c
- **[major]** `mobile/src/app/schedule.tsx:84` — Hardcoded hex color: #f59e0b
- **[major]** `mobile/src/app/schedule.tsx:87` — Hardcoded hex color: #5a8cff
- **[major]** `mobile/src/app/schedule.tsx:105` — Hardcoded hex color: #07111f
- **[major]** `mobile/src/app/schedule.tsx:107` — Hardcoded hex color: #eff4ff
- **[major]** `mobile/src/app/schedule.tsx:108` — Hardcoded hex color: #a8b4c8
- **[major]** `mobile/src/app/schedule.tsx:109` — Hardcoded hex color: #5ae68c
- **[major]** `mobile/src/app/schedule.tsx:110` — Hardcoded hex color: #07111f
- **[major]** `mobile/src/app/schedule.tsx:113` — Hardcoded hex color: #0f1b2d
- **[major]** `mobile/src/app/schedule.tsx:113` — Hardcoded hex color: #24344d
- **[major]** `mobile/src/app/schedule.tsx:117` — Hardcoded hex color: #5a8cff
- **[major]** `mobile/src/app/schedule.tsx:118` — Hardcoded hex color: #a8b4c8
- **[major]** `mobile/src/app/schedule.tsx:120` — Hardcoded hex color: #eff4ff
- **[major]** `mobile/src/app/schedule.tsx:121` — Hardcoded hex color: #a8b4c8
- **[major]** `mobile/src/app/schedule.tsx:123` — Hardcoded hex color: #24344d
- **[major]** `mobile/src/app/schedule.tsx:125` — Hardcoded hex color: #a8b4c8
- **[major]** `mobile/src/app/_layout.tsx:11` — Hardcoded hex color: #07111f
- **[major]** `mobile/src/app/flows.tsx:55` — Hardcoded hex color: #07111f
- **[major]** `mobile/src/app/flows.tsx:56` — Hardcoded hex color: #eff4ff
- **[major]** `mobile/src/app/flows.tsx:57` — Hardcoded hex color: #a8b4c8
- **[major]** `mobile/src/app/flows.tsx:60` — Hardcoded hex color: #0f1b2d
- **[major]** `mobile/src/app/flows.tsx:60` — Hardcoded hex color: #24344d
- **[major]** `mobile/src/app/flows.tsx:65` — Hardcoded hex color: #eff4ff
- **[major]** `mobile/src/app/flows.tsx:66` — Hardcoded hex color: #a8b4c8
- **[major]** `mobile/src/app/flows.tsx:66` — Hardcoded hex color: #24344d
- **[major]** `mobile/src/app/flows.tsx:67` — Hardcoded hex color: #a8b4c8
- **[major]** `mobile/src/app/flows.tsx:69` — Hardcoded hex color: #5a6a82
- **[major]** `mobile/src/app/flows.tsx:71` — Hardcoded hex color: #a8b4c8
- **[major]** `mobile/src/app/capture.tsx:44` — Hardcoded hex color: #5a6a82
- **[major]** `mobile/src/app/capture.tsx:71` — Hardcoded hex color: #5a6a82
- **[major]** `mobile/src/app/capture.tsx:83` — Hardcoded hex color: #07111f
- **[major]** `mobile/src/app/capture.tsx:84` — Hardcoded hex color: #eff4ff
- **[major]** `mobile/src/app/capture.tsx:86` — Hardcoded hex color: #a8b4c8
- **[major]** `mobile/src/app/capture.tsx:88` — Hardcoded hex color: #0f1b2d
- **[major]** `mobile/src/app/capture.tsx:88` — Hardcoded hex color: #24344d
- **[major]** `mobile/src/app/capture.tsx:89` — Hardcoded hex color: #eff4ff
- **[major]** `mobile/src/app/capture.tsx:94` — Hardcoded hex color: #24344d
- **[major]** `mobile/src/app/capture.tsx:94` — Hardcoded hex color: #0f1b2d
- **[major]** `mobile/src/app/capture.tsx:96` — Hardcoded hex color: #5a8cff
- **[major]** `mobile/src/app/capture.tsx:96` — Hardcoded hex color: #5a8cff
- **[major]** `mobile/src/app/capture.tsx:97` — Hardcoded hex color: #a8b4c8
- **[major]** `mobile/src/app/capture.tsx:98` — Hardcoded hex color: #fff
- **[major]** `mobile/src/app/capture.tsx:100` — Hardcoded hex color: #5ae68c
- **[major]** `mobile/src/app/capture.tsx:102` — Hardcoded hex color: #07111f
- **[major]** `mobile/src/app/recommendations.tsx:7` — Hardcoded hex color: #ef4444
- **[major]** `mobile/src/app/recommendations.tsx:8` — Hardcoded hex color: #f59e0b
- **[major]** `mobile/src/app/recommendations.tsx:9` — Hardcoded hex color: #5a8cff
- **[major]** `mobile/src/app/recommendations.tsx:50` — Hardcoded hex color: #24344d
- **[major]** `mobile/src/app/recommendations.tsx:78` — Hardcoded hex color: #07111f
- **[major]** `mobile/src/app/recommendations.tsx:79` — Hardcoded hex color: #eff4ff
- **[major]** `mobile/src/app/recommendations.tsx:80` — Hardcoded hex color: #a8b4c8
- **[major]** `mobile/src/app/recommendations.tsx:83` — Hardcoded hex color: #0f1b2d
- **[major]** `mobile/src/app/recommendations.tsx:88` — Hardcoded hex color: #eff4ff
- **[major]** `mobile/src/app/recommendations.tsx:89` — Hardcoded hex color: #5a6a82
- **[major]** `mobile/src/app/recommendations.tsx:90` — Hardcoded hex color: #a8b4c8
- **[major]** `mobile/src/app/recommendations.tsx:92` — Hardcoded hex color: #5ae68c
- **[major]** `mobile/src/app/recommendations.tsx:93` — Hardcoded hex color: #07111f
- **[major]** `mobile/src/app/recommendations.tsx:94` — Hardcoded hex color: #24344d
- **[major]** `mobile/src/app/recommendations.tsx:95` — Hardcoded hex color: #a8b4c8
- **[major]** `mobile/src/app/recommendations.tsx:97` — Hardcoded hex color: #a8b4c8
- **[minor]** `web/src/app/(app)/settings/page.tsx:74` — Emoji in code: 🌙
## `learning_ai_trails`
**Counts:** critical=0 · major=26 · minor=1 · total=27
- **[major]** `web/src/app/error.tsx:9` — Hardcoded hex color: #07111F
- **[major]** `web/src/app/error.tsx:11` — Hardcoded hex color: #FF6E6E
- **[major]** `web/src/app/error.tsx:12` — Hardcoded hex color: #A8B4C8
- **[major]** `web/src/app/error.tsx:18` — Hardcoded hex color: #5A8CFF
- **[major]** `web/src/app/error.tsx:18` — Hardcoded hex color: #fff
- **[major]** `web/src/app/loading.tsx:3` — Hardcoded hex color: #07111F
- **[major]** `web/src/app/loading.tsx:7` — Hardcoded hex color: #5A8CFF
- **[major]** `web/src/app/loading.tsx:9` — Hardcoded hex color: #A8B4C8
- **[major]** `web/src/app/globals.css:47` — Hardcoded hex color: #5A8CFF
- **[major]** `web/src/app/globals.css:109` — Hardcoded hex color: #2a2a4a
- **[major]** `web/src/app/globals.css:110` — Hardcoded hex color: #12151c
- **[major]** `web/src/app/globals.css:111` — Hardcoded hex color: #fff
- **[major]** `web/src/app/globals.css:133` — Hardcoded hex color: #F8FAFC
- **[major]** `web/src/app/globals.css:134` — Hardcoded hex color: #FFFFFF
- **[major]** `web/src/app/globals.css:135` — Hardcoded hex color: #FFFFFF
- **[major]** `web/src/app/globals.css:136` — Hardcoded hex color: #F1F5F9
- **[major]** `web/src/app/globals.css:137` — Hardcoded hex color: #0F172A
- **[major]** `web/src/app/globals.css:138` — Hardcoded hex color: #475569
- **[major]** `web/src/app/globals.css:139` — Hardcoded hex color: #94A3B8
- **[major]** `web/src/app/not-found.tsx:5` — Hardcoded hex color: #07111F
- **[major]** `web/src/app/not-found.tsx:7` — Hardcoded hex color: #5A8CFF
- **[major]** `web/src/app/not-found.tsx:8` — Hardcoded hex color: #A8B4C8
- **[major]** `web/src/app/not-found.tsx:9` — Hardcoded hex color: #A8B4C8
- **[major]** `web/src/app/not-found.tsx:15` — Hardcoded hex color: #5A8CFF
- **[major]** `web/src/app/not-found.tsx:15` — Hardcoded hex color: #fff
- **[major]** `web/src/components/Sidebar.tsx:27` — Hardcoded hex color: #fff
- **[minor]** `web/src/app/(app)/settings/page.tsx:42` — Emoji in code: 🌙
## `learning_ai_local_memory_gpt`
**Counts:** critical=0 · major=48 · minor=0 · total=48
- **[major]** `web/src/app/error.tsx:9` — Hardcoded hex color: #0A0A0A
- **[major]** `web/src/app/error.tsx:11` — Hardcoded hex color: #EF4444
- **[major]** `web/src/app/error.tsx:12` — Hardcoded hex color: #999
- **[major]** `web/src/app/error.tsx:18` — Hardcoded hex color: #6366F1
- **[major]** `web/src/app/error.tsx:18` — Hardcoded hex color: #fff
- **[major]** `web/src/app/loading.tsx:3` — Hardcoded hex color: #0A0A0A
- **[major]** `web/src/app/loading.tsx:7` — Hardcoded hex color: #6366F1
- **[major]** `web/src/app/loading.tsx:9` — Hardcoded hex color: #999
- **[major]** `web/src/app/globals.css:8` — Hardcoded hex color: #2a2a2a
- **[major]** `web/src/app/globals.css:9` — Hardcoded hex color: #333
- **[major]** `web/src/app/globals.css:19` — Hardcoded hex color: #ffffff
- **[major]** `web/src/app/globals.css:20` — Hardcoded hex color: #f7f7f8
- **[major]** `web/src/app/globals.css:21` — Hardcoded hex color: #ececf1
- **[major]** `web/src/app/globals.css:22` — Hardcoded hex color: #e5e5ea
- **[major]** `web/src/app/globals.css:23` — Hardcoded hex color: #dcdce4
- **[major]** `web/src/app/globals.css:24` — Hardcoded hex color: #ffffff
- **[major]** `web/src/app/globals.css:25` — Hardcoded hex color: #d9d9e3
- **[major]** `web/src/app/globals.css:26` — Hardcoded hex color: #c5c5d2
- **[major]** `web/src/app/globals.css:27` — Hardcoded hex color: #1a1a2e
- **[major]** `web/src/app/globals.css:28` — Hardcoded hex color: #565869
- **[major]** `web/src/app/globals.css:29` — Hardcoded hex color: #8e8ea0
- **[major]** `web/src/app/globals.css:30` — Hardcoded hex color: #6366f1
- **[major]** `web/src/app/globals.css:31` — Hardcoded hex color: #4f46e5
- **[major]** `web/src/app/globals.css:33` — Hardcoded hex color: #16a34a
- **[major]** `web/src/app/globals.css:34` — Hardcoded hex color: #d97706
- **[major]** `web/src/app/globals.css:35` — Hardcoded hex color: #dc2626
- **[major]** `web/src/app/globals.css:150` — Hardcoded hex color: #6366F1
- **[major]** `web/src/app/globals.css:195` — Hardcoded hex color: #F8FAFC
- **[major]** `web/src/app/globals.css:196` — Hardcoded hex color: #FFFFFF
- **[major]** `web/src/app/globals.css:197` — Hardcoded hex color: #FFFFFF
- **[major]** `web/src/app/globals.css:198` — Hardcoded hex color: #F1F5F9
- **[major]** `web/src/app/globals.css:199` — Hardcoded hex color: #0F172A
- **[major]** `web/src/app/globals.css:200` — Hardcoded hex color: #475569
- **[major]** `web/src/app/globals.css:201` — Hardcoded hex color: #94A3B8
- **[major]** `web/src/app/not-found.tsx:5` — Hardcoded hex color: #0A0A0A
- **[major]** `web/src/app/not-found.tsx:7` — Hardcoded hex color: #6366F1
- **[major]** `web/src/app/not-found.tsx:8` — Hardcoded hex color: #999
- **[major]** `web/src/app/not-found.tsx:9` — Hardcoded hex color: #666
- **[major]** `web/src/app/not-found.tsx:15` — Hardcoded hex color: #6366F1
- **[major]** `web/src/app/not-found.tsx:15` — Hardcoded hex color: #fff
- **[major]** `web/src/components/ComparePanel.tsx:61` — Hardcoded hex color: #fff
- **[major]** `web/src/components/ComparePanel.tsx:84` — Hardcoded hex color: #fff
- **[major]** `web/src/components/ComparePanel.tsx:92` — Hardcoded hex color: #fff
- **[major]** `web/src/components/ChatView.tsx:140` — Hardcoded hex color: #fff
- **[major]** `web/src/components/ChatView.tsx:151` — Hardcoded hex color: #fff
- **[major]** `web/src/components/SearchPanel.tsx:52` — Hardcoded hex color: #fff
- **[major]** `web/src/components/DocumentsPanel.tsx:54` — Hardcoded hex color: #fff
- **[major]** `web/src/components/Sidebar.tsx:164` — Hardcoded hex color: #fff
## `learning_ai_efforise`
**Counts:** critical=0 · major=82 · minor=10 · total=92
- **[minor]** `backend/src/lib/request-context.ts:14` — any type: return _ctx.getRequestProductId(req as any);
- **[minor]** `backend/src/lib/request-context.ts:19` — any type: return _ctx.getUserId(req as any);
- **[minor]** `client/src/components/ui/dialog.tsx:107` — any type: const isCurrentlyComposing = (e as any).isComposing || isComposing();
- **[minor]** `client/src/components/ui/textarea.tsx:24` — any type: const isComposing = (e.nativeEvent as any).isComposing || dialogCompositio
- **[minor]** `client/src/components/ui/input.tsx:25` — any type: const isComposing = (e.nativeEvent as any).isComposing || dialogCompositio
- **[minor]** `client/src/hooks/usePersistFn.ts:3` — any type: type noop = (...args: any[]) => any;
- **[major]** `mobile/src/theme/colors.ts:3` — Hardcoded hex color: #0C0F0E
- **[major]** `mobile/src/theme/colors.ts:4` — Hardcoded hex color: #141A18
- **[major]** `mobile/src/theme/colors.ts:7` — Hardcoded hex color: #1A2320
- **[major]** `mobile/src/theme/colors.ts:8` — Hardcoded hex color: #243029
- **[major]** `mobile/src/theme/colors.ts:11` — Hardcoded hex color: #2D3B36
- **[major]** `mobile/src/theme/colors.ts:12` — Hardcoded hex color: #1E2B26
- **[major]** `mobile/src/theme/colors.ts:15` — Hardcoded hex color: #E8F0EC
- **[major]** `mobile/src/theme/colors.ts:16` — Hardcoded hex color: #8FA89C
- **[major]** `mobile/src/theme/colors.ts:17` — Hardcoded hex color: #5E7A6D
- **[major]** `mobile/src/theme/colors.ts:20` — Hardcoded hex color: #34D399
- **[major]** `mobile/src/theme/colors.ts:21` — Hardcoded hex color: #059669
- **[major]** `mobile/src/theme/colors.ts:24` — Hardcoded hex color: #34D399
- **[major]** `mobile/src/theme/colors.ts:25` — Hardcoded hex color: #FBBF24
- **[major]** `mobile/src/theme/colors.ts:26` — Hardcoded hex color: #F87171
- **[major]** `mobile/src/theme/colors.ts:29` — Hardcoded hex color: #6EE7B7
- **[major]** `mobile/src/theme/colors.ts:30` — Hardcoded hex color: #34D399
- **[major]** `mobile/src/theme/colors.ts:31` — Hardcoded hex color: #059669
- **[major]** `client/src/index.css:47` — Hardcoded hex color: #ffffff
- **[major]** `client/src/index.css:48` — Hardcoded hex color: #f8fafc
- **[major]** `client/src/index.css:49` — Hardcoded hex color: #ffffff
- **[major]** `client/src/index.css:50` — Hardcoded hex color: #0f172a
- **[major]** `client/src/index.css:51` — Hardcoded hex color: #475569
- **[major]** `client/src/index.css:52` — Hardcoded hex color: #94a3b8
- **[major]** `client/src/index.css:53` — Hardcoded hex color: #059669
- **[major]** `client/src/index.css:54` — Hardcoded hex color: #0d9488
- **[major]** `client/src/index.css:55` — Hardcoded hex color: #059669
- **[major]** `client/src/index.css:55` — Hardcoded hex color: #0d9488
- **[major]** `client/src/index.css:57` — Hardcoded hex color: #e2e8f0
- **[major]** `client/src/index.css:58` — Hardcoded hex color: #f1f5f9
- **[major]** `client/src/index.css:117` — Hardcoded hex color: #0f172a
- **[major]** `client/src/index.css:118` — Hardcoded hex color: #1e293b
- **[major]** `client/src/index.css:119` — Hardcoded hex color: #1e293b
- **[major]** `client/src/index.css:120` — Hardcoded hex color: #f1f5f9
- **[major]** `client/src/index.css:121` — Hardcoded hex color: #94a3b8
- **[major]** `client/src/index.css:122` — Hardcoded hex color: #64748b
- **[major]** `client/src/index.css:123` — Hardcoded hex color: #34d399
- **[major]** `client/src/index.css:124` — Hardcoded hex color: #2dd4bf
- **[major]** `client/src/index.css:125` — Hardcoded hex color: #34d399
- **[major]** `client/src/index.css:125` — Hardcoded hex color: #2dd4bf
- **[major]** `client/src/index.css:154` — Hardcoded hex color: #34d399
- **[major]** `client/src/index.css:155` — Hardcoded hex color: #2dd4bf
- **[major]** `client/src/index.css:156` — Hardcoded hex color: #6ee7b7
- **[major]** `client/src/index.css:157` — Hardcoded hex color: #5eead4
- **[major]** `client/src/index.css:158` — Hardcoded hex color: #10b981
- **[major]** `client/src/components/ui/chart.tsx:56` — Hardcoded hex color: #ccc
- **[major]** `client/src/components/ui/chart.tsx:56` — Hardcoded hex color: #ccc
- **[major]** `client/src/components/ui/chart.tsx:56` — Hardcoded hex color: #ccc
- **[major]** `client/src/components/ui/chart.tsx:56` — Hardcoded hex color: #fff
- **[major]** `client/src/components/ui/chart.tsx:56` — Hardcoded hex color: #fff
- **[major]** `client/src/components/Sidebar.tsx:54` — Hardcoded hex color: #fff
- **[major]** `client/src/components/Sidebar.tsx:111` — Hardcoded hex color: #fff
- **[major]** `client/src/pages/app/Settings.tsx:46` — Hardcoded hex color: #fff
- **[major]** `client/src/pages/app/Settings.tsx:68` — Hardcoded hex color: #f59e0b
- **[major]** `client/src/pages/app/Dashboard.tsx:49` — Hardcoded hex color: #fff
- **[major]** `client/src/pages/app/Dashboard.tsx:64` — Hardcoded hex color: #f59e0b
- **[major]** `client/src/pages/app/Dashboard.tsx:65` — Hardcoded hex color: #ef4444
- **[major]** `client/src/pages/app/Dashboard.tsx:66` — Hardcoded hex color: #8b5cf6
- **[major]** `client/src/pages/app/Dashboard.tsx:184` — Hardcoded hex color: #34d399
- **[major]** `client/src/pages/app/Dashboard.tsx:185` — Hardcoded hex color: #f59e0b
- **[major]** `client/src/pages/app/Dashboard.tsx:186` — Hardcoded hex color: #8b5cf6
- **[major]** `client/src/pages/app/Identity.tsx:7` — Hardcoded hex color: #059669
- **[major]** `client/src/pages/app/Identity.tsx:7` — Hardcoded hex color: #0d9488
- **[major]** `client/src/pages/app/Identity.tsx:7` — Hardcoded hex color: #f59e0b
- **[major]** `client/src/pages/app/Identity.tsx:7` — Hardcoded hex color: #8b5cf6
- **[major]** `client/src/pages/app/Identity.tsx:7` — Hardcoded hex color: #ef4444
- **[major]** `client/src/pages/app/Identity.tsx:7` — Hardcoded hex color: #3b82f6
- **[major]** `client/src/pages/app/Identity.tsx:7` — Hardcoded hex color: #ec4899
- **[major]** `client/src/pages/app/Identity.tsx:7` — Hardcoded hex color: #f97316
- **[major]** `client/src/pages/app/Identity.tsx:66` — Hardcoded hex color: #fff
- **[major]** `client/src/pages/app/Identity.tsx:177` — Hardcoded hex color: #fff
- **[major]** `client/src/pages/app/Identity.tsx:196` — Hardcoded hex color: #fff
- **[major]** `client/src/pages/app/Identity.tsx:254` — Hardcoded hex color: #ef4444
- **[major]** `client/src/pages/app/Identity.tsx:279` — Hardcoded hex color: #ef4444
- **[major]** `client/src/pages/app/Insights.tsx:17` — Hardcoded hex color: #34d399
- **[major]** `client/src/pages/app/Insights.tsx:18` — Hardcoded hex color: #f59e0b
- **[major]** `client/src/pages/app/Insights.tsx:19` — Hardcoded hex color: #8b5cf6
- **[major]** `client/src/pages/app/Insights.tsx:104` — Hardcoded hex color: #f59e0b
- **[major]** `client/src/pages/app/Log.tsx:8` — Hardcoded hex color: #34d399
- **[major]** `client/src/pages/app/Log.tsx:9` — Hardcoded hex color: #f59e0b
- **[major]** `client/src/pages/app/Log.tsx:10` — Hardcoded hex color: #8b5cf6
- **[major]** `client/src/pages/app/Log.tsx:147` — Hardcoded hex color: #fff
- **[major]** `client/src/pages/Home.tsx:8` — Hardcoded hex color: #10B981
- **[minor]** `client/src/pages/app/Dashboard.tsx:139` — Emoji in code: 🎯
- **[minor]** `client/src/pages/app/Identity.tsx:6` — Emoji in code: 🎯
- **[minor]** `client/src/pages/app/Identity.tsx:243` — Emoji in code: 🎯
- **[minor]** `client/src/pages/app/Identity.tsx:272` — Emoji in code: 🎯
## `learning_ai_local_llms`
**Counts:** critical=0 · major=46 · minor=1 · total=47
- **[major]** `dashboard/src/app/(mission-control)/mission-control/page.tsx:2198` — Hardcoded hex color: #fff
- **[major]** `dashboard/src/app/layout.tsx:16` — Hardcoded hex color: #3b82f6
- **[major]** `dashboard/src/app/loading.tsx:3` — Hardcoded hex color: #06070A
- **[major]** `dashboard/src/app/loading.tsx:7` — Hardcoded hex color: #5A8CFF
- **[major]** `dashboard/src/app/loading.tsx:9` — Hardcoded hex color: #A5B1C7
- **[major]** `dashboard/src/app/globals.css:114` — Hardcoded hex color: #F6F8FC
- **[major]** `dashboard/src/app/globals.css:115` — Hardcoded hex color: #FFFFFF
- **[major]** `dashboard/src/app/globals.css:116` — Hardcoded hex color: #FFFFFF
- **[major]** `dashboard/src/app/globals.css:117` — Hardcoded hex color: #F3F5FA
- **[major]** `dashboard/src/app/globals.css:118` — Hardcoded hex color: #DCE4F2
- **[major]** `dashboard/src/app/globals.css:119` — Hardcoded hex color: #BFCBDE
- **[major]** `dashboard/src/app/globals.css:121` — Hardcoded hex color: #0E1320
- **[major]** `dashboard/src/app/globals.css:122` — Hardcoded hex color: #55637A
- **[major]** `dashboard/src/app/globals.css:123` — Hardcoded hex color: #6C7C98
- **[major]** `dashboard/src/app/globals.css:124` — Hardcoded hex color: #13956A
- **[major]** `dashboard/src/app/globals.css:125` — Hardcoded hex color: #B87504
- **[major]** `dashboard/src/app/globals.css:126` — Hardcoded hex color: #D24242
- **[major]** `dashboard/src/app/globals.css:133` — Hardcoded hex color: #F6F8FC
- **[major]** `dashboard/src/app/globals.css:134` — Hardcoded hex color: #FFFFFF
- **[major]** `dashboard/src/app/globals.css:135` — Hardcoded hex color: #FFFFFF
- **[major]** `dashboard/src/app/globals.css:136` — Hardcoded hex color: #F3F5FA
- **[major]** `dashboard/src/app/globals.css:137` — Hardcoded hex color: #DCE4F2
- **[major]** `dashboard/src/app/globals.css:138` — Hardcoded hex color: #BFCBDE
- **[major]** `dashboard/src/app/globals.css:140` — Hardcoded hex color: #0E1320
- **[major]** `dashboard/src/app/globals.css:141` — Hardcoded hex color: #55637A
- **[major]** `dashboard/src/app/globals.css:142` — Hardcoded hex color: #6C7C98
- **[major]** `dashboard/src/app/globals.css:143` — Hardcoded hex color: #13956A
- **[major]** `dashboard/src/app/globals.css:144` — Hardcoded hex color: #B87504
- **[major]** `dashboard/src/app/globals.css:145` — Hardcoded hex color: #D24242
- **[major]** `dashboard/src/app/globals.css:228` — Hardcoded hex color: #F8FAFC
- **[major]** `dashboard/src/app/globals.css:229` — Hardcoded hex color: #FFFFFF
- **[major]** `dashboard/src/app/globals.css:230` — Hardcoded hex color: #FFFFFF
- **[major]** `dashboard/src/app/globals.css:231` — Hardcoded hex color: #F1F5F9
- **[major]** `dashboard/src/app/globals.css:232` — Hardcoded hex color: #E2E8F0
- **[major]** `dashboard/src/app/globals.css:233` — Hardcoded hex color: #CBD5E1
- **[major]** `dashboard/src/app/globals.css:235` — Hardcoded hex color: #0F172A
- **[major]** `dashboard/src/app/globals.css:236` — Hardcoded hex color: #475569
- **[major]** `dashboard/src/app/globals.css:237` — Hardcoded hex color: #94A3B8
- **[major]** `dashboard/src/app/globals.css:238` — Hardcoded hex color: #3B6FE8
- **[major]** `dashboard/src/app/globals.css:239` — Hardcoded hex color: #0EA5E9
- **[major]** `dashboard/src/app/globals.css:240` — Hardcoded hex color: #10B981
- **[major]** `dashboard/src/app/globals.css:241` — Hardcoded hex color: #D97706
- **[major]** `dashboard/src/app/globals.css:242` — Hardcoded hex color: #EF4444
- **[major]** `dashboard/src/app/globals.css:243` — Hardcoded hex color: #8B5CF6
- **[major]** `dashboard/src/components/Toast.tsx:41` — Hardcoded hex color: #f59e0b
- **[major]** `dashboard/src/components/Toast.tsx:49` — Hardcoded hex color: #f59e0b
- **[minor]** `dashboard/src/app/lib/format.ts:61` — Emoji in code: 👁
## `learning_ai_talk2obsidian`
**Counts:** critical=0 · major=27 · minor=0 · total=27
- **[major]** `web/src/App.tsx:290` — Hardcoded hex color: #fff
- **[major]** `web/src/App.tsx:311` — Hardcoded hex color: #fff
- **[major]** `web/src/App.tsx:381` — Hardcoded hex color: #fff
- **[major]** `web/src/App.tsx:391` — Hardcoded hex color: #fff
- **[major]** `web/src/App.tsx:395` — Hardcoded hex color: #fff
- **[major]** `web/src/App.tsx:448` — Hardcoded hex color: #fff
- **[major]** `web/src/main.tsx:15` — Hardcoded hex color: #fff
- **[major]** `web/src/index.css:4` — Hardcoded hex color: #0f0f14
- **[major]** `web/src/index.css:5` — Hardcoded hex color: #1a1a24
- **[major]** `web/src/index.css:6` — Hardcoded hex color: #222233
- **[major]** `web/src/index.css:7` — Hardcoded hex color: #2a2a3a
- **[major]** `web/src/index.css:8` — Hardcoded hex color: #e4e4ef
- **[major]** `web/src/index.css:9` — Hardcoded hex color: #8888aa
- **[major]** `web/src/index.css:10` — Hardcoded hex color: #7c6aef
- **[major]** `web/src/index.css:11` — Hardcoded hex color: #9484ff
- **[major]** `web/src/index.css:12` — Hardcoded hex color: #2a2a50
- **[major]** `web/src/index.css:13` — Hardcoded hex color: #1e1e2e
- **[major]** `web/src/index.css:14` — Hardcoded hex color: #4ade80
- **[major]** `web/src/index.css:15` — Hardcoded hex color: #facc15
- **[major]** `web/src/index.css:16` — Hardcoded hex color: #f87171
- **[major]** `web/src/VoiceCompose.tsx:352` — Hardcoded hex color: #fff
- **[major]** `web/src/VoiceCompose.tsx:382` — Hardcoded hex color: #fff
- **[major]** `web/src/VoiceCompose.tsx:462` — Hardcoded hex color: #fff
- **[major]** `web/src/NotesView.tsx:223` — Hardcoded hex color: #fff
- **[major]** `web/src/NotesView.tsx:246` — Hardcoded hex color: #fff
- **[major]** `web/src/NotesView.tsx:250` — Hardcoded hex color: #fff
- **[major]** `web/src/NotesView.tsx:257` — Hardcoded hex color: #fff
## `learning_ai_smart_auth`
✅ No violations found.
## `learning_ai_auth_app`
✅ No violations found.
## `learning_ai_productivity_web`
**Counts:** critical=0 · major=57 · minor=6 · total=63
- **[major]** `tailwind.config.ts:17` — Hardcoded hex color: #eff6ff
- **[major]** `tailwind.config.ts:18` — Hardcoded hex color: #dbeafe
- **[major]** `tailwind.config.ts:19` — Hardcoded hex color: #3b82f6
- **[major]** `tailwind.config.ts:20` — Hardcoded hex color: #2563eb
- **[major]** `tailwind.config.ts:21` — Hardcoded hex color: #1d4ed8
- **[major]** `src/app/tools/image-to-base64/page.tsx:411` — Hardcoded hex color: #1e293b
- **[major]** `src/app/tools/image-to-base64/page.tsx:411` — Hardcoded hex color: #334155
- **[major]** `src/app/tools/regex-tester/page.tsx:19` — Hardcoded hex color: #3B82F6
- **[major]** `src/app/tools/regex-tester/page.tsx:19` — Hardcoded hex color: #fff
- **[major]** `src/app/tools/regex-tester/page.tsx:19` — Hardcoded hex color: #EF4444
- **[major]** `src/app/tools/qr-code/page.tsx:90` — Hardcoded hex color: #000000
- **[major]** `src/app/tools/qr-code/page.tsx:91` — Hardcoded hex color: #ffffff
- **[major]** `src/app/tools/markdown-preview/page.tsx:174` — Hardcoded hex color: #f1f5f9
- **[major]** `src/app/tools/markdown-preview/page.tsx:175` — Hardcoded hex color: #e2e8f0
- **[major]** `src/app/tools/markdown-preview/page.tsx:176` — Hardcoded hex color: #cbd5e1
- **[major]** `src/app/tools/markdown-preview/page.tsx:177` — Hardcoded hex color: #94a3b8
- **[major]** `src/app/tools/markdown-preview/page.tsx:178` — Hardcoded hex color: #38bdf8
- **[major]** `src/app/tools/markdown-preview/page.tsx:179` — Hardcoded hex color: #f1f5f9
- **[major]** `src/app/tools/markdown-preview/page.tsx:180` — Hardcoded hex color: #e2e8f0
- **[major]** `src/app/tools/markdown-preview/page.tsx:181` — Hardcoded hex color: #1e293b
- **[major]** `src/app/tools/markdown-preview/page.tsx:181` — Hardcoded hex color: #7dd3fc
- **[major]** `src/app/tools/markdown-preview/page.tsx:182` — Hardcoded hex color: #0f172a
- **[major]** `src/app/tools/markdown-preview/page.tsx:182` — Hardcoded hex color: #334155
- **[major]** `src/app/tools/markdown-preview/page.tsx:183` — Hardcoded hex color: #93c5fd
- **[major]** `src/app/tools/markdown-preview/page.tsx:184` — Hardcoded hex color: #94a3b8
- **[major]** `src/app/tools/markdown-preview/page.tsx:185` — Hardcoded hex color: #94a3b8
- **[major]** `src/app/tools/markdown-preview/page.tsx:187` — Hardcoded hex color: #475569
- **[major]** `src/app/tools/markdown-preview/page.tsx:187` — Hardcoded hex color: #64748b
- **[major]** `src/app/tools/markdown-preview/page.tsx:189` — Hardcoded hex color: #1e293b
- **[major]** `src/app/tools/markdown-preview/page.tsx:189` — Hardcoded hex color: #e2e8f0
- **[major]** `src/app/tools/markdown-preview/page.tsx:189` — Hardcoded hex color: #334155
- **[major]** `src/app/tools/markdown-preview/page.tsx:190` — Hardcoded hex color: #1e293b
- **[major]** `src/app/tools/markdown-preview/page.tsx:190` — Hardcoded hex color: #94a3b8
- **[major]** `src/app/tools/markdown-preview/page.tsx:191` — Hardcoded hex color: #0f172a
- **[major]** `src/app/tools/markdown-preview/page.tsx:192` — Hardcoded hex color: #334155
- **[major]** `src/app/tools/color-picker/page.tsx:66` — Hardcoded hex color: #EF4444
- **[major]** `src/app/tools/color-picker/page.tsx:66` — Hardcoded hex color: #F97316
- **[major]** `src/app/tools/color-picker/page.tsx:66` — Hardcoded hex color: #EAB308
- **[major]** `src/app/tools/color-picker/page.tsx:66` — Hardcoded hex color: #22C55E
- **[major]** `src/app/tools/color-picker/page.tsx:66` — Hardcoded hex color: #14B8A6
- **[major]** `src/app/tools/color-picker/page.tsx:67` — Hardcoded hex color: #3B82F6
- **[major]** `src/app/tools/color-picker/page.tsx:67` — Hardcoded hex color: #8B5CF6
- **[major]** `src/app/tools/color-picker/page.tsx:67` — Hardcoded hex color: #EC4899
- **[major]** `src/app/tools/color-picker/page.tsx:67` — Hardcoded hex color: #6B7280
- **[major]** `src/app/tools/color-picker/page.tsx:67` — Hardcoded hex color: #0F172A
- **[major]** `src/app/tools/color-picker/page.tsx:71` — Hardcoded hex color: #3B82F6
- **[major]** `src/app/tools/color-picker/page.tsx:72` — Hardcoded hex color: #3B82F6
- **[major]** `src/app/tools/color-picker/page.tsx:75` — Hardcoded hex color: #3B82F6
- **[major]** `src/app/tools/color-picker/page.tsx:145` — Hardcoded hex color: #000000
- **[major]** `src/app/globals.css:15` — Hardcoded hex color: #0a0f1e
- **[major]** `src/app/globals.css:16` — Hardcoded hex color: #f1f5f9
- **[major]** `src/app/globals.css:38` — Hardcoded hex color: #334155
- **[major]** `src/app/globals.css:42` — Hardcoded hex color: #475569
- **[major]** `src/app/globals.css:51` — Hardcoded hex color: #334155
- **[major]** `src/app/globals.css:60` — Hardcoded hex color: #3b82f6
- **[major]** `src/app/globals.css:62` — Hardcoded hex color: #0a0f1e
- **[major]** `src/app/globals.css:66` — Hardcoded hex color: #60a5fa
- **[minor]** `src/app/tools/markdown-preview/page.tsx:36` — Emoji in code: 🕐
- **[minor]** `src/lib/tools-registry.ts:27` — Emoji in code: 📝
- **[minor]** `src/lib/tools-registry.ts:28` — Emoji in code: 🔐
- **[minor]** `src/lib/tools-registry.ts:29` — Emoji in code: 🔄
- **[minor]** `src/lib/tools-registry.ts:30` — Emoji in code: 🎨
- **[minor]** `src/lib/tools-registry.ts:31` — Emoji in code: 📊
## `oss/learning_ai_claw-cowork`
**Counts:** critical=0 · major=45 · minor=5 · total=50
- **[major]** `plugins/bytelyst-scaffolder/main.js:182` — console.log: console.log(JSON.stringify({ error: "no input provided" }));
- **[major]** `plugins/bytelyst-scaffolder/main.js:190` — console.log: console.log(
- **[major]** `plugins/bytelyst-scaffolder/main.js:205` — console.log: console.log(JSON.stringify(result));
- **[major]** `plugins/bytelyst-scaffolder/main.js:207` — console.log: console.log(JSON.stringify({ error: e.message }));
- **[major]** `plugins/data-analyzer/main.js:152` — console.log: console.log(JSON.stringify({ error: "no input provided" }));
- **[major]** `plugins/data-analyzer/main.js:160` — console.log: console.log(JSON.stringify({ error: `invalid JSON input: ${e.message}` }));
- **[major]** `plugins/data-analyzer/main.js:171` — console.log: console.log(JSON.stringify({ error: "missing required parameters: file_p
- **[major]** `plugins/data-analyzer/main.js:177` — console.log: console.log(JSON.stringify({ error: "missing required parameter: file_pa
- **[major]** `plugins/data-analyzer/main.js:182` — console.log: console.log(JSON.stringify(result));
- **[major]** `plugins/data-analyzer/main.js:184` — console.log: console.log(JSON.stringify({ error: e.message }));
- **[major]** `plugins/product-backend-module/main.js:320` — console.log: console.log(JSON.stringify({ error: "no input provided" }));
- **[major]** `plugins/product-backend-module/main.js:328` — console.log: console.log(JSON.stringify({ error: `invalid JSON input: ${e.message}` }));
- **[major]** `plugins/product-backend-module/main.js:340` — console.log: console.log(JSON.stringify(result));
- **[major]** `plugins/product-backend-module/main.js:342` — console.log: console.log(JSON.stringify({ error: e.message }));
- **[minor]** `crates/cowork-desktop/src/components/ChatView.tsx:543` — any type: path: (f as any).path || f.name,
- **[minor]** `crates/cowork-desktop/src/components/ChatView.tsx:616` — any type: path: (f as any).path || f.name,
- **[major]** `crates/cowork-desktop/src/styles/globals.css:8` — Hardcoded hex color: #ffffff
- **[major]** `crates/cowork-desktop/src/styles/globals.css:9` — Hardcoded hex color: #f8fafc
- **[major]** `crates/cowork-desktop/src/styles/globals.css:10` — Hardcoded hex color: #f1f5f9
- **[major]** `crates/cowork-desktop/src/styles/globals.css:11` — Hardcoded hex color: #e2e8f0
- **[major]** `crates/cowork-desktop/src/styles/globals.css:12` — Hardcoded hex color: #e2e8f0
- **[major]** `crates/cowork-desktop/src/styles/globals.css:13` — Hardcoded hex color: #cbd5e1
- **[major]** `crates/cowork-desktop/src/styles/globals.css:14` — Hardcoded hex color: #0f172a
- **[major]** `crates/cowork-desktop/src/styles/globals.css:15` — Hardcoded hex color: #475569
- **[major]** `crates/cowork-desktop/src/styles/globals.css:16` — Hardcoded hex color: #64748b
- **[major]** `crates/cowork-desktop/src/styles/globals.css:17` — Hardcoded hex color: #0c93e7
- **[major]** `crates/cowork-desktop/src/styles/globals.css:18` — Hardcoded hex color: #0ea5e9
- **[major]** `crates/cowork-desktop/src/styles/globals.css:19` — Hardcoded hex color: #22c55e
- **[major]** `crates/cowork-desktop/src/styles/globals.css:20` — Hardcoded hex color: #f59e0b
- **[major]** `crates/cowork-desktop/src/styles/globals.css:21` — Hardcoded hex color: #ef4444
- **[major]** `crates/cowork-desktop/src/styles/globals.css:68` — Hardcoded hex color: #0f172a
- **[major]** `crates/cowork-desktop/src/styles/globals.css:69` — Hardcoded hex color: #1e293b
- **[major]** `crates/cowork-desktop/src/styles/globals.css:70` — Hardcoded hex color: #1e293b
- **[major]** `crates/cowork-desktop/src/styles/globals.css:71` — Hardcoded hex color: #334155
- **[major]** `crates/cowork-desktop/src/styles/globals.css:72` — Hardcoded hex color: #334155
- **[major]** `crates/cowork-desktop/src/styles/globals.css:73` — Hardcoded hex color: #475569
- **[major]** `crates/cowork-desktop/src/styles/globals.css:74` — Hardcoded hex color: #f1f5f9
- **[major]** `crates/cowork-desktop/src/styles/globals.css:75` — Hardcoded hex color: #cbd5e1
- **[major]** `crates/cowork-desktop/src/styles/globals.css:76` — Hardcoded hex color: #94a3b8
- **[major]** `crates/cowork-desktop/src/styles/globals.css:77` — Hardcoded hex color: #36adf6
- **[major]** `crates/cowork-desktop/src/styles/globals.css:78` — Hardcoded hex color: #38bdf8
- **[major]** `crates/cowork-desktop/src/styles/globals.css:79` — Hardcoded hex color: #4ade80
- **[major]** `crates/cowork-desktop/src/styles/globals.css:80` — Hardcoded hex color: #fbbf24
- **[major]** `crates/cowork-desktop/src/styles/globals.css:81` — Hardcoded hex color: #f87171
- **[major]** `crates/cowork-desktop/src/components/ChatView.tsx:413` — Hardcoded hex color: #128196
- **[major]** `crates/cowork-desktop/src/components/McpAppHost.tsx:111` — Hardcoded hex color: #374151
- **[major]** `crates/cowork-desktop/src/components/McpAppHost.tsx:156` — Hardcoded hex color: #ffffff
- **[minor]** `crates/cowork-desktop/src/App.tsx:84` — Emoji in code: 🚧
- **[minor]** `crates/cowork-desktop/src/cli.rs:39` — Emoji in code: 💭
- **[minor]** `crates/cowork-desktop/src/components/ChatView.tsx:141` — Emoji in code: 🔧
## `learning_ai_mac_tooling`
**Counts:** critical=0 · major=366 · minor=219 · total=585
- **[major]** `tools/network_transfer_audit.py:649` — Python print(): print(f" {YELLOW}⚠ LLM classification skipped: LLM_OPENAI_ENDPOINT or L
- **[major]** `tools/network_transfer_audit.py:708` — Python print(): print(f" {DIM}Classifying {len(to_classify)} unknown processes via LLM.
- **[major]** `tools/network_transfer_audit.py:729` — Python print(): print(f" {GREEN}✓ classified {len(classifications)} processes{RESET}")
- **[major]** `tools/network_transfer_audit.py:732` — Python print(): print(f" {RED}✗ LLM API error: {e}{RESET}")
- **[major]** `tools/network_transfer_audit.py:734` — Python print(): print(f" {RED}✗ Failed to parse LLM response: {e}{RESET}")
- **[major]** `tools/network_transfer_audit.py:1081` — Python print(): print(f"\n{BOLD}{CYAN}{'═' * 70}{RESET}")
- **[major]** `tools/network_transfer_audit.py:1082` — Python print(): print(f"{BOLD}{CYAN} Network Transfer Monitor{RESET}")
- **[major]** `tools/network_transfer_audit.py:1083` — Python print(): print(f"{BOLD}{CYAN}{'═' * 70}{RESET}")
- **[major]** `tools/network_transfer_audit.py:1085` — Python print(): print(f" {BOLD}Monitoring duration:{RESET} {mins:.0f} minutes")
- **[major]** `tools/network_transfer_audit.py:1086` — Python print(): print(f" {DIM}Taking initial nettop snapshot...{RESET}")
- **[major]** `tools/network_transfer_audit.py:1090` — Python print(): print(f" {GREEN}Start:{RESET} {from_dt.strftime('%Y-%m-%d %H:%M:%S')}")
- **[major]** `tools/network_transfer_audit.py:1091` — Python print(): print(f" {DIM}Monitoring network activity — waiting {mins:.0f} minutes...{R
- **[major]** `tools/network_transfer_audit.py:1107` — Python print(): print(f"\r {CYAN}[{bar}]{RESET} {pct:>3}% {r_min}m {r_sec:02d}s remain
- **[major]** `tools/network_transfer_audit.py:1109` — Python print(): print(f"\r {GREEN}[{'█' * 40}]{RESET} 100% Done! ")
- **[major]** `tools/network_transfer_audit.py:1111` — Python print(): print(f" {GREEN}End:{RESET} {to_dt.strftime('%Y-%m-%d %H:%M:%S')}")
- **[major]** `tools/network_transfer_audit.py:1113` — Python print(): print(f" {DIM}Taking final nettop snapshot...{RESET}")
- **[major]** `tools/network_transfer_audit.py:1135` — Python print(): print(f"\n {BOLD}Transfer during monitoring period:{RESET}")
- **[major]** `tools/network_transfer_audit.py:1136` — Python print(): print(f" {GREEN}↓ Inbound: {fmt_bytes(total_in)}{RESET}")
- **[major]** `tools/network_transfer_audit.py:1137` — Python print(): print(f" {YELLOW}↑ Outbound: {fmt_bytes(total_out)}{RESET}")
- **[major]** `tools/network_transfer_audit.py:1138` — Python print(): print(f" {DIM}Processes with activity: {len(deltas)}{RESET}\n")
- **[major]** `tools/network_transfer_audit.py:2236` — Python print(): print(f"\n{BOLD}{CYAN}{'═' * 70}{RESET}")
- **[major]** `tools/network_transfer_audit.py:2237` — Python print(): print(f"{BOLD}{CYAN} {title}{RESET}")
- **[major]** `tools/network_transfer_audit.py:2238` — Python print(): print(f"{BOLD}{CYAN}{'═' * 70}{RESET}")
- **[major]** `tools/network_transfer_audit.py:2242` — Python print(): print(f"\n{BOLD}{YELLOW}── {title} {'─' * (65 - len(title))}{RESET}")
- **[major]** `tools/network_transfer_audit.py:2246` — Python print(): print(f" {DIM}{msg}{RESET}")
- **[major]** `tools/network_transfer_audit.py:2263` — Python print(): print(f" {BOLD}Time window:{RESET} {window_str}")
- **[major]** `tools/network_transfer_audit.py:2266` — Python print(): print(f" {BOLD}Duration:{RESET} {hours:.1f} hours")
- **[major]** `tools/network_transfer_audit.py:2271` — Python print(): print(f" {DIM}Querying: subsystem == com.apple.networkd ...{RESET}")
- **[major]** `tools/network_transfer_audit.py:2294` — Python print(): print(f" {GREEN}Found {len(events)} events across {len(proc_counts)
- **[major]** `tools/network_transfer_audit.py:2295` — Python print(): print(f" {'Process':<22} {'PID':>7} {'Events':>7} {'Category':<16}
- **[major]** `tools/network_transfer_audit.py:2296` Python print(): print(f" {'─' * 22} {'─' * 7} {'─' * 7} {'─' * 16} {'─' * 11} {'─'
- **[major]** `tools/network_transfer_audit.py:2304` Python print(): print(f" {proc_name:<22} {sample_pid:>7} {count:>7} {category:
- **[major]** `tools/network_transfer_audit.py:2311` — Python print(): print(f" {DIM}Querying: subsystem == com.apple.dnssd ...{RESET}")
- **[major]** `tools/network_transfer_audit.py:2318` — Python print(): print(f" {GREEN}Found {sum(c for _, c in dns)} DNS events, {len(dns
- **[major]** `tools/network_transfer_audit.py:2319` — Python print(): print(f" {'Domain':<50} {'Hits':>6}")
- **[major]** `tools/network_transfer_audit.py:2320` — Python print(): print(f" {'─' * 50} {'─' * 6}")
- **[major]** `tools/network_transfer_audit.py:2322` — Python print(): print(f" {domain:<50} {count:>6}")
- **[major]** `tools/network_transfer_audit.py:2329` — Python print(): print(f" {DIM}Querying: subsystem == com.apple.alf ...{RESET}")
- **[major]** `tools/network_transfer_audit.py:2336` — Python print(): print(f" {GREEN}Found {len(fw_events)} firewall decisions{RESET}\n"
- **[major]** `tools/network_transfer_audit.py:2339` — Python print(): print(f" {color}{ev}{RESET}")
- **[major]** `tools/network_transfer_audit.py:2341` — Python print(): print(f" {DIM}... and {len(fw_events) - 15} more{RESET}")
- **[major]** `tools/network_transfer_audit.py:2355` — Python print(): print(f" {GREEN}Found {len(valid_downloads)} downloads{RESET}\n")
- **[major]** `tools/network_transfer_audit.py:2357` — Python print(): print(f" {BOLD}{dl['time']}{RESET} via {CYAN}{dl['agent']}{RES
- **[major]** `tools/network_transfer_audit.py:2360` — Python print(): print(f" ↓ {url_display}")
- **[major]** `tools/network_transfer_audit.py:2363` — Python print(): print(f" ← {DIM}{origin_display}{RESET}")
- **[major]** `tools/network_transfer_audit.py:2364` — Python print(): print()
- **[major]** `tools/network_transfer_audit.py:2385` — Python print(): print(f" {GREEN}Found {len(live)} active connections{RESET}\n")
- **[major]** `tools/network_transfer_audit.py:2386` — Python print(): print(f" {'Process':<16} {'PID':<7} {'Category':<15} {'Installe
- **[major]** `tools/network_transfer_audit.py:2387` Python print(): print(f" {'─' * 16} {'─' * 7} {'─' * 15} {'─' * 10} {'─' * 16}
- **[major]** `tools/network_transfer_audit.py:2391` Python print(): print(f" {c['process']:<16} {c['pid']:<7} {category:<15} {i
- **[major]** `tools/network_transfer_audit.py:2408` Python print(): print(f" {GREEN}Processes with active network I/O:{RESET}\n")
- **[major]** `tools/network_transfer_audit.py:2409` Python print(): print(f" {'Process':<25} {'Category':<14} {'Installer':<10} {'↓
- **[major]** `tools/network_transfer_audit.py:2410` Python print(): print(f" {'─' * 25} {'─' * 14} {'─' * 10} {'─' * 10} {'─' * 10}
- **[major]** `tools/network_transfer_audit.py:2418` Python print(): print(f" {p['process']:<25} {category:<14} {installer:<10}
- **[major]** `tools/network_transfer_audit.py:2524` Python print(): print(f" {GREEN}Connections: {ext} external, {intr} internal/loopba
- **[major]** `tools/network_transfer_audit.py:2529` Python print(): print(f" {BOLD}Top External Destinations:{RESET}")
- **[major]** `tools/network_transfer_audit.py:2530` Python print(): print(f" {'IP Address':<22} {'Connections':>12}")
- **[major]** `tools/network_transfer_audit.py:2531` — Python print(): print(f" {'─' * 22} {'─' * 12}")
- **[major]** `tools/network_transfer_audit.py:2533` — Python print(): print(f" {d['ip']:<22} {d['count']:>12}")
- **[major]** `tools/network_transfer_audit.py:2537` — Python print(): print(f"\n {BOLD}Top Remote Ports:{RESET}")
- **[major]** `tools/network_transfer_audit.py:2538` — Python print(): print(f" {'Port':<8} {'Service':<16} {'Connections':>12} {'Stat
- **[major]** `tools/network_transfer_audit.py:2539` — Python print(): print(f" {'─' * 8} {'─' * 16} {'─' * 12} {'─' * 10}")
- **[major]** `tools/network_transfer_audit.py:2542` — Python print(): print(f" {p['port']:<8} {p['service']:<16} {p['count']:>12}
- **[major]** `tools/network_transfer_audit.py:2553` — Python print(): print(f" {GREEN}Found {len(listeners)} listening ports{RESET}\n
- **[major]** `tools/network_transfer_audit.py:2554` — Python print(): print(f" {'Process':<20} {'PID':<7} {'User':<10} {'Address'}")
- **[major]** `tools/network_transfer_audit.py:2555` Python print(): print(f" {'─' * 20} {'─' * 7} {'─' * 10} {'─' * 30}")
- **[major]** `tools/network_transfer_audit.py:2557` Python print(): print(f" {l['process']:<20} {l['pid']:<7} {l['user']:<10} {
- **[major]** `tools/network_transfer_audit.py:2559` Python print(): print(f" {DIM}... and {len(listeners) - 20} more{RESET}")
- **[major]** `tools/network_transfer_audit.py:2586` Python print(): print(f" {DIM}Querying: com.apple.TCC, com.apple.locationd, com.apple.b
- **[major]** `tools/network_transfer_audit.py:2598` Python print(): print(f" {GREEN}Found {len(sensor_events)} sensor access events acr
- **[major]** `tools/network_transfer_audit.py:2599` Python print(): print(f" {'Process':<28} {'Sensor':<18} {'Count':>6} {'First Seen'
- **[major]** `tools/network_transfer_audit.py:2600` — Python print(): print(f" {'─' * 28} {'─' * 18} {'─' * 6} {'─' * 20} {'─' * 20} {'─
- **[major]** `tools/network_transfer_audit.py:2615` — Python print(): print(f" {color}{s['process']:<28} {s['sensor']:<18} {s['count'
- **[major]** `tools/network_transfer_audit.py:2640` Python print(): print(f" {GREEN}Wi-Fi:{RESET} {BOLD}{ssid}{RESET}{rssi_label} ch:{
- **[major]** `tools/network_transfer_audit.py:2642` Python print(): print(f" {DIM}Wi-Fi: not connected{RESET}")
- **[major]** `tools/network_transfer_audit.py:2649` Python print(): print(f" {GREEN}VPN:{RESET} {len(vpn['tunnels'])} active tunnel(s)
- **[major]** `tools/network_transfer_audit.py:2653` Python print(): print(f" {t['interface']}{ip_str} mtu={t['mtu']}")
- **[major]** `tools/network_transfer_audit.py:2655` Python print(): print(f" {DIM}VPN: no active tunnels{RESET}")
- **[major]** `tools/network_transfer_audit.py:2660` Python print(): print(f"\n {BOLD}Top Interfaces (cumulative):{RESET}")
- **[major]** `tools/network_transfer_audit.py:2661` Python print(): print(f" {'Interface':<12} {'↓ In':>14} {'↑ Out':>14}")
- **[major]** `tools/network_transfer_audit.py:2662` — Python print(): print(f" {'─' * 12} {'─' * 14} {'─' * 14}")
- **[major]** `tools/network_transfer_audit.py:2664` — Python print(): print(f" {iface:<12} {fmt_bytes(v['bytes_in']):>14} {fmt_bytes(
- **[major]** `tools/network_transfer_audit.py:2670` — Python print(): print(f"\n {BOLD}Proxy:{RESET} PAC → {pac}")
- **[major]** `tools/network_transfer_audit.py:2672` — Python print(): print(f" {BOLD}DNS:{RESET} {', '.join(net_config['dns_servers'][:4]
- **[major]** `tools/network_transfer_audit.py:2691` — Python print(): print(f" {GREEN}{len(arp)} devices on local network{RESET}")
- **[major]** `tools/network_transfer_audit.py:2694` — Python print(): print(f" {a['ip']:<18} {a['mac']:<20} {a['interface']}")
- **[major]** `tools/network_transfer_audit.py:2696` Python print(): print(f" {DIM}... and {len(arp) - 10} more{RESET}")
- **[major]** `tools/network_transfer_audit.py:2702` Python print(): print(f"\n {BOLD}Bluetooth:{RESET} {bt.get('controller_state','?')}
- **[major]** `tools/network_transfer_audit.py:2706` Python print(): print(f" {d['name']:<30} {d.get('type',''):<12} {status}")
- **[major]** `tools/network_transfer_audit.py:2711` Python print(): print(f"\n {BOLD}USB Devices:{RESET} {len(named_usb)} with vendor i
- **[major]** `tools/network_transfer_audit.py:2713` Python print(): print(f" {u['name']:<30} {u.get('vendor','')}")
- **[major]** `tools/network_transfer_audit.py:2717` Python print(): print(f"\n {YELLOW}{BOLD}⚠ External disks mounted:{RESET}")
- **[major]** `tools/network_transfer_audit.py:2719` Python print(): print(f" {d['mount_point']} ({d['filesystem']})")
- **[major]** `tools/network_transfer_audit.py:2737` Python print(): print(f" {name:<14} {color}{val}{RESET}")
- **[major]** `tools/network_transfer_audit.py:2739` Python print(): print(f" {'Stealth Mode':<14} {GREEN}on{RESET}")
- **[major]** `tools/network_transfer_audit.py:2741` Python print(): print(f"\n {RED}{BOLD}⚠ Firewall is DISABLED all inbound connecti
- **[major]** `tools/network_transfer_audit.py:2758` Python print(): print(f" {BOLD}Privilege escalations:{RESET} {len(auth_evts)}")
- **[major]** `tools/network_transfer_audit.py:2760` Python print(): print(f" {e['timestamp'][11:19]} {e['process']:<20} {e['righ
- **[major]** `tools/network_transfer_audit.py:2765` Python print(): print(f" {BOLD}Gatekeeper/XProtect:{RESET} {len(gk_events)} events
- **[major]** `tools/network_transfer_audit.py:2768` Python print(): print(f" {BOLD}Network Extension:{RESET} {len(ne_events)} VPN event
- **[major]** `tools/network_transfer_audit.py:2770` Python print(): print(f" {e['timestamp'][11:19]} {e['event_type']:<20} {e['d
- **[major]** `tools/network_transfer_audit.py:2783` Python print(): print(f" {RED if high_sev else GREEN}Found {len(anomalies)} anomali
- **[major]** `tools/network_transfer_audit.py:2786` Python print(): print(f" {icon} {BOLD}{a['process']}{RESET}: {a['detail']}")
- **[major]** `tools/network_transfer_audit.py:2788` Python print(): print(f" {GREEN}✓ No anomalies detected.{RESET}")
- **[major]** `tools/network_transfer_audit.py:2805` Python print(): print(f"\n {'Category':<18} {'Installer':<12} {'Procs':>6} {'Events
- **[major]** `tools/network_transfer_audit.py:2806` — Python print(): print(f" {'─' * 18} {'─' * 12} {'─' * 6} {'─' * 7} {'─' * 14}")
- **[major]** `tools/network_transfer_audit.py:2810` — Python print(): print(f" {cat:<18} {installers_str:<12} {len(stats['processes']
- **[major]** `tools/network_transfer_audit.py:2816` Python print(): print(f"\n {RED}{BOLD}⚠ HIGH RISK PROCESSES DETECTED:{RESET}")
- **[major]** `tools/network_transfer_audit.py:2819` Python print(): print(f" {BOLD}{p['process']}{RESET} [{p['category']}] In
- **[major]** `tools/network_transfer_audit.py:2821` Python print(): print(f"\n {GREEN}✓ No high-risk processes detected in this window
- **[major]** `tools/network_transfer_audit.py:2826` Python print(): print(f" Network connection events: {len(events)}")
- **[major]** `tools/network_transfer_audit.py:2827` Python print(): print(f" Unique DNS domains: {len(dns)}")
- **[major]** `tools/network_transfer_audit.py:2828` Python print(): print(f" Firewall decisions: {len(fw_events)}")
- **[major]** `tools/network_transfer_audit.py:2830` Python print(): print(f" Files downloaded: {len(valid_dl)}")
- **[major]** `tools/network_transfer_audit.py:2832` Python print(): print(f" Live connections: {len(live)}")
- **[major]** `tools/network_transfer_audit.py:2833` Python print(): print(f" Processes with network I/O: {len(nettop)}")
- **[major]** `tools/network_transfer_audit.py:2834` Python print(): print(f" Unique remote destinations: {dest_analysis.get('unique_de
- **[major]** `tools/network_transfer_audit.py:2835` Python print(): print(f" Listening ports: {len(listeners)}")
- **[major]** `tools/network_transfer_audit.py:2836` Python print(): print(f" Anomalies detected: {len(anomalies)}")
- **[major]** `tools/network_transfer_audit.py:2837` Python print(): print(f" {BOLD}Total data inbound: {GREEN}{fmt_bytes(total
- **[major]** `tools/network_transfer_audit.py:2838` Python print(): print(f" {BOLD}Total data outbound: {YELLOW}{fmt_bytes(tota
- **[major]** `tools/network_transfer_audit.py:2839` Python print(): print(f" Sensor access events: {len(sensor_events)}")
- **[major]** `tools/network_transfer_audit.py:2840` Python print(): print()
- **[major]** `tools/network_transfer_audit.py:2845` Python print(): print(json.dumps(report, indent=2, default=str))
- **[major]** `tools/network_transfer_audit.py:2854` Python print(): print(f"{GREEN}HTML report saved to: {output_html}{RESET}")
- **[major]** `tools/network_transfer_audit.py:2855` Python print(): print(f"{DIM}Open in browser: open \"{output_html}\"{RESET}")
- **[major]** `tools/network_transfer_audit.py:2873` Python print(): print(f"{RED}Error: session '{session_id}' not found in {db_path}{RESET}
- **[major]** `tools/network_transfer_audit.py:2885` Python print(): print(f" {BOLD}Session:{RESET} {session_id}")
- **[major]** `tools/network_transfer_audit.py:2886` Python print(): print(f" {BOLD}Status:{RESET} {session['status']}")
- **[major]** `tools/network_transfer_audit.py:2887` Python print(): print(f" {BOLD}Windows:{RESET} {session['windows_done']}")
- **[major]** `tools/network_transfer_audit.py:2888` Python print(): print(f" {BOLD}Range:{RESET} {from_dt.strftime('%Y-%m-%d %H:%M')} {to
- **[major]** `tools/network_transfer_audit.py:2889` Python print(): print()
- **[major]** `tools/network_transfer_audit.py:2894` Python print(): print(f" {YELLOW}No data windows found in the requested range.{RESET}")
- **[major]** `tools/network_transfer_audit.py:2898` Python print(): print(f" {GREEN}Found {len(windows)} windows covering this range{RESET}\n")
- **[major]** `tools/network_transfer_audit.py:2910` Python print(): print(f" {GREEN}{len(events)} events{RESET}")
- **[major]** `tools/network_transfer_audit.py:2917` Python print(): print(f" {GREEN}{len(dns)} unique domains{RESET}")
- **[major]** `tools/network_transfer_audit.py:2919` Python print(): print(f" {domain:<40} {count:>5} queries")
- **[major]** `tools/network_transfer_audit.py:2928` — Python print(): print(f" {GREEN}{len(fw_events)} events{RESET}")
- **[major]** `tools/network_transfer_audit.py:2936` — Python print(): print(f" {GREEN}{len(downloads)} files{RESET}")
- **[major]** `tools/network_transfer_audit.py:2949` — Python print(): print(f" {GREEN}{len(live)} unique connections{RESET}")
- **[major]** `tools/network_transfer_audit.py:2958` — Python print(): print(f" {GREEN}↓ {fmt_bytes(total_in)} ↑ {fmt_bytes(total_out)}{RESET
- **[major]** `tools/network_transfer_audit.py:2959` — Python print(): print(f"\n {'Process':<25} {'↓ In':>10} {'↑ Out':>10}")
- **[major]** `tools/network_transfer_audit.py:2960` — Python print(): print(f" {'─' * 25} {'─' * 10} {'─' * 10}")
- **[major]** `tools/network_transfer_audit.py:2962` — Python print(): print(f" {p['process']:<25} {fmt_bytes(p['bytes_in']):>10} {fmt_byt
- **[major]** `tools/network_transfer_audit.py:2980` — Python print(): print(f" {GREEN}{len(listeners)} unique listening ports{RESET}")
- **[major]** `tools/network_transfer_audit.py:2995` — Python print(): print(f" {GREEN}{len(sensor_raw)} events across {len(sensor_types)} sen
- **[major]** `tools/network_transfer_audit.py:2996` — Python print(): print(f"\n {'Process':<28} {'Sensor':<18} {'Count':>6}")
- **[major]** `tools/network_transfer_audit.py:2997` — Python print(): print(f" {'─' * 28} {'─' * 18} {'─' * 6}")
- **[major]** `tools/network_transfer_audit.py:3001` — Python print(): print(f" {color}{s['process']:<28} {s['sensor']:<18} {s['count']:>6
- **[major]** `tools/network_transfer_audit.py:3016` — Python print(): print(f" {GREEN}Wi-Fi:{RESET} {BOLD}{ssid}{RESET} ch:{latest_wifi.
- **[major]** `tools/network_transfer_audit.py:3019` — Python print(): print(f" {DIM}Wi-Fi: not connected{RESET}")
- **[major]** `tools/network_transfer_audit.py:3023` — Python print(): print(f" {YELLOW}⚠ Wi-Fi SSID changed during session: {', '.join(ss
- **[major]** `tools/network_transfer_audit.py:3035` — Python print(): print(f" {GREEN}VPN:{RESET} {len(tunnels)} tunnel(s)")
- **[major]** `tools/network_transfer_audit.py:3038` — Python print(): print(f" {t['interface']}{ip_str} mtu={t.get('mtu','')}")
- **[major]** `tools/network_transfer_audit.py:3045` — Python print(): print(f" Default route → {route_color}{default_iface}{RESET} "
- **[major]** `tools/network_transfer_audit.py:3052` — Python print(): print(f"\n {BOLD}Per-Interface Transfer (session delta):{RESET}")
- **[major]** `tools/network_transfer_audit.py:3053` — Python print(): print(f" {'Interface':<12} {'↓ In':>14} {'↑ Out':>14}")
- **[major]** `tools/network_transfer_audit.py:3054` — Python print(): print(f" {'─' * 12} {'─' * 14} {'─' * 14}")
- **[major]** `tools/network_transfer_audit.py:3056` — Python print(): print(f" {d['interface']:<12} {fmt_bytes(d['bytes_in']):>14} {fmt_b
- **[major]** `tools/network_transfer_audit.py:3061` — Python print(): print(f"\n {BOLD}Proxy:{RESET} PAC → {pac}")
- **[major]** `tools/network_transfer_audit.py:3063` — Python print(): print(f" {BOLD}DNS:{RESET} {', '.join(net_config['dns_servers'][:4])}")
- **[major]** `tools/network_transfer_audit.py:3083` — Python print(): print(f" {GREEN}{len(unique_arp)} unique LAN devices{RESET}")
- **[major]** `tools/network_transfer_audit.py:3086` — Python print(): print(f" {a['ip']:<18} {a['mac']:<20} {a['interface']}")
- **[major]** `tools/network_transfer_audit.py:3094` Python print(): print(f"\n {BOLD}Bluetooth:{RESET} {len(bt_unique)} devices")
- **[major]** `tools/network_transfer_audit.py:3097` Python print(): print(f" {b.get('name',''):<30} {b.get('device_type',''):<12} {st
- **[major]** `tools/network_transfer_audit.py:3105` Python print(): print(f"\n {BOLD}USB Devices:{RESET} {len(usb_unique)}")
- **[major]** `tools/network_transfer_audit.py:3107` Python print(): print(f" {u['name']:<30} {u.get('vendor','')}")
- **[major]** `tools/network_transfer_audit.py:3115` Python print(): print(f"\n {YELLOW}{BOLD}⚠ External disk:{RESET} {d['mount_point']}
- **[major]** `tools/network_transfer_audit.py:3130` Python print(): print(f" {name:<14} {color}{val}{RESET}")
- **[major]** `tools/network_transfer_audit.py:3132` Python print(): print(f"\n {RED}{BOLD}⚠ Firewall is DISABLED{RESET}")
- **[major]** `tools/network_transfer_audit.py:3150` Python print(): print(f" {BOLD}Privilege escalations:{RESET} {len(auth_rows)}")
- **[major]** `tools/network_transfer_audit.py:3153` Python print(): print(f" {ts} {e.get('process',''):<20} {e.get('auth_right','')[
- **[major]** `tools/network_transfer_audit.py:3155` Python print(): print(f" {BOLD}Gatekeeper/XProtect:{RESET} {len(gk_rows)} events")
- **[major]** `tools/network_transfer_audit.py:3157` Python print(): print(f" {BOLD}Network Extension:{RESET} {len(ne_rows)} VPN events")
- **[major]** `tools/network_transfer_audit.py:3197` Python print(): print(f" {color}{sensor:<24} {ok}/{total} ok {fmt_bytes(size):>10}
- **[major]** `tools/network_transfer_audit.py:3201` — Python print(): print(f"\n {BOLD}Total:{RESET} {total_ok}/{total_samples} successful "
- **[major]** `tools/network_transfer_audit.py:3254` — Python print(): print(f" {icon} {BOLD}{a['process']}{RESET}: {a['detail']}")
- **[major]** `tools/network_transfer_audit.py:3256` — Python print(): print(f" {GREEN}✓ No anomalies detected.{RESET}")
- **[major]** `tools/network_transfer_audit.py:3263` — Python print(): print(f" {'Window':<20} {'Net Evts':>9} {'DNS':>5} {'Conns':>6} {'↓ In'
- **[major]** `tools/network_transfer_audit.py:3264` — Python print(): print(f" {'─' * 20} {'─' * 9} {'─' * 5} {'─' * 6} {'─' * 10} {'─' * 10}
- **[major]** `tools/network_transfer_audit.py:3268` — Python print(): print(f" {ts:<20} {w['network_event_count']:>9} {w['dns_query_count
- **[major]** `tools/network_transfer_audit.py:3275` — Python print(): print(f" Windows analyzed: {totals.get('windows_count', 0)}")
- **[major]** `tools/network_transfer_audit.py:3276` — Python print(): print(f" Network connection events: {totals.get('total_network_events', 0
- **[major]** `tools/network_transfer_audit.py:3277` — Python print(): print(f" Unique DNS domains: {len(dns)}")
- **[major]** `tools/network_transfer_audit.py:3278` — Python print(): print(f" Firewall decisions: {totals.get('total_firewall_events',
- **[major]** `tools/network_transfer_audit.py:3279` — Python print(): print(f" Files downloaded: {totals.get('total_downloads', 0)}")
- **[major]** `tools/network_transfer_audit.py:3280` — Python print(): print(f" Sensor access events: {totals.get('total_sensor_events', 0)
- **[major]** `tools/network_transfer_audit.py:3281` — Python print(): print(f" {BOLD}Total data inbound: {GREEN}{fmt_bytes(totals.get('t
- **[major]** `tools/network_transfer_audit.py:3282` — Python print(): print(f" {BOLD}Total data outbound: {YELLOW}{fmt_bytes(totals.get('
- **[major]** `tools/network_transfer_audit.py:3283` — Python print(): print()
- **[major]** `tools/network_transfer_audit.py:3288` — Python print(): print(json.dumps(report, indent=2, default=str))
- **[major]** `tools/network_transfer_audit.py:3297` — Python print(): print(f"{GREEN}HTML report saved to: {output_html}{RESET}")
- **[major]** `tools/network_transfer_audit.py:3298` — Python print(): print(f"{DIM}Open in browser: open \"{output_html}\"{RESET}")
- **[major]** `tools/network_transfer_audit.py:3404` — Python print(): print(f"{RED}Error: invalid collect duration '{args.collect}'. Use e
- **[major]** `tools/network_transfer_audit.py:3415` — Python print(): print(f"{RED}Error: session '{args.data}' not found in {data_dir}/{R
- **[major]** `tools/network_transfer_audit.py:3453` — Python print(): print(f"{RED}Error: invalid monitor duration '{args.monitor}'. Use e
- **[major]** `tools/network_transfer_audit.py:3461` — Python print(): print(f"{RED}Error: --from time is after --to time{RESET}", file=sys.std
- **[major]** `tools/network_transfer_audit.py:3488` — Python print(): print(f" {YELLOW}No data directory found at {data_dir}{RESET}")
- **[major]** `tools/network_transfer_audit.py:3493` — Python print(): print(f" {YELLOW}No collected sessions found in {data_dir}/{RESET}")
- **[major]** `tools/network_transfer_audit.py:3499` — Python print(): print(f" {'Session ID':<22} {'Status':<12} {'Windows':>8} {'Started':<20} {
- **[major]** `tools/network_transfer_audit.py:3500` Python print(): print(f" {'─' * 22} {'─' * 12} {'─' * 8} {'─' * 20} {'─' * 20} {'─' * 10}")
- **[major]** `tools/network_transfer_audit.py:3511` Python print(): print(f" {s['id']:<22} {status_color}{s['status']:<12}{RESET} "
- **[major]** `tools/network_transfer_audit.py:3515` Python print(): print(f" {dbf.name:<22} {RED}error: {e}{RESET}")
- **[major]** `tools/network_transfer_audit.py:3517` Python print(): print(f"\n {DIM}Use --data SESSION_ID to query a session{RESET}")
- **[major]** `tools/collector.py:127` Python print(): print(f"\n {YELLOW}⚡ Resuming incomplete session {self._session_id}
- **[major]** `tools/collector.py:128` Python print(): print(f" {DIM}Windows already done: {resume_info['windows_done']},
- **[major]** `tools/collector.py:148` Python print(): print(f" {YELLOW}Resumed from window {self._seq}/{total_windows}{RE
- **[major]** `tools/collector.py:157` Python print(): print(f" {DIM}Collecting session baseline...{RESET}")
- **[major]** `tools/collector.py:164` Python print(): print(f" {GREEN}✓{RESET} Network config + security posture + se
- **[major]** `tools/collector.py:165` Python print(): print(f" {DIM}Sensor capture enabled: {', '.join(enabled_sensor
- **[major]** `tools/collector.py:167` Python print(): print(f" {YELLOW}⚠ Firewall is disabled{RESET}")
- **[major]** `tools/collector.py:169` Python print(): print(f" {YELLOW}⚠ Baseline collection warning: {e}{RESET}")
- **[major]** `tools/collector.py:182` Python print(): print(f" {GREEN}✓{RESET} Input activity monitor started (ke
- **[major]** `tools/collector.py:184` Python print(): print(f" {YELLOW}⚠ Input monitor unavailable (need Accessib
- **[major]** `tools/collector.py:186` Python print(): print(f" {YELLOW}⚠ Input monitor failed: {e}{RESET}")
- **[major]** `tools/collector.py:189` Python print(): print(f" {DIM}Taking initial nettop snapshot...{RESET}")
- **[major]** `tools/collector.py:206` Python print(): print(f"\n {CYAN}━━ Window {self._seq + 1}/{total_windows} "
- **[major]** `tools/collector.py:210` Python print(): print(f" {DIM}Querying network events...{RESET}", end="", flu
- **[major]** `tools/collector.py:212` Python print(): print(f" {len(net_events)} events")
- **[major]** `tools/collector.py:215` Python print(): print(f" {DIM}Querying DNS...{RESET}", end="", flush=True)
- **[major]** `tools/collector.py:217` Python print(): print(f" {len(dns)} domains")
- **[major]** `tools/collector.py:220` Python print(): print(f" {DIM}Querying firewall...{RESET}", end="", flush=Tru
- **[major]** `tools/collector.py:222` Python print(): print(f" {len(fw)} events")
- **[major]** `tools/collector.py:225` Python print(): print(f" {DIM}Querying downloads...{RESET}", end="", flush=Tr
- **[major]** `tools/collector.py:228` Python print(): print(f" {len(valid_dl)} files")
- **[major]** `tools/collector.py:231` Python print(): print(f" {DIM}Snapshotting live connections...{RESET}", end="
- **[major]** `tools/collector.py:233` — Python print(): print(f" {len(live)} connections")
- **[major]** `tools/collector.py:236` Python print(): print(f" {DIM}Computing nettop delta...{RESET}", end="", flus
- **[major]** `tools/collector.py:242` Python print(): print(f" ↓{_fmt_bytes(total_in)} ↑{_fmt_bytes(total_out)}")
- **[major]** `tools/collector.py:245` Python print(): print(f" {DIM}Querying sensor access...{RESET}", end="", flus
- **[major]** `tools/collector.py:247` Python print(): print(f" {len(sensor_events_raw)} events")
- **[major]** `tools/collector.py:250` Python print(): print(f" {DIM}Snapshotting listening ports...{RESET}", end=""
- **[major]** `tools/collector.py:252` Python print(): print(f" {len(listeners)} ports")
- **[major]** `tools/collector.py:255` Python print(): print(f" {DIM}Snapshotting process list...{RESET}", end="", f
- **[major]** `tools/collector.py:260` Python print(): print(f" {len(proc_list)} processes")
- **[major]** `tools/collector.py:263` Python print(): print(f" {DIM}Querying Wi-Fi / VPN / interfaces...{RESET}", e
- **[major]** `tools/collector.py:269` Python print(): print(f" Wi-Fi:{wifi_label} route:{vpn_label} {len(iface_bytes
- **[major]** `tools/collector.py:272` Python print(): print(f" {DIM}Scanning LAN & devices...{RESET}", end="", flus
- **[major]** `tools/collector.py:277` Python print(): print(f" {len(arp)} LAN {len(bt.get('devices',[]))} BT {len(us
- **[major]** `tools/collector.py:280` Python print(): print(f" {DIM}Querying security events...{RESET}", end="", fl
- **[major]** `tools/collector.py:284` Python print(): print(f" {len(gk_events)} GK {len(auth_evts)} auth {len(ne_eve
- **[major]** `tools/collector.py:288` Python print(): print(f" {DIM}Capturing sensor samples ({len(enabled_sens
- **[major]** `tools/collector.py:295` Python print(): print(f" {ok} ok {skip} skip {err} err blobs={_fmt_by
- **[major]** `tools/collector.py:298` Python print(): print(f" {YELLOW}⚠ {e}{RESET}")
- **[major]** `tools/collector.py:302` Python print(): print(f" {DIM}Running exfiltration monitors...{RESET}", end="
- **[major]** `tools/collector.py:316` — Python print(): print(f" git:{git_ct} exfil-proc:{launch_ct} staging:{stag
- **[major]** `tools/collector.py:319` Python print(): print(f" {YELLOW}⚠ {e}{RESET}")
- **[major]** `tools/collector.py:323` Python print(): print(f" {DIM}Writing to database...{RESET}", end="", flush=T
- **[major]** `tools/collector.py:353` Python print(): print(f" {YELLOW}⚠ exfil write: {e}{RESET}")
- **[major]** `tools/collector.py:356` Python print(): print(f" {DIM}Building process tree...{RESET}", end="", flush
- **[major]** `tools/collector.py:361` Python print(): print(f" {len(ptree)} processes {unsigned} unsigned")
- **[major]** `tools/collector.py:364` Python print(): print(f" {YELLOW}⚠ {e}{RESET}")
- **[major]** `tools/collector.py:368` Python print(): print(f" {DIM}Building connection graph...{RESET}", end="", f
- **[major]** `tools/collector.py:373` Python print(): print(f" {len(conn_graph)} edges {total_dests} unique desti
- **[major]** `tools/collector.py:376` Python print(): print(f" {YELLOW}⚠ {e}{RESET}")
- **[major]** `tools/collector.py:380` Python print(): print(f" {DIM}Scanning persistence mechanisms...{RESET}", end
- **[major]** `tools/collector.py:384` Python print(): print(f" {len(persist_items)} items {risky} flagged")
- **[major]** `tools/collector.py:387` Python print(): print(f" {YELLOW}⚠ {e}{RESET}")
- **[major]** `tools/collector.py:391` Python print(): print(f" {DIM}Capturing payloads...{RESET}", end="", flush=Tr
- **[major]** `tools/collector.py:395` Python print(): print(f" {len(payloads)} payloads {sensitive_ct} with sensi
- **[major]** `tools/collector.py:398` Python print(): print(f" {YELLOW}⚠ {e}{RESET}")
- **[major]** `tools/collector.py:403` Python print(): print(f" {DIM}Reading input activity...{RESET}", end="",
- **[major]** `tools/collector.py:411` Python print(): print(f" keys:{k} ({kpm:.0f}/min) clicks:{clicks_l} "
- **[major]** `tools/collector.py:415` Python print(): print(f" {YELLOW}⚠ {e}{RESET}")
- **[major]** `tools/collector.py:418` Python print(): print(f" {GREEN}✓{RESET}")
- **[major]** `tools/collector.py:422` Python print(): print(f" {GREEN}Window {self._seq} saved.{RESET} "
- **[major]** `tools/collector.py:426` Python print(): print(f"\n {RED}✗ Collection error: {e}{RESET}")
- **[major]** `tools/collector.py:433` Python print(): print(f" {DIM}Computing baselines & updating known processe
- **[major]** `tools/collector.py:437` Python print(): print(f" {len(new_procs)} new processes detected")
- **[major]** `tools/collector.py:439` Python print(): print(f" {GREEN}✓{RESET}")
- **[major]** `tools/collector.py:441` Python print(): print(f" {YELLOW}⚠ {e}{RESET}")
- **[major]** `tools/collector.py:485` Python print(): print(f"\r {DIM}[{bar}] next window in {int(sleep_for - slept):>3}s
- **[major]** `tools/collector.py:500` — Python print(): print(f"\n\n {YELLOW}⚠ {sig_name} received — finishing current window a
- **[major]** `tools/collector.py:504` — Python print(): print(f"\n{BOLD}{CYAN}{'═' * 70}{RESET}")
- **[major]** `tools/collector.py:505` — Python print(): print(f"{BOLD}{CYAN} Continuous Data Collector{RESET}")
- **[major]** `tools/collector.py:506` — Python print(): print(f"{BOLD}{CYAN}{'═' * 70}{RESET}")
- **[major]** `tools/collector.py:507` — Python print(): print(f" {BOLD}Duration:{RESET} {_fmt_duration(self.duration)}")
- **[major]** `tools/collector.py:509` — Python print(): print(f" {BOLD}Interval:{RESET} {self.interval}s ({interval_labe
- **[major]** `tools/collector.py:510` — Python print(): print(f" {BOLD}Total windows:{RESET} {total_windows}")
- **[major]** `tools/collector.py:511` — Python print(): print(f" {BOLD}Start:{RESET} {start_time.strftime('%Y-%m-%d %
- **[major]** `tools/collector.py:512` — Python print(): print(f" {BOLD}Expected end:{RESET} {end_time.strftime('%Y-%m-%d %H:
- **[major]** `tools/collector.py:513` — Python print(): print(f" {BOLD}Database:{RESET} {db_path}")
- **[major]** `tools/collector.py:514` — Python print(): print(f" {DIM}Press Ctrl+C to stop gracefully{RESET}")
- **[major]** `tools/collector.py:515` — Python print(): print()
- **[major]** `tools/collector.py:519` — Python print(): print(f"\n{BOLD}{CYAN}{'═' * 70}{RESET}")
- **[major]** `tools/collector.py:520` — Python print(): print(f" {BOLD}Collection {color}{status}{RESET}")
- **[major]** `tools/collector.py:521` — Python print(): print(f" {BOLD}Windows collected:{RESET} {self._seq}")
- **[major]** `tools/collector.py:522` — Python print(): print(f" {BOLD}Database:{RESET} {db_path}")
- **[major]** `tools/collector.py:523` — Python print(): print(f" {BOLD}Database size:{RESET} {_fmt_bytes(os.path.getsize(db
- **[major]** `tools/collector.py:524` — Python print(): print(f"{BOLD}{CYAN}{'═' * 70}{RESET}\n")
- **[major]** `tools/collector.py:556` — Python print(): print(f"\n {YELLOW}Received signal {signum}, shutting down daemon...{RE
- **[major]** `tools/collector.py:562` — Python print(): print(f"{BOLD}{CYAN}{'═' * 70}{RESET}")
- **[major]** `tools/collector.py:563` — Python print(): print(f"{BOLD} Sensor Audit Collector — Daemon Mode{RESET}")
- **[major]** `tools/collector.py:564` — Python print(): print(f"{DIM} Session duration: {_fmt_duration(session_duration)}")
- **[major]** `tools/collector.py:565` — Python print(): print(f" Collection interval: {_fmt_duration(interval)}")
- **[major]** `tools/collector.py:566` — Python print(): print(f" Data directory: {data_dir}{RESET}")
- **[major]** `tools/collector.py:567` — Python print(): print(f"{BOLD}{CYAN}{'═' * 70}{RESET}\n")
- **[major]** `tools/collector.py:572` — Python print(): print(f"\n {CYAN}━━ Starting session #{session_num} "
- **[major]** `tools/collector.py:581` — Python print(): print(f" {RED}✗ Session #{session_num} error: {e}{RESET}")
- **[major]** `tools/collector.py:587` — Python print(): print(f" {DIM}Next session in 10s...{RESET}")
- **[major]** `tools/collector.py:590` — Python print(): print(f"\n {GREEN}✓ Daemon stopped cleanly after {session_num} session(s){R
- **[major]** `tools/sample_capture.py:238` — Python print(): print(s)
- **[major]** `tools/secure_vault.py:329` — Python print(): print("Error: Password cannot be empty", file=sys.stderr)
- **[major]** `tools/secure_vault.py:334` — Python print(): print("Error: Passwords do not match", file=sys.stderr)
- **[major]** `tools/secure_vault.py:399` — Python print(): print(f"Vault '{result['name']}' created ({result['max_size']})")
- **[major]** `tools/secure_vault.py:400` — Python print(): print(f" Path: {result['vault_path']}")
- **[major]** `tools/secure_vault.py:402` — Python print(): print(f" Imported from: {args.source}")
- **[major]** `tools/secure_vault.py:407` — Python print(): print(f"Vault '{result['name']}' unlocked")
- **[major]** `tools/secure_vault.py:408` — Python print(): print(f" Mount point: {result['mount_point']}")
- **[major]** `tools/secure_vault.py:410` — Python print(): print(f" ({result['message']})")
- **[major]** `tools/secure_vault.py:414` — Python print(): print(f"Vault '{result['name']}' locked")
- **[major]** `tools/secure_vault.py:416` — Python print(): print(f" ({result['message']})")
- **[major]** `tools/secure_vault.py:421` — Python print(): print("No vaults are currently unlocked")
- **[major]** `tools/secure_vault.py:424` — Python print(): print(f" {r['name']}: {status}")
- **[major]** `tools/secure_vault.py:429` — Python print(): print("No vaults found. Create one with: secure_vault.py create
- **[major]** `tools/secure_vault.py:431` — Python print(): print(f"{'Name':<20} {'Status':<10} {'Size':<12} {'Created':<20} {'M
- **[major]** `tools/secure_vault.py:432` Python print(): print("-" * 90)
- **[major]** `tools/secure_vault.py:438` Python print(): print(f"{v['name']:<20} {status_icon} {v['status']:<7} {size:<12
- **[major]** `tools/secure_vault.py:443` Python print(): print(f"Vault: {s['name']}")
- **[major]** `tools/secure_vault.py:444` Python print(): print(f" Status: {status_icon}")
- **[major]** `tools/secure_vault.py:445` Python print(): print(f" Path: {s['vault_path']}")
- **[major]** `tools/secure_vault.py:446` Python print(): print(f" Max size: {s['max_size']}")
- **[major]** `tools/secure_vault.py:447` Python print(): print(f" On disk: {_fmt_bytes(s['size_on_disk'])}")
- **[major]** `tools/secure_vault.py:448` Python print(): print(f" Created: {s['created']}")
- **[major]** `tools/secure_vault.py:450` Python print(): print(f" Last unlocked: {s['last_unlocked']}")
- **[major]** `tools/secure_vault.py:452` Python print(): print(f" Mount point: {s['mount_point']}")
- **[major]** `tools/secure_vault.py:454` Python print(): print(f" Hint: {s['password_hint']}")
- **[major]** `tools/secure_vault.py:459` Python print(): print("Aborted.")
- **[major]** `tools/secure_vault.py:463` Python print(): print(f"Vault '{result['name']}' permanently destroyed")
- **[major]** `tools/secure_vault.py:466` Python print(): print("Enter current password:")
- **[major]** `tools/secure_vault.py:468` Python print(): print("Enter new password:")
- **[major]** `tools/secure_vault.py:471` Python print(): print(f"Password changed for vault '{result['name']}'")
- **[major]** `tools/secure_vault.py:474` Python print(): print(f"Access denied: {e}", file=sys.stderr)
- **[major]** `tools/secure_vault.py:477` Python print(): print(f"Error: {e}", file=sys.stderr)
- **[major]** `tools/input_monitor.py:196` Python print(): print(" pyobjc-framework-Quartz not installed input monitoring
- **[major]** `tools/input_monitor.py:213` Python print(): print(" CGEventTap failed grant Accessibility permission to Ter
- **[major]** `tools/input_monitor.py:438` Python print(): print("Input Monitor press Ctrl+C to stop")
- **[major]** `tools/input_monitor.py:439` Python print(): print("Requires Accessibility permission for Terminal/Python")
- **[major]** `tools/input_monitor.py:440` Python print(): print()
- **[major]** `tools/input_monitor.py:444` Python print(): print("Failed to start check Accessibility permissions")
- **[major]** `tools/input_monitor.py:451` Python print(): print(f"[{datetime.now().strftime('%H:%M:%S')}] "
- **[major]** `tools/input_monitor.py:461` Python print(): print(f" Top categories: {', '.join(f'{k}={v}' for k, v
- **[major]** `tools/input_monitor.py:465` Python print(): print(f" Top combos: {', '.join(f'{k}={v}' for k, v in t
- **[major]** `tools/input_monitor.py:467` Python print(): print("\nStopping...")
- **[major]** `tools/input_monitor.py:470` Python print(): print("\nFinal stats:")
- **[major]** `tools/input_monitor.py:471` Python print(): print(json.dumps(final, indent=2))
- **[minor]** `dashboard/src/api.ts:28` any type: async function put<T = any>(path: string, body: any): Promise<T> {
- **[minor]** `dashboard/src/api.ts:38` — any type: async function post<T = any>(path: string, body?: any): Promise<T> {
- **[minor]** `dashboard/src/api.ts:56` — any type: updateConfig: (data: any) => put('/config', data),
- **[minor]** `dashboard/src/pages/Reports.tsx:25` — any type: {reports.map((r: any) => (
- **[minor]** `dashboard/src/pages/Sessions.tsx:10` — any type: const STATUS_CFG: Record<string, { bg: string; icon: any; label: string }> = {
- **[minor]** `dashboard/src/pages/Sessions.tsx:37` — any type: sessions.forEach((s: any) => { if (s.status in c) (c as any)[s.status]++; })
- **[minor]** `dashboard/src/pages/Sessions.tsx:43` — any type: const totalSize = sessions.reduce((a: number, s: any) => a + (s.db_size || 0
- **[minor]** `dashboard/src/pages/Sessions.tsx:44` — any type: const totalWindows = sessions.reduce((a: number, s: any) => a + (s.windows_d
- **[minor]** `dashboard/src/pages/Sessions.tsx:51` — any type: if (statusFilter !== 'all') list = list.filter((s: any) => s.status === stat
- **[minor]** `dashboard/src/pages/Sessions.tsx:54` — any type: list = list.filter((s: any) =>
- **[minor]** `dashboard/src/pages/Sessions.tsx:58` — any type: list.sort((a: any, b: any) => {
- **[minor]** `dashboard/src/pages/Sessions.tsx:172` — any type: {filtered.map((s: any) => {
- **[minor]** `dashboard/src/pages/Vaults.tsx:44` — any type: } catch (e: any) {
- **[minor]** `dashboard/src/pages/Vaults.tsx:73` — any type: } catch (e: any) { flashErr(e.message); }
- **[minor]** `dashboard/src/pages/Vaults.tsx:79` — any type: catch (e: any) { flashErr(e.message); }
- **[minor]** `dashboard/src/pages/Vaults.tsx:84` — any type: catch (e: any) { flashErr(e.message); }
- **[minor]** `dashboard/src/pages/Vaults.tsx:108` — any type: } catch (e: any) { flashErr(e.message); }
- **[minor]** `dashboard/src/pages/SessionDetail.tsx:48` — any type: const isRunning = (s: any) => s?.status === 'running';
- **[minor]** `dashboard/src/pages/SessionDetail.tsx:162` — any type: const maxBytes = nettop.length ? Math.max(...nettop.map((n: any) => n.bytes_in
- **[minor]** `dashboard/src/pages/SessionDetail.tsx:198` — any type: } catch (e: any) { toast('error', 'Report failed', e.message); }
- **[minor]** `dashboard/src/pages/Dashboard.tsx:32` — any type: toast('success', 'Capture complete', `${results.filter((r: any) => r.statu
- **[minor]** `dashboard/src/pages/Dashboard.tsx:33` — any type: } catch (e: any) {
- **[minor]** `dashboard/src/pages/Dashboard.tsx:45` — any type: } catch (e: any) {
- **[minor]** `dashboard/src/pages/Dashboard.tsx:55` — any type: } catch (e: any) {
- **[minor]** `dashboard/src/pages/Dashboard.tsx:77` — any type: const unackedAlerts = (alerts || []).filter((a: any) => !a.acknowledged);
- **[minor]** `dashboard/src/pages/Dashboard.tsx:152` — any type: {unackedAlerts.filter((a: any) => a.severity === 'critical').len
- **[minor]** `dashboard/src/pages/Dashboard.tsx:223` — any type: {captureResult.map((r: any, i: number) => (
- **[minor]** `dashboard/src/pages/Dashboard.tsx:264` — any type: {sessions.slice(0, 8).map((s: any) => (
- **[minor]** `dashboard/src/pages/SampleViewer.tsx:21` — any type: function MetadataTree({ data, depth = 0 }: { data: any; depth?: number }) {
- **[minor]** `dashboard/src/pages/SampleViewer.tsx:163` — any type: {sample.metadata.running_apps?.slice(0, 15).map((a: any, i: numb
- **[minor]** `dashboard/src/pages/SessionCompare.tsx:50` — any type: {sessions?.map((s: any) => (
- **[minor]** `dashboard/src/pages/SessionCompare.tsx:60` — any type: {sessions?.map((s: any) => (
- **[minor]** `dashboard/src/pages/SessionCompare.tsx:151` — any type: {data.process_diff.map((p: any) => (
- **[minor]** `dashboard/src/pages/DataManagement.tsx:66` — any type: {sessionList.map((s: any) => (
- **[minor]** `dashboard/src/pages/Config.tsx:22` — any type: mutationFn: (data: any) => api.updateConfig(data),
- **[minor]** `dashboard/src/pages/Config.tsx:32` — any type: setLocal((prev: any) => ({
- **[minor]** `dashboard/src/pages/Config.tsx:38` — any type: const updateSensorParam = (sensor: string, param: string, value: any) => {
- **[minor]** `dashboard/src/pages/Config.tsx:39` — any type: setLocal((prev: any) => ({
- **[minor]** `dashboard/src/pages/Config.tsx:46` — any type: setLocal((prev: any) => ({ ...prev, schedule: { ...prev.schedule, [param]: v
- **[minor]** `dashboard/src/pages/Alerts.tsx:48` — any type: critical: alerts.filter((a: any) => a.severity === 'critical').length,
- **[minor]** `dashboard/src/pages/Alerts.tsx:49` — any type: warning: alerts.filter((a: any) => a.severity === 'warning').length,
- **[minor]** `dashboard/src/pages/Alerts.tsx:50` — any type: info: alerts.filter((a: any) => a.severity === 'info').length,
- **[minor]** `dashboard/src/pages/Alerts.tsx:51` — any type: unacked: alerts.filter((a: any) => !a.acknowledged).length,
- **[minor]** `dashboard/src/pages/Alerts.tsx:57` — any type: const cats = new Set(alerts.map((a: any) => a.category).filter(Boolean));
- **[minor]** `dashboard/src/pages/Alerts.tsx:64` — any type: if (sevFilter !== 'all') list = list.filter((a: any) => a.severity === sevFi
- **[minor]** `dashboard/src/pages/Alerts.tsx:65` — any type: if (ackFilter === 'unacked') list = list.filter((a: any) => !a.acknowledged)
- **[minor]** `dashboard/src/pages/Alerts.tsx:66` — any type: if (ackFilter === 'acked') list = list.filter((a: any) => a.acknowledged);
- **[minor]** `dashboard/src/pages/Alerts.tsx:67` — any type: if (catFilter !== 'all') list = list.filter((a: any) => a.category === catFi
- **[minor]** `dashboard/src/pages/Alerts.tsx:76` — any type: } catch (e: any) {
- **[minor]** `dashboard/src/pages/Alerts.tsx:170` — any type: {filtered.map((a: any) => {
- **[minor]** `dashboard/src/pages/Services.tsx:108` — any type: try { await api.stopCollection(); refetch(); toast('info', 'Coll
- **[minor]** `dashboard/src/pages/Services.tsx:114` — any type: try { await api.startCollection(3600, 300); refetch(); toast('su
- **[minor]** `dashboard/src/pages/ProcessDetail.tsx:39` — any type: ? Math.max(...data.bandwidth_timeline.map((w: any) => w.bytes_in + w.bytes_o
- **[minor]** `dashboard/src/pages/ProcessDetail.tsx:112` — any type: {data.bandwidth_timeline.map((w: any, i: number) => {
- **[minor]** `dashboard/src/pages/ProcessDetail.tsx:146` — any type: {data.connections.map((c: any, i: number) => (
- **[minor]** `dashboard/src/pages/ProcessDetail.tsx:172` — any type: {data.sensor_access.map((s: any, i: number) => (
- **[minor]** `dashboard/src/pages/Calendar.tsx:76` — any type: for (const s of (sessions || []) as any[]) {
- **[minor]** `dashboard/src/pages/Calendar.tsx:89` — any type: if (!map[k].find((x: any) => x.id === s.id)) map[k].push(s);
- **[minor]** `dashboard/src/pages/Calendar.tsx:100` — any type: for (const r of (reports || []) as any[]) {
- **[minor]** `dashboard/src/pages/Calendar.tsx:159` — any type: const result: any[] = [];
- **[minor]** `dashboard/src/pages/Calendar.tsx:161` — any type: for (const s of (sessions || []) as any[]) {
- **[minor]** `dashboard/src/pages/Calendar.tsx:180` — any type: return ((reports || []) as any[]).filter((r: any) => {
- **[minor]** `dashboard/src/pages/Calendar.tsx:257` — any type: {daySessions.slice(0, 4).map((s: any) => (
- **[minor]** `dashboard/src/pages/Calendar.tsx:261` — any type: {dayReports.slice(0, 3).map((r: any, ri: number) => (
- **[minor]** `dashboard/src/pages/Calendar.tsx:332` — any type: {selectedSessions.map((s: any) => (
- **[minor]** `dashboard/src/pages/Calendar.tsx:367` — any type: {selectedReports.map((r: any, i: number) => (
- **[minor]** `dashboard/src/pages/DataFlowMap.tsx:305` — any type: {(sessions || []).map((s: any) => (
- **[minor]** `dashboard/src/pages/session-tabs/ConnectionsTab.tsx:6` — any type: connGraphData: any;
- **[minor]** `dashboard/src/pages/session-tabs/ConnectionsTab.tsx:7` — any type: processTreeData: any;
- **[minor]** `dashboard/src/pages/session-tabs/ConnectionsTab.tsx:18` — any type: <Card label="Unique Destinations" value={new Set(edges.map((e: any) => e
- **[minor]** `dashboard/src/pages/session-tabs/ConnectionsTab.tsx:19` — any type: <Card label="Processes" value={new Set(edges.map((e: any) => e.process))
- **[minor]** `dashboard/src/pages/session-tabs/ConnectionsTab.tsx:20` — any type: <Card label="Total Outbound" value={fmtBytes(edges.reduce((a: number, e:
- **[minor]** `dashboard/src/pages/session-tabs/ConnectionsTab.tsx:26` any type: rows={edges.slice(0, 100).map((e: any) => [
- **[minor]** `dashboard/src/pages/session-tabs/ConnectionsTab.tsx:44` — any type: rows={tree.filter((p: any) => p.is_exfil_relevant || p.code_signed =
- **[minor]** `dashboard/src/pages/session-tabs/OverviewTab.tsx:8` — any type: session: any;
- **[minor]** `dashboard/src/pages/session-tabs/OverviewTab.tsx:9` — any type: insightsData: any;
- **[minor]** `dashboard/src/pages/session-tabs/OverviewTab.tsx:10` — any type: summaryData: any;
- **[minor]** `dashboard/src/pages/session-tabs/OverviewTab.tsx:12` — any type: windows: any[] | undefined;
- **[minor]** `dashboard/src/pages/session-tabs/OverviewTab.tsx:13` — any type: nettop: any[];
- **[minor]** `dashboard/src/pages/session-tabs/OverviewTab.tsx:17` — any type: processRisk: any;
- **[minor]** `dashboard/src/pages/session-tabs/OverviewTab.tsx:18` — any type: screenCaptures: any[] | undefined;
- **[minor]** `dashboard/src/pages/session-tabs/OverviewTab.tsx:33` — any type: {insightsData?.alerts?.filter((a: any) => a.severity === 'critical').map((
- **[minor]** `dashboard/src/pages/session-tabs/OverviewTab.tsx:85` — any type: const timelineMax = Math.max(...windows.map((x: any) => (x.bytes_in_
- **[minor]** `dashboard/src/pages/session-tabs/OverviewTab.tsx:88` — any type: {windows.map((w: any, i: number) => {
- **[minor]** `dashboard/src/pages/session-tabs/OverviewTab.tsx:112` — any type: rows={nettop.slice(0, 20).map((n: any) => [
- **[minor]** `dashboard/src/pages/session-tabs/OverviewTab.tsx:152` — any type: const highRisk = procs.filter((p: any) => p.risk_score >= 6);
- **[minor]** `dashboard/src/pages/session-tabs/OverviewTab.tsx:175` — any type: {highRisk.map((p: any) => (
- **[minor]** `dashboard/src/pages/session-tabs/OverviewTab.tsx:200` — any type: {procs.slice(0, 25).map((p: any) => (
- **[minor]** `dashboard/src/pages/session-tabs/OverviewTab.tsx:227` — any type: {screenCaptures && screenCaptures.filter((s: any) => s.blob_url && s.blob_
- **[minor]** `dashboard/src/pages/session-tabs/OverviewTab.tsx:228` — any type: <Section title={`📸 Screen Captures (${screenCaptures.filter((s: any) =>
- **[minor]** `dashboard/src/pages/session-tabs/OverviewTab.tsx:231` — any type: .filter((s: any) => s.blob_url && s.blob_mime?.startsWith('image/'
- **[minor]** `dashboard/src/pages/session-tabs/OverviewTab.tsx:233` — any type: .map((s: any) => (
- **[minor]** `dashboard/src/pages/session-tabs/OverviewTab.tsx:246` — any type: {screenCaptures.filter((s: any) => s.blob_url).length > 12 && (
- **[minor]** `dashboard/src/pages/session-tabs/OverviewTab.tsx:249` — any type: View all {screenCaptures.filter((s: any) => s.blob_url).length} sc
- **[minor]** `dashboard/src/pages/session-tabs/PayloadsTab.tsx:6` — any type: payloadData: any;
- **[minor]** `dashboard/src/pages/session-tabs/PayloadsTab.tsx:12` — any type: const sourceTypes = [...new Set(samples.map((s: any) => s.source_type))] as st
- **[minor]** `dashboard/src/pages/session-tabs/PayloadsTab.tsx:19` — any type: <Card label="With Sensitive Data" value={samples.filter((s: any) => s.se
- **[minor]** `dashboard/src/pages/session-tabs/PayloadsTab.tsx:20` — any type: <Card label="Total Size" value={fmtBytes(samples.reduce((a: number, s: a
- **[minor]** `dashboard/src/pages/session-tabs/PayloadsTab.tsx:23` any type: <Section key={st} title={`${st.replace(/_/g, ' ').toUpperCase()} (${samp
- **[minor]** `dashboard/src/pages/session-tabs/PayloadsTab.tsx:24` any type: {samples.filter((s: any) => s.source_type === st).slice(0, 30).map((s:
- **[minor]** `dashboard/src/pages/session-tabs/shared.tsx:10` — any type: export function Table({ headers, rows }: { headers: string[]; rows: any[][] }) {
- **[minor]** `dashboard/src/pages/session-tabs/shared.tsx:48` — any type: export const POSTURE_OK: Record<string, (v: any) => boolean> = {
- **[minor]** `dashboard/src/pages/session-tabs/SamplesTab.tsx:7` — any type: samples: any[] | undefined;
- **[minor]** `dashboard/src/pages/session-tabs/SamplesTab.tsx:14` — any type: windows: any[] | undefined;
- **[minor]** `dashboard/src/pages/session-tabs/SamplesTab.tsx:58` — any type: {windows.map((w: any) => (
- **[minor]** `dashboard/src/pages/session-tabs/SamplesTab.tsx:67` — any type: {[...(samples || [])].sort((a: any, b: any) => {
- **[minor]** `dashboard/src/pages/session-tabs/SamplesTab.tsx:74` — any type: }).map((s: any) => {
- **[minor]** `dashboard/src/pages/session-tabs/SecurityTab.tsx:4` — any type: const POSTURE_OK: Record<string, (v: any) => boolean> = {
- **[minor]** `dashboard/src/pages/session-tabs/SecurityTab.tsx:10` — any type: security: any;
- **[minor]** `dashboard/src/pages/session-tabs/SecurityTab.tsx:22` — any type: rows={security.sensor_events.slice(0, 50).map((e: any) => [
- **[minor]** `dashboard/src/pages/session-tabs/SecurityTab.tsx:34` — any type: rows={security.gatekeeper.slice(0, 50).map((e: any) => [
- **[minor]** `dashboard/src/pages/session-tabs/SecurityTab.tsx:46` — any type: rows={security.auth_events.slice(0, 50).map((e: any) => [
- **[minor]** `dashboard/src/pages/session-tabs/InputTab.tsx:5` — any type: inputStats: any;
- **[minor]** `dashboard/src/pages/session-tabs/InputTab.tsx:6` — any type: inputTimeline: any[];
- **[minor]** `dashboard/src/pages/session-tabs/InputTab.tsx:21` — any type: const totalCatKeys = cats.reduce((s: number, c: any) => s + c.count, 0) || 1;
- **[minor]** `dashboard/src/pages/session-tabs/InputTab.tsx:22` — any type: const maxTimelineKeys = timeline.length ? Math.max(...timeline.map((t: any) =>
- **[minor]** `dashboard/src/pages/session-tabs/InputTab.tsx:50` — any type: {cats.map((c: any) => {
- **[minor]** `dashboard/src/pages/session-tabs/InputTab.tsx:75` — any type: rows={apps.map((a: any) => [
- **[minor]** `dashboard/src/pages/session-tabs/InputTab.tsx:89` — any type: rows={combos.map((c: any) => [
- **[minor]** `dashboard/src/pages/session-tabs/InputTab.tsx:109` — any type: {timeline.map((w: any, i: number) => (
- **[minor]** `dashboard/src/pages/session-tabs/PermissionsTab.tsx:6` — any type: permissionsData: any;
- **[minor]** `dashboard/src/pages/session-tabs/PermissionsTab.tsx:16` — any type: const allProcs: any[] = permissionsData.processes || [];
- **[minor]** `dashboard/src/pages/session-tabs/PermissionsTab.tsx:19` — any type: ? allProcs.filter((p: any) => p.process.toLowerCase().includes(q) || p.binar
- **[minor]** `dashboard/src/pages/session-tabs/PermissionsTab.tsx:21` — any type: if (permFilter) filtered = filtered.filter((p: any) => p.permissions[permFilte
- **[minor]** `dashboard/src/pages/session-tabs/PermissionsTab.tsx:22` — any type: const withPerms = filtered.filter((p: any) => p.total_events > 0);
- **[minor]** `dashboard/src/pages/session-tabs/PermissionsTab.tsx:23` — any type: const withoutPerms = filtered.filter((p: any) => p.total_events === 0);
- **[minor]** `dashboard/src/pages/session-tabs/PermissionsTab.tsx:25` — any type: for (const s of sensors) sensorCounts[s] = allProcs.filter((p: any) => p.permi
- **[minor]** `dashboard/src/pages/session-tabs/PermissionsTab.tsx:33` — any type: <Card label="Total Events" value={allProcs.reduce((a: number, p: any) =>
- **[minor]** `dashboard/src/pages/session-tabs/PermissionsTab.tsx:79` — any type: {withPerms.map((p: any) => (
- **[minor]** `dashboard/src/pages/session-tabs/PermissionsTab.tsx:114` — any type: {withoutPerms.map((p: any) => (
- **[minor]** `dashboard/src/pages/session-tabs/ExfiltrationTab.tsx:6` — any type: exfilData: any;
- **[minor]** `dashboard/src/pages/session-tabs/ExfiltrationTab.tsx:38` — any type: {exfilData.ai_ide_activity.map((a: any, i: number) => (
- **[minor]** `dashboard/src/pages/session-tabs/ExfiltrationTab.tsx:87` — any type: {exfilData.git_events.filter((e: any) => e.event_type === 'git_recent_
- **[minor]** `dashboard/src/pages/session-tabs/ExfiltrationTab.tsx:124` — any type: {exfilData.git_events.filter((e: any) => e.event_type !== 'git_recent_
- **[minor]** `dashboard/src/pages/session-tabs/ExfiltrationTab.tsx:127` — any type: rows={exfilData.git_events.filter((e: any) => e.event_type !== 'gi
- **[minor]** `dashboard/src/pages/session-tabs/ExfiltrationTab.tsx:142` — any type: rows={exfilData.process_launches.map((e: any) => [
- **[minor]** `dashboard/src/pages/session-tabs/ExfiltrationTab.tsx:156` — any type: {exfilData.file_staging.map((e: any, i: number) => (
- **[minor]** `dashboard/src/pages/session-tabs/ExfiltrationTab.tsx:182` — any type: rows={exfilData.remote_copies.map((e: any) => [
- **[minor]** `dashboard/src/pages/session-tabs/ExfiltrationTab.tsx:198` — any type: rows={exfilData.http_requests.slice(0, 100).map((e: any) => [
- **[minor]** `dashboard/src/pages/session-tabs/PersistenceTab.tsx:5` — any type: persistenceData: any;
- **[minor]** `dashboard/src/pages/session-tabs/PersistenceTab.tsx:19` — any type: <Card label="Enabled" value={items.filter((i: any) => i.enabled).length}
- **[minor]** `dashboard/src/pages/session-tabs/PersistenceTab.tsx:24` — any type: {items.filter((i: any) => i.item_type === type).slice(0, 50).map((it
- **[minor]** `dashboard/src/pages/session-tabs/NetworkTab.tsx:7` — any type: totals: any;
- **[minor]** `dashboard/src/pages/session-tabs/NetworkTab.tsx:8` — any type: nettop: any[];
- **[minor]** `dashboard/src/pages/session-tabs/NetworkTab.tsx:10` — any type: connections: any[] | undefined;
- **[minor]** `dashboard/src/pages/session-tabs/NetworkTab.tsx:11` — any type: networkData: any;
- **[minor]** `dashboard/src/pages/session-tabs/NetworkTab.tsx:12` — any type: destinations: any;
- **[minor]** `dashboard/src/pages/session-tabs/NetworkTab.tsx:29` — any type: rows={nettop.slice(0, 30).map((n: any) => [
- **[minor]** `dashboard/src/pages/session-tabs/NetworkTab.tsx:44` — any type: rows={connections.slice(0, 50).map((c: any) => [c.process, c.type, c
- **[minor]** `dashboard/src/pages/session-tabs/NetworkTab.tsx:53` — any type: rows={networkData.dns.map((d: any) => [d[0], d[1]])}
- **[minor]** `dashboard/src/pages/session-tabs/NetworkTab.tsx:65` — any type: <Card label="Suspicious Ports" value={destinations.top_ports?.filter
- **[minor]** `dashboard/src/pages/session-tabs/NetworkTab.tsx:66` any type: color={destinations.top_ports?.some((p: any) => p.suspicious) ? 't
- **[minor]** `dashboard/src/pages/session-tabs/NetworkTab.tsx:73` — any type: {destinations.top_destinations.filter((d: any) => !d.internal)
- **[minor]** `dashboard/src/pages/session-tabs/NetworkTab.tsx:86` — any type: {destinations.top_ports.slice(0, 12).map((p: any, i: number) =
- **[minor]** `dashboard/src/pages/session-tabs/TimelineTab.tsx:27` — any type: timelineData: any;
- **[minor]** `dashboard/src/pages/session-tabs/TimelineTab.tsx:68` — any type: {events.map((ev: any, i: number) => {
- **[minor]** `dashboard/src/pages/session-tabs/InsightsTab.tsx:6` — any type: insightsData: any;
- **[minor]** `dashboard/src/pages/session-tabs/InsightsTab.tsx:7` — any type: networkData: any;
- **[minor]** `dashboard/src/pages/session-tabs/InsightsTab.tsx:19` — any type: {insightsData.alerts.map((a: any, i: number) => {
- **[minor]** `dashboard/src/pages/session-tabs/InsightsTab.tsx:40` — any type: {insightsData.insights.map((ins: any, i: number) => (
- **[minor]** `dashboard/src/pages/session-tabs/InsightsTab.tsx:97` — any type: {data.errors.map((e: any) => `${e.status} (${e.count})`).j
- **[minor]** `dashboard/src/pages/session-tabs/InsightsTab.tsx:115` — any type: rows={procs.map((p: any) => {
- **[minor]** `dashboard/src/pages/session-tabs/InsightsTab.tsx:116` — any type: const totalAll = procs.reduce((s: number, x: any) => s + x.count
- **[minor]** `dashboard/src/pages/session-tabs/InsightsTab.tsx:134` — any type: rows={insightsData.bandwidth_spikes.map((s: any) => [
- **[minor]** `dashboard/src/pages/session-tabs/InsightsTab.tsx:150` — any type: rows={insightsData.baseline_anomalies.map((a: any) => [
- **[minor]** `dashboard/src/pages/session-tabs/InsightsTab.tsx:167` — any type: rows={insightsData.new_processes_with_network.map((p: any) => [
- **[minor]** `dashboard/src/pages/session-tabs/DevicesTab.tsx:5` — any type: devices: any;
- **[minor]** `dashboard/src/pages/session-tabs/DevicesTab.tsx:17` — any type: rows={devices.wifi.map((w: any) => [
- **[minor]** `dashboard/src/pages/session-tabs/DevicesTab.tsx:29` — any type: rows={devices.vpn.map((v: any) => [v.interface, v.ip, v.mtu, (v.flag
- **[minor]** `dashboard/src/pages/session-tabs/DevicesTab.tsx:38` — any type: rows={devices.interface_bytes.map((i: any) => [i.interface, fmtBytes
- **[minor]** `dashboard/src/pages/session-tabs/DevicesTab.tsx:47` — any type: rows={devices.listening_ports.map((p: any) => [p.process, p.pid, p.u
- **[minor]** `dashboard/src/pages/session-tabs/DevicesTab.tsx:56` — any type: rows={devices.bluetooth.map((b: any) => [b.name, b.mac, b.type, b.co
- **[minor]** `dashboard/src/pages/session-tabs/DevicesTab.tsx:65` — any type: rows={devices.usb.map((u: any) => [u.name, u.vendor, u.serial, u.pro
- **[minor]** `dashboard/src/pages/session-tabs/DevicesTab.tsx:74` — any type: rows={devices.arp.map((a: any) => [a.ip, a.mac, a.interface])}
- **[minor]** `dashboard/src/pages/AskQuestion.tsx:14` — any type: data?: any;
- **[minor]** `dashboard/src/pages/AskQuestion.tsx:67` — any type: } catch (err: any) {
- **[minor]** `dashboard/src/pages/AskQuestion.tsx:103` — any type: {(sessions || []).map((s: any) => (
- **[minor]** `dashboard/src/pages/AskQuestion.tsx:230` — any type: function DataPreview({ data }: { data: any[] }) {
- **[minor]** `dashboard/src/pages/AskQuestion.tsx:247` — any type: {items.map((row: any, i: number) => (
- **[minor]** `dashboard/src/pages/Trends.tsx:12` — any type: const maxBw = Math.max(...trends.map((t: any) => t.bytes_in + t.bytes_out), 1)
- **[minor]** `dashboard/src/pages/Trends.tsx:13` — any type: const maxAlerts = Math.max(...trends.map((t: any) => t.alerts_critical + t.ale
- **[minor]** `dashboard/src/pages/Trends.tsx:26` — any type: {trends.map((t: any, i: number) => {
- **[minor]** `dashboard/src/pages/Trends.tsx:55` — any type: {trends.map((t: any, i: number) => {
- **[minor]** `dashboard/src/pages/Trends.tsx:86` — any type: {trends.map((t: any) => (
- **[minor]** `dashboard/src/pages/RunAudit.tsx:239` — any type: } catch (e: any) {
- **[minor]** `dashboard/src/pages/RunAudit.tsx:265` — any type: } catch (e: any) {
- **[minor]** `dashboard/src/pages/RunAudit.tsx:571` — any type: {sessions.map((s: any) => (
- **[minor]** `dashboard/src/pages/LaunchAgents.tsx:5` — any type: function AgentTable({ title, agents }: { title: string; agents: any[] }) {
- **[minor]** `dashboard/src/pages/LaunchAgents.tsx:22` — any type: {agents.map((a: any, i: number) => {
- **[major]** `dashboard/src/index.css:11` — Hardcoded hex color: #334155
- **[major]** `dashboard/src/index.css:12` — Hardcoded hex color: #475569
- **[major]** `dashboard/src/index.css:37` — Hardcoded hex color: #cbd5e1
- **[major]** `dashboard/src/index.css:38` — Hardcoded hex color: #94a3b8
- **[major]** `dashboard/src/pages/DataFlowMap.tsx:63` — Hardcoded hex color: #38bdf8
- **[major]** `dashboard/src/pages/DataFlowMap.tsx:64` — Hardcoded hex color: #f87171
- **[major]** `dashboard/src/pages/DataFlowMap.tsx:65` — Hardcoded hex color: #a78bfa
- **[major]** `dashboard/src/pages/DataFlowMap.tsx:69` — Hardcoded hex color: #0284c7
- **[major]** `dashboard/src/pages/DataFlowMap.tsx:70` — Hardcoded hex color: #dc2626
- **[major]** `dashboard/src/pages/DataFlowMap.tsx:71` — Hardcoded hex color: #7c3aed
- **[major]** `dashboard/src/pages/DataFlowMap.tsx:76` — Hardcoded hex color: #f87171
- **[major]** `dashboard/src/pages/DataFlowMap.tsx:77` — Hardcoded hex color: #fbbf24
- **[major]** `dashboard/src/pages/DataFlowMap.tsx:78` — Hardcoded hex color: #38bdf8
- **[major]** `dashboard/src/pages/DataFlowMap.tsx:79` — Hardcoded hex color: #475569
- **[major]** `dashboard/src/pages/DataFlowMap.tsx:405` — Hardcoded hex color: #1e293b
- **[major]** `dashboard/src/pages/DataFlowMap.tsx:432` — Hardcoded hex color: #fff
- **[major]** `dashboard/src/pages/DataFlowMap.tsx:432` — Hardcoded hex color: #e2e8f0
- **[major]** `dashboard/src/pages/DataFlowMap.tsx:440` — Hardcoded hex color: #334155
- **[major]** `dashboard/src/pages/DataFlowMap.tsx:440` — Hardcoded hex color: #94a3b8
- **[major]** `dashboard/src/pages/DataFlowMap.tsx:453` — Hardcoded hex color: #fff
- **[minor]** `tools/capture_config.py:44` — Emoji in code: 📷
- **[minor]** `tools/capture_config.py:45` — Emoji in code: 🖥
- **[minor]** `tools/capture_config.py:46` — Emoji in code: 🎙
- **[minor]** `tools/capture_config.py:47` — Emoji in code: 📍
- **[minor]** `tools/capture_config.py:48` — Emoji in code: 🌐
- **[minor]** `tools/capture_config.py:49` — Emoji in code: 📋
- **[minor]** `tools/capture_config.py:50` — Emoji in code: 📶
- **[minor]** `tools/capture_config.py:51` — Emoji in code: 🔌
- **[minor]** `tools/capture_config.py:52` — Emoji in code: 💾
- **[minor]** `tools/capture_config.py:53` — Emoji in code: 🔤
- **[minor]** `tools/capture_config.py:54` — Emoji in code: 🪟
- **[minor]** `tools/html_report.py:522` — Emoji in code: 🔒
- **[minor]** `tools/html_report.py:542` — Emoji in code: 📸
- **[minor]** `tools/html_report.py:585` — Emoji in code: 🌐
- **[minor]** `tools/html_report.py:616` — Emoji in code: 📱
- **[minor]** `tools/html_report.py:647` — Emoji in code: 🛡
- **[minor]** `tools/html_report.py:663` — Emoji in code: 🔑
- **[minor]** `tools/secure_vault.py:437` — Emoji in code: 🔓
- **[minor]** `tools/secure_vault.py:442` — Emoji in code: 🔓
- **[minor]** `dashboard/src/pages/SampleViewer.tsx:98` — Emoji in code: 💡
- **[minor]** `dashboard/src/pages/SampleViewer.tsx:101` — Emoji in code: 💡
- **[minor]** `dashboard/src/pages/SampleViewer.tsx:131` — Emoji in code: 📍
- **[minor]** `dashboard/src/pages/Config.tsx:7` — Emoji in code: 📷
- **[minor]** `dashboard/src/pages/Config.tsx:8` — Emoji in code: 🌐
- **[minor]** `dashboard/src/pages/Config.tsx:9` — Emoji in code: 💾
- **[minor]** `dashboard/src/pages/Config.tsx:119` — Emoji in code: 📡
- **[minor]** `dashboard/src/pages/session-tabs/OverviewTab.tsx:54` — Emoji in code: 🧠
- **[minor]** `dashboard/src/pages/session-tabs/OverviewTab.tsx:139` — Emoji in code: 📷
- **[minor]** `dashboard/src/pages/session-tabs/OverviewTab.tsx:228` — Emoji in code: 📸
- **[minor]** `dashboard/src/pages/session-tabs/SamplesTab.tsx:38` — Emoji in code: 📷
## Ecosystem totals by rule
| Rule | Total findings |
|------|----------------|
| `web-hardcoded-hex` | 1370 |
| `b7-emoji-in-code` | 465 |
| `b4-python-print` | 351 |
| `ts-any-type` | 249 |
| `b4-console-log` | 93 |
| `b5-hardcoded-product-id` | 13 |
| `b4-swift-print` | 7 |
**Grand total: 2548 findings across 19 repos.**