Public scan — anyone with this URL can view this analysis. Sign up to track your own repos privately, run scheduled re-scans, and get AI fix prompts via your dashboard.
64 of your 215 findings came from Repobility's proprietary detections. ✓ Repobility tags below mark them.

Scan timing: clone 6.49s · analysis 12.54s · 8.6 MB · GitHub preflight 141ms

666ghj/MiroFish

https://github.com/666ghj/MiroFish · scanned 2026-06-05 09:00 UTC (5 days, 18 hours ago) · 10 languages

449 raw signals (199 security + 250 graph) 41st percentile · Python · medium (20-100K LoC) System graph score 63 (lower by 12)

UNIFIED Repobility · multi-layer engine · AI coders

Complete repo analysis

Last scanned 5 days, 18 hours ago · v2 · 236 actionable findings from 2 signal sources. 88 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.

JSON
Score breakdown â 2026-05-18-v5
Component Sub-score Weight Contribution
structure_score 75.0 0.15 11.25
security_score 45.5 0.25 11.38
testing_score 7.0 0.20 1.40
documentation_score 88.0 0.15 13.20
practices_score 77.0 0.15 11.55
code_quality 18.6 0.10 1.86
Overall 1.00 50.6
Severity distribution — click a segment to filter
Active filters: excluding tests × Reset all
Scan summary Quality grade C- (51/100). Dimensions: security 46, maintainability 75. 199 findings (102 security). 41,974 lines analyzed.

Showing 220 of 236 actionable findings. 324 raw detector signals were grouped into reader-sized issues. Click TP / FP to vote on a finding's accuracy — votes adjust the confidence weighting and improve detection across the platform.

