hiiro 0.1.298 → 0.1.299

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8490d494506182e944c05ff1df6aec4c1230f1c44983605edd2c2cb28ab7aa2a
4
- data.tar.gz: 8f0dc4909c84d07e46434f62059a377cb68b83301dce77cc176d21041a49f60f
3
+ metadata.gz: f6adcb250dc950c9cf8ff1c6c0ad043cb40f1088a81369fe44f5ebef5dfb0098
4
+ data.tar.gz: ea797738c121e4b8ba16a184a9f9614d624a4724412068fe12f05542ff0d6a91
5
5
  SHA512:
6
- metadata.gz: 38a71da929c8f8d4e8d7a640a2ec43847ffb3d32b558b21ecd0bc8f908d761aad70479e30b68c6fc5f7e675f66cda3d71ea7dedcfd33f94dbbc32d960a1a7208
7
- data.tar.gz: c27d87516084d5ebff7b580e24e849ce470c4477dd62010ac75e7310c60c812eb3b5397f695ba80c6d4e6b189f816be222037882d4e351edae859708fd226baa
6
+ metadata.gz: 72642cfd9f9159ef3f423793990b34eabbc9b904f22276b4f282416ff639fbfeda6d600ffca7f2c0948436ed8817f09a41b4ab4a2ca9c516393b4883c079cfce
7
+ data.tar.gz: 60e5258472d103050ea9d9d145c6cb228c07f2e520cd222a47bcb614384c1744fbe762c1345f1ace55ceb91b9746237b7b6a011e6affe6da3ddcccab7bf589a1
data/CHANGELOG.md CHANGED
@@ -1,4 +1,12 @@
1
1
  ```markdown
2
+ ## v0.1.299 (2026-03-27)
3
+
4
+ ### Added
5
+ - `bin/h-pr open`: now supports opening multiple PRs in sequence (e.g., `h pr open 123 456`)
6
+
7
+ ### Changed
8
+ - `bin/h-claude`: simplified directory traversal and file globbing logic for better maintainability
9
+
2
10
  ## v0.1.298 (2026-03-27)
3
11
 
4
12
  ### Changed
data/bin/h-claude CHANGED
@@ -33,13 +33,11 @@ end
33
33
 
34
34
  # Walk from Dir.pwd up through parent directories, stopping before Dir.home.
35
35
  # Returns an array of existing .claude directories, closest-first.
36
- def claude_ancestor_dirs
36
+ def claude_paths
37
37
  Pathname(Dir.pwd)
38
38
  .ascend
39
- .take_while { |p| p != Pathname(Dir.home) }
40
39
  .map { |p| p / '.claude' }
41
- .select(&:directory?)
42
- .map(&:to_s)
40
+ .select(&:exist?)
43
41
  end
44
42
 
45
43
  Hiiro.run(*ARGV, plugins: [Pins]) {
@@ -106,33 +104,15 @@ add_subcmd(:env) { |*args|
106
104
  }
107
105
 
108
106
  add_subcmd(:agents) {
109
- names = []
110
- claude_ancestor_dirs.each do |claude_dir|
111
- dir = File.join(claude_dir, 'agents')
112
- next unless Dir.exist?(dir)
113
- Dir.glob("#{dir}/*.md").sort.each { |f| names << File.basename(f, '.md') }
114
- end
115
- names.uniq.each { |n| puts n }
107
+ puts claude_paths.flat_map { |p| p.glob('agents/*.md').map { |f| f.basename('.md') } }
116
108
  }
117
109
 
118
110
  add_subcmd(:commands) {
119
- names = []
120
- claude_ancestor_dirs.each do |claude_dir|
121
- dir = File.join(claude_dir, 'commands')
122
- next unless Dir.exist?(dir)
123
- Dir.glob("#{dir}/*.md").sort.each { |f| names << File.basename(f, '.md') }
124
- end
125
- names.uniq.each { |n| puts n }
111
+ puts claude_paths.flat_map { |p| p.glob('commands/*.md').map { |f| f.basename('.md') } }
126
112
  }
127
113
 
128
114
  add_subcmd(:skills) {
129
- names = []
130
- claude_ancestor_dirs.each do |claude_dir|
131
- dir = File.join(claude_dir, 'skills')
132
- next unless Dir.exist?(dir)
133
- Dir.glob("#{dir}/*/").sort.each { |d| names << File.basename(d) }
134
- end
135
- names.uniq.each { |n| puts n }
115
+ puts claude_paths.flat_map { |p| p.glob('skills/*/').map { |d| d.basename } }
136
116
  }
137
117
 
138
118
  add_subcmd(:new) { |*args|
data/bin/h-pr CHANGED
@@ -85,8 +85,8 @@ Hiiro.run(*ARGV, plugins: [Pins]) do
85
85
  }
86
86
 
87
87
  add_subcmd(:edit) { edit_files(__FILE__) }
88
- add_subcmd(:open) { |pr_number=nil|
89
- if pr_number.nil?
88
+ add_subcmd(:open) { |*refs|
89
+ if refs.empty?
90
90
  current = pinned_manager.fetch_current_branch_pr
91
91
  if current
92
92
  pinned = pinned_manager.load_pinned
@@ -96,11 +96,14 @@ Hiiro.run(*ARGV, plugins: [Pins]) do
96
96
  next
97
97
  end
98
98
  end
99
- pr_number = resolve(:pr, pr_number)
100
- next unless pr_number
99
+ refs = [nil] if refs.empty?
101
100
  pinned = pinned_manager.load_pinned
102
- pr = pinned.find { |p| p.number.to_s == pr_number.to_s }
103
- pr&.url ? system('open', pr.url) : system('gh', 'pr', 'view', pr_number.to_s, '--web')
101
+ refs.each do |ref|
102
+ pr_number = resolve(:pr, ref)
103
+ next unless pr_number
104
+ pr = pinned.find { |p| p.number.to_s == pr_number.to_s }
105
+ pr&.url ? system('open', pr.url) : system('gh', 'pr', 'view', pr_number.to_s, '--web')
106
+ end
104
107
  }
105
108
  add_subcmd(:view) { |pr_number=nil|
106
109
  pr_number = resolve(:pr, pr_number)
data/lib/hiiro/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Hiiro
2
- VERSION = "0.1.298"
2
+ VERSION = "0.1.299"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hiiro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.298
4
+ version: 0.1.299
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua Toyota