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.
51 of your 70 findings came from Repobility's proprietary detections. ✓ Repobility tags below mark them.

Scan timing: clone 2.36s · analysis 1.2s · 4.4 MB · GitHub API rate-limit (preflight)

personaplex

https://github.com/NVIDIA/personaplex · scanned 2026-05-24 01:24 UTC (1 week, 5 days ago) · 10 languages

276 findings (67 legacy + 209 scanner) 26th percentile · Typescript · small (2-20K LoC) Scanner says 77 (lower by 19)

UNIFIED Repobility · multi-layer engine · AI coders

Complete repo analysis

Last scanned 1 week, 5 days ago · v2 · 171 findings from 2 sources. Findings combine the legacy security pipeline AND the multi-layer engine (atlas, wiring, flows, ranked) AND verified AI agent contributions.

JSON
Score breakdown â 2026-05-18-v5
Component Sub-score Weight Contribution
structure_score 55.0 0.15 8.25
security_score 93.5 0.25 23.38
testing_score 0.0 0.20 0.00
documentation_score 78.0 0.15 11.70
practices_score 52.0 0.15 7.80
code_quality 71.0 0.10 7.10
Overall 1.00 58.2
Severity distribution — click a segment to filter
Active filters: excluding tests × Reset all
Scan summary Repository scanned at 77.3/100 with 88.9% coverage. It contains 594 nodes across 30 cross-layer flows, written primarily in mixed languages. Engine surfaced 104 findings — concentrated in quality (45), software (31), frontend (17). Risk profile is high: 0 critical, 4 high, 7 medium. Recommended next step: open the quality layer findings first — that's where the highest-impact wins live.

Showing 134 of 171 findings. Click TP / FP to vote on a finding's accuracy — votes adjust the confidence weighting and improve detection across the platform.