high Security checks quality Quality conf 1.00 ✓ Repobility Missing import: `platform` used but not imported
The file uses `platform.something(...)` but never imports `platform`. This raises NameError at runtime the first time the line executes.
backend/app/services/zep_graph_memory_updater.py:273
critical Security checks software dependencies conf 0.88 nltk: GHSA-7p94-766c-hgjp
NLTK has a Zip Slip Vulnerability
backend/uv.lock
critical Security checks software dependencies conf 0.88 unstructured: GHSA-gm8q-m8mv-jj5m
Unstructured has Path Traversal via Malicious MSG Attachment that Allows Arbitrary File Write
backend/uv.lock
high Security checks quality Quality conf 1.00 ✓ Repobility 25 occurrences `self.log` used but never assigned in __init__
Method `info` of class `SimulationLogManager` reads `self.log`, but no assignment to it exists in __init__ (and no class-level fallback). This raises AttributeError the first time the method runs against an instance.
3 files, 25 locations
backend/scripts/run_twitter_simulation.py:236, 238, 245, 275, 284, 287, 297, 350, +8 more (16 hits)
backend/scripts/run_parallel_simulation.py:324, 338, 376, 407, 412 (5 hits)
backend/scripts/action_logger.py:187, 190, 193, 196 (4 hits)
high Security checks software dependencies conf 0.88 axios: GHSA-35jp-ww65-95wh
axios Vulnerable to Full Man-in-the-Middle via Prototype Pollution Gadget in `config.proxy`
frontend/package-lock.json
high Security checks software dependencies conf 0.88 axios: GHSA-3g43-6gmg-66jw
axios Vulnerable to Credential Theft and Response Hijacking via Prototype Pollution Gadget in Config Merge
frontend/package-lock.json
high Security checks software dependencies conf 0.88 axios: GHSA-6chq-wfr3-2hj9
Axios: Header Injection via Prototype Pollution
frontend/package-lock.json
high Security checks software dependencies conf 0.88 axios: GHSA-777c-7fjr-54vf
Allocation of Resources Without Limits or Throttling in Axios
frontend/package-lock.json
high Security checks software dependencies conf 0.88 axios: GHSA-hfxv-24rg-xrqf
Axios: Regular Expression Denial of Service (ReDoS) via Cookie Name Injection
frontend/package-lock.json
high Security checks software dependencies conf 0.88 axios: GHSA-j5f8-grm9-p9fc
Axios: Proxy-Authorization header leaks to redirect target when proxy is re-evaluated to direct connection
frontend/package-lock.json
high Security checks software dependencies conf 0.88 axios: GHSA-p92q-9vqr-4j8v
Axios: Proxy-Authorization Credential Leak to Origin Server Across HTTP-to-HTTPS Redirect in Axios Node.js HTTP Adapter
frontend/package-lock.json
high Security checks software dependencies conf 0.88 axios: GHSA-pf86-5x62-jrwf
Axios: Prototype Pollution Gadgets - Response Tampering, Data Exfiltration, and Request Hijacking
frontend/package-lock.json
high Security checks software dependencies conf 0.88 axios: GHSA-pjwm-pj3p-43mv
axios's shouldBypassProxy does not recognize IPv4-mapped IPv6 addresses, allowing NO_PROXY bypass (incomplete fix for CVE-2025-62718)
frontend/package-lock.json
high Security checks software dependencies conf 0.88 axios: GHSA-q8qp-cvcw-x6jj
Axios has prototype pollution read-side gadgets in HTTP adapter that allow credential injection and request hijacking
frontend/package-lock.json
high Security checks software dependencies conf 0.88 cryptography: GHSA-r6ph-v2qm-q3c2
cryptography Vulnerable to a Subgroup Attack Due to Missing Subgroup Validation for SECT Curves
backend/uv.lock
high Security checks software dependencies conf 0.88 cryptography: PYSEC-2026-35
cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. Prior to version 46.0.6, DNS name constraints were only validated against SANs within child certificates, and not the "peer name" presented during each validation. Consequently, cryptography woul…
backend/uv.lock
high Security checks software dependencies conf 0.88 cryptography: PYSEC-2026-36
cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. From 45.0.0 to before 46.0.7, if a non-contiguous buffer was passed to APIs which accepted Python buffers (e.g. Hash.update()), this could lead to buffer overflows. This vulnerability is fixed in…
backend/uv.lock
high Security checks software dependencies conf 0.90 ✓ Repobility Dockerfile FROM `python:3.11` not pinned by digest
`FROM python:3.11` resolves the tag at build time. The registry CAN re-push a different image for the same tag, so every build is potentially different. Production images should pin to `image@sha256:...` for reproducibility + supply-chain integrity.
Dockerfile:1
low Security checks cicd CI/CD security conf 0.90 ✓ Repobility 2 occurrences GitHub Action is tag-pinned rather than SHA-pinned
Action `actions/checkout` pinned to mutable ref `@v4` uses a mutable tag or branch. Pin external actions to a reviewed full commit SHA when the workflow is security-sensitive.
lines 17
.github/workflows/docker-image.yml:17 (2 hits)
CI/CD securitySupply chainGitHub Actions
high Security checks software dependencies conf 0.88 lxml: PYSEC-2026-87
lxml is a library for processing XML and HTML in the Python language. Prior to 6.1.0, using either of the two parsers in the default configuration (with resolve_entities=True) allows untrusted XML input to read local files. Setting the resolve_entities option explicitly to resolve_entities='interna…
backend/uv.lock
high Security checks software dependencies conf 0.88 mistune: GHSA-8mp2-v27r-99xp
Mistune has a ReDoS in LINK_TITLE_RE that allows denial of service via crafted Markdown input
backend/uv.lock
high Security checks software dependencies conf 0.88 mistune: PYSEC-2026-168
Mistune is a Python Markdown parser with renderers and plugins. In 3.2.0 and realier, in src/mistune/directives/image.py, the render_figure() function concatenates figclass and figwidth options directly into HTML attributes without escaping. This allows attribute injection and XSS even when HTMLRen…
backend/uv.lock
high Security checks software dependencies conf 0.88 nbconvert: GHSA-xm59-rqc7-hhvf
nbconvert has an uncontrolled search path that leads to unauthorized code execution on Windows
backend/uv.lock
high Security checks software dependencies conf 0.88 nltk: GHSA-469j-vmhf-r6v7
NLTK has a Downloader Path Traversal Vulnerability (AFO) - Arbitrary File Overwrite
backend/uv.lock
high Security checks software dependencies conf 0.88 nltk: GHSA-jm6w-m3j8-898g
Unauthenticated remote shutdown in nltk.app.wordnet_app
backend/uv.lock
high Security checks software dependencies conf 0.88 nltk: PYSEC-2026-97
A vulnerability in the `filestring()` function of the `nltk.util` module in nltk version 3.9.2 allows arbitrary file read due to improper validation of input paths. The function directly opens files specified by user input without sanitization, enabling attackers to access sensitive system files by…
backend/uv.lock
high Security checks software dependencies conf 0.88 nltk: PYSEC-2026-98
A vulnerability in NLTK versions up to and including 3.9.2 allows arbitrary file read via path traversal in multiple CorpusReader classes, including WordListCorpusReader, TaggedCorpusReader, and BracketParseCorpusReader. These classes fail to properly sanitize or validate file paths, enabling attac…
backend/uv.lock
high Security checks software dependencies conf 0.88 nltk: PYSEC-2026-99
NLTK versions <=3.9.2 are vulnerable to arbitrary code execution due to improper input validation in the StanfordSegmenter module. The module dynamically loads external Java .jar files without verification or sandboxing. An attacker can supply or replace the JAR file, enabling the execution of arbi…
backend/uv.lock
high Security checks software dependencies conf 0.88 pillow: GHSA-cfh3-3jmp-rvhc
Pillow affected by out-of-bounds write when loading PSD images
backend/uv.lock
high Security checks software dependencies conf 0.88 pillow: GHSA-pwv6-vv43-88gr
Pillow has an OOB Write with Invalid PSD Tile Extents (Integer Overflow)
backend/uv.lock
high Security checks software dependencies conf 0.88 pillow: GHSA-whj4-6x5x-4v2j
FITS GZIP decompression bomb in Pillow
backend/uv.lock
high Security checks software dependencies conf 0.88 pillow: PYSEC-2026-165
Pillow is a Python imaging library. Prior to version 12.2.0, if a font advances for each glyph by an exceeding large amount, when Pillow keeps track of the current position, it may lead to an integer overflow. This issue has been patched in version 12.2.0.
backend/uv.lock
high Security checks software dependencies conf 0.88 pyjwt: PYSEC-2025-183
pyjwt v2.10.1 was discovered to contain weak encryption. NOTE: this is disputed by the Supplier because the key length is chosen by the application that uses the library (admittedly, library users may benefit from a minimum value and a mechanism for opting in to strict enforcement).
backend/uv.lock
high Security checks software dependencies conf 0.88 pyjwt: PYSEC-2026-120
PyJWT is a JSON Web Token implementation in Python. Prior to 2.12.0, PyJWT does not validate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. When a JWS token contains a crit array listing extensions that PyJWT does not understand, the library accepts the token instead of rejecting…
backend/uv.lock
high Security checks software dependencies conf 0.88 pyjwt: PYSEC-2026-175
PyJWT is a JSON Web Token implementation in Python. Prior to 2.13.0, PyJWKClient passes its uri argument directly to urllib.request.urlopen() which uses Python stdlib's default OpenerDirector registering HTTPHandler, HTTPSHandler, FTPHandler, FileHandler, and DataHandler. There is currently no docu…
backend/uv.lock
high Security checks software dependencies conf 0.88 pyjwt: PYSEC-2026-176
PyJWT is a JSON Web Token implementation in Python. From 2.9.0 to 2.12.1, there is a verifier-side algorithm allow-list bypass when jwt.decode() or jwt.decode_complete() are called with a PyJWK key. The token header alg is checked against the caller-supplied algorithms allow-list, but signature ver…
backend/uv.lock
high Security checks software dependencies conf 0.88 pyjwt: PYSEC-2026-177
PyJWT is a JSON Web Token implementation in Python. Prior to 2.13.0, PyJWKClient.get_signing_key() forces a fresh HTTP request to the JWKS endpoint for every JWT with an unknown kid value, with no rate limiting. Since kid comes from the unverified token header, an attacker can trigger unlimited out…
backend/uv.lock
high Security checks software dependencies conf 0.88 pyjwt: PYSEC-2026-178
PyJWT is a JSON Web Token implementation in Python. From 2.8.0 to 2.12.1, when verifying detached JWS tokens using the unencoded-payload option ("b64": false, RFC 7797), PyJWT performs Base64URL decoding of the compact-serialization payload segment before enforcing the detached-payload rules. For b…
backend/uv.lock
high Security checks software dependencies conf 0.88 pyjwt: PYSEC-2026-179
PyJWT is a JSON Web Token implementation in Python. Prior to 2.13.0, when the verifier is decoding JSON Web Tokens, while supporting both asymmetric and HMAC algorithms, the library does not validate use of JSON Web Keys in HMAC algorithm, allowing attacker to use the issuer public key as the secre…
backend/uv.lock
high Security checks software dependencies conf 0.88 python-multipart: GHSA-pp6c-gr5w-3c5g
python-multipart has Denial of Service via unbounded multipart part headers
backend/uv.lock
high Security checks software dependencies conf 0.88 python-multipart: GHSA-wp53-j4wj-2cfg
Python-Multipart has Arbitrary File Write via Non-Default Configuration
backend/uv.lock
high Security checks software dependencies conf 0.88 starlette: PYSEC-2026-161
BadHost: Missing Host header validation poisons request.url.path, bypassing path-based security checks
backend/uv.lock
high Security checks software dependencies conf 0.88 torch: PYSEC-2026-139
A vulnerability was identified in PyTorch 2.10.0. The affected element is an unknown function of the component pt2 Loading Handler. The manipulation leads to deserialization. The attack can only be performed from a local environment. The exploit is publicly available and might be used. The project …
backend/uv.lock
high Security checks software dependencies conf 0.88 tornado: GHSA-fqwm-6jpj-5wxc
Tornado has cookie attribute injection via .RequestHandler.set_cookie
backend/uv.lock
high Security checks software dependencies conf 0.88 tornado: PYSEC-2026-140
Tornado is a Python web framework and asynchronous networking library. In versions of Tornado prior to 6.5.5, the only limit on the number of parts in multipart/form-data is the max_body_size setting (default 100MB). Since parsing occurs synchronously on the main thread, this creates the possibilit…
backend/uv.lock
high Security checks software dependencies conf 0.88 transformers: PYSEC-2025-217
Hugging Face Transformers X-CLIP Checkpoint Conversion Deserialization of Untrusted Data Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of Hugging Face Transformers. User interaction is required to exploit this vul…
backend/uv.lock
high Security checks software dependencies conf 0.88 urllib3: GHSA-38jv-5279-wg99
Decompression-bomb safeguards bypassed when following HTTP redirects (streaming API)
backend/uv.lock
high Security checks software dependencies conf 0.88 urllib3: PYSEC-2026-141
urllib3 is an HTTP client library for Python. From 1.23 to before 2.7.0, cross-origin redirects followed from the low-level API via ProxyManager.connection_from_url().urlopen(..., assert_same_host=False) still forward these sensitive headers. This vulnerability is fixed in 2.7.0.
backend/uv.lock
high Security checks software dependencies conf 0.88 urllib3: PYSEC-2026-142
urllib3 is an HTTP client library for Python. From 2.6.0 to before 2.7.0, urllib3 could decompress the whole response instead of the requested portion (1) during the second HTTPResponse.read(amt=N) call when the response was decompressed using the official Brotli library or (2) when HTTPResponse.dr…
backend/uv.lock
high Security checks software dependencies conf 0.88 vite: GHSA-p9ff-h696-f583
Vite Vulnerable to Arbitrary File Read via Vite Dev Server WebSocket
frontend/package-lock.json
high Security checks software dependencies conf 0.88 vite: GHSA-v2wj-q39q-566r
Vite: `server.fs.deny` bypassed with queries
frontend/package-lock.json
low Security checks quality Error handling conf 1.00 [ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even in cleanup code, log at DEBUG level.
Log the error: `except Exception: logger.debug('cleanup failed', exc_info=True)`. Or handle specific exception types.
backend/app/utils/file_parser.py:42
medium Security checks quality Quality Average file size is 700 lines (recommend <300)
Refactor large files by extracting related functions into separate modules. Target files with 300+ lines first. Use the Single Responsibility Principle — each module should have one clear purpose.
medium Security checks software dependencies conf 0.88 axios: GHSA-3w6x-2g7m-8v23
Axios: Invisible JSON Response Tampering via Prototype Pollution Gadget in `parseReviver`
frontend/package-lock.json
medium Security checks software dependencies conf 0.88 axios: GHSA-445q-vr5w-6q77
Axios: CRLF Injection in multipart/form-data body via unsanitized blob.type in formDataToStream
frontend/package-lock.json
medium Security checks software dependencies conf 0.88 axios: GHSA-5c9x-8gcm-mpgx
Axios' HTTP adapter-streamed uploads bypass maxBodyLength when maxRedirects: 0
frontend/package-lock.json
medium Security checks software dependencies conf 0.88 axios: GHSA-62hf-57xw-28j9
Axios: unbounded recursion in toFormData causes DoS via deeply nested request data
frontend/package-lock.json
medium Security checks software dependencies conf 0.88 axios: GHSA-898c-q2cr-xwhg
axios has DoS & Header Injection via Prototype Pollution Read-Side Gadgets in axios merge functions
frontend/package-lock.json
medium Security checks software dependencies conf 0.88 axios: GHSA-fvcv-3m26-pcqx
Axios has Unrestricted Cloud Metadata Exfiltration via Header Injection Chain
frontend/package-lock.json
medium Security checks software dependencies conf 0.88 axios: GHSA-m7pr-hjqh-92cm
Axios: no_proxy bypass via IP alias allows SSRF
frontend/package-lock.json
medium Security checks software dependencies conf 0.88 axios: GHSA-vf2m-468p-8v99
Axios: HTTP adapter streamed responses bypass maxContentLength
frontend/package-lock.json
medium Security checks software dependencies conf 0.88 axios: GHSA-w9j2-pvgh-6h63
Axios: Authentication Bypass via Prototype Pollution Gadget in `validateStatus` Merge Strategy
frontend/package-lock.json
medium Security checks software dependencies conf 0.88 axios: GHSA-xx6v-rp6x-q39c
Axios: XSRF Token Cross-Origin Leakage via Prototype Pollution Gadget in `withXSRFToken` Boolean Coercion
frontend/package-lock.json
low Security checks quality Error handling conf 0.55 ✓ Repobility 25 occurrences Broad exception handler needs review
This handler catches Exception/BaseException. It is actionable when it swallows errors without logging, re-raising, or returning a structured error. Handlers that intentionally convert exceptions into typed error results should not be treated as high risk.
5 files, 25 locations
backend/scripts/run_parallel_simulation.py:342, 465, 476, 492, 503, 555, 743, 852, +1 more (9 hits)
backend/scripts/run_reddit_simulation.py:242, 271, 294, 338, 615, 682 (6 hits)
backend/scripts/run_twitter_simulation.py:242, 271, 294, 338, 622, 694 (6 hits)
backend/app/services/simulation_runner.py:803, 1156, 1168 (3 hits)
backend/app/services/simulation_config_generator.py:524
Error handlingquality
medium Security checks cicd CI/CD security conf 0.94 Compose service `mirofish` image uses the latest tag
The latest tag is mutable and can change without a code review, producing different images from the same source.
docker-compose.yml:1 CI/CD securitycontainers
high Security checks cicd CI/CD security conf 0.82 Docker final stage has no non-root USER
Docker images run as root unless the image or Dockerfile switches to a non-root user.
Dockerfile:1 CI/CD securitycontainers
medium Security checks cicd CI/CD security conf 0.76 Dockerfile copies broad context with incomplete .dockerignore
COPY . or ADD . is safer when .dockerignore excludes secrets, git history, keys, and generated artifacts.
Dockerfile:24 CI/CD securitycontainers
medium Security checks software dependencies conf 0.88 filelock: GHSA-qmgc-5h2g-mvrw
filelock Time-of-Check-Time-of-Use (TOCTOU) Symlink Vulnerability in SoftFileLock
backend/uv.lock
medium Security checks software dependencies conf 0.88 follow-redirects: GHSA-r4q5-vmmm-2653
follow-redirects leaks Custom Authentication Headers to Cross-Domain Redirect Targets
frontend/package-lock.json
high Security checks software dependencies conf 0.90 GitHub Action `actions/checkout@v4` is 2 major version(s) behind (latest v6.0.3)
`uses: actions/checkout@v4` is 2 major version(s) behind the latest published release v6.0.3. Old action majors run on deprecated runner images / Node versions and miss upstream fixes. This is the exact 'outdated GitHub Action' class Dependabot raises — and which Repobility had no coverage for.
.github/workflows/docker-image.yml:17
medium Security checks software dependencies conf 0.88 idna: GHSA-65pc-fj4g-8rjx
Internationalized Domain Names in Applications (IDNA): Specially crafted inputs to idna.encode() can bypass CVE-2024-3651 fix
backend/uv.lock
medium Security checks software dependencies conf 0.88 marshmallow: GHSA-428g-f7cq-pgp5
Marshmallow has DoS in Schema.load(many)
backend/uv.lock
medium Security checks software dependencies conf 0.88 mistune: GHSA-8g87-j6q8-g93x
Mistune Math Plugin has an XSS Escape Bypass
backend/uv.lock
medium Security checks software dependencies conf 0.88 mistune: GHSA-v87v-83h2-53w7
Mistune Heading ID Attribute has Injection XSS
backend/uv.lock
medium Security checks software dependencies conf 0.88 nbconvert: GHSA-4c99-qj7h-p3vg
nbconvert has an Arbitrary File Write via Path Traversal in Cell Attachment Filenames
backend/uv.lock
medium Security checks software dependencies conf 0.88 nbconvert: GHSA-7jqv-fw35-gmx9
nbconvert has an Arbitrary File Read via Path Traversal in HTMLExporter Image Embedding
backend/uv.lock
medium Security checks software dependencies conf 0.88 nltk: GHSA-gfwx-w7gr-fvh7
Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') in nltk
backend/uv.lock
medium Security checks software dependencies conf 0.88 nltk: GHSA-rf74-v2fm-23pw
Natural Language Toolkit (NLTK) has unbounded recursion in JSONTaggedDecoder.decode_obj() may cause DoS
backend/uv.lock
medium Security checks software dependencies conf 0.90 npm package `concurrently` is 1 major version(s) behind (9.2.1 -> 10.0.3)
`concurrently` is pinned/resolved at 9.2.1 but the latest stable release on the npm registry is 10.0.3 (1 major version(s) behind). Outdated dependencies accumulate unpatched bugs and make future security upgrades harder. This is the version-currency signal Dependabot version-update PRs raise.
package.json
medium Security checks software dependencies conf 0.90 npm package `vue-router` is 1 major version(s) behind (4.6.3 -> 5.1.0)
`vue-router` is pinned/resolved at 4.6.3 but the latest stable release on the npm registry is 5.1.0 (1 major version(s) behind). Outdated dependencies accumulate unpatched bugs and make future security upgrades harder. This is the version-currency signal Dependabot version-update PRs raise.
frontend/package.json
medium Security checks software dependencies conf 0.88 pillow: GHSA-r73j-pqj5-w3x7
Pillow has a PDF Parsing Trailer Infinite Loop (DoS)
backend/uv.lock
medium Security checks software dependencies conf 0.88 postcss: GHSA-qx2v-qp2m-jg93
PostCSS has XSS via Unescaped </style> in its CSS Stringify Output
frontend/package-lock.json
medium Security checks software dependencies conf 0.88 pydantic: GHSA-mr82-8j83-vxmv
Pydantic regular expression denial of service
backend/requirements.txt
medium Security checks software dependencies conf 0.88 pypdf: GHSA-2q4j-m29v-hq73
pypdf has possible Infinite Loop when processing outlines/bookmarks
backend/uv.lock
medium Security checks software dependencies conf 0.88 pypdf: GHSA-3crg-w4f6-42mx
pypdf: Manipulated XMP metadata entity declarations can exhaust RAM
backend/uv.lock
medium Security checks software dependencies conf 0.88 pypdf: GHSA-4pxv-j86v-mhcw
pypdf: Possible long runtimes for wrong size values in incremental mode
backend/uv.lock
medium Security checks software dependencies conf 0.88 pypdf: GHSA-7gw9-cf7v-778f
pypdf: Manipulated FlateDecode predictor parameters can exhaust RAM
backend/uv.lock
medium Security checks software dependencies conf 0.88 pypdf: GHSA-87mj-5ggw-8qc3
pypdf: Possible infinite loop during recovery attempts in DictionaryObject.read_from_stream
backend/uv.lock
medium Security checks software dependencies conf 0.88 pypdf: GHSA-996q-pr4m-cvgq
pypdf has a possible infinite loop when processing TreeObject
backend/uv.lock
medium Security checks software dependencies conf 0.88 pypdf: GHSA-9m86-7pmv-2852
pypdf vulnerable to inefficient decoding of ASCIIHexDecode streams
backend/uv.lock
medium Security checks software dependencies conf 0.88 pypdf: GHSA-9mvc-8737-8j8h
pypdf possibly has long runtimes for malformed FlateDecode streams
backend/uv.lock
medium Security checks software dependencies conf 0.88 pypdf: GHSA-f2v5-7jq9-h8cg
pypdf: Manipulated RunLengthDecode streams can exhaust RAM
backend/uv.lock
medium Security checks software dependencies conf 0.88 pypdf: GHSA-hqmh-ppp3-xvm7
pypdf: manipulated stream length values can exhaust RAM
backend/uv.lock
medium Security checks software dependencies conf 0.88 pypdf: GHSA-jj6c-8h6c-hppx
pypdf has long runtimes for wrong size values in cross-reference and object streams
backend/uv.lock
medium Security checks software dependencies conf 0.88 pypdf: GHSA-qpxp-75px-xjcp
pypdf has inefficient decoding of array-based streams
backend/uv.lock
medium Security checks software dependencies conf 0.88 pypdf: GHSA-wgvp-vg3v-2xq3
pypdf has possible long runtimes/large memory usage for large /ToUnicode streams
backend/uv.lock
medium Security checks software dependencies conf 0.88 pypdf: GHSA-x284-j5p8-9c5p
pypdf: Manipulated FlateDecode image dimensions can exhaust RAM
backend/uv.lock
medium Security checks software dependencies conf 0.88 pypdf: GHSA-x7hp-r3qg-r3cj
pypdf: Manipulated FlateDecode XFA streams can exhaust RAM
backend/uv.lock
medium Security checks software dependencies conf 0.88 pytest: GHSA-6w46-j5rx-g56g
pytest has vulnerable tmpdir handling
backend/uv.lock
medium Security checks software dependencies conf 0.88 2 occurrences python-dotenv: GHSA-mf9w-mj56-hr94
python-dotenv: Symlink following in set_key allows arbitrary file overwrite via cross-device rename fallback
2 files, 2 locations
backend/requirements.txt
backend/uv.lock
medium Security checks software dependencies conf 0.88 python-multipart: GHSA-mj87-hwqh-73pj
python-multipart affected by Denial of Service via large multipart preamble or epilogue data
backend/uv.lock
medium Security checks software dependencies conf 0.88 requests: GHSA-gc5v-m9x4-r6x2
Requests has Insecure Temp File Reuse in its extract_zipped_paths() utility function
backend/uv.lock
medium Security checks software dependencies conf 0.88 tornado: GHSA-78cv-mqj4-43f7
Tornado has incomplete validation of cookie attributes
backend/uv.lock
medium Security checks software dependencies conf 0.88 transformers: GHSA-69w3-r845-3855
HuggingFace Transformers allows for arbitrary code execution in the `Trainer` class
backend/uv.lock
medium Security checks software dependencies conf 0.88 unstructured: GHSA-32r8-54hf-c9p3
unstructured XML External Entity (XXE)
backend/uv.lock
medium Security checks software dependencies conf 0.88 virtualenv: GHSA-597g-3phw-6986
virtualenv Has TOCTOU Vulnerabilities in Directory Creation
backend/uv.lock
medium Security checks software dependencies conf 0.88 vite: GHSA-4w7w-66w2-5vf9
Vite Vulnerable to Path Traversal in Optimized Deps `.map` Handling
frontend/package-lock.json
medium Security checks software dependencies conf 0.88 werkzeug: GHSA-29vq-49wr-vm6x
Werkzeug safe_join() allows Windows special device names
backend/uv.lock
medium Security checks software dependencies conf 0.88 werkzeug: GHSA-87hc-h4r5-73f7
Werkzeug safe_join() allows Windows special device names with compound extensions
backend/uv.lock
medium System graph hardware Security conf 1.00 Dockerfile runs as root: Dockerfile
No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image.
Container
medium System graph cicd CI/CD security conf 1.00 5 occurrences GitHub Action is tag-pinned rather than SHA-pinned
docker/setup-qemu-action@v3 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA.
lines 20, 23, 26, 34, 43
.github/workflows/docker-image.yml:20, 23, 26, 34, 43 (5 hits)
CI/CD securitySupply chainGithub actions
medium System graph cicd CI/CD security conf 1.00 GitHub Actions workflow grants broad write permissions
CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions.
.github/workflows/docker-image.yml CI/CD securitySupply chainGithub actions
medium System graph security Coverage conf 1.00 No auth library detected
The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). Either auth lives in custom code, in a separate service, or is missing.
auth
medium System graph quality Tests conf 1.00 Very low test-to-source ratio
1 test file(s) for 43 source file(s) (ratio 0.02). Consider adding integration or unit tests for critical paths.
Coverage
low Security checks cicd CI/CD security conf 0.72 .dockerignore misses sensitive defaults
.dockerignore exists but does not cover common secret or VCS patterns.
.dockerignore CI/CD securitycontainers
low Security checks software dependencies conf 0.88 axios: GHSA-xhjh-pmcv-23jw
Axios: Null Byte Injection via Reverse-Encoding in AxiosURLSearchParams
frontend/package-lock.json
high Security checks cicd CI/CD security conf 0.56 Compose service does not declare a runtime user
If the image does not define USER internally, this service may run as root.
docker-compose.yml:1 CI/CD securitycontainers
high Security checks cicd CI/CD security conf 0.62 Compose service lacks no-new-privileges hardening
no-new-privileges prevents processes from gaining additional privileges through setuid binaries or file capabilities.
docker-compose.yml:1 CI/CD securitycontainers
low Security checks quality Quality conf 0.60 10 occurrences Duplicated implementation block across source files
Duplicate implementation blocks are maintenance debt. Keep them visible, but they are not a high-severity defect unless the duplicated logic is security-sensitive or drifting.
5 files, 10 locations
frontend/src/views/SimulationView.vue:1, 51, 80, 322 (4 hits)
frontend/src/views/SimulationRunView.vue:1, 85, 340 (3 hits)
backend/scripts/run_twitter_simulation.py:19
frontend/src/views/MainView.vue:1
frontend/src/views/ReportView.vue:1
duplicationquality
low Security checks software dependencies conf 0.88 2 occurrences flask: GHSA-68rp-wp8r-4726
Flask session does not add `Vary: Cookie` header when accessed in some ways
2 files, 2 locations
backend/requirements.txt
backend/uv.lock
low Security checks software dependencies conf 0.90 npm package `axios` is minor version(s) behind (1.14.0 -> 1.17.0)
`axios` is pinned/resolved at 1.14.0 but the latest stable release on the npm registry is 1.17.0 (minor version(s) behind). Outdated dependencies accumulate unpatched bugs and make future security upgrades harder. This is the version-currency signal Dependabot version-update PRs raise.
frontend/package.json
low Security checks software dependencies conf 0.90 npm package `vue-i18n` is minor version(s) behind (11.3.0 -> 11.4.4)
`vue-i18n` is pinned/resolved at 11.3.0 but the latest stable release on the npm registry is 11.4.4 (minor version(s) behind). Outdated dependencies accumulate unpatched bugs and make future security upgrades harder. This is the version-currency signal Dependabot version-update PRs raise.
frontend/package.json
low Security checks software dependencies conf 0.88 pygments: GHSA-5239-wwwm-4pmq
Pygments has Regular Expression Denial of Service (ReDoS) due to Inefficient Regex for GUID Matching
backend/uv.lock
low Security checks software dependencies conf 0.88 pypdf: GHSA-2rw7-x74f-jg35
pypdf has a possible infinite loop when loading circular /Prev entries in cross-reference streams
backend/uv.lock
low Security checks software dependencies conf 0.88 pypdf: GHSA-4f6g-68pf-7vhv
pypdf has possible long runtimes for malformed startxref
backend/uv.lock
low Security checks software dependencies conf 0.88 pypdf: GHSA-4xc4-762w-m6cg
pypdf has possible long runtimes for missing /Root object with large /Size values
backend/uv.lock
low Security checks software dependencies conf 0.90 Python package `zep-cloud` is minor version(s) behind (3.13.0 -> 3.23.0)
`zep-cloud==3.13.0` is minor version(s) behind the latest stable release on PyPI (3.23.0). Pinned-but-stale Python dependencies drift away from upstream security and bugfix releases. This is the version-currency signal Dependabot raises.
backend/requirements.txt:17
low System graph quality Integrity conf 1.00 11 env vars used in code but missing from .env.example
Drift between code and config docs. The first few: `FLASK_DEBUG`, `FLASK_HOST`, `FLASK_PORT`, `OASIS_DEFAULT_MAX_ROUNDS`, `OPENAI_API_KEY`, `REPORT_AGENT_MAX_REFLECTION_ROUNDS`, `REPORT_AGENT_MAX_TOOL_CALLS`, `REPORT_AGENT_TEMPERATURE` + 3 more. Add them (with a placeholder/comment) to .env.example…
config drift
low System graph hardware Coverage conf 1.00 Containers defined but no K8s/orchestration manifest found
Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo.
Deployment
low System graph hardware Supply chain conf 1.00 Docker base image is tag-pinned but not digest-pinned: python:3.11
Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter.
Dockerfile:1 containersPinned dependencies
low System graph software Dead code candidate conf 1.00 File has no detected symbols: frontend/src/main.js
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph software Dead code candidate conf 1.00 File has no detected symbols: frontend/vite.config.js
Source file with no class/function declarations — possible config, dead code, or scratch file.
low System graph frontend Frontend quality conf 1.00 Icon-only button without accessible name — frontend/src/components/GraphPanel.vue:58
A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work. Why: P3 in CHECKLIST.md — icon-only buttons skipped a title. Rule id: fq.button.no-label
Fq button no label
low System graph frontend Frontend quality conf 1.00 Icon-only button without accessible name — frontend/src/components/HistoryDatabase.vue:122
A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work. Why: P3 in CHECKLIST.md — icon-only buttons skipped a title. Rule id: fq.button.no-label
Fq button no label
low System graph frontend Frontend quality conf 1.00 Icon-only button without accessible name — frontend/src/components/Step1GraphBuild.vue:37
A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work. Why: P3 in CHECKLIST.md — icon-only buttons skipped a title. Rule id: fq.button.no-label
Fq button no label
low System graph frontend Frontend quality conf 1.00 Icon-only button without accessible name — frontend/src/components/Step2EnvSetup.vue:543
A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work. Why: P3 in CHECKLIST.md — icon-only buttons skipped a title. Rule id: fq.button.no-label
Fq button no label
low System graph frontend Frontend quality conf 1.00 Icon-only button without accessible name — frontend/src/views/Home.vue:50
A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work. Why: P3 in CHECKLIST.md — icon-only buttons skipped a title. Rule id: fq.button.no-label
Fq button no label
low System graph frontend Frontend quality conf 1.00 Icon-only button without accessible name — frontend/src/views/Process.vue:63
A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work. Why: P3 in CHECKLIST.md — icon-only buttons skipped a title. Rule id: fq.button.no-label
Fq button no label
low System graph quality Integrity conf 1.00 15 occurrences Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: backend/scripts/action_logger.py:log_round_start, backend/scripts/action_logger.py:log_round_start This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consolidate or document why they're …
15 occurrences
repo-level (15 hits)
duplicatesduplication
low System graph quality Integrity conf 1.00 5 occurrences Near-duplicate function bodies in 3 places
Functions with the same first-5-line body hash: backend/scripts/action_logger.py:log_action, backend/scripts/action_logger.py:log, backend/scripts/action_logger.py:log_action This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consolid…
5 occurrences
repo-level (5 hits)
duplicatesduplication
low System graph software Dead code conf 1.00 Possibly dead Python function: add_progress_callback
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
backend/app/api/graph.py:426
low System graph software Dead code conf 1.00 Possibly dead Python function: build_graph_async
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
backend/app/services/graph_builder.py:54
low System graph software Dead code conf 1.00 Possibly dead Python function: build_task
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
backend/app/api/graph.py:378
low System graph software Dead code conf 1.00 Possibly dead Python function: call_batch_with_retry
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
backend/app/utils/retry.py:195
low System graph software Dead code conf 1.00 Possibly dead Python function: cleanup_old_tasks
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
backend/app/models/task.py:174
low System graph software Dead code conf 1.00 Possibly dead Python function: decorator
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
backend/app/utils/retry.py:94
low System graph software Dead code conf 1.00 3 occurrences Possibly dead Python function: filter
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
3 files, 3 locations
backend/scripts/run_parallel_simulation.py:109
backend/scripts/run_reddit_simulation.py:73
backend/scripts/run_twitter_simulation.py:73
low System graph software Dead code conf 1.00 Possibly dead Python function: fix_string
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
backend/app/services/simulation_config_generator.py:514
low System graph software Dead code conf 1.00 Possibly dead Python function: fix_string_newlines
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
backend/app/services/oasis_profile_generator.py:620
low System graph software Dead code conf 1.00 Possibly dead Python function: generate_python_code
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
backend/app/services/ontology_generator.py:400
low System graph software Dead code conf 1.00 Possibly dead Python function: generate_single_profile
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
backend/app/services/oasis_profile_generator.py:922
low System graph software Dead code conf 1.00 Possibly dead Python function: log_planning_context
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
backend/app/services/report_agent.py:121
low System graph software Dead code conf 1.00 Possibly dead Python function: relevance_score
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
backend/app/services/zep_tools.py:1215
low System graph software Dead code conf 1.00 Possibly dead Python function: replace_unicode
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
backend/scripts/run_twitter_simulation.py:61
low System graph software Dead code conf 1.00 Possibly dead Python function: replace_unicode
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
backend/scripts/run_reddit_simulation.py:61
low System graph software Dead code conf 1.00 Possibly dead Python function: retry_with_backoff
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
backend/app/utils/retry.py:15
low System graph software Dead code conf 1.00 Possibly dead Python function: retry_with_backoff_async
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
backend/app/utils/retry.py:80
low System graph software Dead code conf 1.00 Possibly dead Python function: run_generate
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
backend/app/api/report.py:128
low System graph software Dead code conf 1.00 Possibly dead Python function: run_prepare
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
backend/app/api/simulation.py:508
low System graph software Dead code conf 1.00 Possibly dead Python function: save_profiles_to_json
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
backend/app/services/oasis_profile_generator.py:1196
low System graph software Dead code conf 1.00 Possibly dead Python function: search_edges
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
backend/app/services/oasis_profile_generator.py:319
low System graph software Dead code conf 1.00 Possibly dead Python function: search_nodes
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
backend/app/services/oasis_profile_generator.py:344
low System graph software Dead code conf 1.00 Possibly dead Python function: set_graph_id
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
backend/app/services/oasis_profile_generator.py:847
low System graph software Dead code conf 1.00 Possibly dead Python function: wait_progress_callback
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
backend/app/api/graph.py:454
low System graph frontend Frontend quality conf 1.00 Stray `console.log` in TS/JS — frontend/src/views/Process.vue:757
Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable. Why: Hygiene — easy to leak debug output. Rule id: fq.console-leak
Fq console leak
low System graph api Wiring conf 1.00 Unused endpoint: ANY /<report_id>
`backend/app/api/report.py` declares `ANY /<report_id>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /<report_id>/download
`backend/app/api/report.py` declares `ANY /<report_id>/download` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /<report_id>/progress
`backend/app/api/report.py` declares `ANY /<report_id>/progress` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /<report_id>/section/<int:section_index>
`backend/app/api/report.py` declares `ANY /<report_id>/section/<int:section_index>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consume…
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /<report_id>/sections
`backend/app/api/report.py` declares `ANY /<report_id>/sections` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /<simulation_id>
`backend/app/api/simulation.py` declares `ANY /<simulation_id>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /<simulation_id>/actions
`backend/app/api/simulation.py` declares `ANY /<simulation_id>/actions` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /<simulation_id>/agent-stats
`backend/app/api/simulation.py` declares `ANY /<simulation_id>/agent-stats` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /<simulation_id>/comments
`backend/app/api/simulation.py` declares `ANY /<simulation_id>/comments` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /<simulation_id>/config
`backend/app/api/simulation.py` declares `ANY /<simulation_id>/config` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /<simulation_id>/config/download
`backend/app/api/simulation.py` declares `ANY /<simulation_id>/config/download` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /<simulation_id>/config/realtime
`backend/app/api/simulation.py` declares `ANY /<simulation_id>/config/realtime` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /<simulation_id>/posts
`backend/app/api/simulation.py` declares `ANY /<simulation_id>/posts` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /<simulation_id>/profiles
`backend/app/api/simulation.py` declares `ANY /<simulation_id>/profiles` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /<simulation_id>/profiles/realtime
`backend/app/api/simulation.py` declares `ANY /<simulation_id>/profiles/realtime` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes …
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /<simulation_id>/run-status
`backend/app/api/simulation.py` declares `ANY /<simulation_id>/run-status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /<simulation_id>/run-status/detail
`backend/app/api/simulation.py` declares `ANY /<simulation_id>/run-status/detail` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes …
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /<simulation_id>/timeline
`backend/app/api/simulation.py` declares `ANY /<simulation_id>/timeline` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /build
`backend/app/api/graph.py` declares `ANY /build` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /by-simulation/<simulation_id>
`backend/app/api/report.py` declares `ANY /by-simulation/<simulation_id>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /chat
`backend/app/api/report.py` declares `ANY /chat` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /check/<simulation_id>
`backend/app/api/report.py` declares `ANY /check/<simulation_id>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /close-env
`backend/app/api/simulation.py` declares `ANY /close-env` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /create
`backend/app/api/simulation.py` declares `ANY /create` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /data/<graph_id>
`backend/app/api/graph.py` declares `ANY /data/<graph_id>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /delete/<graph_id>
`backend/app/api/graph.py` declares `ANY /delete/<graph_id>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /entities/<graph_id>
`backend/app/api/simulation.py` declares `ANY /entities/<graph_id>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /entities/<graph_id>/<entity_uuid>
`backend/app/api/simulation.py` declares `ANY /entities/<graph_id>/<entity_uuid>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes …
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /entities/<graph_id>/by-type/<entity_type>
`backend/app/api/simulation.py` declares `ANY /entities/<graph_id>/by-type/<entity_type>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who c…
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /env-status
`backend/app/api/simulation.py` declares `ANY /env-status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /generate
`backend/app/api/report.py` declares `ANY /generate` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /generate-profiles
`backend/app/api/simulation.py` declares `ANY /generate-profiles` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /generate/status
`backend/app/api/report.py` declares `ANY /generate/status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /history
`backend/app/api/simulation.py` declares `ANY /history` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /interview
`backend/app/api/simulation.py` declares `ANY /interview` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /interview/all
`backend/app/api/simulation.py` declares `ANY /interview/all` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /interview/batch
`backend/app/api/simulation.py` declares `ANY /interview/batch` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /interview/history
`backend/app/api/simulation.py` declares `ANY /interview/history` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /list
`backend/app/api/simulation.py` declares `ANY /list` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /ontology/generate
`backend/app/api/graph.py` declares `ANY /ontology/generate` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /prepare
`backend/app/api/simulation.py` declares `ANY /prepare` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /prepare/status
`backend/app/api/simulation.py` declares `ANY /prepare/status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /project/<project_id>
`backend/app/api/graph.py` declares `ANY /project/<project_id>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /project/<project_id>/reset
`backend/app/api/graph.py` declares `ANY /project/<project_id>/reset` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /project/list
`backend/app/api/graph.py` declares `ANY /project/list` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /script/<script_name>/download
`backend/app/api/simulation.py` declares `ANY /script/<script_name>/download` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /start
`backend/app/api/simulation.py` declares `ANY /start` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /stop
`backend/app/api/simulation.py` declares `ANY /stop` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /task/<task_id>
`backend/app/api/graph.py` declares `ANY /task/<task_id>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph api Wiring conf 1.00 Unused endpoint: ANY /tasks
`backend/app/api/graph.py` declares `ANY /tasks` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
Unused endpoint
low System graph quality Complexity conf 1.00 Very large file: backend/app/api/simulation.py (2716 lines)
Files with >800 lines often hide complexity hotspots and discourage tests.
low System graph quality Complexity conf 1.00 Very large file: backend/app/services/report_agent.py (2572 lines)
Files with >800 lines often hide complexity hotspots and discourage tests.
low System graph quality Complexity conf 1.00 Very large file: backend/app/services/simulation_runner.py (1768 lines)
Files with >800 lines often hide complexity hotspots and discourage tests.
low System graph quality Complexity conf 1.00 Very large file: backend/app/services/zep_tools.py (1736 lines)
Files with >800 lines often hide complexity hotspots and discourage tests.
low System graph quality Complexity conf 1.00 Very large file: backend/scripts/run_parallel_simulation.py (1699 lines)
Files with >800 lines often hide complexity hotspots and discourage tests.
For AI agents: Voting guide (TP/FP) MCP manifest Stdio wrapper SARIF Integrate Findings queue Vote TP/FP on findings to calibrate the engine.
For AI agents + API integrations
Email me when this repo regresses
Free. We re-scan periodically; new criticals → your inbox. No signup required for the scan itself.
API access

This page is publicly accessible at: https://repobility.com/scan/4add78d0-7bff-4c0e-a52c-ccae6cb92627/

To check status programmatically (no auth required):

curl -s https://repobility.com/api/v1/public/scan/4add78d0-7bff-4c0e-a52c-ccae6cb92627/

Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.