ArtCraft is an intentional crafting engine for artists, designers, and filmmakers
This report summarizes scanner evidence for storytold/artcraft, a Rust project with 38,034 GitHub stars. SynthScan examined 536,194 lines of code across 5430 source files, recording 1075 pattern matches distributed across 17 syntactic categories. The legacy adjusted pattern signal is 3.1 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 830 finding(s).
Are imports declared and package/API names verified? 26 finding(s).
Are wrappers, guards, and repeated structures necessary? 415 finding(s).
Which changes need focused human review? 1075 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1075 distinct pattern matches across 17 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …enerate_image/providers/artcraft/gpt_image_1p5/cost.rs | 140 | // ── Default (None → High) ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | …enerate_image/providers/artcraft/gpt_image_1p5/cost.rs | 157 | // ── Low ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …enerate_image/providers/artcraft/gpt_image_1p5/cost.rs | 168 | // ── Medium ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …enerate_image/providers/artcraft/gpt_image_1p5/cost.rs | 182 | // ── High ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/generate_image/providers/artcraft/gpt_image_1/cost.rs | 150 | // ── Default (High square) → 17¢ ─────────────────────────────────────────── | COMMENT |
| MEDIUM | …/generate_image/providers/artcraft/gpt_image_1/cost.rs | 158 | // ── Low → 2¢ all sizes ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/generate_image/providers/artcraft/gpt_image_1/cost.rs | 172 | // ── Medium ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/generate_image/providers/artcraft/gpt_image_1/cost.rs | 183 | // ── High ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/generate_image/providers/artcraft/gpt_image_1/cost.rs | 194 | // ── Edit mode adds 2¢ per input image ───────────────────────────────────── | COMMENT |
| MEDIUM | …enerate_image/providers/artcraft/nano_banana_2/cost.rs | 82 | // ── Default / 1K (8¢) ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …enerate_image/providers/artcraft/nano_banana_2/cost.rs | 93 | // ── 0.5K (6¢) ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …enerate_image/providers/artcraft/nano_banana_2/cost.rs | 101 | // ── 2K (12¢) ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …enerate_image/providers/artcraft/nano_banana_2/cost.rs | 109 | // ── 3K falls back to 2K pricing ──────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …enerate_image/providers/artcraft/nano_banana_2/cost.rs | 116 | // ── 4K (16¢) ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/generate_image/providers/artcraft/gpt_image_2/cost.rs | 155 | // ── Low (1¢ all sizes) ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/generate_image/providers/artcraft/gpt_image_2/cost.rs | 169 | // ── Medium ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/generate_image/providers/artcraft/gpt_image_2/cost.rs | 195 | // ── High ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …erate_image/providers/artcraft/nano_banana_pro/cost.rs | 71 | // ── ≤2K → 15¢/image ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …erate_image/providers/artcraft/nano_banana_pro/cost.rs | 88 | // ── 4K → 30¢/image ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …erate_image/providers/artcraft/nano_banana_pro/cost.rs | 99 | // ── 3K and legacy resolutions fall back to 15¢ ───────────────────────────── | COMMENT |
| MEDIUM | …ideo/providers/artcraft/grok_imagine_video_1p5/cost.rs | 137 | // ── Markup correctness ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ideo/providers/artcraft/grok_imagine_video_1p5/cost.rs | 234 | // ── Relative pricing / monotonicity sanity ───────────────────────────── | COMMENT |
| MEDIUM | …ideo/providers/artcraft/grok_imagine_video_1p5/cost.rs | 281 | // ── End-to-end through the public builder API ────────────────────────── | COMMENT |
| MEDIUM | …ideo/providers/artcraft/grok_imagine_video_1p5/cost.rs | 341 | // ── Helpers ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ideo/providers/grok_api/grok_imagine_video_1p5/cost.rs | 291 | // ── No-image rejection (defense in depth) ───────────────────────────── | COMMENT |
| MEDIUM | …bs/model-list/src/lib/loader/buildModelsFromListing.ts | 34 | // ── Structural shapes of the backend listing (subset we read) ────────────── | COMMENT |
| MEDIUM | …bs/model-list/src/lib/loader/buildModelsFromListing.ts | 84 | // ── Public builders ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …bs/model-list/src/lib/loader/buildModelsFromListing.ts | 98 | // ── Core assembly ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …bs/model-list/src/lib/loader/buildModelsFromListing.ts | 303 | // ── Helpers ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/libs/omni-gen/src/lib/omni-gen-audio.ts | 22 | // ── Request params ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/libs/omni-gen/src/lib/omni-gen-audio.ts | 42 | // ── Request builder ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/libs/omni-gen/src/lib/omni-gen-audio.ts | 95 | // ── Enqueue generation ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/libs/omni-gen/src/lib/omni-gen-audio.ts | 139 | // ── Cost estimate hook ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/libs/omni-gen/src/lib/omni-gen-hooks.ts | 18 | // ── Error notifier ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/libs/omni-gen/src/lib/omni-gen-hooks.ts | 32 | // ── Singleton caches (fetch once per session) ──────────────────────────── | COMMENT |
| MEDIUM | frontend/libs/omni-gen/src/lib/omni-gen-hooks.ts | 219 | // ── Hooks ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …dal/src/lib/UploadModal3D/utilities/convertFbxToGlb.ts | 34 | // ─── worker plumbing ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/libs/components/keybinds/src/lib/registry.ts | 33 | // ── Global (app-wide) ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/libs/components/keybinds/src/lib/registry.ts | 48 | // ── PageScene: camera (continuous, held) ────────────────────────────────── | COMMENT |
| MEDIUM | frontend/libs/components/keybinds/src/lib/registry.ts | 60 | // ── PageScene: transform ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/libs/components/keybinds/src/lib/registry.ts | 68 | // ── PageScene: view ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/libs/components/keybinds/src/lib/registry.ts | 81 | // ── PageScene: selection ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/libs/components/keybinds/src/lib/registry.ts | 91 | // ── PageScene: edit ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/libs/components/keybinds/src/lib/registry.ts | 109 | // ── PageScene: timeline ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/libs/components/keybinds/src/lib/registry.ts | 159 | // ── PageScene: record ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/libs/components/keybinds/src/lib/registry.ts | 178 | // ── PageDraw (2D editor) ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/libs/components/keybinds/src/lib/registry.ts | 203 | // ── Moodboard ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/libs/components/keybinds/src/lib/registry.ts | 232 | // ── Moodboard grid (board library, item inspector, presentation) ───────── | COMMENT |
| MEDIUM | frontend/libs/components/keybinds/src/lib/registry.ts | 273 | // ── availability ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | frontend/libs/components/keybinds/src/lib/registry.ts | 307 | // ── builders ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ponents/keybinds/src/lib/settings/KeybindsSettings.tsx | 324 | // ── Preset dropdown ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ponents/keybinds/src/lib/settings/KeybindsSettings.tsx | 450 | // ── Search fields ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ponents/keybinds/src/lib/settings/KeybindsSettings.tsx | 584 | // ── Sections ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ponents/keybinds/src/lib/settings/KeybindsSettings.tsx | 810 | // ── Rows ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ponents/keybinds/src/lib/settings/KeybindsSettings.tsx | 954 | // ── Bits ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ponents/keybinds/src/lib/settings/KeybindsSettings.tsx | 976 | // ── Icons (thin-line, currentColor; keeps the lib dependency-free) ──────────── | COMMENT |
| MEDIUM | …omponents/audio-player/src/lib/WaveformAudioPlayer.tsx | 71 | // ── Audio element (owns playback in both wave and fallback modes) ────── | COMMENT |
| MEDIUM | …omponents/audio-player/src/lib/WaveformAudioPlayer.tsx | 115 | // ── Wavesurfer visualization (lazy: only once scrolled into view) ────── | COMMENT |
| MEDIUM | …omponents/audio-player/src/lib/WaveformAudioPlayer.tsx | 206 | // ── Handlers ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …nd/libs/components/gallery-modal/src/lib/galleryDnd.ts | 37 | // ── Drag preview (floating chip that follows cursor) ───────────────────────── | COMMENT |
| 144 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | rustfmt.toml | 1 | # Storyteller rustfmt rules | COMMENT |
| LOW | rustfmt.toml | 21 | # # (This is commented out for now to reduce the first round of rustfmt diffs, but will be enabled.) | COMMENT |
| LOW | …sktop/artcraft/src/core/state/task_database_version.rs | 1 | COMMENT | |
| LOW | crates/desktop/artcraft/src/core/state/expanduser.rs | 21 | // s if s.starts_with("~") => { | COMMENT |
| LOW | …e/state/app_preferences/preferred_download_filename.rs | 1 | use chrono::{DateTime, Datelike, Local, Timelike}; | COMMENT |
| LOW | …e/state/app_preferences/preferred_download_filename.rs | 21 | /// | COMMENT |
| LOW | …sktop/artcraft/src/core/commands/response/shorthand.rs | 1 | use crate::core::commands::response::failure_response_wrapper::CommandErrorResponseWrapper; | COMMENT |
| LOW | …sktop/artcraft/src/core/commands/response/shorthand.rs | 21 | // - set_fal_api_key_command | COMMENT |
| LOW | …/image_to_object/enqueue_image_to_3d_object_command.rs | 41 | /// as a Tauri event on task completion. | COMMENT |
| LOW | …image_to_gaussian/enqueue_image_to_gaussian_command.rs | 61 | /// OPTIONAL. | COMMENT |
| LOW | …image_to_gaussian/worldlabs/handle_worldlabs_marble.rs | 161 | // | COMMENT |
| LOW | …image_to_gaussian/worldlabs/handle_worldlabs_marble.rs | 181 | // max: MAX_IMAGES as u32, | COMMENT |
| LOW | …image_to_gaussian/worldlabs/handle_worldlabs_marble.rs | 201 | // let extension_with_dot = get_url_file_extension(media_file_url) | COMMENT |
| LOW | …image_to_gaussian/worldlabs/handle_worldlabs_marble.rs | 221 | // if let Some(errors) = maybe_errors { | COMMENT |
| LOW | …e/image_bg_removal/enqueue_image_bg_removal_command.rs | 41 | COMMENT | |
| LOW | …/commands/generate/generate_image/tauri_image_model.rs | 1 | use serde_derive::Deserialize; | COMMENT |
| LOW | …/commands/generate/generate_image/tauri_image_model.rs | 41 | #[serde(rename = "nano_banana")] | COMMENT |
| LOW | …/generate/generate_image/providers/grok/handle_grok.rs | 21 | ) -> Result<TaskEnqueueSuccess, GenerateError> { | COMMENT |
| LOW | …recated/image_inpaint/enqueue_image_inpaint_command.rs | 101 | /// Tends to be used by OpenAI models. | COMMENT |
| LOW | …t/artcraft/handle_artcraft_flux_pro_kontext_inpaint.rs | 61 | // &app_env_configs.storyteller_host, | COMMENT |
| LOW | …ds/deprecated/image_edit/enqueue_edit_image_command.rs | 141 | COMMENT | |
| LOW | …recated/text_to_image/enqueue_text_to_image_command.rs | 41 | /// This is used in the Tauri command bridge. | COMMENT |
| LOW | …recated/text_to_image/enqueue_text_to_image_command.rs | 121 | /// Reference images (without semantics) | COMMENT |
| LOW | …/commands/deprecated/text_to_image/grok/handle_grok.rs | 21 | ) -> Result<TaskEnqueueSuccess, GenerateError> { | COMMENT |
| LOW | …p/artcraft/src/core/events/generation_events/common.rs | 101 | // TODO: Should be Kling16Pro | COMMENT |
| LOW | …k_video_task_polling/grok_video_task_polling_thread.rs | 361 | // Some(storyteller_creds), | COMMENT |
| LOW | …/windows/grok_login_window/grok_login_window_thread.rs | 141 | COMMENT | |
| LOW | …sk_polling_thread/handle_storyteller_successful_job.rs | 101 | COMMENT | |
| LOW | …sk_polling_thread/handle_storyteller_successful_job.rs | 121 | COMMENT | |
| LOW | crates/testing/test_utils/src/lib.rs | 1 | //! testing | COMMENT |
| LOW | crates/testing/test_utils/src/lib.rs | 21 | #![forbid(unused_variables)] | COMMENT |
| LOW | crates/testing/test_data/src/lib.rs | 1 | //! A library with test data for our test cases. | COMMENT |
| LOW | crates/schema/database/sqlite_tasks/src/lib.rs | 1 | //! sqlite_tasks | COMMENT |
| LOW | crates/schema/public/enums/src/lib.rs | 1 | //! enums | COMMENT |
| LOW | …schema/public/enums/src/tauri/tasks/task_model_type.rs | 21 | // NB: For inpainting for now | COMMENT |
| LOW | …s/schema/public/enums/src/tauri/ux/tauri_event_name.rs | 1 | use std::collections::BTreeSet; | COMMENT |
| LOW | …s/schema/public/enums/src/tauri/ux/tauri_event_name.rs | 21 | GenerationEnqueueSuccessEvent, | COMMENT |
| LOW | …s/schema/public/enums/src/tauri/ux/tauri_event_name.rs | 41 | /// Informational event: | COMMENT |
| LOW | …s/schema/public/enums/src/tauri/ux/tauri_event_name.rs | 61 | /// Special event: | COMMENT |
| LOW | …s/schema/public/enums/src/tauri/ux/tauri_event_name.rs | 81 | /// Special event: | COMMENT |
| LOW | …s/schema/public/enums/src/tauri/ux/tauri_event_name.rs | 301 | #[test] | COMMENT |
| LOW | …hema/public/enums/src/tauri/ux/tauri_command_caller.rs | 141 | // Test to_str(), from_str(), Display, and Debug. | COMMENT |
| LOW | …enums/src/by_table/email_sender_jobs/email_category.rs | 1 | use std::collections::BTreeSet; | COMMENT |
| LOW | …public/enums/src/by_table/user_ratings/rating_value.rs | 1 | #[cfg(test)] | COMMENT |
| LOW | …nums/src/by_table/generic_synthetic_ids/id_category.rs | 1 | use std::collections::BTreeSet; | COMMENT |
| LOW | …nums/src/by_table/generic_synthetic_ids/id_category.rs | 41 | #[serde(rename = "mocap")] | COMMENT |
| LOW | …c/enums/src/by_table/media_files/media_file_subtype.rs | 1 | // Deprecated model variants (e.g. the Seedance 2.0 Ultra tier) must keep | COMMENT |
| LOW | …c/enums/src/by_table/media_files/media_file_subtype.rs | 21 | #[serde(rename_all = "snake_case")] | COMMENT |
| LOW | …able/media_files/media_file_origin_product_category.rs | 1 | // Deprecated model variants (e.g. the Seedance 2.0 Ultra tier) must keep | COMMENT |
| LOW | …able/media_files/media_file_origin_product_category.rs | 21 | /// DO NOT CHANGE VALUES WITHOUT A MIGRATION STRATEGY. | COMMENT |
| LOW | …c/by_table/media_files/media_file_origin_model_type.rs | 1 | // Deprecated model variants (e.g. the Seedance 2.0 Ultra tier) must keep | COMMENT |
| LOW | …src/by_table/media_files/media_file_origin_category.rs | 1 | // Deprecated model variants (e.g. the Seedance 2.0 Ultra tier) must keep | COMMENT |
| LOW | …blic/enums/src/by_table/media_files/media_file_type.rs | 1 | // Deprecated model variants (e.g. the Seedance 2.0 Ultra tier) must keep | COMMENT |
| LOW | …blic/enums/src/by_table/media_files/media_file_type.rs | 21 | #[serde(rename_all = "snake_case")] | COMMENT |
| LOW | …lic/enums/src/by_table/media_files/media_file_class.rs | 1 | // Deprecated model variants (e.g. the Seedance 2.0 Ultra tier) must keep | COMMENT |
| LOW | …ms/src/by_table/media_files/media_file_project_type.rs | 1 | use std::collections::BTreeSet; | COMMENT |
| LOW | …ms/src/by_table/media_files/media_file_project_type.rs | 21 | pub enum MediaFileProjectType { | COMMENT |
| LOW | …y_table/generic_download_jobs/generic_download_type.rs | 1 | use std::collections::BTreeSet; | COMMENT |
| LOW | …y_table/generic_download_jobs/generic_download_type.rs | 21 | /// NB: Note - this is hifigan for Tacotron2. | COMMENT |
| LOW | …y_table/generic_download_jobs/generic_download_type.rs | 41 | //MelGanVocodes, | COMMENT |
| 444 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …equests/auth_sentinel_2/metadata/python_impl/config.py | 35 | "unregisterProtocolHandler−function unregisterProtocolHandler() { [native code] }", | CODE |
| LOW | …equests/auth_sentinel_2/metadata/python_impl/config.py | 73 | "requestMediaKeySystemAccess−function requestMediaKeySystemAccess() { [native code] }", | CODE |
| LOW | …penai_sora_client/src/requests/auth_sentinel/config.rs | 37 | // "unregisterProtocolHandler−function unregisterProtocolHandler() { [native code] }", | COMMENT |
| LOW | …penai_sora_client/src/requests/auth_sentinel/config.rs | 75 | // "requestMediaKeySystemAccess−function requestMediaKeySystemAccess() { [native code] }", | COMMENT |
| LOW | …ials/_metadata/crypto_signature/xStatsigIDGenerator.py | 97 | def _try_curl_with_different_ua(self) -> bytes: | CODE |
| LOW | …ials/_metadata/crypto_signature/xStatsigIDGenerator.py | 133 | def _try_requests_with_session(self) -> bytes: | CODE |
| LOW | …ials/_metadata/crypto_signature/xStatsigIDGenerator.py | 216 | def _try_alternative_endpoints(self) -> bytes: | CODE |
| LOW | …ials/_metadata/crypto_signature/xStatsigIDGenerator.py | 316 | def generate_browser_fingerprint(self) -> str: | CODE |
| LOW | …end/libs/markdown-content/src/lib/markdown-content.tsx | 4 | export function StorytellerMarkdownContent() { | CODE |
| LOW | …ontend/libs/model-list/src/lib/classes/videoOptions.ts | 14 | export function resolveVideoGenerationCount(model: VideoModel, current: number): number { | CODE |
| LOW | frontend/libs/tauri-utils/src/lib/useWindowControls.ts | 81 | export async function toggleMaximizeCurrentWindow() { | CODE |
| LOW | …ng-modal/src/lib/convert/videoStoreToGenerationMode.ts | 4 | export function videoStoreToGenerationMode( | CODE |
| LOW | …modal/src/lib/convert/stringToCommonVideoResolution.ts | 13 | export function stringToCommonVideoResolution( | CODE |
| LOW | …-modal/src/lib/convert/videoModelToCommonVideoModel.ts | 12 | export function videoModelToCommonVideoModel( | CODE |
| LOW | …ng-modal/src/lib/convert/imageStoreToGenerationMode.ts | 4 | export function imageStoreToGenerationMode( | CODE |
| LOW | …src/lib/convert/videoAspectRatioToCommonAspectRatio.ts | 5 | export function videoAspectRatioToCommonAspectRatio( | CODE |
| LOW | …src/lib/convert/imageAspectRatioToCommonAspectRatio.ts | 14 | export function imageAspectRatioToCommonAspectRatio( | CODE |
| LOW | …-modal/src/lib/convert/imageModelToCommonImageModel.ts | 12 | export function imageModelToCommonImageModel( | CODE |
| LOW | …ib/UploadModal3D/utilities/readGlbAnimationDuration.ts | 8 | export async function readGlbAnimationDurationMillis( | CODE |
| LOW | frontend/libs/components/keybinds/src/lib/matcher.ts | 57 | export function isEventFromEditableElement(e: KeyboardEvent): boolean { | CODE |
| LOW | …ents/audio-player/src/lib/audio-playback-controller.ts | 37 | export function resetAudioPlaybackControllerForTests(): void { | CODE |
| LOW | …nd/libs/components/gallery-modal/src/lib/galleryDnd.ts | 69 | function updateDragPreviewPosition(x: number, y: number) { | CODE |
| LOW | …g-modal/src/lib/others/GenericProviderBillingBlock.tsx | 7 | export function GenericProviderBillingBlock({ | CODE |
| LOW | …/components/pagedraw/src/lib/utilities/imageHelpers.ts | 14 | export async function loadImageFromAnonymousOriginUrl(url: string) { | CODE |
| LOW | …d/libs/components/popover/src/lib/group-model-items.ts | 70 | function compareModelLabelsNewestFirst(a: PopoverItem, b: PopoverItem): number { | CODE |
| LOW | …omponents/promptbox/src/lib/common/AspectRatioIcon.tsx | 88 | function commonAspectRatioToProportions( | CODE |
| LOW | …bs/components/pagescene/src/lib/engine/FindSurfaces.js | 174 | export function getDebugSurfaceIdMaterial() { | CODE |
| LOW | …mponents/moodboard/src/lib/persistence/canvasBridge.ts | 95 | export function restoreLiveCanvasForBoard(boardId: string | null): void { | CODE |
| LOW | …mponents/moodboard/src/lib/persistence/canvasBridge.ts | 103 | export function switchCanvasBetweenBoards({ | CODE |
| LOW | …/components/moodboard/src/lib/persistence/documents.ts | 46 | export function serializeMoodboardDocument({ | CODE |
| LOW | …/components/moodboard/src/lib/persistence/documents.ts | 64 | export function deserializeMoodboardDocument( | CODE |
| LOW | …/components/moodboard/src/lib/persistence/documents.ts | 113 | export function collectUnresolvedMediaTokens( | CODE |
| LOW | …ponents/moodboard/src/lib/persistence/moodboardSync.ts | 268 | function seedDirtyFromDurableFlags(userId: string): void { | CODE |
| LOW | …libs/components/video-editor/src/lib/stickers/index.ts | 286 | export async function resolveStickerIntrinsicSize({ | CODE |
| LOW | …nents/video-editor/src/lib/stickers/providers/index.ts | 11 | export function registerDefaultStickerProviders({ | CODE |
| LOW | …anels/properties/hooks/use-keyframed-param-property.ts | 31 | export function useKeyframedParamProperty({ | CODE |
| LOW | …ponents/video-editor/src/lib/animation/channel-data.ts | 51 | export function getChannelEntriesFromData({ | CODE |
| LOW | …nents/video-editor/src/lib/animation/graph-channels.ts | 29 | function getEasingModeForChannelData({ | CODE |
| LOW | …nents/video-editor/src/lib/animation/graph-channels.ts | 40 | export function getEditableScalarChannels({ | CODE |
| LOW | …ponents/video-editor/src/lib/animation/curve-bridge.ts | 25 | export function getNormalizedCubicBezierForScalarSegment({ | CODE |
| LOW | …ponents/video-editor/src/lib/animation/curve-bridge.ts | 61 | export function getCurveHandlesForNormalizedCubicBezier({ | CODE |
| LOW | …bs/components/video-editor/src/lib/animation/bezier.ts | 63 | export function solveBezierProgressForTime({ | CODE |
| LOW | …video-editor/src/lib/animation/effect-param-channel.ts | 63 | export function resolveEffectParamsAtTime({ | CODE |
| LOW | …video-editor/src/lib/animation/effect-param-channel.ts | 92 | export function removeEffectParamKeyframe({ | CODE |
| LOW | …onents/video-editor/src/lib/animation/interpolation.ts | 238 | export function getScalarSegmentInterpolation({ | CODE |
| LOW | …onents/video-editor/src/lib/animation/interpolation.ts | 250 | export function getScalarChannelValueAtTime({ | CODE |
| LOW | …onents/video-editor/src/lib/animation/interpolation.ts | 360 | export function getDiscreteChannelValueAtTime({ | CODE |
| LOW | …s/components/video-editor/src/lib/animation/resolve.ts | 43 | export function resolveAnimationPathValueAtTime({ | CODE |
| LOW | …s/components/video-editor/src/lib/animation/resolve.ts | 54 | export function resolveAnimationPathValueAtTime({ | CODE |
| LOW | …s/components/video-editor/src/lib/animation/resolve.ts | 65 | export function resolveAnimationPathValueAtTime({ | CODE |
| LOW | …s/components/video-editor/src/lib/animation/resolve.ts | 76 | export function resolveAnimationPathValueAtTime({ | CODE |
| LOW | …s/components/video-editor/src/lib/animation/resolve.ts | 87 | export function resolveAnimationPathValueAtTime({ | CODE |
| LOW | …nents/video-editor/src/lib/animation/keyframe-query.ts | 47 | function getChannelKeyframeMatches({ | CODE |
| LOW | …nents/video-editor/src/lib/animation/keyframe-query.ts | 68 | function getUniqueChannelKeyframeMatches({ | CODE |
| LOW | …nents/video-editor/src/lib/animation/keyframe-query.ts | 103 | function getPreferredChannelKeyframeMatch({ | CODE |
| LOW | …nents/video-editor/src/lib/animation/keyframe-query.ts | 137 | function getComposedChannelDataValueAtTime({ | CODE |
| LOW | …ideo-editor/src/lib/animation/graphic-param-channel.ts | 43 | export function resolveGraphicParamsAtTime({ | CODE |
| LOW | …components/video-editor/src/lib/animation/keyframes.ts | 140 | function getPrimaryChannelFromData({ | CODE |
| LOW | …components/video-editor/src/lib/animation/keyframes.ts | 196 | function getInterpolationForComponent({ | CODE |
| LOW | …components/video-editor/src/lib/animation/keyframes.ts | 218 | function decomposeChannelLayoutValue({ | CODE |
| 136 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | frontend/libs/soundboard/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/markdown-content/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/model-list/vite.config.ts | 30 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/omni-gen/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/state/subscription/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/state/credits/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/tauri-utils/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/toaster/vite.config.ts | 37 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/model-selector/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/tooltip/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/loading/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/settings-modal/vite.config.ts | 37 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/pricing-modal/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/upload-modal/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | …tend/libs/components/menu-icon-selector/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | …nd/libs/components/provider-setup-modal/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/lightbox-modal/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | …d/libs/components/action-reminder-modal/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/input/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/gallery-modal/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/slider-v2/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/list-dropdown/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/gravatar/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | …/libs/components/provider-billing-modal/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/checkbox/vite.config.ts | 30 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/label/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/viewer-3d/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/pricing-table/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/tab-selector/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/popover/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | …d/libs/components/camera-settings-modal/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/promptbox/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/loading-spinner/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/button/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/login-modal/vite.config.ts | 37 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/switch/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/file-uploader/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/close-button/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | …tend/libs/components/button-icon-select/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/button-icon/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/select/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/modal/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/help-menu/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/button-dropdown/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/components/badge/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/common/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/tauri-events/vite.config.ts | 37 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/api/vite.config.ts | 30 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/tauri-api/vite.config.ts | 31 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/api-enums/vite.config.ts | 30 | // Don't forget to update your package.json as well. | COMMENT |
| LOW | frontend/libs/analytics/google-analytics/vite.config.ts | 30 | // Don't forget to update your package.json as well. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | _docs/artcraft_omni_api.md | 133 | Replace `YOUR_API_KEY` with your `artcraft_api_…` secret, and generate a fresh `idempotency_token` | CODE |
| HIGH | _docs/artcraft_omni_api.md | 146 | -H "Authorization: Bearer YOUR_API_KEY" \ | CODE |
| HIGH | _docs/artcraft_omni_api.md | 165 | API_KEY = "YOUR_API_KEY" | CODE |
| HIGH | _docs/artcraft_omni_api.md | 190 | const API_KEY = "YOUR_API_KEY"; | CODE |
| HIGH | _docs/artcraft_omni_api.md | 223 | -H "Authorization: Bearer YOUR_API_KEY" \ | CODE |
| HIGH | _docs/artcraft_omni_api.md | 246 | API_KEY = "YOUR_API_KEY" | CODE |
| HIGH | _docs/artcraft_omni_api.md | 275 | const API_KEY = "YOUR_API_KEY"; | CODE |
| HIGH | _docs/artcraft_omni_api.md | 312 | -H "Authorization: Bearer YOUR_API_KEY" \ | CODE |
| HIGH | _docs/artcraft_omni_api.md | 337 | API_KEY = "YOUR_API_KEY" | CODE |
| HIGH | _docs/artcraft_omni_api.md | 368 | const API_KEY = "YOUR_API_KEY"; | CODE |
| HIGH | _docs/artcraft_omni_api.md | 535 | -H "Authorization: Bearer YOUR_API_KEY") | CODE |
| HIGH | _docs/artcraft_omni_api.md | 556 | API_KEY = "YOUR_API_KEY" | CODE |
| HIGH | _docs/artcraft_omni_api.md | 585 | const API_KEY = "YOUR_API_KEY"; | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | …src/common/responses/media_file_cover_image_details.rs | 15 | // #[deprecated(note="This field doesn't point to the full URL. Use media_links instead to leverage the CDN.")] | COMMENT |
| MEDIUM⚡ | …src/common/responses/media_file_cover_image_details.rs | 15 | // #[deprecated(note="This field doesn't point to the full URL. Use media_links instead to leverage the CDN.")] | COMMENT |
| MEDIUM⚡ | …src/common/responses/media_file_cover_image_details.rs | 19 | // #[deprecated(note="This points to the bucket. Use media_links instead to leverage the CDN.")] | COMMENT |
| MEDIUM⚡ | …src/common/responses/media_file_cover_image_details.rs | 19 | // #[deprecated(note="This points to the bucket. Use media_links instead to leverage the CDN.")] | COMMENT |
| MEDIUM | …tcraft/artcraft_api_defs/src/jobs/list_session_jobs.rs | 135 | #[deprecated(note="This field doesn't point to the full URL. Use media_links instead to leverage the CDN.")] | COMMENT |
| MEDIUM⚡ | …aft_client/src/endpoints/media_files/get_media_file.rs | 91 | // #[deprecated(note="This field doesn't point to the full URL. Use media_links instead to leverage the CDN.")] | COMMENT |
| MEDIUM⚡ | …aft_client/src/endpoints/media_files/get_media_file.rs | 91 | // #[deprecated(note="This field doesn't point to the full URL. Use media_links instead to leverage the CDN.")] | COMMENT |
| MEDIUM⚡ | …aft_client/src/endpoints/media_files/get_media_file.rs | 95 | // #[deprecated(note="This points to the bucket. Use media_links instead to leverage the CDN.")] | COMMENT |
| MEDIUM⚡ | …aft_client/src/endpoints/media_files/get_media_file.rs | 95 | // #[deprecated(note="This points to the bucket. Use media_links instead to leverage the CDN.")] | COMMENT |
| MEDIUM | …i_web_client/src/generate/audio/generate_suno_sound.rs | 34 | /// Single hit vs seamless loop. | COMMENT |
| MEDIUM | …i_web_client/src/generate/audio/generate_suno_sound.rs | 46 | /// Single hit ("one-shot") vs seamless loop ("loop"). | COMMENT |
| MEDIUM | …nents/pagescene/src/lib/engine/SelectionOutlinePass.ts | 62 | // `instanceof SplatMesh` — robust across JSON reload because the | COMMENT |
| MEDIUM | …/pagescene/src/lib/engine/editor/ViewportController.ts | 6 | // resolve at call time (so the viewport is robust to construction-order | COMMENT |
| MEDIUM | …bs/components/moodboard/src/lib/grid/SectionHeader.tsx | 17 | // ungrouped). Absolutely positioned by the grid, so it spans the content width. | COMMENT |
| MEDIUM | …d/libs/components/moodboard/src/lib/grid/BoardCard.tsx | 47 | // One masonry tile. Absolutely positioned by the grid; the card owns only its | COMMENT |
| MEDIUM | frontend/apps/artcraft/app/src/api/BucketConfig.ts | 15 | // TODO pipeline works make more robust.... | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …rty_task_polling_thread/handlers/fal/poll_fal_tasks.rs | 80 | // Step 1: Check job status | COMMENT |
| LOW | …rty_task_polling_thread/handlers/fal/poll_fal_tasks.rs | 107 | // Step 2: Fetch the response | COMMENT |
| LOW | …rty_task_polling_thread/handlers/fal/poll_fal_tasks.rs | 139 | // Step 3: Handle completed job | COMMENT |
| LOW | …rc/recipes/upload_image_and_create_world_with_retry.rs | 61 | // Step 1: Prepare upload | COMMENT |
| LOW | …rc/recipes/upload_image_and_create_world_with_retry.rs | 78 | // Step 2: Upload to signed URL | COMMENT |
| LOW | …rc/recipes/upload_image_and_create_world_with_retry.rs | 91 | // Step 3: Generate world | COMMENT |
| LOW | …ovi_web_client/src/requests/upload_file/upload_file.rs | 110 | // Step 1: Get a signed upload URL | COMMENT |
| LOW⚡ | …ovi_web_client/src/requests/upload_file/upload_file.rs | 121 | // Step 2: Read a test image | COMMENT |
| LOW⚡ | …ovi_web_client/src/requests/upload_file/upload_file.rs | 125 | // Step 3: Upload | COMMENT |
| LOW | …ovi_web_client/src/requests/upload_file/upload_file.rs | 145 | // Step 1: Get a signed upload URL | COMMENT |
| LOW⚡ | …ovi_web_client/src/requests/upload_file/upload_file.rs | 156 | // Step 2: Read a test image | COMMENT |
| LOW⚡ | …ovi_web_client/src/requests/upload_file/upload_file.rs | 160 | // Step 3: Upload | COMMENT |
| LOW | …b_client/src/requests/generate_video/generate_video.rs | 911 | // Step 1: Get a signed upload URL | COMMENT |
| LOW⚡ | …b_client/src/requests/generate_video/generate_video.rs | 922 | // Step 2: Read a test image | COMMENT |
| LOW⚡ | …b_client/src/requests/generate_video/generate_video.rs | 926 | // Step 3: Upload | COMMENT |
| LOW | …nents/pagescene/src/lib/engine/SelectionOutlinePass.ts | 186 | // Step 1: forward render the whole scene. Always runs — identical | COMMENT |
| LOW | …nents/pagescene/src/lib/engine/SelectionOutlinePass.ts | 199 | // Step 2: selected-only depth -> selectedTarget. Build a keep set | COMMENT |
| LOW | …nents/pagescene/src/lib/engine/SelectionOutlinePass.ts | 228 | // Step 3: silhouette overlay quad. Reads selectedTarget.depthTexture, | COMMENT |
| LOW⚡ | …rc/components/reusable/UploadModalMedia/uploadPlane.ts | 135 | // Step 1: Set uploading state (simulate asset upload) | COMMENT |
| LOW⚡ | …rc/components/reusable/UploadModalMedia/uploadPlane.ts | 138 | // Step 2: Fetch the media file info (to get type, etc.) | COMMENT |
| LOW | …rc/components/reusable/UploadModalMedia/uploadPlane.ts | 153 | // Step 3: Optionally set the title (rename) | COMMENT |
| LOW⚡ | …rc/components/reusable/UploadModalMedia/uploadPlane.ts | 169 | // Step 4: (Optional) Set cover image if needed (skip if already set) | COMMENT |
| LOW⚡ | …rc/components/reusable/UploadModalMedia/uploadPlane.ts | 172 | // Step 5: Success | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …rty_task_polling_thread/handlers/fal/poll_fal_tasks.rs | 80 | // Step 1: Check job status | COMMENT |
| LOW | …rty_task_polling_thread/handlers/fal/poll_fal_tasks.rs | 107 | // Step 2: Fetch the response | COMMENT |
| LOW | …rty_task_polling_thread/handlers/fal/poll_fal_tasks.rs | 139 | // Step 3: Handle completed job | COMMENT |
| LOW | …rc/recipes/upload_image_and_create_world_with_retry.rs | 61 | // Step 1: Prepare upload | COMMENT |
| LOW | …rc/recipes/upload_image_and_create_world_with_retry.rs | 78 | // Step 2: Upload to signed URL | COMMENT |
| LOW | …rc/recipes/upload_image_and_create_world_with_retry.rs | 91 | // Step 3: Generate world | COMMENT |
| LOW | …ovi_web_client/src/requests/upload_file/upload_file.rs | 110 | // Step 1: Get a signed upload URL | COMMENT |
| LOW⚡ | …ovi_web_client/src/requests/upload_file/upload_file.rs | 121 | // Step 2: Read a test image | COMMENT |
| LOW⚡ | …ovi_web_client/src/requests/upload_file/upload_file.rs | 125 | // Step 3: Upload | COMMENT |
| LOW | …ovi_web_client/src/requests/upload_file/upload_file.rs | 145 | // Step 1: Get a signed upload URL | COMMENT |
| LOW⚡ | …ovi_web_client/src/requests/upload_file/upload_file.rs | 156 | // Step 2: Read a test image | COMMENT |
| LOW⚡ | …ovi_web_client/src/requests/upload_file/upload_file.rs | 160 | // Step 3: Upload | COMMENT |
| LOW | …b_client/src/requests/generate_video/generate_video.rs | 911 | // Step 1: Get a signed upload URL | COMMENT |
| LOW⚡ | …b_client/src/requests/generate_video/generate_video.rs | 922 | // Step 2: Read a test image | COMMENT |
| LOW⚡ | …b_client/src/requests/generate_video/generate_video.rs | 926 | // Step 3: Upload | COMMENT |
| LOW | …nents/pagescene/src/lib/engine/SelectionOutlinePass.ts | 186 | // Step 1: forward render the whole scene. Always runs — identical | COMMENT |
| LOW | …nents/pagescene/src/lib/engine/SelectionOutlinePass.ts | 199 | // Step 2: selected-only depth -> selectedTarget. Build a keep set | COMMENT |
| LOW | …nents/pagescene/src/lib/engine/SelectionOutlinePass.ts | 228 | // Step 3: silhouette overlay quad. Reads selectedTarget.depthTexture, | COMMENT |
| LOW⚡ | …rc/components/reusable/UploadModalMedia/uploadPlane.ts | 135 | // Step 1: Set uploading state (simulate asset upload) | COMMENT |
| LOW⚡ | …rc/components/reusable/UploadModalMedia/uploadPlane.ts | 138 | // Step 2: Fetch the media file info (to get type, etc.) | COMMENT |
| LOW | …rc/components/reusable/UploadModalMedia/uploadPlane.ts | 153 | // Step 3: Optionally set the title (rename) | COMMENT |
| LOW⚡ | …rc/components/reusable/UploadModalMedia/uploadPlane.ts | 172 | // Step 5: Success | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …mponents/pagescene/src/lib/engine/CustomOutlinePass.js | 55 | this.fsQuad.material.uniforms.screenSize.value.set( | CODE |
| CRITICAL | …/src/lib/engine/animation/CharacterAnimationManager.ts | 456 | return this.editor.activeScene.scene.children.find( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …er_client/src/api/requests/worlds/poll_world_status.rs | 108 | // TODO: Handle errors (Cloudflare, Grok, etc.) | COMMENT |
| LOW | …r_client/src/api/requests/objects/create_run_object.rs | 101 | // TODO: Handle errors (Cloudflare, Grok, etc.) | COMMENT |
| LOW | …c/api/requests/objects/finalize_object_image_upload.rs | 107 | // TODO: Handle errors (Cloudflare, Grok, etc.) | COMMENT |
| LOW | …/api/requests/objects/update_run_object_with_upload.rs | 132 | // TODO: Handle errors (Cloudflare, Grok, etc.) | COMMENT |
| LOW | …/src/api/requests/objects/begin_object_image_upload.rs | 108 | // TODO: Handle errors (Cloudflare, Grok, etc.) | COMMENT |
| LOW | …lient/src/api/requests/objects/create_upload_object.rs | 102 | // TODO: Handle errors (Cloudflare, Grok, etc.) | COMMENT |
| LOW | …c/api/requests/objects/update_run_object_with_world.rs | 137 | // TODO: Handle errors (Cloudflare, Grok, etc.) | COMMENT |
| LOW | …r_client/src/api/requests/recaption/recaption_image.rs | 105 | // TODO: Handle errors (Cloudflare, Grok, etc.) | COMMENT |
| LOW | …edia_posts/create_media_post/grok_create_media_post.rs | 119 | // TODO: Handle errors (Cloudflare, Grok, etc.) | COMMENT |
| LOW | …/media_posts/list_media_posts/grok_list_media_posts.rs | 127 | // TODO: Handle errors (Cloudflare, Grok, etc.) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …auth_sentinel_2/metadata/python_impl/sentinel_token.py | 45 | except Exception as err: | CODE |
| LOW | …ials/_metadata/crypto_signature/xStatsigIDGenerator.py | 48 | except Exception as e: | CODE |
| LOW | …ials/_metadata/crypto_signature/xStatsigIDGenerator.py | 92 | except Exception: | CODE |
| LOW | …ials/_metadata/crypto_signature/xStatsigIDGenerator.py | 128 | except Exception: | CODE |
| LOW | …ials/_metadata/crypto_signature/xStatsigIDGenerator.py | 178 | except Exception: | CODE |
| LOW | …ials/_metadata/crypto_signature/xStatsigIDGenerator.py | 208 | except Exception: | CODE |
| LOW | …ials/_metadata/crypto_signature/xStatsigIDGenerator.py | 246 | except Exception: | CODE |
| LOW | …ials/_metadata/crypto_signature/xStatsigIDGenerator.py | 271 | except Exception: | CODE |
| LOW | …ials/_metadata/crypto_signature/xStatsigIDGenerator.py | 492 | except Exception as e: | CODE |
| MEDIUM | script/artcraft/bump_artcraft_desktop_version.py | 92 | print(f"Error: version argument '{arg}' does not match \\d+\\.\\d+\\.\\d+", file=sys.stderr) | CODE |
| LOW | script/artcraft/bump_artcraft_desktop_version.py | 111 | except Exception as e: | CODE |
| MEDIUM | script/artcraft/bump_artcraft_desktop_version.py | 115 | print("Error: could not read version from any file. Supply a version argument.", file=sys.stderr) | CODE |
| LOW | script/artcraft/bump_artcraft_desktop_version.py | 132 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ials/_metadata/crypto_signature/xStatsigIDGenerator.py | 178 | except Exception: | CODE |
| HIGH | …ials/_metadata/crypto_signature/xStatsigIDGenerator.py | 211 | except ImportError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ts/midjourney_client/src/endpoints/user_connections.rs | 100 | "displayName": "John Doe", | CODE |
| LOW | …lib/files/filesys/src/recursively_find_file_by_name.rs | 49 | "fake_name.foo", | CODE |
| LOW | frontend/libs/omni-gen/src/lib/omni-gen-audio.ts | 168 | ? new Array(params.audioReferenceCount).fill("placeholder") | CODE |
| LOW | frontend/libs/omni-gen/src/lib/omni-gen-audio.ts | 170 | image_media_tokens: params.hasImageReference ? ["placeholder"] : null, | CODE |
| LOW | …bs/components/login-modal/src/lib/login-modal.spec.tsx | 122 | fireEvent.change(screen.getByPlaceholderText("you@example.com"), { target: { value: "user@example.com" } }); | CODE |
| LOW | …bs/components/login-modal/src/lib/login-modal.spec.tsx | 132 | request: signup ? { username: "native_user", email_address: "user@example.com", password: "password123", password_ | CODE |
| LOW | artcraft-native/src/pages/create_audio.rs | 345 | vec!["placeholder".to_owned(); list.len()] | CODE |
| LOW | artcraft-native/src/pages/create_audio.rs | 771 | assert_eq!(Value::Object(p.fields(&seed_audio(), true)), json!({ "model": "seed_audio_1p0", "audio_media_tokens": | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …artcraft/artcraft_api_defs/src/video_info/read_only.rs | 155 | /// Whether labeled AI-generated (`Label == "1"`, per China GB 45438). | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ials/_metadata/crypto_signature/xStatsigIDGenerator.py | 183 | CODE | |
| LOW | …ials/_metadata/crypto_signature/xStatsigIDGenerator.py | 216 | CODE | |
| LOW | …ials/_metadata/crypto_signature/xStatsigIDGenerator.py | 251 | CODE | |
| LOW | …ials/_metadata/crypto_signature/xStatsigIDGenerator.py | 276 | CODE | |
| LOW | script/artcraft/bump_artcraft_desktop_version.py | 83 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ials/_metadata/crypto_signature/xStatsigIDGenerator.py | 13 | CODE | |
| LOW | …ials/_metadata/crypto_signature/xStatsigIDGenerator.py | 13 | CODE | |
| LOW | …ials/_metadata/crypto_signature/xStatsigIDGenerator.py | 13 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/workflows/artcraft-windows-publish.yml | 87 | # Set beforeBuildCommand to empty using PowerShell | COMMENT |
| LOW | .github/workflows/artcraft-macos-publish.yml | 208 | # Set beforeBuildCommand to empty or a no-op command | COMMENT |