diff --git a/.Jules/palette.md b/.Jules/palette.md index f8c1fbd..7a349b8 100644 --- a/.Jules/palette.md +++ b/.Jules/palette.md @@ -5,3 +5,7 @@ ## 2026-06-30 - Added Emojis to CLI Output Messages **Learning:** Adding subtle emojis to informative CLI output headers (like "Created/updated files" and "Next steps") provides clearer visual cues for developers scanning long CLI output. **Action:** Always include relevant emojis in summary output text to make success and informational messages more visually distinguishable from routine command logs. + +## 2024-07-01 - Add emojis to CLI messages for better DX +**Learning:** Adding subtle emojis to informational headers (e.g., '✨ Created', 'šŸš€ This workflow runs') provides clearer visual cues and makes success/informational messages more distinguishable from routine logs, significantly improving the Developer Experience (DX) in terminal outputs. +**Action:** Consistently use emojis in CLI outputs to enhance readability and structure, making it easier for users to quickly scan and understand the information presented. diff --git a/scanner/cli/appguardrail.py b/scanner/cli/appguardrail.py index 13e479f..42fb6c7 100644 --- a/scanner/cli/appguardrail.py +++ b/scanner/cli/appguardrail.py @@ -1224,7 +1224,7 @@ def cmd_scan(args): sys.exit(1) if scan_arg.is_symlink(): - print(f"Skipping symlink path: {scan_arg}") + print(f"ā­ļø Skipping symlink path: {scan_arg}") return 0 print(f"\nšŸ” AppGuardrail scanning: {scan_path}\n") @@ -1384,10 +1384,10 @@ def cmd_monitor(args): workflow_file.write_text(MONITOR_WORKFLOW) print("\nāœ… AppGuardrail monitor workflow installed!\n") - print(f"Created/updated: {workflow_file.relative_to(project_root)}") + print(f"✨ Created/updated: {workflow_file.relative_to(project_root)}") print() print( - "This workflow runs `appguardrail scan .` on pull requests, pushes, and manual dispatches." + "šŸš€ This workflow runs `appguardrail scan .` on pull requests, pushes, and manual dispatches." ) return 0 @@ -1460,10 +1460,10 @@ def cmd_hook(args): ) hook_scan_command = f"appguardrail scan{scan_flags} ." print( - f"This will run '{hook_scan_command}' before every commit and block commits if vulnerabilities are found." + f"šŸ›”ļø This will run '{hook_scan_command}' before every commit and block commits if vulnerabilities are found." ) if run_codegraph: - print("CodeGraph mode is enabled for this hook.") + print("🧭 CodeGraph mode is enabled for this hook.") return 0 @@ -1873,7 +1873,9 @@ def _run_bandit_scan(scan_path: Path): if process.returncode not in {0, 1}: detail = (process.stderr or process.stdout).strip().splitlines() - raise RuntimeError("Bandit scan failed" + (f": {detail[-1]}" if detail else ".")) + raise RuntimeError( + "Bandit scan failed" + (f": {detail[-1]}" if detail else ".") + ) try: report = json.loads(process.stdout or "{}") @@ -1972,9 +1974,7 @@ def _semgrep_findings(report: dict, base_path: Path): for item in report.get("results") or []: extra = item.get("extra") or {} start = item.get("start") or {} - path = _sanitize_terminal_output( - _trivy_target(item.get("path", ""), base_path) - ) + path = _sanitize_terminal_output(_trivy_target(item.get("path", ""), base_path)) check_id = item.get("check_id") or "semgrep" findings.append( _build_finding(