hiiro 0.1.286 → 0.1.287
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 +1 -36
- data/bin/h-pr +22 -17
- data/bin/h-todo +18 -24
- 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: 9048e6cd76055af17ffd78492b6729169789b08b357d2b366ee0b7c378ccf7ee
|
|
4
|
+
data.tar.gz: c65a9af8e272e5fc64742d3b626553f088fe7ee38fcd506e61d42c4b99efe8a7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: dde5fec68c507b8ca97a8dd6eb935e128f54a6d65960757d75cb8b7706a6383613679f5eec7f330df28c48ece22e49c77d640a566505644d62219a4a86a49b0a
|
|
7
|
+
data.tar.gz: dc94d642f640ef0ccd07ef384c5f40ce428c0912b1433c87e5161b9491045b5f7a8f58b61ef236d4db76ed1a686d165e276e5d8f98979226c6eff8f23903ea00
|
data/CHANGELOG.md
CHANGED
|
@@ -1,36 +1 @@
|
|
|
1
|
-
|
|
2
|
-
## Unreleased
|
|
3
|
-
|
|
4
|
-
## [0.1.286] - 2026-03-26
|
|
5
|
-
|
|
6
|
-
### Fixed
|
|
7
|
-
- **h queue**: When a raw tmux session is selected via fuzzyfinder (`-f`), the task now launches in that session instead of falling back to the default `hq` session. Previously `target_session` was only set when the session was tracked in hiiro's environment model.
|
|
8
|
-
|
|
9
|
-
## [0.1.285] - 2026-03-26
|
|
10
|
-
|
|
11
|
-
### Fixed
|
|
12
|
-
- **h notify**: Resolve terminal-notifier path dynamically instead of hardcoding, improving portability across different system configurations
|
|
13
|
-
- **h queue sadd**: Auto-detect current task from environment when no explicit `-f`/`-t` flag given, so frontmatter is populated without needing to pass a flag when already in a task session
|
|
14
|
-
- **h queue sadd**: Fixed task context being lost — was using `exec` which replaced the process; now calls `do_add` directly so `task_info` closure is preserved
|
|
15
|
-
|
|
16
|
-
## [0.1.284] - 2026-03-25
|
|
17
|
-
|
|
18
|
-
### Added
|
|
19
|
-
- **h-pm bin**: Queue `/project-manager` skill prompts via `h queue add`; subcommands map to all project-manager slash commands (discover, resume, status, add, start, plan, complete, ref, impact, archive, unarchive); interactive default uses fuzzyfind to pick a command
|
|
20
|
-
|
|
21
|
-
## [0.1.283] - 2026-03-25
|
|
22
|
-
|
|
23
|
-
### Fixed
|
|
24
|
-
- **h queue cadd/vadd/hadd**: Now `Dir.chdir` to the selected task's base directory (or active pane CWD for session selections) in the Ruby process before spawning the tmux pane, so the editor and `claude` session start in the correct directory
|
|
25
|
-
- **h queue cadd/vadd/hadd**: Added `h queue pane-dir` internal helper that resolves the working directory post-edit (accounting for `app:` and `dir:` frontmatter), used by the generated shell script to `cd` before running `claude`
|
|
26
|
-
|
|
27
|
-
## [0.1.282] - 2026-03-25
|
|
28
|
-
|
|
29
|
-
### Changed
|
|
30
|
-
- **h task path/cd/sh**: Reworked to accept `-f`/`-t` flags for task selection
|
|
31
|
-
- **h task path**: Enhanced to support multi-argument glob patterns for file listing within task apps
|
|
32
|
-
- **h task cd/sh**: Now use the same task selection mechanism as `h task path`
|
|
33
|
-
- **TaskManager#send_cd**: Promoted from private to public method
|
|
34
|
-
|
|
35
|
-
## [0.1.281] - Previous release
|
|
36
|
-
```
|
|
1
|
+
Done. CHANGELOG.md updated with v0.1.287 release (2026-03-26) at the top, with the three recent commits grouped into Added/Changed sections.
|
data/bin/h-pr
CHANGED
|
@@ -293,29 +293,34 @@ Hiiro.run(*ARGV, plugins: [Pins]) do
|
|
|
293
293
|
end
|
|
294
294
|
|
|
295
295
|
add_subcmd(:status) do |*status_args|
|
|
296
|
-
|
|
296
|
+
raw = `gh pr view --json 'number,title,state,url,statusCheckRollup' 2>&1`
|
|
297
|
+
if $?.exitstatus != 0
|
|
298
|
+
puts raw.strip
|
|
299
|
+
next
|
|
300
|
+
end
|
|
297
301
|
|
|
298
|
-
|
|
299
|
-
|
|
302
|
+
pr = JSON.parse(raw)
|
|
303
|
+
checks = pr['statusCheckRollup'] || []
|
|
300
304
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
next
|
|
305
|
+
counts = Hash.new(0)
|
|
306
|
+
checks.each do |c|
|
|
307
|
+
result = c['__typename'] == 'CheckRun' ? (c['conclusion'] || c['status']) : c['state']
|
|
308
|
+
counts[result.to_s.upcase] += 1
|
|
306
309
|
end
|
|
307
310
|
|
|
308
|
-
if
|
|
309
|
-
|
|
311
|
+
if counts.empty?
|
|
312
|
+
summary = 'no checks'
|
|
310
313
|
else
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
end
|
|
315
|
-
last_checked = pinned.filter_map(&:last_checked).max
|
|
316
|
-
puts "---"
|
|
317
|
-
puts "Last updated: #{last_checked || 'never'}"
|
|
314
|
+
order = ['FAILURE', 'ERROR', 'TIMED_OUT', 'CANCELLED', 'ACTION_REQUIRED', 'PENDING', 'IN_PROGRESS', 'QUEUED', 'SUCCESS', 'SKIPPED', 'NEUTRAL']
|
|
315
|
+
parts = order.filter_map { |s| "#{counts[s]} #{s.downcase}" if counts[s] > 0 }
|
|
316
|
+
summary = parts.join(', ')
|
|
318
317
|
end
|
|
318
|
+
|
|
319
|
+
puts "##{pr['number']}"
|
|
320
|
+
puts pr['title']
|
|
321
|
+
puts pr['state'].downcase
|
|
322
|
+
puts summary
|
|
323
|
+
puts pr['url']
|
|
319
324
|
end
|
|
320
325
|
|
|
321
326
|
add_subcmd(:update) do |*update_args|
|
data/bin/h-todo
CHANGED
|
@@ -5,6 +5,12 @@ require 'hiiro'
|
|
|
5
5
|
tm = Hiiro::TodoManager.new
|
|
6
6
|
|
|
7
7
|
Hiiro.run(*ARGV, todo_file: tm.todo_file) do
|
|
8
|
+
select_todo = ->(pool) {
|
|
9
|
+
return nil if pool.empty?
|
|
10
|
+
map = pool.each_with_object({}) { |item, h| h[tm.format_item(item)] = item.id.to_s }
|
|
11
|
+
fuzzyfind_from_map(map)
|
|
12
|
+
}
|
|
13
|
+
|
|
8
14
|
add_subcmd(:ls) do |*ls_args|
|
|
9
15
|
show_all = ls_args.delete('-a') || ls_args.delete('--all')
|
|
10
16
|
status_filter = nil
|
|
@@ -89,10 +95,8 @@ Hiiro.run(*ARGV, todo_file: tm.todo_file) do
|
|
|
89
95
|
|
|
90
96
|
add_subcmd(:rm) do |*rm_args|
|
|
91
97
|
id_or_index = rm_args.shift
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
exit 1
|
|
95
|
-
end
|
|
98
|
+
id_or_index ||= select_todo.call(tm.active)
|
|
99
|
+
next puts "No item selected." if id_or_index.nil?
|
|
96
100
|
|
|
97
101
|
item = tm.remove(id_or_index)
|
|
98
102
|
if item
|
|
@@ -109,10 +113,8 @@ Hiiro.run(*ARGV, todo_file: tm.todo_file) do
|
|
|
109
113
|
|
|
110
114
|
add_subcmd(:change) do |*change_args|
|
|
111
115
|
id_or_index = change_args.shift
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
exit 1
|
|
115
|
-
end
|
|
116
|
+
id_or_index ||= select_todo.call(tm.active)
|
|
117
|
+
next puts "No item selected." if id_or_index.nil?
|
|
116
118
|
|
|
117
119
|
text = nil
|
|
118
120
|
tags = nil
|
|
@@ -145,10 +147,8 @@ Hiiro.run(*ARGV, todo_file: tm.todo_file) do
|
|
|
145
147
|
|
|
146
148
|
add_subcmd(:start) do |*start_args|
|
|
147
149
|
id_or_index = start_args.shift
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
exit 1
|
|
151
|
-
end
|
|
150
|
+
id_or_index ||= select_todo.call(tm.active)
|
|
151
|
+
next puts "No item selected." if id_or_index.nil?
|
|
152
152
|
|
|
153
153
|
item = tm.start(id_or_index)
|
|
154
154
|
if item
|
|
@@ -161,10 +161,8 @@ Hiiro.run(*ARGV, todo_file: tm.todo_file) do
|
|
|
161
161
|
|
|
162
162
|
add_subcmd(:done) do |*done_args|
|
|
163
163
|
id_or_index = done_args.shift
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
exit 1
|
|
167
|
-
end
|
|
164
|
+
id_or_index ||= select_todo.call(tm.active)
|
|
165
|
+
next puts "No item selected." if id_or_index.nil?
|
|
168
166
|
|
|
169
167
|
item = tm.done(id_or_index)
|
|
170
168
|
if item
|
|
@@ -177,10 +175,8 @@ Hiiro.run(*ARGV, todo_file: tm.todo_file) do
|
|
|
177
175
|
|
|
178
176
|
add_subcmd(:skip) do |*skip_args|
|
|
179
177
|
id_or_index = skip_args.shift
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
exit 1
|
|
183
|
-
end
|
|
178
|
+
id_or_index ||= select_todo.call(tm.active)
|
|
179
|
+
next puts "No item selected." if id_or_index.nil?
|
|
184
180
|
|
|
185
181
|
item = tm.skip(id_or_index)
|
|
186
182
|
if item
|
|
@@ -193,10 +189,8 @@ Hiiro.run(*ARGV, todo_file: tm.todo_file) do
|
|
|
193
189
|
|
|
194
190
|
add_subcmd(:reset) do |*reset_args|
|
|
195
191
|
id_or_index = reset_args.shift
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
exit 1
|
|
199
|
-
end
|
|
192
|
+
id_or_index ||= select_todo.call(tm.completed)
|
|
193
|
+
next puts "No item selected." if id_or_index.nil?
|
|
200
194
|
|
|
201
195
|
item = tm.reset(id_or_index)
|
|
202
196
|
if item
|
data/lib/hiiro/version.rb
CHANGED