← Back to scan
File as GitHub Issue repo: alexazhou/TogoSpace

Push this scan report to alexazhou/TogoSpace

Click the green button below to open GitHub’s new-issue form, pre-filled with the report title, summary table, top findings, and an embedded score-card image. No authentication needed — you review on GitHub before submitting. Repobility is credited as the scanner.

Embedded score card image

This image will render at the top of the issue body. Hosted on Repobility, refreshes automatically after re-scans.

Repobility score card

Issue title

Missing import: `queue` used but not imported

Curate findings to include

Pick exactly which findings appear in the issue body. By default the top 5 are included. Uncheck noise, check what matters.

Top 5 (default)
Severity Rule Title File:line
CRIT MINED007 [MINED007] Sql String Concat: cursor.execute(f"... {user_input} ...") — SQL injection. src/db.py:78
CRIT MINED019 [MINED019] Ssti Jinja From String: jinja2.Environment().from_string(user_input) — full RC… src/controller/roleTemplateController.py:45
CRIT MINED107 Missing import: `datetime` used but not imported src/util/jsonUtil.py:233
CRIT MINED107 Missing import: `queue` used but not imported assets/icon_archive/2026-04-13-wolf-ico…:35
CRIT MINED107 Missing import: `queue` used but not imported tests/mock_llm_server.py:239
CRIT GHSA-r75f-5x8p-qvmc litellm: GHSA-r75f-5x8p-qvmc requirements.txt
CRIT GHSA-jjhc-v7c2-5hh6 litellm: GHSA-jjhc-v7c2-5hh6 requirements.txt
HIGH SEC004 [SEC004] SQL Injection Risk: String interpolation in SQL execution. Allows SQL injection. src/db.py:78
HIGH SEC029 [SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTT… tui/tui_main.py:54
HIGH SEC029 [SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTT… src/controller/initController.py:25
HIGH MINED001 [MINED001] Bare Except Pass: except: pass or except Exception: pass — silently swallows e… src/service/agentService/driver/tspDriv…:107
HIGH MINED001 [MINED001] Bare Except Pass: except: pass or except Exception: pass — silently swallows e… src/constants.py:22
HIGH MINED001 [MINED001] Bare Except Pass: except: pass or except Exception: pass — silently swallows e… src/backend_main.py:52
HIGH SEC103 [SEC103] LDAP injection — non-constant search filter: User input concatenated into an LDA… scripts/build_release.py:100
HIGH SEC103 [SEC103] LDAP injection — non-constant search filter: User input concatenated into an LDA… scripts/build_mac.py:36
HIGH SEC128 [SEC128] Async function without await — fire-and-forget Promise (AI mistake): Async call … src/controller/settingController.py:150
HIGH SEC128 [SEC128] Async function without await — fire-and-forget Promise (AI mistake): Async call … src/controller/baseController.py:99
HIGH SEC128 [SEC128] Async function without await — fire-and-forget Promise (AI mistake): Async call … assets/icon_archive/2026-04-13-wolf-ico…:155
HIGH MINED106 Phantom test coverage: test_update_activity_rejects_invalid_field tests/integration/test_agent_activity/t…:76
HIGH MINED106 Phantom test coverage: test_agent_manager_batch_save_agents_rejects_mismatched_team_id tests/integration/test_dal_manager/test…:282
HIGH MINED106 Phantom test coverage: test_start_scheduling_skips_when_not_running tests/integration/test_scheduler_servic…:501
HIGH MINED106 Phantom test coverage: test_start_schedule_activates_rooms tests/integration/test_scheduler_servic…:463
HIGH MINED106 Phantom test coverage: test_stop_agent_task_delegates_to_agent tests/integration/test_scheduler_servic…:425
HIGH MINED106 Phantom test coverage: test_stop_agent_task_non_existent tests/integration/test_scheduler_servic…:420
HIGH MINED106 Phantom test coverage: test_on_agent_turn_general_exception tests/integration/test_scheduler_servic…:392
HIGH MINED106 Phantom test coverage: test_on_agent_turn_agent_not_found tests/integration/test_scheduler_servic…:364
HIGH MINED106 Phantom test coverage: test_stop_scheduler_team tests/integration/test_scheduler_servic…:353
HIGH MINED106 Phantom test coverage: test_need_scheduling_false_skips_scheduling tests/integration/test_scheduler_servic…:241
HIGH MINED106 Phantom test coverage: test_on_agent_turn_creates_task tests/integration/test_scheduler_servic…:202
HIGH MINED106 Phantom test coverage: test_scheduler_runs_agent_on_turn_event tests/integration/test_scheduler_servic…:89
HIGH MINED106 Phantom test coverage: test_scheduler_shutdown_stops_all_agent_consumer_tasks tests/integration/test_scheduler_servic…:75
HIGH MINED106 Phantom test coverage: test_no_subscribers_no_error tests/integration/test_message_bus/test…:40
HIGH MINED106 Phantom test coverage: test_db_path tests/base.py:181
HIGH MINED108 `self.size` used but never assigned in __init__ tui/widgets.py:46
HIGH MINED108 `self.refresh` used but never assigned in __init__ tui/widgets.py:43
HIGH MINED108 `self._get_session` used but never assigned in __init__ tui/api_client.py:171
HIGH MINED108 `self._get_session` used but never assigned in __init__ tui/api_client.py:165
HIGH MINED108 `self._get_session` used but never assigned in __init__ tui/api_client.py:149
HIGH MINED108 `self._get_session` used but never assigned in __init__ tui/api_client.py:139
HIGH MINED108 `self._get_session` used but never assigned in __init__ tui/api_client.py:108
HIGH MINED108 `self._get_session` used but never assigned in __init__ tui/api_client.py:101
HIGH MINED108 `self._get_session` used but never assigned in __init__ tui/api_client.py:82
HIGH MINED108 `self._get_session` used but never assigned in __init__ tui/api_client.py:76
HIGH MINED108 `self._cb_set_language` used but never assigned in __init__ src/trayMenu.py:181
HIGH MINED108 `self._cb_set_language` used but never assigned in __init__ src/trayMenu.py:175
HIGH MINED108 `self._cb_quit` used but never assigned in __init__ src/trayMenu.py:189
HIGH MINED108 `self._cb_reset_data` used but never assigned in __init__ src/trayMenu.py:168
HIGH MINED108 `self._cb_open_config_dir` used but never assigned in __init__ src/trayMenu.py:167
HIGH MINED108 `self._cb_open_web` used but never assigned in __init__ src/trayMenu.py:165
HIGH MINED108 `self._cb_status` used but never assigned in __init__ src/trayMenu.py:164
HIGH MINED108 `self.name` used but never assigned in __init__ src/constants.py:52
HIGH MINED108 `self.clear_header` used but never assigned in __init__ src/route.py:44
HIGH MINED108 `self.clear_header` used but never assigned in __init__ src/route.py:43
HIGH MINED108 `self.set_header` used but never assigned in __init__ src/route.py:42
HIGH MINED108 `self.set_header` used but never assigned in __init__ src/route.py:41
HIGH MINED108 `self.set_header` used but never assigned in __init__ src/route.py:40
HIGH MINED108 `self._is_shell_path` used but never assigned in __init__ src/route.py:38
HIGH MINED108 `self._is_shell_path` used but never assigned in __init__ src/route.py:33
HIGH DKR006 Dockerfile pipes a remote script into a shell Dockerfile:15
HIGH MINED115 Action `softprops/action-gh-release` pinned to mutable ref `@v3` .github/workflows/release.yml:221
HIGH MINED115 Action `actions/cache` pinned to mutable ref `@v5` .github/workflows/release.yml:133
HIGH MINED115 Action `actions/setup-node` pinned to mutable ref `@v6` .github/workflows/release.yml:127
HIGH MINED115 Action `actions/setup-python` pinned to mutable ref `@v6` .github/workflows/release.yml:43
HIGH MINED115 Action `actions/checkout` pinned to mutable ref `@v6` .github/workflows/release.yml:36
HIGH MINED115 Action `actions/checkout` pinned to mutable ref `@v6` .github/workflows/docker.yml:40
HIGH MINED115 Action `actions/cache` pinned to mutable ref `@v5` .github/workflows/test.yml:29
HIGH MINED115 Action `actions/setup-python` pinned to mutable ref `@v6` .github/workflows/test.yml:24
HIGH MINED115 Action `actions/checkout` pinned to mutable ref `@v6` .github/workflows/test.yml:19
HIGH MINED118 Dockerfile FROM `ubuntu:24.04` not pinned by digest Dockerfile:34
HIGH MINED118 Dockerfile FROM `ubuntu:24.04` not pinned by digest Dockerfile:12
HIGH GHSA-fqwm-6jpj-5wxc tornado: GHSA-fqwm-6jpj-5wxc requirements.txt
HIGH PYSEC-2026-140 tornado: PYSEC-2026-140 requirements.txt
HIGH GHSA-xqmj-j6mv-4862 litellm: GHSA-xqmj-j6mv-4862 requirements.txt
HIGH GHSA-wxxx-gvqv-xp7p litellm: GHSA-wxxx-gvqv-xp7p requirements.txt
HIGH GHSA-v4p8-mg3p-g94g litellm: GHSA-v4p8-mg3p-g94g requirements.txt
HIGH GHSA-69x8-hrgq-fjj8 litellm: GHSA-69x8-hrgq-fjj8 requirements.txt
HIGH GHSA-53mr-6c8q-9789 litellm: GHSA-53mr-6c8q-9789 requirements.txt
HIGH GHSA-whj4-6x5x-4v2j pillow: GHSA-whj4-6x5x-4v2j requirements.txt
HIGH GHSA-pwv6-vv43-88gr pillow: GHSA-pwv6-vv43-88gr requirements.txt
HIGH PYSEC-2026-165 pillow: PYSEC-2026-165 requirements.txt
MED SEC034 [SEC034] Log Injection / Log Forging — unsanitized user input in log: User input is logge… src/service/funcToolService/core.py:121
MED ERR001 [ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even… src/service/ormService.py:73
MED ERR001 [ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even… src/service/agentService/driver/tspDriv…:107
MED SEC127 [SEC127] AI agent stub — TODO: implement / pass placeholder body: Function body left as T… src/service/llmService/llmRequestRules.…:21
MED SEC127 [SEC127] AI agent stub — TODO: implement / pass placeholder body: Function body left as T… src/service/agentService/driver/base.py:83
MED SEC136 [SEC136] AI-typical over-broad exception handler swallowing all errors: Catch-all excepti… src/model/dbModel/gtAgentHistory.py:121
MED MINED111 Bare except continues silently src/model/dbModel/gtAgentHistory.py:131
MED MINED111 Bare except continues silently src/model/dbModel/gtAgentHistory.py:123
MED MINED111 Bare except continues silently src/service/funcToolService/tools.py:919
MED MINED111 Bare except continues silently src/service/funcToolService/tools.py:40
MED MINED111 Bare except continues silently src/service/funcToolService/tools.py:914
MED MINED111 Bare except continues silently src/service/funcToolService/tools.py:852
MED MINED111 Bare except continues silently src/service/funcToolService/tools.py:809
MED MINED111 Bare except continues silently src/service/funcToolService/tools.py:760
MED MINED111 Bare except continues silently src/service/agentService/toolRegistry.py:211
MED MINED111 Bare except continues silently src/service/agentService/toolRegistry.py:216
MED MINED111 Bare except continues silently src/service/agentService/agentTurnRunne…:105
MED MINED111 Bare except continues silently src/service/agentService/agentTurnRunne…:91
MED MINED111 Bare except continues silently src/util/assertUtil.py:43
MED MINED111 Bare except continues silently src/util/jsonUtil.py:275
MED MINED111 Bare except continues silently tests/api/test_ws_controller/test.py:72
MED MINED111 Bare except continues silently tests/mock_llm_server.py:402
MED MINED111 Bare except continues silently tests/base.py:225
MED MINED111 Bare except continues silently tests/base.py:537
MED MINED111 Bare except continues silently tests/base.py:300
MED MINED111 Bare except continues silently tests/base.py:122
MED MINED111 Bare except continues silently scripts/commit_and_push_frondbackend.py:170
MED MINED111 Bare except continues silently scripts/check_tui_color_env.py:44
MED MINED111 Bare except continues silently scripts/check_tui_color_env.py:23
MED COMP001 [COMP001] High cognitive complexity: Function `_check_quarantine_on_executables` has cogn… scripts/build_mac.py:117
MED COMP001 [COMP001] High cognitive complexity: Function `_find_inner_light_regions` has cognitive c… assets/icon_archive/2026-04-13-wolf-ico…:16
MED DEPCUR-PY Python package `mypy` is 1 major version(s) behind (1.8.0 -> 2.1.0) requirements.txt:18
MED DEPCUR-PY Python package `types-peewee` is 1 major version(s) behind (3.19.0.20260109 -> 4.0.5.2026… requirements.txt:17
MED DEPCUR-PY Python package `peewee-async` is 1 major version(s) behind (1.2.1 -> 2.0.0) requirements.txt:9
MED DEPCUR-PY Python package `peewee` is 1 major version(s) behind (3.19.0 -> 4.0.6) requirements.txt:8
MED GHSA-78cv-mqj4-43f7 tornado: GHSA-78cv-mqj4-43f7 requirements.txt
MED GHSA-6w46-j5rx-g56g pytest: GHSA-6w46-j5rx-g56g requirements.txt
MED GHSA-w2fm-2cpv-w7v5 aiohttp: GHSA-w2fm-2cpv-w7v5 requirements.txt
MED GHSA-p998-jp59-783m aiohttp: GHSA-p998-jp59-783m requirements.txt
MED GHSA-m5qp-6w8w-w647 aiohttp: GHSA-m5qp-6w8w-w647 requirements.txt
MED GHSA-jg22-mg44-37j8 aiohttp: GHSA-jg22-mg44-37j8 requirements.txt
MED GHSA-hg6j-4rv6-33pg aiohttp: GHSA-hg6j-4rv6-33pg requirements.txt
MED GHSA-c427-h43c-vf67 aiohttp: GHSA-c427-h43c-vf67 requirements.txt
MED GHSA-r73j-pqj5-w3x7 pillow: GHSA-r73j-pqj5-w3x7 requirements.txt
MED GHSA-5xmw-vc9v-4wf2 pillow: GHSA-5xmw-vc9v-4wf2 requirements.txt
MED DKR001 Docker final stage has no non-root USER Dockerfile:34
MED WEB003 Public web service has no security.txt .well-known/security.txt
MED AGT015 Remote install command pipes network code directly to a shell .github/workflows/release.yml:86
LOW COMP001 [COMP001] High cognitive complexity: Function `main` has cognitive complexity 8 (SonarSou… assets/icon_archive/2026-04-13-wolf-ico…:50
LOW DEPCUR-PY Python package `PyMySQL` is minor version(s) behind (1.1.1 -> 1.2.0) requirements.txt:7
LOW DEPCUR-PY Python package `aiosqlite` is minor version(s) behind (0.20.0 -> 0.22.1) requirements.txt:4
LOW GHSA-mwh4-6h8g-pg8w aiohttp: GHSA-mwh4-6h8g-pg8w requirements.txt
LOW GHSA-hcc4-c3v8-rx92 aiohttp: GHSA-hcc4-c3v8-rx92 requirements.txt
LOW GHSA-966j-vmvw-g2g9 aiohttp: GHSA-966j-vmvw-g2g9 requirements.txt
LOW GHSA-63hf-3vf5-4wqf aiohttp: GHSA-63hf-3vf5-4wqf requirements.txt
LOW GHSA-3wq7-rqq7-wx6j aiohttp: GHSA-3wq7-rqq7-wx6j requirements.txt
LOW GHSA-2vrm-gr82-f7m5 aiohttp: GHSA-2vrm-gr82-f7m5 requirements.txt
LOW AIC003 Duplicated implementation block across source files tests/integration/test_dept_service/tes…:35
LOW AIC003 Duplicated implementation block across source files tests/api/test_team_controller/test.py:17
LOW AIC003 Duplicated implementation block across source files tests/api/test_system_controller/test.py:13
LOW AIC003 Duplicated implementation block across source files tests/api/test_llm_service_controller/t…:13
LOW AIC003 Duplicated implementation block across source files src/service/presetService.py:58
LOW DKR008 .dockerignore misses sensitive defaults .dockerignore
LOW DKR012 Dockerfile keeps pip download cache Dockerfile:74
LOW DKR011 Dockerfile installs recommended OS packages Dockerfile:50
LOW DKR011 Dockerfile installs recommended OS packages Dockerfile:15
LOW DKC010 Compose service lacks no-new-privileges hardening docker-compose.yml:6
LOW DKC006 Compose service does not declare a runtime user docker-compose.yml:6
LOW CORE_NO_LICENSE No LICENSE file
INFO MINED062 [MINED062] Python Dataclass No Fields: @dataclass over an empty class — unfinished model. src/service/agentActivityService.py:35
INFO MINED062 [MINED062] Python Dataclass No Fields: @dataclass over an empty class — unfinished model. src/model/coreModel/gtCoreChatModel.py:8
INFO MINED062 [MINED062] Python Dataclass No Fields: @dataclass over an empty class — unfinished model. src/model/coreModel/gtCoreAgentEvent.py:4
INFO MINED064 [MINED064] Python Input Call: input() blocks for stdin. Inappropriate in services. src/db.py:293
INFO MINED043 [MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle cr… tui/api_client.py:170
INFO MINED043 [MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle cr… src/controller/settingController.py:101
INFO MINED043 [MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle cr… src/controller/initController.py:29
INFO MINED050 [MINED050] Stub Only Function: Function declared but body is just pass, return None, rais… src/service/agentService/driver/base.py:88
INFO MINED050 [MINED050] Stub Only Function: Function declared but body is just pass, return None, rais… src/constants.py:23
INFO MINED050 [MINED050] Stub Only Function: Function declared but body is just pass, return None, rais… src/backend_main.py:72
INFO MINED063 [MINED063] Toctou Os Path Exists: if os.path.exists(p): open(p) — file can be replaced/de… src/appEntry.py:87
INFO MINED077 [MINED077] Python Open No Context: fp = open(path) outside with-block leaks file handles. scripts/build_release.py:99
INFO MINED077 [MINED077] Python Open No Context: fp = open(path) outside with-block leaks file handles. scripts/build_mac.py:35
Reset to top 5 162 findings available (after auto-suppression of test files + won't-fix)

Issue body (markdown)

## Code-quality scan: `alexazhou/TogoSpace`

**Score: 68/100 (C+)**  ·  172 findings  ·  scanned 2026-06-05 14:47 UTC  ·  43,714 LOC

| Severity | Count |
|---|---|
| CRITICAL | 7 |
| HIGH | 73 |
| MEDIUM | 48 |
| LOW | 21 |

📊 [Full filterable report](https://repobility.com/scan/fb33e155-60d3-4e4a-ad61-f14db63879d8/)  ·  ![scorecard](https://repobility.com/scan/fb33e155-60d3-4e4a-ad61-f14db63879d8/report.png?v=1780670868-s2)

### Top findings

1. **CRITICAL** `MINED007` — Sql String Concat
   `src/db.py:78` · CWE-89 · ✓ Repobility
2. **CRITICAL** `MINED019` — Ssti Jinja From String
   `src/controller/roleTemplateController.py:45` · CWE-94 · ✓ Repobility
3. **CRITICAL** `MINED107` — Missing import: `datetime` used but not imported
   `src/util/jsonUtil.py:233` · ✓ Repobility
4. **CRITICAL** `MINED107` — Missing import: `queue` used but not imported
   `assets/icon_archive/2026-04-13-wolf-icon/build_icon.py:35` · ✓ Repobility
5. **CRITICAL** `MINED107` — Missing import: `queue` used but not imported
   `tests/mock_llm_server.py:239` · ✓ Repobility

---

_Filed automatically. Close this issue if not useful — we won't refile. Full report: https://repobility.com/scan/fb33e155-60d3-4e4a-ad61-f14db63879d8/_
Megaproject â high spam risk
Could not determine 'alexazhou/TogoSpace' star count (GitHub API rate-limited or unreachable). When in doubt about repo size, prefer opening a focused PR or a discussion rather than an issue.
Already filed
81/180 findings (45%) on this scan are already flagged as test-file, won't-fix, or suppressed. The scan is too noisy to file as a single issue. Curate down to specific actionable findings, or address the FP source first.

The button opens GitHubâs new-issue page in a new tab. You will see the title + body pre-filled â review, edit if you want, then click GitHubâs "Submit new issue" button. Repobility never posts anything on your behalf.

For real security findings on big repos: use the project's SECURITY.md or private advisory flow instead of a public issue.