high Legacy quality quality conf 1.00 ✓ Repobility `self._add` used but never assigned in __init__
Method `add` of class `Line` reads `self._add`, 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.
moshi/moshi/client_utils.py:82 qualitylegacy
high Legacy quality quality conf 1.00 ✓ Repobility `self._apply_named_streaming` used but never assigned in __init__
Method `set_streaming_state` of class `StreamingModule` reads `self._apply_named_streaming`, 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.
moshi/moshi/modules/streaming.py:416 qualitylegacy
high Legacy quality quality conf 1.00 ✓ Repobility `self._apply_named_streaming` used but never assigned in __init__
Method `set_streaming_state_inplace` of class `StreamingModule` reads `self._apply_named_streaming`, 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.
moshi/moshi/modules/streaming.py:401 qualitylegacy
high Legacy quality quality conf 1.00 ✓ Repobility `self._apply_named_streaming` used but never assigned in __init__
Method `get_streaming_state` of class `StreamingModule` reads `self._apply_named_streaming`, 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.
moshi/moshi/modules/streaming.py:364 qualitylegacy
high Legacy quality quality conf 1.00 ✓ Repobility `self._apply_named_streaming` used but never assigned in __init__
Method `reset_streaming` of class `StreamingModule` reads `self._apply_named_streaming`, 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.
moshi/moshi/modules/streaming.py:355 qualitylegacy
high Legacy quality quality conf 1.00 ✓ Repobility `self._apply_named_streaming` used but never assigned in __init__
Method `_stop_streaming` of class `StreamingModule` reads `self._apply_named_streaming`, 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.
moshi/moshi/modules/streaming.py:326 qualitylegacy
high Legacy quality quality conf 1.00 ✓ Repobility `self._apply_named_streaming` used but never assigned in __init__
Method `_start_streaming` of class `StreamingModule` reads `self._apply_named_streaming`, 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.
moshi/moshi/modules/streaming.py:320 qualitylegacy
high Legacy quality quality conf 1.00 ✓ Repobility `self._remove_pending` used but never assigned in __init__
Method `print_pending` of class `Printer` reads `self._remove_pending`, 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.
moshi/moshi/client_utils.py:205 qualitylegacy
high Legacy quality quality conf 1.00 ✓ Repobility `self._remove_pending` used but never assigned in __init__
Method `log` of class `Printer` reads `self._remove_pending`, 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.
moshi/moshi/client_utils.py:190 qualitylegacy
high Legacy quality quality conf 1.00 ✓ Repobility `self._remove_pending` used but never assigned in __init__
Method `print_token` of class `Printer` reads `self._remove_pending`, 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.
moshi/moshi/client_utils.py:145 qualitylegacy
high Legacy quality quality conf 1.00 ✓ Repobility `self._start_streaming` used but never assigned in __init__
Method `streaming` of class `StreamingModule` reads `self._start_streaming`, 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.
moshi/moshi/modules/streaming.py:338 qualitylegacy
high Legacy quality quality conf 1.00 ✓ Repobility `self._start_streaming` used but never assigned in __init__
Method `streaming_forever` of class `StreamingModule` reads `self._start_streaming`, 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.
moshi/moshi/modules/streaming.py:332 qualitylegacy
high Legacy quality quality conf 1.00 ✓ Repobility `self._stop_streaming` used but never assigned in __init__
Method `streaming` of class `StreamingModule` reads `self._stop_streaming`, 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.
moshi/moshi/modules/streaming.py:342 qualitylegacy
high Legacy quality quality conf 1.00 ✓ Repobility `self._streaming_state` used but never assigned in __init__
Method `forward` of class `RawStreamingConv1d` reads `self._streaming_state`, 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.
moshi/moshi/modules/streaming.py:487 qualitylegacy
high Legacy quality quality conf 1.00 ✓ Repobility `self._streaming_state` used but never assigned in __init__
Method `forward` of class `StreamingAdd` reads `self._streaming_state`, 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.
moshi/moshi/modules/streaming.py:460 qualitylegacy
high Legacy quality quality conf 1.00 ✓ Repobility `self._streaming_state` used but never assigned in __init__
Method `forward` of class `StreamingAdd` reads `self._streaming_state`, 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.
moshi/moshi/modules/streaming.py:459 qualitylegacy
high Legacy quality quality conf 1.00 ✓ Repobility `self._streaming_state` used but never assigned in __init__
Method `forward` of class `StreamingAdd` reads `self._streaming_state`, 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.
moshi/moshi/modules/streaming.py:453 qualitylegacy
high Legacy quality quality conf 1.00 ✓ Repobility `self._streaming_state` used but never assigned in __init__
Method `forward` of class `StreamingAdd` reads `self._streaming_state`, 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.
moshi/moshi/modules/streaming.py:452 qualitylegacy
high Legacy quality quality conf 1.00 ✓ Repobility `self._streaming_state` used but never assigned in __init__
Method `forward` of class `StreamingAdd` reads `self._streaming_state`, 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.
moshi/moshi/modules/streaming.py:449 qualitylegacy
high Legacy quality quality conf 1.00 ✓ Repobility `self.erase` used but never assigned in __init__
Method `_add` of class `Line` reads `self.erase`, 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.
moshi/moshi/client_utils.py:86 qualitylegacy
high Legacy quality quality conf 1.00 ✓ Repobility `self.get_streaming_state` used but never assigned in __init__
Method `save_streaming_state` of class `StreamingModule` reads `self.get_streaming_state`, 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.
moshi/moshi/modules/streaming.py:387 qualitylegacy
high Legacy quality quality conf 1.00 ✓ Repobility `self.named_children` used but never assigned in __init__
Method `_apply_named_streaming` of class `StreamingModule` reads `self.named_children`, 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.
moshi/moshi/modules/streaming.py:313 qualitylegacy
high Legacy quality quality conf 1.00 ✓ Repobility `self.parameters` used but never assigned in __init__
Method `set_streaming_state_inplace` of class `StreamingModule` reads `self.parameters`, 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.
moshi/moshi/modules/streaming.py:398 qualitylegacy
high Legacy quality quality conf 1.00 ✓ Repobility `self.print_token` used but never assigned in __init__
Method `print_lag` of class `Printer` reads `self.print_token`, 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.
moshi/moshi/client_utils.py:198 qualitylegacy
high Legacy quality quality conf 1.00 ✓ Repobility `self.stride` used but never assigned in __init__
Method `forward` of class `RawStreamingConv1d` reads `self.stride`, 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.
moshi/moshi/modules/streaming.py:484 qualitylegacy
high Legacy software dependency conf 0.90 ✓ Repobility Dockerfile FROM `node:20` not pinned by digest
`FROM node:20` 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.
client/Dockerfile:1 dependencylegacy
high 9-layer security owasp conf 1.00 Insecure pattern 'eval_used' in moshi/moshi/models/compression.py:304
Found a known-risky pattern (eval_used). Review and replace if possible.
moshi/moshi/models/compression.py:304 owaspeval_used
high 9-layer security owasp conf 1.00 Insecure pattern 'eval_used' in moshi/moshi/models/loaders.py:156
Found a known-risky pattern (eval_used). Review and replace if possible.
moshi/moshi/models/loaders.py:156 owaspeval_used
high 9-layer security owasp conf 1.00 Insecure pattern 'eval_used' in moshi/moshi/offline.py:207
Found a known-risky pattern (eval_used). Review and replace if possible.
moshi/moshi/offline.py:207 owaspeval_used
high 9-layer security owasp conf 1.00 Insecure pattern 'eval_used' in moshi/moshi/server.py:446
Found a known-risky pattern (eval_used). Review and replace if possible.
moshi/moshi/server.py:446 owaspeval_used
medium Legacy quality quality conf 1.00 [SEC087] JS: weak Math.random for crypto: Math.random() is not cryptographically secure; using it for tokens/keys/nonces is predictable. Ported from gosec G404 / eslint detect-pseudoRandomBytes concept (Apache-2.0).
Use `crypto.randomBytes(32).toString('hex')` (Node) or `crypto.getRandomValues()` (browser).
client/src/pages/Conversation/Conversation.tsx:112 qualitylegacy
high Legacy cicd docker 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.
client/Dockerfile:1 dockerlegacy
high Legacy cicd docker 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:4 dockerlegacy
medium Legacy cicd docker 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.
client/Dockerfile:5 dockerlegacy
medium Legacy cicd docker conf 0.90 Dockerfile installs dependencies after copying the full source tree
When dependency installation comes after COPY ., any source change invalidates the dependency layer and makes Docker rebuild much more slowly.
client/Dockerfile:7 dockerlegacy
medium Legacy quality quality conf 1.00 ✓ Repobility Mutable default argument in `__init__` (dict)
`def __init__(... = []/{}/set())` — Python's default value is constructed ONCE at function definition time and shared across all calls. Mutating it in one call mutates it for every future call too.
moshi/moshi/modules/seanet.py:295 qualitylegacy
medium Legacy quality quality conf 1.00 ✓ Repobility Mutable default argument in `__init__` (dict)
`def __init__(... = []/{}/set())` — Python's default value is constructed ONCE at function definition time and shared across all calls. Mutating it in one call mutates it for every future call too.
moshi/moshi/modules/seanet.py:149 qualitylegacy
medium Legacy quality quality conf 1.00 ✓ Repobility Mutable default argument in `__init__` (dict)
`def __init__(... = []/{}/set())` — Python's default value is constructed ONCE at function definition time and shared across all calls. Mutating it in one call mutates it for every future call too.
moshi/moshi/modules/seanet.py:60 qualitylegacy
medium Legacy quality quality conf 1.00 ✓ Repobility Mutable default argument in `__init__` (dict)
`def __init__(... = []/{}/set())` — Python's default value is constructed ONCE at function definition time and shared across all calls. Mutating it in one call mutates it for every future call too.
moshi/moshi/modules/conv.py:291 qualitylegacy
medium Legacy quality quality conf 1.00 ✓ Repobility Mutable default argument in `__init__` (dict)
`def __init__(... = []/{}/set())` — Python's default value is constructed ONCE at function definition time and shared across all calls. Mutating it in one call mutates it for every future call too.
moshi/moshi/modules/conv.py:194 qualitylegacy
medium Legacy quality quality conf 1.00 ✓ Repobility Mutable default argument in `__init__` (dict)
`def __init__(... = []/{}/set())` — Python's default value is constructed ONCE at function definition time and shared across all calls. Mutating it in one call mutates it for every future call too.
moshi/moshi/modules/conv.py:161 qualitylegacy
medium Legacy quality quality conf 1.00 ✓ Repobility Mutable default argument in `__init__` (dict)
`def __init__(... = []/{}/set())` — Python's default value is constructed ONCE at function definition time and shared across all calls. Mutating it in one call mutates it for every future call too.
moshi/moshi/modules/conv.py:137 qualitylegacy
medium Legacy quality quality conf 1.00 ✓ Repobility Mutable default argument in `__init__` (list)
`def __init__(... = []/{}/set())` — Python's default value is constructed ONCE at function definition time and shared across all calls. Mutating it in one call mutates it for every future call too.
moshi/moshi/models/lm.py:242 qualitylegacy
medium Legacy quality quality conf 1.00 ✓ Repobility Mutable default argument in `__init__` (list)
`def __init__(... = []/{}/set())` — Python's default value is constructed ONCE at function definition time and shared across all calls. Mutating it in one call mutates it for every future call too.
moshi/moshi/modules/seanet.py:295 qualitylegacy
medium Legacy quality quality conf 1.00 ✓ Repobility Mutable default argument in `__init__` (list)
`def __init__(... = []/{}/set())` — Python's default value is constructed ONCE at function definition time and shared across all calls. Mutating it in one call mutates it for every future call too.
moshi/moshi/modules/seanet.py:149 qualitylegacy
medium Legacy quality quality conf 1.00 ✓ Repobility Mutable default argument in `__init__` (list)
`def __init__(... = []/{}/set())` — Python's default value is constructed ONCE at function definition time and shared across all calls. Mutating it in one call mutates it for every future call too.
moshi/moshi/modules/seanet.py:60 qualitylegacy
medium 9-layer quality integrity conf 1.00 `fetch()` without try/.catch or AbortSignal — client/public/assets/decoderWorker.min.js:701
Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout.
integrityfragile-runtimerobustness
medium 9-layer quality integrity conf 1.00 `fetch()` without try/.catch or AbortSignal — client/src/pages/Queue/api/client.ts:8
Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout.
integrityfragile-runtimerobustness
medium 9-layer hardware security conf 1.00 Dockerfile runs as root: client/Dockerfile
No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image.
securitycontainer
medium 9-layer 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.
securitycontainer
medium 9-layer 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.
coverageauth
medium 9-layer cicd coverage conf 1.00 No CI/CD pipelines detected
No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints.
coverage
medium 9-layer quality tests conf 1.00 Very low test-to-source ratio
1 test file(s) for 70 source file(s) (ratio 0.01). Consider adding integration or unit tests for critical paths.
testscoverage
low Legacy cicd docker conf 0.72 .dockerignore misses sensitive defaults
.dockerignore exists but does not cover common secret or VCS patterns.
.dockerignore dockerlegacy
high Legacy cicd docker 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.yaml:1 dockerlegacy
high Legacy cicd docker 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.yaml:1 dockerlegacy
low Legacy cicd docker conf 0.72 Dockerfile installs recommended OS packages
Installing recommended packages often pulls in unnecessary runtime surface area.
client/Dockerfile:12 dockerlegacy
low Legacy cicd docker conf 0.74 Dockerfile leaves apt package indexes in the image layer
Package indexes increase image size and can expose stale metadata in the final image layer.
client/Dockerfile:12 dockerlegacy
low 9-layer 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.
coveragedeployment
low 9-layer hardware supply-chain conf 1.00 Docker base image is tag-pinned but not digest-pinned: node:20
Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter.
client/Dockerfile:1 supply-chaindockerpinned-dependencies
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: client/postcss.config.js
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: client/src/app.tsx
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: client/src/components/Button/Button.tsx
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: client/src/modules.d.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: client/src/pages/Conversation/components/AudioVisualizer/AudioVisualizer.tsx
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: client/src/pages/Conversation/components/AudioVisualizer/ClientVisualizer.tsx
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: client/src/pages/Conversation/components/ModelParams/ModelParams.tsx
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: client/src/pages/Conversation/components/ServerAudio/ServerAudio.tsx
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: client/src/pages/Conversation/components/TextDisplay/TextDisplay.tsx
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: client/src/pages/Conversation/components/TextDisplay/TextDisplayStats.tsx
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: client/src/pages/Conversation/components/UserAudio/UserAudio.tsx
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: client/src/pages/Conversation/components/UserAudio/UserAudioStats.tsx
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: client/src/protocol/testMessages.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: client/src/protocol/types.ts
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: client/tailwind.config.js
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer quality integrity conf 1.00 Legacy-named symbol `pseudo_tensors_copy` in moshi/moshi/utils/compile.py:114
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
integritylegacy-markerdead-code
low 9-layer quality integrity conf 1.00 Legacy-named symbol `to_copy` in client/src/audio-processor.ts:153
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
integritylegacy-markerdead-code
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: moshi/moshi/client_utils.py:print_header, moshi/moshi/client_utils.py:print_header 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 separate.
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: moshi/moshi/client_utils.py:print_token, moshi/moshi/client_utils.py:print_token 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 separate.
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: moshi/moshi/client_utils.py:log, moshi/moshi/client_utils.py:log 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 separate.
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: moshi/moshi/client_utils.py:print_lag, moshi/moshi/client_utils.py:print_lag 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 separate.
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: moshi/moshi/client_utils.py:print_pending, moshi/moshi/client_utils.py:print_pending 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 separate.
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: moshi/moshi/server.py:wrap_with_system_tags, moshi/moshi/offline.py:wrap_with_system_tags 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 separate.
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: moshi/moshi/models/lm.py:step_system_prompts_async, moshi/moshi/models/lm.py:step_system_prompts 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 se…
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: moshi/moshi/quantization/vq.py:forward, moshi/moshi/quantization/vq.py:forward 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 separate.
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: moshi/moshi/quantization/vq.py:encode, moshi/moshi/quantization/vq.py:encode 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 separate.
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 3 places
Functions with the same first-5-line body hash: moshi/moshi/models/compression.py:forward, moshi/moshi/models/compression.py:forward, moshi/moshi/models/compression.py:forward This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consoli…
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 3 places
Functions with the same first-5-line body hash: moshi/moshi/models/compression.py:encode, moshi/moshi/models/compression.py:encode, moshi/moshi/models/compression.py:encode This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consolidat…
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 3 places
Functions with the same first-5-line body hash: moshi/moshi/models/compression.py:decode, moshi/moshi/models/compression.py:decode, moshi/moshi/models/compression.py:decode This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consolidat…
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 3 places
Functions with the same first-5-line body hash: moshi/moshi/models/compression.py:decode_latent, moshi/moshi/models/compression.py:decode_latent, moshi/moshi/models/compression.py:decode_latent This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code…
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 3 places
Functions with the same first-5-line body hash: moshi/moshi/models/compression.py:channels, moshi/moshi/models/compression.py:channels, moshi/moshi/models/compression.py:channels This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Cons…
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 3 places
Functions with the same first-5-line body hash: moshi/moshi/models/compression.py:frame_rate, moshi/moshi/models/compression.py:frame_rate, moshi/moshi/models/compression.py:frame_rate This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene)…
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 3 places
Functions with the same first-5-line body hash: moshi/moshi/models/compression.py:sample_rate, moshi/moshi/models/compression.py:sample_rate, moshi/moshi/models/compression.py:sample_rate This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygie…
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 3 places
Functions with the same first-5-line body hash: moshi/moshi/models/compression.py:cardinality, moshi/moshi/models/compression.py:cardinality, moshi/moshi/models/compression.py:cardinality This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygie…
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 3 places
Functions with the same first-5-line body hash: moshi/moshi/models/compression.py:num_codebooks, moshi/moshi/models/compression.py:num_codebooks, moshi/moshi/models/compression.py:num_codebooks This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code…
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 3 places
Functions with the same first-5-line body hash: moshi/moshi/models/compression.py:total_codebooks, moshi/moshi/models/compression.py:total_codebooks, moshi/moshi/models/compression.py:total_codebooks This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/a…
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 3 places
Functions with the same first-5-line body hash: moshi/moshi/models/compression.py:set_num_codebooks, moshi/moshi/models/compression.py:set_num_codebooks, moshi/moshi/models/compression.py:set_num_codebooks This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://j…
integrityduplicatedry
low 9-layer software dead-code conf 1.00 Possibly dead Python function: cuda_graph
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
moshi/moshi/utils/compile.py:304 dead-code
low 9-layer software dead-code conf 1.00 Possibly dead Python function: depformer_step
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
moshi/moshi/models/lm.py:1129 dead-code
low 9-layer software dead-code conf 1.00 Possibly dead Python function: encode_to_latent
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
moshi/moshi/models/compression.py:382 dead-code
low 9-layer software dead-code conf 1.00 Possibly dead Python function: forward_train
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
moshi/moshi/models/lm.py:531 dead-code
low 9-layer software dead-code conf 1.00 Possibly dead Python function: handle_chat
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
moshi/moshi/server.py:135 dead-code
low 9-layer software dead-code conf 1.00 Possibly dead Python function: handle_root
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
moshi/moshi/server.py:462 dead-code
low 9-layer software dead-code conf 1.00 Possibly dead Python function: load_streaming_state
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
moshi/moshi/modules/streaming.py:232 dead-code
low 9-layer software dead-code conf 1.00 Possibly dead Python function: pad_for_conv1d
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
moshi/moshi/modules/conv.py:81 dead-code
low 9-layer software dead-code conf 1.00 Possibly dead Python function: print_header
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
moshi/moshi/client_utils.py:131 dead-code
low 9-layer software dead-code conf 1.00 Possibly dead Python function: print_lag
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
moshi/moshi/client_utils.py:197 dead-code
low 9-layer software dead-code conf 1.00 Possibly dead Python function: print_pending
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
moshi/moshi/client_utils.py:200 dead-code
low 9-layer software dead-code conf 1.00 Possibly dead Python function: save_streaming_state
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
moshi/moshi/modules/streaming.py:367 dead-code
low 9-layer software dead-code conf 1.00 Possibly dead Python function: set_attention_context
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
moshi/moshi/modules/transformer.py:203 dead-code
low 9-layer software dead-code conf 1.00 Possibly dead Python function: set_streaming_state
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
moshi/moshi/modules/streaming.py:405 dead-code
low 9-layer software dead-code conf 1.00 Possibly dead Python function: set_streaming_state_inplace
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
moshi/moshi/modules/streaming.py:393 dead-code
low 9-layer software dead-code conf 1.00 Possibly dead Python function: simple_checkpoint
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
moshi/moshi/utils/compile.py:141 dead-code
low 9-layer frontend frontend-quality conf 1.00 Stray `console.log` in TS/JS — client/src/audio-processor.ts:13
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
frontend-qualityfq.console-leak
low 9-layer frontend frontend-quality conf 1.00 Stray `console.log` in TS/JS — client/src/decoder/decoderWorker.ts:67
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
frontend-qualityfq.console-leak
low 9-layer frontend frontend-quality conf 1.00 Stray `console.log` in TS/JS — client/src/pages/Conversation/components/AudioVisualizer/AudioVisualizer.tsx:14
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
frontend-qualityfq.console-leak
low 9-layer frontend frontend-quality conf 1.00 Stray `console.log` in TS/JS — client/src/pages/Conversation/components/AudioVisualizer/ClientVisualizer.tsx:105
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
frontend-qualityfq.console-leak
low 9-layer frontend frontend-quality conf 1.00 Stray `console.log` in TS/JS — client/src/pages/Conversation/components/AudioVisualizer/ServerVisualizer.tsx:68
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
frontend-qualityfq.console-leak
low 9-layer frontend frontend-quality conf 1.00 Stray `console.log` in TS/JS — client/src/pages/Conversation/components/ModelParams/ModelParams.tsx:67
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
frontend-qualityfq.console-leak
low 9-layer frontend frontend-quality conf 1.00 Stray `console.log` in TS/JS — client/src/pages/Conversation/components/UserAudio/UserAudio.tsx:15
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
frontend-qualityfq.console-leak
low 9-layer frontend frontend-quality conf 1.00 Stray `console.log` in TS/JS — client/src/pages/Conversation/Conversation.tsx:50
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
frontend-qualityfq.console-leak
low 9-layer frontend frontend-quality conf 1.00 Stray `console.log` in TS/JS — client/src/pages/Conversation/getMimeType.ts:20
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
frontend-qualityfq.console-leak
low 9-layer frontend frontend-quality conf 1.00 Stray `console.log` in TS/JS — client/src/pages/Conversation/hooks/useServerAudio.ts:95
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
frontend-qualityfq.console-leak
low 9-layer frontend frontend-quality conf 1.00 Stray `console.log` in TS/JS — client/src/pages/Conversation/hooks/useServerInfo.ts:74
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
frontend-qualityfq.console-leak
low 9-layer frontend frontend-quality conf 1.00 Stray `console.log` in TS/JS — client/src/pages/Conversation/hooks/useSocket.ts:21
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
frontend-qualityfq.console-leak
low 9-layer frontend frontend-quality conf 1.00 Stray `console.log` in TS/JS — client/src/pages/Conversation/hooks/useUserAudio.ts:54
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
frontend-qualityfq.console-leak
low 9-layer frontend frontend-quality conf 1.00 Stray `console.log` in TS/JS — client/src/protocol/encoder.ts:85
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
frontend-qualityfq.console-leak
low 9-layer quality integrity conf 1.00 Stub function `print_header` (body is just `pass`/`return`) — moshi/moshi/client_utils.py:34
Likely an AI scaffold that was never filled in. Remove or implement.
integrityempty-handlerdead-code
low 9-layer quality integrity conf 1.00 Stub function `reset` (body is just `pass`/`return`) — moshi/moshi/models/compression.py:98
Likely an AI scaffold that was never filled in. Remove or implement.
integrityempty-handlerdead-code
low 9-layer quality integrity conf 1.00 Stub function `reset` (body is just `pass`/`return`) — moshi/moshi/modules/conv.py:282
Likely an AI scaffold that was never filled in. Remove or implement.
integrityempty-handlerdead-code
low 9-layer quality integrity conf 1.00 Stub function `reset` (body is just `pass`/`return`) — moshi/moshi/modules/streaming.py:48
Likely an AI scaffold that was never filled in. Remove or implement.
integrityempty-handlerdead-code
low Legacy quality quality conf 1.00 ✓ Repobility [MINED045] Ts Non Null Assertion: x! asserts not null - bypasses null checks - TypeError if wrong.
Review and fix per the pattern semantics. See CWE-476 / for context.
client/src/pages/Conversation/Conversation.tsx:104 qualitylegacy
low Legacy quality quality conf 1.00 ✓ Repobility [MINED062] Python Dataclass No Fields: @dataclass over an empty class — unfinished model.
Review and fix per the pattern semantics.
moshi/moshi/modules/conv.py:278 qualitylegacy
low Legacy quality quality conf 1.00 ✓ Repobility [MINED064] Python Input Call: input() blocks for stdin. Inappropriate in services.
Review and fix per the pattern semantics.
moshi/moshi/utils/sampling.py:42 qualitylegacy
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/e6096821-706f-4fbe-aea1-5857e8308d8f/

To check status programmatically (no auth required):

curl -s https://repobility.com/api/v1/public/scan/e6096821-706f-4fbe-aea1-5857e8308d8f/

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.