Use the v92 module path. NewClient now returns an error and takes
options, so pass WithAuthToken and WithHTTPClient and handle the error.
Qualify the page field because the issue options embed two structs that
have one. Replace the deprecated github.Ptr with the builtin new.
Import the progress bar from charm.land/bubbles/v2 and styles from
charm.land/lipgloss/v2. Replace WithDefaultGradient with WithDefaultBlend,
which uses the same colours.
The file is a template for users. This repository has no .git-velocity.yaml,
so every run failed and the dashboard showed a failing workflow. The
template now lives in examples/ and no longer runs here.
goccy/go-json v0.11.0 and later panic in the indent encoder with a nil pointer dereference, so the dependency update failed its tests. The site generator needs nothing beyond the standard library.
golangci-lint v2 rejects the old config format, so the pre-commit hook failed on every commit. The config now uses version 2 with the same linters and exclusions.
The weekly run failed because the repository has no .git-velocity.yaml. The workflow is a template for users, so it now runs only when started by hand.
- bump all minor/patch versions via pnpm update (vue 3.5, vite 7.3,
tailwindcss 4.3, @playwright/test 1.60, eslint 9.39.4, etc.)
- add vue-eslint-parser ^10.4.0 to satisfy eslint-plugin-vue 10.9 peer dep
(lint regressed without it: .vue parse errors)
- remove stale package-lock.json; pnpm-lock.yaml is canonical
Held back major bumps: eslint 10, vite 8, vue-router 5, @eslint/js 10.
Verified: pnpm run lint clean, pnpm run build succeeds.
* feat(scoring): add tests bonus and fix average calculations
- [x] Add CommitsWithTests metric to track commits with test file changes
- [x] Add TestsBonus to score breakdown (15 points per commit with tests)
- [x] Fix AvgTimeToMerge calculation to use count of PRs with valid data
- [x] Fix AvgReviewTime calculation to use count of reviews with valid data
- [x] Fix AvgPRSize calculation to only include merged PRs
- [x] Add trackActivityDay helper to deduplicate activity tracking code
- [x] Track activity days for PR creation, reviews, and issue comments
- [x] Separate issue close tracking from issue open tracking
- [x] Update early bird window from 5am-9am to 6am-9am
- [x] Add time-based multipliers to velocity timeline scoring
- [x] Update GraphQL query to fetch OPEN, MERGED, CLOSED PRs
- [x] Fix PR filtering logic to handle all PR states correctly
- [x] Improve watch handlers in Vue components to prevent double-loading
- [x] Fix formatDuration to handle zero and negative values
- [x] Update scoring documentation to include Tests component
* refactor: use standard library and consolidate constants
- [x] Replace custom contains function with slices.Contains
- [x] Remove duplicate contains function implementations
- [x] Extract magic numbers to named constants in formatters
- [x] Create constants composable for app-wide values
- [x] Add ESLint configuration with browser globals
- [x] Add lint npm scripts to package.json
- [x] Reorder Vue template attributes for consistency
- [x] Remove unused variable in AchievementProgress
- [x] Add pnpm lock file
Git Level (per commit):
- Track unique file paths in FilesModified slice
- FilesChanged = count of unique files in THIS commit
Aggregator Level (per contributor):
- Collect all file paths from all commits into a SET
- FilesChanged = size of the unique file set
Result:
- Contributor.FilesChanged = count of UNIQUE files they touched
- Repository contributor = unique files in THAT repo only