SimpleX - the first messaging network operating without user identifiers of any kind - 100% private by design! iOS, Android and desktop apps 📱!
This report summarizes scanner evidence for simplex-chat/simplex-chat, a Haskell project with 19,617 GitHub stars. SynthScan examined 428,180 lines of code across 1572 source files, recording 477 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 2.1 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 273 finding(s).
Are imports declared and package/API names verified? 118 finding(s).
Are wrappers, guards, and repeated structures necessary? 226 finding(s).
Which changes need focused human review? 477 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 477 distinct pattern matches across 18 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | plans/2026-05-11-fix-call-bind-port.md | 17 | at org.nanohttpd.protocols.http.ServerRunnable.run(ServerRunnable.java:63) | CODE |
| CRITICAL | …6-07-23-fix-updater-download-deleted-by-chat-switch.md | 16 | at chat.simplex.common.views.helpers.UtilsKt.createTmpFileAndDelete(Utils.kt:401) | CODE |
| CRITICAL | …6-07-23-fix-updater-download-deleted-by-chat-switch.md | 17 | at chat.simplex.common.views.helpers.AppUpdaterKt.downloadAsset(AppUpdater.kt:323) | CODE |
| CRITICAL | plans/2026-06-29-desktop-tmpdir-missing-call-sound.md | 15 | at chat.simplex.common.platform.SoundPlayer.start(RecAndPlay.desktop.kt:276) | CODE |
| CRITICAL | plans/2026-06-29-desktop-tmpdir-missing-call-sound.md | 18 | at androidx.compose.ui.scene.BaseComposeScene.render(BaseComposeScene.skiko.kt:171) | CODE |
| CRITICAL | plans/2026-06-23-wide-image-crash.md | 10 | at androidx.compose.foundation.layout.AspectRatioNode.measure(AspectRatio.kt:117) | CODE |
| CRITICAL | …n/kotlin/chat/simplex/common/views/chat/ComposeView.kt | 1288 | && !chat.chatInfo.groupInfo.fullGroupPreferences.files.on(chat.chatInfo.groupInfo.membership) | CODE |
| CRITICAL | …simplex/common/views/chat/group/GroupMemberInfoView.kt | 352 | chat.simplex.common.platform.chatModel.chatsContext.removeMemberItems(rhId, removedMember, byMember = groupI | CODE |
| CRITICAL | …sktopMain/kotlin/chat/simplex/common/SingleInstance.kt | 101 | val title = chat.simplex.common.views.helpers.generalGetString(chat.simplex.res.MR.strings.another_instance_title) | CODE |
| CRITICAL | …sktopMain/kotlin/chat/simplex/common/SingleInstance.kt | 102 | val message = chat.simplex.common.views.helpers.generalGetString(chat.simplex.res.MR.strings.another_instance_not_resp | CODE |
| CRITICAL⚡ | …tlin/chat/simplex/common/platform/AppCommon.desktop.kt | 23 | override fun notifyCallInvitation(invitation: RcvCallInvitation): Boolean = chat.simplex.common.model.NtfManager.not | CODE |
| CRITICAL⚡ | …tlin/chat/simplex/common/platform/AppCommon.desktop.kt | 24 | override fun hasNotificationsForChat(chatId: String): Boolean = chat.simplex.common.model.NtfManager.hasNotification | CODE |
| CRITICAL⚡ | …tlin/chat/simplex/common/platform/AppCommon.desktop.kt | 25 | override fun cancelNotificationsForChat(chatId: String) = chat.simplex.common.model.NtfManager.cancelNotificationsFo | CODE |
| CRITICAL⚡ | …tlin/chat/simplex/common/platform/AppCommon.desktop.kt | 26 | override fun cancelNotificationsForUser(userId: Long) = chat.simplex.common.model.NtfManager.cancelNotificationsForU | CODE |
| CRITICAL⚡ | …tlin/chat/simplex/common/platform/AppCommon.desktop.kt | 27 | override fun displayNotification(user: UserLike, chatId: String, displayName: String, msgText: String, image: String | CODE |
| CRITICAL⚡ | …tlin/chat/simplex/common/platform/AppCommon.desktop.kt | 30 | override fun cancelAllNotifications() = chat.simplex.common.model.NtfManager.cancelAllNotifications() | CODE |
| CRITICAL⚡ | …tlin/chat/simplex/common/platform/AppCommon.desktop.kt | 31 | override fun showMessage(title: String, text: String) = chat.simplex.common.model.NtfManager.showMessage(title, text | CODE |
| CRITICAL | …tlin/chat/simplex/common/platform/AppCommon.desktop.kt | 43 | // uk.co.caprica.vlcj.binding.LibC.INSTANCE.setenv("VLC_PLUGIN_PATH", path, 1) | COMMENT |
| CRITICAL | …tlin/chat/simplex/common/platform/Resources.desktop.kt | 25 | androidx.compose.ui.text.platform.Font("MR/fonts/$res.ttf", weight, style) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | plans/2026-05-07-simplex-chat-python-implementation.md | 2255 | # ========================= | COMMENT |
| MEDIUM | plans/2026-05-07-simplex-chat-python-implementation.md | 2257 | # ========================= | COMMENT |
| MEDIUM⚡ | scripts/db/pg2sqlite.py | 303 | # ---------------------- | COMMENT |
| MEDIUM⚡ | scripts/db/pg2sqlite.py | 305 | # ---------------------- | COMMENT |
| MEDIUM⚡ | scripts/db/pg2sqlite.py | 546 | # ---------------------- | COMMENT |
| MEDIUM⚡ | scripts/db/pg2sqlite.py | 548 | # ---------------------- | COMMENT |
| MEDIUM | scripts/db/pg2sqlite.py | 25 | # ---------------------- | COMMENT |
| MEDIUM | scripts/db/pg2sqlite.py | 27 | # ---------------------- | COMMENT |
| MEDIUM | scripts/db/pg2sqlite.py | 214 | # ---------------------- | COMMENT |
| MEDIUM | scripts/db/pg2sqlite.py | 216 | # ---------------------- | COMMENT |
| MEDIUM | scripts/db/pg2sqlite.py | 263 | # ---------------------- | COMMENT |
| MEDIUM | scripts/db/pg2sqlite.py | 265 | # ---------------------- | COMMENT |
| MEDIUM | scripts/db/pg2sqlite.py | 836 | # ---------------------- | COMMENT |
| MEDIUM | scripts/db/pg2sqlite.py | 838 | # ---------------------- | COMMENT |
| MEDIUM⚡ | …s/simplex-chat-python/tests/test_client_and_waiters.py | 87 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …s/simplex-chat-python/tests/test_client_and_waiters.py | 89 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …s/simplex-chat-python/tests/test_client_and_waiters.py | 117 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …s/simplex-chat-python/tests/test_client_and_waiters.py | 119 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …s/simplex-chat-python/tests/test_client_and_waiters.py | 295 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …s/simplex-chat-python/tests/test_client_and_waiters.py | 297 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …s/simplex-chat-python/tests/test_client_and_waiters.py | 578 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …s/simplex-chat-python/tests/test_client_and_waiters.py | 580 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …s/simplex-chat-python/tests/test_client_and_waiters.py | 602 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …s/simplex-chat-python/tests/test_client_and_waiters.py | 604 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/workflows/build.yml | 47 | # ============================= | COMMENT |
| MEDIUM | .github/workflows/build.yml | 49 | # ============================= | COMMENT |
| MEDIUM | .github/workflows/build.yml | 67 | # ============================= | COMMENT |
| MEDIUM | .github/workflows/build.yml | 69 | # ============================= | COMMENT |
| MEDIUM | .github/workflows/build.yml | 105 | # ========================= | COMMENT |
| MEDIUM | .github/workflows/build.yml | 107 | # ========================= | COMMENT |
| MEDIUM | .github/workflows/build.yml | 384 | # ================================= | COMMENT |
| MEDIUM | .github/workflows/build.yml | 386 | # ================================= | COMMENT |
| MEDIUM | .github/workflows/build.yml | 478 | # ========================= | COMMENT |
| MEDIUM | .github/workflows/build.yml | 480 | # ========================= | COMMENT |
| MEDIUM | .github/workflows/build.yml | 595 | # ========================= | COMMENT |
| MEDIUM | .github/workflows/build.yml | 597 | # ========================= | COMMENT |
| MEDIUM | .github/workflows/build.yml | 704 | # ========================= | COMMENT |
| MEDIUM | .github/workflows/build.yml | 706 | # ========================= | COMMENT |
| MEDIUM⚡ | .github/workflows/build.yml | 767 | # -------------- | COMMENT |
| MEDIUM⚡ | .github/workflows/build.yml | 774 | # ------------- | COMMENT |
| MEDIUM⚡ | .github/workflows/build.yml | 781 | # --------------- | COMMENT |
| MEDIUM | .github/workflows/build.yml | 793 | # ------------------------------------------------- | COMMENT |
| MEDIUM | apps/simplex-support-bot/bot.test.ts | 625 | // ═══════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | apps/simplex-support-bot/bot.test.ts | 627 | // ═══════════════════════════════════════════════════════════ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | plans/2026-05-07-simplex-chat-python-implementation.md | 1461 | def test_no_filters_matches_all(): | CODE |
| LOW⚡ | plans/2026-05-07-simplex-chat-python-implementation.md | 1466 | def test_content_type_singular(): | CODE |
| LOW⚡ | plans/2026-05-07-simplex-chat-python-implementation.md | 1471 | def test_content_type_tuple_or(): | CODE |
| LOW⚡ | plans/2026-05-07-simplex-chat-python-implementation.md | 2048 | def test_types_module_imports(): | CODE |
| LOW⚡ | plans/2026-05-07-simplex-chat-python-implementation.md | 2053 | def test_chat_type_is_literal_enum(): | CODE |
| LOW⚡ | plans/2026-05-07-simplex-chat-python-implementation.md | 2063 | def test_known_command_has_cmd_string(): | CODE |
| LOW⚡ | plans/2026-05-07-simplex-chat-python-implementation.md | 2068 | def test_chat_response_tag_alias_present(): | CODE |
| LOW | plans/2026-05-07-simplex-chat-python-implementation.md | 485 | def test_platform_unsupported(_): | CODE |
| LOW | plans/2026-05-07-simplex-chat-python-implementation.md | 489 | def test_libname_per_platform(): | CODE |
| LOW | plans/2026-05-07-simplex-chat-python-implementation.md | 631 | def test_resolve_downloads_when_missing(tmp_path, monkeypatch): | CODE |
| LOW | plans/2026-05-07-simplex-chat-python-implementation.md | 649 | def test_resolve_uses_cache_on_second_call(tmp_path, monkeypatch): | CODE |
| LOW | plans/2026-05-07-simplex-chat-python-implementation.md | 660 | def test_postgres_on_macos_rejected(monkeypatch): | CODE |
| LOW | plans/2026-05-07-simplex-chat-python-implementation.md | 1723 | def test_decorator_registers_handler(): | CODE |
| LOW | plans/2026-05-07-simplex-chat-python-implementation.md | 1876 | async def _invoke_command_with_middleware( | CODE |
| LOW | plans/2026-05-07-simplex-chat-python-implementation.md | 2157 | async def test_chat_api_init_and_start(stub_libs_dir, monkeypatch): | CODE |
| LOW | website/src/js/docs.js | 105 | function scrollToHashWithTopOffset() { | CODE |
| LOW | website/src/js/script.js | 205 | function updatePointerEventsInPrivateSwiperCards() { | CODE |
| LOW | website/src/call/call.js | 461 | function supportsInsertableStreams(useWorker) { | CODE |
| LOW⚡ | scripts/db/pg2sqlite.py | 283 | def sqlite_table_has_autoincrement(sqlite_cursor, table_name: str) -> bool: | CODE |
| LOW⚡ | scripts/db/pg2sqlite.py | 293 | def sqlite_sequence_table_exists(sqlite_cursor) -> bool: | CODE |
| LOW⚡ | scripts/db/pg2sqlite.py | 308 | def build_select_for_sqlite_columns( | CODE |
| LOW⚡ | scripts/db/pg2sqlite.py | 496 | def try_update_sqlite_sequence( | CODE |
| LOW | scripts/db/pg2sqlite.py | 335 | def validate_column_compatibility( | CODE |
| LOW | scripts/db/pg2sqlite.py | 388 | def fetch_and_validate_row_batches( | CODE |
| LOW | scripts/db/pg2sqlite.py | 410 | def _get_postgres_sequence_info( | CODE |
| LOW | packages/simplex-chat-python/tests/test_native_url.py | 27 | def test_platform_unsupported(_): | CODE |
| LOW | packages/simplex-chat-python/tests/test_native_url.py | 32 | def test_libname_per_platform(): | CODE |
| LOW⚡ | …s/simplex-chat-python/tests/test_client_and_waiters.py | 92 | def test_client_has_no_address_or_bot_profile_attributes(): | CODE |
| LOW⚡ | …s/simplex-chat-python/tests/test_client_and_waiters.py | 104 | def test_bot_is_a_client_subclass(): | CODE |
| LOW⚡ | …s/simplex-chat-python/tests/test_client_and_waiters.py | 109 | def test_client_exposes_messaging_methods(): | CODE |
| LOW⚡ | …s/simplex-chat-python/tests/test_client_and_waiters.py | 122 | def test_send_and_wait_requires_serving(): | CODE |
| LOW⚡ | …s/simplex-chat-python/tests/test_client_and_waiters.py | 132 | def test_send_and_wait_resolves_on_matching_reply(): | CODE |
| LOW⚡ | …s/simplex-chat-python/tests/test_client_and_waiters.py | 300 | def test_connect_to_returns_known_contact_without_handshake(): | CODE |
| LOW⚡ | …s/simplex-chat-python/tests/test_client_and_waiters.py | 583 | def test_contact_already_exists_is_chat_command_error_subclass(): | CODE |
| LOW⚡ | …s/simplex-chat-python/tests/test_client_and_waiters.py | 595 | def test_chat_command_error_response_type_property(): | CODE |
| LOW⚡ | …s/simplex-chat-python/tests/test_client_and_waiters.py | 607 | def test_events_raises_if_already_serving(): | CODE |
| LOW | …s/simplex-chat-python/tests/test_client_and_waiters.py | 164 | def test_send_and_wait_ignores_other_contacts(): | CODE |
| LOW | …s/simplex-chat-python/tests/test_client_and_waiters.py | 188 | def test_send_and_wait_fifo_within_contact(): | CODE |
| LOW | …s/simplex-chat-python/tests/test_client_and_waiters.py | 213 | def test_send_and_wait_cleans_up_state_on_timeout(): | CODE |
| LOW | …s/simplex-chat-python/tests/test_client_and_waiters.py | 226 | def test_dispatch_skips_cancelled_waiters_and_falls_through_to_handlers(): | CODE |
| LOW | …s/simplex-chat-python/tests/test_client_and_waiters.py | 264 | def test_send_and_wait_parallel_different_contacts(): | CODE |
| LOW | …s/simplex-chat-python/tests/test_client_and_waiters.py | 329 | def test_connect_to_tolerates_contact_already_exists(): | CODE |
| LOW | …s/simplex-chat-python/tests/test_client_and_waiters.py | 349 | def test_connect_to_requires_serving(): | CODE |
| LOW | …s/simplex-chat-python/tests/test_client_and_waiters.py | 356 | def test_connect_to_timeout_cleans_up_waiter(): | CODE |
| LOW | …s/simplex-chat-python/tests/test_client_and_waiters.py | 368 | def test_connect_to_rejects_non_positive_timeout(): | CODE |
| LOW | …s/simplex-chat-python/tests/test_client_and_waiters.py | 381 | def test_send_and_wait_rejects_non_positive_timeout(): | CODE |
| LOW | …s/simplex-chat-python/tests/test_client_and_waiters.py | 396 | def test_stop_before_serve_forever_is_preserved(monkeypatch): | CODE |
| LOW | …s/simplex-chat-python/tests/test_client_and_waiters.py | 445 | def test_aexit_nulls_api_even_if_close_raises(monkeypatch): | CODE |
| LOW | …s/simplex-chat-python/tests/test_client_and_waiters.py | 501 | def test_aenter_rolls_back_partial_init_on_post_start_failure(monkeypatch): | CODE |
| LOW | …s/simplex-chat-python/tests/test_client_and_waiters.py | 557 | def test_lookup_known_contact_propagates_non_command_errors(): | CODE |
| LOW⚡ | …ges/simplex-chat-python/tests/test_bot_registration.py | 43 | def test_api_property_raises_before_init(): | CODE |
| LOW⚡ | …ges/simplex-chat-python/tests/test_bot_registration.py | 49 | def test_command_keyword_tuple(): | CODE |
| LOW⚡ | …ges/simplex-chat-python/tests/test_bot_registration.py | 59 | def test_bot_profile_to_wire_default(): | CODE |
| LOW⚡ | …ges/simplex-chat-python/tests/test_bot_registration.py | 148 | def test_client_profile_to_wire_has_no_bot_extras(): | CODE |
| LOW⚡ | …ges/simplex-chat-python/tests/test_bot_registration.py | 158 | def test_bot_profile_alias_is_profile(): | CODE |
| LOW⚡ | …ges/simplex-chat-python/tests/test_bot_registration.py | 164 | def test_dispatch_message_first_match_wins(): | CODE |
| LOW | …ges/simplex-chat-python/tests/test_bot_registration.py | 11 | def test_decorator_registers_message_handler(): | CODE |
| LOW | …ges/simplex-chat-python/tests/test_bot_registration.py | 21 | def test_decorator_registers_command_handler(): | CODE |
| LOW | …ges/simplex-chat-python/tests/test_bot_registration.py | 32 | def test_decorator_registers_event_handler(): | CODE |
| LOW | …ges/simplex-chat-python/tests/test_bot_registration.py | 71 | def test_bot_profile_to_wire_allow_files(): | CODE |
| 79 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | plans/website-file-page-implementation.md | 81 | ### Step 1: Add npm dependency | COMMENT |
| LOW | plans/website-file-page-implementation.md | 91 | ### Step 2: Copy dist-web files in web.sh | COMMENT |
| LOW | plans/website-file-page-implementation.md | 109 | ### Step 3: Create 11ty page — `website/src/file.html` | COMMENT |
| LOW | plans/website-file-page-implementation.md | 244 | ### Step 4: Create protocol overlay data + content | COMMENT |
| LOW | plans/website-file-page-implementation.md | 298 | ### Step 5: Add navbar link | COMMENT |
| LOW | plans/website-file-page-implementation.md | 317 | ### Step 6: Add translation keys | COMMENT |
| LOW | plans/website-file-page-implementation.md | 379 | ### Step 7: Update .eleventy.js | COMMENT |
| LOW | plans/website-file-page-implementation.md | 393 | ### Step 8: Gitignore | COMMENT |
| LOW | plans/website-file-page-implementation.md | 400 | ### Step 9: Fix script.js null guard | COMMENT |
| LOW | plans/2026-03-13-message-keys-forwarding.md | 184 | ### Step 1: Foundation — Types + Encoding + Storage Schema ✅ | COMMENT |
| LOW | plans/2026-03-13-message-keys-forwarding.md | 195 | ### Step 2: Sign on Send + Verify with Binding ✅ | COMMENT |
| LOW | plans/2026-03-13-message-keys-forwarding.md | 204 | ### Step 3: Store, Forward, Verify — End-to-End | COMMENT |
| LOW⚡ | plans/2026-04-11-channel-invitations-directory.md | 151 | ### Step 1: LinkOwnerSig type | COMMENT |
| LOW⚡ | plans/2026-04-11-channel-invitations-directory.md | 157 | ### Step 2: CBDirect | COMMENT |
| LOW⚡ | plans/2026-04-11-channel-invitations-directory.md | 161 | ### Step 3: Share chat message content API | COMMENT |
| LOW | plans/2026-04-11-channel-invitations-directory.md | 187 | ### Step 4: connectPlan verification | COMMENT |
| LOW⚡ | plans/2026-04-11-channel-invitations-directory.md | 213 | ### Step 5: Forwarding — drop ownerSig | COMMENT |
| LOW⚡ | plans/2026-04-11-channel-invitations-directory.md | 219 | ### Step 6: Permission check | COMMENT |
| LOW⚡ | plans/2026-04-11-channel-invitations-directory.md | 225 | ### Step 7: CLI view | COMMENT |
| LOW⚡ | plans/2026-04-11-channel-invitations-directory.md | 229 | ### Step 8: groupLinkData owners preservation | COMMENT |
| LOW⚡ | plans/2026-04-11-channel-invitations-directory.md | 235 | ### Step 9: Tests | COMMENT |
| LOW⚡ | plans/2026-04-11-channel-invitations-directory.md | 245 | ### Step 10: Directory bot | COMMENT |
| LOW | apps/ios/product/views/onboarding.md | 18 | ### Step 1: Welcome / SimpleX Info (`SimpleXInfo`) | COMMENT |
| LOW | apps/ios/product/views/onboarding.md | 34 | ### Step 2: Create Profile (`CreateFirstProfile`) | COMMENT |
| LOW | apps/ios/product/views/onboarding.md | 46 | ### Step 3: Server Operator Conditions (`OnboardingConditionsView`) | COMMENT |
| LOW | apps/ios/product/views/onboarding.md | 61 | ### Step 4: Set Notification Mode (`SetNotificationsMode`) | COMMENT |
| LOW | apps/multiplatform/product/views/onboarding.md | 33 | ### Step 1: Welcome / SimpleX Info (`SimpleXInfo`) | COMMENT |
| LOW | apps/multiplatform/product/views/onboarding.md | 49 | ### Step 2: Create Profile | COMMENT |
| LOW | apps/multiplatform/product/views/onboarding.md | 81 | ### Step 3: Choose Server Operators | COMMENT |
| LOW | apps/multiplatform/product/views/onboarding.md | 104 | ### Step 4: Set Notifications Mode (Android only) | COMMENT |
| LOW⚡ | apps/simplex-support-bot/src/index.ts | 162 | // Step 3: Read state file | COMMENT |
| LOW⚡ | apps/simplex-support-bot/src/index.ts | 163 | // Step 4: Enable auto-accept DM contacts | COMMENT |
| LOW⚡ | apps/simplex-support-bot/src/index.ts | 167 | // Step 5: Resolve Grok contact by ID. Avoid apiListContacts — it loads | COMMENT |
| LOW⚡ | apps/simplex-support-bot/src/index.ts | 264 | // Step 7: Ensure direct messages enabled (done via groupPreferences above) | COMMENT |
| LOW⚡ | apps/simplex-support-bot/src/index.ts | 266 | // Step 8: Create team group invite link (best-effort — bot works without it) | COMMENT |
| LOW | apps/simplex-support-bot/src/index.ts | 90 | // Step 1: Init main bot via bot.run() | COMMENT |
| LOW | apps/simplex-support-bot/src/index.ts | 120 | // Step 2: Resolve Grok profile from same ChatApi instance. | COMMENT |
| LOW | apps/simplex-support-bot/src/index.ts | 212 | // Step 6: Resolve team group by ID. Avoid apiListGroups — it loads every | COMMENT |
| LOW | apps/simplex-support-bot/src/index.ts | 303 | // Step 9: Validate team members (lookup by ID, one round-trip per member) | COMMENT |
| LOW | apps/simplex-support-bot/src/index.ts | 349 | // Step 10: Register Grok event handlers (filtered by profile in handler) | COMMENT |
| LOW | apps/simplex-support-bot/src/index.ts | 361 | // Step 11: Graceful shutdown | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | website/web.sh | 81 | # for lang in "${langs[@]}"; do | COMMENT |
| LOW | website/src/file.html | 21 | #app .card { background: transparent; box-shadow: none; padding: 0; border-radius: 0; } | COMMENT |
| LOW | website/src/css/index.css | 381 | #install_chat h1, | COMMENT |
| LOW | website/src/js/animation2.js | 1 | window.addEventListener("load", function () { | COMMENT |
| LOW | website/src/js/animation.js | 41 | } | COMMENT |
| LOW | website/src/call/ui.js | 21 | // if (resp?.capabilities?.encryption) { | COMMENT |
| LOW | website/src/call/ui.js | 61 | // return async () => { | COMMENT |
| LOW | website/src/call/call.js | 361 | catch (e) { | COMMENT |
| LOW | docs/SERVER.md | 661 | ```ini | COMMENT |
| LOW | docs/SERVER.md | 681 | # operator_country: ISO-3166 2-letter code | COMMENT |
| LOW | docs/SERVER.md | 721 | COMMENT | |
| LOW | docs/SERVER.md | 741 | # control_port: 5224 | COMMENT |
| LOW | docs/SERVER.md | 761 | # Limit number of threads a client can spawn to process proxy commands in parallel. | COMMENT |
| LOW | docs/rfcs/2025-08-09-chat-widgets.md | 101 | # or maybe be as a single object value. | COMMENT |
| LOW | docs/rfcs/2023-10-20-group-integrity.md | 121 | _ -> Nothing -- not supported in groups | COMMENT |
| LOW | docs/rfcs/2023-10-20-group-integrity.md | 141 | // XGrpMemNew -> ... | COMMENT |
| LOW | scripts/ci/linux_util_free_space.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/desktop/make-deb-linux.sh | 21 | # - and platform-specific "skiko-awt-runtime" | COMMENT |
| LOW | scripts/ios/copy-assets.sh | 1 | #!/bin/sh | COMMENT |
| LOW | packages/simplex-chat-python/src/simplex_chat/client.py | 601 | # native error doesn't crash the whole client. CancelledError must | COMMENT |
| LOW | packages/simplex-chat-webrtc/src/ui.js | 21 | // if (resp?.capabilities?.encryption) { | COMMENT |
| LOW | packages/simplex-chat-webrtc/src/ui.js | 61 | // return async () => { | COMMENT |
| LOW | packages/simplex-chat-webrtc/src/call.ts | 641 | COMMENT | |
| LOW | packages/simplex-chat-webrtc/src/call.ts | 1001 | } | COMMENT |
| LOW | .github/workflows/cla.yml | 41 | #lock-pullrequest-aftermerge: false - if you don't want this bot to automatically lock the pull request after | COMMENT |
| LOW | .github/workflows/build.yml | 41 | # Important! | COMMENT |
| LOW | .github/workflows/build.yml | 701 | github_ref: ${{ github.ref }} | COMMENT |
| LOW | apps/ios/SimpleX NSE/NotificationService.swift | 241 | // NotificationEntities for the same connection across multiple NSE instances (NSEThreads) are processed sequentially, s | COMMENT |
| LOW | apps/ios/SimpleX NSE/NotificationService.swift | 381 | // Notification may reference multiple connection entities (message queues) in order to compensate for Apple servers | COMMENT |
| LOW | …s/ios/Shared/MediaEncryption.playground/Contents.swift | 41 | // let encryptedBytes = [1, 1, 2, 3, 4, 5, 6, 7, 8, 9, | COMMENT |
| LOW | apps/ios/Shared/Theme/ThemeManager.swift | 141 | } | COMMENT |
| LOW | …/Shared/Views/Chat/ChatItem/CIRcvDecryptionError.swift | 221 | //struct CIRcvDecryptionError_Previews: PreviewProvider { | COMMENT |
| LOW | …ps/ios/Shared/Views/Chat/ChatItem/CICallItemView.swift | 81 | // static var previews: some View { | COMMENT |
| LOW | …hared/Views/Chat/ComposeMessage/ComposeImageView.swift | 61 | // let uiImage = UIImage(data: data) { | COMMENT |
| LOW | …ios/Shared/Views/UserSettings/AppearanceSettings.swift | 1061 | showImageImporter = false | COMMENT |
| LOW | …ios/Shared/Views/UserSettings/AppearanceSettings.swift | 1081 | // let image = UIImage(contentsOfFile: fileURL.path){ | COMMENT |
| LOW | apps/ios/Shared/Views/Helpers/NameBadge.swift | 1 | // | COMMENT |
| LOW | apps/ios/Shared/Views/Helpers/ChatItemClipShape.swift | 1 | // | COMMENT |
| LOW | apps/ios/Shared/Views/Helpers/Keyboard.swift | 1 | // | COMMENT |
| LOW | apps/ios/SimpleXChat/SimpleXChat.h | 1 | // | COMMENT |
| LOW | apps/ios/SimpleXChat/SimpleX.h | 1 | // | COMMENT |
| LOW | apps/ios/SimpleXChat/objc.h | 1 | // | COMMENT |
| LOW | apps/ios/SimpleXChat/hs_init.h | 1 | // | COMMENT |
| LOW | apps/ios/SimpleXChat/FileUtils.swift | 1 | // | COMMENT |
| LOW | apps/ios/SimpleXChat/ChatTypes.swift | 1 | // | COMMENT |
| LOW | apps/ios/SimpleXChat/Theme/Color.swift | 1 | // | COMMENT |
| LOW | apps/ios/SimpleXChat/Theme/Color.swift | 21 | let LightGray = Color(241, 242, 246, a: 255) | COMMENT |
| LOW | apps/ios/SimpleX SE/ShareViewController.swift | 1 | // | COMMENT |
| LOW | …orm/common/src/commonMain/resources/assets/www/call.js | 701 | // We assume VP8 encoding in the decode/encode stages to get the initial | COMMENT |
| LOW | …n/kotlin/chat/simplex/common/views/chat/SendMsgView.kt | 221 | // sendSignedMessage() | COMMENT |
| LOW | …tlin/chat/simplex/common/views/chat/ChatItemsMerger.kt | 341 | if (range.first < 0 || range.last < 0) return zero | COMMENT |
| LOW | …tlin/chat/simplex/common/views/chat/ChatItemsMerger.kt | 361 | // is MergedItem.Single -> | COMMENT |
| LOW | …/chat/simplex/common/views/chat/item/CICallItemView.kt | 61 | } | COMMENT |
| LOW | …/chat/simplex/common/views/chat/item/CICallItemView.kt | 81 | // Image(systemName: "phone.arrow.down.left").foregroundColor(.secondary) | COMMENT |
| LOW | …/chat/simplex/common/views/chat/item/CICallItemView.kt | 101 | // case .missed: missedCallIcon(sent).foregroundColor(.red) | COMMENT |
| LOW | …/chat/simplex/common/views/chat/item/CICallItemView.kt | 121 | // | COMMENT |
| LOW | …/chat/simplex/common/views/chat/item/CICallItemView.kt | 141 | // callState: .invitationReceived, | COMMENT |
| LOW | …tform/common/src/commonMain/cpp/desktop/CMakeLists.txt | 81 | COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/patch-libapp-mac.sh | COMMENT |
| LOW | …atform/common/src/commonMain/cpp/desktop/include/jni.h | 1981 | JNI_OnLoad(JavaVM *vm, void *reserved); | COMMENT |
| LOW | …ommon/src/commonMain/cpp/desktop/include/unix/jni_md.h | 21 | * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA | COMMENT |
| 4 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/db/pg2sqlite.py | 11 | CODE | |
| LOW | …s/simplex-chat-python/tests/test_client_and_waiters.py | 7 | CODE | |
| LOW | packages/simplex-chat-python/examples/squaring_bot.py | 11 | CODE | |
| LOW | packages/simplex-chat-python/src/simplex_chat/util.py | 9 | CODE | |
| LOW | packages/simplex-chat-python/src/simplex_chat/client.py | 9 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 3 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 4 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 4 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 4 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 4 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 4 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 4 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 4 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 13 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 13 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 13 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 13 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 13 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 13 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 13 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 13 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 13 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 13 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 13 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 13 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 13 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 13 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 13 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 13 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 13 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 13 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 13 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 13 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 35 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 35 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 35 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 35 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 36 | CODE | |
| LOW | packages/simplex-chat-python/src/simplex_chat/core.py | 7 | CODE | |
| LOW | packages/simplex-chat-python/src/simplex_chat/api.py | 3 | CODE | |
| LOW | …ckages/simplex-chat-python/src/simplex_chat/_native.py | 6 | CODE | |
| LOW | packages/simplex-chat-python/src/simplex_chat/bot.py | 3 | CODE | |
| LOW | packages/simplex-chat-python/src/simplex_chat/bot.py | 9 | CODE | |
| LOW | packages/simplex-chat-python/src/simplex_chat/bot.py | 9 | CODE | |
| LOW | packages/simplex-chat-python/src/simplex_chat/bot.py | 9 | CODE | |
| LOW | packages/simplex-chat-python/src/simplex_chat/bot.py | 9 | CODE | |
| LOW | packages/simplex-chat-python/src/simplex_chat/bot.py | 9 | CODE | |
| LOW | packages/simplex-chat-python/src/simplex_chat/bot.py | 9 | CODE | |
| LOW | packages/simplex-chat-python/src/simplex_chat/bot.py | 9 | CODE | |
| LOW | packages/simplex-chat-python/src/simplex_chat/bot.py | 9 | CODE | |
| LOW | packages/simplex-chat-python/src/simplex_chat/bot.py | 9 | CODE | |
| LOW | packages/simplex-chat-python/src/simplex_chat/bot.py | 9 | CODE | |
| LOW | packages/simplex-chat-python/src/simplex_chat/bot.py | 9 | CODE | |
| LOW | packages/simplex-chat-python/src/simplex_chat/bot.py | 9 | CODE | |
| LOW | packages/simplex-chat-python/src/simplex_chat/bot.py | 9 | CODE | |
| LOW | packages/simplex-chat-python/src/simplex_chat/bot.py | 9 | CODE | |
| LOW | packages/simplex-chat-python/src/simplex_chat/bot.py | 9 | CODE | |
| LOW | packages/simplex-chat-python/src/simplex_chat/bot.py | 9 | CODE | |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__main__.py | 3 | CODE | |
| LOW | …ckages/simplex-chat-python/src/simplex_chat/filters.py | 3 | CODE | |
| 10 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ans/2026-05-12-link-trailing-underscore-exclamation.md | 100 | `Email "user@example.com" :|: unmarked "!"`, because `user@example.com!` | CODE |
| LOW | …link-mobile-desktop-quantum-resistant-better-groups.md | 120 | The new users and group profiles now allow spaces in the names, to make them more readable. To message these contacts in | CODE |
| LOW | apps/ios/Shared/Views/ChatList/ChatPreviewView.swift | 594 | chatItems: [ChatItem.getSample(1, .directSnd, .now, "Lorem ipsum dolor sit amet, d. consectetur adipisci | CODE |
| LOW | apps/ios/Shared/Views/ChatList/ChatPreviewView.swift | 594 | chatItems: [ChatItem.getSample(1, .directSnd, .now, "Lorem ipsum dolor sit amet, d. consectetur adipisci | CODE |
| LOW | apps/ios/Shared/Views/ChatList/ChatListView.swift | 1178 | chatItems: [ChatItem.getSample(1, .directSnd, .now, "Lorem ipsum dolor sit amet, consectetur adipiscing | CODE |
| LOW | apps/ios/Shared/Views/ChatList/ChatListView.swift | 1178 | chatItems: [ChatItem.getSample(1, .directSnd, .now, "Lorem ipsum dolor sit amet, consectetur adipiscing | CODE |
| LOW | apps/ios/Shared/Views/Chat/ChatView.swift | 3334 | ChatItem.getSample(9, .directSnd, .now, "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiu | CODE |
| LOW | apps/ios/Shared/Views/Chat/ChatView.swift | 3334 | ChatItem.getSample(9, .directSnd, .now, "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiu | CODE |
| LOW | …ios/Shared/Views/Chat/ChatItem/FramedCIVoiceView.swift | 101 | ChatItemView(chat: Chat.sampleData, im: im, chatItem: ChatItem.getVoiceMsgContentSample(text: "Lorem ipsum d | CODE |
| LOW | …ios/Shared/Views/Chat/ChatItem/FramedCIVoiceView.swift | 101 | ChatItemView(chat: Chat.sampleData, im: im, chatItem: ChatItem.getVoiceMsgContentSample(text: "Lorem ipsum d | CODE |
| LOW | apps/ios/Shared/Views/Chat/ChatItem/CIFileView.swift | 313 | ChatItemView(chat: Chat.sampleData, im: im, chatItem: ChatItem.getFileMsgContentSample(text: "Lorem ipsum do | CODE |
| LOW | apps/ios/Shared/Views/Chat/ChatItem/CIFileView.swift | 313 | ChatItemView(chat: Chat.sampleData, im: im, chatItem: ChatItem.getFileMsgContentSample(text: "Lorem ipsum do | CODE |
| LOW | apps/ios/Shared/Views/Chat/Group/GroupWelcomeView.swift | 75 | TextEditor(text: Binding.constant(NSLocalizedString("Enter welcome message…", comment: " | CODE |
| LOW | apps/ios/Shared/Views/UserSettings/UserProfile.swift | 294 | TextEditor(text: Binding.constant(NSLocalizedString("Enter description (optional)", comm | CODE |
| LOW | …ps/ios/Shared/Views/UserSettings/UserAddressView.swift | 675 | messageEditor(placeholder: NSLocalizedString("Enter welcome message… (optional)", comment: "placeholder" | CODE |
| LOW | …t/simplex/common/views/chatlist/ChatListNavLinkView.kt | 1053 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et | CODE |
| LOW | …t/simplex/common/views/chatlist/ChatListNavLinkView.kt | 1053 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et | CODE |
| LOW | …t/simplex/common/views/chatlist/ChatListNavLinkView.kt | 1098 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et | CODE |
| LOW | …t/simplex/common/views/chatlist/ChatListNavLinkView.kt | 1098 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et | CODE |
| LOW | …/chat/simplex/common/views/chat/item/FramedItemView.kt | 665 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore m | CODE |
| LOW | …/chat/simplex/common/views/chat/item/FramedItemView.kt | 665 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore m | CODE |
| LOW | …/chat/simplex/common/views/chat/item/FramedItemView.kt | 709 | quotedItem = CIQuote.getSample(1, Clock.System.now(), "Lorem ipsum dolor sit amet", chatDir = CIDirection.Direct | CODE |
| LOW | …/chat/simplex/common/views/chat/item/FramedItemView.kt | 709 | quotedItem = CIQuote.getSample(1, Clock.System.now(), "Lorem ipsum dolor sit amet", chatDir = CIDirection.Direct | CODE |
| LOW | …/chat/simplex/common/views/chat/item/FramedItemView.kt | 754 | text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dol | CODE |
| LOW | …/chat/simplex/common/views/chat/item/FramedItemView.kt | 754 | text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dol | CODE |
| LOW | …/chat/simplex/common/views/chat/item/FramedItemView.kt | 783 | text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dol | CODE |
| LOW | …/chat/simplex/common/views/chat/item/FramedItemView.kt | 783 | text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dol | CODE |
| LOW | …tlin/chat/simplex/common/views/chat/item/CIFileView.kt | 362 | ChatItem.getFileMsgContentSample(text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tem | CODE |
| LOW | …tlin/chat/simplex/common/views/chat/item/CIFileView.kt | 362 | ChatItem.getFileMsgContentSample(text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tem | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | plans/2026-05-07-simplex-chat-python-implementation.md | 1831 | except Exception: | CODE |
| LOW | plans/2026-05-07-simplex-chat-python-implementation.md | 1873 | except Exception: | CODE |
| LOW | plans/2026-05-07-simplex-chat-python-implementation.md | 1890 | except Exception: | CODE |
| LOW | plans/2026-05-07-simplex-chat-python-implementation.md | 2010 | except Exception as e: | CODE |
| LOW⚡ | scripts/db/pg2sqlite.py | 540 | except Exception: | CODE |
| LOW⚡ | scripts/db/pg2sqlite.py | 588 | except Exception: | CODE |
| LOW⚡ | scripts/db/pg2sqlite.py | 597 | except Exception as e: | CODE |
| LOW⚡ | scripts/db/pg2sqlite.py | 602 | except Exception: | CODE |
| LOW⚡ | scripts/db/pg2sqlite.py | 724 | except Exception: | CODE |
| LOW⚡ | scripts/db/pg2sqlite.py | 733 | except Exception: | CODE |
| LOW⚡ | scripts/db/pg2sqlite.py | 739 | except Exception as e: | CODE |
| LOW⚡ | scripts/db/pg2sqlite.py | 744 | except Exception: | CODE |
| LOW | scripts/db/pg2sqlite.py | 95 | except Exception: | CODE |
| LOW | scripts/db/pg2sqlite.py | 151 | except Exception: | CODE |
| LOW | scripts/db/pg2sqlite.py | 453 | except Exception: | CODE |
| LOW | scripts/db/pg2sqlite.py | 471 | except Exception: | CODE |
| LOW | scripts/db/pg2sqlite.py | 615 | except Exception: | CODE |
| LOW | scripts/db/pg2sqlite.py | 635 | except Exception as e: | CODE |
| LOW | scripts/db/pg2sqlite.py | 640 | except Exception: | CODE |
| LOW | scripts/db/pg2sqlite.py | 768 | except Exception as e: | CODE |
| LOW | scripts/db/pg2sqlite.py | 818 | except Exception as e: | CODE |
| LOW | scripts/db/pg2sqlite.py | 893 | except Exception as e: | CODE |
| LOW | packages/simplex-chat-python/src/simplex_chat/client.py | 347 | except Exception: | CODE |
| LOW | packages/simplex-chat-python/src/simplex_chat/client.py | 351 | except Exception: | CODE |
| LOW | packages/simplex-chat-python/src/simplex_chat/client.py | 463 | except Exception: | CODE |
| LOW | packages/simplex-chat-python/src/simplex_chat/client.py | 631 | except Exception: | CODE |
| LOW | packages/simplex-chat-python/src/simplex_chat/client.py | 643 | except Exception: | CODE |
| LOW | packages/simplex-chat-python/src/simplex_chat/client.py | 665 | except Exception: | CODE |
| LOW | packages/simplex-chat-python/src/simplex_chat/client.py | 733 | except Exception: | CODE |
| LOW⚡ | packages/simplex-chat-python/src/simplex_chat/client.py | 756 | except Exception: | CODE |
| LOW⚡ | packages/simplex-chat-python/src/simplex_chat/client.py | 765 | except Exception: | CODE |
| LOW | packages/simplex-chat-python/src/simplex_chat/client.py | 788 | except Exception: | CODE |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__main__.py | 29 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | scripts/db/pg2sqlite.py | 38 | except ValueError: | CODE |
| HIGH | scripts/db/pg2sqlite.py | 453 | except Exception: | CODE |
| HIGH | …s/simplex-chat-python/tests/test_client_and_waiters.py | 494 | except RuntimeError: | CODE |
| HIGH | packages/simplex-chat-python/src/simplex_chat/client.py | 517 | except ContactAlreadyExistsError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | apps/simplex-support-bot/src/index.ts | 162 | // Step 3: Read state file | COMMENT |
| LOW⚡ | apps/simplex-support-bot/src/index.ts | 163 | // Step 4: Enable auto-accept DM contacts | COMMENT |
| LOW⚡ | apps/simplex-support-bot/src/index.ts | 167 | // Step 5: Resolve Grok contact by ID. Avoid apiListContacts — it loads | COMMENT |
| LOW⚡ | apps/simplex-support-bot/src/index.ts | 264 | // Step 7: Ensure direct messages enabled (done via groupPreferences above) | COMMENT |
| LOW⚡ | apps/simplex-support-bot/src/index.ts | 266 | // Step 8: Create team group invite link (best-effort — bot works without it) | COMMENT |
| LOW | apps/simplex-support-bot/src/index.ts | 90 | // Step 1: Init main bot via bot.run() | COMMENT |
| LOW | apps/simplex-support-bot/src/index.ts | 120 | // Step 2: Resolve Grok profile from same ChatApi instance. | COMMENT |
| LOW | apps/simplex-support-bot/src/index.ts | 212 | // Step 6: Resolve team group by ID. Avoid apiListGroups — it loads every | COMMENT |
| LOW | apps/simplex-support-bot/src/index.ts | 303 | // Step 9: Validate team members (lookup by ID, one round-trip per member) | COMMENT |
| LOW | apps/simplex-support-bot/src/index.ts | 349 | // Step 10: Register Grok event handlers (filtered by profile in handler) | COMMENT |
| LOW | apps/simplex-support-bot/src/index.ts | 361 | // Step 11: Graceful shutdown | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/desktop/make-deb-linux.sh | 24 | # Essentially, this jar has the Linux .so library called "libskiko-linux-x64.so" | COMMENT |
| MEDIUM | scripts/db/pg2sqlite.py | 331 | # Quote schema and table names simply (this is not comprehensive for every corner case but avoids psycopg.sql use) | COMMENT |
| MEDIUM | …ios/Shared/Views/UserSettings/AppearanceSettings.swift | 1117 | // Update before save to make it work seamless | COMMENT |
| MEDIUM | …n/chat/simplex/common/views/usersettings/Appearance.kt | 775 | // Update before save to make it work seamless | COMMENT |
| MEDIUM | …n/chat/simplex/common/views/usersettings/Appearance.kt | 881 | // Update before save to make it work seamless | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/android/compress-and-sign-apk.sh | 55 | # This method is not working correctly on case-insensitive file systems since Android AAPT produce the same name | COMMENT |
| MEDIUM | …s/simplex-chat-python/src/simplex_chat/types/_types.py | 2 | # This file is generated automatically. | COMMENT |
| MEDIUM | …mplex-chat-python/src/simplex_chat/types/_responses.py | 2 | # This file is generated automatically. | COMMENT |
| MEDIUM | …/simplex-chat-python/src/simplex_chat/types/_events.py | 2 | # This file is generated automatically. | COMMENT |
| MEDIUM | …implex-chat-python/src/simplex_chat/types/_commands.py | 2 | # This file is generated automatically. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | apps/ios/Shared/Views/Chat/EndlessScrollView.swift | 505 | // just a faster way to set top item as requested index | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/simplex-chat-python/src/simplex_chat/client.py | 936 | __all__ = [ | CODE |
| LOW | …kages/simplex-chat-python/src/simplex_chat/__init__.py | 38 | __all__ = [ | CODE |
| LOW | …ckages/simplex-chat-python/src/simplex_chat/_native.py | 173 | def _setup_signatures(lib: ctypes.CDLL) -> None: | CODE |
| LOW | packages/simplex-chat-python/src/simplex_chat/bot.py | 201 | __all__ = [ | CODE |
| LOW | …simplex-chat-python/src/simplex_chat/types/__init__.py | 16 | __all__ = ["T", "CC", "CR", "CEvt"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | scripts/db/pg2sqlite.py | 506 | # Check if table has a single primary key | COMMENT |
| LOW⚡ | scripts/db/pg2sqlite.py | 512 | # Check if SQLite has AUTOINCREMENT (use sqlite_table) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | plans/2026-05-07-simplex-chat-python-implementation.md | 266 | ## Chunk 2: Python package scaffold | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/db/pg2sqlite.py | 353 | CODE | |
| LOW | scripts/db/pg2sqlite.py | 551 | CODE | |
| LOW | …ckages/simplex-chat-python/src/simplex_chat/_native.py | 96 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/simplex-chat-python/src/simplex_chat/bot.py | 85 | CODE |