# amintacccp/githubstarsmanager architecture

> Architecture diagram of the GitHub repository amintacccp/githubstarsmanager, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/amintacccp/githubstarsmanager
- Repository: https://github.com/amintacccp/githubstarsmanager

## Overview

GithubStarsManager is a local-first desktop/web app for organizing and finding GitHub stars, with AI analysis, semantic search, repository Q&A, release tracking, discovery, and MCP access. The central workflow is to sync starred repositories, enrich them with AI-generated summaries and categories, then search or act on the organized collection. The graph also shows Q&A’s commit-pinned sessions and local history. Major feature branches are supported by the README and tree; several internal links are omitted where the sampled excerpts do not establish call ownership.

Main entry points: [`src/store/useAppStore.ts`](https://github.com/amintacccp/githubstarsmanager/blob/main/src/store/useAppStore.ts) (Application State), [`src/App.tsx`](https://github.com/amintacccp/githubstarsmanager/blob/main/src/App.tsx) (Application UI), [`src/components/RepositoryList.tsx`](https://github.com/amintacccp/githubstarsmanager/blob/main/src/components/RepositoryList.tsx) (Repository Views), [`src/features/repositories/hooks/useRepositoryAnalysisJob.ts`](https://github.com/amintacccp/githubstarsmanager/blob/main/src/features/repositories/hooks/useRepositoryAnalysisJob.ts) (Analysis Workflow)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Application"]
  node_app["Application UI<br/>[App.tsx]"]
  node_store[("Application State<br/>[useAppStore.ts]")]
end

subgraph group_repository["Star Management"]
  node_repo_ui["Repository Views<br/>[RepositoryList.tsx]"]
  node_sync["Star Sync<br/>[autoSync.ts]"]
end

subgraph group_intelligence["AI and Search"]
  node_analysis_job["Analysis Workflow"]
  node_analysis["AI Analysis"]
  node_search["Vector Search"]
end

subgraph group_features["Product Features"]
  node_chat_ui["Repository Q&amp;A"]
  node_chat_runner["Chat Runner"]
  node_chat_sessions["Chat Sessions"]
  node_chat_storage[("Chat History")]
  node_release_ui["Release Tracking"]
  node_discovery_ui["Discovery"]
  node_mcp["MCP Access<br/>[server.ts]"]
end

subgraph group_runtime["Runtime Services"]
  node_backend["Backend API<br/>[index.ts]"]
  node_electron["Desktop Runtime<br/>[main.js]"]
end

node_user(("User"))
node_github["GitHub API"]
node_ai_provider["AI Provider"]
node_vectorize[("Cloudflare Vectorize")]

node_user -->|"uses"| node_app
node_app -->|"reads state"| node_store
node_app -->|"presents"| node_repo_ui
node_repo_ui -->|"reads and updates"| node_store
node_sync -->|"syncs stars"| node_github
node_analysis_job -->|"runs analysis"| node_analysis
node_analysis_job -->|"updates repositories"| node_store
node_analysis -->|"requests enrichment"| node_ai_provider
node_search -.->|"searches vectors"| node_vectorize
node_repo_ui -->|"finds similar"| node_search
node_chat_ui -->|"runs turn"| node_chat_runner
node_chat_ui -->|"saves messages"| node_chat_storage
node_chat_sessions -->|"manages sessions"| node_chat_storage
node_chat_sessions -->|"resolves commit"| node_github
node_release_ui -->|"uses release state"| node_store
node_discovery_ui -->|"uses discovery state"| node_store
node_mcp -->|"serves tools"| node_backend
node_electron -->|"hosts UI"| node_app

click node_app "https://github.com/amintacccp/githubstarsmanager/blob/main/src/App.tsx"
click node_store "https://github.com/amintacccp/githubstarsmanager/blob/main/src/store/useAppStore.ts"
click node_repo_ui "https://github.com/amintacccp/githubstarsmanager/blob/main/src/components/RepositoryList.tsx"
click node_sync "https://github.com/amintacccp/githubstarsmanager/blob/main/src/services/autoSync.ts"
click node_analysis_job "https://github.com/amintacccp/githubstarsmanager/blob/main/src/features/repositories/hooks/useRepositoryAnalysisJob.ts"
click node_analysis "https://github.com/amintacccp/githubstarsmanager/blob/main/src/services/aiAnalysisHelper.ts"
click node_search "https://github.com/amintacccp/githubstarsmanager/blob/main/src/services/vectorSearchService.ts"
click node_chat_ui "https://github.com/amintacccp/githubstarsmanager/blob/main/src/features/repository-chat/hooks/useRepositoryChat.ts"
click node_chat_runner "https://github.com/amintacccp/githubstarsmanager/blob/main/src/services/repositoryChatRunner.ts"
click node_chat_sessions "https://github.com/amintacccp/githubstarsmanager/blob/main/src/features/repository-chat/hooks/useRepositoryChatSessions.ts"
click node_chat_storage "https://github.com/amintacccp/githubstarsmanager/blob/main/src/services/repositoryChatStorage.ts"
click node_release_ui "https://github.com/amintacccp/githubstarsmanager/blob/main/src/features/releases/hooks/useReleaseTimelineActions.ts"
click node_discovery_ui "https://github.com/amintacccp/githubstarsmanager/blob/main/src/features/discovery/hooks/useDiscoveryActions.ts"
click node_mcp "https://github.com/amintacccp/githubstarsmanager/blob/main/server/src/mcp/server.ts"
click node_backend "https://github.com/amintacccp/githubstarsmanager/blob/main/server/src/index.ts"
click node_electron "https://github.com/amintacccp/githubstarsmanager/blob/main/electron/main.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_store,node_user toneBlue
class node_repo_ui,node_sync,node_vectorize toneAmber
class node_analysis_job,node_analysis,node_search,node_github toneMint
class node_chat_ui,node_chat_runner,node_chat_sessions,node_chat_storage,node_release_ui,node_discovery_ui,node_mcp toneRose
class node_backend,node_electron,node_ai_provider toneIndigo
```

## Components

### Application

- [Application UI](https://github.com/amintacccp/githubstarsmanager/blob/main/src/App.tsx): `src/App.tsx`
- [Application State](https://github.com/amintacccp/githubstarsmanager/blob/main/src/store/useAppStore.ts): `src/store/useAppStore.ts`

### Star Management

- [Repository Views](https://github.com/amintacccp/githubstarsmanager/blob/main/src/components/RepositoryList.tsx): `src/components/RepositoryList.tsx`
- [Star Sync](https://github.com/amintacccp/githubstarsmanager/blob/main/src/services/autoSync.ts): `src/services/autoSync.ts`

### AI and Search

- [Analysis Workflow](https://github.com/amintacccp/githubstarsmanager/blob/main/src/features/repositories/hooks/useRepositoryAnalysisJob.ts): `src/features/repositories/hooks/useRepositoryAnalysisJob.ts`
- [AI Analysis](https://github.com/amintacccp/githubstarsmanager/blob/main/src/services/aiAnalysisHelper.ts): `src/services/aiAnalysisHelper.ts`
- [Vector Search](https://github.com/amintacccp/githubstarsmanager/blob/main/src/services/vectorSearchService.ts): `src/services/vectorSearchService.ts`

### Product Features

- [Repository Q&A](https://github.com/amintacccp/githubstarsmanager/blob/main/src/features/repository-chat/hooks/useRepositoryChat.ts): `src/features/repository-chat/hooks/useRepositoryChat.ts`
- [Chat Runner](https://github.com/amintacccp/githubstarsmanager/blob/main/src/services/repositoryChatRunner.ts): `src/services/repositoryChatRunner.ts`
- [Chat Sessions](https://github.com/amintacccp/githubstarsmanager/blob/main/src/features/repository-chat/hooks/useRepositoryChatSessions.ts): `src/features/repository-chat/hooks/useRepositoryChatSessions.ts`
- [Chat History](https://github.com/amintacccp/githubstarsmanager/blob/main/src/services/repositoryChatStorage.ts): `src/services/repositoryChatStorage.ts`
- [Release Tracking](https://github.com/amintacccp/githubstarsmanager/blob/main/src/features/releases/hooks/useReleaseTimelineActions.ts): `src/features/releases/hooks/useReleaseTimelineActions.ts`
- [Discovery](https://github.com/amintacccp/githubstarsmanager/blob/main/src/features/discovery/hooks/useDiscoveryActions.ts): `src/features/discovery/hooks/useDiscoveryActions.ts`
- [MCP Access](https://github.com/amintacccp/githubstarsmanager/blob/main/server/src/mcp/server.ts): `server/src/mcp/server.ts`

### Runtime Services

- [Backend API](https://github.com/amintacccp/githubstarsmanager/blob/main/server/src/index.ts): `server/src/index.ts`
- [Desktop Runtime](https://github.com/amintacccp/githubstarsmanager/blob/main/electron/main.js): `electron/main.js`

### Other components

- **User**
- **GitHub API**
- **AI Provider**
- **Cloudflare Vectorize**

## Connections

- User → Application UI: uses
- Application UI → Application State: reads state
- Application UI → Repository Views: presents
- Repository Views → Application State: reads and updates
- Star Sync → GitHub API: syncs stars
- Analysis Workflow → AI Analysis: runs analysis
- Analysis Workflow → Application State: updates repositories
- AI Analysis → AI Provider: requests enrichment
- Vector Search → Cloudflare Vectorize: searches vectors
- Repository Views → Vector Search: finds similar
- Repository Q&A → Chat Runner: runs turn
- Repository Q&A → Chat History: saves messages
- Chat Sessions → Chat History: manages sessions
- Chat Sessions → GitHub API: resolves commit
- Release Tracking → Application State: uses release state
- Discovery → Application State: uses discovery state
- MCP Access → Backend API: serves tools
- Desktop Runtime → Application UI: hosts UI
