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

Scan timing: clone 3.76s · analysis 42.07s · 4.0 MB · GitHub API rate-limit (preflight)

google-research/timesfm

https://github.com/google-research/timesfm.git · scanned 2026-06-19 22:18 UTC (1 month, 1 week ago) · 10 languages

455 raw signals (256 security + 199 graph) 5th percentile · Python · small (2-20K LoC)

UNIFIED Repobility · multi-layer engine · AI coders

Complete repo analysis

Last scanned 1 month, 1 week ago · v1 · 392 actionable findings from 2 signal sources. 63 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 100.0 0.15 15.00
security_score 53.0 0.25 13.25
testing_score 63.0 0.20 12.60
documentation_score 84.0 0.15 12.60
practices_score 67.0 0.15 10.05
code_quality 39.0 0.10 3.90
Overall 1.00 67.4
Severity distribution — click a segment to filter
Active filters: severity: low × excluding tests × Reset all
Scan summary Repository scanned at 51.3/100 with 50.0% coverage. It contains 559 nodes across 0 cross-layer flows, written primarily in mixed languages. Engine surfaced 199 findings — concentrated in security (153), quality (24), software (20). Risk profile is high: 6 critical, 81 high, 57 medium. Recommended next step: open the security layer findings first — that's where the highest-impact wins live.

