AI Slop Code RIsk Monitor

HKUDS/DeepTutor

DeepTutor: Lifelong Personalized Tutoring. https://deeptutor.info/.

26.3 Elevated pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for HKUDS/DeepTutor, a Python project with 41,097 GitHub stars. SynthScan examined 836,464 lines of code across 3526 source files, recording 16925 pattern matches distributed across 22 syntactic categories. The legacy adjusted pattern signal is 26.3 (Elevated 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.

26.3
Adjusted Signal
26.3
Raw Pattern Score
100%
Time Factor
2026-10-08
Last Push
41.1K
Stars
Python
Language
836.5K
Lines of Code
3.5K
Files
16.9K
Pattern Hits
2026-10-12
Scan Date
0.08
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 45.8/100 · MEDIUM

Can maintainers explain intent, assumptions, and trade-offs? 10097 finding(s).

Hallucinated Dependency & Supply Chain Risk 15.6/100 · LOW

Are imports declared and package/API names verified? 2532 finding(s).

Agent Over-Engineering Ratio 66.4/100 · HIGH

Are wrappers, guards, and repeated structures necessary? 13648 finding(s).

PR Review Velocity Impact 73.0/100 · HIGH

Which changes need focused human review? 16925 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

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.

Severity Breakdown

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.

CRITICAL 28HIGH 252MEDIUM 1740LOW 14905

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 16925 distinct pattern matches across 22 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.

Hyper-Verbose Identifiers9305 hits · 9228 pts
SeverityFileLineSnippetContext
LOWweb/context/app-shell-storage.ts100export function readStoredChatResponseTimeout(): number {CODE
LOWweb/context/app-shell-storage.ts117export function writeStoredChatResponseTimeout(seconds: number): void {CODE
LOWweb/context/app-shell-storage.ts206export function hasStoredResponseLanguage(): boolean {CODE
LOWweb/context/app-shell-storage.ts217export function readStoredResponseLanguage(): ResponseLanguage {CODE
LOWweb/context/app-shell-storage.ts229export function writeStoredResponseLanguage(language: ResponseLanguage): void {CODE
LOWweb/context/app-shell-storage.ts243export function readStoredActiveSessionId(): string | null {CODE
LOWweb/context/app-shell-storage.ts252export function writeStoredActiveSessionId(sessionId: string | null): void {CODE
LOWweb/context/app-shell-storage.ts270export function readStoredSidebarCollapsed(): boolean {CODE
LOWweb/context/app-shell-storage.ts281export function writeStoredSidebarCollapsed(collapsed: boolean): void {CODE
LOWweb/context/app-shell-storage.ts321export function writeStoredCodeBlockTheme(theme: string): void {CODE
LOWweb/context/app-shell-storage.ts339export function normalizeCodeBlockShowLineNumbers(CODE
LOWweb/context/app-shell-storage.ts347export function readStoredCodeBlockShowLineNumbers(): boolean {CODE
LOWweb/context/app-shell-storage.ts361export function writeStoredCodeBlockShowLineNumbers(show: boolean): void {CODE
LOWweb/context/app-shell-storage.ts379export function normalizeCodeBlockWrapLongLines(CODE
LOWweb/context/app-shell-storage.ts387export function readStoredCodeBlockWrapLongLines(): boolean {CODE
LOWweb/context/app-shell-storage.ts400export function writeStoredCodeBlockWrapLongLines(wrap: boolean): void {CODE
LOWweb/context/QuizFollowupContext.tsx650export function useQuizFollowupController(): QuizFollowupController {CODE
LOWweb/app/(workspace)/learning/reading/page.tsx7export default function ImmersiveReadingLibraryRoute() {CODE
LOW…pp/(workspace)/learning/reading/[workspaceId]/page.tsx3export default function NewImmersiveReadingSessionRoute() {CODE
LOW…pace)/learning/reading/[workspaceId]/sessions/page.tsx3export default function ImmersiveReadingWorkspaceRoute() {CODE
LOW…ng/reading/[workspaceId]/sessions/[sessionId]/page.tsx3export default function ImmersiveReadingWorkspaceSessionRoute() {CODE
LOW…orkspace)/learning/reading/folders/[folderId]/page.tsx3export default async function ImmersiveReadingFolderRoute({CODE
LOW…p/(workspace)/learning/books/components/PageReader.tsx57function rememberPendingChapterEnd(bookId: string, pageId: string): void {CODE
LOW…es/settings/sections/LearnerProfileSettingsSection.tsx22export default function LearnerProfileSettingsPage() {CODE
LOW…res/settings/sections/DataMigrationSettingsSection.tsx74export default function DataMigrationSettingsSection() {CODE
LOW…res/settings/sections/ArchivedChatsSettingsSection.tsx36export default function ArchivedChatsSettingsSection() {CODE
LOW…res/settings/sections/VideoLearningSettingsSection.tsx23export default function VideoLearningSettingsPage() {CODE
LOW…s/settings/sections/DocumentParsingSettingsSection.tsx73export default function DocumentParsingSettingsPage() {CODE
LOW…res/settings/sections/ImageDescriptionModelSetting.tsx10export function ImageDescriptionModelSetting({CODE
LOWweb/features/settings/navigation/settings-access.ts22export function settingsAccessFromAuthStatus(CODE
LOWweb/features/settings/navigation/settings-nav.ts95export function isSettingsCategoryVisible(CODE
LOWweb/features/settings/navigation/settings-pages.ts158export function legacySettingsDestination(hash: string, search: string): string {CODE
LOWweb/features/settings/store/SettingsStore.tsx130export function syncLoadedCodeBlockSettingsToAppShell(CODE
LOWweb/features/settings/store/SettingsStore.tsx425function readStoredDiagnosticsResults(): Partial<CODE
LOWweb/features/capabilities/model.ts64export function parseCapabilityCatalogPayload(CODE
LOWweb/features/capabilities/presentation.tsx214export function mergeCapabilityPresentations(CODE
LOWweb/features/capabilities/presentation.tsx259export function visibleCapabilityPresentations(CODE
LOWweb/features/chat/ChatStateAdapter.tsx572function applySessionConfiguration(CODE
LOWweb/features/chat/ChatStateAdapter.tsx1572export function hydrateMessageAttachments(CODE
LOWweb/features/chat/ChatStateAdapter.tsx1622function normalizeSelectedBranches(value: unknown): Record<string, number> {CODE
LOWweb/features/chat/trace/TracePresentation.tsx1406function getDeepResearchStatusLabel(CODE
LOWweb/features/chat/trace/TracePresentation.tsx1466function getExploreContextStatusLabel(CODE
LOWweb/features/chat/trace/TracePresentation.tsx1496function getReasoningProgressStatusLabel(CODE
LOWweb/features/chat/trace/TracePresentation.tsx1933function formatResearchStageSummary(events: StreamEvent[], fallback: string) {CODE
LOWweb/features/chat/controllers/useChatRouteSession.ts11export function shouldRevalidateCachedSession(input: {CODE
LOWweb/features/chat/selectors/attachment-processing.ts57export function selectAttachmentProcessing(CODE
LOW…/multi-user/components/GuardianRelationshipsEditor.tsx33export function GuardianRelationshipsEditor({CODE
LOWweb/features/multi-user/components/GrantEditor.tsx40function conservativeLearningPolicy(): LearningPolicy {CODE
LOWweb/features/knowledge/api/client.ts369export function invalidateKnowledgeCaches() {CODE
LOWweb/features/knowledge/api/client.ts612export async function testGraphRagModelCompatibility(CODE
LOWweb/features/knowledge/api/client.ts730export function knowledgeBaseFilePreviewTextPath(CODE
LOWweb/tests/build-wrapper.test.ts80 assert.match(worker, /getOrInsertComputed: function getOrInsertComputed\(/);CODE
LOWweb/tests/message-branches.test.ts12function conversationWithShortBranch() {CODE
LOWweb/tests/sidebar-prefetch.spec.tsx71function expectSidebarLinksToDisablePrefetch() {CODE
LOWweb/tests/app-shell-code-block-hydration.spec.tsx12function CodeBlockPreferencesProbe() {CODE
LOWweb/tests/settings-context-ui-sync.test.ts61function readSettingsContextSource() {CODE
LOWweb/tests/settings-context-boolean-hydration.test.ts21function readSettingsContextSource() {CODE
LOWweb/tests/visualize/VisualizationViewer.spec.tsx95async function renderPastMermaidDebounce(result: VisualizeResult) {CODE
LOWweb/shared/auth/return-url.ts10export function normalizeInternalReturnPath(CODE
LOWweb/shared/storage/store.ts167export function createBrowserStorageStore(): StorageStore {CODE
9245 more matches not shown…
Decorative Section Separators1562 hits · 5458 pts
SeverityFileLineSnippetContext
MEDIUM⚡docker-compose.ghcr.yml1# ============================================COMMENT
MEDIUM⚡docker-compose.ghcr.yml3# ============================================COMMENT
MEDIUMdocker-compose.ghcr.yml24# ============================================COMMENT
MEDIUMdocker-compose.ghcr.yml26# ============================================COMMENT
MEDIUMdocker-compose.ghcr.yml39# ============================================COMMENT
MEDIUMrequirements.txt1# ============================================COMMENT
MEDIUMrequirements.txt3# ============================================COMMENT
MEDIUM.pre-commit-config.yaml22 # ============================================COMMENT
MEDIUM.pre-commit-config.yaml24 # ============================================COMMENT
MEDIUM.pre-commit-config.yaml48 # ============================================COMMENT
MEDIUM.pre-commit-config.yaml50 # ============================================COMMENT
MEDIUM.pre-commit-config.yaml64 # ============================================COMMENT
MEDIUM.pre-commit-config.yaml66 # ============================================COMMENT
MEDIUM.pre-commit-config.yaml78 # ============================================COMMENT
MEDIUM.pre-commit-config.yaml80 # ============================================COMMENT
MEDIUM.pre-commit-config.yaml107 # ============================================COMMENT
MEDIUM.pre-commit-config.yaml109 # ============================================COMMENT
MEDIUMpyproject.toml329# ============================================COMMENT
MEDIUMpyproject.toml331# ============================================COMMENT
MEDIUM⚡pyproject.toml453# ============================================STRING
MEDIUM⚡pyproject.toml455# ============================================STRING
MEDIUM⚡pyproject.toml461# ============================================STRING
MEDIUM⚡pyproject.toml463# ============================================STRING
MEDIUM⚡pyproject.toml470# ============================================STRING
MEDIUM⚡pyproject.toml472# ============================================STRING
MEDIUM⚡pyproject.toml476# ============================================STRING
MEDIUM⚡pyproject.toml478# ============================================STRING
MEDIUMpyproject.toml356# ============================================STRING
MEDIUMpyproject.toml358# ============================================STRING
MEDIUMpyproject.toml497# ============================================STRING
MEDIUMpyproject.toml499# ============================================STRING
MEDIUMpyproject.toml525# ============================================STRING
MEDIUMpyproject.toml527# ============================================STRING
MEDIUM⚡docker-compose.dev.yml1# ============================================COMMENT
MEDIUM⚡docker-compose.dev.yml3# ============================================COMMENT
MEDIUM⚡docker-compose.dev.yml10# ============================================COMMENT
MEDIUM⚡compose.yaml1# ============================================COMMENT
MEDIUM⚡compose.yaml3# ============================================COMMENT
MEDIUMcompose.yaml63# ============================================COMMENT
MEDIUMcompose.yaml85 # ----------------------------------------------------------COMMENT
MEDIUMcompose.yaml87 # ----------------------------------------------------------COMMENT
MEDIUMcompose.yaml129 # ----------------------------------------------------------COMMENT
MEDIUMcompose.yaml131 # ----------------------------------------------------------COMMENT
MEDIUM⚡docker-compose.yml1# ============================================COMMENT
MEDIUM⚡docker-compose.yml3# ============================================COMMENT
MEDIUMdocker-compose.yml24# ============================================COMMENT
MEDIUMdocker-compose.yml45 # ============================================COMMENT
MEDIUMdocker-compose.yml49 # ============================================COMMENT
MEDIUMdocker-compose.yml74 # ============================================COMMENT
MEDIUMdocker-compose.yml76 # ============================================COMMENT
MEDIUMdocker-compose.yml144 # ============================================COMMENT
MEDIUMdocker-compose.yml146 # ============================================COMMENT
MEDIUMdocker-compose.yml211# ============================================COMMENT
MEDIUMdocker-compose.yml213# ============================================COMMENT
MEDIUMweb/app/(workspace)/learning/books/BooksRoute.tsx160 // ── Data loaders ───────────────────────────────────────────────────COMMENT
MEDIUMweb/app/(workspace)/learning/books/BooksRoute.tsx317 // ── Live event handling ────────────────────────────────────────────COMMENT
MEDIUMweb/app/(workspace)/learning/books/BooksRoute.tsx357 // ── Selectors ──────────────────────────────────────────────────────COMMENT
MEDIUMweb/app/(workspace)/learning/books/BooksRoute.tsx389 // ── Handlers ───────────────────────────────────────────────────────COMMENT
MEDIUMweb/app/(workspace)/learning/books/BooksRoute.tsx1002 // ── Render ─────────────────────────────────────────────────────────COMMENT
MEDIUM…/(workspace)/learning/books/components/BookCreator.tsx342// ─── helpers ───────────────────────────────────────────────────────────COMMENT
1502 more matches not shown…
Unused Imports2430 hits · 2300 pts
SeverityFileLineSnippetContext
LOWtests/conftest.py5CODE
LOWtests/test_release_workflow_guards.py3CODE
LOWtests/test_packaging_metadata.py3CODE
LOWtests/reading/test_epub_bilingual_units.py9CODE
LOWtests/reading/test_reading_media_notes.py14CODE
LOWtests/reading/test_quiz.py1CODE
LOWtests/reading/test_reading_hints.py3CODE
LOWtests/reading/test_vocabulary.py1CODE
LOWtests/reading/test_workspace_tools.py1CODE
LOWtests/reading/test_catalog_store.py1CODE
LOWtests/reading/test_router.py7CODE
LOWtests/reading/test_extensions.py1CODE
LOWtests/reading/test_reading_captions.py7CODE
LOWtests/reading/test_turn_wiring.py10CODE
LOWtests/reading/test_reading_pdf_media.py8CODE
LOWtests/reading/test_extension_router.py1CODE
LOWtests/reading/test_knowledge_capture.py1CODE
LOWtests/reading/test_view_figure.py3CODE
LOWtests/reading/test_read_aloud.py1CODE
LOWtests/reading/test_study_guidance.py1CODE
LOWtests/reading/test_epub_bilingual.py3CODE
LOWtests/reading/test_mode_registration.py10CODE
LOWtests/reading/test_reading_page_render.py14CODE
LOWtests/reading/test_translation.py1CODE
LOWtests/reading/test_references.py1CODE
LOWtests/tools/test_web_search.py3CODE
LOWtests/tools/test_github_query.py7CODE
LOWtests/tools/test_github_query.py10CODE
LOWtests/tools/test_github_query.py14CODE
LOWtests/tools/test_ask_user.py8CODE
LOWtests/tools/test_knowledge_frontier_tool.py3CODE
LOWtests/tools/test_office_artifact_execution.py3CODE
LOWtests/tools/test_kb_files_tool.py9CODE
LOWtests/tools/test_mineru.py1CODE
LOWtests/tools/test_learning_journal_tools.py3CODE
LOWtests/tools/test_rag_tool.py3CODE
LOWtests/tools/test_read_source.py1CODE
LOWtests/tools/test_mineru_models.py1CODE
LOWtests/tools/test_write_note.py3CODE
LOWtests/tools/test_question_bank_tool.py10CODE
LOWtests/tools/test_question_extractor.py1CODE
LOWtests/tools/test_list_notebook.py3CODE
LOWtests/tools/test_file_tools.py1CODE
LOWtests/tools/test_tex_tools.py8CODE
LOWtests/tools/test_code_execution_guidance.py1CODE
LOWtests/tools/test_pptx_workspace_flow.py1CODE
LOWtests/tools/test_zotero_search.py1CODE
LOWtests/tools/test_exec_prompt_hints.py3CODE
LOWtests/tools/test_web_fetch.py3CODE
LOWtests/tools/test_web_fetch.py11CODE
LOWtests/tools/test_web_fetch.py11CODE
LOWtests/tools/builtin/test_read_skill_tool.py1CODE
LOWtests/core/test_answer_call_kinds.py14CODE
LOWtests/core/test_record_streamed_usage.py8CODE
LOWtests/core/test_labeled_step_image_fallback.py9CODE
LOWtests/core/test_prompt_parity.py1CODE
LOWtests/core/test_provider_state_thinking_blocks.py8CODE
LOWtests/core/test_labeled_step_think_prelude.py19CODE
LOWtests/core/test_stream_bus.py3CODE
LOWtests/core/test_math_animator_capability.py1CODE
2370 more matches not shown…
Excessive Try-Catch Wrapping1525 hits · 1479 pts
SeverityFileLineSnippetContext
LOWtests/conftest.py44except Exception: # pragma: no coverCODE
LOW⚡tests/multi_user/test_registration_invite_only.py35 except Exception:CODE
MEDIUMtests/multi_user/test_registration_invite_only.py31def _save(name):CODE
LOWtests/multi_user/test_learning_surface_map.py478 except Exception as exc:CODE
MEDIUMtests/multi_user/test_learning_surface_map.py473def write_newer_grant() -> None:CODE
LOWtests/agents/test_failure_notices_name_the_cause.py39 except Exception: # pragma: no cover - a broken bundle is its own testCODE
LOWtests/api/test_skills_hub_router.py18except Exception: # pragma: no cover - optional dependency in lightweight envsCODE
LOWtests/api/test_knowledge_router.py33except Exception: # pragma: no cover - optional dependency in lightweight envsCODE
LOWtests/api/test_linked_folder_routes.py13except Exception: # pragma: no cover - optional dependency in lightweight envsCODE
LOWtests/api/test_partner_groups_router.py13except Exception: # pragma: no coverCODE
LOWtests/api/test_subagents_router.py19except Exception: # pragma: no cover - optional dependency in lightweight envsCODE
LOWtests/api/test_workspace_router.py14except Exception: # pragma: no cover - optional in the CLI-only packageCODE
LOWtests/api/test_capabilities_router.py16except Exception: # pragma: no coverCODE
LOWtests/api/test_plugins_router.py20except Exception: # pragma: no coverCODE
LOWtests/api/test_knowledge_upload_guards.py36except Exception: # pragma: no cover - optional heavy imports in lightweight envsCODE
LOWtests/api/test_partners_router.py16except Exception: # pragma: no coverCODE
LOWtests/services/llm/test_llm_live.py94 except Exception as exc:CODE
LOWtests/services/llm/test_llm_live.py129 except Exception as exc:CODE
LOWtests/services/rag/test_pipeline_integration.py141 except Exception as e:CODE
LOWtests/services/rag/test_pipeline_integration.py196 except Exception as e:CODE
LOWtests/services/rag/test_pipeline_integration.py229 except Exception as e:CODE
LOWtests/services/rag/test_pipeline_integration.py259 except Exception as e:CODE
LOWtests/services/rag/test_pipeline_integration.py293 except Exception as e:CODE
LOWtests/services/rag/test_pipeline_integration.py303 except Exception as e:CODE
LOW⚡tests/services/session/test_turn_repository.py35except Exception as exc:CODE
LOWscripts/reading_refresh_figures.py92 except Exception as exc: # noqa: BLE001 - a bad config must not block dry runsCODE
LOWscripts/docker_compose.py33 except Exception:CODE
LOWscripts/_cli_kit.py10 except Exception:CODE
MEDIUMscripts/_cli_kit.py6def _ensure_replace_errors() -> None:CODE
LOWscripts/pb_setup.py63 except Exception:CODE
LOWscripts/pb_setup.py130 except Exception as exc:CODE
LOWscripts/pb_setup.py137 except Exception as exc:CODE
MEDIUMscripts/pb_setup.py46def _get_client():CODE
LOWscripts/install_extras.py72 except Exception:CODE
LOWscripts/install_extras.py118 except Exception as exc:CODE
LOWdeeptutor_cli/provider_cmd.py146 except Exception as exc:CODE
LOWdeeptutor_cli/provider_cmd.py157 except Exception:CODE
LOWdeeptutor_cli/provider_cmd.py160 except Exception as login_exc:CODE
LOWdeeptutor_cli/config_cmd.py140 except Exception:CODE
LOWdeeptutor_cli/skill_login.py123 except Exception:CODE
LOWdeeptutor_cli/chat.py98 except Exception:CODE
LOWdeeptutor_cli/common.py298 except Exception:CODE
MEDIUMdeeptutor_cli/common.py295def _stdin_interactive() -> bool:CODE
LOWdeeptutor_cli/init_wizard.py647 except Exception as exc:CODE
LOWdeeptutor_cli/init_wizard.py770 except Exception as exc:CODE
LOWdeeptutor_cli/init_wizard.py897 except Exception as exc:CODE
LOWdeeptutor_cli/init_wizard.py956 except Exception as exc:CODE
LOWdeeptutor_cli/kb.py205 except Exception as exc:CODE
LOWdeeptutor_cli/kb.py216 except Exception as exc:CODE
LOWdeeptutor_cli/kb.py262 except Exception as exc:CODE
LOWdeeptutor_cli/kb.py282 except Exception as exc:CODE
LOWdeeptutor_cli/kb.py321 except Exception as exc:CODE
LOWdeeptutor_cli/kb.py344 except Exception as exc:CODE
LOWdeeptutor_cli/kb.py406 except Exception as exc:CODE
LOWdeeptutor_cli/kb.py470 except Exception as exc:CODE
LOWdeeptutor_cli/kb.py501 except Exception as exc:CODE
LOWdeeptutor_cli/kb.py534 except Exception as exc:CODE
LOWdeeptutor_cli/kb.py625 except Exception as exc:CODE
LOWdeeptutor_cli/kb.py643 except Exception as exc:CODE
LOWdeeptutor/reading/store.py431 except Exception:CODE
1465 more matches not shown…
Empty Error Handlers200 hits · 1000 pts
SeverityFileLineSnippetContext
HIGHtests/conftest.py44except Exception: # pragma: no coverCODE
HIGHtests/multi_user/test_learner_profile.py43except ValueError:CODE
HIGHtests/runtime/test_launcher.py530except psutil.NoSuchProcess:CODE
HIGHtests/services/rag/test_lightrag_server_pipeline.py84except LightRagServerNotConfiguredError:CODE
HIGHtests/services/partners/test_channel_secrets.py182except asyncio.CancelledError:CODE
HIGHtests/services/partners/test_channel_secrets.py222except asyncio.CancelledError:CODE
HIGHtests/services/partners/test_wecom_channel.py83except asyncio.CancelledError:CODE
HIGHscripts/_cli_kit.py10except Exception:CODE
HIGHscripts/export_discord_history.py265except ValueError:CODE
HIGHdeeptutor_cli/provider_cmd.py157except Exception:CODE
HIGHdeeptutor_cli/skill_login.py123except Exception:CODE
HIGHdeeptutor/reading/store.py1200except OSError:CODE
HIGHdeeptutor/tools/web_fetch.py189except ValueError:CODE
HIGHdeeptutor/tools/brainstorm.py65except ValueError:CODE
HIGHdeeptutor/tools/reason.py77except ValueError:CODE
HIGHdeeptutor/co_writer/docx_converter.py272except Exception:CODE
HIGHdeeptutor/co_writer/docx_converter.py356except Exception:CODE
HIGHdeeptutor/co_writer/docx_converter.py566except (KeyError, ValueError):CODE
HIGHdeeptutor/capabilities/setup/binding.py135except Exception: # noqa: BLE001 - advisory onlyCODE
HIGHdeeptutor/capabilities/setup/binding.py207except Exception: # noqa: BLE001 - best effortCODE
HIGHdeeptutor/capabilities/subagent/capability.py178except (TypeError, ValueError):CODE
HIGHdeeptutor/multi_user/session_handoff.py226except FileNotFoundError: # pragma: no cover - dropped concurrentlyCODE
HIGHdeeptutor/plugins/runtime.py635except ProcessLookupError:CODE
HIGHdeeptutor/plugins/runtime.py650except (OSError, BrokenPipeError):CODE
HIGHdeeptutor/plugins/lifecycle.py455except OSError:CODE
HIGHdeeptutor/learning/storage.py784except OSError:CODE
HIGHdeeptutor/learning/storage.py1825except ValueError:CODE
HIGHdeeptutor/runtime/background_leader.py102except TimeoutError:CODE
HIGHdeeptutor/runtime/update_worker.py171except Exception:CODE
HIGHdeeptutor/runtime/launcher.py1143except OSError:CODE
HIGHdeeptutor/runtime/launcher.py758except Exception:CODE
HIGHdeeptutor/runtime/launcher.py907except Exception:CODE
HIGHdeeptutor/runtime/launcher.py1118except OSError:CODE
HIGHdeeptutor/runtime/launcher.py1163except (OSError, ValueError):CODE
HIGHdeeptutor/runtime/memory_probe.py304except Exception: # noqa: BLE001 - psutil raises platform-specific errorsCODE
HIGHdeeptutor/agents/base_agent.py333except Exception:CODE
HIGHdeeptutor/agents/research/pipeline.py2644except (IndexError, ValueError):CODE
HIGHdeeptutor/agents/research/data_structures.py126except (TypeError, ValueError):CODE
HIGHdeeptutor/agents/research/data_structures.py538except (ValueError, IndexError):CODE
HIGHdeeptutor/agents/research/utils/citation_manager.py754except (ValueError, IndexError):CODE
HIGHdeeptutor/agents/research/utils/citation_manager.py433except (json.JSONDecodeError, Exception):CODE
HIGHdeeptutor/agents/research/utils/citation_manager.py186except ValueError:CODE
HIGHdeeptutor/agents/research/utils/citation_manager.py199except (ValueError, IndexError):CODE
HIGHdeeptutor/agents/research/utils/json_utils.py36except json.JSONDecodeError:CODE
HIGHdeeptutor/agents/research/utils/json_utils.py30except json.JSONDecodeError:CODE
HIGHdeeptutor/agents/_shared/json_output.py27except json.JSONDecodeError:CODE
HIGHdeeptutor/agents/loop/dsml_tool_calls.py189except (TypeError, ValueError):CODE
HIGHdeeptutor/utils/config_manager.py96except OSError:CODE
HIGHdeeptutor/utils/error_utils.py77except (json.JSONDecodeError, AttributeError):CODE
HIGHdeeptutor/utils/json_parser.py21except ImportError:CODE
HIGHdeeptutor/knowledge/progress_tracker.py105except (ImportError, Exception):CODE
HIGHdeeptutor/knowledge/progress_tracker.py103except RuntimeError:CODE
HIGHdeeptutor/knowledge/indexing_run.py435except Exception:CODE
HIGHdeeptutor/knowledge/manager.py1356except Exception:CODE
HIGHdeeptutor/knowledge/manager.py1710except Exception:CODE
HIGHdeeptutor/knowledge/manager.py1717except Exception:CODE
HIGHdeeptutor/knowledge/manager.py1724except Exception:CODE
HIGHdeeptutor/knowledge/manager.py221except ValueError:CODE
HIGHdeeptutor/partners/channels/matrix.py529except Exception:CODE
HIGHdeeptutor/partners/channels/matrix.py544except asyncio.CancelledError:CODE
140 more matches not shown…
Modern Structural Boilerplate1004 hits · 999 pts
SeverityFileLineSnippetContext
LOWtests/core/test_capabilities_runtime.py241 def set_trace_callback(self, callback) -> None:CODE
LOWtests/utils/test_document_extractor.py621 def set_limits(max_file: int, max_total: int) -> None:CODE
LOWtests/api/test_knowledge_router.py189 def update_kb_status(self, name: str, status: str, progress: dict | None = None) -> None:CODE
LOWtests/api/test_knowledge_router.py2194 def set_kb_config(self, kb_name: str, config: dict) -> None:CODE
LOWtests/api/test_knowledge_router.py2223 def set_kb_config(self, kb_name: str, config: dict) -> None:CODE
LOWtests/api/test_knowledge_router.py2256 def set_kb_config(self, kb_name: str, config: dict) -> None:CODE
LOWtests/api/test_linked_folder_routes.py92 def update_kb_status(self, name: str, status: str, progress: dict | None = None) -> None:CODE
LOWtests/api/test_linked_folder_routes.py253 def update_metadata(self, _count) -> None:CODE
LOWtests/api/test_linked_folder_routes.py292 def update_metadata(self, _count) -> None:CODE
LOWtests/api/test_linked_folder_routes.py340 def update_metadata(self, _count) -> None:CODE
LOWtests/services/test_task_model_call_sites.py210 async def update_session_title(self, session_id: str, title: str) -> None:CODE
LOWtests/services/test_github_source_sync_service.py41 def update_github_source_state(self, **_kwargs) -> None:CODE
LOWtests/services/test_github_source_unchanged_sync.py52 def update_github_source_state(self, **fields: Any) -> None:CODE
LOWscripts/_cli_kit.py31__all__ = ["banner", "log_error", "log_success"]CODE
LOWdeeptutor_cli/skill_prompts.py208__all__ = ["collect_classification", "select_domains", "select_many", "select_one"]CODE
LOWdeeptutor_cli/_tool_result.py159__all__ = [CODE
LOWdeeptutor_cli/skill_login.py134__all__ = ["LoginResult", "hub_origin_from_base", "oauth_start_url", "run_login"]CODE
LOWdeeptutor_cli/common.py610 def _settle_round(self, call_id: str, *, role: str) -> None:CODE
LOWdeeptutor_cli/workspace_cmd.py44__all__ = ["register"]CODE
LOWdeeptutor_cli/init_wizard.py1026__all__ = [CODE
LOWdeeptutor_cli/setup_config.py225 def update_catalog(catalog: dict) -> None:CODE
LOWdeeptutor_cli/doctor.py78__all__ = ["register"]CODE
LOWdeeptutor/response_languages.py8__all__ = ["SUPPORTED_RESPONSE_LANGUAGES", "validate_reply_language_override"]CODE
LOWdeeptutor/reading/store.py64logger = logging.getLogger(__name__)CODE
LOWdeeptutor/reading/store.py1562__all__ = [CODE
LOWdeeptutor/reading/service.py240__all__ = [CODE
LOWdeeptutor/reading/ingestion.py43logger = logging.getLogger(__name__)CODE
LOWdeeptutor/reading/ingestion.py1173__all__ = [CODE
LOWdeeptutor/reading/quiz.py139__all__ = ["ReadingQuizExtension"]CODE
LOWdeeptutor/reading/models.py515__all__ = [CODE
LOWdeeptutor/reading/page_render.py19logger = logging.getLogger(__name__)CODE
LOWdeeptutor/reading/references.py177__all__ = [CODE
LOWdeeptutor/reading/read_aloud.py33__all__ = ["ReadAloudExtension"]CODE
LOWdeeptutor/reading/epub_bilingual.py242__all__ = [CODE
LOWdeeptutor/reading/__init__.py77__all__ = [CODE
LOWdeeptutor/reading/catalog_store.py1092__all__ = ["ReadingCatalogStore"]CODE
LOWdeeptutor/reading/study_guidance.py103__all__ = ["StudyGuidanceExtension"]CODE
LOWdeeptutor/reading/export.py37logger = logging.getLogger(__name__)CODE
LOWdeeptutor/reading/export.py259__all__ = ["ExportFormat", "ExportResult", "export_material"]CODE
LOWdeeptutor/reading/catalog_models.py136__all__ = [CODE
LOWdeeptutor/reading/_grounding.py108__all__ = [CODE
LOWdeeptutor/reading/extensions.py21logger = logging.getLogger(__name__)CODE
LOWdeeptutor/reading/extensions.py196__all__ = [CODE
LOWdeeptutor/reading/translation.py133__all__ = ["TranslationExtension"]CODE
LOWdeeptutor/reading/refresh.py26logger = logging.getLogger(__name__)CODE
LOWdeeptutor/reading/search.py231__all__ = [CODE
LOWdeeptutor/reading/captions.py29logger = logging.getLogger(__name__)CODE
LOWdeeptutor/reading/captions.py139__all__ = [CODE
LOWdeeptutor/reading/vocabulary.py131__all__ = ["VocabularyExtension"]CODE
LOWdeeptutor/reading/extract.py49logger = logging.getLogger(__name__)CODE
LOWdeeptutor/reading/extract.py588__all__ = [CODE
LOWdeeptutor/reading/knowledge_capture.py172__all__ = [CODE
LOWdeeptutor/tools/paper_search_tool.py15logger = logging.getLogger(__name__)CODE
LOWdeeptutor/tools/partner_memory.py310__all__ = [CODE
LOWdeeptutor/tools/web_fetch.py36logger = logging.getLogger(__name__)CODE
LOWdeeptutor/tools/web_fetch.py288__all__ = [CODE
LOWdeeptutor/tools/brainstorm.py13logger = logging.getLogger(__name__)CODE
LOWdeeptutor/tools/mastery_nav.py492__all__ = [CODE
LOWdeeptutor/tools/ask_user.py369__all__ = [CODE
LOWdeeptutor/tools/file_tools.py291__all__ = ["EditFileTool", "ListDirTool", "ReadFileTool", "WriteFileTool"]CODE
944 more matches not shown…
Deep Nesting479 hits · 418 pts
SeverityFileLineSnippetContext
LOWtests/core/test_prompt_parity.py33CODE
LOWtests/core/test_prompt_parity.py62CODE
LOWtests/multi_user/test_workspace_resources.py136CODE
LOWtests/services/test_mimo_voice.py105CODE
LOWtests/services/memory/test_modes.py260CODE
LOWtests/services/memory/test_modes.py279CODE
LOWtests/services/config/test_readiness.py284CODE
LOWtests/services/rag/test_pipeline_integration.py334CODE
LOWtests/services/rag/test_lightrag_roles.py265CODE
LOWtests/services/parsing/test_mineru_normalization.py18CODE
LOWexamples/plugins/learning_echo/learning_echo/worker.py14CODE
LOWscripts/check_architecture.py56CODE
LOWdeeptutor_cli/provider_cmd.py43CODE
LOWdeeptutor_cli/provider_cmd.py119CODE
LOWdeeptutor_cli/init_cmd.py382CODE
LOWdeeptutor_cli/memory.py20CODE
LOWdeeptutor_cli/memory.py64CODE
LOWdeeptutor_cli/chat.py86CODE
LOWdeeptutor_cli/chat.py192CODE
LOWdeeptutor_cli/init_wizard.py613CODE
LOWdeeptutor_cli/init_wizard.py685CODE
LOWdeeptutor_cli/init_wizard.py736CODE
LOWdeeptutor_cli/init_wizard.py902CODE
LOWdeeptutor_cli/doctor.py20CODE
LOWdeeptutor/reading/store.py254CODE
LOWdeeptutor/reading/store.py440CODE
LOWdeeptutor/reading/store.py605CODE
LOWdeeptutor/reading/store.py1225CODE
LOWdeeptutor/reading/service.py63CODE
LOWdeeptutor/reading/ingestion.py660CODE
LOWdeeptutor/reading/models.py324CODE
LOWdeeptutor/reading/catalog_store.py396CODE
LOWdeeptutor/reading/export.py87CODE
LOWdeeptutor/reading/export.py208CODE
LOWdeeptutor/reading/refresh.py104CODE
LOWdeeptutor/reading/extract.py131CODE
LOWdeeptutor/reading/extract.py436CODE
LOWdeeptutor/tools/web_fetch.py73CODE
LOWdeeptutor/tools/tex_chunker.py90CODE
LOWdeeptutor/tools/tex_chunker.py203CODE
LOWdeeptutor/tools/ask_user.py243CODE
LOWdeeptutor/tools/prompting/__init__.py169CODE
LOWdeeptutor/tools/vision/image_utils.py113CODE
LOWdeeptutor/tools/vision/ggb_validator.py174CODE
LOWdeeptutor/tools/vision/block_parser.py121CODE
LOWdeeptutor/co_writer/docx_converter.py194CODE
LOWdeeptutor/co_writer/docx_converter.py626CODE
LOWdeeptutor/capabilities/mastery/tools.py2771CODE
LOWdeeptutor/capabilities/course_study/tools.py461CODE
LOWdeeptutor/capabilities/audio_overview/pipeline.py110CODE
LOWdeeptutor/multi_user/book_permission.py45CODE
LOWdeeptutor/multi_user/book_access.py119CODE
LOWdeeptutor/multi_user/grants.py48CODE
LOWdeeptutor/multi_user/session_handoff.py331CODE
LOWdeeptutor/multi_user/session_handoff.py403CODE
LOWdeeptutor/app/service.py37CODE
LOWdeeptutor/app/service.py179CODE
LOWdeeptutor/app/container.py163CODE
LOWdeeptutor/textbook_struct/page_headers.py49CODE
LOWdeeptutor/textbook_struct/chapter_rebuild.py146CODE
419 more matches not shown…
Hallucination Indicators28 hits · 320 pts
SeverityFileLineSnippetContext
CRITICALweb/tests/provider-registry-workflow.spec.tsx310 const added = mocks.settings.draft.services.llm.profiles.flatMap(p => p.models).find(m => m.model === "custom/model-idCODE
CRITICALweb/tests/provider-registry-workflow.spec.tsx359 const profile = mocks.settings.draft.services.embedding.profiles.at(-1)!;CODE
CRITICALweb/tests/provider-registry-workflow.spec.tsx549 expect(mocks.settings.draft.services.tts.profiles.at(-1)?.provider_ref).toMatchObject({ service: "llm", profile_id: "lCODE
CRITICALweb/tests/epub-display-preferences.spec.tsx221 const oldCfiDisplays = fixture.rendition.display.mock.calls.filter(CODE
CRITICALweb/tests/epub-display-preferences.spec.tsx236 fixture.rendition.display.mock.calls.filter(CODE
CRITICALweb/tests/epub-display-preferences.spec.tsx250 const relocated = fixture.rendition.on.mock.calls.find(([event]) => event === "relocated")?.[1] as unknown as (locatioCODE
CRITICALtests/api/test_partner_groups_router.py346 config_path = client.app.state.partner_groups.store.group_dir(group_id) / "config.json"CODE
CRITICAL⚡tests/services/partners/test_feishu_reply_delivery.py55 channel._client.im.v1.message.create.assert_not_called()CODE
CRITICAL⚡tests/services/partners/test_feishu_reply_delivery.py58 channel._client.im.v1.message.create.assert_called_once()CODE
CRITICAL⚡tests/services/partners/test_feishu_reply_delivery.py67 channel._client.im.v1.message.reply.assert_called_once()CODE
CRITICAL⚡tests/services/partners/test_feishu_reply_delivery.py68 channel._client.im.v1.message.create.assert_called_once()CODE
CRITICAL⚡tests/services/partners/test_feishu_reply_delivery.py77 channel._client.im.v1.message.create.assert_not_called()CODE
CRITICALtests/services/partners/test_feishu_reply_delivery.py142 channel._client.im.v1.message.create.assert_not_called()CODE
CRITICALtests/services/partners/test_feishu_thinking_notice.py99 channel._client.im.v1.message.create.assert_not_called()CODE
CRITICAL⚡deeptutor/partners/channels/feishu.py1306 response = self._client.im.v1.message.create(request)CODE
CRITICAL⚡deeptutor/partners/channels/feishu.py1325 response = self._client.im.v1.message.delete(request)CODE
CRITICAL⚡deeptutor/partners/channels/feishu.py1564 response = self._client.cardkit.v1.card_element.content(request)CODE
CRITICALdeeptutor/partners/channels/feishu.py720 response = self._client.im.v1.message_reaction.create(request)CODE
CRITICALdeeptutor/partners/channels/feishu.py762 response = self._client.im.v1.message_reaction.delete(request)CODE
CRITICALdeeptutor/partners/channels/feishu.py1116 response = self._client.im.v1.image.create(request)CODE
CRITICALdeeptutor/partners/channels/feishu.py1150 response = self._client.im.v1.file.create(request)CODE
CRITICALdeeptutor/partners/channels/feishu.py1178 response = self._client.im.v1.message_resource.get(request)CODE
CRITICALdeeptutor/partners/channels/feishu.py1213 response = self._client.im.v1.message_resource.get(request)CODE
CRITICALdeeptutor/partners/channels/feishu.py1399 response = self._client.im.v1.message.reply(request)CODE
CRITICALdeeptutor/partners/channels/feishu.py1432 response = self._client.im.v1.message.create(request)CODE
CRITICALdeeptutor/partners/channels/feishu.py1517 response = self._client.cardkit.v1.card.create(request)CODE
CRITICALdeeptutor/partners/channels/feishu.py1601 response = self._client.cardkit.v1.card.settings(request)CODE
CRITICALdeeptutor/partners/channels/feishu.py1953 response = self._client.im.v1.message.patch(request)CODE
Modern AI Meta-Vocabulary97 hits · 296 pts
SeverityFileLineSnippetContext
MEDIUMpyproject.toml119 # RAG (LlamaIndex)COMMENT
MEDIUMREADME.md114> **[2026.7.19]** [v1.5.2](https://github.com/HKUDS/DeepTutor/releases/tag/v1.5.2) — Configurable chat attachment limitsCODE
MEDIUMREADME.md150> **[2026.5.22]** [v1.4.0](https://github.com/HKUDS/DeepTutor/releases/tag/v1.4.0) — GA cut of v1.4: Auto Mode, three-laCODE
MEDIUMREADME.md152> **[2026.5.21]** [v1.4.0-beta](https://github.com/HKUDS/DeepTutor/releases/tag/v1.4.0-beta) — Three-layer Memory workbeCODE
MEDIUM⚡docker-compose.yml4# This file provides orchestration for DeepTutor servicesCOMMENT
MEDIUMtests/core/test_labeled_step_think_prelude.py403 # No reasoning trace events emitted for a clean FINISH.COMMENT
MEDIUMtests/core/test_capabilities_runtime.py82 # Course Study orchestrates across the surfaces above rather thanCOMMENT
MEDIUMtests/agents/chat/test_agent_loop.py872 # The pre-pass streamed THINKING (reasoning trace), never CONTENT — theCOMMENT
MEDIUMtests/agents/chat/test_agent_loop.py213 """#1611: exercise the active Mastery loop, real RAG tool and verified store."""STRING
MEDIUMtests/services/llm/test_capabilities.py69 # M3 is the current default model (1M-token context window, image inputCOMMENT
MEDIUM⚡tests/services/skill/test_skill_hub.py388# ── orchestration ────────────────────────────────────────────────────────COMMENT
MEDIUM…ts/services/config/test_provider_runtime_api_format.py139 # The agentic gate normally refuses tools on local servers; theCOMMENT
MEDIUMtests/services/rag/test_pageindex_pipeline.py209 # Constructing a real LlamaIndexPipeline resolves the active embedding modelCOMMENT
MEDIUMtests/services/rag/__init__.py1# Tests for RAG pipelineCOMMENT
MEDIUMrequirements/cli.txt41# --- RAG (LlamaIndex) ---COMMENT
MEDIUMassets/releases/past_releases/ver1-3-3.md99### RAG and Knowledge Base ResilienceCOMMENT
MEDIUMassets/releases/past_releases/ver0-4-0.md49### 🧩 RAG Module DecouplingCOMMENT
MEDIUMassets/releases/past_releases/ver0-4-0.md104├── rag/ # 🆕 Decoupled RAG systemCODE
MEDIUMassets/releases/past_releases/ver0-4-0.md109│ └── components/ # Modular RAG componentsCODE
MEDIUMassets/releases/past_releases/ver0-5-1.md9### 📄 Docling Support for RAG-AnythingCOMMENT
MEDIUMassets/releases/past_releases/ver1-4-0-beta.md86### Chat Capability & LlamaIndex RAG RefactorCOMMENT
MEDIUMassets/releases/past_releases/ver1-3-6.md38### RAG and Knowledge ReliabilityCOMMENT
MEDIUMassets/releases/past_releases/ver0-5-0.md46### RAG Pipeline SelectionCOMMENT
MEDIUMassets/releases/past_releases/ver0-5-0.md101### RAG SystemCOMMENT
MEDIUMassets/releases/past_releases/ver1-3-2.md42### RAG Re-index and Retrieval ResilienceCOMMENT
MEDIUMassets/releases/past_releases/ver1-5-5.md21### Traceable RAG citationsCOMMENT
MEDIUMassets/releases/past_releases/ver1-5-0.md116- #532 — RAG chat could not return information from the selected knowledge baseCODE
MEDIUMassets/releases/past_releases/ver1-5-0.md118- #552 — RAG chat on a 250 MB knowledge base returned nothingCODE
MEDIUMassets/releases/past_releases/ver1-5-15.md33`max_concurrent_files`, `llm_model_max_async`, and `entity_extract_max_gleaning` reached runtime settings and the API inCODE
MEDIUMassets/releases/past_releases/ver1-3-5.md26### More Reliable RAG Tool CallsCOMMENT
MEDIUMassets/releases/past_releases/ver1-3-1.md11### Safer RAG and Knowledge Base RoutingCOMMENT
MEDIUMassets/releases/past_releases/ver0-6-0.md21### Flexible RAG Pipeline ImportCOMMENT
MEDIUMassets/releases/past_releases/ver1-3-4.md57### RAG, Documents, and Knowledge Base RecoveryCOMMENT
MEDIUMassets/releases/past_releases/ver1-1-2.md16### RAG Simplified to a Single PipelineCOMMENT
MEDIUMassets/releases/past_releases/ver0-5-2.md7### Docling Support for RAG-AnythingCOMMENT
MEDIUMdeeptutor_cli/README.md11# 仅 CLI(本地源码安装,含 RAG / 文档解析 / 各家 LLM provider SDK)COMMENT
MEDIUMdeeptutor/tools/web_fetch.py46# pages. For JS-heavy SPAs the tool will return the bare HTML scaffold —COMMENT
MEDIUMdeeptutor/tools/list_notebook.py29# context window. The cap is recorded in the rendered output so theCOMMENT
MEDIUMdeeptutor/co_writer/edit_agent.py194 # RAG and web sources keep the existing prefetch path above.COMMENT
MEDIUMdeeptutor/capabilities/explore_context/explorer.py177 # ---- agentic loop ----------------------------------------------------COMMENT
MEDIUMdeeptutor/capabilities/explore_context/capability.py128 # ``core.agentic``, and this capability is constructed atCOMMENT
MEDIUM…capabilities/course_study/prompts/en/course_study.yaml1# Prompt fragments for the Course Study orchestration mode.COMMENT
MEDIUMdeeptutor/learning/prompts.py54 # scaffolding. The directive — the same one book, quiz and Deep ResearchCOMMENT
MEDIUM⚡deeptutor/learning/tests/test_topic_materials.py108 # The instruction that actually prevents the hallucination.COMMENT
MEDIUMdeeptutor/visualizers/loop_capability.py23 # unconditionally. Streaming that prose would show the reader scaffoldingCOMMENT
MEDIUMdeeptutor/runtime/agentic/labeled_step.py545 # Reasoning models that surface chain-of-thought via the dedicatedCOMMENT
MEDIUMdeeptutor/runtime/agentic/labeled_step.py551 # see only the answer with no reasoning trace. Route the reasoningCOMMENT
MEDIUMdeeptutor/runtime/agentic/usage.py85 # Local import keeps ``core.agentic`` import-light at module load.COMMENT
MEDIUMdeeptutor/agents/research/pipeline.py171# Per-block research: the headline agentic loop. ``APPEND`` is theCOMMENT
MEDIUMdeeptutor/agents/research/pipeline.py365 # and the resolution is a pure read with no RAG usage audit. UnresolvableCOMMENT
MEDIUMdeeptutor/agents/research/pipeline.py290 knowledge: str # accumulated FINISH text from the block's agentic loopCODE
MEDIUMdeeptutor/agents/research/utils/citation_manager.py731 # For RAG/web_search/etc: each citation gets unique ref_numberCOMMENT
MEDIUM⚡deeptutor/agents/research/prompts/zh/pipeline.yaml138# Phase 3 — Per-block research (agentic loop)COMMENT
MEDIUM⚡deeptutor/agents/research/prompts/en/pipeline.yaml91# Phase 1 — Rephrase (mini agentic loop with ask_user)COMMENT
MEDIUM⚡deeptutor/agents/research/prompts/en/pipeline.yaml147# Phase 3 — Per-block research (agentic loop)COMMENT
MEDIUMdeeptutor/agents/visualize/capability.py179 # model can spend most of one round on chain-of-thought, which truncatedCOMMENT
MEDIUM⚡deeptutor/agents/question/prompts/zh/pipeline.yaml18# 阶段 1:探索(agentic loop —— 沿用 chat 风格工具集)COMMENT
MEDIUM⚡deeptutor/agents/question/prompts/zh/pipeline.yaml172# 阶段 3:出题(每道题一个 agentic loop)COMMENT
MEDIUM⚡deeptutor/agents/question/prompts/en/pipeline.yaml4# * explore.step — agentic loop with ``THINK`` / ``TOOL`` /COMMENT
MEDIUM⚡deeptutor/agents/question/prompts/en/pipeline.yaml13# * quiz_step — agentic loop with ``THINK`` / ``TOOL`` /COMMENT
37 more matches not shown…
Cross-Language Confusion31 hits · 154 pts
SeverityFileLineSnippetContext
HIGHtests/core/test_config_manager.py84 "embedding": {"active_profile_id": null, "active_model_id": null, "profiles": []},STRING
HIGHtests/core/test_config_manager.py85 "search": {"active_profile_id": null, "profiles": []}STRING
HIGHtests/runtime/test_launcher_lifecycle.py399 "export default function Page() { return null; }", encoding="utf-8"CODE
HIGHtests/runtime/test_launcher.py767 page.write_text("export default function Page() { return null; }", encoding="utf-8")CODE
HIGH⚡tests/scripts/test_docker_compose.py224 assert "chown -R deeptutor:deeptutor /app/data 2>/dev/null || true" not in contentCODE
HIGH⚡tests/api/test_partners_channel_schema.py140 # Pydantic's ``Optional[str]`` becomes ``anyOf: [{type: string}, {type: null}]``.COMMENT
HIGHtests/services/test_app_update.py252 assert installation.command == "git pull && pip install -e ."CODE
HIGHtests/services/test_model_catalog.py74 "search": {"active_profile_id": null, "profiles": []}STRING
HIGH⚡tests/services/embedding/test_extract_embeddings.py164 """When a provider returns {"embedding": null}, use [] instead of None.STRING
HIGH⚡tests/services/cli_apps/test_models.py98 "cd sketch/agent-harness && npm install && npm link",CODE
HIGH⚡tests/services/sandbox/test_argv_exec.py172 result = runner_server.execute({"command": "echo a && echo b", "limits": {"timeout_s": 10}})CODE
HIGH…ts/services/session/test_pocketbase_store_fallbacks.py76 workspace = re.search(r'preferences_json\.workspace_id=("(?:\\.|[^"\\])*"|null)', flt)CODE
HIGH…ts/services/session/test_pocketbase_store_fallbacks.py84 flt = re.sub(r'preferences_json\.workspace_id=("(?:\\.|[^"\\])*"|null)', "", flt)CODE
HIGHtests/services/session/test_pocketbase_isolation.py62 workspace = re.search(r'preferences_json\.workspace_id=("(?:\\.|[^"\\])*"|null)', flt)CODE
HIGHtests/services/session/test_pocketbase_isolation.py70 flt = re.sub(r'preferences_json\.workspace_id=("(?:\\.|[^"\\])*"|null)', "", flt)CODE
HIGHscripts/update.py341 hints.append("Frontend dependencies changed: consider running cd web && npm install")CODE
HIGHdeeptutor/visualizers/builtin.py247Never include functions, comments, undefined, single-quoted strings or trailingCODE
HIGHdeeptutor/runtime/launcher.py984 "npm not found. Source installs require Node.js/npm and `cd web && npm install`."CODE
HIGH⚡deeptutor/api/routers/quiz_judge.py248 ] | null,STRING
HIGH⚡deeptutor/api/routers/quiz_judge.py249 "user_answer_image": str | null, # legacy single-image formSTRING
HIGH⚡deeptutor/api/routers/quiz_judge.py250 "image_filename": str | null, # legacy filename for the aboveSTRING
HIGHdeeptutor/api/routers/quiz_judge.py237 "options": dict | null,STRING
HIGHdeeptutor/services/app_update.py236 command="git pull && pip install -e .",CODE
HIGHdeeptutor/services/app_update.py254 command="git pull && pip install -e .",CODE
HIGHdeeptutor/services/setup/data_volume.py5owned by a different host UID (``PUID``/``PGID``). A silent ``chown || true``STRING
HIGHdeeptutor/services/partners/manager.py223#: YAML null: a bare ``mcp_tools:`` key parses as null, and a hand-edit thatCOMMENT
HIGHdeeptutor/services/partners/manager.py236 ``mcp_tools`` key), a bare key (YAML null), and a malformed value all readSTRING
HIGHdeeptutor/services/session/pocketbase_store.py592 " && (preferences_json.archived=null || preferences_json.archived=false)"CODE
HIGHdeeptutor/services/session/pocketbase_store.py593 ' && (preferences_json.parent_session_id=null || preferences_json.parent_session_id="")'CODE
HIGHdeeptutor/services/session/pocketbase_store.py1114 "filter": f'({turn_scope}) && (type="result" || type="done" || metadata_json.model != null)'CODE
HIGHdeeptutor/services/session/turns/executor.py864 # with explicit null). Otherwise let the store auto-append.COMMENT
Over-Commented Block109 hits · 98 pts
SeverityFileLineSnippetContext
LOWdocker-compose.ghcr.yml1# ============================================COMMENT
LOWdocker-compose.ghcr.yml21# Use "host.docker.internal" instead of "localhost" in provider base_url fields.COMMENT
LOWdocker-compose.ghcr.yml81 - DEEPTUTOR_WORKSPACE_ALLOWED_ROOTS=/workspaceCOMMENT
LOWrequirements.txt1# ============================================COMMENT
LOWpyproject.toml41 # default chat/tool surface includes configurable MCP servers, so a plainCOMMENT
LOWpyproject.toml141]COMMENT
LOWpyproject.toml201 "aiohttp>=3.10.0,<4.0.0",COMMENT
LOWpyproject.toml241COMMENT
LOWpyproject.toml461# ============================================COMMENT
LOWpyproject.toml521[[tool.mypy.overrides]]COMMENT
LOWcompose.yaml1# ============================================COMMENT
LOWcompose.yaml21# picks this file up without -f.COMMENT
LOWcompose.yaml41# the `sandbox_allow_subprocess` setting in system.json. SeeCOMMENT
LOWcompose.yaml161 ports:COMMENT
LOWcompose.yaml201 redis:COMMENT
LOWdocker-compose.yml1# ============================================COMMENT
LOWdocker-compose.yml101 # Route untrusted shell exec to the runner sidecar (SYSTEM isolation).COMMENT
LOWdocker-compose.yml141 networks:COMMENT
LOWdocker-compose.yml161COMMENT
LOWweb/next.config.js161COMMENT
LOWweb/next-env.d.ts1/// <reference types="next" />COMMENT
LOWweb/features/chat/ChatStateAdapter.tsx2061 // Pick up a title written after this point — seeCOMMENT
LOWweb/features/chat/ChatStateAdapter.tsx2541 // Reached on a revalidate too, when the turn is live on the server butCOMMENT
LOWweb/features/chat/messages/ChatMessageList.tsx921 // layers: the process stays open and streams live, then folds itself intoCOMMENT
LOWweb/features/chat/messages/ChatMessageList.tsx941 // the reader actually came for, never moves at all.COMMENT
LOWweb/features/chat/messages/ChatMessageList.tsx2001 // Visible path: when no branching has happened the result is identicalCOMMENT
LOWweb/features/chat/messages/ChatMessageList.tsx2021 // deep_research msg, we synthesise a merged msg with:COMMENT
LOWweb/features/chat/trace/TracePresentation.tsx1021 const isToolRow = kind === "tool_planning" || group === "tool_call";COMMENT
LOWweb/features/chat/components/ChatWorkspace.tsx481 // Capability-config confirmation gate.COMMENT
LOWweb/features/chat/components/ChatWorkspace.tsx601 // Bridge ref: ``ChatComposer`` writes a prefill function into this onCOMMENT
LOWweb/components/reading/TextUnitView.tsx541 // everything around it, so the chosen line width was invisible andCOMMENT
LOWweb/components/reading/ReaderPane.tsx541 // -- resume where the reader left off ------------------------------------COMMENT
LOWweb/components/reading/workspace/ReadingCompanion.tsx401 // Opts this scrollport into the global `overflow-anchor: none` rule;COMMENT
LOWweb/components/reading/workspace/useReadingWorkspace.ts181 // answer for whatever partial row the backend has written so far.COMMENT
LOWweb/components/reading/workspace/useReadingWorkspace.ts421 sessionConfiguration,COMMENT
LOWweb/components/sidebar/WorkspaceSidebar.tsx141 // `cancel_turn` to the backend and dropping its socket — so opening a newCOMMENT
LOWweb/components/settings/search-providers.ts1// Which connection fields a web-search provider actually uses.COMMENT
LOWweb/components/settings/profile-naming.ts1// Auto-naming for connection profiles.COMMENT
LOWweb/components/memory/MemoryWorkbench.tsx41// m_xxx footnote to scroll the user back to the citing bullet. ConvertCOMMENT
LOWweb/components/chat/home/ChatComposer.tsx741COMMENT
LOWweb/components/chat/home/AskUserOptions.tsx341 // Where the preview whose call id never arrived lives, if any: a providerCOMMENT
LOWweb/components/chat/home/AskUserOptions.tsx641 // remains, because a segment removed afterwards would leave the text it hadCOMMENT
LOWweb/components/chat/preview/FilePreviewDrawer.tsx81 // the body keeps the main thread free for the slide animations.COMMENT
LOWweb/components/common/MarkdownRenderer.tsx41 trackSourceLines,COMMENT
LOWweb/hooks/useChatAutoScroll.ts101 // ``next/dynamic`` chunks all change the height of the messageCOMMENT
LOWweb/hooks/useChatAutoScroll.ts161 mo.disconnect();COMMENT
LOWweb/hooks/useChatAutoScroll.ts261COMMENT
LOWweb/lib/streaming-upload-proxy.ts1import { resolveBackendApiBase } from "./backend-runtime-config";COMMENT
LOWweb/lib/reasoning-effort.ts181 return options(["minimal", "high"], current);COMMENT
LOWtests/api/test_question_router.py161# DT-22 HIGH-chain regression pins (evidence: agent/dt22-todo-scan report §7).COMMENT
LOWtests/services/storage/test_file_library.py281# ---------------------------------------------------------------------------COMMENT
LOWrequirements/partners.txt1# ============================================COMMENT
LOWrequirements/cli.txt1# ============================================COMMENT
LOWrequirements/matrix.txt1# ============================================COMMENT
LOWrequirements/math-animator.txt1# ============================================COMMENT
LOWrequirements/server.txt1# ============================================COMMENT
LOWrequirements/matrix-e2e.txt1# ============================================COMMENT
LOW.github/workflows/pypi-release.yml1name: PyPI ReleaseCOMMENT
LOWdeeptutor/capabilities/mastery/loop.py61 # …and the same announcement with the noun left out: "再试一道,把这套COMMENT
LOWdeeptutor/capabilities/mastery/loop.py201 # is bound before any of them runs, so without this a ``mastery_switch`` +COMMENT
49 more matches not shown…
Docstring Block Structure14 hits · 70 pts
SeverityFileLineSnippetContext
HIGHdeeptutor/tools/vision/image_utils.py62Download image from URL. Args: url: Image URL Returns: (image bytes, MIME type) Raises: STRING
HIGHdeeptutor/tools/vision/image_utils.py156Convert image URL to base64 data URL. Args: url: Image URL Returns: data:image/...;base64,... STRING
HIGHdeeptutor/tools/vision/image_utils.py175Resolve image input to base64 format. Prioritizes image_base64, falls back to downloading from image_url. ArgsSTRING
HIGHdeeptutor/utils/document_validator.py75 Validate file upload safety Args: filename: Name of the file file_size: Size oSTRING
HIGHdeeptutor/utils/document_validator.py179 Validate that a file exists, is readable, and has valid content. Args: path: Path to the fSTRING
HIGHdeeptutor/utils/archive_extractor.py74Extract ``zip_path`` into ``target_dir``, flattening to safe basenames. Args: zip_path: Path to the ``.zip`STRING
HIGHdeeptutor/knowledge/manager.py1959 Link a local folder to a knowledge base. Args: kb_name: Knowledge base name foSTRING
HIGHdeeptutor/book/blocks/_prompts.py30Load a YAML prompt bundle for the ``book`` module. Args: name: File stem under ``deeptutor/book/prompts/{laSTRING
HIGHdeeptutor/services/llm/registry.py36 Get a registered provider class by name. Args: name: Provider name Returns: Provider clasSTRING
HIGHdeeptutor/services/embedding/adapters/base.py174 Generate embeddings for a list of texts. Args: request: EmbeddingRequest with texts and paSTRING
HIGHdeeptutor/services/setup/init.py302 Get both backend and frontend ports from configuration. Args: project_root: Project root directory (ifSTRING
HIGH…tutor/services/rag/pipelines/graphrag/compatibility.py14Probe one configured model by ID while leaving the active catalog unchanged. Args: profile_id: Server-side STRING
HIGHdeeptutor/services/rag/eval/dataset.py192Read an evaluation set from ``path``. Args: path: A ``.jsonl``, ``.ndjson`` or ``.json`` file. nameSTRING
HIGHdeeptutor/services/search/providers/__init__.py61 Get a provider instance by name. Args: name: Provider name (case-insensitive). **kwargs: ArgumSTRING
AI Slop Vocabulary20 hits · 47 pts
SeverityFileLineSnippetContext
MEDIUMweb/package-lock.json11859 "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz",CODE
MEDIUMweb/features/settings/navigation/settings-nav.ts430 href: "/settings#agent-deepseek-harness",CODE
MEDIUMweb/tests/subagent-harnesses.test.ts88 assert.match(nav, new RegExp(`/settings#agent-${harness.route}`));CODE
MEDIUMweb/components/common/GeogebraOpenCTA.tsx37 // robust even if the assistant doesn't bother emitting an explicitCOMMENT
MEDIUMtests/capabilities/test_explore_context_capability.py293 """A loop that errors before producing anything degrades to the robustSTRING
MEDIUMtests/utils/test_json_parser.py1"""Tests for robust JSON parsing utilities."""STRING
MEDIUMtests/services/cli_apps/test_installer.py40 target: str = "git+https://example.invalid/x.git@abc#subdirectory=demo/agent-harness",CODE
MEDIUM⚡tests/services/cli_apps/test_models.py36 f"pip install git+{HARNESS_REPO}#subdirectory=blender/agent-harness", app_id="blender"CODE
MEDIUM⚡tests/services/cli_apps/test_models.py41 assert plan.target == f"git+{HARNESS_REPO}@{PIN}#subdirectory=blender/agent-harness"CODE
MEDIUM⚡tests/services/cli_apps/test_models.py47 assert plan.target.endswith("#subdirectory=zotero/agent-harness")CODE
MEDIUMdeeptutor/capabilities/explore_context/explorer.py166 # Non-native providers, or a failed/empty loop, degrade to the robustCOMMENT
MEDIUMdeeptutor/agents/research/pipeline.py1683 """Make report planning robust to partial / invalid block maps.STRING
MEDIUMdeeptutor/partners/channels/dingtalk.py54 # Parse using SDK's ChatbotMessage for robust handlingCOMMENT
LOWdeeptutor/partners/channels/weixin.py536 # If quoted message is media, just pass the textCOMMENT
MEDIUMdeeptutor/book/blocks/_llm_writer.py147 """Run a structured JSON LLM call with robust parsing and one safe retry.STRING
LOWdeeptutor/api/main.py519 # Fallback: just create the main directory if it doesn't existCOMMENT
MEDIUMdeeptutor/services/cli_apps/models.py142 #: harness, a URL for several public entries, or "" — read from theCOMMENT
MEDIUM⚡deeptutor/services/cli_apps/provider.py44#: Where an installed harness keeps its agent-facing guide, most specific first.COMMENT
MEDIUM⚡deeptutor/services/cli_apps/provider.py47#: harness publishes ``cli_anything/<package>/skills/SKILL.md``, which is sixCOMMENT
MEDIUM⚡deeptutor/services/cli_apps/provider.py55#: exactly one harness, so the glob resolves to one directory.COMMENT
Fake / Example Data41 hits · 44 pts
SeverityFileLineSnippetContext
LOW…s/settings/sections/DocumentParsingSettingsSection.tsx960 typeof slice.image_mode === "string" ? slice.image_mode : "placeholder";CODE
LOW…s/settings/sections/DocumentParsingSettingsSection.tsx992 {["placeholder", "off", "embed"].map((m) => (CODE
LOWtests/tools/test_ask_user.py199 payload, _ = build_ask_user_payload(questions=[{"prompt": "x", "placeholder": "type here"}])CODE
LOWtests/tools/test_ask_user.py425 "placeholder": None,CODE
LOWtests/tools/test_ask_user.py434 "placeholder": None,CODE
LOW⚡tests/multi_user/test_task_board.py69 save_user("admin", "placeholder", role="admin")CODE
LOW⚡tests/multi_user/test_task_board.py70 learner = save_user("alice", "placeholder", preset="learner")CODE
LOWtests/knowledge/test_document_adder_provider.py29 (output_dir / "entities.parquet").write_bytes(b"placeholder")CODE
LOWtests/api/test_output_files.py219 link = _write_output(users_root / "u_alice", relative_path, b"placeholder")CODE
LOWtests/api/test_knowledge_router.py2794 b"placeholder",CODE
LOW⚡tests/api/test_marginnote4_router.py63 "Authorization": "MarginNote fake-device:fake-token",CODE
LOW⚡tests/api/test_marginnote4_router.py76 "Authorization": "MarginNote fake-device:fake-token",CODE
LOWtests/services/llm/test_codebuddy_provider.py438 raise RuntimeError("Authorization: Bearer fake-token; prompt=private-user-body")CODE
LOWtests/services/llm/test_codebuddy_provider.py487 assert "fake-token" not in caplog.textCODE
LOW⚡tests/services/llm/test_codebuddy_provider.py568 raise RuntimeError("Authorization: Bearer fake-token; prompt=private-user-body")CODE
LOW⚡tests/services/llm/test_codebuddy_provider.py574 assert "fake-token" not in caplog.textCODE
LOWtests/services/config/test_runtime_settings.py145 "pocketbase_admin_email": "admin@example.com",CODE
LOWtests/services/rag/test_index_probe.py127 (out / "entities.parquet").write_bytes(b"placeholder")CODE
LOWtests/services/rag/test_file_routing.py224 assert "Jane Doe" in contentCODE
LOW⚡tests/services/partners/test_zulip_channel.py99 ch = _make_channel(allow_from=["user@example.com"])CODE
LOW⚡tests/services/partners/test_zulip_channel.py129 assert ch._is_own_message({"sender_email": "user@example.com", "sender_id": 200}) is FalseCODE
LOW⚡tests/services/partners/test_zulip_channel.py498 "sender_email": "user@example.com",CODE
LOW⚡tests/services/partners/test_zulip_channel.py501 assert req["to"] == ["user@example.com"]CODE
LOW⚡tests/services/partners/test_zulip_channel.py511 "sender_email": "user@example.com",CODE
LOW⚡tests/services/partners/test_zulip_channel.py514 {"id": 42, "email": "user@example.com"},CODE
LOW⚡tests/services/partners/test_zulip_channel.py933 "sender_email": "user@example.com",CODE
LOWtests/services/parsing/test_engines.py842 "image_mode": "placeholder",CODE
LOWtests/services/session/test_turn_runtime_subscribe.py116 runtime._executions["placeholder"] = SimpleNamespace(task=None) # type: ignore[assignment]CODE
LOWdeeptutor_cli/common.py589 placeholder=str(question.get("placeholder") or "").strip(),CODE
LOWdeeptutor/tools/ask_user.py76 "placeholder": self.placeholder,CODE
LOWdeeptutor/tools/ask_user.py314 placeholder_raw = raw.get("placeholder")CODE
LOWdeeptutor/tools/builtin/__init__.py1662 "placeholder": {CODE
LOWdeeptutor/api/routers/space_mcp.py381 "placeholder": field.placeholder,CODE
LOW⚡deeptutor/services/config/runtime_settings.py1223 image_mode = _string(settings.get("image_mode")).lower() or "placeholder"CODE
LOW⚡deeptutor/services/config/runtime_settings.py1225 image_mode = "placeholder"CODE
LOWdeeptutor/services/config/runtime_settings.py159LITEPARSE_IMAGE_MODES = frozenset({"off", "placeholder", "embed"})CODE
LOWdeeptutor/services/config/runtime_settings.py228 "image_mode": "placeholder",CODE
LOWdeeptutor/services/mcp/catalog/loader.py228 placeholder=str(row.get("placeholder", "")),CODE
LOWdeeptutor/services/parsing/engines/liteparse/config.py23 # How images appear in the Markdown: "off" | "placeholder" | "embed".COMMENT
LOWdeeptutor/services/parsing/engines/liteparse/config.py24 image_mode: str = "placeholder"CODE
LOWdeeptutor/services/parsing/engines/liteparse/config.py35 return mode if mode in LITEPARSE_IMAGE_MODES else "placeholder"CODE
AI Structural Patterns47 hits · 40 pts
SeverityFileLineSnippetContext
LOWtests/services/search/test_web_search_runtime.py31CODE
LOW…sts/services/partners/test_telegram_message_parsing.py91CODE
LOWdeeptutor_cli/chat.py45CODE
LOWdeeptutor_cli/main.py83CODE
LOWdeeptutor_cli/kb.py420CODE
LOWdeeptutor/reading/store.py605CODE
LOWdeeptutor/reading/ingestion.py152CODE
LOWdeeptutor/reading/catalog_store.py260CODE
LOWdeeptutor/tools/question_bank.py470CODE
LOWdeeptutor/tools/write_note.py61CODE
LOWdeeptutor/core/trace.py55CODE
LOWdeeptutor/capabilities/mastery/tools.py344CODE
LOWdeeptutor/capabilities/course_study/tools.py315CODE
LOWdeeptutor/learning/service.py1037CODE
LOWdeeptutor/runtime/agentic/tool_dispatch.py122CODE
LOWdeeptutor/agents/base_agent.py52CODE
LOWdeeptutor/agents/base_agent.py349CODE
LOWdeeptutor/agents/base_agent.py519CODE
LOWdeeptutor/agents/question/coordinator.py39CODE
LOWdeeptutor/agents/loop/pipeline.py230CODE
LOWdeeptutor/knowledge/progress_tracker.py176CODE
LOWdeeptutor/book/engine.py467CODE
LOWdeeptutor/book/inputs.py312CODE
LOWdeeptutor/api/routers/knowledge.py3508CODE
LOWdeeptutor/api/routers/knowledge.py3586CODE
LOWdeeptutor/api/routers/question_notebook.py352CODE
LOWdeeptutor/services/llm/factory.py411CODE
LOWdeeptutor/services/llm/factory.py519CODE
LOW…r/services/llm/provider_core/openai_compat_provider.py171CODE
LOW…r/services/llm/provider_core/openai_compat_provider.py1083CODE
LOW…/services/llm/provider_core/github_copilot_provider.py218CODE
LOW…or/services/llm/provider_core/azure_openai_provider.py189CODE
LOW…or/services/llm/provider_core/openai_codex_provider.py151CODE
LOW…tutor/services/llm/provider_core/anthropic_provider.py540CODE
LOW…tutor/services/llm/provider_core/codebuddy_provider.py193CODE
LOWdeeptutor/services/llm/provider_core/base.py256CODE
LOWdeeptutor/services/llm/provider_core/base.py439CODE
LOWdeeptutor/services/llm/provider_core/base.py488CODE
LOW…/services/llm/provider_core/codebuddy_http_provider.py179CODE
LOWdeeptutor/services/rag/linked_kb.py68CODE
LOWdeeptutor/services/rag/eval/runner.py255CODE
LOWdeeptutor/services/search/source_filter.py347CODE
LOWdeeptutor/services/search/providers/tavily.py34CODE
LOWdeeptutor/services/search/providers/serper.py40CODE
LOWdeeptutor/services/search/providers/perplexity.py157CODE
LOWdeeptutor/services/voice/base.py216CODE
LOWdeeptutor/services/session/sqlite_store.py4067CODE
Cross-File Repetition5 hits · 25 pts
SeverityFileLineSnippetContext
HIGHdeeptutor/services/session/turns/request_preparer.py0generated behavior slice of the unified turn runtime.STRING
HIGHdeeptutor/services/session/turns/learning_adapter.py0generated behavior slice of the unified turn runtime.STRING
HIGHdeeptutor/services/session/turns/lifecycle.py0generated behavior slice of the unified turn runtime.STRING
HIGHdeeptutor/services/session/turns/title_service.py0generated behavior slice of the unified turn runtime.STRING
HIGHdeeptutor/services/session/turns/executor.py0generated behavior slice of the unified turn runtime.STRING
Self-Referential Comments5 hits · 20 pts
SeverityFileLineSnippetContext
MEDIUM⚡compose.yaml10# This file is `podman-compose` 1.5+ compatible.COMMENT
MEDIUM⚡docker-compose.yml4# This file provides orchestration for DeepTutor servicesCOMMENT
MEDIUM⚡tests/services/session/test_regenerate.py583 # Create a running turn directly via the store.COMMENT
MEDIUMdeeptutor/tools/vision/block_parser.py95 # Create the block with validated contentCOMMENT
MEDIUMdeeptutor/api/routers/mastery_path.py53 # Create a fresh store + service per request to avoid object-level race conditions.COMMENT
Redundant / Tautological Comments12 hits · 14 pts
SeverityFileLineSnippetContext
LOWdeeptutor/tools/tex_chunker.py141 # Check if can merge into current chunkSTRING
LOWdeeptutor/tools/tex_chunker.py244 # Check if can mergeSTRING
LOWdeeptutor/tools/vision/ggb_validator.py335 # Check if anything was fixedCOMMENT
LOWdeeptutor/tools/vision/block_parser.py156 # Check if we might be at the start of a block patternCOMMENT
LOWdeeptutor/tools/vision/block_parser.py159 # Check if this could be a block startCOMMENT
LOWdeeptutor/agents/base_agent.py731 # Check if this is a nested lookup (section.field pattern)COMMENT
LOWdeeptutor/knowledge/manager.py723 # Check if this is a valid KB directory (flat versions or legacy stores)COMMENT
LOWdeeptutor/knowledge/manager.py2006 # Check if already linkedCOMMENT
LOWdeeptutor/knowledge/manager.py2151 # Check if modified since last syncCOMMENT
LOWdeeptutor/partners/channels/discord.py477 # Check if bot was mentioned in the messageCOMMENT
LOWdeeptutor/services/llm/capabilities.py11 # Check if a provider supports response_formatSTRING
LOWdeeptutor/services/sandbox/runner/server.py144 # Open file descriptors.COMMENT
Cross-Language Confusion (JS/TS)2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHweb/app/(workspace)/co-writer/sampleTemplate.ts66 print("DeepTutor is ready.")CODE
HIGH…atures/settings/sections/AppearanceSettingsSection.tsx31print(summary)CODE
Example Usage Blocks3 hits · 6 pts
SeverityFileLineSnippetContext
LOW⚡docker-compose.ghcr.yml7# Usage:COMMENT
LOW.pre-commit-config.yaml8# Usage:COMMENT
LOW⚡docker-compose.yml6# Usage:COMMENT
Verbosity Indicators3 hits · 2 pts
SeverityFileLineSnippetContext
LOWdeeptutor/partners/channels/weixin.py1230 # Step 1: Get upload URL from server (prefer upload_full_url, fallback to upload_param)COMMENT
LOWdeeptutor/partners/channels/weixin.py1254 # Step 2: AES-128-ECB encrypt and POST to CDNCOMMENT
LOWdeeptutor/partners/channels/weixin.py1282 # Step 3: Send message with the media itemCOMMENT
Structural Annotation Overuse3 hits · 2 pts
SeverityFileLineSnippetContext
LOWdeeptutor/partners/channels/weixin.py1230 # Step 1: Get upload URL from server (prefer upload_full_url, fallback to upload_param)COMMENT
LOWdeeptutor/partners/channels/weixin.py1254 # Step 2: AES-128-ECB encrypt and POST to CDNCOMMENT
LOWdeeptutor/partners/channels/weixin.py1282 # Step 3: Send message with the media itemCOMMENT