How shchusia/commit-hike works
Commit Hike is an offline IDE hiking-progress application: commits advance a hiker along a chosen route, with scenes, maps, stories, stats, achievements, and optional project teammates. The main flow runs from an IDE plugin through the CLI and app service; the service reads Git history, filters and scores commits, updates local progress, and returns protocol data for the plugin UI. Route import, rendering, and team views are distinct capabilities. The README describes maps and route-pack richness; their detailed implementation is not sampled here, so links are limited to supported app and package boundaries.
Main entry points: app.go Use-case service · extension.ts VS Code extension · scan.go Commit scanning · main.go Core command
Components 27
IDE plugins
- VS Code extension
plugins/vscode/src/extension.ts - VS Code CLI
plugins/vscode/src/cli.ts - VS Code panel
plugins/vscode/src/panel.ts - VS Code language
plugins/vscode/src/i18n.ts - JetBrains plugin
plugins/jetbrains/src/main/kotlin/dev/commithike/CommitHikeApp.kt - JetBrains actions
plugins/jetbrains/src/main/kotlin/dev/commithike/actions/Actions.kt - JetBrains CLI
plugins/jetbrains/src/main/kotlin/dev/commithike/core/CoreCli.kt - JetBrains trail UI
plugins/jetbrains/src/main/kotlin/dev/commithike/ui/TrailUi.kt
Progress engine
- Core command
core/cmd/commit-hike/main.go - Command dispatcher
core/internal/cli/cli.go - Use-case service
core/internal/app/app.go - Commit scanning
core/internal/app/scan.go - Journey progress
core/internal/app/journey.go - Team view
core/internal/app/team.go - JSON contract
core/internal/protocol/protocol.go - Git history reader
core/internal/gitlog/gitlog.go - Commit filtering
core/internal/filter/filter.go - Distance scoring
core/internal/score/score.go - Achievements
core/internal/achievements/achievements.go
Routes and scenes
- Route management
core/internal/app/routes.go - Route packs
core/internal/routes/routes.go - Scene renderer
core/internal/render/render.go - Embedded content
core/content/embed.go
Local data
- Progress store
core/internal/store/store.go
Other components
- VS Code user
- JetBrains user
- Local Git repository
Connections 32
- VS Code user → VS Code extension: uses
- VS Code extension → VS Code CLI: invokes
- VS Code extension → VS Code panel: updates
- VS Code extension → VS Code language: localizes
- VS Code CLI → Core command: runs
- JetBrains user → JetBrains plugin: uses
- JetBrains plugin → JetBrains actions: dispatches
- JetBrains plugin → JetBrains trail UI: shows
- JetBrains actions → JetBrains CLI: invokes
- JetBrains CLI → Core command: runs
- Core command → Command dispatcher: starts
- Command dispatcher → Use-case service: dispatches
- Command dispatcher → JSON contract: encodes
- Use-case service → Commit scanning: handles scans
- Use-case service → Journey progress: serves journeys
- Use-case service → Team view: serves teams
- Use-case service → Route management: manages routes
- Commit scanning → Git history reader: reads history
- Commit scanning → Commit filtering: filters commits
- Commit scanning → Distance scoring: scores distance
- Commit scanning → Progress store: updates progress
- Journey progress → Progress store: reads and writes
- Team view → Git history reader: reads contributors
- Team view → Progress store: reads settings
- Use-case service → Achievements: evaluates goals
- Route management → Route packs: loads packs
- Route management → Progress store: persists imports
- Use-case service → Scene renderer: builds scenes
- Route packs → Embedded content: loads built-ins
- Git history reader → Local Git repository: reads history
- VS Code extension → Core command: requests status
- JetBrains plugin → Core command: requests status