Repository Analysis

fathah/hermes-desktop

Desktop Companion for Hermes Agent

5.6 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of fathah/hermes-desktop, a TypeScript project with 13,305 GitHub stars. SynthScan v2.0 examined 182,792 lines of code across 784 source files, recording 488 pattern matches distributed across 13 syntactic categories. The overall adjusted score of 5.6 places this repository in the Low AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

5.6
Adjusted Score
5.6
Raw Score
100%
Time Factor
2026-07-14
Last Push
13.3K
Stars
TypeScript
Language
182.8K
Lines of Code
784
Files
488
Pattern Hits
2026-07-14
Scan Date
0.06
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 0HIGH 45MEDIUM 174LOW 269

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 488 distinct pattern matches across 13 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Decorative Section Separators158 hits · 472 pts
SeverityFileLineSnippetContext
MEDIUMtests/installer-utils.test.ts38// ─── readLogs (test the logic, not the import) ─────────COMMENT
MEDIUMtests/installer-utils.test.ts71// ─── MCP server YAML parsing ───────────────────────────COMMENT
MEDIUMtests/installer-utils.test.ts164// ─── Memory provider discovery logic ────────────────────COMMENT
MEDIUMtests/installer-utils.test.ts237// ─── OAuth credential discovery ─────────────────COMMENT
MEDIUMtests/installer-utils.test.ts313// ─── OpenClaw detector ─────────────────────────────────COMMENT
MEDIUMtests/installer-utils.test.ts354// ─── Backward compatibility checks ─────────────────────COMMENT
MEDIUMtests/buildUserContent.test.ts63// ── helpers ──────────────────────────────────────────────COMMENT
MEDIUMtests/buildUserContent.test.ts112// ── tests ────────────────────────────────────────────────COMMENT
MEDIUMtests/constants.test.ts13// ─── PROVIDERS ──────────────────────────────────────────COMMENT
MEDIUMtests/constants.test.ts88// ─── GATEWAY_PLATFORMS ──────────────────────────────────COMMENT
MEDIUMtests/constants.test.ts145// ─── GATEWAY_SECTIONS ───────────────────────────────────COMMENT
MEDIUMtests/constants.test.ts185// ─── SETTINGS_SECTIONS ──────────────────────────────────COMMENT
MEDIUMtests/constants.test.ts221// ─── Static constants ───────────────────────────────────COMMENT
MEDIUMtests/sse-parser.test.ts8// ─── parseSseBlock ──────────────────────────────────────COMMENT
MEDIUMtests/sse-parser.test.ts45// ─── processCustomEvent ─────────────────────────────────COMMENT
MEDIUMtests/sse-parser.test.ts163// ─── processSseData ─────────────────────────────────────COMMENT
MEDIUMtests/ipc-handlers.test.ts65// ─── New feature handlers registered ────────────────────COMMENT
MEDIUMtests/ipc-handlers.test.ts94// ─── Legacy handlers still present ──────────────────────COMMENT
MEDIUMtests/validation.test.ts191 // ── Nous Portal (issue #367) ─────────────────────────────────COMMENT
MEDIUMtests/validation.test.ts191 // ── Nous Portal (issue #367) ─────────────────────────────────COMMENT
MEDIUMtests/preload-api-surface.test.ts66// ─── New APIs exist ─────────────────────────────────────COMMENT
MEDIUMtests/preload-api-surface.test.ts120// ─── Legacy APIs still present ──────────────────────────COMMENT
MEDIUMtests/preload-api-surface.test.ts223// ─── IPC channel consistency ────────────────────────────COMMENT
MEDIUMscripts/verify-369-wsl-drift.js36 // ── A. Run audit, look for drift issues ─────────────────────COMMENT
MEDIUMscripts/verify-369-wsl-drift.js61 // ── B. Auto-fix the first autoFixable drift ────────────────COMMENT
MEDIUMscripts/verify-369-wsl-drift.js86 // ── C. Confirm Windows-side .env now has the value ──────────COMMENT
MEDIUMscripts/verify-369-wsl-drift.js97 // ── D. Re-run audit — the same drift should be gone ────────COMMENT
MEDIUMsrc/renderer/src/constants.ts1// ── Shared Types ────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/src/constants.ts35// ── Providers ───────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/src/constants.ts551// ── Theme ───────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/src/constants.ts600// ── Font ────────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/src/constants.ts630// ── Settings API Key Sections ───────────────────────────COMMENT
MEDIUMsrc/renderer/src/constants.ts900// ── Gateway Sections ────────────────────────────────────COMMENT
MEDIUMsrc/renderer/src/constants.ts1236// ── Install ─────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Chat/attachmentUtils.test.ts19// ── helpers ──────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Chat/attachmentUtils.test.ts49// ── processFiles ─────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Chat/attachmentUtils.test.ts202// ── filesFromClipboard ───────────────────────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Chat/attachmentUtils.ts63// ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Chat/attachmentUtils.ts65// ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Chat/ModelPicker.test.tsx99 // ── initial render ──────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Chat/ModelPicker.test.tsx113 // ── open / close ────────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Chat/ModelPicker.test.tsx161 // ── model list rendering ────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Chat/ModelPicker.test.tsx209 // ── model selection ─────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Chat/ModelPicker.test.tsx231 // ── search / filtering ──────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Chat/ModelPicker.test.tsx289 // ── provider rail ───────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Chat/ModelPicker.test.tsx305 // ── configure providers/models footer ───────────────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Chat/ModelPicker.test.tsx323 // ── edge cases ──────────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Chat/mediaUtils.test.ts26 // ── Explicit MEDIA: tokens ─────────────────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Chat/mediaUtils.test.ts65 // ── Whole-line bare paths ──────────────────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Chat/mediaUtils.test.ts95 // ── Inline bare paths (mid-sentence) ───────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Chat/mediaUtils.test.ts239 // ── False-positive guards ──────────────────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Chat/mediaUtils.test.ts362 // ── Misc ───────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Office/office3d/trips.ts30// ── Tuning ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Office/office3d/layout.ts61// ── Partition between work area (west) and rest room (east) ────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Office/office3d/layout.ts89// ── Desks (work area, west of the partition) ───────────────────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Office/office3d/layout.ts98// ── CEO executive desk ─────────────────────────────────────────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Office/office3d/layout.ts113// ── CEO glass corner office (south-west of the work area) ──────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Office/office3d/layout.ts291// ── Rest room (east of the partition) ──────────────────────────────────────COMMENT
MEDIUMsrc/renderer/src/screens/Office/office3d/Office3D.tsx200 // ── Developer building-mover ──────────────────────────────────────────────COMMENT
MEDIUM…/renderer/src/screens/Office/office3d/core/geometry.ts122 // ── structural ────────────────────────────────────────────────────────────COMMENT
98 more matches not shown…
Cross-Language Confusion (JS/TS)44 hits · 245 pts
SeverityFileLineSnippetContext
HIGHscripts/repro-session-proliferation.js48print(json.dumps({"total": total, "rows": rows}))CODE
HIGHscripts/repro-long-conversation.js42print(json.dumps({"total": total, "rows": rows}))CODE
HIGHscripts/repro-gateway-restart-midchat.js43print(json.dumps({"rows": rows}))CODE
HIGHscripts/repro-gateway-restart-v2.js32print(json.dumps({"rows": rows}))CODE
HIGHsrc/main/ssh-remote.ts485 print(json.dumps({"totalSessions": 0, "totalMessages": 0}))CODE
HIGHsrc/main/ssh-remote.ts491 print(json.dumps({"totalSessions": s, "totalMessages": m}))CODE
HIGHsrc/main/ssh-remote.ts493 print(json.dumps({"totalSessions": 0, "totalMessages": 0}))CODE
HIGHsrc/main/ssh-remote.ts1516 print(json.dumps({"data_url": None})); sys.exit(0)CODE
HIGHsrc/main/ssh-remote.ts1521 print(json.dumps({"data_url": None})); sys.exit(0)CODE
HIGHsrc/main/ssh-remote.ts1524 print(json.dumps({"data_url": None})); sys.exit(0)CODE
HIGHsrc/main/ssh-remote.ts1528 print(json.dumps({"data_url": None})); sys.exit(0)CODE
HIGHsrc/main/ssh-remote.ts1529 print(json.dumps({"data_url": "data:%s;base64,%s" % (mime, base64.b64encode(data).decode("ascii"))}))CODE
HIGHsrc/main/ssh-remote.ts1531 print(json.dumps({"data_url": None}))CODE
HIGHsrc/main/ssh-remote.ts1629 print(json.dumps(result))CODE
HIGHsrc/main/ssh-remote.ts1631 print("[]")CODE
HIGHsrc/main/ssh-remote.ts1808 if not os.path.exists(pid_file): return FalseCODE
HIGHsrc/main/ssh-remote.ts1819 return TrueCODE
HIGHsrc/main/ssh-remote.ts1821 return FalseCODE
HIGHsrc/main/ssh-remote.ts2183 return NoneCODE
HIGHsrc/main/ssh-remote.ts2189 return NoneCODE
HIGHsrc/main/ssh-remote.ts2197 return NoneCODE
HIGHsrc/main/ssh-remote.ts2591 print(response.status)CODE
HIGHsrc/main/ssh-remote.ts2593 print(0)CODE
HIGHsrc/main/ssh-remote.ts177elif raw.startswith("$HOME/"):CODE
HIGHsrc/main/ssh-remote.ts187print(json.dumps(rows))CODE
HIGHsrc/main/ssh-remote.ts292print(json.dumps(skills))CODE
HIGHsrc/main/ssh-remote.ts1312 print("[]"); sys.exit(0)CODE
HIGHsrc/main/ssh-remote.ts1328print(json.dumps(result))CODE
HIGHsrc/main/ssh-remote.ts1360 print("[]"); sys.exit(0)CODE
HIGHsrc/main/ssh-remote.ts1464print(json.dumps(items))CODE
HIGHsrc/main/ssh-remote.ts1606 print("[]"); sys.exit(0)CODE
HIGHsrc/main/ssh-remote.ts1848print(json.dumps(profiles))CODE
HIGHsrc/main/ssh-remote.ts2264 print(current)CODE
HIGHsrc/main/ssh-remote.ts2268 print(port)CODE
HIGHsrc/main/ssh-remote.ts2509print(sock.getsockname()[1])CODE
HIGHsrc/main/ssh-remote.ts3368print(json.dumps(result))CODE
HIGHsrc/main/hermes-agent-compat.ts82 return NoneCODE
HIGHsrc/main/hermes-agent-compat.ts86 return NoneCODE
HIGHsrc/main/hermes-agent-compat.ts130 return NoneCODE
HIGHsrc/main/hermes-agent-compat.ts141 return NoneCODE
HIGHsrc/main/hermes-agent-compat.ts486 print(json.dumps({CODE
HIGHsrc/main/hermes-agent-compat.ts524elif re.search(r"\bembedded_chat\s*:\s*bool\s*=\s*True\b", source):CODE
HIGHsrc/main/hermes-agent-compat.ts527elif re.search(r"(\bembedded_chat\s*:\s*bool\s*=\s*)False\b", source):CODE
HIGHsrc/main/hermes-agent-compat.ts573print(json.dumps({CODE
Hyper-Verbose Identifiers205 hits · 198 pts
SeverityFileLineSnippetContext
LOWAGENTS.md71def test_rejects_expired_tokens():CODE
LOWAGENTS.md75def test_handles_missing_password():CODE
LOWCLAUDE.md71def test_rejects_expired_tokens():CODE
LOWCLAUDE.md75def test_handles_missing_password():CODE
LOWtests/connection-config-security.test.ts10async function loadConnectionConfigModule(): Promise<CODE
LOWtests/remote-history.test.ts30function extractLocalRecoveryFunction(): string {CODE
LOWtests/remote-history.test.ts32 "async function sendMessageViaBestApiWithLocalRecovery(",CODE
LOWtests/remote-history.test.ts148 "async function sendMessageViaBestApiWithLocalRecovery(",CODE
LOWtests/ipc-handlers.test.ts32function extractPreloadInvokeChannels(src: string): string[] {CODE
LOWtests/hermes-agent-compat.test.ts137def hermes_one_get_model_library():CODE
LOW.agents/skills/lat-md/SKILL.md141def test_rejects_expired_tokens():CODE
LOW.claude/skills/lat-md/SKILL.md141def test_rejects_expired_tokens():CODE
LOWscripts/drive-live-regression-suite.js77function assertNoDuplicateRenderedImages(state, label) {CODE
LOWsrc/renderer/src/App.tsx188 function handleDismissVerifyWarning(): void {CODE
LOWsrc/renderer/src/utils/analytics.ts48function getOrCreateAnonymousId(): string {CODE
LOWsrc/renderer/src/screens/Settings/ConfigHealth.tsx45function publishConfigHealthReport(report: Report): void {CODE
LOWsrc/renderer/src/screens/Chat/mediaUtils.ts201function markdownDestinationRanges(content: string): Array<[number, number]> {CODE
LOWsrc/renderer/src/screens/Chat/dashboardEventAdapter.ts170function toolEventFromGatewayEvent(event: DashboardStreamEvent): ChatToolEvent {CODE
LOWsrc/renderer/src/screens/Chat/dashboardEventAdapter.ts533function hasReasoningSinceLastUser(CODE
LOWsrc/renderer/src/screens/Chat/dashboardEventAdapter.ts546function addCompletionReasoningFallback(CODE
LOWsrc/renderer/src/screens/Chat/dashboardEventAdapter.ts578function completeAssistantWithFinalText(CODE
LOWsrc/renderer/src/screens/Chat/dashboardEventAdapter.ts627export function applyDashboardStreamEvent(CODE
LOWsrc/renderer/src/screens/Chat/sessionHistory.ts148function normalizeBubbleContentForMatch(s: string): string {CODE
LOWsrc/renderer/src/screens/Chat/sessionHistory.ts158function buildDbAssistantSplitSequences(CODE
LOWsrc/renderer/src/screens/Chat/sessionHistory.ts247function isSyntheticLiveToolMessage(m: ChatMessage): boolean {CODE
LOWsrc/renderer/src/screens/Chat/sessionHistory.ts261function consumeCanonicalToolMatch(CODE
LOWsrc/renderer/src/screens/Chat/sessionHistory.ts281function mergeDbMetadataIntoStreamed(CODE
LOWsrc/renderer/src/screens/Chat/sessionHistory.ts337function compactOrphanDuplicateUserRuns(CODE
LOWsrc/renderer/src/screens/Chat/sessionHistory.ts397function anchorUnmatchedUsersBeforeConsumedTurnRows(CODE
LOWsrc/renderer/src/screens/Chat/sessionHistory.ts467function hasUniqueCurrentUserContent(CODE
LOWsrc/renderer/src/screens/Chat/sessionHistory.ts505function findNextOutputAnchorIndex(CODE
LOWsrc/renderer/src/screens/Chat/sessionHistory.ts521function hasEquivalentAssistantError(CODE
LOWsrc/renderer/src/screens/Chat/sessionHistory.ts551export function preserveLocalAssistantErrors(CODE
LOWsrc/renderer/src/screens/Chat/sessionHistory.ts638function firstDbIndexMatchingActiveTurnOutput(CODE
LOWsrc/renderer/src/screens/Chat/sessionHistory.ts659function findPreviousLocalErrorIndex(CODE
LOWsrc/renderer/src/screens/Chat/dashboardGatewayClient.ts48export function normalizeDashboardNotification(CODE
LOWsrc/renderer/src/screens/Chat/liveToolEvents.ts7function toolProgressToNameAndPreview(progress: string): {CODE
LOWsrc/renderer/src/screens/Chat/liveToolEvents.ts28export function liveToolEventFromProgress(progress: string): ChatToolEvent {CODE
LOWsrc/renderer/src/screens/Chat/liveToolEvents.ts91function findLatestRunningSyntheticToolIndex(CODE
LOWsrc/renderer/src/screens/Chat/liveToolEvents.ts110function findLatestRunningSyntheticToolByNameIndex(CODE
LOWsrc/renderer/src/screens/Chat/liveToolEvents.ts167function upsertToolResultAfterCall(CODE
LOW…enderer/src/screens/Chat/slash/virtualSlashCommands.ts31export function createSlashCommandVirtualLayout(CODE
LOW…enderer/src/screens/Chat/slash/virtualSlashCommands.ts73export function getVisibleSlashCommandRows(CODE
LOW…er/src/screens/Chat/hooks/useDashboardChatTransport.ts139export function dashboardChatEnabledFromEnv(CODE
LOW…er/src/screens/Chat/hooks/useDashboardChatTransport.ts145export function dashboardChatEnabledForConnection(CODE
LOW…er/src/screens/Chat/hooks/useDashboardChatTransport.ts160export function dashboardShouldPersistLocalOverlays(CODE
LOW…er/src/screens/Chat/hooks/useDashboardChatTransport.ts166export function isDashboardSessionNotFoundError(err: unknown): boolean {CODE
LOW…er/src/screens/Chat/hooks/useDashboardChatTransport.ts171export function isDashboardSlashWorkerExitError(err: unknown): boolean {CODE
LOW…er/src/screens/Chat/hooks/useDashboardChatTransport.ts176export async function submitDashboardPromptWithRecovery(CODE
LOW…er/src/screens/Chat/hooks/useDashboardChatTransport.ts225export async function ensureDashboardRuntimeSession(CODE
LOW…er/src/screens/Chat/hooks/useDashboardChatTransport.ts299function builtInProviderForCustomBaseUrl(CODE
LOW…er/src/screens/Chat/hooks/useDashboardChatTransport.ts369export function dashboardDataUrlForTextAttachment(CODE
LOW…er/src/screens/Chat/hooks/useDashboardChatTransport.ts379function dashboardAttachmentUnsupportedError(err: unknown): boolean {CODE
LOW…er/src/screens/Chat/hooks/useDashboardChatTransport.ts384export function dashboardPromptTextForAttachments(CODE
LOW…er/src/screens/Chat/hooks/useDashboardChatTransport.ts412export function dashboardPromptTextWithAttachmentRefs(CODE
LOW…er/src/screens/Chat/hooks/useDashboardChatTransport.ts419export async function syncDashboardAttachmentsForSubmit(CODE
LOW…er/src/screens/Chat/hooks/useDashboardChatTransport.ts501export function resolveDashboardProviderForModel(CODE
LOW…er/src/screens/Chat/hooks/useDashboardChatTransport.ts772export function dashboardSeedMessagesFromTranscript(CODE
LOW…er/src/screens/Chat/hooks/useDashboardChatTransport.ts802export function dashboardContinuationItemsFromTranscript(CODE
LOW…er/src/screens/Chat/hooks/useDashboardChatTransport.ts885export function useDashboardChatTransport({CODE
145 more matches not shown…
Over-Commented Block41 hits · 36 pts
SeverityFileLineSnippetContext
LOWtests/install-gate-providers.test.ts101 });COMMENT
LOWtests/ssh-remote-paths.test.ts1import { describe, expect, it } from "vitest";COMMENT
LOWtests/config-value-paths.test.ts1import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";COMMENT
LOW.agents/skills/typescript-expert/SKILL.md201COMMENT
LOW…ills/typescript-expert/references/tsconfig-strict.json41 "baseUrl": ".",COMMENT
LOWsrc/renderer/src/constants.ts361COMMENT
LOWsrc/renderer/src/screens/Chat/attachmentUtils.ts61}COMMENT
LOWsrc/renderer/src/screens/Chat/attachmentUtils.ts181 const probeCtx = probeCanvas.getContext("2d");COMMENT
LOWsrc/renderer/src/screens/Chat/attachmentUtils.ts221 // Phase 1 — lossy formats: step quality down from 0.85 to 0.5COMMENT
LOWsrc/renderer/src/screens/Chat/sessionHistory.ts801 // reconciliation never silently drops UI-only state.COMMENT
LOW…er/src/screens/Chat/hooks/useDashboardChatTransport.ts921 const pendingClarifyRequestIdRef = useRef<string | null>(null);COMMENT
LOWsrc/renderer/src/screens/Office/office3d/layout.ts101// grid which fills the rows to the north, with surrounding decorCOMMENT
LOWsrc/renderer/src/screens/Office/office3d/Office3D.tsx41import officeFontUrl from "../../../assets/fonts/Manrope-Medium.ttf";COMMENT
LOW…/renderer/src/screens/Office/office3d/core/cityPlan.ts21// ── Office entrance (south wall doorway) ──────────────────────────────────COMMENT
LOWsrc/main/remote-skills.ts1import { getApiUrl, getRemoteAuthHeader } from "./hermes";COMMENT
LOWsrc/main/profiles.ts381 }COMMENT
LOWsrc/main/yaml-path.ts1// Tiny indentation-aware YAML reader that resolves a dotted key path againstCOMMENT
LOWsrc/main/config-health.ts521 }COMMENT
LOWsrc/main/ssh-remote.ts1021// config.yaml. Two problems, both observed in the wild (#240): dotted-pathCOMMENT
LOWsrc/main/ssh-remote.ts2401 // transient — keep polling until the deadlineCOMMENT
LOWsrc/main/ssh-remote.ts2761// session op. Only cache a *permanent* failure — the remote has no web dist andCOMMENT
LOWsrc/main/ssh-remote.ts3241COMMENT
LOWsrc/main/default-models.ts61 // qwen/qwen3-32b, qwen/qwen3-8b, Qwen/Qwen3-Coder, qwen/qwen3-coder-next,COMMENT
LOWsrc/main/agent-sync.ts21} from "../shared/agent-sync";COMMENT
LOWsrc/main/installer.ts41// data. install.ps1's default is %LOCALAPPDATA%\hermes, but someCOMMENT
LOWsrc/main/hermes.ts1241 };COMMENT
LOWsrc/main/hermes.ts1261 // doesn't fall back to its `_derive_chat_session_id` fingerprint —COMMENT
LOWsrc/main/hermes.ts2441 // - Old engine (≤ v0.14.0) routes via OPENAI_API_KEY + OPENAI_BASE_URL.COMMENT
LOWsrc/main/hermes.ts3081 }COMMENT
LOWsrc/main/hermes.ts3161 // token, which the gateway refuses to start with) don't get mixed into theCOMMENT
LOWsrc/main/gpu-fallback.ts21function shouldHonorPersistedGpuFlag(): boolean {COMMENT
LOWsrc/main/models.ts321 baseUrl: cp.baseUrl,COMMENT
LOWsrc/main/config.ts781 // Vault-aware: a `command` provider with any of the fallback keysCOMMENT
LOWsrc/main/config.ts941 // `model.context_length`. `undefined` leaves the key untouched (back-compatCOMMENT
LOWsrc/main/config.ts961 // returned 404s. `safeWriteFile` (used below) will create parent dirsCOMMENT
LOWsrc/main/config.ts1221 // copy the value into `.env`. Keeps the original copy alone (additiveCOMMENT
LOWsrc/main/config.ts1421 }COMMENT
LOWsrc/main/secrets/securityInvariants.test.ts101 // INV-3: list() and get() AGREE on membership. If a key is enumerated byCOMMENT
LOWsrc/main/secrets/index.ts201 const provider = getSecretsProvider(profile);COMMENT
LOWsrc/main/secrets/commandProvider.ts81 // env-shaped line falls through to the bare-value branch, because a bareCOMMENT
LOWsrc/main/secrets/getSpawnFloor.test.ts1import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";COMMENT
Modern AI Meta-Vocabulary14 hits · 31 pts
SeverityFileLineSnippetContext
MEDIUMAGENTS.md36- **Section ids**: `lat.md/path/to/file#Heading#SubHeading` — full form uses project-root-relative path (e.g. `lat.md/teCODE
MEDIUMCLAUDE.md36- **Section ids**: `lat.md/path/to/file#Heading#SubHeading` — full form uses project-root-relative path (e.g. `lat.md/teCODE
MEDIUMlat.md/provider-setup.md71[[src/renderer/src/components/ProviderKeysSection.tsx#ProviderModelsManager]] renders below the key field in the config CODE
MEDIUMlat.md/model-context.md1# Model context windowCOMMENT
MEDIUM.agents/skills/lat-md/SKILL.md64Examples: `lat.md/tests/search#RAG Replay Tests`, `cli#init`, `parser#Wiki Links`.CODE
MEDIUM.agents/skills/hermes-agent/SKILL.md20 - 5.2 [Tool Orchestration (model_tools.py)](#52-tool-orchestration-model_toolspy)CODE
MEDIUM.agents/skills/hermes-agent/SKILL.md164├── model_tools.py # Tool orchestration, _discover_tools(), handle_function_call()CODE
MEDIUM.agents/skills/hermes-agent/SKILL.md1262├── autonomous-ai-agents/ # Multi-agent orchestrationCODE
MEDIUM.claude/skills/lat-md/SKILL.md64Examples: `lat.md/tests/search#RAG Replay Tests`, `cli#init`, `parser#Wiki Links`.CODE
MEDIUM.claude/skills/hermes-agent/SKILL.md20 - 5.2 [Tool Orchestration (model_tools.py)](#52-tool-orchestration-model_toolspy)CODE
MEDIUM.claude/skills/hermes-agent/SKILL.md164├── model_tools.py # Tool orchestration, _discover_tools(), handle_function_call()CODE
MEDIUM.claude/skills/hermes-agent/SKILL.md1262├── autonomous-ai-agents/ # Multi-agent orchestrationCODE
MEDIUMsrc/main/model-discovery.ts623// @lat: [[model-context#Model context window#Gauge resolution order]]COMMENT
MEDIUMsrc/main/config.ts934// @lat: [[model-context#Model context window#Storage and propagation]]COMMENT
Excessive Try-Catch Wrapping15 hits · 12 pts
SeverityFileLineSnippetContext
LOW…ents/skills/typescript-expert/scripts/ts_diagnostic.py18 except Exception as e:CODE
LOWsrc/main/ssh-remote.ts1530except Exception:CODE
LOWsrc/main/ssh-remote.ts1630except Exception as e:CODE
LOWsrc/main/ssh-remote.ts1816 except Exception:CODE
LOWsrc/main/ssh-remote.ts2592except Exception:CODE
LOWsrc/main/ssh-remote.ts385 except Exception:CODE
LOWsrc/main/ssh-remote.ts1374 except Exception:CODE
LOWsrc/main/ssh-remote.ts1400 except Exception:CODE
LOWsrc/main/ssh-remote.ts1417 except Exception:CODE
LOWsrc/main/ssh-remote.ts1431 except Exception:CODE
MEDIUMsrc/main/hermes-agent-compat.ts126def _hermes_one_current_model_row():CODE
LOWsrc/main/hermes-agent-compat.ts129 except Exception:CODE
LOWsrc/main/hermes-agent-compat.ts102 except Exception:CODE
LOWsrc/main/hermes-agent-compat.ts470except Exception:CODE
LOWsrc/main/hermes-agent-compat.ts571except Exception:CODE
Magic Placeholder Names1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHsrc/main/ssh-remote.test.ts73 expect(isUsableApiServerKey("your-api-key")).toBe(false);CODE
Verbosity Indicators2 hits · 3 pts
SeverityFileLineSnippetContext
LOWsrc/main/claw3d.ts706 // Step 1: Clone (or pull if already cloned)COMMENT
LOWsrc/main/claw3d.ts775 // Step 2: npm installCOMMENT
Structural Annotation Overuse2 hits · 3 pts
SeverityFileLineSnippetContext
LOWsrc/main/claw3d.ts706 // Step 1: Clone (or pull if already cloned)COMMENT
LOWsrc/main/claw3d.ts775 // Step 2: npm installCOMMENT
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMsrc/main/gpu-fallback.ts37// because the GPU process still attempts to initialize. The robust fix is toCOMMENT
Unused Imports2 hits · 2 pts
SeverityFileLineSnippetContext
LOW…ents/skills/typescript-expert/scripts/ts_diagnostic.py8CODE
LOW…ents/skills/typescript-expert/scripts/ts_diagnostic.py9CODE
Fake / Example Data2 hits · 2 pts
SeverityFileLineSnippetContext
LOWscripts/probe-selectors.js21 const placeholder = el.getAttribute("placeholder");CODE
LOWscripts/repro-edit-model-emptykey.js61 placeholder: el.getAttribute("placeholder"),CODE
Deep Nesting1 hit · 1 pts
SeverityFileLineSnippetContext
LOW…ents/skills/typescript-expert/scripts/ts_diagnostic.py74CODE