hiiro 0.1.308.pre.4 → 0.1.308.pre.6
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 +4 -4
- data/CHANGELOG.md +13 -0
- data/bin/h-claude +30 -0
- data/lib/hiiro/branch.rb +1 -1
- data/lib/hiiro/db.rb +9 -5
- data/lib/hiiro/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c2e93dab3f776838c51b113721effb0ac86a0cbc20dd9a61742004d5a5335a6e
|
|
4
|
+
data.tar.gz: a1ae67e29ac11aec8f3e476dbd708cf7ec3d5b85967d78a1565c3df193af4a1d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bea26329f94d13d1806fb90603b9c23c7f41dd42eb1e954ba8d6c6a4bd2f8e9ed88e80770314e4b3a6ec0223115f9a82ae633e547e4252ba2b84626ff3dee6dd
|
|
7
|
+
data.tar.gz: 36c1711d34c509e4070aed248c030601a87801a02e8a15aa2ad806ed475d1e2f8792b30903c35ea3a513ed479db5ec903ca95a1bf099285840ae5453bc64fa15
|
data/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
```markdown
|
|
2
2
|
# Changelog
|
|
3
3
|
|
|
4
|
+
## [0.1.308.pre.6] - 2026-03-31
|
|
5
|
+
|
|
6
|
+
### Fixed
|
|
7
|
+
- Prevent duplicate pinned_prs during import with `insert_conflict` and per-row rescue
|
|
8
|
+
|
|
9
|
+
## [0.1.308.pre.5] - 2026-03-31
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
- `h-claude vim` subcommand to open all matched files in `$EDITOR`
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
- `h branch ls` now sorts oldest-first so most recent branches appear at bottom
|
|
16
|
+
|
|
4
17
|
## [0.1.308.pre.4] - 2026-03-31
|
|
5
18
|
|
|
6
19
|
### Fixed
|
data/bin/h-claude
CHANGED
|
@@ -63,6 +63,22 @@ def glob_path(glob, bname=nil, opts:)
|
|
|
63
63
|
end
|
|
64
64
|
end
|
|
65
65
|
|
|
66
|
+
# Like glob_path but returns an array of full Pathname objects instead of printing.
|
|
67
|
+
# skill: true → resolve matched directories to <dir>/SKILL.md
|
|
68
|
+
def collect_files(glob, bname=nil, opts:, skill: false)
|
|
69
|
+
filters = opts.args
|
|
70
|
+
filters = ['.*'] if filters.empty?
|
|
71
|
+
re_s = filters.join(?|)
|
|
72
|
+
re = Regexp.new(re_s)
|
|
73
|
+
|
|
74
|
+
claude_paths.flat_map { |path| path.glob(glob) }.filter_map do |f|
|
|
75
|
+
base_f = f.basename(bname.to_s)
|
|
76
|
+
next unless base_f.to_s.match?(re)
|
|
77
|
+
target = skill ? f / 'SKILL.md' : f
|
|
78
|
+
target if target.exist?
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
|
|
66
82
|
def permission_flag(opts)
|
|
67
83
|
opts.danger ? '--dangerously-skip-permissions' : '--allow-dangerously-skip-permissions'
|
|
68
84
|
end
|
|
@@ -173,6 +189,20 @@ add_subcmd(:env) { |*args|
|
|
|
173
189
|
glob_path('skills/*/', opts: opts)
|
|
174
190
|
}
|
|
175
191
|
|
|
192
|
+
add_subcmd(:vim) { |*args|
|
|
193
|
+
opts = tool_opts.parse(args)
|
|
194
|
+
files = collect_files('agents/*.md', '.md', opts: opts) +
|
|
195
|
+
collect_files('commands/*.md', '.md', opts: opts) +
|
|
196
|
+
collect_files('skills/*/', opts: opts, skill: true)
|
|
197
|
+
|
|
198
|
+
if files.empty?
|
|
199
|
+
puts "No matching files found."
|
|
200
|
+
next
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
edit_files(*files.map(&:to_s))
|
|
204
|
+
}
|
|
205
|
+
|
|
176
206
|
add_subcmd(:new) { |*args|
|
|
177
207
|
tmpfile = Tempfile.new(['claude-new-', '.md'])
|
|
178
208
|
tmpfile.close
|
data/lib/hiiro/branch.rb
CHANGED
|
@@ -24,6 +24,6 @@ class Hiiro
|
|
|
24
24
|
def self.for_task(task_name) = where(task: task_name).all
|
|
25
25
|
def self.for_worktree(wt) = where(worktree: wt).all
|
|
26
26
|
def self.find_by_name(n) = where(name: n).first
|
|
27
|
-
def self.ordered = order(Sequel.
|
|
27
|
+
def self.ordered = order(Sequel.asc(:created_at))
|
|
28
28
|
end
|
|
29
29
|
end
|
data/lib/hiiro/db.rb
CHANGED
|
@@ -264,12 +264,16 @@ class Hiiro
|
|
|
264
264
|
record['pinned'] = true
|
|
265
265
|
next if record.empty?
|
|
266
266
|
|
|
267
|
-
|
|
267
|
+
begin
|
|
268
|
+
connection[:prs].insert_conflict(target: :number).insert(record)
|
|
268
269
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
270
|
+
# Populate check_runs table from check_runs_json if present
|
|
271
|
+
if (runs_json = record['check_runs_json'])
|
|
272
|
+
runs = ::JSON.parse(runs_json) rescue nil
|
|
273
|
+
Hiiro::CheckRun.upsert_for_pr(record['number'], runs) if runs && record['number']
|
|
274
|
+
end
|
|
275
|
+
rescue => e
|
|
276
|
+
warn "Hiiro::DB: skipping pinned_pr #{record['number']} (#{e.class}: #{e.message.lines.first&.strip})"
|
|
273
277
|
end
|
|
274
278
|
end
|
|
275
279
|
bak(path)
|
data/lib/hiiro/version.rb
CHANGED