Repository Analysis

kenn-io/msgvault

Archive a lifetime of email and chat. Offline search, analytics, and AI query over your full message history. Powered by SQLite and DuckDB

2.5 Likely human-written View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of kenn-io/msgvault, a Go project with 1,921 GitHub stars. SynthScan v2.0 examined 290,425 lines of code across 866 source files, recording 568 pattern matches distributed across 14 syntactic categories. The overall adjusted score of 2.5 places this repository in the Likely human-written 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).

2.5
Adjusted Score
2.5
Raw Score
100%
Time Factor
2026-07-14
Last Push
1.9K
Stars
Go
Language
290.4K
Lines of Code
866
Files
568
Pattern Hits
2026-07-14
Scan Date
0.01
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 8MEDIUM 17LOW 543

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 568 distinct pattern matches across 14 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.

Over-Commented Block320 hits · 320 pts
SeverityFileLineSnippetContext
LOW…ault/cmd/serve_vector_precheck_mainpath_pgonly_test.go1//go:build pgvector && !sqlite_vecCOMMENT
LOWcmd/msgvault/cmd/serve_vector_init.go141 // Cron was validated in precheckVectorFeatures, so this is anCOMMENT
LOWcmd/msgvault/cmd/serve_vector.go61// must be called on shutdown.COMMENT
LOWcmd/msgvault/cmd/store_resolver.go61 }COMMENT
LOWcmd/msgvault/cmd/serve.go1201// Under scan-and-fill there is no enqueue step — newly-ingested messagesCOMMENT
LOWcmd/msgvault/cmd/build_cache.go921 }COMMENT
LOWcmd/msgvault/cmd/build_cache.go941//COMMENT
LOWcmd/msgvault/cmd/repair_encoding.go81 } else {COMMENT
LOWcmd/msgvault/cmd/account_identity.go21//COMMENT
LOWcmd/msgvault/cmd/deduplicate.go1021COMMENT
LOWcmd/msgvault/cmd/deletions.go1321}COMMENT
LOWcmd/msgvault/cmd/repair_encoding_vector.go21// still unmarked. repair-encoding MUST open the backend BEFORE it clearsCOMMENT
LOWcmd/msgvault/cmd/repair_encoding_vector.go61 Dimension: cfg.Vector.Embeddings.Dimension,COMMENT
LOWcmd/msgvault/cmd/import_mbox.go301COMMENT
LOWcmd/msgvault/cmd/confirm.go21 ConfirmModePermanent ConfirmMode = iotaCOMMENT
LOWcmd/msgvault/cmd/repair_encoding_vector_test.go21// that guards the one-time upgrade backfill. Kept in sync deliberately: theCOMMENT
LOWcmd/msgvault/cmd/repair_encoding_vector_test.go41// the vector backend runs BackfillEmbedGenForUpgrade, which stampsCOMMENT
LOWcmd/msgvault/cmd/embed_pg_test.go161// pgvector tables into it (via pgvector.Open), and returns the pgvectorCOMMENT
LOW…t/cmd/serve_vector_precheck_mainpath_sqlitevec_test.go1//go:build sqlite_vecCOMMENT
LOWcmd/msgvault/cmd/embed_vector_test.go281 assert.NotContains(t, got, "resume` again")COMMENT
LOWcmd/msgvault/cmd/embeddings_manage.go41 MessageCount int64COMMENT
LOWcmd/msgvault/cmd/embeddings_manage.go541 return fmt.Sprintf(COMMENT
LOWcmd/msgvault/cmd/embeddings_manage.go621 if err != nil {COMMENT
LOWcmd/msgvault/cmd/root.go61 // Errors from (2) (config load, logger setup) are runtimeCOMMENT
LOWcmd/msgvault/cmd/root.go341// silenceUsageOnce guards silenceUsageInRunE so each command's RunE isCOMMENT
LOWcmd/msgvault/cmd/embed_vector.go201 // true if the user agreed to proceed.COMMENT
LOWcmd/msgvault/cmd/embed_vector.go241 return gen, true, nilCOMMENT
LOWcmd/msgvault/cmd/embed_vector.go281 _, _ = fmt.Fprintf(opts.Stderr, "Using active generation %d (%s).\n", active.ID, active.Fingerprint)COMMENT
LOWinternal/beeper/importer.go21// O(chats) JSON, so rewriting it after every chat of a large account isCOMMENT
LOWinternal/beeper/types.go141COMMENT
LOWinternal/beeper/participants.go21// Beeper and native SMS/WhatsApp archives.COMMENT
LOWinternal/beeper/doc.go1// Package beeper archives chats from the local Beeper Desktop API into theCOMMENT
LOWinternal/deletion/manifest.go481 default:COMMENT
LOWinternal/imap/client.go41// WithListProgress sets a callback reporting mailbox-enumerationCOMMENT
LOWinternal/imap/folderstate.go21// WithFolderStates provides per-mailbox states saved after the lastCOMMENT
LOWinternal/fileutil/secure_windows.go141// SecureOpenFile opens the named file with specified flag and permissions.COMMENT
LOWinternal/fbmessenger/importer.go41COMMENT
LOWinternal/fbmessenger/types.go21// (e.g. a DYI metadata file). Callers should silently skip — theCOMMENT
LOWinternal/fbmessenger/types.go41 // Messages are sorted chronologically (ascending).COMMENT
LOWinternal/fbmessenger/types.go81}COMMENT
LOWinternal/fbmessenger/discover.go141 }COMMENT
LOWinternal/fbmessenger/discover.go181 // e2eeShapeThread: the file is a JSON object with at least both ofCOMMENT
LOWinternal/config/config.go201// LogConfig holds logging configuration. File logging is opt-in:COMMENT
LOWinternal/config/config.go501COMMENT
LOWinternal/config/config.go781 if src.Enabled && src.Schedule != "" {COMMENT
LOWinternal/sqldialect/sqldialect.go1// Package sqldialect carries the small SQL primitives that both theCOMMENT
LOWinternal/sqldialect/sqldialect.go41}COMMENT
LOWinternal/tui/model.go101 // Keys are scoped to the current ViewType to prevent collisions.COMMENT
LOWinternal/microsoft/oauth.go201COMMENT
LOWinternal/backupapp/content_source.go21// bytes from the production blob store (packs plus canonical loose files),COMMENT
LOWinternal/scheduler/scheduler_test.go1021// generation that has a below-watermark straggler. With a global time.TimeCOMMENT
LOWinternal/scheduler/embed_job.go41// Compile-time check that the production worker satisfies EmbedRunner.COMMENT
LOWinternal/scheduler/embed_job.go61 Backend vector.BackendCOMMENT
LOWinternal/scheduler/embed_job.go81 // BackstopInterval controls how often Run also performs a fullCOMMENT
LOWinternal/scheduler/embed_job.go101 // backstop throttle a different generation's first backstop — which wouldCOMMENT
LOWinternal/scheduler/embed_job.go161 // scans forward from the per-gen watermark, so below-watermarkCOMMENT
LOWinternal/scheduler/embed_job.go261 "succeeded", res.Succeeded,COMMENT
LOWinternal/scheduler/embed_job.go281// into an index whose existing vectors used a different policy,COMMENT
LOWinternal/search/parser.go281func NewParser() *Parser {COMMENT
LOWinternal/textutil/encoding.go141// where the first line itself may be excessively long (e.g. enmimeCOMMENT
260 more matches not shown…
Fake / Example Data134 hits · 151 pts
SeverityFileLineSnippetContext
LOWcmd/msgvault/cmd/root_test.go565 Expected: "user@example.com",CODE
LOWcmd/msgvault/cmd/root_test.go577 _, err := getTokenSourceWithReauth(context.Background(), mock, "user@example.com", true, gmailReauthHint)CODE
LOWcmd/msgvault/cmd/serve_test.go1048 imapEmail = "user@example.com"CODE
LOWcmd/msgvault/cmd/serve_test.go1096 imapEmail = "user@example.com"CODE
LOWcmd/msgvault/cmd/serve_test.go1102 `{"host":"127.0.0.1","port":1,"username":"user@example.com","tls":true}`,CODE
LOWcmd/msgvault/cmd/calendar_test.go80 assert.True(calendarSyncShouldRunFullForSources([]*store.Source{calendarSourceWithSyncConfig(`{"account_email":"user@exCODE
LOWcmd/msgvault/cmd/calendar_test.go395 got := calendarTokenExpiredOrRevoked(context.Background(), tt.prber, "user@example.com")CODE
LOWcmd/msgvault/cmd/calendar_test.go404 calendarSyncNextCommand("user@example.com", "personal", calendarSyncNextOptions{}))CODE
LOWcmd/msgvault/cmd/calendar_test.go407 calendarSyncNextCommand("user@example.com", "", calendarSyncNextOptions{}))CODE
LOWcmd/msgvault/cmd/calendar_test.go415 calendarSyncNextCommand("user@example.com", "personal", calendarSyncNextOptions{AllCalendars: true}))CODE
LOWcmd/msgvault/cmd/calendar_test.go418 calendarSyncNextCommand("user@example.com", "", calendarSyncNextOptions{MinAccessRole: "reader"}))CODE
LOWcmd/msgvault/cmd/calendar_test.go421 calendarSyncNextCommand("user@example.com", "", calendarSyncNextOptions{CODE
LOWcmd/msgvault/cmd/addaccount_test.go177 root.SetArgs([]string{"add-account", "user@example.com"})CODE
LOWcmd/msgvault/cmd/addaccount_test.go186 src, err := findGmailSource(s, "user@example.com")CODE
LOWcmd/msgvault/cmd/addaccount_test.go246 root.SetArgs([]string{"add-account", "user@example.com", "--no-default-identity"})CODE
LOWcmd/msgvault/cmd/addaccount_test.go254 src, err := findGmailSource(s, "user@example.com")CODE
LOWcmd/msgvault/cmd/addaccount_test.go502 "add-account", "user@example.com", "--oauth-app", "",CODE
LOWcmd/msgvault/cmd/addaccount_test.go570 "add-account", "user@example.com", "--oauth-app", "",CODE
LOWcmd/msgvault/cmd/addaccount_test.go783 root.SetArgs([]string{"add-account", "user@example.com"})CODE
LOWcmd/msgvault/cmd/addaccount_test.go791 src, err := findGmailSource(s, "user@example.com")CODE
LOWcmd/msgvault/cmd/addaccount_test.go798 assert.Equal("user@example.com", ids[0].Address, "address")CODE
LOWcmd/msgvault/cmd/addaccount_test.go854 root.SetArgs([]string{"add-account", "user@example.com", "--no-default-identity"})CODE
LOWcmd/msgvault/cmd/addaccount_test.go862 src, err := findGmailSource(s, "user@example.com")CODE
LOWcmd/msgvault/cmd/addaccount_test.go935 root.SetArgs([]string{"add-account", "user@example.com", "--no-default-identity"})CODE
LOWcmd/msgvault/cmd/addaccount_test.go952 src, err := findGmailSource(s, "user@example.com")CODE
LOWcmd/msgvault/cmd/addaccount_test.go1040 root.SetArgs([]string{"add-account", "user@example.com"})CODE
LOWcmd/msgvault/cmd/addaccount_test.go1048 src, err := findGmailSource(s, "user@example.com")CODE
LOWcmd/msgvault/cmd/addaccount_test.go1060 for _, want := range []string{"alias@example.com", "alt@work.com", "user@example.com"} {CODE
LOWcmd/msgvault/cmd/scope_escalation_test.go21const scopeEscalationAccount = "user@example.com"CODE
LOWcmd/msgvault/cmd/add_synctech_sms_drive_test.go36 "--google-account", "user@example.com",CODE
LOWcmd/msgvault/cmd/add_synctech_sms_drive_test.go45 for _, want := range []string{`[[synctech_sms.sources]]`, `name = "pixel"`, `backend = "drive"`, `folder_id = "drive-foCODE
LOWcmd/msgvault/cmd/add_synctech_sms_drive_test.go377 GoogleAccount: "user@example.com",CODE
LOWcmd/msgvault/cmd/verify_test.go129 "user@example.com",CODE
LOWcmd/msgvault/cmd/verify_test.go140 assert.Equal("user@example.com", got.Email)CODE
LOWcmd/msgvault/cmd/cache_staleness_test.go44 `INSERT INTO sources (id, source_type, identifier) VALUES (1, 'gmail', 'user@example.com')`)CODE
LOWinternal/beeper/mapping_test.go24 {"location with text keeps text", Message{Type: "LOCATION", Text: "123 Main St"}, "123 Main St"},CODE
LOWinternal/imap/xoauth2_test.go20 username: "user@example.com",CODE
LOWinternal/imap/xoauth2_test.go27 username: "user@example.com",CODE
LOWinternal/imap/xoauth2_test.go45 c := NewXOAuth2Client("user@example.com", "token")CODE
LOWinternal/imap/config_test.go18 cfg: Config{Host: "imap.example.com", Port: 993, TLS: true, Username: "user@example.com"},CODE
LOWinternal/imap/config_test.go23 cfg: Config{Host: "mail.example.com", Port: 143, STARTTLS: true, Username: "user@example.com"},CODE
LOWinternal/imap/config_test.go28 cfg: Config{Host: "mail.example.com", Port: 143, Username: "user@example.com"},CODE
LOWinternal/imap/config_test.go89 STARTTLS: true, Username: "user@example.com",CODE
LOWinternal/imap/config_test.go93 Username: "user@example.com",CODE
LOWinternal/imap/config_test.go106 cfg: Config{Host: "imap.example.com", Port: 993, TLS: true, Username: "user@example.com"},CODE
LOWinternal/imap/config_test.go110 cfg: Config{Host: "mail.example.com", Port: 143, STARTTLS: true, Username: "user@example.com"},CODE
LOWinternal/imap/config_test.go114 cfg: Config{Host: "mail.example.com", Port: 143, Username: "user@example.com"},CODE
LOWinternal/importer/pst_integration_test.go144 Identifier: "user@example.com",CODE
LOWinternal/importer/pst_import_test.go70 Identifier: "user@example.com",CODE
LOWinternal/importer/pst_import_test.go93 src, err := st.GetOrCreateSource("pst", "user@example.com")CODE
LOWinternal/importer/pst_import_test.go166 Identifier: "user@example.com",CODE
LOWinternal/oauth/oauth_test.go901 {"different domains", "user@example.com", "user@gmail.com", false},CODE
LOWinternal/oauth/oauth_test.go931 {"user@example.com", ""},CODE
LOWinternal/gvoice/parser_test.go62 wantName: "John Doe",CODE
LOWinternal/config/config_test.go293google_account = "user@example.com"CODE
LOWinternal/config/config_test.go307 require.Truef(src.Backend == "drive" && src.OwnerPhone == "+15550000001" && src.FolderID == "drive-folder-id" && src.GoCODE
LOWinternal/sqldialect/sqldialect_test.go46 {"email_address", "user@example.com",CODE
LOWinternal/tui/nav_view_test.go655 model.drillFilter = query.MessageFilter{SenderName: "John Doe"}CODE
LOWinternal/tui/nav_view_test.go658 assert.Equal(t, "John Doe", key)CODE
LOWinternal/tui/nav_view_test.go804 model.drillFilter = query.MessageFilter{RecipientName: "Jane Doe"}CODE
74 more matches not shown…
Structural Annotation Overuse41 hits · 78 pts
SeverityFileLineSnippetContext
LOWcmd/msgvault/cmd/setup.go49 // Step 1: Find or prompt for OAuth credentialsCOMMENT
LOWcmd/msgvault/cmd/setup.go55 // Step 2: Optionally configure remote NASCOMMENT
LOWcmd/msgvault/cmd/setup.go61 // Step 3: Update configCOMMENT
LOWcmd/msgvault/cmd/build_cache_test.go472 // Step 1: Initial full export (5 messages, 12 recipients).COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go477 // Step 2: Add new messages to SQLite, then incremental export.COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go499 // Step 3: Remove conversations dir (simulate legacy cache missing a table).COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go503 // Step 4: Backfill — no new messages, but conversations is missing.COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go509 // Step 5: Verify exact counts — no duplicates from stale incr_*.parquet.COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go546 // Step 1: Full export (5 messages, 12 recipients).COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go550 // Step 2: Delete message_recipients dir (simulate missing table).COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go554 // Step 3: Add new messages to SQLite (so maxID > lastMessageID).COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go567 // Step 4: Build — missing table + new messages should force full rebuild.COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go572 // Step 5: Verify ALL recipients present (12 original + 2 new = 14).COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go602 // Step 1: Full export to create all tables.COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go607 // Step 2: Remove the messages directory (simulate corruption/partial failure).COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go616 // Step 3: Build again — messages are missing but other tables exist.COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go1226 // Step 1: Full rebuild to create metadata parquet (sources, labels, etc.).COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go1232 // Step 2: Verify non-message parquet was created.COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go1237 // Step 3: Run non-full build — should skip, NOT trigger another full rebuild.COMMENT
LOWinternal/tui/nav_view_test.go565 // Step 1: Drill into alice (top-level, creates drillFilter with TimeMonth default)COMMENT
LOWinternal/tui/nav_view_test.go574 // Step 2: Tab to sub-aggregate viewCOMMENT
LOWinternal/tui/nav_view_test.go589 // Step 3: Enter on "2024" — this was the bugCOMMENT
LOWinternal/tui/nav_drill_test.go234 // Step 1: Drill down to message list (sets contextStats from alice's row)COMMENT
LOWinternal/tui/nav_drill_test.go245 // Step 2: Press Tab to go to sub-aggregate view (contextStats saved in breadcrumb)COMMENT
LOWinternal/tui/nav_drill_test.go257 // Step 3: Drill down from sub-aggregate to message list (contextStats overwritten)COMMENT
LOWinternal/tui/nav_drill_test.go264 // Step 4: Go back to sub-aggregate (contextStats should be restored to alice's stats)COMMENT
LOWinternal/tui/nav_drill_test.go431 // Step 1: Drill down from top-level to message list (Enter on alice)COMMENT
LOWinternal/tui/nav_drill_test.go436 // Step 2: Go to sub-aggregate view (Tab)COMMENT
LOWinternal/tui/nav_drill_test.go445 // Step 3: Select an aggregate in sub-aggregate view, then drill down with EnterCOMMENT
LOWinternal/vector/embed/worker.go453 // Step 1: upsert embeddings (VectorsDB side).COMMENT
LOWinternal/vector/embed/worker.go475 // Step 2: atomically skip-mark empty/missing rows and remove their staleCOMMENT
LOWdocs/guides/oauth-setup.md10### Step 1: Create a Google Cloud ProjectCOMMENT
LOWdocs/guides/oauth-setup.md16### Step 2: Enable Google APIsCOMMENT
LOWdocs/guides/oauth-setup.md23### Step 3: Configure OAuth Consent ScreenCOMMENT
LOWdocs/guides/oauth-setup.md41### Step 4: Create OAuth Client CredentialsCOMMENT
LOWdocs/guides/oauth-setup.md57### Step 5: Configure msgvaultCOMMENT
LOWdocs/guides/oauth-setup.md78### Step 6: Add Your AccountCOMMENT
LOWscripts/update-nix-flake.sh43# Step 1: Update version in nix/package.nix if a version tag was providedCOMMENT
LOWscripts/update-nix-flake.sh57# Step 2: Compute the correct vendorHashCOMMENT
LOWscripts/update-nix-flake.sh83# Step 3: Verify it actually buildsCOMMENT
LOWscripts/update-nix-flake.sh93# Step 4: Commit and open PRCOMMENT
Verbosity Indicators35 hits · 67 pts
SeverityFileLineSnippetContext
LOWcmd/msgvault/cmd/setup.go49 // Step 1: Find or prompt for OAuth credentialsCOMMENT
LOWcmd/msgvault/cmd/setup.go55 // Step 2: Optionally configure remote NASCOMMENT
LOWcmd/msgvault/cmd/setup.go61 // Step 3: Update configCOMMENT
LOWcmd/msgvault/cmd/build_cache_test.go472 // Step 1: Initial full export (5 messages, 12 recipients).COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go477 // Step 2: Add new messages to SQLite, then incremental export.COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go499 // Step 3: Remove conversations dir (simulate legacy cache missing a table).COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go503 // Step 4: Backfill — no new messages, but conversations is missing.COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go509 // Step 5: Verify exact counts — no duplicates from stale incr_*.parquet.COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go546 // Step 1: Full export (5 messages, 12 recipients).COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go550 // Step 2: Delete message_recipients dir (simulate missing table).COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go554 // Step 3: Add new messages to SQLite (so maxID > lastMessageID).COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go567 // Step 4: Build — missing table + new messages should force full rebuild.COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go572 // Step 5: Verify ALL recipients present (12 original + 2 new = 14).COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go602 // Step 1: Full export to create all tables.COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go607 // Step 2: Remove the messages directory (simulate corruption/partial failure).COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go616 // Step 3: Build again — messages are missing but other tables exist.COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go1226 // Step 1: Full rebuild to create metadata parquet (sources, labels, etc.).COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go1232 // Step 2: Verify non-message parquet was created.COMMENT
LOWcmd/msgvault/cmd/build_cache_test.go1237 // Step 3: Run non-full build — should skip, NOT trigger another full rebuild.COMMENT
LOWinternal/tui/nav_view_test.go565 // Step 1: Drill into alice (top-level, creates drillFilter with TimeMonth default)COMMENT
LOWinternal/tui/nav_view_test.go574 // Step 2: Tab to sub-aggregate viewCOMMENT
LOWinternal/tui/nav_view_test.go589 // Step 3: Enter on "2024" — this was the bugCOMMENT
LOWinternal/tui/nav_drill_test.go234 // Step 1: Drill down to message list (sets contextStats from alice's row)COMMENT
LOWinternal/tui/nav_drill_test.go245 // Step 2: Press Tab to go to sub-aggregate view (contextStats saved in breadcrumb)COMMENT
LOWinternal/tui/nav_drill_test.go257 // Step 3: Drill down from sub-aggregate to message list (contextStats overwritten)COMMENT
LOWinternal/tui/nav_drill_test.go264 // Step 4: Go back to sub-aggregate (contextStats should be restored to alice's stats)COMMENT
LOWinternal/tui/nav_drill_test.go431 // Step 1: Drill down from top-level to message list (Enter on alice)COMMENT
LOWinternal/tui/nav_drill_test.go436 // Step 2: Go to sub-aggregate view (Tab)COMMENT
LOWinternal/tui/nav_drill_test.go445 // Step 3: Select an aggregate in sub-aggregate view, then drill down with EnterCOMMENT
LOWinternal/vector/embed/worker.go453 // Step 1: upsert embeddings (VectorsDB side).COMMENT
LOWinternal/vector/embed/worker.go475 // Step 2: atomically skip-mark empty/missing rows and remove their staleCOMMENT
LOWscripts/update-nix-flake.sh43# Step 1: Update version in nix/package.nix if a version tag was providedCOMMENT
LOWscripts/update-nix-flake.sh57# Step 2: Compute the correct vendorHashCOMMENT
LOWscripts/update-nix-flake.sh83# Step 3: Verify it actually buildsCOMMENT
LOWscripts/update-nix-flake.sh93# Step 4: Commit and open PRCOMMENT
Magic Placeholder Names8 hits · 40 pts
SeverityFileLineSnippetContext
HIGHcmd/msgvault/cmd/quickstart.md286api_key = "your-api-key"CODE
HIGHdocs/guides/remote-deployment.md153 --to http://nas-ip:8080 --api-key YOUR_API_KEY --allow-insecureCODE
HIGHdocs/guides/remote-deployment.md170export MSGVAULT_REMOTE_API_KEY=YOUR_API_KEYCODE
HIGHdocs/guides/remote-deployment.md196curl -X POST -H "X-API-Key: YOUR_API_KEY" http://remote-host:8080/api/v1/sync/you@gmail.comCODE
HIGHdocs/guides/remote-deployment.md199curl -H "X-API-Key: YOUR_API_KEY" http://remote-host:8080/api/v1/scheduler/statusCODE
HIGHdocs/guides/remote-deployment.md219curl -H "X-API-Key: YOUR_API_KEY" http://remote-host:8080/api/v1/scheduler/statusCODE
HIGHdocs/guides/remote-deployment.md250api_key = "YOUR_API_KEY"CODE
HIGHdocs/guides/remote-deployment.md399curl -H "X-API-Key: YOUR_API_KEY" http://remote-host:8080/api/v1/accountsCODE
Modern AI Meta-Vocabulary6 hits · 17 pts
SeverityFileLineSnippetContext
MEDIUMCLAUDE.md34│ ├── sync/ # Sync orchestrationCODE
MEDIUMinternal/api/handlers_test.go6109// can't fetch raw MIME (Postgres scaffold, remote engine) surface a stableCOMMENT
MEDIUMdocs/usage/vector-search.md173### Matching `max_input_chars` to your embedder's context windowCOMMENT
MEDIUMdocs/architecture/overview.md24│ ├── calsync/ # Google Calendar sync orchestrationCODE
MEDIUMdocs/architecture/overview.md25│ ├── sync/ # Sync orchestrationCODE
MEDIUMdocs/architecture/overview.md27│ ├── importer/ # Local email import orchestrationCODE
AI Slop Vocabulary5 hits · 15 pts
SeverityFileLineSnippetContext
MEDIUMinternal/vector/pgvector/backend.go804// is robust under a busy pool. SET LOCAL is tx-scoped so the disabled timeoutCOMMENT
MEDIUMinternal/store/store.go62// This is more robust than strings.Contains on err.Error() because it firstCOMMENT
MEDIUMinternal/store/api.go141 // Use scanMessageRows for robust date parsingCOMMENT
MEDIUMinternal/store/dialect_pg.go155// robust against multibyte input that the SQL char cap cannot bound) andCOMMENT
MEDIUMinternal/store/dialect_sqlite.go392// the result code is more robust than substring matching: BUSY surfaces asCOMMENT
Decorative Section Separators4 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUMdocs/screenshots/generate-screenshots.sh49# =====================COMMENT
MEDIUMdocs/screenshots/generate-screenshots.sh51# =====================COMMENT
MEDIUMdocs/screenshots/generate-screenshots.sh271# =====================COMMENT
MEDIUMdocs/screenshots/generate-screenshots.sh273# =====================COMMENT
Self-Referential Comments2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMscripts/release.sh43# Create a temp file for the changelogCOMMENT
MEDIUMscripts/release.sh68# Create the tag with changelog as messageCOMMENT
Hyper-Verbose Identifiers5 hits · 4 pts
SeverityFileLineSnippetContext
LOWdocs/screenshots/generate_demo_data.py331def get_or_create_participant(conn: sqlite3.Connection, email: str, name: str | None = None) -> int:STRING
LOWdocs/scripts/check_built_site.py341def check_expected_asset_files() -> None:CODE
LOWdocs/scripts/check_built_site.py359def check_fragment_nav_labels(current: pathlib.Path, parser: LinkParser) -> None:CODE
LOWdocs/scripts/check_built_site.py369def check_public_site_file_inventory() -> None:CODE
LOWdocs/scripts/check_vercel_redirects.py28def validate_finite_json_numbers(path: str, value: object) -> None:CODE
Unused Imports3 hits · 3 pts
SeverityFileLineSnippetContext
LOWdocs/scripts/check_built_site.py2CODE
LOWdocs/scripts/check_markdown_sources.py2CODE
LOWdocs/scripts/check_vercel_redirects.py2CODE
Example Usage Blocks2 hits · 3 pts
SeverityFileLineSnippetContext
LOWscripts/update-nix-flake.sh5# Usage:COMMENT
LOWscripts/testify-coverage-diff.sh3# Usage:COMMENT
Redundant / Tautological Comments2 hits · 3 pts
SeverityFileLineSnippetContext
LOWscripts/release.sh25# Check if tag already existsCOMMENT
LOWscripts/release.sh37# Check if gh CLI is availableCOMMENT
Deep Nesting1 hit · 1 pts
SeverityFileLineSnippetContext
LOWdocs/scripts/check_built_site.py382CODE