AI Slop Code RIsk Monitor

graphif/project-graph

A node-based visual tool for organizing thoughts and notes in a non-linear way.

5.5 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for graphif/project-graph, a TypeScript project with 4,478 GitHub stars. SynthScan examined 170,838 lines of code across 837 source files, recording 238 pattern matches distributed across 4 syntactic categories. The legacy adjusted pattern signal is 5.5 (Moderate 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.

5.5
Adjusted Signal
5.5
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
4.5K
Stars
TypeScript
Language
170.8K
Lines of Code
837
Files
238
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 4.9/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 19.8/100 · LOW

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

Agent Over-Engineering Ratio 4.7/100 · LOW

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

PR Review Velocity Impact 21.9/100 · LOW

Which changes need focused human review? 238 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 66HIGH 0MEDIUM 6LOW 166

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 238 distinct pattern matches across 4 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.

Hallucination Indicators66 hits · 755 pts
SeverityFileLineSnippetContext
CRITICALapp/src/core/render/canvas2d/renderer.tsx598 this.project.stageStyleManager.currentStyle.StageObjectBorder.toNewAlpha(0.8),CODE
CRITICALapp/src/core/render/canvas2d/renderer.tsx630 this.project.stageStyleManager.currentStyle.CollideBoxPreSelected.toSolid(),CODE
CRITICALapp/src/core/render/canvas2d/renderer.tsx656 this.project.stageStyleManager.currentStyle.CollideBoxPreSelected.toTransparent(),CODE
CRITICALapp/src/core/render/canvas2d/renderer.tsx657 this.project.stageStyleManager.currentStyle.CollideBoxPreSelected.toSolid(),CODE
CRITICALapp/src/core/render/canvas2d/renderer.tsx669 this.project.stageStyleManager.currentStyle.CollideBoxPreSelected.toSolid(),CODE
CRITICALapp/src/core/render/canvas2d/renderer.tsx679 this.project.stageStyleManager.currentStyle.CollideBoxPreSelected.toSolid(),CODE
CRITICAL⚡app/src/core/render/canvas2d/renderer.tsx690 this.project.stageStyleManager.currentStyle.effects.warningShadow.toNewAlpha(0.5),CODE
CRITICAL⚡app/src/core/render/canvas2d/renderer.tsx697 this.project.stageStyleManager.currentStyle.effects.warningShadow.toNewAlpha(0.5),CODE
CRITICAL⚡app/src/core/render/canvas2d/renderer.tsx703 this.project.stageStyleManager.currentStyle.effects.warningShadow.toNewAlpha(0.5),CODE
CRITICALapp/src/core/render/canvas2d/renderer.tsx767 this.project.stageStyleManager.currentStyle.Background.toNewAlpha(Settings.windowBackgroundAlpha),CODE
CRITICALapp/src/core/render/canvas2d/renderer.tsx816 `location: ${this.project.camera.location.x.toFixed(2)}, ${this.project.camera.location.y.toFixed(2)}`,CODE
CRITICAL⚡…der/canvas2d/entityRenderer/ReferenceBlockRenderer.tsx90 let lightColor = this.project.stageStyleManager.currentStyle.StageObjectBorder.toNewAlpha(0.5);CODE
CRITICAL⚡…der/canvas2d/entityRenderer/ReferenceBlockRenderer.tsx91 let darkColor = this.project.stageStyleManager.currentStyle.StageObjectBorder.toNewAlpha(0.8);CODE
CRITICAL⚡…der/canvas2d/entityRenderer/ReferenceBlockRenderer.tsx95 darkColor = this.project.stageStyleManager.currentStyle.CollideBoxSelected.toNewAlpha(1);CODE
CRITICAL…core/render/canvas2d/entityRenderer/EntityRenderer.tsx344 penStrokeColor = this.project.stageStyleManager.currentStyle.StageObjectBorder.clone();CODE
CRITICAL…core/render/canvas2d/entityRenderer/EntityRenderer.tsx376 this.project.stageStyleManager.currentStyle.CollideBoxSelected.toNewAlpha(0.5),CODE
CRITICAL…core/render/canvas2d/entityRenderer/EntityRenderer.tsx446 const triangleColor = this.project.stageStyleManager.currentStyle.CollideBoxSelected.toNewAlpha(0.6);CODE
CRITICAL…anvas2d/entityRenderer/EntityDetailsButtonRenderer.tsx47 this.project.stageStyleManager.currentStyle.StageObjectBorder.toNewAlpha(0.32),CODE
CRITICAL…er/canvas2d/entityRenderer/section/SectionRenderer.tsx164 ? this.project.stageStyleManager.currentStyle.Background.toNewAlpha(Settings.sectionBigTitleOpacity)CODE
CRITICAL…er/canvas2d/entityRenderer/section/SectionRenderer.tsx203 ? this.project.stageStyleManager.currentStyle.Background.toNewAlpha(Settings.sectionBigTitleOpacity)CODE
CRITICAL…er/canvas2d/entityRenderer/section/SectionRenderer.tsx282 const fillColor = this.project.stageStyleManager.currentStyle.CollideBoxSelected.toNewAlpha(0.35);CODE
CRITICAL…tyRenderer/edge/concrete/SymmetryCurveEdgeRenderer.tsx262 this.project.stageStyleManager.currentStyle.Background.toNewAlpha(Settings.windowBackgroundAlpha),CODE
CRITICAL…tyRenderer/edge/concrete/SymmetryCurveEdgeRenderer.tsx563 this.project.stageStyleManager.currentStyle.StageObjectBorder.toNewAlpha(0.2),CODE
CRITICAL…tyRenderer/edge/concrete/SymmetryCurveEdgeRenderer.tsx570 this.project.stageStyleManager.currentStyle.StageObjectBorder.toNewAlpha(0.2),CODE
CRITICAL⚡…/entityRenderer/edge/concrete/StraightEdgeRenderer.tsx77 this.project.stageStyleManager.currentStyle.effects.successShadow.clone(),CODE
CRITICAL⚡…/entityRenderer/edge/concrete/StraightEdgeRenderer.tsx83 this.project.stageStyleManager.currentStyle.effects.successShadow.clone(),CODE
CRITICAL⚡…/entityRenderer/edge/concrete/StraightEdgeRenderer.tsx84 this.project.stageStyleManager.currentStyle.effects.successShadow.clone(),CODE
CRITICAL…/entityRenderer/edge/concrete/StraightEdgeRenderer.tsx376 const colorStart = this.project.stageStyleManager.currentStyle.effects.successShadow.toNewAlpha(0.5);CODE
CRITICAL…/entityRenderer/edge/concrete/StraightEdgeRenderer.tsx377 const colorEnd = this.project.stageStyleManager.currentStyle.effects.successShadow.toSolid();CODE
CRITICAL…anvas2d/entityRenderer/latexNode/LatexNodeRenderer.tsx20 const themeColor = this.project.stageStyleManager.currentStyle.StageObjectBorder.clone();CODE
CRITICAL…/canvas2d/entityRenderer/textNode/TextNodeRenderer.tsx31 const color = this.project.stageStyleManager.currentStyle.StageObjectBorder.clone();CODE
CRITICAL…/canvas2d/entityRenderer/textNode/TextNodeRenderer.tsx146 // node.color.a === 0 ? this.project.stageStyleManager.currentStyle.Background.clone() : node.color.clone();COMMENT
CRITICAL…/canvas2d/entityRenderer/textNode/TextNodeRenderer.tsx184 const tabColor = this.project.stageStyleManager.currentStyle.CollideBoxSelected.clone();CODE
CRITICAL…/canvas2d/entityRenderer/textNode/TextNodeRenderer.tsx186 const hintColor = this.project.stageStyleManager.currentStyle.StageObjectBorder.clone();CODE
CRITICAL…/canvas2d/entityRenderer/textNode/TextNodeRenderer.tsx483 const markerColor = this.project.stageStyleManager.currentStyle.effects.successShadow.toNewAlpha(0.5);CODE
CRITICAL…/canvas2d/entityRenderer/textNode/TextNodeRenderer.tsx536 const hintColor = this.project.stageStyleManager.currentStyle.StageObjectBorder.clone();CODE
CRITICAL…/canvas2d/entityRenderer/textNode/TextNodeRenderer.tsx538 const titleColor = this.project.stageStyleManager.currentStyle.CollideBoxSelected.clone();CODE
CRITICAL…vas2d/utilsRenderer/searchContentHighlightRenderer.tsx18 this.project.stageStyleManager.currentStyle.effects.warningShadow.toNewAlpha(CODE
CRITICAL…der/canvas2d/utilsRenderer/SyncAssociationRenderer.tsx29 const lineColor = project.stageStyleManager.currentStyle.effects.successShadow.toNewAlpha(0.6);CODE
CRITICAL…render/canvas2d/controllerRenderer/drawingRenderer.tsx75 this.project.controller.penStrokeDrawing.currentSegments.map((segment) => ({CODE
CRITICAL…trolService/controller/concrete/ControllerNodeEdit.tsx167 color: this.project.stageStyleManager.currentStyle.StageObjectBorder.toString(),CODE
CRITICAL…rvice/controller/concrete/ControllerNodeConnection.tsx244 this.project.stageStyleManager.currentStyle.effects.successShadow.clone(),CODE
CRITICAL…rvice/controller/concrete/ControllerNodeConnection.tsx258 this.project.stageStyleManager.currentStyle.effects.successShadow.clone(),CODE
CRITICAL…rvice/controller/concrete/ControllerNodeConnection.tsx506 this.project.stageStyleManager.currentStyle.StageObjectBorder.clone(),CODE
CRITICAL…rvice/controller/concrete/ControllerNodeConnection.tsx545 this.project.stageStyleManager.currentStyle.StageObjectBorder.clone(),CODE
CRITICAL…ce/controlService/controller/concrete/utilsControl.tsx177 outline: `solid 1px ${this.project.stageStyleManager.currentStyle.effects.successShadow.toNewAlpha(Settings.teCODE
CRITICAL…ce/controlService/controller/concrete/utilsControl.tsx225 backgroundColor: this.project.stageStyleManager.currentStyle.Background.toString(),CODE
CRITICAL…ce/controlService/controller/concrete/utilsControl.tsx226 color: this.project.stageStyleManager.currentStyle.StageObjectBorder.toString(),CODE
CRITICAL…ce/controlService/controller/concrete/utilsControl.tsx405 color: this.project.stageStyleManager.currentStyle.StageObjectBorder.toString(),CODE
CRITICAL…ce/controlService/controller/concrete/utilsControl.tsx406 outline: `solid ${2 * this.project.camera.currentScale * clientScale.x}px ${this.project.stageStyleManager.curCODE
CRITICAL…Service/effectEngine/concrete/NodeMoveShadowEffect.tsx90 project.stageStyleManager.currentStyle.effects.flash.toTransparent(),CODE
CRITICAL…ervice/effectEngine/concrete/RectangleRenderEffect.tsx50 // this.project.stageStyleManager.currentStyle.CollideBoxPreSelected.toSolid(),COMMENT
CRITICAL⚡…rvice/effectEngine/concrete/MouseTipFeedbackEffect.tsx75 project.stageStyleManager.currentStyle.effects.successShadow.toNewAlpha(1 - this.timeProgress.rate),CODE
CRITICAL⚡…rvice/effectEngine/concrete/MouseTipFeedbackEffect.tsx76 project.stageStyleManager.currentStyle.effects.successShadow.toTransparent(),CODE
CRITICAL⚡…rvice/effectEngine/concrete/MouseTipFeedbackEffect.tsx83 project.stageStyleManager.currentStyle.effects.successShadow.toNewAlpha(1 - this.timeProgress.rate),CODE
CRITICAL⚡…rvice/effectEngine/concrete/MouseTipFeedbackEffect.tsx84 project.stageStyleManager.currentStyle.effects.successShadow.toTransparent(),CODE
CRITICAL⚡…rvice/effectEngine/concrete/MouseTipFeedbackEffect.tsx91 project.stageStyleManager.currentStyle.effects.successShadow.toNewAlpha(1 - this.timeProgress.rate),CODE
CRITICAL⚡…rvice/effectEngine/concrete/MouseTipFeedbackEffect.tsx92 project.stageStyleManager.currentStyle.effects.successShadow.toTransparent(),CODE
CRITICAL⚡…rvice/effectEngine/concrete/MouseTipFeedbackEffect.tsx99 project.stageStyleManager.currentStyle.effects.successShadow.toNewAlpha(1 - this.timeProgress.rate),CODE
CRITICAL⚡…rvice/effectEngine/concrete/MouseTipFeedbackEffect.tsx100 project.stageStyleManager.currentStyle.effects.successShadow.toTransparent(),CODE
6 more matches not shown…
Hyper-Verbose Identifiers143 hits · 148 pts
SeverityFileLineSnippetContext
LOWapp/src/main.tsx261async function ensureStartupDraftAndWelcome() {CODE
LOWapp/src/types/node.tsx144 export function isMultiTargetUndirectedEdge(obj: StageObject): obj is MultiTargetUndirectedEdge {CODE
LOWapp/src/types/node.tsx164 export function isCubicCatmullRomSplineEdge(obj: StageObject): obj is CubicCatmullRomSplineEdge {CODE
LOWapp/src/core/OpenProjectRuntimeHost.test.ts230async function startDesktopRuntimeBridge(projectPath: string, host: OpenProjectRuntimeHost) {CODE
LOWapp/src/core/Tab.tsx285export function useComponentTabResourceTab() {CODE
LOWapp/src/core/OpenProjectRuntimeHost.ts145export function ensureOpenProjectRuntimeBridgeListener(): Promise<void> {CODE
LOWapp/src/core/OpenProjectRuntimeHost.ts180export function registerOpenProjectRuntimeHost(project: Project): OpenProjectRuntimeHostRegistration {CODE
LOWapp/src/core/loadAllServices.tsx86export function loadAllServicesBeforeInit(project: Project): void {CODE
LOWapp/src/core/ProjectOwnership.ts191async function releaseProjectOwnershipWithRetry(ownership: ProjectOwnershipLease): Promise<void> {CODE
LOWapp/src/core/ProjectOwnership.ts214async function reserveProjectOwnershipForSave(projectPath: string): Promise<ProjectOwnershipSaveReservation> {CODE
LOWapp/src/core/subWindowOpen.ts27export function resolveSubWindowOpenOptions(windowId: SubWindowId): Pick<ComponentTabOptions, "layout" | "splitEdge"> {CODE
LOWapp/src/core/render/svg/SvgUtils.tsx122 export function multiLineTextFromLeftTopWithWrap(CODE
LOW…e/render/canvas2d/utilsRenderer/globalMaskRenderer.tsx91 function renderTopLeftQuadrantMask(project: Project, mouseLocation: { x: number; y: number }, reverse = false) {CODE
LOW…der/canvas2d/utilsRenderer/SyncAssociationRenderer.tsx47 export function renderAllSelectedSyncLines(project: Project): void {CODE
LOWapp/src/core/algorithm/random.tsx30 export function randomVectorOnNormalCircle(): Vector {CODE
LOWapp/src/core/algorithm/graphStructureAnalysis.tsx190function countUndirectedSimpleEdges(adj: Map<string, Set<string>>): number {CODE
LOWapp/src/core/stage/stageObject/association/ArcEdge.tsx130function circleRectangleIntersections(center: Vector, radius: number, rect: Rectangle): Vector[] {CODE
LOW…e/stage/stageManager/concreteMethods/LayoutManager.tsx465// function arrangeRectangleInCompactByDivide(rectangles: Rectangle[], margin = 20): Rectangle[] {COMMENT
LOW…e/stage/stageManager/concreteMethods/LayoutManager.tsx486// function arrangeRectangleInCompactByDivideHelper(rectangles: Rectangle[], margin = 20): Rectangle[] {COMMENT
LOW…e/stage/stageManager/concreteMethods/LayoutManager.tsx552function arrangeRectangleInCompactByBranch(rectangles: Rectangle[], margin = 20): Rectangle[] {CODE
LOW…e/stage/stageManager/concreteMethods/LayoutManager.tsx626 function generatePossiblePositions(rect: Rectangle, placedRects: Rectangle[], margin: number): Vector[] {CODE
LOW…e/stage/stageManager/basicMethods/PenStrokeMethods.tsx16 // function getAllRoundedStickEntities(project: Project, entities: Entity[]): Entity[] {COMMENT
LOW…e/stage/stageManager/basicMethods/PenStrokeMethods.tsx92 function getConnectableEntitiesByPenStroke(project: Project, penStroke: PenStroke): ConnectableEntity[] {CODE
LOW…e/stage/stageManager/basicMethods/PenStrokeMethods.tsx102 function isConnectableEntityCollideWithPenStroke(entity: ConnectableEntity, penStroke: PenStroke): boolean {CODE
LOWapp/src/core/service/Themes.tsx43 export function getExtensionIdsWithThemes(): string[] {CODE
LOWapp/src/core/service/Themes.tsx48 export function getExtensionThemesByExtensionId(extensionId: string): Theme[] {CODE
LOWapp/src/core/service/QuickSettingsManager.tsx152 export function getAllAvailableBooleanSettings(): Array<keyof typeof settingsSchema.shape> {CODE
LOWapp/src/core/service/ProjectToolSettingsSchema.ts6export function createProjectToolSettingSchemas(defaultFontFamily: string) {CODE
LOWapp/src/core/service/GlobalMenu.tsx139function resolveCollaborationProject(): Project | undefined {CODE
LOWapp/src/core/service/GlobalMenu.tsx506export async function createFileAtCurrentProjectDir(activeProject: Project | undefined, refresh: () => Promise<void>) {CODE
LOW…ntrolService/controller/concrete/utilsControlTools.tsx34export async function autoChangeTextNodeToReferenceBlock(project: Project, textNode: TextNode) {CODE
LOW…ntrolService/controller/concrete/utilsControlTools.tsx117export async function autoChangeTextNodeToLatexNode(project: Project, textNode: TextNode) {CODE
LOW…lService/keyboardOnlyEngine/keyboardOnlyTreeEngine.tsx837function extractNumberAndReturnNext(str: string): string {CODE
LOW…rvice/controlService/shortcutKeysEngine/KeyBindsUI.tsx374 export async function resetAllKeyBindsEnabledState() {CODE
LOW…rvice/controlService/shortcutKeysEngine/KeyBindsUI.tsx485 function shouldProcessKeyboardEvent() {CODE
LOW…controlService/shortcutKeysEngine/ShortcutKeyFixer.tsx66export async function checkAndFixShortcutStorage(): Promise<void> {CODE
LOW…rolService/shortcutKeysEngine/shortcutKeysRegister.tsx358function showDraftCannotExportDeepLinkDialog() {CODE
LOW…rolService/shortcutKeysEngine/shortcutKeysRegister.tsx4512function getOneSelectedTextNodeWhenExportingPlainText(activeProject: Project | undefined): TextNode | null {CODE
LOW⚡app/src/core/service/feedbackService/SoundService.tsx58 export function mouseClickSwitchButtonOff() {CODE
LOW⚡app/src/core/service/feedbackService/SoundService.tsx63 export function packEntityToSectionSoundFile() {CODE
LOW⚡app/src/core/service/feedbackService/SoundService.tsx70 export function treeGenerateDeepSoundFile() {CODE
LOW⚡app/src/core/service/feedbackService/SoundService.tsx77 export function treeGenerateBroadSoundFile() {CODE
LOWapp/src/core/service/feedbackService/SoundService.tsx105 export function associationAdjustSoundFile() {CODE
LOWapp/src/core/service/feedbackService/ColorManager.tsx79 export async function removeUserEntityFillColor(color: Color) {CODE
LOWapp/src/core/service/feedbackService/ColorManager.tsx104 export async function organizeUserEntityFillColors() {CODE
LOW…ore/service/dataGenerateService/generateScreenshot.tsx208 export async function generateFromActiveProject(CODE
LOWapp/src/core/service/dataFileService/DeepLinkHandler.ts54export function createCurrentFileDeepLink(project: Project) {CODE
LOWapp/src/core/service/dataFileService/DeepLinkHandler.ts58export function createCurrentViewDeepLink(project: Project) {CODE
LOWapp/src/core/service/dataFileService/DeepLinkHandler.ts69export function createSelectedEntityDeepLink(project: Project) {CODE
LOW…src/core/service/dataFileService/RecentFileManager.tsx118 export async function validAndRefreshRecentFiles() {CODE
LOW…src/core/service/dataFileService/StartFilesManager.tsx99 export async function validateAndRefreshStartFiles() {CODE
LOW…src/core/service/dataFileService/StartFilesManager.tsx99 export async function validateAndRefreshStartFiles() {CODE
LOW…/core/service/dataFileService/ReferenceFileScanner.tsx58 export async function ensureReferenceFolderExists(projectPath: string): Promise<string> {CODE
LOW…/core/service/dataFileService/ReferenceFileScanner.tsx108 export async function findFileInReferenceFolder(projectPath: string, fileName: string): Promise<string | null> {CODE
LOW…src/core/service/dataManageService/imageNodeFactory.ts19export function calculateImageDisplaySize(width: number, height: number, maxDisplaySize: number) {CODE
LOWapp/src/core/service/dataManageService/imageUtils.tsx39export async function prepareImageBlobForImport(blob: Blob): Promise<PreparedImageBlob> {CODE
LOW…/core/service/dataManageService/textNodeSmartTools.tsx341 export function removeFirstCharFromSelectedTextNodes(project: Project) {CODE
LOW…/core/service/dataManageService/textNodeSmartTools.tsx400 export function removeLastCharFromSelectedTextNodes(project: Project) {CODE
LOW…/core/service/dataManageService/textNodeSmartTools.tsx549 export async function changeTextNodeToReferenceBlock(project: Project) {CODE
LOW…/core/service/dataManageService/textNodeSmartTools.tsx634 export async function generateTreeBySelectedTextNodeTextWithAI(project: Project) {CODE
83 more matches not shown…
Over-Commented Block23 hits · 23 pts
SeverityFileLineSnippetContext
LOWapp/src/core/render/canvas2d/renderer.tsx381 }COMMENT
LOWapp/src/core/render/canvas2d/renderer.tsx401 // 1,COMMENT
LOW…core/render/canvas2d/entityRenderer/EntityRenderer.tsx341 private renderPenStroke(penStroke: PenStroke) {COMMENT
LOW…er/canvas2d/entityRenderer/section/SectionRenderer.tsx221COMMENT
LOW…/canvas2d/entityRenderer/textNode/TextNodeRenderer.tsx141 // if (this.project.stageManager.TagOptions.getTagUUIDs().includes(node.uuid)) {COMMENT
LOW…ore/render/canvas2d/utilsRenderer/WorldRenderUtils.tsx41 this.project.canvas.ctx.lineJoin = "bevel";COMMENT
LOWapp/src/core/stage/stageManager/StageHistoryManager.tsx221 this.initialStage = serialize(project.stage);COMMENT
LOW…e/stage/stageManager/concreteMethods/LayoutManager.tsx461COMMENT
LOW…e/stage/stageManager/concreteMethods/LayoutManager.tsx481// for (let i = 0; i < rectangles.length; i++) {COMMENT
LOW…e/stage/stageManager/concreteMethods/LayoutManager.tsx501// ret.push(COMMENT
LOW…e/stage/stageManager/basicMethods/PenStrokeMethods.tsx21 // return;COMMENT
LOW…ore/stage/stageManager/basicMethods/SectionMethods.tsx241 }COMMENT
LOWapp/src/core/service/Settings.tsx941console.log("post store.init");COMMENT
LOWapp/src/core/service/controlService/MouseLocation.tsx21 // TODO: 优化,给每个 Controller 加一个 pointerMoveOutWindowForcedShutdown 方法COMMENT
LOW…ice/controller/concrete/ControllerPenStrokeControl.tsx61 };COMMENT
LOW…ice/controller/concrete/ControllerPenStrokeDrawing.tsx101 // 用户正在绘制时不断刷新防抖计时器,松开笔静止后才触发 OCRCOMMENT
LOW…olService/controller/concrete/ControllerCamera/mac.tsx21 const distance = Math.abs(event.deltaY);COMMENT
LOWutils/lines.sh1#!/usr/bin/env bashCOMMENT
LOWpackages/shapes/src/Curve.ts41 // return this.start.multiply(-3 * Math.pow(1 - t, 2)).add(COMMENT
LOWpackages/shapes/src/Curve.ts61 // )COMMENT
LOW.github/workflows/publish.yml441 # runs-on: ubuntu-22.04COMMENT
LOW.github/workflows/publish.yml461 # # base_image: https://dietpi.com/downloads/images/DietPi_RPi-ARMv7-Bookworm.img.xzCOMMENT
LOW.github/workflows/publish.yml481 # commands: |COMMENT
Decorative Section Separators6 hits · 18 pts
SeverityFileLineSnippetContext
MEDIUMapp/src/core/stage/stageObject/entity/LatexNode.tsx46 // ── 运行时状态(不序列化)──────────────────────────────────COMMENT
MEDIUM…tageManager/concreteMethods/SectionCollisionSolver.tsx54 // ─────────────────────────────────────────────COMMENT
MEDIUM…tageManager/concreteMethods/SectionCollisionSolver.tsx56 // ─────────────────────────────────────────────COMMENT
MEDIUM…tageManager/concreteMethods/StageEntityMoveManager.tsx20 // ─────── 持续移动物理引擎(复用 Camera 同款物理模型)───────COMMENT
MEDIUM…tageManager/concreteMethods/StageEntityMoveManager.tsx92 // ─────────────────────────────────────────────────────────────COMMENT
MEDIUM…ntrolService/keyboardOnlyEngine/selectChangeEngine.tsx488 // ── Legacy public API (used by external callers) ──────────────────────────COMMENT