AI Slop Code Risk Monitor

TriliumNext/Trilium

SlopCodeMonitor badge for TriliumNext/Trilium Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Build your personal knowledge base with Trilium Notes

1.3 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for TriliumNext/Trilium, a TypeScript project with 38,630 GitHub stars. SynthScan examined 1,160,312 lines of code across 5139 source files, recording 1075 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 1.3 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

1.3
Adjusted Signal
1.3
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
38.6K
Stars
TypeScript
Language
1.2M
Lines of Code
5.1K
Files
1.1K
Pattern Hits
2026-10-31
Scan Date
0.01
HC Hit Rate

Risk Review · Payload v1

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

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 3.0/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 3.0/100 · LOW

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

Agent Over-Engineering Ratio 2.7/100 · LOW

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

PR Review Velocity Impact 6.2/100 · LOW

Which changes need focused human review? 1075 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 35HIGH 0MEDIUM 48LOW 992

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 1075 distinct pattern matches across 12 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 Identifiers531 hits · 542 pts
SeverityFileLineSnippetContext
LOWscripts/update-flake-electron.ts81export function readWantedElectronVersion(packageJson: string): string {CODE
LOWscripts/update-flake-electron.ts94export function readPinnedElectronVersion(flake: string): string {CODE
LOWscripts/update-electron-locales.ts133export function readEndOfCentralDirectory(tail: Uint8Array): { offset: number; size: number; } {CODE
LOWscripts/update-electron-locales.ts150export function readCentralDirectoryNames(centralDirectory: Uint8Array): string[] {CODE
LOW⚡packages/codemirror/src/extensions/custom_tab.ts54function handleSingleLineSelection(state: EditorState, dispatch: (transaction: Transaction) => void) {CODE
LOWpackages/pdfjs-viewer/src/annotations.ts106export function setupAnnotationLiveUpdates() {CODE
LOWpackages/pdfjs-viewer/src/annotations.ts132async function extractAndSendAnnotations() {CODE
LOWpackages/pdfjs-viewer/src/attachments.ts40async function extractAndSendAttachments() {CODE
LOWpackages/pdfjs-viewer/src/editing.ts31export function setAnnotationEditorUIManager(uiManager: AnnotationEditorUIManagerLike | null) {CODE
LOWpackages/pdfjs-viewer/src/editing.ts35export function getAnnotationEditorUIManager(): AnnotationEditorUIManagerLike | null {CODE
LOWpackages/pdfjs-viewer/src/editing.ts50export function isAnnotationEditingActive(uiManager: AnnotationEditorUIManagerLike | null = getAnnotationEditorUIManagerCODE
LOWpackages/pdfjs-viewer/src/editing.ts62export function commitPendingAnnotationEdits(isPointerDown: boolean, uiManager: AnnotationEditorUIManagerLike | null = gCODE
LOWpackages/pdfjs-viewer/src/editing.ts96export function suppressViewerUnloadPrompt(target: EventTarget = window) {CODE
LOWpackages/pdfjs-viewer/src/toc.ts127export function setupActiveHeadingTracking() {CODE
LOWpackages/pdfjs-viewer/src/bootstrap.ts94export function configurePdfViewerOptions() {CODE
LOWpackages/commons/src/lib/markdown_renderer.ts13function stripTaskMarkerFromTokens(tokens: Token[] | undefined, stripPattern: RegExp): void {CODE
LOWpackages/commons/src/lib/markdown_renderer.ts220function getNormalizedMimeFromMarkdownLanguage(language: string | undefined): string {CODE
LOWpackages/commons/src/lib/markdown_renderer.ts265function stripDuplicateTitleHeading(CODE
LOWpackages/commons/src/lib/marked_extensions.ts63export function createTransclusionExtension(options: TransclusionOptions = {}): TokenizerAndRendererExtension {CODE
LOWpackages/commons/src/lib/marked_extensions.ts195export function createLiteralTildeExtension(): TokenizerAndRendererExtension {CODE
LOWpackages/commons/src/lib/attachment_roles.ts136export function isDeduplicatedAttachmentRole(role: string | undefined | null): boolean {CODE
LOWpackages/commons/src/lib/favicon_contrast.ts80export function summarizeFaviconVisibility(pixels: Uint8ClampedArray): FaviconVisibility {CODE
LOWpackages/commons/src/lib/mime_type.ts48export function normalizeMimeTypeForCKEditor(mimeType: string) {CODE
LOWpackages/commons/src/lib/mime_type.ts288export function getMimeTypeFromMarkdownName(mdLanguageCode: string) {CODE
LOWpackages/commons/src/lib/mime_type.ts315export function getMarkdownNameFromCKEditorLanguage(ckEditorLanguage: string) {CODE
LOWpackages/commons/src/lib/mime_type.ts340export function getMimeTypeFromCKEditorLanguage(ckEditorLanguage: string) {CODE
LOWpackages/commons/src/lib/test-utils.ts131export function findMalformedPluralGroups(CODE
LOWpackages/commons/src/lib/board_columns.ts40export function boardGroupByFromColumnsKey(key: string): string | undefined {CODE
LOWpackages/commons/src/lib/filesystem_name.ts43export function tidyFilesystemFriendlyName(value: string): string {CODE
LOWpackages/commons/src/lib/transcript.ts81export function getTranscriptionResources(modelId: string | null | undefined, identifySpeakers: boolean) {CODE
LOW…ommons/src/lib/promoted_attribute_definition_parser.ts137export function extractAttributeDefinitionTypeAndName(CODE
LOW…ges/commons/src/lib/spreadsheet/render_to_html.spec.ts1811 function workbookWithFloatingDrawings(CODE
LOWpackages/commons/src/lib/spreadsheet/render_to_csv.ts71export async function renderSpreadsheetToCsvZip(jsonContent: string): Promise<Uint8Array> {CODE
LOWpackages/trilium-core/src/test/request_provider.ts29export function installGlobalFetchAsApiTransport(): void {CODE
LOWpackages/trilium-core/src/becca/becca_loader.ts250function backfillVirtualTargetRelations() {CODE
LOWpackages/trilium-core/src/routes/api/login.ts36function logoutFromProtectedSession() {CODE
LOWpackages/trilium-core/src/routes/api/notes.ts418function eraseUnusedAttachmentsNow() {CODE
LOWpackages/trilium-core/src/routes/api/recent_changes.ts120function getRecentlyChangedNoteIds(req: Request<{ ancestorNoteId: string }, { limit?: string }>) {CODE
LOWpackages/trilium-core/src/routes/api/revisions.ts121function updateRevisionDescription(req: Request<{ revisionId: string }>) {CODE
LOWpackages/trilium-core/src/routes/api/revisions.ts162function parseEraseExcessRevisionsOptions(body: unknown): EraseExcessRevisionsOptions | string {CODE
LOWpackages/trilium-core/src/routes/api/attributes.ts11function getEffectiveNoteAttributes(req: Request<{ noteId: string }>) {CODE
LOWpackages/trilium-core/src/routes/api/special_notes.ts110function createOrUpdateScriptLauncherFromApi(req: Request) {CODE
LOWpackages/trilium-core/src/routes/api/note_map.ts263function updateDescendantCountMapForSearch(noteIdToDescendantCountMap: Record<string, number>, relationships: { parentNoCODE
LOWpackages/trilium-core/src/routes/api/files.ts129async function getAttachmentOfficePreview(req: Request<{ attachmentId: string }>) {CODE
LOWpackages/trilium-core/src/routes/api/tree.ts9function getNotesAndBranchesAndAttributes(_noteIds: string[] | Set<string>) {CODE
LOWpackages/trilium-core/src/services/handlers.spec.ts274 function buildTargetAndSource(relationName: string, sourceId: string) {CODE
LOWpackages/trilium-core/src/services/blob.ts154function encryptTextRepresentation(textRepresentation: string, isProtected: boolean): string {CODE
LOWpackages/trilium-core/src/services/blob.ts182function decryptTextRepresentation(textRepresentation: string | null | undefined, isProtected: boolean): string {CODE
LOWpackages/trilium-core/src/services/content_hash.ts30function getEntityChangesFingerprint() {CODE
LOWpackages/trilium-core/src/services/script.ts147function getScriptBundleForFrontend(note: BNote, script?: string, params?: ScriptParams) {CODE
LOWpackages/trilium-core/src/services/erase.ts192function eraseUnusedAttachmentsNow() {CODE
LOWpackages/trilium-core/src/services/erase.ts196function eraseScheduledAttachments(eraseUnusedAttachmentsAfterSeconds: number | null = null) {CODE
LOWpackages/trilium-core/src/services/scheduler.ts95function checkProtectedSessionExpiration() {CODE
LOWpackages/trilium-core/src/services/setup_auth.ts72export function isSetupSecondFactorRequired(): boolean {CODE
LOWpackages/trilium-core/src/services/keyboard_actions.ts9function getDefaultKeyboardActions() {CODE
LOWpackages/trilium-core/src/services/i18n.ts67export async function reconcileLanguageAfterDbInit() {CODE
LOW…/trilium-core/src/services/hidden_subtree_templates.ts4export default function buildHiddenSubtreeTemplates() {CODE
LOWpackages/trilium-core/src/services/image_compression.ts96export function resolveCompressionRequest(options: ImageCompressionOptions = {}): ImageCompressionRequest {CODE
LOWpackages/trilium-core/src/services/image_compression.ts207export function automaticCompressionRequest(): ImageCompressionRequest {CODE
LOWpackages/trilium-core/src/services/virtual_notes.ts109export function registerVirtualNoteProvider(provider: VirtualNoteProvider) {CODE
471 more matches not shown…
Fake / Example Data342 hits · 352 pts
SeverityFileLineSnippetContext
LOW…keditor5-plugin-development/references/architecture.md135schema.register( 'placeholder', { inheritAllFrom: '$inlineObject', allowAttributes: [ 'name' ] } );CODE
LOW⚡…lls/ckeditor5-plugin-development/references/widgets.md28Model: `<placeholder name="time">` inside text. View/data: `<span class="placeholder">{time}</span>`.CODE
LOW⚡…lls/ckeditor5-plugin-development/references/widgets.md38 this.editor.commands.add( 'placeholder', new PlaceholderCommand( this.editor ) );CODE
LOW⚡…lls/ckeditor5-plugin-development/references/widgets.md42 viewToModelPositionOutsideModelElement( this.editor.model, v => v.hasClass( 'placeholder' ) ) );CODE
LOW⚡…lls/ckeditor5-plugin-development/references/widgets.md46 this.editor.model.schema.register( 'placeholder', {CODE
LOW⚡…lls/ckeditor5-plugin-development/references/widgets.md54 view: { name: 'span', classes: [ 'placeholder' ] },CODE
LOW⚡…lls/ckeditor5-plugin-development/references/widgets.md56 writer.createElement( 'placeholder', { name: viewElement.getChild( 0 ).data.slice( 1, -1 ) } )CODE
LOW⚡…lls/ckeditor5-plugin-development/references/widgets.md59 model: 'placeholder',CODE
LOW⚡…lls/ckeditor5-plugin-development/references/widgets.md63 model: 'placeholder',CODE
LOW⚡…lls/ckeditor5-plugin-development/references/widgets.md67 const span = writer.createContainerElement( 'span', { class: 'placeholder' } );CODE
LOW…lls/ckeditor5-plugin-development/references/widgets.md82 const ph = writer.createElement( 'placeholder', { ...Object.fromEntries( selection.getAttributes() ), name: value } )CODE
LOW…lls/ckeditor5-plugin-development/references/widgets.md88 this.isEnabled = this.editor.model.schema.checkChild( sel.focus.parent, 'placeholder' );CODE
LOW…ls/ckeditor5-plugin-development/references/commands.md54Other typical enablement checks: `schema.checkChild( selection.focus.parent, 'placeholder' )`CODE
LOW…5-plugin-development/references/ui-and-localization.md27 placeholder: bind.to( 'placeholder' ),CODE
LOW…/ckeditor5-plugin-development/references/conversion.md89 model: 'placeholder',CODE
LOW…/ckeditor5-plugin-development/references/conversion.md91 const span = writer.createContainerElement( 'span', { class: 'placeholder' } );CODE
LOW…/ckeditor5-plugin-development/references/conversion.md179 viewToModelPositionOutsideModelElement( editor.model, v => v.hasClass( 'placeholder' ) ) );CODE
LOW⚡.claude/skills/ckeditor5-testing/references/patterns.md77 expect( model.schema.isRegistered( 'placeholder' ) ).toBe( true );CODE
LOW⚡.claude/skills/ckeditor5-testing/references/patterns.md78 expect( model.schema.isInline( 'placeholder' ) ).toBe( true );CODE
LOW⚡.claude/skills/ckeditor5-testing/references/patterns.md79 expect( model.schema.checkChild( [ '$root', '$block' ], 'placeholder' ) ).toBe( true );CODE
LOW… Basics/Preact/Built-in components/Widget showcase.jsx17 const lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam accumsan eu odio non gravida. PellenCODE
LOW… Basics/Preact/Built-in components/Widget showcase.jsx17 const lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam accumsan eu odio non gravida. PellenCODE
LOWpackages/pdfjs-viewer/src/annotations.spec.ts58 const withAuthor = { ...SAMPLE_HIGHLIGHT, titleObj: { str: "John Doe", dir: "ltr" } };CODE
LOWpackages/pdfjs-viewer/src/annotations.spec.ts59 expect(processAnnotation(withAuthor, 1)!.author).toBe("John Doe");CODE
LOW⚡packages/turndown-plugin-gfm/test/gfm.spec.ts15 expect(turndown.turndown("<strike>Lorem ipsum</strike>")).toBe("~~Lorem ipsum~~");CODE
LOW⚡packages/turndown-plugin-gfm/test/gfm.spec.ts19 expect(turndown.turndown("<s>Lorem ipsum</s>")).toBe("~~Lorem ipsum~~");CODE
LOW⚡packages/turndown-plugin-gfm/test/gfm.spec.ts23 expect(turndown.turndown("<del>Lorem ipsum</del>")).toBe("~~Lorem ipsum~~");CODE
LOWpackages/trilium-core/src/becca/similarity.spec.ts44 <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer eget purus et eros faucibus dignissiCODE
LOWpackages/trilium-core/src/becca/similarity.spec.ts44 <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer eget purus et eros faucibus dignissiCODE
LOWpackages/trilium-core/src/becca/similarity.spec.ts322 "#broken": "placeholder"CODE
LOWpackages/trilium-core/src/becca/similarity.spec.ts336 brokenAttr.value = "placeholder";CODE
LOW⚡…ges/trilium-core/src/services/utils/strip_tags.spec.ts7 expect(stripTags(`<a href="">lorem <strong>ipsum</strong></a>`)).toBe("lorem ipsum");CODE
LOW⚡…ges/trilium-core/src/services/utils/strip_tags.spec.ts9 expect(stripTags("<!-- lorem -- ipsum -- --> dolor sit amet")).toBe(" dolor sit amet");CODE
LOW⚡…ges/trilium-core/src/services/utils/strip_tags.spec.ts10 expect(stripTags("<!-- <strong>lorem ipsum</strong> --> dolor sit")).toBe(" dolor sit");CODE
LOW⚡…ges/trilium-core/src/services/utils/strip_tags.spec.ts16 expect(stripTags(`<article attr="foo 'bar'">lorem</article> ipsum`)).toBe("lorem ipsum");CODE
LOW⚡…ges/trilium-core/src/services/utils/strip_tags.spec.ts24 expect(stripTags("lorem ipsum < a> < div>")).toBe("lorem ipsum < a> < div>");CODE
LOW…ges/trilium-core/src/services/utils/strip_tags.spec.ts43 expect(stripTags("<div<>>lorem ipsum</div>", [ "div" ])).toBe("<div>lorem ipsum</div>");CODE
LOW…ges/trilium-core/src/services/utils/strip_tags.spec.ts44 expect(stripTags(`<a href="<script>">lorem ipsum</a>`, [ "a" ])).toBe(`<a href="script">lorem ipsum</a>`);CODE
LOW…r5/src/plugins/multicolumn/multicolumn_editing.spec.ts89 describe("placeholder", () => {CODE
LOW…keditor5/src/plugins/ai_assistant/ai_assistant_form.ts468 input.bind("placeholder").to(this, "phase", (phase) => (phase === "streaming"CODE
LOWapps/web-clipper/entrypoints/popup/popup.spec.tsx32 labels: { pageAuthor: "Jane Doe", publishedDate: "2024-05-01", modifiedDate: "2024-06-12" }CODE
LOWapps/web-clipper/entrypoints/popup/popup.spec.tsx514 expect(description()?.getAttribute("placeholder")).toBe("Add a description");CODE
LOWapps/web-clipper/entrypoints/popup/popup.spec.tsx595 expect(author()?.value).toBe("Jane Doe");CODE
LOWapps/web-clipper/entrypoints/popup/popup.spec.tsx597 expect(author()?.getAttribute("placeholder")).toBe("Add an author");CODE
LOWapps/web-clipper/entrypoints/popup/popup.spec.tsx736 expect(note()?.getAttribute("placeholder")).toBe("Add a note about this page");CODE
LOW…ps/web-clipper/entrypoints/readable-page/index.spec.ts48 pageAuthor: "Jane Doe",CODE
LOW…rver/src/services/ocr/processors/pdf_processor.spec.ts75 return `${marker} `.padEnd(300, "lorem ipsum dolor sit amet ");CODE
LOW…rver/src/services/ocr/processors/pdf_processor.spec.ts75 return `${marker} `.padEnd(300, "lorem ipsum dolor sit amet ");CODE
LOW…m Demo/Scripting examples/Render note with JSX/JSX.jsx13 const lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam accumsan eu odio non gravida. PellenCODE
LOW…m Demo/Scripting examples/Render note with JSX/JSX.jsx13 const lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam accumsan eu odio non gravida. PellenCODE
LOWapps/client/src/translations/ug/translation.json203 "placeholder": "ھەر بىر قۇرغا بىر HTML بەلگىسىدىن كىرگۈزۈڭ",CODE
LOWapps/client/src/translations/ug/translation.json469 "placeholder": "بەلگە ۋە مۇناسىۋەتلەرنى بۇ يەرگە كىرگۈزۈڭ"CODE
LOWapps/client/src/translations/ug/translation.json808 "placeholder": "خاتىرىنى نامى بويىچە ئىزدەش",CODE
LOWapps/client/src/translations/ug/translation.json846 "placeholder": "خاتىرىنى نامى بويىچە ئىزدەش",CODE
LOWapps/client/src/translations/ug/translation.json852 "placeholder": "پۈتۈن تېكىستلىق ئاچقۇچلۇق سۆزلەر، #بەلگە = قىممەت...",CODE
LOWapps/client/src/translations/ug/translation.json884 "placeholder": "كود خاتىرىسىنىڭ مەزمۇنىنى بۇ يەرگە يېزىڭ..."CODE
LOWapps/client/src/translations/ug/translation.json887 "placeholder": "خاتىرىڭىزنىڭ مەزمۇنىنى بۇ يەرگە يېزىڭ...",CODE
LOWapps/client/src/translations/pl/translation.json422 "placeholder": "Wprowadź tagi HTML, jeden w wierszu",CODE
LOWapps/client/src/translations/pl/translation.json507 "placeholder": "wyszukaj notatkę po nazwie",CODE
LOWapps/client/src/translations/pl/translation.json774 "placeholder": "Wpisz tutaj etykiety i relacje"CODE
282 more matches not shown…
Hallucination Indicators35 hits · 350 pts
SeverityFileLineSnippetContext
CRITICALpackages/ckeditor5/src/hosted_balloon.ts45 const shownAt = editor.editing.view.document.selection.getFirstRange();CODE
CRITICAL…ges/ckeditor5/src/plugins/mobile_toolbar_items.spec.ts311 const button = editor.ui.view.toolbar.items.get(0) as unknown as {CODE
CRITICAL…ges/ckeditor5/src/plugins/mobile_toolbar_items.spec.ts324 expect((editor.ui.view.toolbar.items.get(0) as ButtonView).isEnabled).toBe(false);CODE
CRITICAL…ges/ckeditor5/src/plugins/mobile_toolbar_items.spec.ts609 const item = editor.ui.view.toolbar.items.get(index);CODE
CRITICALpackages/ckeditor5/src/plugins/color_menu.spec.ts166 const item = editor.ui.view.toolbar.items.get(0);CODE
CRITICALpackages/ckeditor5/src/plugins/indent_block_shortcut.ts30 let el: ModelPosition | ModelElement | ModelDocumentFragment | null = this.editor.model.document.selection.getFiCODE
CRITICAL…/ckeditor5/src/plugins/table_toolbar_dropdowns.spec.ts164 const dropdown = editor.ui.view.toolbar.items.get(0) as DropdownView;CODE
CRITICAL…/ckeditor5/src/plugins/table_toolbar_dropdowns.spec.ts194 return editor.ui.view.toolbar.items.get(TOOLBAR.indexOf(name)) as DropdownView;CODE
CRITICAL…/ckeditor5/src/plugins/text_formatting_toolbar.spec.ts191 const item = editor.ui.view.toolbar.items.get(index);CODE
CRITICALpackages/ckeditor5/src/plugins/list_item_alignment.ts80 for (const change of this.editor.model.document.differ.getChanges()) {CODE
CRITICALpackages/ckeditor5/src/plugins/table_scroll.ts177 const domFigure = this.editor.editing.view.domConverter.mapViewToDom(viewFigure);CODE
CRITICAL…ditor5/src/plugins/format_painter/format_painter_ui.ts141 for (const root of this.editor.editing.view.domRoots.values()) {CODE
CRITICAL…keditor5/src/plugins/link_embed/link_embed_commands.ts183 const href = this.editor.model.document.selection.getAttribute('linkHref');CODE
CRITICAL…ditor5/src/plugins/link_embed/link_embed_autodetect.ts191 const position = this.editor.model.document.selection.getFirstPosition();CODE
CRITICAL…tor5/src/plugins/sort_selection/sort_selection.spec.ts302 const dropdown = editor.ui.view.toolbar.items.get(0) as DropdownView;CODE
CRITICAL…s/ckeditor5/src/plugins/content_embed/content_embed.ts799 for ( const change of this.editor.model.document.differ.getChanges() ) {CODE
CRITICAL…itor5/src/plugins/ai_assistant/ai_assistant_ui.spec.ts724 const item = menuEditor.ui.view.toolbar.items.get(0);CODE
CRITICAL…s/ckeditor5/src/plugins/collapsible/edge_cases.spec.ts25 const viewPosition = editor.editing.view.document.selection.getFirstPosition();CODE
CRITICAL…editor5/src/plugins/collapsible/collapsible_editing.ts452 const dom = view ? this.editor.editing.view.domConverter.viewToDom(view) : null;CODE
CRITICAL…editor5/src/plugins/collapsible/collapsible_editing.ts496 const view = this.editor.editing.view.domConverter.mapDomToView(detailsDom);CODE
CRITICAL…editor5/src/plugins/collapsible/collapsible_editing.ts1397 const caretSummary = this.editor.model.document.selection.getFirstPosition()?.findAncestor("summary") ?? null;CODE
CRITICAL…editor5/src/plugins/collapsible/collapsible_editing.ts1503 const changes = this.editor.model.document.differ.getChanges();CODE
CRITICAL…editor5/src/plugins/collapsible/collapsible_editing.ts1535 const changes = this.editor.model.document.differ.getChanges();CODE
CRITICAL…editor5/src/plugins/collapsible/collapsible_editing.ts1583 const changes = this.editor.model.document.differ.getChanges();CODE
CRITICAL…ckeditor5/src/plugins/collapsible/block_drag_handle.ts137 const view = this.opts.editor.editing.view.domConverter.mapDomToView(el);CODE
CRITICAL…ckeditor5/src/plugins/collapsible/block_drag_handle.ts138 let model = view ? this.opts.editor.editing.mapper.toModelElement(view as any) : null;CODE
CRITICAL…ckeditor5/src/plugins/collapsible/block_drag_handle.ts160 const view = this.opts.editor.editing.view.domConverter.mapDomToView(child);CODE
CRITICAL…ckeditor5/src/plugins/collapsible/block_drag_handle.ts161 const model = view ? this.opts.editor.editing.mapper.toModelElement(view as any) : null;CODE
CRITICAL…ckeditor5/src/plugins/collapsible/block_drag_handle.ts173 const view = this.opts.editor.editing.mapper.toViewElement(model);CODE
CRITICAL…ckeditor5/src/plugins/collapsible/block_drag_handle.ts174 const dom = view ? this.opts.editor.editing.view.domConverter.viewToDom(view) : null;CODE
CRITICAL…es/ckeditor5/src/plugins/mention/trilium_mention_ui.ts360 range = this.editor.model.document.selection.getFirstRange() ?? range;CODE
CRITICAL…ckeditor5/src/plugins/containers/container_keyboard.ts73 const position = this.editor.model.document.selection.getFirstPosition();CODE
CRITICAL…s/todo_list_multistate/todo_list_multistate_editing.ts474 const position = this.editor.model.document.selection.getFirstPosition();CODE
CRITICAL…s/todo_list_multistate/todo_list_multistate_editing.ts703 const position = this.editor.model.document.selection.getFirstPosition();CODE
CRITICALapps/desktop/src/services/transcription/capture.spec.ts106 expect(processor.port.postMessage.mock.calls.at(-1)?.[0]).toBe("flushed");CODE
Over-Commented Block103 hits · 103 pts
SeverityFileLineSnippetContext
LOWdocker-compose.yml1# Running `docker-compose up` will create/use the "trilium-data" directory next to this fileCOMMENT
LOWscripts/build-utils.ts81 // integration-test-only code paths in apps/server. TheseCOMMENT
LOWscripts/build-utils.ts121 // renderer, so it must be omitted for preload-style bundles.COMMENT
LOWscripts/build-portable-better-sqlite3.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/build-portable-better-sqlite3.sh21# decides which distributions we support:COMMENT
LOWscripts/translation/create-po-file.sh1#!/usr/bin/env bashCOMMENT
LOW…s/codemirror/src/extensions/trilium_log_highlighter.ts41// After `<ts> `: an optional `Slow ` marker (the server prepends it when the request took >= 10ms),COMMENT
LOWpackages/codemirror/src/type_completion/preact_types.ts1// Real Preact type declarations injected into the JSX script-note vfs so theCOMMENT
LOWpackages/codemirror/src/type_completion/glob_types.ts1// Global `glob` type declarations injected into the FRONTEND (and JSX) script-noteCOMMENT
LOWpackages/codemirror/src/type_completion/index.ts81const COMPILER_OPTIONS = {COMMENT
LOW…rndown-plugin-gfm/src/lib/serialize-structural-html.ts1// Serializes an element into indented, multi-line HTML so raw-HTML blocks thatCOMMENT
LOWpackages/commons/src/lib/shared_constants.ts21 'logseq', 'mid', 'obsidian', 'bookends', 'highlights'COMMENT
LOWpackages/commons/src/lib/shared_constants.ts41 p => !SHELL_OPEN_EXTERNAL_BLOCKLIST.has(p)COMMENT
LOWpackages/commons/src/lib/shared_constants.ts61// embedded `data:` URI Trilium writes to the clipboard when note content is copied out. ExternalCOMMENT
LOWpackages/trilium-core/src/routes/index.ts181 asyncRoute(GET, "/api/spreadsheet/:noteId/xlsx", [checkApiAuthOrElectron], spreadsheetRoute.exportXlsx);COMMENT
LOWpackages/trilium-core/src/routes/index.ts201 // this is how the app asks the next start to be the wizard, and how it takes the request back.COMMENT
LOWpackages/trilium-core/src/routes/api/link_embed.ts581 const favicon = await resolveFavicon(document, url);COMMENT
LOWpackages/trilium-core/src/routes/api/sync.ts221 // rows fetched from entity_changes always carry an idCOMMENT
LOWpackages/trilium-core/src/services/space_usage.ts501 kind INTEGER NOT NULL DEFAULT ${BLOB_UNREFERENCED}COMMENT
LOWpackages/trilium-core/src/services/scheduler.ts41COMMENT
LOW…ckages/trilium-core/src/services/consistency_checks.ts921 // When sync is configured but hasn't fully completed yet (e.g. the appCOMMENT
LOWpackages/trilium-core/src/services/sync.ts301COMMENT
LOWpackages/trilium-core/src/services/sync.ts341 optionService.setOption("syncIncomplete", "true");COMMENT
LOW…re/src/services/encryption/password_encryption.spec.ts1import { describe, expect, it, vi } from "vitest";COMMENT
LOW…es/trilium-core/src/services/encryption/crypto.spec.ts1import { afterEach, beforeAll, describe, expect, it, vi } from "vitest";COMMENT
LOW…ilium-core/src/services/search/services/search.spec.ts1401 // .child(note("Canada")COMMENT
LOW…ages/trilium-core/src/services/import/markdown.spec.ts61 const result = markdownService.renderToHtml(trimIndentation`\COMMENT
LOW…ages/trilium-core/src/services/import/markdown.spec.ts81 `, "Notes")).toBe(`<h2>Main Section</h2><h3>Subsection A</h3><h4>Detail</h4><h3>Subsection B</h3>`);COMMENT
LOWpackages/trilium-core/src/services/import/zip.ts861 topLevelPath = (topLevelItems.size > 1 ? "" : topLevelItems.values().next().value ?? "");COMMENT
LOWpackages/trilium-core/src/services/import/dispatch.ts41 // An image note is created empty and filled in when the compression it was handed to answers,COMMENT
LOW…es/trilium-core/src/services/import/notion/importer.ts41 // The user exported from Notion as "Markdown & CSV", but this importer only understands the HTMLCOMMENT
LOWpackages/splitjs/src/split.js101COMMENT
LOWpackages/splitjs/src/split.js201 clientSize = 'clientHeight'COMMENT
LOWpackages/splitjs/src/split.js261COMMENT
LOWpackages/splitjs/src/split.js321 adjust.call(this, offset)COMMENT
LOWpackages/splitjs/src/split.js561 }COMMENT
LOW…ges/ckeditor5/src/plugins/syntax_highlighting/index.ts181 // XXX There's actually a plaintext language that could be usedCOMMENT
LOW…ges/ckeditor5/src/plugins/syntax_highlighting/index.ts201 // Do a two pass algorithm:COMMENT
LOW…editor5/src/plugins/collapsible/collapsible_editing.ts241 conversionApi.writer.removeAttribute(OPEN_ATTRIBUTE, viewElement);COMMENT
LOW…editor5/src/plugins/collapsible/collapsible_editing.ts801 if (!selection.isCollapsed) return;COMMENT
LOW…s/todo_list_multistate/todo_list_multistate_editing.ts81 const stateByName = this._stateByName;COMMENT
LOW.github/dependabot.yml1# Renovate owns version updates for this repository (see renovate.json). Dependabot isCOMMENT
LOW.github/dependabot.yml21 # This silences security PRs for pdfjs-dist too. That is the intended trade-off,COMMENT
LOW.github/workflows/update-pdfjs-viewer.yml1name: Update PDF.js viewerCOMMENT
LOW.github/workflows/codeql.yml1# For most projects, this workflow file will not need changing; you simply needCOMMENT
LOW.github/workflows/update-nix-flake.yml1name: Update Nix flakeCOMMENT
LOW.github/workflows/deploy-previews.yml1# Publishes the previews built by the three deploy workflows.COMMENT
LOW.github/workflows/sync-readme.yml1name: Sync READMECOMMENT
LOWapps/standalone/src/local-server-worker.ts281 throw opfsAccessError(e instanceof Error ? e.message : String(e));COMMENT
LOWapps/standalone/src/local-server-worker.ts401 // so it always defaults to "en" on a fresh worker boot. Now thatCOMMENT
LOWapps/standalone/src/test_setup.ts21// SQLite WASM compatibility shimsCOMMENT
LOWapps/desktop/spec/setup.ts1// Reuse the server's full core initialization for desktop spec files thatCOMMENT
LOWapps/desktop/scripts/build-appimage.sh1#!/usr/bin/env bashCOMMENT
LOWapps/desktop/src/main.ts161 if (targetWindow) {COMMENT
LOWapps/desktop/src/main.ts221 // (see #10572) without having to pass --disable-gpu on the command line. Like theCOMMENT
LOWapps/desktop/src/protocol.ts481COMMENT
LOWapps/desktop/src/main.spec.ts521COMMENT
LOWapps/server/docker_healthcheck.sh1#!/bin/shCOMMENT
LOWapps/server/docker/authelia/config/configuration.yml101 scopes:COMMENT
LOWapps/server/spec/db/config.ini21# path to certificate (run "bash bin/generate-cert.sh" to generate self-signed certificate). Relevant only if https=trueCOMMENT
43 more matches not shown…
Decorative Section Separators34 hits · 102 pts
SeverityFileLineSnippetContext
MEDIUMscripts/translation/create-po-file.sh3# --------------------------------------------------------------------------------------------------COMMENT
MEDIUMscripts/translation/create-po-file.sh18# --------------------------------------------------------------------------------------------------COMMENT
MEDIUMapps/script-deployer/scripts/auto-import-xopp.ts13// ── Color mapping ────────────────────────────────────────────────────────────COMMENT
MEDIUMapps/script-deployer/scripts/auto-import-xopp.ts48// ── Excalidraw element helpers ───────────────────────────────────────────────COMMENT
MEDIUMapps/script-deployer/scripts/auto-import-xopp.ts90// ── xml2js element accessors ─────────────────────────────────────────────────COMMENT
MEDIUMapps/script-deployer/scripts/auto-import-xopp.ts110// ── Converters ───────────────────────────────────────────────────────────────COMMENT
MEDIUMapps/script-deployer/scripts/auto-import-xopp.ts231// ── Main conversion ──────────────────────────────────────────────────────────COMMENT
MEDIUMapps/script-deployer/scripts/auto-import-xopp.ts287// ── Entry point (manually run) ───────────────────────────────────────────────COMMENT
MEDIUMapps/script-deployer/scripts/auto-import-rnote.ts13// ── Types (rnote v0.9+ / v0.13 JSON format) ────────────────────────────────COMMENT
MEDIUMapps/script-deployer/scripts/auto-import-rnote.ts101// ── Raw RGBA → PNG encoding ─────────────────────────────────────────────────COMMENT
MEDIUMapps/script-deployer/scripts/auto-import-rnote.ts167// ── Color conversion ────────────────────────────────────────────────────────COMMENT
MEDIUMapps/script-deployer/scripts/auto-import-rnote.ts180// ── Excalidraw element helpers ──────────────────────────────────────────────COMMENT
MEDIUMapps/script-deployer/scripts/auto-import-rnote.ts222// ── Bezier flattening ───────────────────────────────────────────────────────COMMENT
MEDIUMapps/script-deployer/scripts/auto-import-rnote.ts260// ── Converters ──────────────────────────────────────────────────────────────COMMENT
MEDIUMapps/script-deployer/scripts/auto-import-rnote.ts432// ── Main conversion ─────────────────────────────────────────────────────────COMMENT
MEDIUMapps/script-deployer/scripts/auto-import-rnote.ts468// ── Entry point ─────────────────────────────────────────────────────────────COMMENT
MEDIUMapps/script-deployer/src/dev.ts14// ── Environment — must be set before any server module is imported ──────────COMMENT
MEDIUMapps/script-deployer/src/dev.ts30// ── Constants ───────────────────────────────────────────────────────────────COMMENT
MEDIUMapps/script-deployer/src/deploy.spec.ts17// ── Mocks — only SQL and entity_changes, becca is real ───────────────────────COMMENT
MEDIUMapps/script-deployer/src/deploy.spec.ts39// ── parseScriptMeta ──────────────────────────────────────────────────────────COMMENT
MEDIUMapps/script-deployer/src/deploy.spec.ts118// ── transpile ────────────────────────────────────────────────────────────────COMMENT
MEDIUMapps/script-deployer/src/deploy.spec.ts146// ── deployScript ─────────────────────────────────────────────────────────────COMMENT
MEDIUMapps/script-deployer/src/deploy.ts9// ── Public constants ─────────────────────────────────────────────────────────COMMENT
MEDIUMapps/script-deployer/src/deploy.ts22// ── Front-matter parsing ─────────────────────────────────────────────────────COMMENT
MEDIUMapps/script-deployer/src/deploy.ts75// ── Transpilation ────────────────────────────────────────────────────────────COMMENT
MEDIUMapps/script-deployer/src/deploy.ts98// ── Note ID helpers ──────────────────────────────────────────────────────────COMMENT
MEDIUMapps/script-deployer/src/deploy.ts113// ── Deployment ───────────────────────────────────────────────────────────────COMMENT
MEDIUM…/src/services/search/services/search_profiling.spec.ts22// ── helpers ──────────────────────────────────────────────────────────COMMENT
MEDIUM…/src/services/search/services/search_profiling.spec.ts76// ── dataset builder ──────────────────────────────────────────────────COMMENT
MEDIUM…/src/services/search/services/search_profiling.spec.ts180// ── profiling tests ──────────────────────────────────────────────────COMMENT
MEDIUM…/src/services/search/services/search_benchmark.spec.ts20// ── helpers ──────────────────────────────────────────────────────────COMMENT
MEDIUM…/src/services/search/services/search_benchmark.spec.ts69// ── dataset builder ──────────────────────────────────────────────────COMMENT
MEDIUM…/src/services/search/services/search_benchmark.spec.ts180// ── benchmark runner ─────────────────────────────────────────────────COMMENT
MEDIUM…/src/services/search/services/search_benchmark.spec.ts279// ── tests ────────────────────────────────────────────────────────────COMMENT
Modern AI Meta-Vocabulary7 hits · 19 pts
SeverityFileLineSnippetContext
MEDIUM…lls/ckeditor5-testing/references/running-and-config.md175## Root orchestrationCOMMENT
MEDIUM.claude/skills/writing-documentation/SKILL.md23node $D new Collections "Timeline" --icon bx-time-five --after Dashboard # scaffold page + meta entryCODE
MEDIUM…r Guide/User Guide/Scripting/Script API/Backend API.md24 <td><p><a href="#type-Attribute"><code>Attribute</code></a> | <a href="#type-BBranch"><code>BBranch</code></CODE
MEDIUMpackages/trilium-core/src/services/llm/chat.ts99 // Chunk-native provider (e.g. Claude Agent): it owns its own agentic loopCOMMENT
MEDIUMpackages/trilium-core/src/services/llm/stream.ts213 // aggregates token usage across every step of the agentic loop — `usage` onlyCOMMENT
MEDIUM…trilium-core/src/services/llm/providers/google.spec.ts217 // Function tools present → agentic loop options set on the thinking path.COMMENT
MEDIUM…trilium-core/src/services/llm/providers/openai.spec.ts86 // Tools present → agentic loop options are set.COMMENT
Slop Phrases7 hits · 14 pts
SeverityFileLineSnippetContext
LOWpackages/codemirror/vite.config.ts22 // Don't forget to update your package.json as well.COMMENT
LOWpackages/highlightjs/vite.config.ts22 // Don't forget to update your package.json as well.COMMENT
LOWpackages/ckeditor5/vite.config.ts22 // Don't forget to update your package.json as well.COMMENT
MEDIUM.github/workflows/codeql.yml56 # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize howCOMMENT
MEDIUM.vscode/i18n-ally-custom-framework.yml11# To help with this, you can use https://www.freeformatter.com/json-escape.htmlCOMMENT
MEDIUM.vscode/i18n-ally-custom-framework.yml23# To help with this, you can use https://www.freeformatter.com/json-escape.htmlCOMMENT
LOWapps/client/src/translations/en/translation.json691 "share_credentials": "Require credentials to access this shared note. Value is expected to be in format 'username:paCODE
Structural Annotation Overuse7 hits · 11 pts
SeverityFileLineSnippetContext
LOW…ipting/Frontend Basics/Custom Widgets/Widget Basics.md4### Step 1: The Basic Widget StructureCOMMENT
LOW…ipting/Frontend Basics/Custom Widgets/Widget Basics.md30### Step 2: Adding an UI ElementCOMMENT
LOW…ipting/Frontend Basics/Custom Widgets/Widget Basics.md52### Step 3: Styling the WidgetCOMMENT
LOW…ipting/Frontend Basics/Custom Widgets/Widget Basics.md86### Step 4: Adding User InteractionCOMMENT
LOWpackages/codemirror/src/extensions/custom_tab.ts24 // Step 1: Handle non-empty selections → replace with tabCOMMENT
LOW⚡packages/codemirror/src/extensions/custom_tab.ts46 // Step 2: Handle empty selectionsCOMMENT
LOWapps/client/src/widgets/type_widgets/options/totp.tsx221 // Step 1: check the code against the secret. Persists nothing — on success we only advance to theCOMMENT
AI Slop Vocabulary3 hits · 8 pts
SeverityFileLineSnippetContext
MEDIUMpackages/ckeditor5/src/i18n.spec.ts159 // What makes the mechanism seamless: with no host attached the editor still renders correctCOMMENT
MEDIUM…/content_embed/content_embed_box_size_dropdown.spec.ts225 // wrapper listener before our handler sees it. We leverage that listenersCOMMENT
MEDIUM…nt/src/widgets/type_widgets/text/ReadOnlyText.spec.tsx388 + `<p><a class="reference-link" href="#root/${harness.note.noteId}?block=b1">x</a></p>`;CODE
Verbosity Indicators4 hits · 7 pts
SeverityFileLineSnippetContext
LOWpackages/codemirror/src/extensions/custom_tab.ts24 // Step 1: Handle non-empty selections → replace with tabCOMMENT
LOW⚡packages/codemirror/src/extensions/custom_tab.ts46 // Step 2: Handle empty selectionsCOMMENT
LOWapps/client/src/services/note_tooltip.ts143 // we need to check if we're still hovering over the elementCOMMENT
LOWapps/client/src/widgets/type_widgets/options/totp.tsx221 // Step 1: check the code against the secret. Persists nothing — on success we only advance to theCOMMENT
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMapps/desktop/scripts/build-appimage.sh50# Create the AppRun entry pointCOMMENT
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippetContext
LOW…/server/src/services/llm/providers/acp_mcp_endpoint.ts154async function handleRequest(CODE