Skip to content

feat(run): add interactive project selection#3

Merged
codeboyzhou merged 2 commits into
mainfrom
0.3.x
Jul 23, 2026
Merged

feat(run): add interactive project selection#3
codeboyzhou merged 2 commits into
mainfrom
0.3.x

Conversation

@codeboyzhou

Copy link
Copy Markdown
Owner

Summary

  • add an interactive Maven project selector for jup run mvn that works from any directory
  • rank configured projects with a 14-day time-decaying recent-use score
  • persist usage state safely with atomic writes and cross-process locking
  • preserve the existing current-directory behavior for non-interactive environments
  • remove project usage state during jup uninit
  • document the new workflow in English and Simplified Chinese

Why

Developers currently need to navigate to a configured project before running its Maven build. The selector makes previously initialized projects immediately accessible from any terminal location and keeps commonly used projects at the top.

Windows arrow-key fix

The first selector implementation wrapped os.Stdin as a generic reader. On Windows this bypassed the terminal library's console-event reader, so Enter worked but arrow keys did not. Real terminal sessions now use the library's platform-native stdin/stdout, while tests retain injectable streams.

Validation

  • gofmt -l .
  • go vet ./...
  • go tool -modfile=golangci-lint.mod golangci-lint run
  • go test ./...
  • go tool -modfile=govulncheck.mod govulncheck ./...
  • go run build.go verify

@codeboyzhou
codeboyzhou marked this pull request as ready for review July 22, 2026 16:43
@codeboyzhou
codeboyzhou merged commit 6b542c3 into main Jul 23, 2026
3 checks passed
@codeboyzhou
codeboyzhou deleted the 0.3.x branch July 24, 2026 16:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant