一个简洁优雅的词典翻译 macOS App。开箱即用,支持离线 OCR 识别,支持有道词典,🍎 苹果系统词典,🍎 苹果系统翻译,OpenAI,Gemini,DeepL,Google,Bing,腾讯,百度,阿里,小牛,彩云和火山翻译。A concise and elegant Dictionary and Translator macOS App for looking up words and translating text.
This report presents the forensic synthetic code analysis of tisfeng/Easydict, a Swift project with 14,390 GitHub stars. SynthScan v2.0 examined 162,726 lines of code across 1086 source files, recording 740 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 4.9 places this repository in the Likely human-written band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 740 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .swiftlint.yml | 1 | # | COMMENT |
| LOW | Easydict/App/AppDelegate.h | 1 | // | COMMENT |
| LOW | Easydict/App/entry.h | 1 | // | COMMENT |
| LOW | Easydict/App/AppDelegate+EZURLScheme.m | 1 | // | COMMENT |
| LOW | Easydict/App/Easydict-Bridging-Header.h | 1 | // | COMMENT |
| LOW | Easydict/App/Easydict-Bridging-Header.h | 21 | #import "EZOCRResult.h" | COMMENT |
| LOW | Easydict/App/entry.m | 1 | // | COMMENT |
| LOW | Easydict/Swift/Model/AppTriggerConfig.swift | 1 | // | COMMENT |
| LOW | Easydict/Swift/Model/DetectManager.swift | 1 | // | COMMENT |
| LOW | Easydict/Swift/View/TapHandlerView.swift | 1 | // | COMMENT |
| LOW | …nfigurationView/CodexCLIServiceConfigurationView.swift | 1 | // | COMMENT |
| LOW | …ingView/Tabs/ServiceConfigurationView/SliderCell.swift | 1 | // | COMMENT |
| LOW | …igurationView/ClaudeCodeServiceConfigurationView.swift | 1 | // | COMMENT |
| LOW | …t/View/SettingView/Tabs/Model/QueryRecordManager.swift | 1 | // | COMMENT |
| LOW | Easydict/Swift/View/Window/HostWindowManager.swift | 1 | // | COMMENT |
| LOW | …ature/Shortcut/Model/ShortcutConfictAlertMessage.swift | 1 | // | COMMENT |
| LOW | …Feature/Screenshot/Screenshot/NSScreen+Extention.swift | 1 | // | COMMENT |
| LOW | …t/Feature/Screenshot/Screencapture/Screencapture.swift | 1 | // | COMMENT |
| LOW | Easydict/Swift/Feature/Markdown/MarkdownLabel.swift | 1 | // | COMMENT |
| LOW | …dict/Swift/Feature/Markdown/MarkdownToggleButton.swift | 1 | // | COMMENT |
| LOW | Easydict/Swift/Feature/Markdown/MarkdownRenderer.swift | 1 | // | COMMENT |
| LOW | Easydict/Swift/Feature/HTTPServer/Vapor/configure.swift | 1 | // | COMMENT |
| LOW | …t/Swift/Feature/HTTPServer/Vapor/DictionaryEntry.swift | 1 | // | COMMENT |
| LOW | Easydict/Swift/Service/Apple/AppleLanguageMapper.swift | 61 | return language | COMMENT |
| LOW | …pple/AppleLanguageDetector/AppleLanguageDetector.swift | 1 | // | COMMENT |
| LOW | …pple/AppleLanguageDetector/AppleLanguageDetector.swift | 21 | /// - Hierarchical post-processing: Chinese/English verification → Mixed content → Short text corrections | COMMENT |
| LOW | …pple/AppleLanguageDetector/AppleLanguageDetector.swift | 41 | /// | COMMENT |
| LOW | …pple/AppleLanguageDetector/AppleLanguageDetector.swift | 81 | /// - Note: These probabilities may be an empty dictionary for certain edge cases | COMMENT |
| LOW | …pple/AppleLanguageDetector/AppleLanguageDetector.swift | 341 | if text.trimmingCharacters(in: .whitespacesAndNewlines).isNumeric { | COMMENT |
| LOW | …pple/AppleLanguageDetector/AppleLanguageDetector.swift | 401 | /// - Non-Latin scripts (Chinese, Japanese, Korean, Arabic, Cyrillic, etc.) | COMMENT |
| LOW | …pple/AppleLanguageDetector/AppleLanguageDetector.swift | 481 | /// Handle corrections for short text and obvious misdetections | COMMENT |
| LOW | …ift/Service/Apple/AppleOCREngine/OCRLineAnalyzer.swift | 1 | // | COMMENT |
| LOW | …ift/Service/Apple/AppleOCREngine/OCRLineAnalyzer.swift | 21 | // MARK: Lifecycle | COMMENT |
| LOW | …eOCREngine/VNRecognizedTextObservation+Extension.swift | 1 | // | COMMENT |
| LOW | …eOCREngine/VNRecognizedTextObservation+Extension.swift | 161 | COMMENT | |
| LOW | …wift/Service/Apple/AppleOCREngine/AppleOCREngine.swift | 1 | // | COMMENT |
| LOW | …wift/Service/Apple/AppleOCREngine/AppleOCREngine.swift | 21 | /// the initial image to delegating the final text processing to `OCRTextProcessor`. | COMMENT |
| LOW | …wift/Service/Apple/AppleOCREngine/AppleOCREngine.swift | 181 | COMMENT | |
| LOW | …wift/Service/Apple/AppleOCREngine/AppleOCREngine.swift | 421 | } | COMMENT |
| LOW | …t/Service/Apple/AppleOCREngine/OCRTextNormalizer.swift | 1 | // | COMMENT |
| LOW | …t/Service/Apple/AppleOCREngine/OCRTextNormalizer.swift | 41 | COMMENT | |
| LOW | …t/Service/Apple/AppleOCREngine/OCRTextNormalizer.swift | 101 | // Update metrics language when set | COMMENT |
| LOW | …t/Service/Apple/AppleOCREngine/OCRTextNormalizer.swift | 121 | /// - **Code patterns**: `array.map()` → `〈PROTECTED_4〉` | COMMENT |
| LOW | …t/Service/Apple/AppleOCREngine/OCRTextNormalizer.swift | 141 | /// "〈PROTECTED_1〉": "test@example.com", | COMMENT |
| LOW | …t/Service/Apple/AppleOCREngine/OCRTextNormalizer.swift | 241 | /// Input text: "访问 〈PROTECTED_0〉,邮箱 〈PROTECTED_1〉。价格 $〈PROTECTED_2〉,代码 〈PROTECTED_3〉。" | COMMENT |
| LOW | …t/Service/Apple/AppleOCREngine/OCRTextNormalizer.swift | 321 | /// | COMMENT |
| LOW | …t/Service/Apple/AppleOCREngine/OCRTextNormalizer.swift | 461 | result.replace(western, with: chinese) | COMMENT |
| LOW | …t/Service/Apple/AppleOCREngine/OCRTextNormalizer.swift | 481 | /// 6..<21 (test@example.com - email pattern) | COMMENT |
| LOW | …ft/Service/Apple/AppleOCREngine/OCRSectionMerger.swift | 1 | // | COMMENT |
| LOW | …ft/Service/Apple/AppleOCREngine/OCRSectionMerger.swift | 21 | class OCRSectionMerger { | COMMENT |
| LOW | …ft/Service/Apple/AppleOCREngine/OCRSectionMerger.swift | 181 | /// a new paragraph, or handle hyphenated words. | COMMENT |
| LOW | …ft/Service/Apple/AppleOCREngine/OCRSectionMerger.swift | 201 | paragraphObservations: paragraphObservations, | COMMENT |
| LOW | …wift/Service/Apple/AppleOCREngine/OCRDashHandler.swift | 1 | // | COMMENT |
| LOW | …wift/Service/Apple/AppleOCREngine/OCRDashHandler.swift | 21 | /// | COMMENT |
| LOW | …t/Service/Apple/AppleOCREngine/OCRPoetryDetector.swift | 181 | if let last = text.last, let scalar = last.unicodeScalars.first { | COMMENT |
| LOW | …Swift/Service/Apple/AppleOCREngine/OCRBandMerger.swift | 1 | // | COMMENT |
| LOW | …ft/Service/Apple/AppleOCREngine/OCRTextProcessor.swift | 1 | // | COMMENT |
| LOW | …ft/Service/Apple/AppleOCREngine/OCRTextProcessor.swift | 21 | /// 1. **Language Detection**: Determines the language of the recognized text. | COMMENT |
| LOW | …ft/Service/Apple/AppleOCREngine/OCRMergeAnalyzer.swift | 1 | // | COMMENT |
| LOW | …vice/Apple/AppleOCREngine/Model/OCRMergeStrategy.swift | 1 | // | COMMENT |
| 523 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ict/Swift/Service/Dictionary/MDict/MDictEntryScript.js | 101 | function changeWebViewBodyFontSize(fontSizeRatio) { | CODE |
| LOW | …ict/Swift/Service/Dictionary/MDict/MDictEntryScript.js | 105 | function updateWebViewContentStyle() { | CODE |
| LOW | …/Dictionary/DictionaryRendering/dictionary-result.html | 109 | function calculateSummaryTextWidth(summary) { | CODE |
| LOW | …/Dictionary/DictionaryRendering/dictionary-result.html | 115 | function updateDetailsSummaryLineWidth() { | CODE |
| LOW | …/Dictionary/DictionaryRendering/dictionary-result.html | 187 | function isNotCustomBackgroundColor(color) { | CODE |
| LOW | …/Dictionary/DictionaryRendering/dictionary-result.html | 255 | function updateAllIframeAppleSystemLabelBorderBottomColor(isDark) { | CODE |
| LOW⚡ | …kills/git-commit/tests/test_validate_commit_message.py | 101 | def test_accepts_english_and_bilingual_messages(self) -> None: | CODE |
| LOW⚡ | …kills/git-commit/tests/test_validate_commit_message.py | 105 | def test_accepts_multiline_body_crlf_and_trailing_newlines(self) -> None: | CODE |
| LOW⚡ | …kills/git-commit/tests/test_validate_commit_message.py | 112 | def test_rejects_two_or_four_body_paragraphs(self) -> None: | CODE |
| LOW⚡ | …kills/git-commit/tests/test_validate_commit_message.py | 122 | def test_reports_both_blocks_from_the_historical_bad_message(self) -> None: | CODE |
| LOW | …kills/git-commit/tests/test_validate_commit_message.py | 133 | def test_rejects_missing_duplicate_and_malformed_separators(self) -> None: | CODE |
| LOW | …kills/git-commit/tests/test_validate_commit_message.py | 144 | def test_rejects_incorrect_separator_spacing(self) -> None: | CODE |
| LOW | …kills/git-commit/tests/test_validate_commit_message.py | 154 | def test_rejects_malformed_or_overlong_subjects(self) -> None: | CODE |
| LOW | …kills/git-commit/tests/test_validate_commit_message.py | 172 | def test_requires_matching_bilingual_header_signatures(self) -> None: | CODE |
| LOW | …kills/git-commit/tests/test_validate_commit_message.py | 178 | def test_accepts_only_a_final_breaking_change_footer(self) -> None: | CODE |
| LOW | …kills/git-commit/tests/test_validate_commit_message.py | 204 | def test_rejects_footer_like_paragraphs_and_malformed_breaking_footer(self) -> None: | CODE |
| LOW | …kills/git-commit/tests/test_validate_commit_message.py | 226 | def test_requires_matching_breaking_footer_presence(self) -> None: | CODE |
| LOW | …kills/git-commit/tests/test_validate_commit_message.py | 238 | def test_commit_validation_matches_expected_file(self) -> None: | CODE |
| LOW | …kills/git-commit/tests/test_validate_commit_message.py | 289 | def test_file_failure_does_not_change_git_state(self) -> None: | CODE |
| LOW | …ts/skills/git-commit/tests/test_commit_change_stats.py | 100 | def test_mixed_commit_ignores_binary_files(self) -> None: | CODE |
| LOW | …ts/skills/git-commit/tests/test_commit_change_stats.py | 114 | def test_classifies_document_names_and_directories(self) -> None: | CODE |
| LOW | …ts/skills/git-commit/tests/test_commit_change_stats.py | 129 | def test_handles_rename_unicode_space_and_deletion(self) -> None: | CODE |
| LOW | …ts/skills/git-commit/tests/test_commit_change_stats.py | 152 | def test_aggregates_a_three_dot_range(self) -> None: | CODE |
| LOW | …ts/skills/git-commit/tests/test_commit_change_stats.py | 168 | def test_reports_zero_for_an_empty_commit(self) -> None: | CODE |
| LOW | …ts/skills/git-commit/tests/test_commit_change_stats.py | 177 | def test_rejects_an_invalid_revision(self) -> None: | CODE |
| LOW | …fireworks-tech-graph/scripts/generate-from-template.py | 569 | def render_blueprint_title_block( | CODE |
| LOW | …fireworks-tech-graph/scripts/generate-from-template.py | 1023 | def label_position_candidates(points: Sequence[Point]) -> List[Point]: | CODE |
| LOW | …fireworks-tech-graph/scripts/generate-from-template.py | 1048 | def choose_label_position_avoiding(points: Sequence[Point], text: str, occupied: Sequence[Bounds]) -> Point: | CODE |
| LOW | .agents/skills/submit-pr/tests/test_submit_pr.py | 59 | def test_local_template_still_renders_canonical_sections(self) -> None: | CODE |
| LOW | .agents/skills/submit-pr/tests/test_submit_pr.py | 71 | def test_english_template_is_canonicalized_and_preserves_requirements(self) -> None: | CODE |
| LOW | .agents/skills/submit-pr/tests/test_submit_pr.py | 99 | def test_missing_template_sections_use_fixed_four_section_contract(self) -> None: | CODE |
| LOW | .agents/skills/submit-pr/tests/test_submit_pr.py | 110 | def test_ui_change_requests_screenshots_without_stopping(self) -> None: | CODE |
| LOW | .agents/skills/submit-pr/tests/test_submit_pr.py | 115 | def test_issue_policy_forbid_rejects_auto_close_but_neutral_allows_it(self) -> None: | CODE |
| LOW⚡ | .agents/skills/submit-pr/tests/test_submit_pr.py | 128 | def test_extra_body_cannot_repeat_canonical_section(self) -> None: | CODE |
| LOW⚡ | .agents/skills/submit-pr/tests/test_submit_pr.py | 135 | def test_non_angular_title_is_rejected(self) -> None: | CODE |
| LOW⚡ | .agents/skills/submit-pr/tests/test_submit_pr.py | 142 | def test_template_discovery_requires_selection_when_multiple_exist(self) -> None: | CODE |
| LOW | .agents/skills/submit-pr/tests/test_submit_pr.py | 154 | def test_status_parser_preserves_staging_boundaries(self) -> None: | CODE |
| LOW | .agents/skills/submit-pr/tests/test_submit_pr.py | 396 | def test_plan_discovers_non_origin_default_branch_and_is_read_only(self) -> None: | CODE |
| LOW | .agents/skills/submit-pr/tests/test_submit_pr.py | 421 | def test_apply_pushes_same_repo_branch_and_reuses_pr(self) -> None: | CODE |
| LOW | .agents/skills/submit-pr/tests/test_submit_pr.py | 458 | def test_apply_discovers_fork_push_remote(self) -> None: | CODE |
| LOW | .agents/skills/submit-pr/tests/test_submit_pr.py | 487 | def test_apply_uses_fork_pushurl_on_base_remote(self) -> None: | CODE |
| LOW | .agents/skills/submit-pr/tests/test_submit_pr.py | 520 | def test_apply_rejects_dirty_worktree_before_remote_writes(self) -> None: | CODE |
| LOW | .agents/skills/submit-pr/tests/test_submit_pr.py | 536 | def test_forbid_policy_rejects_auto_closing_commit_message(self) -> None: | CODE |
| LOW | .agents/skills/submit-pr/tests/test_submit_pr.py | 564 | def test_draft_and_existing_body_are_verified(self) -> None: | CODE |
| LOW | .agents/skills/submit-pr/tests/test_submit_pr.py | 586 | def test_ambiguous_base_remotes_require_explicit_selection(self) -> None: | CODE |
| LOW | .agents/skills/submit-pr/scripts/submit_pr.py | 160 | def normalize_repository_from_remote(remote_url: str) -> str | None: | CODE |
| LOW | .agents/skills/submit-pr/scripts/submit_pr.py | 244 | def resolve_repository_context( | CODE |
| LOW | …/skills/release-easydict/tests/test_release_content.py | 43 | def test_capture_extracts_generated_pr_entries(self) -> None: | CODE |
| LOW | …/skills/release-easydict/tests/test_release_content.py | 50 | def test_render_only_replaces_human_pr_titles(self) -> None: | CODE |
| LOW | …/skills/release-easydict/tests/test_release_content.py | 65 | def test_render_rejects_missing_or_extra_pr_entries(self) -> None: | CODE |
| LOW | …/skills/release-easydict/tests/test_release_content.py | 75 | def test_render_rejects_non_english_content(self) -> None: | CODE |
| LOW | …/skills/release-easydict/tests/test_release_content.py | 86 | def test_render_rejects_highlight_outside_release(self) -> None: | CODE |
| LOW | …/skills/release-easydict/tests/test_release_content.py | 96 | def test_render_rejects_title_with_mismatched_emoji(self) -> None: | CODE |
| LOW | …/skills/release-easydict/tests/test_release_content.py | 108 | def test_render_rejects_tampered_capture(self) -> None: | CODE |
| LOW | …s/skills/release-easydict/tests/test_release_issues.py | 130 | def test_extracts_existing_weak_reference_forms(self) -> None: | CODE |
| LOW | …s/skills/release-easydict/tests/test_release_issues.py | 147 | def test_linked_issue_section_marks_supported_reference_forms(self) -> None: | STRING |
| LOW | …s/skills/release-easydict/tests/test_release_issues.py | 189 | def test_linked_issue_template_placeholder_is_not_a_reference(self) -> None: | STRING |
| LOW | …s/skills/release-easydict/tests/test_release_issues.py | 205 | def test_repository_pr_template_contains_no_issue_candidate(self) -> None: | STRING |
| LOW | …s/skills/release-easydict/tests/test_release_issues.py | 217 | def test_linked_issue_formats_share_one_candidate(self) -> None: | STRING |
| LOW | …s/skills/release-easydict/tests/test_release_issues.py | 252 | def test_build_candidates_aggregates_prs_and_skips_pr_entities(self) -> None: | STRING |
| 29 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …ft/Service/Apple/AppleOCREngine/OCRTextProcessor.swift | 82 | // Step 1: Detect and process bands | COMMENT |
| LOW⚡ | …ft/Service/Apple/AppleOCREngine/OCRTextProcessor.swift | 89 | // Step 2: Process all bands and sections | COMMENT |
| LOW⚡ | …ft/Service/Apple/AppleOCREngine/OCRTextProcessor.swift | 97 | // Step 3: Store results and calculate confidence | COMMENT |
| LOW⚡ | …ft/Service/Apple/AppleOCREngine/OCRTextProcessor.swift | 104 | // Step 4: Merge bands and finalize result | COMMENT |
| LOW⚡ | …ft/Service/Apple/AppleOCREngine/OCRTextProcessor.swift | 332 | // Step 1: Group observations into horizontal bands | COMMENT |
| LOW⚡ | …ft/Service/Apple/AppleOCREngine/OCRTextProcessor.swift | 336 | // Step 2: Analyze each band group to determine its column structure | COMMENT |
| LOW⚡ | …ft/Service/Apple/AppleOCREngine/OCRTextProcessor.swift | 345 | // Step 3: Sort each section's observations for reading order | COMMENT |
| LOW | Easydict/Swift/Service/Volcano/VolcanoSigning.swift | 42 | // Step 1: Create a canonical request | COMMENT |
| LOW | Easydict/Swift/Service/Volcano/VolcanoSigning.swift | 54 | // Step 2: Create string to sign | COMMENT |
| LOW⚡ | Easydict/Swift/Service/Volcano/VolcanoSigning.swift | 66 | // Step 3: Calculate the signature | COMMENT |
| LOW⚡ | Easydict/Swift/Service/Volcano/VolcanoSigning.swift | 73 | // Step 4: Add the signature to the request | COMMENT |
| LOW⚡ | …ict/Swift/Utility/ChineseGenre/MetadataExtractor.swift | 50 | // Step 1: Extract formatted text with markers | COMMENT |
| LOW⚡ | …ict/Swift/Utility/ChineseGenre/MetadataExtractor.swift | 53 | // Step 2: Extract clean content | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …ft/Service/Apple/AppleOCREngine/OCRTextProcessor.swift | 82 | // Step 1: Detect and process bands | COMMENT |
| LOW⚡ | …ft/Service/Apple/AppleOCREngine/OCRTextProcessor.swift | 89 | // Step 2: Process all bands and sections | COMMENT |
| LOW⚡ | …ft/Service/Apple/AppleOCREngine/OCRTextProcessor.swift | 97 | // Step 3: Store results and calculate confidence | COMMENT |
| LOW⚡ | …ft/Service/Apple/AppleOCREngine/OCRTextProcessor.swift | 104 | // Step 4: Merge bands and finalize result | COMMENT |
| LOW⚡ | …ft/Service/Apple/AppleOCREngine/OCRTextProcessor.swift | 332 | // Step 1: Group observations into horizontal bands | COMMENT |
| LOW⚡ | …ft/Service/Apple/AppleOCREngine/OCRTextProcessor.swift | 336 | // Step 2: Analyze each band group to determine its column structure | COMMENT |
| LOW⚡ | …ft/Service/Apple/AppleOCREngine/OCRTextProcessor.swift | 345 | // Step 3: Sort each section's observations for reading order | COMMENT |
| LOW | Easydict/Swift/Service/Volcano/VolcanoSigning.swift | 42 | // Step 1: Create a canonical request | COMMENT |
| LOW | Easydict/Swift/Service/Volcano/VolcanoSigning.swift | 54 | // Step 2: Create string to sign | COMMENT |
| LOW⚡ | Easydict/Swift/Service/Volcano/VolcanoSigning.swift | 66 | // Step 3: Calculate the signature | COMMENT |
| LOW⚡ | Easydict/Swift/Service/Volcano/VolcanoSigning.swift | 73 | // Step 4: Add the signature to the request | COMMENT |
| LOW⚡ | …ict/Swift/Utility/ChineseGenre/MetadataExtractor.swift | 50 | // Step 1: Extract formatted text with markers | COMMENT |
| LOW⚡ | …ict/Swift/Utility/ChineseGenre/MetadataExtractor.swift | 53 | // Step 2: Extract clean content | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …kills/git-commit/tests/test_validate_commit_message.py | 4 | CODE | |
| LOW | …ts/skills/git-commit/tests/test_commit_change_stats.py | 4 | CODE | |
| LOW | …gents/skills/git-commit/scripts/commit-change-stats.py | 4 | CODE | |
| LOW | …s/skills/git-commit/scripts/validate-commit-message.py | 4 | CODE | |
| LOW | …fireworks-tech-graph/scripts/generate-from-template.py | 13 | CODE | |
| LOW | …fireworks-tech-graph/scripts/generate-from-template.py | 17 | CODE | |
| LOW | …fireworks-tech-graph/scripts/generate-from-template.py | 22 | CODE | |
| LOW | .agents/skills/submit-pr/tests/test_submit_pr.py | 1 | CODE | |
| LOW | .agents/skills/submit-pr/scripts/submit_pr.py | 4 | CODE | |
| LOW | …/skills/release-easydict/tests/test_release_content.py | 1 | CODE | |
| LOW | …s/skills/release-easydict/tests/test_release_issues.py | 1 | CODE | |
| LOW | …ents/skills/release-easydict/scripts/release_issues.py | 4 | CODE | |
| LOW | …nts/skills/release-easydict/scripts/release_content.py | 4 | CODE | |
| LOW | scripts/release/release-appcast.py | 9 | CODE | |
| LOW | scripts/release/tests/test_release_appcast.py | 4 | CODE | |
| LOW | scripts/star-history/render_chart.py | 4 | CODE | |
| LOW | scripts/star-history/update_history.py | 4 | CODE | |
| LOW | scripts/star-history/test_history.py | 4 | CODE | |
| LOW | scripts/star-history/history.py | 4 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | …fireworks-tech-graph/scripts/generate-from-template.py | 1542 | print(f"Error: {exc}") | CODE |
| MEDIUM⚡ | …fireworks-tech-graph/scripts/generate-from-template.py | 1545 | print(f"Error: Invalid JSON: {exc}") | CODE |
| MEDIUM⚡ | …fireworks-tech-graph/scripts/generate-from-template.py | 1548 | print(f"Error: {exc}") | CODE |
| LOW⚡ | …fireworks-tech-graph/scripts/generate-from-template.py | 1550 | except Exception as exc: # pragma: no cover | CODE |
| LOW | …ents/skills/release-easydict/scripts/release_issues.py | 135 | except Exception: | CODE |
| LOW | …nts/skills/release-easydict/scripts/release_content.py | 83 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .agents/skills/fireworks-tech-graph/SKILL.md | 303 | | Async / event | gray `#6b7280` | 1.5px | `4,2` | Non-blocking, event-driven | | CODE |
| MEDIUM | .agents/skills/fireworks-tech-graph/references/icons.md | 161 | ### AI Memory & RAG Products | COMMENT |
| MEDIUM | …s/fireworks-tech-graph/references/style-1-flat-icon.md | 84 | <text x="36" y="28" fill="#6b7280" font-size="12">RAG flow</text> | CODE |
| MEDIUM | Pods/ReactiveObjC/README.md | 250 | ### Handling asynchronous or event-driven data sources | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | Pods/Masonry/README.md | 223 | make.left.right.and.bottom.equalTo(superview); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | scripts/star-history/render_chart.py | 255 | const xSpan = maxX - minX || 1; | CODE |
| HIGH | scripts/star-history/render_chart.py | 279 | history.replaceState(null, "", `#${{repo}}&${{mode}}`); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ler/Window/BaseQueryWindow/EZBaseQueryViewController.m | 1486 | NSString *placeholderText = NSLocalizedString(@"placeholder", nil); | CODE |
| LOW | Easydict/objc/ViewController/View/TextView/EZTextView.m | 84 | _placeholderText = @"placeholder"; | CODE |
| LOW | EasydictTests/Utility/Regex/RegexTests.swift | 78 | #expect("user@example.com".contains(regex)) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ct/Swift/Utility/Extensions/String/String+Detect.swift | 20 | /// This approach is robust against mixed content with a few Traditional characters. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …skills/fireworks-tech-graph/scripts/test-all-styles.sh | 46 | # Check if style reference exists | COMMENT |
| LOW | .github/workflows/star_fork_notification.yml | 179 | # Output result | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …fireworks-tech-graph/scripts/generate-from-template.py | 1111 | CODE | |
| LOW | …ents/skills/release-easydict/scripts/release_issues.py | 825 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/release/release-appcast.py | 95 | def set_release_notes_link(args: argparse.Namespace) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/release/tests/test_release_redraft.py | 27 | CODE |