Showing 66 of 392 actionable findings. 455 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.

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.
timesfm-forecasting/scripts/forecast_csv.py:164
low Security checks quality Error handling conf 0.55 ✓ Repobility 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.
v1/src/finetuning/finetuning_example.py:395 Error handlingquality
low Security checks quality Error handling conf 0.55 ✓ Repobility 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.
v1/src/timesfm/__init__.py:32 Error handlingquality
low Security checks software dependencies conf 0.88 bleach: GHSA-8rfp-98v4-mmr6
Bleach: URI sanitization allows disallowed URI schemes with Unicode > U+00A0 in output
v1/poetry.lock
low Security checks quality Quality conf 0.60 9 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.
8 files, 9 locations
v1/src/timesfm/timesfm_torch.py:49, 59 (2 hits)
src/timesfm/timesfm_2p5/timesfm_2p5_torch.py:304
v1/experiments/extended_benchmarks/run_timesfm.py:9
v1/src/adapter/lora_layers.py:48
v1/src/timesfm/pytorch_patched_decoder.py:541
v1/src/timesfm/timesfm_base.py:65
v1/src/timesfm/timesfm_jax.py:200
v1/src/timesfm/xreg_lib.py:31
duplicationquality
low Security checks cicd CI/CD security conf 0.90 ✓ Repobility 6 occurrences GitHub Action is tag-pinned rather than SHA-pinned
Action `actions/checkout` pinned to mutable ref `@v6` uses a mutable tag or branch. Pin external actions to a reviewed full commit SHA when the workflow is security-sensitive.
2 files, 6 locations
.github/workflows/main.yml:13, 15 (3 hits)
.github/workflows/manual_publish.yml:10, 12 (3 hits)
CI/CD securitySupply chainGitHub Actions
low Security checks software dependencies conf 0.88 jupyterlab: GHSA-vvfj-2jqx-52jm
JupyterLab LaTeX typesetter links did not enforce `noopener` attribute
v1/poetry.lock
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
v1/poetry.lock
low Security checks software dependencies conf 0.90 Python package `anyio` is minor version(s) behind (4.11.0 -> 4.14.0)
`anyio==4.11.0` is minor version(s) behind the latest stable release on PyPI (4.14.0). Pinned-but-stale Python dependencies drift away from upstream security and bugfix releases. This is the version-currency signal Dependabot raises.
requirements.txt:3
low Security checks software dependencies conf 0.90 Python package `anyio` is minor version(s) behind (4.7.0 -> 4.14.0)
poetry.lock pins `anyio` at 4.7.0 but the latest stable release on PyPI is 4.14.0 (minor version(s) behind).
v1/poetry.lock
low Security checks software dependencies conf 0.90 Python package `array-record` is minor version(s) behind (0.6.0 -> 0.8.3)
poetry.lock pins `array-record` at 0.6.0 but the latest stable release on PyPI is 0.8.3 (minor version(s) behind).
v1/poetry.lock
low Security checks software dependencies conf 0.90 Python package `arrow` is minor version(s) behind (1.3.0 -> 1.4.0)
poetry.lock pins `arrow` at 1.3.0 but the latest stable release on PyPI is 1.4.0 (minor version(s) behind).
v1/poetry.lock
low Security checks software dependencies conf 0.90 Python package `async-lru` is minor version(s) behind (2.0.4 -> 2.3.0)
poetry.lock pins `async-lru` at 2.0.4 but the latest stable release on PyPI is 2.3.0 (minor version(s) behind).
v1/poetry.lock
low Security checks software dependencies conf 0.90 Python package `babel` is minor version(s) behind (2.16.0 -> 2.18.0)
poetry.lock pins `babel` at 2.16.0 but the latest stable release on PyPI is 2.18.0 (minor version(s) behind).
v1/poetry.lock
low Security checks software dependencies conf 0.90 Python package `beautifulsoup4` is minor version(s) behind (4.12.3 -> 4.15.0)
poetry.lock pins `beautifulsoup4` at 4.12.3 but the latest stable release on PyPI is 4.15.0 (minor version(s) behind).
v1/poetry.lock
low Security checks software dependencies conf 0.90 Python package `bleach` is minor version(s) behind (6.2.0 -> 6.4.0)
poetry.lock pins `bleach` at 6.2.0 but the latest stable release on PyPI is 6.4.0 (minor version(s) behind).
v1/poetry.lock
low Security checks software dependencies conf 0.90 Python package `click` is minor version(s) behind (8.3.0 -> 8.4.1)
`click==8.3.0` is minor version(s) behind the latest stable release on PyPI (8.4.1). Pinned-but-stale Python dependencies drift away from upstream security and bugfix releases. This is the version-currency signal Dependabot raises.
requirements.txt:9
low Security checks software dependencies conf 0.90 Python package `filelock` is minor version(s) behind (3.19.1 -> 3.29.4)
`filelock==3.19.1` is minor version(s) behind the latest stable release on PyPI (3.29.4). Pinned-but-stale Python dependencies drift away from upstream security and bugfix releases. This is the version-currency signal Dependabot raises.
requirements.txt:11
low Security checks software dependencies conf 0.90 Python package `hf-xet` is minor version(s) behind (1.2.0 -> 1.5.1)
`hf-xet==1.2.0` is minor version(s) behind the latest stable release on PyPI (1.5.1). Pinned-but-stale Python dependencies drift away from upstream security and bugfix releases. This is the version-currency signal Dependabot raises.
requirements.txt:17
low Security checks software dependencies conf 0.90 Python package `huggingface-hub` is minor version(s) behind (1.0.1 -> 1.20.1)
`huggingface-hub==1.0.1` is minor version(s) behind the latest stable release on PyPI (1.20.1). Pinned-but-stale Python dependencies drift away from upstream security and bugfix releases. This is the version-currency signal Dependabot raises.
requirements.txt:23
low Security checks software dependencies conf 0.90 Python package `idna` is minor version(s) behind (3.10 -> 3.18)
`idna==3.10` is minor version(s) behind the latest stable release on PyPI (3.18). Pinned-but-stale Python dependencies drift away from upstream security and bugfix releases. This is the version-currency signal Dependabot raises.
requirements.txt:25
low Security checks software dependencies conf 0.90 Python package `safetensors` is minor version(s) behind (0.6.2 -> 0.8.0)
`safetensors==0.6.2` is minor version(s) behind the latest stable release on PyPI (0.8.0). Pinned-but-stale Python dependencies drift away from upstream security and bugfix releases. This is the version-currency signal Dependabot raises.
requirements.txt:35
low Security checks software dependencies conf 0.90 Python package `tqdm` is minor version(s) behind (4.67.1 -> 4.68.3)
`tqdm==4.67.1` is minor version(s) behind the latest stable release on PyPI (4.68.3). Pinned-but-stale Python dependencies drift away from upstream security and bugfix releases. This is the version-currency signal Dependabot raises.
requirements.txt:41
low Security checks software dependencies conf 0.90 Python package `typer-slim` is minor version(s) behind (0.20.0 -> 0.24.0)
`typer-slim==0.20.0` is minor version(s) behind the latest stable release on PyPI (0.24.0). Pinned-but-stale Python dependencies drift away from upstream security and bugfix releases. This is the version-currency signal Dependabot raises.
requirements.txt:43
low Security checks software dependencies conf 0.88 torch: GHSA-c678-jfcj-6jmf
PyTorch Tuple Handler is Vulnerable to Memory Corruption through Manipulation of None Argument
v1/poetry.lock
low Security checks software dependencies conf 0.88 torch: GHSA-qfhq-4f3w-5fph
PyTorch is vulnerable to memory corruption through its torch.lstm_cell function
v1/poetry.lock
low Security checks software dependencies conf 0.88 torch: GHSA-rrmf-rvhw-rf47
PyTorch is vulnerable to memory corruption through its torch.jit.script function
v1/poetry.lock
low Security checks software dependencies conf 0.88 torch: GHSA-x3gm-94wq-g975
PyTorch: Manipulation of the argument scale/zero_point leads to improper initialization via Quantized Sigmoid Module
v1/poetry.lock
low Security checks software dependencies conf 0.88 tornado: GHSA-cx3h-4qpv-8hc9
Tornado has out-of-bounds memory access via C extension
v1/poetry.lock
low Security checks software dependencies conf 0.88 transformers: GHSA-phhr-52qp-3mj4
Transformers's Improper Input Validation vulnerability can be exploited through username injection
v1/poetry.lock
low System graph security Trivy conf 1.00 CVE-2025-2148: torch 2.3.1 — v1/poetry.lock
A vulnerability was found in PyTorch 2.6.0+cu124. It has been declared ... A vulnerability was found in PyTorch 2.6.0+cu124. It has been declared as critical. Affected by this vulnerability is the function torch.ops.profiler._call_end_callbacks_on_jit_fut of the component Tuple Handler. The manipu…
VulnCve 2025 2148
low System graph security Trivy conf 1.00 CVE-2025-2149: torch 2.3.1 — v1/poetry.lock
A vulnerability was found in PyTorch 2.6.0+cu124. It has been rated as ... A vulnerability was found in PyTorch 2.6.0+cu124. It has been rated as problematic. Affected by this issue is the function nnq_Sigmoid of the component Quantized Sigmoid Module. The manipulation of the argument scale/zero_p…
VulnCve 2025 2149
low System graph security Trivy conf 1.00 CVE-2025-2953: torch 2.3.1 — v1/poetry.lock
torch: PyTorch torch.mkldnn_max_pool2d denial of service A vulnerability, which was classified as problematic, has been found in PyTorch 2.6.0+cu124. Affected by this issue is the function torch.mkldnn_max_pool2d. The manipulation leads to denial of service. An attack has to be approached locally.…
VulnCve 2025 2953
low System graph security Trivy conf 1.00 CVE-2025-3000: torch 2.3.1 — v1/poetry.lock
A vulnerability classified as critical has been found in PyTorch 2.6.0 ... A vulnerability classified as critical has been found in PyTorch 2.6.0. This affects the function torch.jit.script. The manipulation leads to memory corruption. It is possible to launch the attack on the local host. The exp…
VulnCve 2025 3000
low System graph security Trivy conf 1.00 CVE-2025-3001: torch 2.3.1 — v1/poetry.lock
A vulnerability classified as critical was found in PyTorch 2.6.0. Thi ... A vulnerability classified as critical was found in PyTorch 2.6.0. This vulnerability affects the function torch.lstm_cell. The manipulation leads to memory corruption. The attack needs to be approached locally. The exploit…
VulnCve 2025 3001
low System graph security Trivy conf 1.00 CVE-2025-3777: transformers 4.47.1 — v1/poetry.lock
transformers: Improper Input Validation in huggingface/transformers Hugging Face Transformers versions up to 4.49.0 are affected by an improper input validation vulnerability in the `image_utils.py` file. The vulnerability arises from insecure URL validation using the `startswith()` method, which …
VulnCve 2025 3777
low System graph security Trivy conf 1.00 CVE-2025-59842: jupyterlab 4.3.4 — v1/poetry.lock
jupyterlab: JupyterLab LaTeX typesetter links did not enforce `noopener` attribute jupyterlab is an extensible environment for interactive and reproducible computing, based on the Jupyter Notebook Architecture. Prior to version 4.4.8, links generated with LaTeX typesetters in Markdown files and Ma…
VulnCve 2025 59842
low System graph security Trivy conf 1.00 CVE-2026-4539: pygments 2.18.0 — v1/poetry.lock
pygments: Pygments: Denial of Service via inefficient regular expression processing in AdlLexer A security flaw has been discovered in pygments up to 2.19.2. The impacted element is the function AdlLexer of the file pygments/lexers/archetype.py. The manipulation results in inefficient regular expr…
VulnCve 2026 4539
low System graph security Trivy conf 1.00 CVE-2026-49854: tornado 6.4.2 — v1/poetry.lock
Tornado has out-of-bounds memory access via C extension ### Summary Tornado's optional native extension `tornado.speedups` implements `websocket_mask` without validating that the `mask` argument is exactly four bytes long. The C function reads four bytes from `mask` unconditionally, even when Pyt…
VulnCve 2026 49854
low System graph quality Debug conf 1.00 Debug logging residue appears in source files
Found 201 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup.
CleanupRepo hardeningGenerated repo pattern
low System graph security Trivy conf 1.00 GHSA-8rfp-98v4-mmr6: bleach 6.2.0 — v1/poetry.lock
Bleach: URI sanitization allows disallowed URI schemes with Unicode > U+00A0 in output ### Impact A possible XSS bypass affects users calling `bleach.clean` with all of: * `a` in the allowed tags * `href` in allowed attributes The `bleach.clean` sanitizer outputs URIs containing disallowed sche…
VulnGhsa 8rfp 98v4 mmr6
low System graph quality Tests conf 1.00 Low test-to-source ratio
8 tests / 49 src (ratio 0.16).
low System graph quality Integrity conf 1.00 9 occurrences Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: v1/src/finetuning/finetuning_torch.py:log_metrics, v1/src/finetuning/finetuning_torch.py:log_metrics 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'r…
9 occurrences
repo-level (9 hits)
duplicatesduplication
low System graph quality Integrity conf 1.00 2 occurrences Near-duplicate function bodies in 3 places
Functions with the same first-5-line body hash: v1/src/timesfm/patched_decoder.py:setup, v1/src/timesfm/patched_decoder.py:setup, v1/src/timesfm/patched_decoder.py:setup This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consolidate o…
2 occurrences
repo-level (2 hits)
duplicatesduplication
low System graph quality Integrity conf 1.00 2 occurrences Near-duplicate function bodies in 4 places
Functions with the same first-5-line body hash: v1/src/timesfm/xreg_lib.py:fit, v1/src/timesfm/xreg_lib.py:fit, src/timesfm/utils/xreg_lib.py:fit, src/timesfm/utils/xreg_lib.py:fit This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Co…
2 occurrences
repo-level (2 hits)
duplicatesduplication
low System graph quality Integrity conf 1.00 Near-duplicate function bodies in 6 places
Functions with the same first-5-line body hash: v1/src/adapter/dora_layers.py:setup, v1/src/adapter/dora_layers.py:setup, v1/src/adapter/dora_layers.py:setup, v1/src/adapter/lora_layers.py:setup This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-cod…
duplicatesduplication
low System graph quality Integrity conf 1.00 Near-duplicate function bodies in 8 places
Functions with the same first-5-line body hash: v1/src/timesfm/pytorch_patched_decoder.py:forward, v1/src/timesfm/pytorch_patched_decoder.py:forward, v1/src/timesfm/pytorch_patched_decoder.py:forward, v1/src/timesfm/pytorch_patched_decoder.py:forward This is *the* AI-coder failure mode (4× more du…
duplicatesduplication
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `context_dict_v2` in v1/experiments/extended_benchmarks/run_timesfm.py:58
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.
old markerDead code
low System graph quality Integrity conf 1.00 Old/deprecated-named symbol `test_replace_creates_independent_copy` in tests/test_configs.py:73
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.
old markerDead code
low System graph software Dead code conf 1.00 Possibly dead Python function: apply_mask_to_logits
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
v1/src/timesfm/pytorch_patched_decoder.py:155
low System graph software Dead code conf 1.00 Possibly dead Python function: compute_loss
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
v1/src/timesfm/patched_decoder.py:532
low System graph software Dead code conf 1.00 Possibly dead Python function: compute_predictions
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
v1/src/timesfm/patched_decoder.py:496
low System graph software Dead code conf 1.00 Possibly dead Python function: cross_validation
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
v1/experiments/baselines/timegpt_pipeline.py:98
low System graph software Dead code conf 1.00 Possibly dead Python function: eval_step
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
v1/peft/finetune.py:308
low System graph software Dead code conf 1.00 Possibly dead Python function: evaluate_models
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
v1/experiments/extended_benchmarks/utils.py:213
low System graph software Dead code conf 1.00 Possibly dead Python function: forecast_with_covariates
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
v1/src/timesfm/timesfm_base.py:429
low System graph software Dead code conf 1.00 Possibly dead Python function: forecast_with_covariates
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/timesfm/timesfm_2p5/timesfm_2p5_base.py:198
low System graph software Dead code conf 1.00 5 occurrences Possibly dead Python function: forward
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
5 files, 5 locations
src/timesfm/timesfm_2p5/timesfm_2p5_torch.py:93
src/timesfm/torch/dense.py:84
src/timesfm/torch/normalization.py:35
src/timesfm/torch/transformer.py:354
v1/src/timesfm/pytorch_patched_decoder.py:694
low System graph software Dead code conf 1.00 Possibly dead Python function: load_adapter_checkpoint
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
v1/src/adapter/utils.py:101
low System graph software Dead code conf 1.00 Possibly dead Python function: parallel_transform
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
v1/experiments/extended_benchmarks/utils.py:36
low System graph software Dead code conf 1.00 Possibly dead Python function: save_results
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
v1/experiments/extended_benchmarks/utils.py:180
low System graph software Dead code conf 1.00 Possibly dead Python function: scan_along_axis
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
src/timesfm/flax/util.py:80
low System graph software Dead code conf 1.00 Possibly dead Python function: setup_process
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
v1/src/finetuning/finetuning_example.py:300
low System graph software Dead code conf 1.00 Possibly dead Python function: shift_row
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
v1/src/timesfm/patched_decoder.py:71
low System graph software Dead code conf 1.00 Possibly dead Python function: train_step
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
v1/peft/finetune.py:305
low System graph quality Provenance conf 1.00 Shallow git history limits provenance confidence
The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence.
Git historyGenerated repo pattern
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/da5d58d3-85f2-4a83-a867-74a096ca8de4/

To check status programmatically (no auth required):

curl -s https://repobility.com/api/v1/public/scan/da5d58d3-85f2-4a83-a867-74a096ca8de4/

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.