{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "scanner-50314d598215f4c9", "name": "Possibly dead Python function: prepare_components", "shortDescription": {"text": "Possibly dead Python function: prepare_components"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-189f3c14ef8ae40b", "name": "Possibly dead Python function: remove_named_parameters", "shortDescription": {"text": "Possibly dead Python function: remove_named_parameters"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3fb02af946550fb4", "name": "Possibly dead Python function: off_load", "shortDescription": {"text": "Possibly dead Python function: off_load"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ca4b07f7471c1aa4", "name": "Possibly dead Python function: off_load_text_encoders", "shortDescription": {"text": "Possibly dead Python function: off_load_text_encoders"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-790589679046f431", "name": "Possibly dead Python function: off_load_vae", "shortDescription": {"text": "Possibly dead Python function: off_load_vae"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e3428e62786bdaed", "name": "Possibly dead Python function: off_load_transformers", "shortDescription": {"text": "Possibly dead Python function: off_load_transformers"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-568243c8b498695d", "name": "Possibly dead Python function: init_moe", "shortDescription": {"text": "Possibly dead Python function: init_moe"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-62517723f665e9b1", "name": "Possibly dead Python function: set_input_embeddings", "shortDescription": {"text": "Possibly dead Python function: set_input_embeddings"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3082fb80bb8f87f3", "name": "Possibly dead Python function: set_output_embeddings", "shortDescription": {"text": "Possibly dead Python function: set_output_embeddings"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0f1036153d53a0af", "name": "Dockerfile runs as root: docker/docker-cuda/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: docker/docker-cuda/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cddb835026ed7347", "name": "Docker base image is tag-pinned but not digest-pinned: nvidia/cuda:12.9.1-devel-ubuntu22.04", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: nvidia/cuda:12.9.1-devel-ubuntu22.04"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3bf08144ce596625", "name": "Very large file: src/flow_factory/models/abc.py (2254 lines)", "shortDescription": {"text": "Very large file: src/flow_factory/models/abc.py (2254 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-06d729ff960f4f75", "name": "Very large file: src/flow_factory/models/bagel/bagel.py (1733 lines)", "shortDescription": {"text": "Very large file: src/flow_factory/models/bagel/bagel.py (1733 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-768a16600472ec28", "name": "Very large file: src/flow_factory/models/bagel/modeling/bagel/bagel.py (1103 lines)", "shortDescription": {"text": "Very large file: src/flow_factory/models/bagel/modeling/bagel/bagel.py (1103 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4f5ec0a87578cfd9", "name": "Very large file: src/flow_factory/models/bagel/modeling/bagel/qwen2_navit.py (1197 lines)", "shortDescription": {"text": "Very large file: src/flow_factory/models/bagel/modeling/bagel/qwen2_navit.py (1197 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c4397da39a80c48c", "name": "Very large file: src/flow_factory/models/bagel/modeling/siglip/modeling_siglip.py (1557 lines)", "shortDescription": {"text": "Very large file: src/flow_factory/models/bagel/modeling/siglip/modeling_siglip.py (1557 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9e1d1292eda5db55", "name": "Very large file: src/flow_factory/models/qwen_image/qwen_image_edit_plus.py (1217 lines)", "shortDescription": {"text": "Very large file: src/flow_factory/models/qwen_image/qwen_image_edit_plus.py (1217 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d61f05f2a6138036", "name": "Very large file: src/flow_factory/models/ltx2/ltx2_t2av.py (1321 lines)", "shortDescription": {"text": "Very large file: src/flow_factory/models/ltx2/ltx2_t2av.py (1321 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f2b416e539cacf42", "name": "Very large file: src/flow_factory/models/ltx2/ltx2_i2av.py (1441 lines)", "shortDescription": {"text": "Very large file: src/flow_factory/models/ltx2/ltx2_i2av.py (1441 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-28a6de7308033a6f", "name": "Very large file: src/flow_factory/hparams/args.py (1172 lines)", "shortDescription": {"text": "Very large file: src/flow_factory/hparams/args.py (1172 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "1 test file(s) for 147 source file(s) (ratio 0.01). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 49 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing ci. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e725d2ab884fbd49", "name": "Multiple root agent instruction files without precedence", "shortDescription": {"text": "Multiple root agent instruction files without precedence"}, "fullDescription": {"text": "The repo has multiple top-level AI-coder instruction files. Without precedence rules, different agents may follow different policies."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f43446213c453e1e", "name": "Network/subprocess call without timeout or try/except \u2014 dataset/multi_ref_image/prepare.py:20", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 dataset/multi_ref_image/prepare.py:20"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6bfaaa29f4da03ed", "name": "Commented-code block (6 lines) in dataset/sudoku/generate_dataset.py:432", "shortDescription": {"text": "Commented-code block (6 lines) in dataset/sudoku/generate_dataset.py:432"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-62d650d26b9245f1", "name": "Commented-code block (7 lines) in src/flow_factory/models/abc.py:113", "shortDescription": {"text": "Commented-code block (7 lines) in src/flow_factory/models/abc.py:113"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-29724a7b7caaa229", "name": "Stub function `encode_video` (body is just `pass`/`return`) \u2014 src/flow_factory/models/wan/wan2_i2v.py:314", "shortDescription": {"text": "Stub function `encode_video` (body is just `pass`/`return`) \u2014 src/flow_factory/models/wan/wan2_i2v.py:314"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0e595ed7fd5cd0b5", "name": "Commented-code block (6 lines) in src/flow_factory/models/bagel/bagel.py:229", "shortDescription": {"text": "Commented-code block (6 lines) in src/flow_factory/models/bagel/bagel.py:229"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f92864ec6d4fb4b5", "name": "Stub function `text_encoder` (body is just `pass`/`return`) \u2014 src/flow_factory/models/bagel/bagel.py:284", "shortDescription": {"text": "Stub function `text_encoder` (body is just `pass`/`return`) \u2014 src/flow_factory/models/bagel/bagel.py:284"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a0502ea0ccf97bf7", "name": "Network/subprocess call without timeout or try/except \u2014 src/flow_factory/models/bagel/modeling/siglip/convert_siglip_to_", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 src/flow_factory/models/bagel/modeling/siglip/convert_siglip_to_hf.py:227"}, "fullDescription": {"text": "`requests.get(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-884e22bc77bede9f", "name": "Network/subprocess call without timeout or try/except \u2014 src/flow_factory/models/bagel/modeling/siglip/modeling_siglip.py", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 src/flow_factory/models/bagel/modeling/siglip/modeling_siglip.py:1169"}, "fullDescription": {"text": "`requests.get(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-17e0f5d22374bde2", "name": "Legacy-named symbol `ema_ref_old` in src/flow_factory/trainers/dgpo.py:226", "shortDescription": {"text": "Legacy-named symbol `ema_ref_old` in src/flow_factory/trainers/dgpo.py:226"}, "fullDescription": {"text": "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."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f7e83ba16235d1a1", "name": "Commented-code block (5 lines) in src/flow_factory/trainers/abc.py:178", "shortDescription": {"text": "Commented-code block (5 lines) in src/flow_factory/trainers/abc.py:178"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0da20c308477698b", "name": "Legacy-named symbol `kl_new_old` in src/flow_factory/trainers/dppo.py:201", "shortDescription": {"text": "Legacy-named symbol `kl_new_old` in src/flow_factory/trainers/dppo.py:201"}, "fullDescription": {"text": "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."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e8d03391ab5aaebb", "name": "Legacy-named symbol `_crd_old` in src/flow_factory/trainers/crd.py:130", "shortDescription": {"text": "Legacy-named symbol `_crd_old` in src/flow_factory/trainers/crd.py:130"}, "fullDescription": {"text": "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."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b344c374f541eab3", "name": "Commented-code block (6 lines) in src/flow_factory/trainers/crd.py:672", "shortDescription": {"text": "Commented-code block (6 lines) in src/flow_factory/trainers/crd.py:672"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8168af9e9a1265b2", "name": "Legacy-named symbol `param_copy` in src/flow_factory/ema/ema.py:125", "shortDescription": {"text": "Legacy-named symbol `param_copy` in src/flow_factory/ema/ema.py:125"}, "fullDescription": {"text": "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."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-64614cc4f0d1b751", "name": "Commented-code block (6 lines) in src/flow_factory/data_utils/multi_source.py:118", "shortDescription": {"text": "Commented-code block (6 lines) in src/flow_factory/data_utils/multi_source.py:118"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-798cfc88d87aa9f4", "name": "Commented-code block (5 lines) in src/flow_factory/data_utils/dataset.py:483", "shortDescription": {"text": "Commented-code block (5 lines) in src/flow_factory/data_utils/dataset.py:483"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ae2b34923c43b84f", "name": "Commented-code block (11 lines) in src/flow_factory/data_utils/loader.py:135", "shortDescription": {"text": "Commented-code block (11 lines) in src/flow_factory/data_utils/loader.py:135"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e982c3093c1068fe", "name": "Stub function `_init_platform` (body is just `pass`/`return`) \u2014 src/flow_factory/logger/abc.py:33", "shortDescription": {"text": "Stub function `_init_platform` (body is just `pass`/`return`) \u2014 src/flow_factory/logger/abc.py:33"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-08f3c7c4ad1e9d18", "name": "Commented-code block (5 lines) in src/flow_factory/rewards/geneval2_soft_tifa.py:257", "shortDescription": {"text": "Commented-code block (5 lines) in src/flow_factory/rewards/geneval2_soft_tifa.py:257"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-772cb8bb45e244cc", "name": "Commented-code block (5 lines) in src/flow_factory/rewards/my_reward.py:29", "shortDescription": {"text": "Commented-code block (5 lines) in src/flow_factory/rewards/my_reward.py:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-210cc70d2cdd14ef", "name": "Commented-code block (7 lines) in src/flow_factory/rewards/reward_processor.py:465", "shortDescription": {"text": "Commented-code block (7 lines) in src/flow_factory/rewards/reward_processor.py:465"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-53cd4057e65aece4", "name": "Legacy-named symbol `PickScore_v1` in src/flow_factory/rewards/pick_score.py:48", "shortDescription": {"text": "Legacy-named symbol `PickScore_v1` in src/flow_factory/rewards/pick_score.py:48"}, "fullDescription": {"text": "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."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1d6c67986d9a327e", "name": "Commented-code block (5 lines) in src/flow_factory/rewards/hpsv2_reward.py:128", "shortDescription": {"text": "Commented-code block (5 lines) in src/flow_factory/rewards/hpsv2_reward.py:128"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ac6b0dda56ffec85", "name": "Commented-code block (5 lines) in src/flow_factory/rewards/qwen_image_bench/checklists.py:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/flow_factory/rewards/qwen_image_bench/checklists.py:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-54238bbd127c3476", "name": "Commented-code block (5 lines) in src/flow_factory/rewards/qwen_image_bench/score_utils.py:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/flow_factory/rewards/qwen_image_bench/score_utils.py:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a5b7852eee3b8d78", "name": "Commented-code block (5 lines) in src/flow_factory/samples/samples.py:113", "shortDescription": {"text": "Commented-code block (5 lines) in src/flow_factory/samples/samples.py:113"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6edcc3d12e303062", "name": "Legacy-named symbol `extra_line_for_legacy` in src/flow_factory/hparams/args.py:736", "shortDescription": {"text": "Legacy-named symbol `extra_line_for_legacy` in src/flow_factory/hparams/args.py:736"}, "fullDescription": {"text": "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."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ec79069e6bb93f4c", "name": "Commented-code block (5 lines) in src/flow_factory/hparams/args.py:394", "shortDescription": {"text": "Commented-code block (5 lines) in src/flow_factory/hparams/args.py:394"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bf56b86ba6868417", "name": "Commented-code block (6 lines) in src/flow_factory/hparams/dataset_args.py:309", "shortDescription": {"text": "Commented-code block (6 lines) in src/flow_factory/hparams/dataset_args.py:309"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-95568b3157ea3a49", "name": "Commented-code block (7 lines) in src/flow_factory/hparams/reward_args.py:167", "shortDescription": {"text": "Commented-code block (7 lines) in src/flow_factory/hparams/reward_args.py:167"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nreward_server/example_server.py:compute_reward, reward_server/example_server.py:compute, reward_server/example_server.py:compute_reward\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\ndataset/sudoku/generate_dataset.py:backtrack, dataset/sudoku/generate_dataset.py:backtrack\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7ef8c150e23fb829", "name": "Unused endpoint: POST /compute", "shortDescription": {"text": "Unused endpoint: POST /compute"}, "fullDescription": {"text": "`reward_server/example_server.py` declares `POST /compute` 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 \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/22921"}, "properties": {"repository": "X-GenGroup/Flow-Factory", "repoUrl": "https://github.com/X-GenGroup/Flow-Factory", "branch": "main"}, "results": [{"ruleId": "scanner-50314d598215f4c9", "level": "note", "message": {"text": "Possibly dead Python function: prepare_components"}, "properties": {"repobilityId": "0b92267448237777", "scanner": "scanner-primary", "fingerprint": "50314d598215f4c9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/flow_factory/models/abc.py:252"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-189f3c14ef8ae40b", "level": "note", "message": {"text": "Possibly dead Python function: remove_named_parameters"}, "properties": {"repobilityId": "48598bf3cfc69fc1", "scanner": "scanner-primary", "fingerprint": "189f3c14ef8ae40b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/flow_factory/models/abc.py:764"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3fb02af946550fb4", "level": "note", "message": {"text": "Possibly dead Python function: off_load"}, "properties": {"repobilityId": "136e48abe7c56beb", "scanner": "scanner-primary", "fingerprint": "3fb02af946550fb4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/flow_factory/models/abc.py:2030"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ca4b07f7471c1aa4", "level": "note", "message": {"text": "Possibly dead Python function: off_load_text_encoders"}, "properties": {"repobilityId": "74954c26df89bdfa", "scanner": "scanner-primary", "fingerprint": "ca4b07f7471c1aa4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/flow_factory/models/abc.py:2038"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-790589679046f431", "level": "note", "message": {"text": "Possibly dead Python function: off_load_vae"}, "properties": {"repobilityId": "e6f8023280dfabd7", "scanner": "scanner-primary", "fingerprint": "790589679046f431", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/flow_factory/models/abc.py:2044"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e3428e62786bdaed", "level": "note", "message": {"text": "Possibly dead Python function: off_load_transformers"}, "properties": {"repobilityId": "b6b11a2da05f7a04", "scanner": "scanner-primary", "fingerprint": "e3428e62786bdaed", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/flow_factory/models/abc.py:2050"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-568243c8b498695d", "level": "note", "message": {"text": "Possibly dead Python function: init_moe"}, "properties": {"repobilityId": "12aae39721a7550a", "scanner": "scanner-primary", "fingerprint": "568243c8b498695d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/flow_factory/models/bagel/modeling/bagel/qwen2_navit.py:1115"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-62517723f665e9b1", "level": "note", "message": {"text": "Possibly dead Python function: set_input_embeddings"}, "properties": {"repobilityId": "49aa28cb7753431c", "scanner": "scanner-primary", "fingerprint": "62517723f665e9b1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/flow_factory/models/bagel/modeling/bagel/qwen2_navit.py:1124"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3082fb80bb8f87f3", "level": "note", "message": {"text": "Possibly dead Python function: set_output_embeddings"}, "properties": {"repobilityId": "c2a5ca175b75bcf3", "scanner": "scanner-primary", "fingerprint": "3082fb80bb8f87f3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/flow_factory/models/bagel/modeling/bagel/qwen2_navit.py:1130"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0f1036153d53a0af", "level": "warning", "message": {"text": "Dockerfile runs as root: docker/docker-cuda/Dockerfile"}, "properties": {"repobilityId": "8c9c9069195cb984", "scanner": "scanner-primary", "fingerprint": "0f1036153d53a0af", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-cddb835026ed7347", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: nvidia/cuda:12.9.1-devel-ubuntu22.04"}, "properties": {"repobilityId": "2ca3d1aef0ed3278", "scanner": "scanner-primary", "fingerprint": "cddb835026ed7347", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docker/docker-cuda/Dockerfile"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-3bf08144ce596625", "level": "note", "message": {"text": "Very large file: src/flow_factory/models/abc.py (2254 lines)"}, "properties": {"repobilityId": "6099671b0f4bb914", "scanner": "scanner-primary", "fingerprint": "3bf08144ce596625", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-06d729ff960f4f75", "level": "note", "message": {"text": "Very large file: src/flow_factory/models/bagel/bagel.py (1733 lines)"}, "properties": {"repobilityId": "53c859e5d57b75d5", "scanner": "scanner-primary", "fingerprint": "06d729ff960f4f75", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-768a16600472ec28", "level": "note", "message": {"text": "Very large file: src/flow_factory/models/bagel/modeling/bagel/bagel.py (1103 lines)"}, "properties": {"repobilityId": "1503955f9d63b208", "scanner": "scanner-primary", "fingerprint": "768a16600472ec28", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4f5ec0a87578cfd9", "level": "note", "message": {"text": "Very large file: src/flow_factory/models/bagel/modeling/bagel/qwen2_navit.py (1197 lines)"}, "properties": {"repobilityId": "6c2145b89b117b86", "scanner": "scanner-primary", "fingerprint": "4f5ec0a87578cfd9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c4397da39a80c48c", "level": "note", "message": {"text": "Very large file: src/flow_factory/models/bagel/modeling/siglip/modeling_siglip.py (1557 lines)"}, "properties": {"repobilityId": "c4446452c35ad2de", "scanner": "scanner-primary", "fingerprint": "c4397da39a80c48c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9e1d1292eda5db55", "level": "note", "message": {"text": "Very large file: src/flow_factory/models/qwen_image/qwen_image_edit_plus.py (1217 lines)"}, "properties": {"repobilityId": "b13427f975a2a1ae", "scanner": "scanner-primary", "fingerprint": "9e1d1292eda5db55", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d61f05f2a6138036", "level": "note", "message": {"text": "Very large file: src/flow_factory/models/ltx2/ltx2_t2av.py (1321 lines)"}, "properties": {"repobilityId": "995a6482fd56ae19", "scanner": "scanner-primary", "fingerprint": "d61f05f2a6138036", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f2b416e539cacf42", "level": "note", "message": {"text": "Very large file: src/flow_factory/models/ltx2/ltx2_i2av.py (1441 lines)"}, "properties": {"repobilityId": "39e7c4b799df35d3", "scanner": "scanner-primary", "fingerprint": "f2b416e539cacf42", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-28a6de7308033a6f", "level": "note", "message": {"text": "Very large file: src/flow_factory/hparams/args.py (1172 lines)"}, "properties": {"repobilityId": "8b826661acbeacc5", "scanner": "scanner-primary", "fingerprint": "28a6de7308033a6f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "0ada83eed95d9a20", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "f787d9d31d574490", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "27911266489aa478", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "5c086416e1b4d962", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "1df251d006f663c6", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-e725d2ab884fbd49", "level": "note", "message": {"text": "Multiple root agent instruction files without precedence"}, "properties": {"repobilityId": "1953db6c89508d22", "scanner": "scanner-primary", "fingerprint": "e725d2ab884fbd49", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["agent-instructions", "governance"]}}, {"ruleId": "scanner-f43446213c453e1e", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 dataset/multi_ref_image/prepare.py:20"}, "properties": {"repobilityId": "9141f62558fe3a98", "scanner": "scanner-primary", "fingerprint": "f43446213c453e1e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6bfaaa29f4da03ed", "level": "none", "message": {"text": "Commented-code block (6 lines) in dataset/sudoku/generate_dataset.py:432"}, "properties": {"repobilityId": "073b7fcd1316edb5", "scanner": "scanner-primary", "fingerprint": "6bfaaa29f4da03ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-62d650d26b9245f1", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/flow_factory/models/abc.py:113"}, "properties": {"repobilityId": "79eb09ed56ed941a", "scanner": "scanner-primary", "fingerprint": "62d650d26b9245f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29724a7b7caaa229", "level": "note", "message": {"text": "Stub function `encode_video` (body is just `pass`/`return`) \u2014 src/flow_factory/models/wan/wan2_i2v.py:314"}, "properties": {"repobilityId": "726e9f6578fd3aed", "scanner": "scanner-primary", "fingerprint": "29724a7b7caaa229", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-0e595ed7fd5cd0b5", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/flow_factory/models/bagel/bagel.py:229"}, "properties": {"repobilityId": "0f6934b98e10878b", "scanner": "scanner-primary", "fingerprint": "0e595ed7fd5cd0b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f92864ec6d4fb4b5", "level": "note", "message": {"text": "Stub function `text_encoder` (body is just `pass`/`return`) \u2014 src/flow_factory/models/bagel/bagel.py:284"}, "properties": {"repobilityId": "a123fd7827fdacd4", "scanner": "scanner-primary", "fingerprint": "f92864ec6d4fb4b5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-a0502ea0ccf97bf7", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 src/flow_factory/models/bagel/modeling/siglip/convert_siglip_to_hf.py:227"}, "properties": {"repobilityId": "52fed7053a2fde77", "scanner": "scanner-primary", "fingerprint": "a0502ea0ccf97bf7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-884e22bc77bede9f", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 src/flow_factory/models/bagel/modeling/siglip/modeling_siglip.py:1169"}, "properties": {"repobilityId": "a25cd09c06562d88", "scanner": "scanner-primary", "fingerprint": "884e22bc77bede9f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-17e0f5d22374bde2", "level": "note", "message": {"text": "Legacy-named symbol `ema_ref_old` in src/flow_factory/trainers/dgpo.py:226"}, "properties": {"repobilityId": "44220ee08ccbf27c", "scanner": "scanner-primary", "fingerprint": "17e0f5d22374bde2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f7e83ba16235d1a1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/flow_factory/trainers/abc.py:178"}, "properties": {"repobilityId": "eb2ae9bd189ddbc1", "scanner": "scanner-primary", "fingerprint": "f7e83ba16235d1a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0da20c308477698b", "level": "note", "message": {"text": "Legacy-named symbol `kl_new_old` in src/flow_factory/trainers/dppo.py:201"}, "properties": {"repobilityId": "208b79225ef224e1", "scanner": "scanner-primary", "fingerprint": "0da20c308477698b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e8d03391ab5aaebb", "level": "note", "message": {"text": "Legacy-named symbol `_crd_old` in src/flow_factory/trainers/crd.py:130"}, "properties": {"repobilityId": "8bf10566cf70580a", "scanner": "scanner-primary", "fingerprint": "e8d03391ab5aaebb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b344c374f541eab3", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/flow_factory/trainers/crd.py:672"}, "properties": {"repobilityId": "730586cc3ba07a22", "scanner": "scanner-primary", "fingerprint": "b344c374f541eab3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8168af9e9a1265b2", "level": "note", "message": {"text": "Legacy-named symbol `param_copy` in src/flow_factory/ema/ema.py:125"}, "properties": {"repobilityId": "4bd1262cbe4fd9da", "scanner": "scanner-primary", "fingerprint": "8168af9e9a1265b2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-64614cc4f0d1b751", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/flow_factory/data_utils/multi_source.py:118"}, "properties": {"repobilityId": "8eefb1ff12e62ea7", "scanner": "scanner-primary", "fingerprint": "64614cc4f0d1b751", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-798cfc88d87aa9f4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/flow_factory/data_utils/dataset.py:483"}, "properties": {"repobilityId": "dc42bbfab8dfda52", "scanner": "scanner-primary", "fingerprint": "798cfc88d87aa9f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae2b34923c43b84f", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/flow_factory/data_utils/loader.py:135"}, "properties": {"repobilityId": "c84275b022e76ca3", "scanner": "scanner-primary", "fingerprint": "ae2b34923c43b84f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e982c3093c1068fe", "level": "note", "message": {"text": "Stub function `_init_platform` (body is just `pass`/`return`) \u2014 src/flow_factory/logger/abc.py:33"}, "properties": {"repobilityId": "d7143a3976ace7e5", "scanner": "scanner-primary", "fingerprint": "e982c3093c1068fe", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-08f3c7c4ad1e9d18", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/flow_factory/rewards/geneval2_soft_tifa.py:257"}, "properties": {"repobilityId": "a67968bbc637a5d9", "scanner": "scanner-primary", "fingerprint": "08f3c7c4ad1e9d18", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-772cb8bb45e244cc", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/flow_factory/rewards/my_reward.py:29"}, "properties": {"repobilityId": "9719b8cc1e463147", "scanner": "scanner-primary", "fingerprint": "772cb8bb45e244cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-210cc70d2cdd14ef", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/flow_factory/rewards/reward_processor.py:465"}, "properties": {"repobilityId": "722bc0cc88ba5df7", "scanner": "scanner-primary", "fingerprint": "210cc70d2cdd14ef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53cd4057e65aece4", "level": "note", "message": {"text": "Legacy-named symbol `PickScore_v1` in src/flow_factory/rewards/pick_score.py:48"}, "properties": {"repobilityId": "0d31f37580fd4323", "scanner": "scanner-primary", "fingerprint": "53cd4057e65aece4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1d6c67986d9a327e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/flow_factory/rewards/hpsv2_reward.py:128"}, "properties": {"repobilityId": "361951c06a2f8511", "scanner": "scanner-primary", "fingerprint": "1d6c67986d9a327e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac6b0dda56ffec85", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/flow_factory/rewards/qwen_image_bench/checklists.py:3"}, "properties": {"repobilityId": "52ca1d7be88ebb4b", "scanner": "scanner-primary", "fingerprint": "ac6b0dda56ffec85", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-54238bbd127c3476", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/flow_factory/rewards/qwen_image_bench/score_utils.py:3"}, "properties": {"repobilityId": "c2387e360c6166a5", "scanner": "scanner-primary", "fingerprint": "54238bbd127c3476", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a5b7852eee3b8d78", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/flow_factory/samples/samples.py:113"}, "properties": {"repobilityId": "f27dd4de91af3f76", "scanner": "scanner-primary", "fingerprint": "a5b7852eee3b8d78", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6edcc3d12e303062", "level": "note", "message": {"text": "Legacy-named symbol `extra_line_for_legacy` in src/flow_factory/hparams/args.py:736"}, "properties": {"repobilityId": "392cd8c5c7893701", "scanner": "scanner-primary", "fingerprint": "6edcc3d12e303062", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ec79069e6bb93f4c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/flow_factory/hparams/args.py:394"}, "properties": {"repobilityId": "1bc520007285b2cf", "scanner": "scanner-primary", "fingerprint": "ec79069e6bb93f4c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf56b86ba6868417", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/flow_factory/hparams/dataset_args.py:309"}, "properties": {"repobilityId": "7cc52365b8539d49", "scanner": "scanner-primary", "fingerprint": "bf56b86ba6868417", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-95568b3157ea3a49", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/flow_factory/hparams/reward_args.py:167"}, "properties": {"repobilityId": "23e0411294f89d4f", "scanner": "scanner-primary", "fingerprint": "95568b3157ea3a49", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "1c3f575051380e3f", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "f4e4a48d40325dfa", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "a64794765f3a93ef", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "bca89ab8f6c4c291", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "c88f4c8cf81161f4", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "d4e61088c1995f29", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "2ace37568f718259", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "93e121c62923ad4b", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "a15d566946d5feab", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "eb603d4ca5f5ec10", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "305eef283e70cc6b", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "42f2f316a1d3c36c", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "40dda035a2269582", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "415ca05ba0828cfa", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "b11ea7e7849609cb", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "6adf86f4ef6b7d26", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "9845f5826f7021af", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "1995d2112c1dc7c1", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "92b88193a36faa70", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "48f9ee5957cedb3a", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-7ef8c150e23fb829", "level": "note", "message": {"text": "Unused endpoint: POST /compute"}, "properties": {"repobilityId": "1b61b3b93e5e6d89", "scanner": "scanner-primary", "fingerprint": "7ef8c150e23fb829", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}