Label Studio is a multi-type data labeling and annotation tool with standardized output format
This report presents the forensic synthetic code analysis of HumanSignal/label-studio, a TypeScript project with 27,834 GitHub stars. SynthScan v2.0 examined 624,485 lines of code across 3573 source files, recording 1890 pattern matches distributed across 24 syntactic categories. The overall adjusted score of 5.3 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 1890 distinct pattern matches across 24 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | label_studio/conftest.py | 15 | def clear_current_context_after_test(): | CODE |
| LOW | label_studio/server.py | 58 | def _apply_database_migrations(): | CODE |
| LOW | label_studio/organizations/models.py | 165 | def projects_sorted_by_created_at(self): | CODE |
| LOW | label_studio/organizations/models.py | 176 | def per_project_invited_users(self): | CODE |
| LOW | label_studio/organizations/serializers.py | 58 | def get_contributed_to_projects(self, user) -> list[ProjectInfo] | None: | CODE |
| LOW | label_studio/organizations/serializers.py | 83 | def get_contributed_to_projects(self, member) -> list[ProjectInfo] | None: | CODE |
| LOW | label_studio/organizations/serializers.py | 100 | def get_contributed_projects_count(self, member) -> int: | CODE |
| LOW | label_studio/organizations/serializers.py | 118 | def get_contributed_to_projects(self, member) -> list[ProjectInfo] | None: | CODE |
| LOW | label_studio/organizations/api.py | 138 | def _get_created_projects_map(self): | STRING |
| LOW | label_studio/organizations/api.py | 156 | def _get_contributed_to_projects_map(self): | STRING |
| LOW | label_studio/organizations/tests/factories.py | 19 | def created_by_active_organization(self, create, extracted, **kwargs): | CODE |
| LOW | label_studio/organizations/tests/test_api.py | 22 | def test_list_organization_members(self): | CODE |
| LOW | label_studio/organizations/tests/test_api.py | 47 | def test_list_with_contributed_to_projects(self): | CODE |
| LOW | …bel_studio/session_policy/tests/test_session_policy.py | 9 | def test_session_timeout_policy(): | CODE |
| LOW | label_studio/tasks/functions.py | 49 | def redis_job_for_calculation(org_id, from_scratch, migration_name='0018_manual_migrate_counters'): | CODE |
| LOW | label_studio/tasks/functions.py | 137 | def _fill_annotations_project(project_id): | CODE |
| LOW | label_studio/tasks/functions.py | 151 | def _fill_predictions_project(migration_name='0043_auto_20230825'): | CODE |
| LOW | label_studio/tasks/functions.py | 238 | def bulk_update_is_labeled_by_overlap(tasks_ids, project): | CODE |
| LOW⚡ | label_studio/tasks/mixins.py | 14 | def post_process_bulk_update_stats(cls, tasks) -> None: | CODE |
| LOW⚡ | label_studio/tasks/mixins.py | 24 | def after_bulk_delete_actions(tasks_ids, project): | CODE |
| LOW⚡ | label_studio/tasks/models.py | 573 | def increase_project_summary_counters(self): | CODE |
| LOW⚡ | label_studio/tasks/models.py | 578 | def decrease_project_summary_counters(self): | CODE |
| LOW⚡ | label_studio/tasks/models.py | 583 | def ensure_unique_groundtruth(self, annotation_id): | CODE |
| LOW | label_studio/tasks/models.py | 224 | def get_predictions_for_prelabeling(self): | CODE |
| LOW | label_studio/tasks/models.py | 331 | def overlap_with_agreement_threshold(self, num, num_locks): | CODE |
| LOW | label_studio/tasks/models.py | 601 | def delete_tasks_without_signals(queryset): | CODE |
| LOW | label_studio/tasks/models.py | 614 | def delete_tasks_without_signals_from_task_ids(task_ids): | CODE |
| LOW | label_studio/tasks/models.py | 818 | def increase_project_summary_counters(self): | CODE |
| LOW | label_studio/tasks/models.py | 824 | def decrease_project_summary_counters(self): | CODE |
| LOW | label_studio/tasks/models.py | 867 | def _update_task_state_after_deletion(self, task, project): | CODE |
| LOW | label_studio/tasks/models.py | 873 | def on_delete_update_counters(self): | CODE |
| LOW | label_studio/tasks/models.py | 1106 | def prepare_prediction_result(cls, result, project): | CODE |
| LOW | label_studio/tasks/models.py | 1377 | def update_all_task_states_after_deleting_task(sender, instance, **kwargs): | CODE |
| LOW | label_studio/tasks/models.py | 1401 | def _task_data_is_not_updated(update_fields): | CODE |
| LOW | label_studio/tasks/models.py | 1407 | def delete_project_summary_data_columns_before_updating_task(sender, instance, update_fields, **kwargs): | CODE |
| LOW | label_studio/tasks/models.py | 1421 | def update_project_summary_data_columns(sender, instance, created, update_fields, **kwargs): | CODE |
| LOW | label_studio/tasks/models.py | 1430 | def delete_project_summary_annotations_before_updating_annotation(sender, instance, **kwargs): | CODE |
| LOW | label_studio/tasks/models.py | 1458 | def update_project_summary_annotations_and_is_labeled(sender, instance, created, **kwargs): | CODE |
| LOW | label_studio/tasks/models.py | 1474 | def remove_predictions_from_project(sender, instance, **kwargs): | CODE |
| LOW | label_studio/tasks/models.py | 1482 | def save_predictions_to_project(sender, instance, **kwargs): | CODE |
| LOW | label_studio/tasks/models.py | 1541 | def deprecated_bulk_update_stats_project_tasks(tasks, project=None): | CODE |
| LOW | label_studio/tasks/models.py | 1591 | def bulk_update_stats_project_tasks(tasks, project=None): | CODE |
| LOW | label_studio/tasks/serializers.py | 36 | def sanitize_prediction_import_payload(prediction): | CODE |
| LOW | label_studio/tasks/serializers.py | 406 | def _insert_valid_completed_by(annotations, members_email_to_id, members_ids, default_user): | CODE |
| LOW | label_studio/tasks/serializers.py | 443 | def _insert_valid_user_reviews(dicts, members_email_to_id, default_user): | CODE |
| LOW | label_studio/tasks/serializers.py | 467 | def _insert_valid_user_drafts(dicts, members_email_to_id, default_user): | CODE |
| LOW | label_studio/tasks/serializers.py | 820 | def post_process_custom_callback(project_id, user): | CODE |
| LOW | label_studio/tasks/api.py | 306 | def get_retrieve_serializer_context(self, request): | STRING |
| LOW | label_studio/tasks/api.py | 351 | def get_excluded_fields_for_evaluation(self): | STRING |
| LOW | label_studio/tasks/api.py | 484 | def merge_result_into_distributions(result): | STRING |
| LOW | label_studio/tasks/api.py | 1078 | def process_intermediate_state(self, annotation, draft): | STRING |
| LOW⚡ | label_studio/tasks/tests/test_lazy_load_annotations.py | 41 | def test_stub_serializer_excludes_result(self): | CODE |
| LOW⚡ | label_studio/tasks/tests/test_lazy_load_annotations.py | 49 | def test_stub_serializer_includes_is_stub_flag(self): | CODE |
| LOW⚡ | label_studio/tasks/tests/test_lazy_load_annotations.py | 57 | def test_stub_serializer_includes_metadata(self): | CODE |
| LOW | label_studio/tasks/tests/test_lazy_load_annotations.py | 83 | def test_full_serializer_includes_result(self): | CODE |
| LOW | label_studio/tasks/tests/test_lazy_load_annotations.py | 93 | def test_full_serializer_does_not_have_is_stub(self): | CODE |
| LOW | label_studio/tasks/tests/test_lazy_load_annotations.py | 125 | def test_task_api_with_annotations_stub_enabled(self): | CODE |
| LOW | label_studio/tasks/tests/test_lazy_load_annotations.py | 142 | def test_task_api_without_annotations_stub(self): | CODE |
| LOW | label_studio/tasks/tests/test_lazy_load_annotations.py | 159 | def test_task_api_with_feature_flag_disabled(self): | CODE |
| LOW | label_studio/tasks/tests/test_lazy_load_annotations.py | 199 | def test_get_single_annotation(self): | CODE |
| 840 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | label_studio/server.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/__init__.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/manage.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/organizations/models.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/organizations/serializers.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/organizations/__init__.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/organizations/apps.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/organizations/forms.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/organizations/api.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/organizations/admin.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/organizations/urls.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/organizations/middleware.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/organizations/views.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/tasks/models.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/tasks/serializers.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/tasks/__init__.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/tasks/api.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/tasks/urls.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/tasks/validation.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/mixins.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/label_config.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/version.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/__init__.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/context_processors.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/redis.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/storage.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/permissions.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/argparser.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/bulk_update_utils.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/middleware.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/views.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/wsgi.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/templatetags/filters.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/settings/label_studio.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/settings/__init__.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/settings/base.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/utils/io.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/utils/__init__.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/utils/common.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/utils/exceptions.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/core/utils/contextlog.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/models.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/base_models.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/filesystem.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/serializers.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/__init__.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/api.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/utils.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/all_api.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/urls.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/s3/models.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/s3/serializers.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/s3/__init__.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/s3/api.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/s3/utils.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/redis/models.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/redis/serializers.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/redis/__init__.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/redis/api.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| HIGH | label_studio/io_storages/tests/test_localfiles_view.py | 0 | this file and its contents are licensed under the apache license 2.0. please see the included notice for copyright infor | STRING |
| 108 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | label_studio/core/utils/common.py | 28 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | label_studio/core/static/js/jquery.min.js | 2 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):f | CODE |
| CRITICAL⚡ | …tudio/io_storages/tests/test_localfiles_serializers.py | 6 | from django.core.exceptions import ValidationError as DjangoValidationError # type: ignore[import] | CODE |
| CRITICAL | …studio/io_storages/tests/test_localfiles_validation.py | 4 | from django.core.exceptions import ValidationError # type: ignore[import] | CODE |
| CRITICAL | label_studio/io_storages/localfiles/models.py | 12 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | label_studio/io_storages/localfiles/serializers.py | 6 | from django.core.exceptions import ValidationError as DjangoValidationError # type: ignore[import] | CODE |
| CRITICAL | label_studio/io_storages/azure_blob/models.py | 10 | from azure.core.exceptions import ResourceNotFoundError | CODE |
| CRITICAL | label_studio/users/validators.py | 2 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | label_studio/users/forms.py | 9 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | label_studio/webhooks/models.py | 4 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …itor/tests/integration/e2e/control_tags/textarea.cy.ts | 427 | const model = win.Htx.annotationStore.selected.names.get("desc"); | CODE |
| CRITICAL | …itor/tests/integration/e2e/control_tags/textarea.cy.ts | 440 | const model = win.Htx.annotationStore.selected.names.get("desc"); | CODE |
| CRITICAL | …itor/tests/integration/e2e/control_tags/textarea.cy.ts | 453 | const model = win.Htx.annotationStore.selected.names.get("desc"); | CODE |
| CRITICAL | …itor/tests/integration/e2e/control_tags/textarea.cy.ts | 470 | const model = win.Htx.annotationStore.selected.names.get("desc"); | CODE |
| CRITICAL | …itor/tests/integration/e2e/control_tags/textarea.cy.ts | 488 | const model = win.Htx.annotationStore.selected.names.get("desc"); | CODE |
| CRITICAL | …itor/tests/integration/e2e/control_tags/textarea.cy.ts | 511 | const model = win.Htx.annotationStore.selected.names.get("desc"); | CODE |
| CRITICAL | web/libs/editor/src/tags/object/Video/Video.js | 158 | return self.annotation.regionStore.selection.list.filter((reg) => reg.type === "timelineregion"); | CODE |
| CRITICAL | …/src/components/ImageView/__tests__/ImageView.test.jsx | 691 | const onMouseEnter = item.stageRef.on.mock.calls.find((c) => c[0] === "mouseenter")?.[1]; | CODE |
| CRITICAL | …/src/components/ImageView/__tests__/ImageView.test.jsx | 692 | const onMouseMove = item.stageRef.on.mock.calls.find((c) => c[0] === "mousemove")?.[1]; | CODE |
| CRITICAL | web/libs/editor/src/components/TextHighlight/Node.jsx | 27 | store.annotationStore.selected.regionStore.regions.forEach((i) => { | CODE |
| CRITICAL | web/libs/frontend-test/src/helpers/LSF/LabelStudio.ts | 269 | const isReady = win.Htx.annotationStore.selected.objects.every((object) => object.isReady); | CODE |
| CRITICAL⚡ | docs/themes/v2/source/js/playground/jquery-ui.min.js | 6 | (function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e= | CODE |
| CRITICAL⚡ | docs/themes/v2/source/js/playground/jquery-ui.min.js | 9 | }},_updateDatepicker:function(e){this.maxRows=4,m=e,e.dpDiv.empty().append(this._generateHTML(e)),this._attachHandlers(e | CODE |
| CRITICAL | docs/themes/v2/source/js/playground/codemirror.js | 12084 | return this.cm.display.wrapper.ownerDocument.getSelection(); | CODE |
| CRITICAL | docs/themes/v2/source/js/playground/jquery.min.js | 2 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):f | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | label_studio/server.py | 329 | except Exception as e: | CODE |
| LOW | label_studio/tasks/models.py | 485 | except Exception as exc: | CODE |
| LOW | label_studio/tasks/models.py | 527 | except Exception as exc: | CODE |
| LOW | label_studio/tasks/models.py | 539 | except Exception as exc: | CODE |
| LOW | label_studio/tasks/models.py | 1223 | except Exception as exc: | CODE |
| LOW | label_studio/tasks/models.py | 1357 | except Exception as exc: | CODE |
| LOW | label_studio/tasks/models.py | 1388 | except Exception as exc: | CODE |
| LOW | label_studio/tasks/serializers.py | 604 | except Exception as e: | CODE |
| LOW | label_studio/tasks/serializers.py | 633 | except Exception as e: | CODE |
| LOW | label_studio/core/label_config.py | 233 | except Exception: | CODE |
| LOW | label_studio/core/version.py | 119 | except Exception as e: | CODE |
| LOW | label_studio/core/current_request.py | 102 | except Exception: | CODE |
| LOW | label_studio/core/redis.py | 49 | except Exception: | CODE |
| LOW | label_studio/core/redis.py | 196 | except Exception: | CODE |
| LOW | label_studio/core/redis.py | 202 | except Exception: | CODE |
| LOW | label_studio/core/redis.py | 223 | except Exception: | CODE |
| LOW | label_studio/core/redis.py | 285 | except Exception as e: | CODE |
| MEDIUM | label_studio/core/redis.py | 21 | def _truncate_args_for_logging(args, kwargs, max_length=30): | CODE |
| LOW | label_studio/core/migration_helpers.py | 35 | except Exception as e: | CODE |
| LOW | label_studio/core/migration_helpers.py | 51 | except Exception as e: | CODE |
| LOW | label_studio/core/views.py | 167 | except Exception: | CODE |
| LOW | label_studio/core/tests/test_redis.py | 60 | except Exception as exc: # pragma: no cover - used for regression verification | CODE |
| MEDIUM | label_studio/core/tests/test_redis.py | 57 | def runner(): | CODE |
| LOW | label_studio/core/utils/db.py | 141 | except Exception as e: | CODE |
| LOW | label_studio/core/utils/params.py | 32 | except Exception as e: | CODE |
| LOW | label_studio/core/utils/params.py | 52 | except Exception as e: | CODE |
| LOW | label_studio/core/utils/secret_key.py | 40 | except Exception as e: | CODE |
| LOW⚡ | label_studio/core/utils/common.py | 380 | except Exception: | CODE |
| LOW | label_studio/core/utils/common.py | 484 | except Exception: | CODE |
| LOW | label_studio/core/utils/common.py | 492 | except Exception: | CODE |
| MEDIUM | label_studio/core/utils/common.py | 226 | def string_is_url(url): | CODE |
| LOW | label_studio/core/utils/manifest_assets.py | 16 | except Exception: | CODE |
| LOW | label_studio/core/utils/contextlog.py | 28 | except Exception as exc: | CODE |
| LOW | label_studio/core/utils/contextlog.py | 210 | except Exception as exc: | CODE |
| MEDIUM | label_studio/core/utils/contextlog.py | 23 | def _load_log_payloads(): | CODE |
| MEDIUM | label_studio/core/utils/contextlog.py | 72 | def _get_response_content(self, response): | CODE |
| LOW | label_studio/io_storages/functions.py | 60 | except Exception as exc: | CODE |
| LOW | label_studio/io_storages/proxy_api.py | 36 | except Exception as exc: | CODE |
| LOW | label_studio/io_storages/proxy_api.py | 70 | except Exception as exc: | CODE |
| LOW | label_studio/io_storages/proxy_api.py | 116 | except Exception as e: | CODE |
| LOW | label_studio/io_storages/proxy_api.py | 122 | except Exception as e: | CODE |
| LOW | label_studio/io_storages/proxy_api.py | 276 | except Exception as e: | CODE |
| LOW | label_studio/io_storages/base_models.py | 412 | except Exception: | CODE |
| LOW | label_studio/io_storages/base_models.py | 460 | except Exception: | CODE |
| LOW | label_studio/io_storages/base_models.py | 720 | except Exception: | CODE |
| LOW | label_studio/io_storages/base_models.py | 905 | except Exception: | CODE |
| LOW | label_studio/io_storages/api.py | 91 | except Exception as exc: | CODE |
| LOW⚡ | label_studio/io_storages/api.py | 209 | except Exception as exc: | CODE |
| LOW | label_studio/io_storages/utils.py | 48 | except Exception as exc: | CODE |
| LOW | label_studio/io_storages/utils.py | 81 | except Exception as exc: | CODE |
| LOW | label_studio/io_storages/utils.py | 222 | except Exception as e: | CODE |
| LOW | label_studio/io_storages/utils.py | 247 | except Exception as e: | CODE |
| LOW | label_studio/io_storages/all_api.py | 139 | except Exception: | CODE |
| LOW | label_studio/io_storages/all_api.py | 176 | except Exception: | CODE |
| MEDIUM | label_studio/io_storages/all_api.py | 131 | def _get_response(self, api, request, *args, **kwargs): | CODE |
| MEDIUM | label_studio/io_storages/all_api.py | 168 | def _get_response(self, api, request, *args, **kwargs): | CODE |
| LOW | label_studio/io_storages/s3/models.py | 171 | except Exception as e: | CODE |
| LOW | label_studio/io_storages/s3/utils.py | 168 | except Exception as e: | CODE |
| MEDIUM | label_studio/io_storages/s3/utils.py | 165 | def wrapper(self, *args, **kwargs): | CODE |
| LOW | label_studio/io_storages/tests/test_multitask_import.py | 53 | except Exception as e: | CODE |
| 103 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/source/guide/api.md | 68 | LABEL_STUDIO_API_KEY = 'YOUR_API_KEY' | CODE |
| HIGH | docs/source/guide/sdk.md | 42 | LABEL_STUDIO_API_KEY = 'YOUR_API_KEY' | CODE |
| HIGH | docs/source/guide/ml_tutorials/yolo.md | 319 | - LABEL_STUDIO_API_KEY=your_api_key | CODE |
| HIGH | docs/source/guide/ml_tutorials/yolo.md | 953 | python cli.py --ls-url http://localhost:8080 --ls-api-key your_api_key --project 1 --tasks tasks.json | CODE |
| HIGH | docs/source/guide/ml_tutorials/yolo.md | 959 | python cli.py --ls-url http://localhost:8080 --ls-api-key YOUR_API_KEY --project 1 --tasks 1,2,3 | CODE |
| HIGH | docs/source/guide/ml_tutorials/yolo.md | 988 | LOG_LEVEL=DEBUG python cli.py --ls-url http://localhost:8080 --ls-api-key YOUR_API_KEY --project 2 --tasks 1,2,3 | CODE |
| HIGH | docs/source/guide/ml_tutorials/grounding_sam.md | 50 | - `LABEL_STUDIO_ACCESS_TOKEN=your-api-key` | CODE |
| HIGH | docs/source/guide/ml_tutorials/grounding_dino.md | 47 | - `LABEL_STUDIO_ACCESS_TOKEN=your-api-key` | CODE |
| HIGH | docs/source/templates/generative-supervised-llm.md | 93 | ls = label_studio_sdk.Client('YOUR_LABEL_STUDIO_URL', 'YOUR_API_KEY') | CODE |
| HIGH | docs/source/templates/generative-supervised-llm.md | 105 | ls = Client(url='<YOUR-LABEL-STUDIO-URL>', api_key='<YOUR-API_KEY>') | CODE |
| HIGH | docs/source/templates/generative-supervised-llm.md | 105 | ls = Client(url='<YOUR-LABEL-STUDIO-URL>', api_key='<YOUR-API_KEY>') | CODE |
| HIGH | docs/source/templates/generative-llm-ranker.md | 141 | ls = label_studio_sdk.Client('YOUR_LABEL_STUDIO_URL', 'YOUR_API_KEY') | CODE |
| HIGH | docs/source/templates/generative-llm-ranker.md | 156 | ls = Client(url='<YOUR-LABEL-STUDIO-URL>', api_key='<YOUR-API_KEY>') | CODE |
| HIGH | docs/source/templates/generative-llm-ranker.md | 156 | ls = Client(url='<YOUR-LABEL-STUDIO-URL>', api_key='<YOUR-API_KEY>') | CODE |
| HIGH | docs/source/templates/react_claims.md | 259 | apiKey: 'YOUR-API-KEY', | CODE |
| HIGH | docs/source/templates/video_object_detector.md | 208 | -H 'Authorization: Token YOUR_API_KEY' \ | CODE |
| HIGH | docs/source/templates/video_object_detector.md | 230 | -H 'Authorization: Token YOUR_API_KEY' \ | CODE |
| HIGH | docs/source/templates/video_object_detector.md | 244 | ls = Client(url='http://localhost:8080', api_key='YOUR_API_KEY') | CODE |
| HIGH⚡ | docs/source/templates/video_object_detector.md | 273 | - Replace `YOUR_API_KEY` with your actual API key. | CODE |
| HIGH⚡ | docs/source/templates/video_object_detector.md | 283 | label-studio export --host http://localhost:8080 --api-key YOUR_API_KEY PROJECT_ID JSON --interpolate-key-frames | CODE |
| HIGH⚡ | docs/source/templates/video_object_detector.md | 287 | - Replace `YOUR_API_KEY` and `PROJECT_ID` with your API key and project ID, respectively. | CODE |
| HIGH | docs/source/templates/video_object_detector.md | 301 | -H 'Authorization: Token YOUR_API_KEY' \ | CODE |
| HIGH | docs/source/templates/generative-visual-ranker.md | 72 | ls = label_studio_sdk.Client('YOUR_LABEL_STUDIO_URL', 'YOUR_API_KEY') | CODE |
| HIGH | docs/source/templates/generative-visual-ranker.md | 86 | ls = Client(url='<YOUR-LABEL-STUDIO-URL>', api_key='<YOUR-API_KEY>') | CODE |
| HIGH | docs/source/templates/generative-visual-ranker.md | 86 | ls = Client(url='<YOUR-LABEL-STUDIO-URL>', api_key='<YOUR-API_KEY>') | CODE |
| HIGH | …urce/templates/generative-pairwise-human-preference.md | 64 | ls = Client(url='<YOUR-LABEL-STUDIO-URL>', api_key='<YOUR-API_KEY>') | CODE |
| HIGH | …urce/templates/generative-pairwise-human-preference.md | 64 | ls = Client(url='<YOUR-LABEL-STUDIO-URL>', api_key='<YOUR-API_KEY>') | CODE |
| HIGH | …s/how_to_connect_Hugging_Face_with_Label_Studio_SDK.md | 122 | export LABEL_STUDIO_API_KEY="your-api-key-here" | CODE |
| HIGH | …ulti_turn_chat_evals_with_chainlit_and_label_studio.md | 89 | export LABEL_STUDIO_API_KEY="your-api-key-here" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 422 | # Step 1: Create project | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 429 | # Step 2: Create 2 tasks | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 439 | # Step 3: Submit annotation on task1 | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 449 | # Step 4: Submit annotation on task2 | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 459 | # Step 5: Delete annotation from task1 | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 464 | # Step 6: Re-submit annotation on task1 | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 517 | # Step 1: Create task directly without FSM state | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 524 | # Step 2: Create annotation directly | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 534 | # Step 3: Delete annotation via SDK (this triggers FSM logic) | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 537 | # Step 4: Verify task state was initialized and updated | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 562 | # Step 1: Create task without FSM state | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 572 | # Step 2: Submit annotation via SDK | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 579 | # Step 3: Verify states initialized | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 621 | # Step 2: Submit annotation on first task only via SDK | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 628 | # Step 3: Verify both tasks now have states | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 641 | # Step 4: Verify project state is correct (IN_PROGRESS - some tasks completed) | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 672 | # Step 1: Create 3 tasks without FSM states | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 680 | # Step 2: Submit annotations on all tasks via SDK | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 690 | # Step 3: Verify all tasks have correct states | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 695 | # Step 4: Verify project is COMPLETED (all tasks completed) | COMMENT |
| LOW | label_studio/tests/test_fsm_lso_workflows.py | 610 | # Step 1: Create two tasks without FSM states | COMMENT |
| LOW | label_studio/tests/data_manager/test_undefined.py | 60 | # Step 1: Import task 1: {"$undefined$": "photo1.jpg"} | COMMENT |
| LOW⚡ | label_studio/tests/data_manager/test_undefined.py | 83 | # Step 4: Set labeling config <View> <Image value="$image" name="img"/> </View> | COMMENT |
| LOW⚡ | label_studio/tests/data_manager/test_undefined.py | 93 | # Step 7: Add task 2: {"$undefined$": "photo2.jpg", "extra": "123"} | COMMENT |
| LOW⚡ | label_studio/tests/data_manager/test_undefined.py | 111 | # Step 12: Update task 1 with {"extra": "456"} | COMMENT |
| LOW⚡ | label_studio/tests/data_manager/test_undefined.py | 119 | # Step 13: Check project.summary.common_data_columns, there should be ["$undefined$", "extra"] | COMMENT |
| LOW⚡ | label_studio/tests/data_manager/test_undefined.py | 127 | # Step 14: Filter by "image" with "photo" should return task 1 and task 2 | COMMENT |
| LOW | label_studio/tests/data_manager/test_views_api.py | 442 | # Step 1: Create a view with a non-nested filter | STRING |
| LOW | label_studio/tests/data_manager/test_views_api.py | 501 | # Step 2: PATCH the view to add a child filter | STRING |
| LOW | label_studio/tests/data_manager/test_views_api.py | 532 | # Step 3: Verify the PATCHed view has the child filter | STRING |
| LOW⚡ | label_studio/tests/data_manager/test_views_api.py | 557 | # Step 4: Test that the PATCHed view filters tasks correctly | STRING |
| LOW⚡ | label_studio/tests/data_manager/test_views_api.py | 566 | # Step 5: PATCH again to modify the child filter | STRING |
| LOW | label_studio/tests/data_manager/test_views_api.py | 597 | # Step 6: Verify the child filter was updated | STRING |
| LOW | …bel_studio/fsm/tests/test_integration_django_models.py | 210 | # Step 1: Create task | COMMENT |
| LOW | …bel_studio/fsm/tests/test_integration_django_models.py | 232 | # Step 2: Assign and start task | COMMENT |
| LOW | …bel_studio/fsm/tests/test_integration_django_models.py | 258 | # Step 3: Complete task | COMMENT |
| LOW⚡ | label_studio/fsm/tests/test_api_example.py | 127 | # Step 1: Create transition from API data | COMMENT |
| LOW⚡ | label_studio/fsm/tests/test_api_example.py | 130 | # Step 2: Execute transition | COMMENT |
| LOW | label_studio/fsm/tests/test_api_example.py | 145 | # Step 3: Format API response | COMMENT |
| LOW⚡ | …libs/editor/src/components/KonvaVector/KonvaVector.tsx | 612 | // Step 1: Scale | COMMENT |
| LOW⚡ | …libs/editor/src/components/KonvaVector/KonvaVector.tsx | 616 | // Step 2: Rotate | COMMENT |
| LOW⚡ | …libs/editor/src/components/KonvaVector/KonvaVector.tsx | 620 | // Step 3: Translate and clamp to image bounds | COMMENT |
| LOW | docs/source/guide/storage_gcp.md | 881 | #### Step 1: Create a service account in your target Google Cloud project | COMMENT |
| LOW | docs/source/guide/storage_gcp.md | 893 | #### Step 2: Grant the target service account access to your bucket | COMMENT |
| LOW | docs/source/guide/storage_gcp.md | 932 | #### Step 3: Allow impersonation from the Label Studio base service account | COMMENT |
| LOW | docs/source/guide/storage_gcp.md | 961 | #### Step 4: Configure CORS on the bucket (required for pre-signed URLs) | COMMENT |
| LOW | docs/source/guide/ts+video.md | 21 | ## Step 1: Media hosting | COMMENT |
| LOW | docs/source/guide/ts+video.md | 34 | ## Step 2: Labeling config with example task data | COMMENT |
| LOW | docs/source/guide/ts+video.md | 58 | ## Step 3: Prepare and import tasks | COMMENT |
| LOW | docs/source/guide/ts+video.md | 73 | ## Step 4: Explore imported task | COMMENT |
| LOW⚡ | docs/source/guide/troubleshooting.md | 438 | #### Step 1: Adjust Git Configuration | COMMENT |
| LOW⚡ | docs/source/guide/troubleshooting.md | 448 | #### Step 2: Clone the Repository Again | COMMENT |
| LOW⚡ | docs/source/guide/troubleshooting.md | 456 | #### Step 3: Build and Run the Docker Containers | COMMENT |
| LOW | docs/source/guide/custom_metric.md | 142 | ### Step 1: Create an AWS IAM role for logging | COMMENT |
| LOW | docs/source/guide/custom_metric.md | 233 | ### Step 2: Configure permissions between Label Studio Enterprise and AWS Lambda | COMMENT |
| LOW | docs/source/guide/custom_metric.md | 303 | ### Step 1: Enable the required GCP APIs | COMMENT |
| LOW | docs/source/guide/custom_metric.md | 326 | ### Step 2: Create a runtime service account for Cloud Functions | COMMENT |
| LOW | docs/source/guide/custom_metric.md | 346 | ### Step 3: Grant permissions to the Label Studio Enterprise identity | COMMENT |
| LOW | docs/source/guide/agreement_metrics.md | 218 | #### Step 1: Check that labels match | COMMENT |
| LOW | docs/source/guide/agreement_metrics.md | 224 | #### Step 2: Calculate IoU (Intersection over Union) | COMMENT |
| 30 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | label_studio/tasks/models.py | 649 | # Create a dynamic class that mixes FSM support into the queryset | COMMENT |
| MEDIUM | label_studio/tasks/tests/test_lazy_load_annotations.py | 408 | # Create a normal annotation | COMMENT |
| MEDIUM | label_studio/tasks/tests/test_lazy_load_annotations.py | 421 | # Create a cancelled annotation | COMMENT |
| MEDIUM | label_studio/core/version.py | 39 | 'info = %s\n' % info_str + '\n# This file is automatically generated by version.py' | CODE |
| MEDIUM | label_studio/core/feature_flags/tests/test_base.py | 6 | # Create a minimal organization-like object | COMMENT |
| MEDIUM | label_studio/core/management/commands/locked_migrate.py | 32 | # Create a separate database connection to hold the lock | COMMENT |
| MEDIUM | label_studio/core/utils/db.py | 93 | # Create a database cursor that yields primary keys without loading all into memory | COMMENT |
| MEDIUM | label_studio/core/utils/iterators.py | 28 | # Create a new queryset based on the original, preserving all optimizations: | COMMENT |
| MEDIUM | label_studio/io_storages/tests/test_get_bytes_stream.py | 61 | # Create an instance of the concrete class | COMMENT |
| MEDIUM | label_studio/io_storages/tests/test_get_bytes_stream.py | 77 | # Create a mock response for get_object | COMMENT |
| MEDIUM | label_studio/io_storages/tests/test_get_bytes_stream.py | 103 | # Create a mock response for get_object with range header | COMMENT |
| MEDIUM | label_studio/io_storages/tests/test_get_bytes_stream.py | 140 | # Create a mock response for get_object with range header | COMMENT |
| MEDIUM | label_studio/io_storages/tests/test_get_bytes_stream.py | 197 | # Create an instance of the concrete class | COMMENT |
| MEDIUM | label_studio/io_storages/tests/test_get_bytes_stream.py | 509 | # Create an instance of the concrete class | COMMENT |
| MEDIUM | label_studio/io_storages/tests/test_get_bytes_stream.py | 555 | # Create a proper AuthorizedSession patcher that returns our mock session | COMMENT |
| MEDIUM⚡ | label_studio/io_storages/tests/test_proxy_api.py | 307 | # Create a mock stream with iter_chunks method | COMMENT |
| MEDIUM | label_studio/io_storages/tests/test_proxy_api.py | 330 | # Create a mock stream with iter_chunks method | COMMENT |
| MEDIUM | label_studio/io_storages/tests/test_proxy_api.py | 353 | # Create a mock stream with iter_chunks method that raises an exception | COMMENT |
| MEDIUM | label_studio/io_storages/tests/test_proxy_api.py | 501 | # Create the necessary objects for testing without database | COMMENT |
| MEDIUM | label_studio/io_storages/tests/test_proxy_api.py | 558 | # Create the necessary objects for testing without database | COMMENT |
| MEDIUM⚡ | label_studio/tests/test_fsm_lso_workflows.py | 664 | # Create a new project with FSM | COMMENT |
| MEDIUM | label_studio/tests/conftest.py | 844 | # This function is called by pytest after the collection of tests has been completed to modify their order | COMMENT |
| MEDIUM | label_studio/tests/config_validation.tavern.yml | 77 | - # Create a project with a specific labeling configuration | CODE |
| MEDIUM | label_studio/tests/config_validation.tavern.yml | 180 | - # Create a project with a specific labeling configuration | CODE |
| MEDIUM | label_studio/tests/config_validation.tavern.yml | 1380 | - # Create a project with Table labeling configuration | CODE |
| MEDIUM | label_studio/tests/test_prediction_validation.py | 46 | # Create a project with a comprehensive label configuration | COMMENT |
| MEDIUM | label_studio/tests/test_prediction_validation.py | 1025 | # Create a project with Taxonomy tag and labels covering both paths | COMMENT |
| MEDIUM | label_studio/tests/test_prediction_validation.py | 64 | # Create a task | STRING |
| MEDIUM | label_studio/tests/data_manager/test_views_api.py | 201 | # Create a project with specific label config for testing | COMMENT |
| MEDIUM | label_studio/tests/data_manager/test_views_api.py | 255 | # Create a view with nested filters | STRING |
| MEDIUM | label_studio/tests/data_manager/test_views_api.py | 388 | # Create a project with specific label config for testing | STRING |
| MEDIUM | …studio/tests/data_manager/actions/test_cache_labels.py | 30 | # Create a few tasks | COMMENT |
| MEDIUM | label_studio/tests/sdk/test_prediction_validation.py | 24 | # Create a project with a comprehensive label configuration | COMMENT |
| MEDIUM | label_studio/tests/sdk/test_prediction_validation.py | 54 | # Create a task | STRING |
| MEDIUM | label_studio/fsm/models.py | 238 | # Create a temporary transition instance with full context | COMMENT |
| MEDIUM⚡ | label_studio/fsm/tests/test_lso_integration.py | 147 | # Create a project but delete its state records | COMMENT |
| MEDIUM | label_studio/fsm/tests/test_lso_integration.py | 195 | # Create a mock entity that doesn't have a state model | COMMENT |
| MEDIUM | label_studio/fsm/tests/test_fsm_integration.py | 369 | # Create a state transition | COMMENT |
| MEDIUM | label_studio/data_manager/prepare_params.py | 200 | # Define the schemas for filters and selectedItems | COMMENT |
| MEDIUM | label_studio/data_manager/prepare_params.py | 336 | # Define the main schema for the data payload | COMMENT |
| MEDIUM | label_studio/data_manager/tests/test_managers.py | 157 | # Create a simple mock queryset | COMMENT |
| MEDIUM | label_studio/data_export/api.py | 188 | # Create a prefetch for annotations with FSM state | STRING |
| MEDIUM | label_studio/users/tests/test_hotkeys_api.py | 17 | # Create a test user | COMMENT |
| MEDIUM | label_studio/jwt_auth/views.py | 256 | # Create a new token for the user | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | label_studio/server.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/organizations/models.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/organizations/api.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/organizations/middleware.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/tasks/functions.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | label_studio/tasks/mixins.py | 10 | def update_is_labeled(self, *args, **kwargs) -> None: | CODE |
| LOW | label_studio/tasks/models.py | 46 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/tasks/serializers.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/tasks/apps.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/tasks/api.py | 51 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/tasks/validation.py | 42 | logger = logging.getLogger(__name__) | CODE |
| LOW | …el_studio/tasks/management/commands/calculate_stats.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/mixins.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/label_config.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/models.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/redis.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/storage.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/permissions.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/middleware.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/migration_helpers.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/views.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/settings/base.py | 89 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/feature_flags/base.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | …udio/core/management/commands/show_async_migrations.py | 6 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/management/commands/locked_migrate.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/utils/db.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/utils/secret_key.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/utils/common.py | 72 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/core/utils/contextlog.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/functions.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/proxy_api.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/base_models.py | 43 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/filesystem.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/api.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/utils.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/all_api.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/s3/models.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/s3/serializers.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/s3/utils.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/redis/models.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/localfiles/models.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/localfiles/views.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/azure_blob/models.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/azure_blob/utils.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/gcs/models.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/io_storages/gcs/utils.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/projects/models.py | 66 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/projects/apps.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/projects/api.py | 68 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/projects/views.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/projects/functions/next_task.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/tests/test_config_validation.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/tests/utils.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/ml_model_providers/models.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/fsm/functions.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/fsm/state_manager.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | label_studio/fsm/models.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/fsm/registry.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/fsm/transition_executor.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | label_studio/fsm/apps.py | 7 | logger = logging.getLogger(__name__) | CODE |
| 40 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | label_studio/server.py | 276 | CODE | |
| LOW | label_studio/tasks/models.py | 443 | CODE | |
| LOW | label_studio/tasks/models.py | 492 | CODE | |
| LOW | label_studio/tasks/models.py | 1106 | CODE | |
| LOW | label_studio/tasks/serializers.py | 406 | CODE | |
| LOW | label_studio/tasks/serializers.py | 490 | CODE | |
| LOW | label_studio/tasks/serializers.py | 566 | CODE | |
| LOW | label_studio/tasks/serializers.py | 948 | CODE | |
| LOW | label_studio/tasks/api.py | 461 | CODE | |
| LOW | label_studio/tasks/api.py | 484 | CODE | |
| LOW | label_studio/tasks/validation.py | 133 | CODE | |
| LOW | label_studio/core/label_config.py | 57 | CODE | |
| LOW | label_studio/core/label_config.py | 146 | CODE | |
| LOW | label_studio/core/label_config.py | 245 | CODE | |
| LOW | label_studio/core/label_config.py | 262 | CODE | |
| LOW | label_studio/core/old_ls_migration.py | 39 | CODE | |
| LOW | label_studio/core/old_ls_migration.py | 82 | CODE | |
| LOW | label_studio/core/old_ls_migration.py | 127 | CODE | |
| LOW | label_studio/core/middleware.py | 200 | CODE | |
| LOW | label_studio/core/migration_helpers.py | 12 | CODE | |
| LOW | label_studio/core/utils/db.py | 40 | CODE | |
| LOW | label_studio/core/utils/io.py | 32 | CODE | |
| LOW | label_studio/core/utils/serializer_to_openapi_params.py | 85 | CODE | |
| LOW | label_studio/core/utils/serializer_to_openapi_params.py | 150 | CODE | |
| LOW | label_studio/core/utils/common.py | 616 | CODE | |
| LOW | label_studio/core/utils/contextlog.py | 205 | CODE | |
| LOW | label_studio/core/utils/filterset_to_openapi_params.py | 109 | CODE | |
| LOW | label_studio/core/utils/filterset_to_openapi_params.py | 174 | CODE | |
| LOW | label_studio/io_storages/proxy_api.py | 128 | CODE | |
| LOW | label_studio/io_storages/base_models.py | 163 | CODE | |
| LOW | label_studio/io_storages/base_models.py | 375 | CODE | |
| LOW | label_studio/io_storages/base_models.py | 563 | CODE | |
| LOW | label_studio/io_storages/utils.py | 169 | CODE | |
| LOW | label_studio/io_storages/azure_blob/models.py | 163 | CODE | |
| LOW | label_studio/io_storages/gcs/utils.py | 52 | CODE | |
| LOW | label_studio/projects/models.py | 498 | CODE | |
| LOW | label_studio/projects/models.py | 646 | CODE | |
| LOW | label_studio/projects/models.py | 856 | CODE | |
| LOW | label_studio/projects/models.py | 1077 | CODE | |
| LOW | label_studio/projects/models.py | 1163 | CODE | |
| LOW | label_studio/projects/models.py | 1467 | CODE | |
| LOW | label_studio/projects/models.py | 1556 | CODE | |
| LOW | label_studio/projects/models.py | 1619 | CODE | |
| LOW | label_studio/projects/serializers.py | 165 | CODE | |
| LOW | label_studio/projects/functions/stream_history.py | 10 | CODE | |
| LOW | label_studio/projects/functions/utils.py | 56 | CODE | |
| LOW | label_studio/projects/functions/next_task.py | 381 | CODE | |
| LOW | label_studio/projects/functions/next_task.py | 411 | CODE | |
| LOW | label_studio/tests/test_endpoints.py | 294 | CODE | |
| LOW | label_studio/tests/utils.py | 87 | CODE | |
| LOW | label_studio/tests/utils.py | 168 | CODE | |
| LOW | label_studio/tests/utils.py | 211 | CODE | |
| LOW | label_studio/tests/test_tasks_upload.py | 15 | CODE | |
| LOW | …studio/tests/data_manager/actions/test_cache_labels.py | 24 | CODE | |
| LOW | label_studio/fsm/functions.py | 74 | CODE | |
| LOW | label_studio/fsm/state_manager.py | 215 | CODE | |
| LOW | label_studio/fsm/models.py | 144 | CODE | |
| LOW | label_studio/fsm/models.py | 356 | CODE | |
| LOW | label_studio/fsm/project_transitions.py | 137 | CODE | |
| LOW | label_studio/fsm/utils.py | 422 | CODE | |
| 41 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | label_studio/organizations/serializers.py | 26 | # ========================================= | COMMENT |
| MEDIUM | label_studio/organizations/serializers.py | 29 | # ========================================= | COMMENT |
| MEDIUM | label_studio/organizations/serializers.py | 149 | # ========================================= | COMMENT |
| MEDIUM | label_studio/core/utils/db.py | 126 | # ===================== | COMMENT |
| MEDIUM | label_studio/core/utils/db.py | 128 | # ===================== | COMMENT |
| MEDIUM | label_studio/projects/models.py | 936 | # ============================================================================ | COMMENT |
| MEDIUM | label_studio/projects/models.py | 938 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | label_studio/fsm/models.py | 17 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | label_studio/fsm/models.py | 19 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | label_studio/fsm/utils.py | 25 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | label_studio/fsm/utils.py | 27 | # ============================================================================= | COMMENT |
| MEDIUM | label_studio/fsm/utils.py | 206 | # ============================================================================= | COMMENT |
| MEDIUM | label_studio/fsm/utils.py | 208 | # ============================================================================= | COMMENT |
| MEDIUM | label_studio/fsm/state_models.py | 218 | # ============================================================================= | COMMENT |
| MEDIUM | label_studio/fsm/state_models.py | 220 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | label_studio/fsm/tests/helpers.py | 27 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | label_studio/fsm/tests/helpers.py | 29 | # ============================================================================ | COMMENT |
| MEDIUM | label_studio/fsm/tests/helpers.py | 66 | # ============================================================================ | COMMENT |
| MEDIUM | label_studio/fsm/tests/helpers.py | 68 | # ============================================================================ | COMMENT |
| MEDIUM | label_studio/fsm/tests/helpers.py | 266 | # ============================================================================ | COMMENT |
| MEDIUM | label_studio/fsm/tests/helpers.py | 268 | # ============================================================================ | COMMENT |
| MEDIUM | …amanager/src/components/Filters/filter-helpers.test.ts | 3 | // ─── filterFieldSearchHandler ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | …amanager/src/components/Filters/filter-helpers.test.ts | 54 | // ─── findSelectedOption ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ibs/datamanager/src/components/Common/ColumnPicker.jsx | 5 | // ── Adapters ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ibs/datamanager/src/components/Common/ColumnPicker.jsx | 258 | // ── Option renderer ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ibs/datamanager/src/components/Common/ColumnPicker.jsx | 296 | // ── Unified component ───────────────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 422 | # Step 1: Create project | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 429 | # Step 2: Create 2 tasks | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 439 | # Step 3: Submit annotation on task1 | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 449 | # Step 4: Submit annotation on task2 | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 459 | # Step 5: Delete annotation from task1 | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 464 | # Step 6: Re-submit annotation on task1 | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 517 | # Step 1: Create task directly without FSM state | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 524 | # Step 2: Create annotation directly | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 534 | # Step 3: Delete annotation via SDK (this triggers FSM logic) | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 537 | # Step 4: Verify task state was initialized and updated | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 562 | # Step 1: Create task without FSM state | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 572 | # Step 2: Submit annotation via SDK | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 579 | # Step 3: Verify states initialized | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 621 | # Step 2: Submit annotation on first task only via SDK | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 628 | # Step 3: Verify both tasks now have states | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 641 | # Step 4: Verify project state is correct (IN_PROGRESS - some tasks completed) | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 672 | # Step 1: Create 3 tasks without FSM states | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 680 | # Step 2: Submit annotations on all tasks via SDK | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 690 | # Step 3: Verify all tasks have correct states | COMMENT |
| LOW⚡ | label_studio/tests/test_fsm_lso_workflows.py | 695 | # Step 4: Verify project is COMPLETED (all tasks completed) | COMMENT |
| LOW | label_studio/tests/test_fsm_lso_workflows.py | 610 | # Step 1: Create two tasks without FSM states | COMMENT |
| LOW | label_studio/tests/data_manager/test_undefined.py | 60 | # Step 1: Import task 1: {"$undefined$": "photo1.jpg"} | COMMENT |
| LOW⚡ | label_studio/tests/data_manager/test_undefined.py | 83 | # Step 4: Set labeling config <View> <Image value="$image" name="img"/> </View> | COMMENT |
| LOW⚡ | label_studio/tests/data_manager/test_undefined.py | 93 | # Step 7: Add task 2: {"$undefined$": "photo2.jpg", "extra": "123"} | COMMENT |
| LOW⚡ | label_studio/tests/data_manager/test_undefined.py | 111 | # Step 12: Update task 1 with {"extra": "456"} | COMMENT |
| LOW⚡ | label_studio/tests/data_manager/test_undefined.py | 119 | # Step 13: Check project.summary.common_data_columns, there should be ["$undefined$", "extra"] | COMMENT |
| LOW⚡ | label_studio/tests/data_manager/test_undefined.py | 127 | # Step 14: Filter by "image" with "photo" should return task 1 and task 2 | COMMENT |
| LOW | label_studio/tests/data_manager/test_views_api.py | 442 | # Step 1: Create a view with a non-nested filter | STRING |
| LOW | label_studio/tests/data_manager/test_views_api.py | 501 | # Step 2: PATCH the view to add a child filter | STRING |
| LOW | label_studio/tests/data_manager/test_views_api.py | 532 | # Step 3: Verify the PATCHed view has the child filter | STRING |
| LOW⚡ | label_studio/tests/data_manager/test_views_api.py | 557 | # Step 4: Test that the PATCHed view filters tasks correctly | STRING |
| LOW⚡ | label_studio/tests/data_manager/test_views_api.py | 566 | # Step 5: PATCH again to modify the child filter | STRING |
| LOW | label_studio/tests/data_manager/test_views_api.py | 597 | # Step 6: Verify the child filter was updated | STRING |
| LOW | …bel_studio/fsm/tests/test_integration_django_models.py | 210 | # Step 1: Create task | COMMENT |
| LOW | …bel_studio/fsm/tests/test_integration_django_models.py | 232 | # Step 2: Assign and start task | COMMENT |
| LOW | …bel_studio/fsm/tests/test_integration_django_models.py | 258 | # Step 3: Complete task | COMMENT |
| LOW⚡ | label_studio/fsm/tests/test_api_example.py | 127 | # Step 1: Create transition from API data | COMMENT |
| LOW⚡ | label_studio/fsm/tests/test_api_example.py | 130 | # Step 2: Execute transition | COMMENT |
| LOW | label_studio/fsm/tests/test_api_example.py | 145 | # Step 3: Format API response | COMMENT |
| LOW | web/libs/editor/src/regions/Result.js | 263 | // We need to check if there is any node up in the tree with visibility restrictions so we can determine | COMMENT |
| LOW | web/libs/editor/src/tags/object/Paragraphs/model.js | 382 | * so we need to check if we already reached the end of current region | COMMENT |
| LOW⚡ | …libs/editor/src/components/KonvaVector/KonvaVector.tsx | 612 | // Step 1: Scale | COMMENT |
| LOW⚡ | …libs/editor/src/components/KonvaVector/KonvaVector.tsx | 616 | // Step 2: Rotate | COMMENT |
| LOW⚡ | …libs/editor/src/components/KonvaVector/KonvaVector.tsx | 620 | // Step 3: Translate and clamp to image bounds | COMMENT |
| LOW | web/apps/playground/src/utils/query.ts | 19 | // We need to check if the content is XML-like, but not XML | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | label_studio/io_storages/functions.py | 17 | Preload and prepare a storage instance from request data. This function handles the common logic for loading e | STRING |
| HIGH | label_studio/fsm/state_manager.py | 116 | Get current state with basic caching. Args: entity: The entity to get current state for | STRING |
| HIGH | label_studio/fsm/state_manager.py | 194 | Get current state object with full audit information. Args: entity: The entity to get curr | STRING |
| HIGH | label_studio/fsm/state_manager.py | 226 | Perform state transition with audit trail. Uses INSERT-only approach for maximum performance: | STRING |
| HIGH | label_studio/fsm/state_manager.py | 520 | Execute a registered transition by name. This is the main entry point for all state transitions using | STRING |
| HIGH | label_studio/fsm/transition_executor.py | 28 | Execute a registered transition using StateManager methods passed as parameters. This function is called by St | STRING |
| HIGH | label_studio/fsm/transitions.py | 194 | Validate whether this specific transition instance can be performed. This method validates both the tr | STRING |
| HIGH | label_studio/fsm/transitions.py | 230 | Execute the transition and return context data for the state record. This is the core method that impl | STRING |
| HIGH | label_studio/fsm/transitions.py | 282 | Prepare and validate the transition, returning the transition data. This method handles the preparatio | STRING |
| HIGH | label_studio/fsm/transitions.py | 418 | Validate whether this transition should execute. Extends parent validation with should_execute() check | STRING |
| HIGH | label_studio/fsm/utils.py | 315 | Get current state, or initialize it if it doesn't exist. This function handles "cold start" scenarios where pr | STRING |
| HIGH | label_studio/fsm/transition_utils.py | 108 | Create a transition instance from a dictionary of data. This handles Pydantic validation and provides clear er | STRING |
| HIGH | label_studio/fsm/state_inference.py | 11 | Infer what the FSM state should be based on entity's current data. This is used for "cold start" scenarios whe | STRING |
| HIGH | label_studio/users/views.py | 146 | Handle user account view and profile updates. This view displays the user's profile information and allows the | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | label_studio/core/static/js/vue.js | 6 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define | CODE |
| LOW | label_studio/tests/test_core.py | 93 | (['label-studio', 'user', '--username', 'test@test.com', '--password', '12345678'], None), | CODE |
| LOW | label_studio/fsm/tests/test_storage_sync_workflows.py | 277 | 'value': {'start': 0, 'end': 8, 'text': 'John Doe', 'labels': ['Person']}, | CODE |
| LOW | label_studio/fsm/tests/test_storage_sync_workflows.py | 289 | 'value': {'start': 0, 'end': 8, 'text': 'John Doe', 'labels': ['Person']}, | CODE |
| LOW | label_studio/fsm/tests/test_storage_sync_workflows.py | 295 | 'value': {'start': 18, 'end': 27, 'text': 'Acme Corp', 'labels': ['Organization']}, | CODE |
| LOW | label_studio/fsm/tests/test_transitions.py | 684 | required_field='test', email_field='user@example.com', number_field=75 | CODE |
| LOW | label_studio/data_manager/actions/basic.py | 139 | 'placeholder': 'All', | CODE |
| LOW | …level-sentiment-analysis-of-x-twitter-posts/config.xml | 35 | <Header name="username" value="John Doe" /> | CODE |
| LOW | …level-sentiment-analysis-of-x-twitter-posts/config.yml | 42 | <Header name="username" value="John Doe" /> | CODE |
| LOW | …rc/lib/collapsible-panel/collapsible-panel.stories.tsx | 259 | {["John Doe", "Jane Smith", "Bob Johnson", "Alice Brown", "Charlie Wilson"].map((name) => ( | CODE |
| LOW | web/libs/ui/src/lib/typography/typography.stories.tsx | 337 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna a | CODE |
| LOW | web/libs/ui/src/lib/typography/typography.stories.tsx | 337 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna a | CODE |
| LOW | web/libs/ui/src/lib/badge-group/badge-group.stories.tsx | 160 | name: "John Doe", | CODE |
| LOW | web/libs/ui/src/lib/select/types.ts | 110 | Omit<React.SelectHTMLAttributes<HTMLSelectElement>, "value" | "placeholder">; | CODE |
| LOW | web/libs/ui/src/lib/json-viewer/json-viewer.stories.tsx | 13 | author: "John Doe", | CODE |
| LOW | web/libs/ui/src/lib/json-viewer/json-viewer.stories.tsx | 65 | name: "John Doe", | CODE |
| LOW | web/libs/ui/src/lib/json-viewer/json-viewer.stories.tsx | 274 | "This is a very long string that will be truncated. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed | CODE |
| LOW | web/libs/ui/src/lib/json-viewer/json-viewer.stories.tsx | 274 | "This is a very long string that will be truncated. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed | CODE |
| LOW | web/libs/ui/src/lib/badge/badge.stories.tsx | 381 | { name: "John Doe", email: "john@example.com", role: "Admin", status: "Annotating", verified: true }, | CODE |
| LOW | web/libs/ui/src/lib/data-table/data-table.stories.tsx | 37 | name: "John Doe", | CODE |
| LOW | web/libs/core/src/lib/utils/schema/tags.json | 2460 | "placeholder": { | CODE |
| LOW | web/libs/core/src/lib/utils/schema/tags.json | 2461 | "name": "placeholder", | CODE |
| LOW | web/libs/core/src/lib/utils/schema/tags.json | 3129 | "placeholder": { | CODE |
| LOW | web/libs/core/src/lib/utils/schema/tags.json | 3130 | "name": "placeholder", | CODE |
| LOW | …sts/integration/e2e/labels/multiple-label-blocks.cy.ts | 239 | Paragraphs.selectText("Lorem ipsum dolor sit amet"); | CODE |
| LOW | …sts/integration/e2e/labels/multiple-label-blocks.cy.ts | 239 | Paragraphs.selectText("Lorem ipsum dolor sit amet"); | CODE |
| LOW | …tests/integration/data/labels/multiple-label-blocks.ts | 159 | text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", | CODE |
| LOW | …tests/integration/data/labels/multiple-label-blocks.ts | 159 | text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", | CODE |
| LOW | web/libs/editor/src/stores/__tests__/UserStore.test.js | 28 | expect(store.displayName).toBe("Jane Doe"); | CODE |
| LOW | web/libs/editor/src/stores/__tests__/UserStore.test.js | 53 | expect(user.displayName).toBe("Jane Doe"); | CODE |
| LOW | …/components/TaskSummary/__tests__/TaskSummary.test.tsx | 96 | displayName: "John Doe", | CODE |
| LOW | …/components/TaskSummary/__tests__/TaskSummary.test.tsx | 113 | createdBy: "John Doe", | CODE |
| LOW | docs/source/guide/embed.md | 68 | "user_email": "user@example.com", | CODE |
| LOW | docs/source/guide/embed.md | 93 | user_email: "user@example.com", | CODE |
| LOW⚡ | docs/source/guide/agreement_metrics.md | 554 | | Annotator A | "John Smith" | "123 Main St" | "New York" | | CODE |
| LOW⚡ | docs/source/guide/agreement_metrics.md | 555 | | Annotator B | "John Smith" | "123 Main Street" | "New York" | | CODE |
| LOW⚡ | docs/source/guide/agreement_metrics.md | 558 | - Line 2: "123 Main St" vs "123 Main Street" → **~0.81** | CODE |
| LOW | docs/source/plugins/llm_backend.md | 88 | to_name: "placeholder", | CODE |
| LOW | docs/source/plugins/llm_backend.md | 100 | to_name: "placeholder", | CODE |
| LOW | docs/source/plugins/llm_backend.md | 112 | to_name: "placeholder", | CODE |
| LOW⚡ | docs/source/plugins/llm_backend.md | 168 | <View className="placeholder"> | CODE |
| LOW⚡ | docs/source/plugins/llm_backend.md | 169 | <Text name="placeholder" value="placeholder" /> | CODE |
| LOW⚡ | docs/source/plugins/llm_backend.md | 175 | toName="placeholder" | CODE |
| LOW | docs/source/plugins/llm_backend.md | 189 | toName="placeholder" | CODE |
| LOW | docs/source/plugins/llm_backend.md | 201 | <Choices name="category" toName="placeholder" choice="single" showInLine="true"> | CODE |
| LOW | docs/source/plugins/llm_backend.md | 211 | toName="placeholder" | CODE |
| LOW | docs/source/tags/reactcode.md | 709 | { text: "John Doe", label: "PERSON", start: 0, end: 8 }, | CODE |
| LOW | docs/source/tags/reactcode.md | 727 | "text": "John Doe", | CODE |
| LOW | …tes/two_level_sentiment_analysis_of_x_twitter_posts.md | 58 | <Header name="username" value="John Doe" /> | CODE |
| LOW⚡ | docs/themes/v2/source/js/playground/jquery-ui.min.js | 6 | (function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e= | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | label_studio/tasks/api.py | 791 | # Check if task is being skipped and if it's allowed | STRING |
| LOW | label_studio/core/label_config.py | 282 | is_value_list = 'valueList' in p.attrib # Check if the attribute is 'valueList' | CODE |
| LOW | label_studio/core/label_config.py | 423 | # Check if formatted string is monotonic (to handle cycling due to format truncation) | COMMENT |
| LOW | label_studio/core/middleware.py | 231 | # Check if this request is too far from when the login happened | COMMENT |
| LOW | label_studio/core/management/commands/locked_migrate.py | 62 | # Check if the maximum wait time has been reached | COMMENT |
| LOW | label_studio/core/utils/db.py | 161 | # Check if we're in an async context and need to allow async-unsafe operations | COMMENT |
| LOW | label_studio/io_storages/proxy_api.py | 55 | # Check if storage should use presigned URLs; | COMMENT |
| LOW | label_studio/io_storages/proxy_api.py | 104 | # Check if we've exceeded our time limit | COMMENT |
| LOW | label_studio/io_storages/base_models.py | 609 | # Check if file should be processed as JSON based on extension | COMMENT |
| LOW⚡ | label_studio/io_storages/api.py | 198 | # Check if we've reached the file limit | COMMENT |
| LOW⚡ | label_studio/io_storages/api.py | 203 | # Check if we've exceeded the timeout | COMMENT |
| LOW | label_studio/io_storages/utils.py | 218 | # Check if we got any items - if not, it's an empty array which is valid | COMMENT |
| LOW | label_studio/io_storages/localfiles/views.py | 60 | # Check if the client's cached representation matches the current file | COMMENT |
| LOW | label_studio/projects/models.py | 728 | # Check if labels created in annotations, and their control tag has been removed | COMMENT |
| LOW | label_studio/projects/functions/utils.py | 29 | # Check if it's a list of IDs (integers) | COMMENT |
| LOW | label_studio/projects/functions/utils.py | 40 | # Check if it's a set of IDs (integers) | COMMENT |
| LOW | label_studio/projects/functions/next_task.py | 72 | # Check if user is in onboarding window - return early if not | COMMENT |
| LOW | label_studio/ml_model_providers/models.py | 134 | # Check if user is Admin or Owner | COMMENT |
| LOW | label_studio/fsm/state_manager.py | 568 | # Check if enterprise has configured a custom state manager | COMMENT |
| LOW | label_studio/fsm/models.py | 208 | # Check if this transition should execute based on trigger metadata | COMMENT |
| LOW | label_studio/fsm/models.py | 225 | # Check if any trigger fields changed | COMMENT |
| LOW | label_studio/fsm/models.py | 247 | # Check if should_execute is overridden (not using the base implementation) | COMMENT |
| LOW | label_studio/fsm/models.py | 380 | # Check if this is a creation vs update | COMMENT |
| LOW | label_studio/fsm/transition_executor.py | 140 | # Check if this transition forces state record creation (for audit trails) | COMMENT |
| LOW | label_studio/fsm/serializer_fields.py | 100 | # Check if the instance has a state annotation | COMMENT |
| LOW | label_studio/users/serializers.py | 163 | # Check if the action key follows the section:action format | COMMENT |
| LOW | label_studio/users/functions/last_activity.py | 70 | # Increment counter | COMMENT |
| LOW | label_studio/users/functions/last_activity.py | 125 | # Set expiration to match other keys | COMMENT |
| LOW | label_studio/webhooks/utils.py | 120 | # Check if batching is needed | COMMENT |
| LOW | …ocker-entrypoint.d/common/05-check-data-permissions.sh | 7 | # Check if data directory is writable | COMMENT |
| LOW | …r-entrypoint.d/app-docker/05-check-data-permissions.sh | 7 | # Check if data directory is writable | COMMENT |
| LOW | docs/_config.yml | 92 | ## Set per_page to 0 to disable pagination | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/source/templates/chat_rlhf.md | 190 | * `value`: This is required, and should use a variable referencing your [input data](#Input-data). In this example, we u | COMMENT |
| HIGH | docs/source/templates/chat_llm_eval.md | 164 | * `value`: This is required, and should use a variable referencing your [input data](#Input-data). In this example, we u | COMMENT |
| HIGH | docs/source/templates/chatbot.md | 190 | * `value`: This is required, and should use a variable referencing your [input data](#Input-data). In this example, we u | COMMENT |
| HIGH | docs/source/templates/chat_red_team.md | 176 | * `value`: This is required, and should use a variable referencing your [input data](#Input-data). In this example, we u | COMMENT |
| HIGH | docs/source/templates/chat_eval.md | 82 | * `value`: This is required, and should use a variable referencing your [input data](#Input-data). In this example, we u | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | label_studio/core/version.py | 1 | CODE | |
| LOW | label_studio/core/settings/label_studio.py | 5 | CODE | |
| LOW | label_studio/core/feature_flags/__init__.py | 1 | CODE | |
| LOW | label_studio/core/feature_flags/__init__.py | 1 | CODE | |
| LOW | label_studio/core/feature_flags/__init__.py | 1 | CODE | |
| LOW | label_studio/core/utils/common.py | 3 | CODE | |
| LOW | label_studio/core/utils/common.py | 765 | CODE | |
| LOW | label_studio/io_storages/models.py | 5 | CODE | |
| LOW | label_studio/io_storages/models.py | 5 | CODE | |
| LOW | label_studio/io_storages/models.py | 5 | CODE | |
| LOW | label_studio/io_storages/models.py | 5 | CODE | |
| LOW | label_studio/io_storages/models.py | 11 | CODE | |
| LOW | label_studio/io_storages/models.py | 11 | CODE | |
| LOW | label_studio/io_storages/models.py | 11 | CODE | |
| LOW | label_studio/io_storages/models.py | 11 | CODE | |
| LOW | label_studio/io_storages/models.py | 17 | CODE | |
| LOW | label_studio/io_storages/models.py | 17 | CODE | |
| LOW | label_studio/io_storages/models.py | 17 | CODE | |
| LOW | label_studio/io_storages/models.py | 17 | CODE | |
| LOW | label_studio/io_storages/models.py | 23 | CODE | |
| LOW | label_studio/io_storages/models.py | 23 | CODE | |
| LOW | label_studio/io_storages/models.py | 23 | CODE | |
| LOW | label_studio/io_storages/models.py | 23 | CODE | |
| LOW | …o_storages/tests/test_storage_prediction_validation.py | 9 | CODE | |
| LOW | label_studio/projects/functions/utils.py | 11 | CODE | |
| LOW | label_studio/projects/functions/utils.py | 11 | CODE | |
| LOW | label_studio/tests/conftest.py | 35 | CODE | |
| LOW | label_studio/tests/conftest.py | 30 | CODE | |
| LOW | label_studio/fsm/registry.py | 15 | CODE | |
| LOW | label_studio/fsm/registry.py | 16 | CODE | |
| LOW | label_studio/fsm/apps.py | 30 | CODE | |
| LOW | label_studio/fsm/apps.py | 30 | CODE | |
| LOW | label_studio/fsm/apps.py | 38 | CODE | |
| LOW | label_studio/fsm/apps.py | 50 | CODE | |
| LOW | label_studio/fsm/apps.py | 50 | CODE | |
| LOW | label_studio/fsm/apps.py | 50 | CODE | |
| LOW | label_studio/users/functions/__init__.py | 1 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | label_studio/core/static/js/sw.js | 41 | // For now just catch presign requests and cache them | COMMENT |
| LOW | label_studio/projects/api.py | 421 | return super(ProjectAPI, self).put(request, *args, **kwargs) | COMMENT |
| LOW | label_studio/tests/shared_stages.yml | 181 | # headers: | COMMENT |
| LOW | label_studio/tests/test_docs.py | 1 | # --- | COMMENT |
| LOW | label_studio/tests/test_annotations.py | 261 | # if apps.is_installed('businesses'): | COMMENT |
| LOW | label_studio/tests/test_annotations.py | 281 | # task = Task.objects.get(id=task_id) | COMMENT |
| LOW | label_studio/tests/test_data/full_steps.yml | 61 | - neg | COMMENT |
| LOW | label_studio/tests/test_data/full_steps.yml | 81 | # | COMMENT |
| LOW | label_studio/tests/test_data/full_steps.yml | 101 | # choices: | COMMENT |
| LOW | web/libs/core/src/lib/utils/analytics.ts | 41 | COMMENT | |
| LOW | web/libs/datamanager/src/sdk/lsf-sdk.js | 1161 | _debouncedFirstOldSelection = undefined; | COMMENT |
| LOW | web/libs/editor/src/serviceWorker.js | 1 | // This optional code is used to register a service worker. | COMMENT |
| LOW | web/libs/editor/src/regions/Result.js | 81 | COMMENT | |
| LOW | web/libs/editor/src/stores/Annotation/HistoryItem.js | 1 | import { types } from "mobx-state-tree"; | COMMENT |
| LOW | web/libs/editor/src/stores/__tests__/TaskStore.test.js | 21 | // }; | COMMENT |
| LOW | web/libs/editor/src/utils/magic-wand.js | 1 | /* eslint-disable prefer-const */ | COMMENT |
| LOW | …ibs/editor/src/components/KonvaVector/eventHandlers.ts | 1 | // This file has been refactored into smaller, more manageable chunks. | COMMENT |
| LOW | web/apps/labelstudio/tsconfig.json | 1 | { | COMMENT |
| LOW | web/apps/labelstudio/tsconfig.json | 21 | // "noEmit": true, /* Do not emit outputs. */ | COMMENT |
| LOW | web/apps/labelstudio/tsconfig.json | 41 | /* Module Resolution Options */ | COMMENT |
| LOW | web/apps/labelstudio-e2e/src/support/e2e.ts | 1 | // *********************************************************** | COMMENT |
| LOW | docs/source/guide/install_enterprise_docker.md | 101 | # Optional: PostgreSQL SSL mode | COMMENT |
| LOW | docs/source/guide/install_enterprise_docker.md | 121 | # Optional: Redis socket timeout | COMMENT |
| LOW | docs/source/templates/react_claims.md | 81 | // - Hierarchical tree view of agent steps (thoughts, tool calls, sub-agents, outputs) | COMMENT |
| LOW | docs/source/templates/interfaces-agent-eval.md | 181 | // Emits up to five independent results, all with to_name: "run": | COMMENT |
| LOW | docs/themes/v2/source/js/playground/codemirror.js | 1281 | // One-char codes used for character types: | COMMENT |
| LOW | docs/themes/v2/source/js/playground/codemirror.js | 3641 | } | COMMENT |
| LOW | docs/themes/v2/source/js/playground/codemirror.js | 7321 | } | COMMENT |
| LOW | .devcontainer/docker-compose.yml | 1 | version: "3.3" | COMMENT |
| LOW | .devcontainer/docker-compose.yml | 21 | # dockerfile: .devcontainer/Dockerfile | COMMENT |
| LOW | .devcontainer/devcontainer.json | 41 | "ms-azuretools.vscode-docker", | COMMENT |
| LOW | .github/workflows/stale.yml | 1 | # This workflow warns and then closes issues and PRs that have had no activity for a specified amount of time. | COMMENT |
| LOW | .github/workflows/invite-check.yml | 21 | uses: slackapi/slack-github-action@v3.0 | COMMENT |
| LOW | .github/workflows/invite-check.yml | 41 | # with: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | label_studio/core/argparser.py | 160 | default_params = '{"annotations__completed_by": {"only_id": null}, "interpolate_key_frames": true}' | CODE |
| HIGH | label_studio/io_storages/base_models.py | 594 | # pubsub.push(topic, key) | COMMENT |
| HIGH | …el_studio/tests/test_data/gen_tasks_and_annotations.py | 21 | tc_template = """{"id": %s,"review_result":null,"ground_truth":false,"result":[{"id":"MGK92Ogo4t","type":"choices","valu | CODE |
| HIGH | …bel_studio/tests/data_manager/test_ordering_filters.py | 47 | def test_views_ordering(ordering, element_index, undefined, business_client, project_id): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | label_studio/core/settings/base.py | 291 | # Typical secure configuration is simply set CORS_ALLOW_ALL_ORIGINS = False in the env | COMMENT |
| MEDIUM | label_studio/io_storages/base_models.py | 721 | # needed to facilitate debugging storage-related testcases, since otherwise no exception is logged | COMMENT |
| MEDIUM | label_studio/tests/test_prediction_validation.py | 46 | # Create a project with a comprehensive label configuration | COMMENT |
| MEDIUM | label_studio/tests/sdk/test_prediction_validation.py | 24 | # Create a project with a comprehensive label configuration | COMMENT |
| MEDIUM | label_studio/fsm/tests/test_api_example.py | 66 | """Task assignment via API with comprehensive validation""" | STRING |
| MEDIUM | label_studio/data_manager/serializers.py | 88 | # Allow underscores if the filter is based on the `task.data` JSONField, because these don't leverage foreig | COMMENT |
| LOW | label_studio/jwt_auth/views.py | 148 | # Would be ideal to just add a "blacklisted" attr to our own subclass of | COMMENT |
| MEDIUM | web/libs/editor/examples/sentiment_analysis/tasks.json | 907 | "reviewText": "This is good cable. Excellent 1/4" plugs. The lugs and solder joints are covered with hea | CODE |
| MEDIUM | …libs/editor/src/examples/sentiment_analysis/tasks.json | 737 | "reviewText": "This is good cable. Excellent 1/4" plugs. The lugs and solder joints are covered with heat shri | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …l_studio/users/product_tours/configs/create_prompt.yml | 10 | content: '<div style="width: 100%;">We’ve gone ahead and generated a prompt for you based on your project’s labeling c | CODE |
| MEDIUM | web/libs/core/src/lib/utils/schema/tags.json | 789 | "description": "Video tag plays a simple video file. Use for video annotation tasks such as classification and trans | CODE |
| MEDIUM | .devcontainer/docker-compose.yml | 5 | # If you want add a non-root user to your Dockerfile, you can use the "remoteUser" | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | label_studio/organizations/middleware.py | 23 | CODE | |
| LOW | label_studio/tasks/models.py | 622 | CODE | |
| LOW | label_studio/core/current_request.py | 150 | CODE | |
| LOW | label_studio/core/storage.py | 135 | CODE | |
| LOW | label_studio/projects/serializers.py | 371 | CODE | |
| LOW | label_studio/users/functions/common.py | 93 | CODE | |
| LOW | …lpers/gh_changelog_generator/gh_changelog_generator.py | 353 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …/labelstudio/src/components/HeidiTips/liveContent.json | 244 | "url": "https://humansignal.com/blog/introducing-human-in-the-loop-evaluation-for-agentic-ai-observability/", | CODE |
| MEDIUM | docs/source/guide/enterprise_features.md | 248 | ### Low-trust annotator guardrails | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | label_studio/tasks/models.py | 1224 | # TODO: handle exceptions better | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | label_studio/data_manager/actions/__init__.py | 133 | def perform_action(action_id, project, queryset, user, **kwargs): | CODE |