How vovanbl411/gentoo-update-intelligence works
Gentoo Update Intelligence accepts an emerge plan and returns a persisted, evidence-bearing package-change report; it does not install or update packages. The main workflow is HTTP submission, background parsing and rule analysis, pinned Gentoo metadata lookup or preparation, comparison, and report retrieval in the frontend. The graph also preserves the CLI and the metadata-worker path. Some internal wiring is documented rather than shown in excerpts, so those relationships cite the README; unsampled implementation details are not inferred.
Main entry points: main.ts Web interface · main.go HTTP server · planservice.go Plan coordinator · handler.go Analysis API
Components 24
Entry points
- HTTP server
backend/cmd/gentoo-update-intelligence-server/main.go - Analysis CLI
backend/cmd/gentoo-update-intelligence/run.go - Backend config
backend/internal/backendconfig/config.go
Plan analysis
- Plan parser
backend/internal/parser/parser.go - Rule analyzer
backend/internal/analyzer/analyzer.go - Plan coordinator
backend/internal/planservice/planservice.go - Entry reports
backend/internal/reportservice/reportservice.go - Change report
backend/internal/changereport/changereport.go - Metadata diff
backend/internal/metadatadiff/compare.go
Metadata acquisition
- Repository pinning
backend/internal/repositorymanager/manager.go - Metadata provider
backend/internal/metadataprovider/provider.go - Metadata cache
backend/internal/metadatacache/store.go - Ebuild resolver
backend/internal/ebuildresolver/resolver.go - Metadata worker
backend/cmd/metadata-worker/main.go - Cache generator
backend/internal/metadatagenerator/generator.go
Reports and UI
- Analysis API
backend/internal/analysishttp/handler.go - Job storage
backend/internal/analysisstore/postgres.go - Web interface
frontend/src/main.ts - HTTP client
frontend/src/api.ts - Response model
frontend/src/model.ts - Report renderer
frontend/src/report.ts - API types
frontend/src/api-types.ts
Other components
- Plan author
- Report reader
Connections 25
- Plan author → Web interface: submits plan
- Web interface → HTTP client: calls
frontend/src/main.ts - HTTP client → Analysis API: HTTP requests
- HTTP server → Analysis API: serves
backend/cmd/gentoo-update-intelligence-server/main.go - HTTP server → Job storage: opens
backend/cmd/gentoo-update-intelligence-server/main.go - Analysis API → Job storage: persists jobs
- Analysis API → Plan coordinator: dispatches analysis
- Plan coordinator → Plan parser: parses plan
- Plan coordinator → Rule analyzer: applies rules
- Plan coordinator → Entry reports: builds entries
backend/internal/planservice/planservice.go - Entry reports → Change report: builds report
backend/internal/reportservice/reportservice.go - Entry reports → Metadata provider: requests metadata
backend/internal/reportservice/reportservice.go - Change report → Metadata diff: compares snapshots
- HTTP server → Backend config: loads settings
backend/cmd/gentoo-update-intelligence-server/main.go - HTTP server → Repository pinning: configures pinning
backend/cmd/gentoo-update-intelligence-server/main.go - Metadata provider → Metadata cache: checks cache
- Metadata worker → Ebuild resolver: resolves ebuild
backend/cmd/metadata-worker/main.go - Metadata worker → Cache generator: prepares cache
backend/cmd/metadata-worker/main.go - Metadata provider → Metadata worker: requests preparation
- Report reader → Web interface: opens report
- Web interface → Response model: validates responses
frontend/src/main.ts - Web interface → Report renderer: renders report
frontend/src/main.ts - Report renderer → HTTP client: loads details
frontend/src/report.ts - Response model → API types: uses types
frontend/src/model.ts - Analysis CLI → Plan parser: analyzes plan