first commit

This commit is contained in:
2026-08-09 18:03:09 +01:00
commit d7ca591b76
169 changed files with 51272 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
{"0": "TOTP & Web Token Auth", "1": "ACME/JWS Client", "2": "CalDAV/CardDAV Handlers", "3": "IMAP Command Parser", "4": "Mail Provider Abstraction", "5": "Server Config & Bootstrap", "6": "Sieve Filter Interpreter", "7": "DB Mutation Queries", "8": "IMAP Server Loop", "9": "POP3 Server Loop", "10": "JMAP Auth & Sessions", "11": "SMTP Session Header Parsing", "12": "Admin API Handlers", "13": "IMAP Client", "14": "DKIM Key Signing", "15": "Outbound Delivery Queue", "16": "SMTP Server Networking", "17": "Linked Account & Alias Queries", "18": "TCP Server Lifecycle", "19": "Calendar/Contact/TLS Queries", "20": "OAuth2 Config", "21": "Go-No-Deps Web App Pattern", "22": "GoMail Build Phases Overview", "23": "Quarantine & Message Queries", "24": "iCal Parsing & Fuzzing", "25": "LLM Spam Stage", "26": "vCard Parsing & Fuzzing", "27": "Admin Portal Bugs & CRUD", "28": "Spam Pipeline Orchestrator", "29": "SPF Stage", "30": "TCP Boundary & Rate-Limit Findings", "31": "Domain/Tenant Queries", "32": "Rspamd Stage", "33": "Per-IP Rate Limiter", "34": "ClamAV Stage", "35": "DMARC Stage", "36": "Spam Header Injection Stage", "37": "Iterative Build Discipline Skill", "38": "Deployment & DNS Setup", "39": "HTTP Middleware", "40": "URL Extraction Stage", "41": "SQLite Deadlock Findings", "42": "List Rule Queries", "43": "Sieve Script Queries", "44": "Mail Context Domain Helpers", "45": "Calendar Object Queries", "46": "Contact Queries", "47": "Shared api() Fetch Convention", "48": "Session Continuity Practices", "49": "Scope Prioritization Practices", "50": "DB Migrations", "51": "Shared esc() Helper", "52": "SPA Login/Logout", "53": "SPA App Boot/Routing", "54": "Graphify Project Rules", "55": "Embedded Assets (admin)", "56": "Admin Handlers Entry", "57": "Admin Dashboard Loader", "58": "Admin SPA Router", "59": "Webmail Bootstrap", "60": "Embedded Assets (webmail)", "61": "Raw MIME Body Extractor", "62": "Webmail Message Actions", "63": "Go Module Root"}
+1
View File
@@ -0,0 +1 @@
/home/haku/.local/share/uv/tools/graphifyy/bin/python
+1
View File
@@ -0,0 +1 @@
/home/haku/projects/webmail
+305
View File
@@ -0,0 +1,305 @@
# Graph Report - . (2026-08-09)
## Corpus Check
- 78 files · ~64,934 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
- 953 nodes · 2017 edges · 64 communities (48 shown, 16 thin omitted)
- Extraction: 91% EXTRACTED · 8% INFERRED · 0% AMBIGUOUS · INFERRED: 170 edges (avg confidence: 0.82)
- Token cost: 134,823 input · 0 output
## Community Hubs (Navigation)
- TOTP & Web Token Auth
- ACME/JWS Client
- CalDAV/CardDAV Handlers
- IMAP Command Parser
- Mail Provider Abstraction
- Server Config & Bootstrap
- Sieve Filter Interpreter
- DB Mutation Queries
- IMAP Server Loop
- POP3 Server Loop
- JMAP Auth & Sessions
- SMTP Session Header Parsing
- Admin API Handlers
- IMAP Client
- DKIM Key Signing
- Outbound Delivery Queue
- SMTP Server Networking
- Linked Account & Alias Queries
- TCP Server Lifecycle
- Calendar/Contact/TLS Queries
- OAuth2 Config
- Go-No-Deps Web App Pattern
- GoMail Build Phases Overview
- Quarantine & Message Queries
- iCal Parsing & Fuzzing
- LLM Spam Stage
- vCard Parsing & Fuzzing
- Admin Portal Bugs & CRUD
- Spam Pipeline Orchestrator
- SPF Stage
- TCP Boundary & Rate-Limit Findings
- Domain/Tenant Queries
- Rspamd Stage
- Per-IP Rate Limiter
- ClamAV Stage
- DMARC Stage
- Spam Header Injection Stage
- Iterative Build Discipline Skill
- Deployment & DNS Setup
- HTTP Middleware
- URL Extraction Stage
- SQLite Deadlock Findings
- List Rule Queries
- Sieve Script Queries
- Mail Context Domain Helpers
- Calendar Object Queries
- Contact Queries
- Shared api() Fetch Convention
- Session Continuity Practices
- Scope Prioritization Practices
- DB Migrations
- Shared esc() Helper
- SPA Login/Logout
- SPA App Boot/Routing
- Graphify Project Rules
- Admin SPA Router
- Raw MIME Body Extractor
- Go Module Root
## God Nodes (most connected - your core abstractions)
1. `DB` - 77 edges
2. `User` - 56 edges
3. `Handler` - 35 edges
4. `Store` - 27 edges
5. `session` - 25 edges
6. `session` - 25 edges
7. `writeJSON()` - 24 edges
8. `writeErr()` - 24 edges
9. `MasterKey` - 23 edges
10. `session` - 20 edges
## Surprising Connections (you probably didn't know these)
- `base.html Flask-style Block Layout` --conceptually_related_to--> `GoMail Webmail SPA (index.html)` [AMBIGUOUS]
.claude/go-web-app-no-deps-SKILL.md → internal/webmail/static/index.html
- `Dark Tailwind CSS Custom-Property Palette` --semantically_similar_to--> `GoMail Admin SPA (index.html)` [INFERRED] [semantically similar]
.claude/go-web-app-no-deps-SKILL.md → internal/admin/static/index.html
- `Dark Tailwind CSS Custom-Property Palette` --semantically_similar_to--> `GoMail Webmail SPA (index.html)` [INFERRED] [semantically similar]
.claude/go-web-app-no-deps-SKILL.md → internal/webmail/static/index.html
- `Shared api() Fetch Helper Convention` --semantically_similar_to--> `api() fetch helper (admin)` [INFERRED] [semantically similar]
.claude/go-web-app-no-deps-SKILL.md → internal/admin/static/index.html
- `Shared api() Fetch Helper Convention` --semantically_similar_to--> `api() fetch helper (webmail)` [INFERRED] [semantically similar]
.claude/go-web-app-no-deps-SKILL.md → internal/webmail/static/index.html
## Import Cycles
- None detected.
## Hyperedges (group relationships)
- **GoMail Project Documentation Set** — gomail_handover_overview, readme_gomail, gomail_action_plan_v4_overview, _claude_iterative_build_discipline_skill_gomail_project [INFERRED 0.85]
- **Admin Portal CRUD Feature Set** — internal_admin_static_index_domains_crud, internal_admin_static_index_users_crud, internal_admin_static_index_rules_crud, internal_admin_static_index_queue_crud, internal_admin_static_index_quarantine [EXTRACTED 1.00]
- **Recurring Bug-Pattern Documentation Across GoMail Docs** — _claude_iterative_build_discipline_skill_sqlite_single_conn, gomail_handover_sqlite_deadlock_bug, gomail_action_plan_v4_sqlite_deadlock_bug, _claude_iterative_build_discipline_skill_tcp_read_pattern, gomail_handover_tcp_bug, gomail_action_plan_v4_tcp_bug [INFERRED 0.85]
## Communities (64 total, 16 thin omitted)
### Community 0 - "TOTP & Web Token Auth"
Cohesion: 0.10
Nodes (34): User, decodeSecret(), Generate(), GenerateSecret(), Time, hotp(), ProvisioningURI(), Validate() (+26 more)
### Community 1 - "ACME/JWS Client"
Cohesion: 0.06
Nodes (31): AccountKey, Authorization, Challenge, ChallengeResponder, Client, directory, jwk, Order (+23 more)
### Community 2 - "CalDAV/CardDAV Handlers"
Cohesion: 0.08
Nodes (34): MailProvider, MasterKey, Handler, multistatusResponse, propSet, LinkedAccountProvider, Config, DB (+26 more)
### Community 3 - "IMAP Command Parser"
Cohesion: 0.06
Nodes (24): MailboxEntry, state, addFlag(), expandFetchItems(), extractHeaders(), flagsToIMAP(), session, indexOf() (+16 more)
### Community 4 - "Mail Provider Abstraction"
Cohesion: 0.09
Nodes (25): Folder, FullMessage, GoMailProvider, IMAPCredential, IMAPProvider, ListOpts, MessageHeader, OAuth2Credential (+17 more)
### Community 5 - "Server Config & Bootstrap"
Cohesion: 0.09
Nodes (30): buildOAuthConfigs(), Config, main(), Config, DatabaseConfig, JMAPConfig, LinkedAccountsConfig, NotifyConfig (+22 more)
### Community 6 - "Sieve Filter Interpreter"
Cohesion: 0.12
Nodes (20): evalTest(), execStatements(), Execute(), lookupHeader(), newLexer(), Parse(), FuzzParse(), F (+12 more)
### Community 8 - "IMAP Server Loop"
Cohesion: 0.12
Nodes (17): Config, Context, DB, Duration, Listener, WaitGroup, NewServer(), escapeQuoted() (+9 more)
### Community 9 - "POP3 Server Loop"
Cohesion: 0.15
Nodes (13): Config, Conn, Context, DB, Duration, Listener, ReadWriter, WaitGroup (+5 more)
### Community 10 - "JMAP Auth & Sessions"
Cohesion: 0.12
Nodes (20): Scope, Authenticate(), checkAppPassword(), DB, Context, DB, Request, ResponseWriter (+12 more)
### Community 11 - "SMTP Session Header Parsing"
Cohesion: 0.16
Nodes (15): extractHeader(), extractHeaderMap(), extractMessageID(), extractSubject(), Conn, Context, IP, ReadWriter (+7 more)
### Community 12 - "Admin API Handlers"
Cohesion: 0.20
Nodes (14): filterDomainsByTenant(), Handler, DB, HandlerFunc, Request, ResponseWriter, ServeMux, NewHandler() (+6 more)
### Community 13 - "IMAP Client"
Cohesion: 0.15
Nodes (12): Client, FetchedMessage, FolderInfo, SelectedInfo, Dial(), Config, Conn, Duration (+4 more)
### Community 14 - "DKIM Key Signing"
Cohesion: 0.14
Nodes (20): KeyPair, ExtractSignatureInfo(), GenerateKeyPair(), PrivateKey, ParseDNSPublicKey(), ParsePrivateKey(), buildDKIMHeader(), canonicalizeBodyRelaxed() (+12 more)
### Community 15 - "Outbound Delivery Queue"
Cohesion: 0.18
Nodes (11): backoffDuration(), domainOf(), DB, Duration, isPermanentError(), lookupMXHosts(), NewWorker(), Deliverer (+3 more)
### Community 16 - "SMTP Server Networking"
Cohesion: 0.19
Nodes (14): connHost(), Addr, Config, Conn, Context, DB, Duration, Limiter (+6 more)
### Community 17 - "Linked Account & Alias Queries"
Cohesion: 0.14
Nodes (11): Alias, AppPassword, CheckResult, LinkedAccount, LinkedAccountAuthType, MessageCheck, MFABackupCode, ReleaseToken (+3 more)
### Community 18 - "TCP Server Lifecycle"
Cohesion: 0.20
Nodes (11): Server, connHost(), Addr, Config, Context, DB, Duration, Limiter (+3 more)
### Community 19 - "Calendar/Contact/TLS Queries"
Cohesion: 0.19
Nodes (6): Addressbook, Calendar, OwnerType, Stats, TLSCert, uuidNew()
### Community 20 - "OAuth2 Config"
Cohesion: 0.23
Nodes (9): Context, Time, truncate(), WellKnownEndpoints(), XOAUTH2SASLString(), Config, Token, tokenResponse (+1 more)
### Community 21 - "Go-No-Deps Web App Pattern"
Cohesion: 0.21
Nodes (13): go-web-app-no-deps Packaged Skill (.skill zip), base.html Flask-style Block Layout, Template Block Bleeding Bug (ParseGlob shared namespace), Static Asset Cache-Busting via Version Query Param, Dark Tailwind CSS Custom-Property Palette, JS Function-in-Conditional Scoping Bug, No-Third-Party-Dependencies Principle, Go Web App No-Deps Pattern (skill) (+5 more)
### Community 22 - "GoMail Build Phases Overview"
Cohesion: 0.21
Nodes (12): GoMail (referenced project), Wire-Format Structs Need Explicit Serialization Tags, cmd/e2etestN Disposable Test Pattern, GoMail Action Plan v4 Overview, Phase 5: IMAP/POP3/Auth, Phase 7: CalDAV/CardDAV, Phase 8: Webmail (JWT + REST API + SPA), Phase 9: JMAP Core/Mail Subset (+4 more)
### Community 23 - "Quarantine & Message Queries"
Cohesion: 0.15
Nodes (5): Message, MessageVerdict, QuarantineEntry, QuarantineStatus, Time
### Community 24 - "iCal Parsing & Fuzzing"
Cohesion: 0.24
Nodes (9): Event, escape(), FuzzParse(), F, Time, Parse(), splitProperty(), unescape() (+1 more)
### Community 25 - "LLM Spam Stage"
Cohesion: 0.29
Nodes (7): extractLeadingDigits(), Context, Duration, chatCompletionRequest, chatCompletionResponse, chatMessage, LLMStage
### Community 26 - "vCard Parsing & Fuzzing"
Cohesion: 0.27
Nodes (8): escape(), FuzzParse(), F, Parse(), splitProperty(), unescape(), unfold(), Card
### Community 27 - "Admin Portal Bugs & CRUD"
Cohesion: 0.29
Nodes (10): Admin Domain Creation Missing Tenant Fallback Bug, Admin User Creation Missing domain_id Bug, Phase 11: Admin Portal, Quarantine: Admin Global Discard vs Webmail Per-User Release, Domains CRUD (loadDomains/createDomain/rotateDkim/deleteDomain), Quarantine Discard (admin), Outbound Queue Actions (retry/cancel), List Rules CRUD (+2 more)
### Community 28 - "Spam Pipeline Orchestrator"
Cohesion: 0.40
Nodes (8): DefaultStages(), Config, Context, NewOrchestrator(), StagesFromConfig(), verdictFor(), Orchestrator, Stage
### Community 29 - "SPF Stage"
Cohesion: 0.40
Nodes (7): checkSPF(), evaluateSPF(), Context, IP, matchCIDR(), spfOutcome, SPFStage
### Community 30 - "TCP Boundary & Rate-Limit Findings"
Cohesion: 0.25
Nodes (9): bufio.Reader + io.ReadFull for TCP Protocol Boundaries, Genuine EICAR Byte-Level ClamAV Verification, Phase 10: OAuth2 + Gmail/M365 Multi-Account, Phase 14: Optional External Services (ClamAV/Rspamd/LLM), Phase 15: Hardening + Deploy, Token-Bucket Per-IP Rate Limiter, Fake clamd Server TCP Over-Read Bug, Suggested Next Session Scope (+1 more)
### Community 32 - "Rspamd Stage"
Cohesion: 0.36
Nodes (5): Context, Duration, rspamdResponse, RspamdStage, rspamdSymbol
### Community 33 - "Per-IP Rate Limiter"
Cohesion: 0.33
Nodes (5): Mutex, Limiter, Time, New(), bucket
### Community 34 - "ClamAV Stage"
Cohesion: 0.39
Nodes (4): Context, Duration, parseClamAddr(), ClamAVStage
### Community 35 - "DMARC Stage"
Cohesion: 0.39
Nodes (5): dmarcTag(), extractDomainFromHeader(), Context, orgDomain(), DMARCStage
### Community 36 - "Spam Header Injection Stage"
Cohesion: 0.33
Nodes (4): Context, injectSpamHeaders(), HeaderStage, StageResult
### Community 37 - "Iterative Build Discipline Skill"
Cohesion: 0.33
Nodes (6): iterative-build-discipline Packaged Skill (.skill zip), Core Principle: Compiles is Not Correct, Disposable Real End-to-End Test Pattern, Genuinely-Enforcing Fake Protocol Server Pattern, Negative-Path Tests as Non-Optional, Verify Against Published Test Vectors (RFC 6238)
### Community 38 - "Deployment & DNS Setup"
Cohesion: 0.47
Nodes (6): Phase 13: TLS + ACME + DANE/MTA-STS, Sandbox Network/Toolchain Constraints, Immediate First Steps Setup, DNS Setup (MX/SPF/DKIM/DMARC), GoMail (Self-Hosted Email Server), TLS / ACME Quick Setup
### Community 39 - "HTTP Middleware"
Cohesion: 0.33
Nodes (4): Handler, clientIP(), Limiter, Request
### Community 40 - "URL Extraction Stage"
Cohesion: 0.47
Nodes (3): dedupe(), Context, URLStage
### Community 41 - "SQLite Deadlock Findings"
Cohesion: 0.50
Nodes (5): SQLite Single-Connection-Pool Query/Exec Deadlock Pattern, Phase 12: Auth Hardening (TOTP/App Passwords/Reset), Rationale: Phase 13 Pulled Forward, ConsumeBackupCode SQLite Deadlock Bug, SQLite Query+Exec Deadlock Bug (documented)
### Community 44 - "Mail Context Domain Helpers"
Cohesion: 0.50
Nodes (3): domainOf(), IP, MailContext
### Community 47 - "Shared api() Fetch Convention"
Cohesion: 1.00
Nodes (3): Shared api() Fetch Helper Convention, api() fetch helper (admin), api() fetch helper (webmail)
## Ambiguous Edges - Review These
- `Template Renderer (fresh-instance-per-page)``GoMail Admin SPA (index.html)` [AMBIGUOUS]
.claude/go-web-app-no-deps-SKILL.md · relation: conceptually_related_to
- `base.html Flask-style Block Layout``GoMail Webmail SPA (index.html)` [AMBIGUOUS]
.claude/go-web-app-no-deps-SKILL.md · relation: conceptually_related_to
- `Security Basics: CSRF/Path-Traversal/Atomic-Write/CSP``GoMail Admin SPA (index.html)` [AMBIGUOUS]
.claude/go-web-app-no-deps-SKILL.md · relation: conceptually_related_to
- `Security Basics: CSRF/Path-Traversal/Atomic-Write/CSP``GoMail Webmail SPA (index.html)` [AMBIGUOUS]
.claude/go-web-app-no-deps-SKILL.md · relation: conceptually_related_to
## Knowledge Gaps
- **23 isolated node(s):** `webmail`, `IMAPCredential`, `DB`, `migration`, `response` (+18 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **16 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
## Suggested Questions
_Questions this graph is uniquely positioned to answer:_
- **What is the exact relationship between `Template Renderer (fresh-instance-per-page)` and `GoMail Admin SPA (index.html)`?**
_Edge tagged AMBIGUOUS (relation: conceptually_related_to) - confidence is low._
- **What is the exact relationship between `base.html Flask-style Block Layout` and `GoMail Webmail SPA (index.html)`?**
_Edge tagged AMBIGUOUS (relation: conceptually_related_to) - confidence is low._
- **What is the exact relationship between `Security Basics: CSRF/Path-Traversal/Atomic-Write/CSP` and `GoMail Admin SPA (index.html)`?**
_Edge tagged AMBIGUOUS (relation: conceptually_related_to) - confidence is low._
- **What is the exact relationship between `Security Basics: CSRF/Path-Traversal/Atomic-Write/CSP` and `GoMail Webmail SPA (index.html)`?**
_Edge tagged AMBIGUOUS (relation: conceptually_related_to) - confidence is low._
- **Why does `User` connect `TOTP & Web Token Auth` to `CalDAV/CardDAV Handlers`, `IMAP Command Parser`, `Mail Provider Abstraction`, `DB Mutation Queries`, `IMAP Server Loop`, `POP3 Server Loop`, `JMAP Auth & Sessions`, `SMTP Session Header Parsing`, `Admin API Handlers`, `Linked Account & Alias Queries`?**
_High betweenness centrality (0.323) - this node is a cross-community bridge._
- **Why does `Store` connect `CalDAV/CardDAV Handlers` to `TOTP & Web Token Auth`, `Mail Provider Abstraction`, `POP3 Server Loop`, `JMAP Auth & Sessions`, `Outbound Delivery Queue`, `SMTP Server Networking`, `TCP Server Lifecycle`?**
_High betweenness centrality (0.109) - this node is a cross-community bridge._
- **Why does `DB` connect `DB Mutation Queries` to `IMAP Command Parser`, `List Rule Queries`, `Sieve Script Queries`, `Calendar Object Queries`, `Contact Queries`, `Linked Account & Alias Queries`, `Calendar/Contact/TLS Queries`, `Quarantine & Message Queries`, `Domain/Tenant Queries`?**
_High betweenness centrality (0.098) - this node is a cross-community bridge._
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "$graphify-root$_internal_accounts_provider_go", "label": "provider.go", "file_type": "code", "source_file": "internal/accounts/provider.go", "source_location": "L1"}, {"id": "accounts_folder", "label": "Folder", "file_type": "code", "source_file": "internal/accounts/provider.go", "source_location": "L10"}, {"id": "accounts_messageheader", "label": "MessageHeader", "file_type": "code", "source_file": "internal/accounts/provider.go", "source_location": "L18"}, {"id": "accounts_fullmessage", "label": "FullMessage", "file_type": "code", "source_file": "internal/accounts/provider.go", "source_location": "L29"}, {"id": "accounts_outgoingmessage", "label": "OutgoingMessage", "file_type": "code", "source_file": "internal/accounts/provider.go", "source_location": "L34"}, {"id": "accounts_listopts", "label": "ListOpts", "file_type": "code", "source_file": "internal/accounts/provider.go", "source_location": "L43"}, {"id": "accounts_syncresult", "label": "SyncResult", "file_type": "code", "source_file": "internal/accounts/provider.go", "source_location": "L48"}, {"id": "accounts_mailprovider", "label": "MailProvider", "file_type": "code", "source_file": "internal/accounts/provider.go", "source_location": "L58"}], "edges": [{"source": "$graphify-root$_internal_accounts_provider_go", "target": "go_pkg_context", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/accounts/provider.go", "source_location": "L8", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_accounts_provider_go", "target": "accounts_folder", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/accounts/provider.go", "source_location": "L10", "weight": 1.0}, {"source": "$graphify-root$_internal_accounts_provider_go", "target": "accounts_messageheader", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/accounts/provider.go", "source_location": "L18", "weight": 1.0}, {"source": "$graphify-root$_internal_accounts_provider_go", "target": "accounts_fullmessage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/accounts/provider.go", "source_location": "L29", "weight": 1.0}, {"source": "accounts_fullmessage", "target": "accounts_messageheader", "relation": "embeds", "confidence": "EXTRACTED", "source_file": "internal/accounts/provider.go", "source_location": "L30", "weight": 1.0}, {"source": "$graphify-root$_internal_accounts_provider_go", "target": "accounts_outgoingmessage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/accounts/provider.go", "source_location": "L34", "weight": 1.0}, {"source": "$graphify-root$_internal_accounts_provider_go", "target": "accounts_listopts", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/accounts/provider.go", "source_location": "L43", "weight": 1.0}, {"source": "$graphify-root$_internal_accounts_provider_go", "target": "accounts_syncresult", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/accounts/provider.go", "source_location": "L48", "weight": 1.0}, {"source": "accounts_syncresult", "target": "accounts_messageheader", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/accounts/provider.go", "source_location": "L50", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_internal_accounts_provider_go", "target": "accounts_mailprovider", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/accounts/provider.go", "source_location": "L58", "weight": 1.0}], "raw_calls": []}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "$graphify-root$_internal_webmail_embed_go", "label": "embed.go", "file_type": "code", "source_file": "internal/webmail/embed.go", "source_location": "L1"}], "edges": [{"source": "$graphify-root$_internal_webmail_embed_go", "target": "go_pkg_embed", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/webmail/embed.go", "source_location": "L3", "weight": 1.0, "context": "import"}], "raw_calls": []}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "$graphify-root$_internal_admin_embed_go", "label": "embed.go", "file_type": "code", "source_file": "internal/admin/embed.go", "source_location": "L1"}], "edges": [{"source": "$graphify-root$_internal_admin_embed_go", "target": "go_pkg_embed", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/admin/embed.go", "source_location": "L3", "weight": 1.0, "context": "import"}], "raw_calls": []}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "$graphify-root$_internal_db_migrations_go", "label": "migrations.go", "file_type": "code", "source_file": "internal/db/migrations.go", "source_location": "L1"}, {"id": "db_migration", "label": "migration", "file_type": "code", "source_file": "internal/db/migrations.go", "source_location": "L7"}], "edges": [{"source": "$graphify-root$_internal_db_migrations_go", "target": "db_migration", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/db/migrations.go", "source_location": "L7", "weight": 1.0}], "raw_calls": []}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "$graphify-root$_internal_ical_ical_fuzz_test_go", "label": "ical_fuzz_test.go", "file_type": "code", "source_file": "internal/ical/ical_fuzz_test.go", "source_location": "L1"}, {"id": "$graphify-root$_internal_ical_ical_fuzz_test_fuzzparse", "label": "FuzzParse()", "file_type": "code", "source_file": "internal/ical/ical_fuzz_test.go", "source_location": "L5"}, {"id": "f", "label": "F", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/ical/ical_fuzz_test.go"}], "edges": [{"source": "$graphify-root$_internal_ical_ical_fuzz_test_go", "target": "go_pkg_testing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/ical/ical_fuzz_test.go", "source_location": "L3", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_ical_ical_fuzz_test_go", "target": "$graphify-root$_internal_ical_ical_fuzz_test_fuzzparse", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/ical/ical_fuzz_test.go", "source_location": "L5", "weight": 1.0}, {"source": "$graphify-root$_internal_ical_ical_fuzz_test_fuzzparse", "target": "f", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/ical/ical_fuzz_test.go", "source_location": "L5", "weight": 1.0, "context": "parameter_type"}], "raw_calls": [{"caller_nid": "$graphify-root$_internal_ical_ical_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/ical/ical_fuzz_test.go", "source_location": "L6"}, {"caller_nid": "$graphify-root$_internal_ical_ical_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/ical/ical_fuzz_test.go", "source_location": "L7"}, {"caller_nid": "$graphify-root$_internal_ical_ical_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/ical/ical_fuzz_test.go", "source_location": "L8"}, {"caller_nid": "$graphify-root$_internal_ical_ical_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/ical/ical_fuzz_test.go", "source_location": "L9"}, {"caller_nid": "$graphify-root$_internal_ical_ical_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/ical/ical_fuzz_test.go", "source_location": "L10"}, {"caller_nid": "$graphify-root$_internal_ical_ical_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/ical/ical_fuzz_test.go", "source_location": "L11"}, {"caller_nid": "$graphify-root$_internal_ical_ical_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/ical/ical_fuzz_test.go", "source_location": "L12"}, {"caller_nid": "$graphify-root$_internal_ical_ical_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/ical/ical_fuzz_test.go", "source_location": "L13"}, {"caller_nid": "$graphify-root$_internal_ical_ical_fuzz_test_fuzzparse", "callee": "Fuzz", "is_member_call": true, "language": "go", "source_file": "internal/ical/ical_fuzz_test.go", "source_location": "L15"}, {"caller_nid": "$graphify-root$_internal_ical_ical_fuzz_test_fuzzparse", "callee": "Fatalf", "is_member_call": true, "language": "go", "source_file": "internal/ical/ical_fuzz_test.go", "source_location": "L18"}, {"caller_nid": "$graphify-root$_internal_ical_ical_fuzz_test_fuzzparse", "callee": "Parse", "is_member_call": false, "language": "go", "source_file": "internal/ical/ical_fuzz_test.go", "source_location": "L21"}]}
@@ -0,0 +1 @@
{"nodes": [{"id": "$graphify-root$_internal_vcard_vcard_fuzz_test_go", "label": "vcard_fuzz_test.go", "file_type": "code", "source_file": "internal/vcard/vcard_fuzz_test.go", "source_location": "L1"}, {"id": "$graphify-root$_internal_vcard_vcard_fuzz_test_fuzzparse", "label": "FuzzParse()", "file_type": "code", "source_file": "internal/vcard/vcard_fuzz_test.go", "source_location": "L5"}, {"id": "f", "label": "F", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/vcard/vcard_fuzz_test.go"}], "edges": [{"source": "$graphify-root$_internal_vcard_vcard_fuzz_test_go", "target": "go_pkg_testing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/vcard/vcard_fuzz_test.go", "source_location": "L3", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_vcard_vcard_fuzz_test_go", "target": "$graphify-root$_internal_vcard_vcard_fuzz_test_fuzzparse", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/vcard/vcard_fuzz_test.go", "source_location": "L5", "weight": 1.0}, {"source": "$graphify-root$_internal_vcard_vcard_fuzz_test_fuzzparse", "target": "f", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/vcard/vcard_fuzz_test.go", "source_location": "L5", "weight": 1.0, "context": "parameter_type"}], "raw_calls": [{"caller_nid": "$graphify-root$_internal_vcard_vcard_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/vcard/vcard_fuzz_test.go", "source_location": "L6"}, {"caller_nid": "$graphify-root$_internal_vcard_vcard_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/vcard/vcard_fuzz_test.go", "source_location": "L7"}, {"caller_nid": "$graphify-root$_internal_vcard_vcard_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/vcard/vcard_fuzz_test.go", "source_location": "L8"}, {"caller_nid": "$graphify-root$_internal_vcard_vcard_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/vcard/vcard_fuzz_test.go", "source_location": "L9"}, {"caller_nid": "$graphify-root$_internal_vcard_vcard_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/vcard/vcard_fuzz_test.go", "source_location": "L10"}, {"caller_nid": "$graphify-root$_internal_vcard_vcard_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/vcard/vcard_fuzz_test.go", "source_location": "L11"}, {"caller_nid": "$graphify-root$_internal_vcard_vcard_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/vcard/vcard_fuzz_test.go", "source_location": "L12"}, {"caller_nid": "$graphify-root$_internal_vcard_vcard_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/vcard/vcard_fuzz_test.go", "source_location": "L13"}, {"caller_nid": "$graphify-root$_internal_vcard_vcard_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/vcard/vcard_fuzz_test.go", "source_location": "L14"}, {"caller_nid": "$graphify-root$_internal_vcard_vcard_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/vcard/vcard_fuzz_test.go", "source_location": "L15"}, {"caller_nid": "$graphify-root$_internal_vcard_vcard_fuzz_test_fuzzparse", "callee": "Fuzz", "is_member_call": true, "language": "go", "source_file": "internal/vcard/vcard_fuzz_test.go", "source_location": "L17"}, {"caller_nid": "$graphify-root$_internal_vcard_vcard_fuzz_test_fuzzparse", "callee": "Fatalf", "is_member_call": true, "language": "go", "source_file": "internal/vcard/vcard_fuzz_test.go", "source_location": "L24"}, {"caller_nid": "$graphify-root$_internal_vcard_vcard_fuzz_test_fuzzparse", "callee": "Parse", "is_member_call": false, "language": "go", "source_file": "internal/vcard/vcard_fuzz_test.go", "source_location": "L27"}]}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "$graphify-root$_internal_smtp_auth_go", "label": "auth.go", "file_type": "code", "source_file": "internal/smtp/auth.go", "source_location": "L1"}, {"id": "$graphify-root$_internal_smtp_auth_authenticate", "label": "authenticate()", "file_type": "code", "source_file": "internal/smtp/auth.go", "source_location": "L9"}, {"id": "db", "label": "DB", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/smtp/auth.go"}, {"id": "user", "label": "User", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/smtp/auth.go"}], "edges": [{"source": "$graphify-root$_internal_smtp_auth_go", "target": "go_pkg_gomail_internal_auth", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/smtp/auth.go", "source_location": "L4", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_smtp_auth_go", "target": "go_pkg_gomail_internal_db", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/smtp/auth.go", "source_location": "L5", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_smtp_auth_go", "target": "$graphify-root$_internal_smtp_auth_authenticate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/smtp/auth.go", "source_location": "L9", "weight": 1.0}, {"source": "$graphify-root$_internal_smtp_auth_authenticate", "target": "db", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/smtp/auth.go", "source_location": "L9", "weight": 1.0, "context": "parameter_type"}, {"source": "$graphify-root$_internal_smtp_auth_authenticate", "target": "user", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/smtp/auth.go", "source_location": "L9", "weight": 1.0, "context": "return_type"}], "raw_calls": [{"caller_nid": "$graphify-root$_internal_smtp_auth_authenticate", "callee": "Authenticate", "is_member_call": false, "language": "go", "source_file": "internal/smtp/auth.go", "source_location": "L10"}]}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "$graphify-root$_internal_ratelimit_http_go", "label": "http.go", "file_type": "code", "source_file": "internal/ratelimit/http.go", "source_location": "L1"}, {"id": "ratelimit_limiter", "label": "Limiter", "file_type": "code", "source_file": "internal/ratelimit/http.go", "source_location": "L14"}, {"id": "ratelimit_limiter_httpmiddleware", "label": ".HTTPMiddleware()", "file_type": "code", "source_file": "internal/ratelimit/http.go", "source_location": "L14"}, {"id": "handler", "label": "Handler", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/ratelimit/http.go"}, {"id": "$graphify-root$_internal_ratelimit_http_clientip", "label": "clientIP()", "file_type": "code", "source_file": "internal/ratelimit/http.go", "source_location": "L26"}, {"id": "request", "label": "Request", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/ratelimit/http.go"}], "edges": [{"source": "$graphify-root$_internal_ratelimit_http_go", "target": "go_pkg_net", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/ratelimit/http.go", "source_location": "L4", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_ratelimit_http_go", "target": "go_pkg_net_http", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/ratelimit/http.go", "source_location": "L5", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_ratelimit_http_go", "target": "go_pkg_strings", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/ratelimit/http.go", "source_location": "L6", "weight": 1.0, "context": "import"}, {"source": "ratelimit_limiter", "target": "ratelimit_limiter_httpmiddleware", "relation": "method", "confidence": "EXTRACTED", "source_file": "internal/ratelimit/http.go", "source_location": "L14", "weight": 1.0}, {"source": "ratelimit_limiter_httpmiddleware", "target": "handler", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/ratelimit/http.go", "source_location": "L14", "weight": 1.0, "context": "parameter_type"}, {"source": "ratelimit_limiter_httpmiddleware", "target": "handler", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/ratelimit/http.go", "source_location": "L14", "weight": 1.0, "context": "return_type"}, {"source": "$graphify-root$_internal_ratelimit_http_go", "target": "$graphify-root$_internal_ratelimit_http_clientip", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/ratelimit/http.go", "source_location": "L26", "weight": 1.0}, {"source": "$graphify-root$_internal_ratelimit_http_clientip", "target": "request", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/ratelimit/http.go", "source_location": "L26", "weight": 1.0, "context": "parameter_type"}, {"source": "ratelimit_limiter_httpmiddleware", "target": "$graphify-root$_internal_ratelimit_http_clientip", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "internal/ratelimit/http.go", "source_location": "L16", "weight": 1.0}], "raw_calls": [{"caller_nid": "ratelimit_limiter_httpmiddleware", "callee": "HandlerFunc", "is_member_call": false, "language": "go", "source_file": "internal/ratelimit/http.go", "source_location": "L15"}, {"caller_nid": "ratelimit_limiter_httpmiddleware", "callee": "Allow", "is_member_call": true, "language": "go", "source_file": "internal/ratelimit/http.go", "source_location": "L17"}, {"caller_nid": "ratelimit_limiter_httpmiddleware", "callee": "Header", "is_member_call": true, "language": "go", "source_file": "internal/ratelimit/http.go", "source_location": "L18"}, {"caller_nid": "ratelimit_limiter_httpmiddleware", "callee": "ServeHTTP", "is_member_call": true, "language": "go", "source_file": "internal/ratelimit/http.go", "source_location": "L22"}, {"caller_nid": "$graphify-root$_internal_ratelimit_http_clientip", "callee": "Get", "is_member_call": true, "language": "go", "source_file": "internal/ratelimit/http.go", "source_location": "L28"}, {"caller_nid": "$graphify-root$_internal_ratelimit_http_clientip", "callee": "Split", "is_member_call": false, "language": "go", "source_file": "internal/ratelimit/http.go", "source_location": "L29"}, {"caller_nid": "$graphify-root$_internal_ratelimit_http_clientip", "callee": "TrimSpace", "is_member_call": false, "language": "go", "source_file": "internal/ratelimit/http.go", "source_location": "L30"}, {"caller_nid": "$graphify-root$_internal_ratelimit_http_clientip", "callee": "SplitHostPort", "is_member_call": false, "language": "go", "source_file": "internal/ratelimit/http.go", "source_location": "L33"}]}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "$graphify-root$_internal_imap_parser_go", "label": "parser.go", "file_type": "code", "source_file": "internal/imap/parser.go", "source_location": "L1"}, {"id": "$graphify-root$_internal_imap_parser_tokenize", "label": "tokenize()", "file_type": "code", "source_file": "internal/imap/parser.go", "source_location": "L11"}, {"id": "$graphify-root$_internal_imap_parser_splitlist", "label": "splitList()", "file_type": "code", "source_file": "internal/imap/parser.go", "source_location": "L66"}, {"id": "$graphify-root$_internal_imap_parser_islist", "label": "isList()", "file_type": "code", "source_file": "internal/imap/parser.go", "source_location": "L75"}], "edges": [{"source": "$graphify-root$_internal_imap_parser_go", "target": "go_pkg_strings", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/imap/parser.go", "source_location": "L3", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_imap_parser_go", "target": "$graphify-root$_internal_imap_parser_tokenize", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/imap/parser.go", "source_location": "L11", "weight": 1.0}, {"source": "$graphify-root$_internal_imap_parser_go", "target": "$graphify-root$_internal_imap_parser_splitlist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/imap/parser.go", "source_location": "L66", "weight": 1.0}, {"source": "$graphify-root$_internal_imap_parser_go", "target": "$graphify-root$_internal_imap_parser_islist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/imap/parser.go", "source_location": "L75", "weight": 1.0}, {"source": "$graphify-root$_internal_imap_parser_splitlist", "target": "$graphify-root$_internal_imap_parser_tokenize", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "internal/imap/parser.go", "source_location": "L72", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_internal_imap_parser_tokenize", "callee": "WriteByte", "is_member_call": true, "language": "go", "source_file": "internal/imap/parser.go", "source_location": "L31"}, {"caller_nid": "$graphify-root$_internal_imap_parser_splitlist", "callee": "TrimPrefix", "is_member_call": false, "language": "go", "source_file": "internal/imap/parser.go", "source_location": "L67"}, {"caller_nid": "$graphify-root$_internal_imap_parser_splitlist", "callee": "TrimSuffix", "is_member_call": false, "language": "go", "source_file": "internal/imap/parser.go", "source_location": "L68"}, {"caller_nid": "$graphify-root$_internal_imap_parser_islist", "callee": "HasPrefix", "is_member_call": false, "language": "go", "source_file": "internal/imap/parser.go", "source_location": "L76"}, {"caller_nid": "$graphify-root$_internal_imap_parser_islist", "callee": "HasSuffix", "is_member_call": false, "language": "go", "source_file": "internal/imap/parser.go", "source_location": "L76"}]}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "pkg_webmail", "label": "webmail", "file_type": "code", "type": "package", "ecosystem": "go", "source_file": "go.mod", "source_location": "L1"}], "edges": [{"source": "pkg_webmail", "target": "pkg_github_com_google_uuid", "relation": "depends_on", "context": "dependency", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "go.mod", "source_location": "L1", "weight": 1.0}, {"source": "pkg_webmail", "target": "pkg_github_com_mattn_go_sqlite3", "relation": "depends_on", "context": "dependency", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "go.mod", "source_location": "L1", "weight": 1.0}, {"source": "pkg_webmail", "target": "pkg_golang_org_x_crypto", "relation": "depends_on", "context": "dependency", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "go.mod", "source_location": "L1", "weight": 1.0}, {"source": "pkg_webmail", "target": "pkg_gopkg_in_yaml_v3", "relation": "depends_on", "context": "dependency", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "go.mod", "source_location": "L1", "weight": 1.0}]}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "$graphify-root$_internal_sieve_sieve_fuzz_test_go", "label": "sieve_fuzz_test.go", "file_type": "code", "source_file": "internal/sieve/sieve_fuzz_test.go", "source_location": "L1"}, {"id": "$graphify-root$_internal_sieve_sieve_fuzz_test_fuzzparse", "label": "FuzzParse()", "file_type": "code", "source_file": "internal/sieve/sieve_fuzz_test.go", "source_location": "L5"}, {"id": "f", "label": "F", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/internal/sieve/sieve_fuzz_test.go"}], "edges": [{"source": "$graphify-root$_internal_sieve_sieve_fuzz_test_go", "target": "go_pkg_testing", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "internal/sieve/sieve_fuzz_test.go", "source_location": "L3", "weight": 1.0, "context": "import"}, {"source": "$graphify-root$_internal_sieve_sieve_fuzz_test_go", "target": "$graphify-root$_internal_sieve_sieve_fuzz_test_fuzzparse", "relation": "contains", "confidence": "EXTRACTED", "source_file": "internal/sieve/sieve_fuzz_test.go", "source_location": "L5", "weight": 1.0}, {"source": "$graphify-root$_internal_sieve_sieve_fuzz_test_fuzzparse", "target": "f", "relation": "references", "confidence": "EXTRACTED", "source_file": "internal/sieve/sieve_fuzz_test.go", "source_location": "L5", "weight": 1.0, "context": "parameter_type"}], "raw_calls": [{"caller_nid": "$graphify-root$_internal_sieve_sieve_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/sieve/sieve_fuzz_test.go", "source_location": "L6"}, {"caller_nid": "$graphify-root$_internal_sieve_sieve_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/sieve/sieve_fuzz_test.go", "source_location": "L7"}, {"caller_nid": "$graphify-root$_internal_sieve_sieve_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/sieve/sieve_fuzz_test.go", "source_location": "L8"}, {"caller_nid": "$graphify-root$_internal_sieve_sieve_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/sieve/sieve_fuzz_test.go", "source_location": "L9"}, {"caller_nid": "$graphify-root$_internal_sieve_sieve_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/sieve/sieve_fuzz_test.go", "source_location": "L10"}, {"caller_nid": "$graphify-root$_internal_sieve_sieve_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/sieve/sieve_fuzz_test.go", "source_location": "L11"}, {"caller_nid": "$graphify-root$_internal_sieve_sieve_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/sieve/sieve_fuzz_test.go", "source_location": "L12"}, {"caller_nid": "$graphify-root$_internal_sieve_sieve_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/sieve/sieve_fuzz_test.go", "source_location": "L13"}, {"caller_nid": "$graphify-root$_internal_sieve_sieve_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/sieve/sieve_fuzz_test.go", "source_location": "L14"}, {"caller_nid": "$graphify-root$_internal_sieve_sieve_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/sieve/sieve_fuzz_test.go", "source_location": "L15"}, {"caller_nid": "$graphify-root$_internal_sieve_sieve_fuzz_test_fuzzparse", "callee": "Add", "is_member_call": true, "language": "go", "source_file": "internal/sieve/sieve_fuzz_test.go", "source_location": "L16"}, {"caller_nid": "$graphify-root$_internal_sieve_sieve_fuzz_test_fuzzparse", "callee": "Fuzz", "is_member_call": true, "language": "go", "source_file": "internal/sieve/sieve_fuzz_test.go", "source_location": "L18"}, {"caller_nid": "$graphify-root$_internal_sieve_sieve_fuzz_test_fuzzparse", "callee": "Fatalf", "is_member_call": true, "language": "go", "source_file": "internal/sieve/sieve_fuzz_test.go", "source_location": "L27"}, {"caller_nid": "$graphify-root$_internal_sieve_sieve_fuzz_test_fuzzparse", "callee": "Parse", "is_member_call": false, "language": "go", "source_file": "internal/sieve/sieve_fuzz_test.go", "source_location": "L30"}]}
+1
View File
@@ -0,0 +1 @@
1786283404.4033368
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "readme_gomail", "label": "GoMail (Self-Hosted Email Server)", "file_type": "document", "source_file": "README.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_tls_acme", "label": "TLS / ACME Quick Setup", "file_type": "document", "source_file": "README.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "readme_dns_setup", "label": "DNS Setup (MX/SPF/DKIM/DMARC)", "file_type": "document", "source_file": "README.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "readme_gomail", "target": "readme_tls_acme", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "README.md", "source_location": null, "weight": 1.0}, {"source": "readme_gomail", "target": "readme_dns_setup", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "README.md", "source_location": null, "weight": 1.0}, {"source": "readme_gomail", "target": "gomail_action_plan_v4_overview", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "README.md", "source_location": null, "weight": 1.0}, {"source": "readme_tls_acme", "target": "gomail_action_plan_v4_phase13", "relation": "references", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "README.md", "source_location": null, "weight": 1.0}, {"source": "readme_dns_setup", "target": "gomail_action_plan_v4_phase13", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "README.md", "source_location": null, "weight": 1.0}, {"source": "readme_dns_setup", "target": "gomail_action_plan_v4_phase11", "relation": "references", "confidence": "INFERRED", "confidence_score": 0.75, "source_file": "README.md", "source_location": null, "weight": 1.0}], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "internal_webmail_static_index_page", "label": "GoMail Webmail SPA (index.html)", "file_type": "code", "source_file": "internal/webmail/static/index.html", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "internal_webmail_static_index_api", "label": "api() fetch helper (webmail)", "file_type": "code", "source_file": "internal/webmail/static/index.html", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "internal_webmail_static_index_login", "label": "login()/logout() (webmail)", "file_type": "code", "source_file": "internal/webmail/static/index.html", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "internal_webmail_static_index_showapp", "label": "showApp()/boot() (webmail)", "file_type": "code", "source_file": "internal/webmail/static/index.html", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "internal_webmail_static_index_folders", "label": "loadFolders()/selectFolder()", "file_type": "code", "source_file": "internal/webmail/static/index.html", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "internal_webmail_static_index_messages", "label": "loadMessages()/viewMessage()/deleteMessage()", "file_type": "code", "source_file": "internal/webmail/static/index.html", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "internal_webmail_static_index_compose", "label": "Compose (openCompose/closeCompose/sendMessage)", "file_type": "code", "source_file": "internal/webmail/static/index.html", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "internal_webmail_static_index_quarantine", "label": "Quarantine Release (showQuarantine/releaseQ)", "file_type": "code", "source_file": "internal/webmail/static/index.html", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "internal_webmail_static_index_esc", "label": "esc() HTML-escape helper (webmail)", "file_type": "code", "source_file": "internal/webmail/static/index.html", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}, {"id": "internal_webmail_static_index_bodyof", "label": "bodyOf() raw MIME body extractor", "file_type": "code", "source_file": "internal/webmail/static/index.html", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "claude_graphify_rules", "label": "graphify Project Rules", "file_type": "document", "source_file": "CLAUDE.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "_claude_iterative_build_discipline_package", "label": "iterative-build-discipline Packaged Skill (.skill zip)", "file_type": "document", "source_file": ".claude/iterative-build-discipline.skill", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "_claude_iterative_build_discipline_skill_core_principle", "target": "_claude_iterative_build_discipline_package", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".claude/iterative-build-discipline.skill", "source_location": null, "weight": 1.0}], "hyperedges": []}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "_claude_go_web_app_no_deps_package", "label": "go-web-app-no-deps Packaged Skill (.skill zip)", "file_type": "document", "source_file": ".claude/go-web-app-no-deps.skill", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "_claude_go_web_app_no_deps_skill_pattern", "target": "_claude_go_web_app_no_deps_package", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": ".claude/go-web-app-no-deps.skill", "source_location": null, "weight": 1.0}], "hyperedges": []}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+12
View File
@@ -0,0 +1,12 @@
{
"runs": [
{
"date": "2026-08-09T13:36:33.949106+00:00",
"input_tokens": 134823,
"output_tokens": 0,
"files": 78
}
],
"total_input_tokens": 134823,
"total_output_tokens": 0
}
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
+392
View File
@@ -0,0 +1,392 @@
{
".claude/settings.json": {
"mtime": 1786281487.088728,
"ast_hash": "22d1c817e36c7eccf36bf30ee13299cc",
"semantic_hash": "22d1c817e36c7eccf36bf30ee13299cc"
},
"cmd/gomail/main.go": {
"mtime": 1786281911.6889164,
"ast_hash": "6a50dc1a9b0161c4c030b51307ff92cf",
"semantic_hash": "6a50dc1a9b0161c4c030b51307ff92cf"
},
"go.mod": {
"mtime": 1786281935.7638168,
"ast_hash": "38e6ab128168a0a88095fec4523f2992",
"semantic_hash": "38e6ab128168a0a88095fec4523f2992"
},
"internal/accounts/link.go": {
"mtime": 1786281887.2038412,
"ast_hash": "4ffb8f5d3a6ac987d960c702f00f4e07",
"semantic_hash": "4ffb8f5d3a6ac987d960c702f00f4e07"
},
"internal/accounts/provider.go": {
"mtime": 1786168320.0,
"ast_hash": "4a180151e798601f43bda25bd1a80410",
"semantic_hash": "4a180151e798601f43bda25bd1a80410"
},
"internal/accounts/provider_gomail.go": {
"mtime": 1786281891.3509514,
"ast_hash": "f0dd245cb144dca3f03520e632c1d5f5",
"semantic_hash": "f0dd245cb144dca3f03520e632c1d5f5"
},
"internal/accounts/provider_imap.go": {
"mtime": 1786281893.9837677,
"ast_hash": "99587258525acd5ab4b20398a2d0d400",
"semantic_hash": "99587258525acd5ab4b20398a2d0d400"
},
"internal/accounts/provider_smtp_helper.go": {
"mtime": 1786281896.5890837,
"ast_hash": "188d01aeb8fe3fb73cb76a25ffda71b4",
"semantic_hash": "188d01aeb8fe3fb73cb76a25ffda71b4"
},
"internal/acme/challenge.go": {
"mtime": 1786189310.0,
"ast_hash": "ec3bcb998b34bc2c8a43cb8f3880e112",
"semantic_hash": "ec3bcb998b34bc2c8a43cb8f3880e112"
},
"internal/acme/client.go": {
"mtime": 1786189290.0,
"ast_hash": "830b78389d159a75e48f1a0076b6275b",
"semantic_hash": "830b78389d159a75e48f1a0076b6275b"
},
"internal/acme/jws.go": {
"mtime": 1786189220.0,
"ast_hash": "e5aa7cbbea33d9971f1577e4c976cb8c",
"semantic_hash": "e5aa7cbbea33d9971f1577e4c976cb8c"
},
"internal/acme/obtain.go": {
"mtime": 1786189332.0,
"ast_hash": "d2f78794831ad67ba64fb79cb7eb1c00",
"semantic_hash": "d2f78794831ad67ba64fb79cb7eb1c00"
},
"internal/admin/api.go": {
"mtime": 1786281901.2009063,
"ast_hash": "14fbb199cccd839edb6cf98392226b03",
"semantic_hash": "14fbb199cccd839edb6cf98392226b03"
},
"internal/admin/embed.go": {
"mtime": 1786188384.0,
"ast_hash": "55b64461208f9449c417bddf49e686cc",
"semantic_hash": "55b64461208f9449c417bddf49e686cc"
},
"internal/admin/handlers.go": {
"mtime": 1786281901.8545587,
"ast_hash": "06aad8456678b41905ac6787e50fb15a",
"semantic_hash": "06aad8456678b41905ac6787e50fb15a"
},
"internal/auth/auth.go": {
"mtime": 1786281903.3781548,
"ast_hash": "c74ed7b257b2272dcfb860b8a60746a0",
"semantic_hash": "c74ed7b257b2272dcfb860b8a60746a0"
},
"internal/config/config.go": {
"mtime": 1786189702.0,
"ast_hash": "12cee16f6dcfa6971217dd104e86f4d6",
"semantic_hash": "12cee16f6dcfa6971217dd104e86f4d6"
},
"internal/crypto/crypto.go": {
"mtime": 1784360971.0,
"ast_hash": "4567100200969235fd1559ad9be6f1b1",
"semantic_hash": "4567100200969235fd1559ad9be6f1b1"
},
"internal/dav/dav.go": {
"mtime": 1786281900.5555487,
"ast_hash": "9dc713615ff99b713ad2879fca2b28dd",
"semantic_hash": "9dc713615ff99b713ad2879fca2b28dd"
},
"internal/db/bootstrap.go": {
"mtime": 1786281902.3275623,
"ast_hash": "922a08de72be0ef63409ed402d01e098",
"semantic_hash": "922a08de72be0ef63409ed402d01e098"
},
"internal/db/db.go": {
"mtime": 1784361005.0,
"ast_hash": "64d527aad454dab7867ffd51aa3d72ca",
"semantic_hash": "64d527aad454dab7867ffd51aa3d72ca"
},
"internal/db/migrations.go": {
"mtime": 1786193366.0,
"ast_hash": "d67ddd29ab706ae5ce670da624e30b2c",
"semantic_hash": "d67ddd29ab706ae5ce670da624e30b2c"
},
"internal/db/models.go": {
"mtime": 1786193384.0,
"ast_hash": "cf35e391db47a84bd0b4e05ba77b9a95",
"semantic_hash": "cf35e391db47a84bd0b4e05ba77b9a95"
},
"internal/db/queries.go": {
"mtime": 1786193758.0,
"ast_hash": "c5f7a40030988031163220e54051b93d",
"semantic_hash": "c5f7a40030988031163220e54051b93d"
},
"internal/dkim/keys.go": {
"mtime": 1785566243.0,
"ast_hash": "e8d336df9cba3a8f69c70962f8a75579",
"semantic_hash": "e8d336df9cba3a8f69c70962f8a75579"
},
"internal/dkim/sign.go": {
"mtime": 1785472923.0,
"ast_hash": "ba6dd425f253aac61b386a8aea0d2061",
"semantic_hash": "ba6dd425f253aac61b386a8aea0d2061"
},
"internal/dkim/verify.go": {
"mtime": 1785472944.0,
"ast_hash": "4e58aca20a4874dac789bc0a844bfba6",
"semantic_hash": "4e58aca20a4874dac789bc0a844bfba6"
},
"internal/ical/ical.go": {
"mtime": 1785905665.0,
"ast_hash": "2de79f76c377508c20caa2e8683e920a",
"semantic_hash": "2de79f76c377508c20caa2e8683e920a"
},
"internal/ical/ical_fuzz_test.go": {
"mtime": 1786207598.0,
"ast_hash": "5518fd86059d729048685e2bc39c24b2",
"semantic_hash": "5518fd86059d729048685e2bc39c24b2"
},
"internal/imap/commands.go": {
"mtime": 1786281888.6448092,
"ast_hash": "e0a26bce9488a5d0bc680d5b11d15610",
"semantic_hash": "e0a26bce9488a5d0bc680d5b11d15610"
},
"internal/imap/parser.go": {
"mtime": 1785638411.0,
"ast_hash": "687b7788b077688b9081f958b669a0e6",
"semantic_hash": "687b7788b077688b9081f958b669a0e6"
},
"internal/imap/server.go": {
"mtime": 1786281911.0781865,
"ast_hash": "13154da7fca4635077e377476aef64c8",
"semantic_hash": "13154da7fca4635077e377476aef64c8"
},
"internal/imap/session.go": {
"mtime": 1786281910.5246246,
"ast_hash": "f06bd7a253f498fbe197951537bc589e",
"semantic_hash": "f06bd7a253f498fbe197951537bc589e"
},
"internal/imap/tokenize_fuzz_test.go": {
"mtime": 1786207631.0,
"ast_hash": "4920db9f0c2beaa06a7393ab027d3c2b",
"semantic_hash": "4920db9f0c2beaa06a7393ab027d3c2b"
},
"internal/imapclient/client.go": {
"mtime": 1786169633.0,
"ast_hash": "f9671c971ff9f39a2ed82af7ed3e87df",
"semantic_hash": "f9671c971ff9f39a2ed82af7ed3e87df"
},
"internal/jmap/jmap.go": {
"mtime": 1786281904.3499777,
"ast_hash": "2484a0bccd56908627cee4c769b689e5",
"semantic_hash": "2484a0bccd56908627cee4c769b689e5"
},
"internal/mailstore/maildir.go": {
"mtime": 1786281898.3165317,
"ast_hash": "7224a5c029cdcdc63c0de93cb8a8eb51",
"semantic_hash": "7224a5c029cdcdc63c0de93cb8a8eb51"
},
"internal/managesieve/server.go": {
"mtime": 1786281899.3706038,
"ast_hash": "4ebc166b83227affe5171026b8012876",
"semantic_hash": "4ebc166b83227affe5171026b8012876"
},
"internal/managesieve/session.go": {
"mtime": 1786281899.9771776,
"ast_hash": "ab69e22b6add70fdb6c18f056c474e8d",
"semantic_hash": "ab69e22b6add70fdb6c18f056c474e8d"
},
"internal/oauth2/oauth2.go": {
"mtime": 1786169607.0,
"ast_hash": "5ab8fd85a331f7f82470ee354e309ec4",
"semantic_hash": "5ab8fd85a331f7f82470ee354e309ec4"
},
"internal/pipeline/pipeline.go": {
"mtime": 1786281906.8561504,
"ast_hash": "2b0b026fc13ce700c083960df7bc7857",
"semantic_hash": "2b0b026fc13ce700c083960df7bc7857"
},
"internal/pipeline/stage_clamav.go": {
"mtime": 1786281905.5831316,
"ast_hash": "6a5c073d349a49e2cbe75863945a663b",
"semantic_hash": "6a5c073d349a49e2cbe75863945a663b"
},
"internal/pipeline/stage_dkim.go": {
"mtime": 1786281908.573951,
"ast_hash": "3f92da867d5b128398a8ffc70b6fa475",
"semantic_hash": "3f92da867d5b128398a8ffc70b6fa475"
},
"internal/pipeline/stage_dmarc.go": {
"mtime": 1786281917.6531692,
"ast_hash": "2d73846ca47178c53a0ffb341b7d754e",
"semantic_hash": "2d73846ca47178c53a0ffb341b7d754e"
},
"internal/pipeline/stage_headers.go": {
"mtime": 1786281909.176789,
"ast_hash": "e7777ff0afde0baa97bd458060e7c002",
"semantic_hash": "e7777ff0afde0baa97bd458060e7c002"
},
"internal/pipeline/stage_llm.go": {
"mtime": 1786281906.2809672,
"ast_hash": "c0a1d11888d0f32083b0e90d32018ec1",
"semantic_hash": "c0a1d11888d0f32083b0e90d32018ec1"
},
"internal/pipeline/stage_rspamd.go": {
"mtime": 1786281907.8549173,
"ast_hash": "6b7c65df77472ef32c96782db5d98d07",
"semantic_hash": "6b7c65df77472ef32c96782db5d98d07"
},
"internal/pipeline/stage_spf.go": {
"mtime": 1786281916.382805,
"ast_hash": "7e1eda77e5ba190bc50dda977b0c3723",
"semantic_hash": "7e1eda77e5ba190bc50dda977b0c3723"
},
"internal/pipeline/stage_url.go": {
"mtime": 1786281905.1305835,
"ast_hash": "f954d508ac085f560928c06171779db5",
"semantic_hash": "f954d508ac085f560928c06171779db5"
},
"internal/pop3/pop3.go": {
"mtime": 1786281909.7660527,
"ast_hash": "0e3685f20c9ca05d3a28729c8ad7a29f",
"semantic_hash": "0e3685f20c9ca05d3a28729c8ad7a29f"
},
"internal/queue/queue.go": {
"mtime": 1786281808.0265675,
"ast_hash": "71c0ce0211d61d37f51f19678dbcdeb4",
"semantic_hash": "71c0ce0211d61d37f51f19678dbcdeb4"
},
"internal/ratelimit/http.go": {
"mtime": 1786207203.0,
"ast_hash": "c06b19193ad3c3159551966c05f48ea5",
"semantic_hash": "c06b19193ad3c3159551966c05f48ea5"
},
"internal/ratelimit/ratelimit.go": {
"mtime": 1786207185.0,
"ast_hash": "4d5bf0b77d390cf3e71abb4d022cf0aa",
"semantic_hash": "4d5bf0b77d390cf3e71abb4d022cf0aa"
},
"internal/sieve/interp.go": {
"mtime": 1786169049.0,
"ast_hash": "6f13e1891ef551ffebba37e759742aca",
"semantic_hash": "6f13e1891ef551ffebba37e759742aca"
},
"internal/sieve/lexer.go": {
"mtime": 1786168959.0,
"ast_hash": "3d8d9f9f203855eaf8d638935f65f7bb",
"semantic_hash": "3d8d9f9f203855eaf8d638935f65f7bb"
},
"internal/sieve/parser.go": {
"mtime": 1786168977.0,
"ast_hash": "cbcd550894b5c473a160481098151605",
"semantic_hash": "cbcd550894b5c473a160481098151605"
},
"internal/sieve/sieve_fuzz_test.go": {
"mtime": 1786207613.0,
"ast_hash": "fa017deb29e67fa5264e3ecc59ede127",
"semantic_hash": "fa017deb29e67fa5264e3ecc59ede127"
},
"internal/smtp/auth.go": {
"mtime": 1786281931.1489654,
"ast_hash": "9220929f9afd4b5b8c39ee7401ea3ecd",
"semantic_hash": "9220929f9afd4b5b8c39ee7401ea3ecd"
},
"internal/smtp/server.go": {
"mtime": 1786281931.153782,
"ast_hash": "30d88aa535f6ee39072f35fa6c1fd108",
"semantic_hash": "30d88aa535f6ee39072f35fa6c1fd108"
},
"internal/smtp/session.go": {
"mtime": 1786281931.1489654,
"ast_hash": "41aae3368dc4be4eba559f0d732e9a37",
"semantic_hash": "41aae3368dc4be4eba559f0d732e9a37"
},
"internal/tlsutil/acme_manager.go": {
"mtime": 1786281902.8497763,
"ast_hash": "5e7aa10c39162f5d95f927ba4efc30fb",
"semantic_hash": "5e7aa10c39162f5d95f927ba4efc30fb"
},
"internal/tlsutil/selfsigned.go": {
"mtime": 1786193053.0,
"ast_hash": "9c58f78ed11e4c7bf208306285f0b32e",
"semantic_hash": "9c58f78ed11e4c7bf208306285f0b32e"
},
"internal/totp/totp.go": {
"mtime": 1786193280.0,
"ast_hash": "48f2c9db1c1307f13d78726aa3b24f6a",
"semantic_hash": "48f2c9db1c1307f13d78726aa3b24f6a"
},
"internal/vcard/vcard.go": {
"mtime": 1785905650.0,
"ast_hash": "8b0043626bac3cacc11b6ce76259445b",
"semantic_hash": "8b0043626bac3cacc11b6ce76259445b"
},
"internal/vcard/vcard_fuzz_test.go": {
"mtime": 1786207583.0,
"ast_hash": "5aeab637a3c3357bb2c13cacc21508c6",
"semantic_hash": "5aeab637a3c3357bb2c13cacc21508c6"
},
"internal/webmail/api.go": {
"mtime": 1786281903.8315737,
"ast_hash": "3ccccaaef2a926a90919805f67173db2",
"semantic_hash": "3ccccaaef2a926a90919805f67173db2"
},
"internal/webmail/embed.go": {
"mtime": 1786132251.0,
"ast_hash": "441b827ff1643c3807b6efb92119a721",
"semantic_hash": "441b827ff1643c3807b6efb92119a721"
},
"internal/webtoken/webtoken.go": {
"mtime": 1786193462.0,
"ast_hash": "d94a2b905b20ccbd8a83e258245ba375",
"semantic_hash": "d94a2b905b20ccbd8a83e258245ba375"
},
".claude/go-web-app-no-deps-SKILL.md": {
"mtime": 1786206554.0,
"ast_hash": "eb54ace954e819a069a9f1284485d213",
"semantic_hash": "eb54ace954e819a069a9f1284485d213"
},
".claude/go-web-app-no-deps.skill": {
"mtime": 1786206554.0,
"ast_hash": "de820100f8ad2da76d57884262c9f5f0",
"semantic_hash": "de820100f8ad2da76d57884262c9f5f0"
},
".claude/iterative-build-discipline-SKILL.md": {
"mtime": 1786206504.0,
"ast_hash": "d0e94862b77af5f6ac99c3f2668db3c9",
"semantic_hash": "d0e94862b77af5f6ac99c3f2668db3c9"
},
".claude/iterative-build-discipline.skill": {
"mtime": 1786206504.0,
"ast_hash": "87a25b626d37a9dfe5c037ae409fecad",
"semantic_hash": "87a25b626d37a9dfe5c037ae409fecad"
},
"CLAUDE.md": {
"mtime": 1786281487.0884602,
"ast_hash": "82efb97a359f5c7290bf2513d14686be",
"semantic_hash": "82efb97a359f5c7290bf2513d14686be"
},
"GOMAIL_HANDOVER.md": {
"mtime": 1786206496.0,
"ast_hash": "81fbcb0478fce27c6b6e8c6646eed44a",
"semantic_hash": "81fbcb0478fce27c6b6e8c6646eed44a"
},
"README.md": {
"mtime": 1786208021.0,
"ast_hash": "257dbe428b6a41b51d4d8efcd2431615",
"semantic_hash": "257dbe428b6a41b51d4d8efcd2431615"
},
"gomail-action-plan-v4.md": {
"mtime": 1786206496.0,
"ast_hash": "203046a9566fb3c392ed2e51aa178805",
"semantic_hash": "203046a9566fb3c392ed2e51aa178805"
},
"internal/admin/static/index.html": {
"mtime": 1786188708.0,
"ast_hash": "77b0b0e42cf45a961571ee5e3a3a219a",
"semantic_hash": "77b0b0e42cf45a961571ee5e3a3a219a"
},
"internal/webmail/static/index.html": {
"mtime": 1786132285.0,
"ast_hash": "3b77272b21933601eed33f3441d386cc",
"semantic_hash": "3b77272b21933601eed33f3441d386cc"
}
}