hiiro 0.1.364 → 0.1.366
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 +24 -342
- data/README.md +73 -14
- data/bin/t +526 -0
- data/bin/tt +20 -0
- data/docs/h-task.md +120 -56
- data/docs/t.md +427 -0
- data/docs/why-t.md +306 -0
- data/lib/hiiro/notification.rb +3 -3
- data/lib/hiiro/task_scope.rb +92 -0
- data/lib/hiiro/task_sessions.rb +51 -0
- data/lib/hiiro/version.rb +1 -1
- metadata +8 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 97e9a140ccea0c61c6efe48395bda803e10bec8c0a933a95efb4a949a8788cdf
|
|
4
|
+
data.tar.gz: 24c45d70c07d018be4cca31368d91d55b8c8caa89d326e65803c512dcdf3b93e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e1b139bc6a4286240311b0106413abed936ebef51771b267d4284ecff70783c5df7a4a0a7b368251e481c8f72ed0cc5d0bc094fe513cffa1563df08123fa65dc
|
|
7
|
+
data.tar.gz: 37b32e60d486151dad01c08fdff82db9e9cff23506c8dad72636421b91e77c9e2e7a342b145770d86c615cc982035c4dcc80f3039ec3e457809e431f0bcc5aa2
|
data/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,30 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## [
|
|
3
|
+
## [Unreleased]
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
- Create the publish response log directory before saving Claude's output, preventing release preparation from failing when the directory is absent.
|
|
7
|
-
- Prevent infinite recursion in help directory grouping when command locations span different filesystem-root directories, such as `/Users` and `/Volumes`.
|
|
5
|
+
## [0.1.366] - 2026-09-14
|
|
8
6
|
|
|
9
|
-
|
|
7
|
+
### Changed
|
|
8
|
+
- Implement task-first CLI syntax: `t TASK COMMAND...` replaces `t COMMAND [TASK]...`
|
|
9
|
+
- Task names now precede commands, appearing immediately after `t` or after a group
|
|
10
|
+
- Task resolution prefers exact names, then unique case-sensitive prefixes; ambiguous prefixes fail
|
|
11
|
+
- Move workspace command from `t workspace TASK` to `t TASK switch` (keep `workspace` as alias)
|
|
12
|
+
- Rename implicit task selection to explicit `.` reference; bare `t` lists all tasks without selecting
|
|
13
|
+
- Update `t current TASK` to `t TASK current`; explicit named selections save fallback after success
|
|
14
|
+
- Context resolution checks calling Herdr workspace, then current directory, then saved task; reject ambiguous matches
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
- Task todo management under `t TASK todo` with `add`, `rm`, `list`/`ls` subcommands; todos share existing database with `h todo`
|
|
18
|
+
- `tt TASK ...` shortcut delegates to `t TASK todo ...`; bare `tt` uses current task via `.` selection
|
|
19
|
+
- Orphan todo scope with `t - todo` and `tt -` for unassigned todos; `-` invalid outside todo commands
|
|
20
|
+
- Native AI session launches via `t TASK omp`, `codex`/`cdx`, and `claude`/`cld` for fresh tool instances
|
|
21
|
+
- Resume mode with first-argument prefix matching (e.g., `r`, `res`, `resume`); focuses unique running instance or launches native picker
|
|
22
|
+
- `Hiiro::TaskScope` library for named/current/orphan task reference resolution with cached context
|
|
23
|
+
- `Hiiro::TaskSessions` library for AI tool launch/resume dispatch with Herdr workspace integration
|
|
24
|
+
- New `lib/hiiro/task_scope.rb` and `lib/hiiro/task_sessions.rb` support libraries
|
|
25
|
+
- New `bin/tt` executable for todo shortcut
|
|
26
|
+
|
|
27
|
+
## [0.1.365] - 2026-09-13
|
|
10
28
|
|
|
11
29
|
### Added
|
|
12
30
|
- Add the `t` task CLI with `--task`/`-t` selection, durable task status and next actions, document homes, resource references, and Herdr workspace/tab/pane commands.
|
|
@@ -25,6 +43,7 @@
|
|
|
25
43
|
- Remove the old `Hiiro::Tmux` adapter and tmux-specific command tests.
|
|
26
44
|
|
|
27
45
|
### Fixed
|
|
46
|
+
- Strip the desktop notifier executable path and run notifications and sounds as detached processes instead of creating persistent Herdr tabs.
|
|
28
47
|
- Preserve `add_cmd` declaration locations and argument metadata in generated help; allow command groups to pass arguments and help through to child commands.
|
|
29
48
|
- Make undeclared `add_cmd opts:` entries boolean flags without consuming positional arguments; preserve explicit options and reserve conflicting short aliases.
|
|
30
49
|
- Show selected command options for `add_cmd -h`/`--help` without executing the command block.
|
|
@@ -32,340 +51,3 @@
|
|
|
32
51
|
- Restore the missing `Hiiro::Bins` helper so `require "hiiro"` boots and commands like `h jumplist record` dispatch correctly.
|
|
33
52
|
- Make Hiiro's Ruby requirement explicit as Ruby 3.2+ and have rbenv-wide gem installs skip incompatible Ruby versions.
|
|
34
53
|
- Update the publish script to preserve the Ruby support constant, run only on supported Ruby, and install releases only into compatible rbenv versions.
|
|
35
|
-
|
|
36
|
-
## [0.1.355] - 2026-05-19
|
|
37
|
-
|
|
38
|
-
### Added
|
|
39
|
-
- `h task from <worktree-path> <task-name>` registers an existing git worktree from any path as a Hiiro task and switches to it.
|
|
40
|
-
|
|
41
|
-
### Fixed
|
|
42
|
-
- `h task list` now shows external tasks registered with slash-containing names like `menu/ids`.
|
|
43
|
-
|
|
44
|
-
## [0.1.353] - 2026-04-26
|
|
45
|
-
|
|
46
|
-
### Added
|
|
47
|
-
- `Hiiro::Tui::ListScreen` for building keyboard-driven full-screen list interfaces
|
|
48
|
-
- `Hiiro::Config.load_yaml` and `Hiiro::Config.yaml_dig` helpers for YAML file loading with nested key access
|
|
49
|
-
|
|
50
|
-
## [0.1.352] - 2026-04-24
|
|
51
|
-
|
|
52
|
-
### Added
|
|
53
|
-
- `h claude all|agents|commands|skills` now support `--absolute/-a` to print absolute tool paths; skill matches resolve to `SKILL.md`
|
|
54
|
-
|
|
55
|
-
### Fixed
|
|
56
|
-
- `h capture path <num>` now prints the path of the Nth most recent capture (was always printing the captures dir regardless of args)
|
|
57
|
-
- `h capture new` / `h capture file` now record to the DB even when interrupted (Ctrl-C, exception) so partial captures show up in `h capture ls`. Interrupted captures display with the existing `?` glyph and `(exit interrupted)` message.
|
|
58
|
-
- `h pane splitv/splith` subcommand mappings corrected
|
|
59
|
-
- Corrected `REPO_PATH` constant from `.bare` to `.git`
|
|
60
|
-
|
|
61
|
-
## [0.1.350] - 2026-04-18
|
|
62
|
-
|
|
63
|
-
### Added
|
|
64
|
-
- `h-capture` command and `Hiiro::Capture` module for clipboard/selection capture
|
|
65
|
-
|
|
66
|
-
### Changed
|
|
67
|
-
- Optimize `Hiiro::Shell::Result#plain_text` and `#lines` with instance-level caching
|
|
68
|
-
- Refactor `Shell::Result#lines` to use `String#lines(chomp: true)` for improved line handling
|
|
69
|
-
- Reduce Claude API effort to `low` in publish script for faster changelog generation
|
|
70
|
-
|
|
71
|
-
## [0.1.349] - 2026-04-17
|
|
72
|
-
|
|
73
|
-
### Removed
|
|
74
|
-
- `h task branches` and `h task wtrees` convenience subcommands; use `h branch` and `h wtree` directly instead
|
|
75
|
-
|
|
76
|
-
## [0.1.348] - 2026-04-17
|
|
77
|
-
|
|
78
|
-
### Added
|
|
79
|
-
- `h task path|tree|branch|session` now accept `-a/--all` to print one value per task; trailing positional args act as prefix filters (OR'd together)
|
|
80
|
-
- `h task name` — new subcommand; prints current task name (or selects via fuzzyfind), supports `-a` like the others
|
|
81
|
-
- `h task prune` — drops task records whose worktree dir is missing; dry-run by default, requires `-f` to actually delete
|
|
82
|
-
- `TaskManager#filter_tasks(prefixes)` helper for sorted, prefix-filtered task lists
|
|
83
|
-
|
|
84
|
-
## [0.1.347] - 2026-04-12
|
|
85
|
-
|
|
86
|
-
### Added
|
|
87
|
-
- `h pr tags` now supports flags: `--update/-u` (refresh PR status before listing), `--verbose/-v` (multi-line output per PR), `--checks/-C` (show individual check run details)
|
|
88
|
-
|
|
89
|
-
## [0.1.346] - 2026-04-12
|
|
90
|
-
|
|
91
|
-
### Added
|
|
92
|
-
- `h pr tags` now accepts optional tag names to filter output to only those tags
|
|
93
|
-
|
|
94
|
-
## [0.1.345] - 2026-04-12
|
|
95
|
-
|
|
96
|
-
### Fixed
|
|
97
|
-
- ANSI escape sequence pattern now uses hex escapes (`\x20-\x2f`) instead of literal space-to-slash to avoid ambiguity with the `/` regex delimiter
|
|
98
|
-
|
|
99
|
-
## [0.1.343] - 2026-04-12
|
|
100
|
-
|
|
101
|
-
### Added
|
|
102
|
-
- Task subcommands now fall back to `~/proj/*` directories when no task matches
|
|
103
|
-
- `h task path hiiro` → resolves to `~/proj/hiiro` if no task named "hiiro" exists
|
|
104
|
-
- Works for: `cd`, `path`, `sh`, `branch`, `tree`, `session`, and any subcommand using `-t` flag
|
|
105
|
-
- `FallbackTarget` class duck-types as `Task` for seamless integration
|
|
106
|
-
- Ambiguous project matches print a warning to stderr
|
|
107
|
-
|
|
108
|
-
### Fixed
|
|
109
|
-
- `Hiiro::Git::Pr.is_link?` is now a class method (was instance method)
|
|
110
|
-
|
|
111
|
-
## [0.1.342] - 2026-04-08
|
|
112
|
-
|
|
113
|
-
### Added
|
|
114
|
-
- `h pr review` / `h pr cr` — code review workflow for managing PR sessions in ~/work/codereviews worktree
|
|
115
|
-
- `Hiiro::Git::Pr.from_link(url)` — parse PR number, owner, and repo from GitHub PR links
|
|
116
|
-
- `Hiiro::Git::Pr.from_number(number)` — create PR instances from PR numbers
|
|
117
|
-
- `Hiiro::Git::Pr.is_link?(link)` — validate GitHub PR links
|
|
118
|
-
|
|
119
|
-
## [0.1.341] - 2026-04-07
|
|
120
|
-
|
|
121
|
-
### Fixed
|
|
122
|
-
- `h pr view` now defaults to current branch's PR when no PR number is specified
|
|
123
|
-
|
|
124
|
-
### Changed
|
|
125
|
-
- Update publish script to use `claude-haiku-4-5` model identifier
|
|
126
|
-
|
|
127
|
-
## [0.1.340] - 2026-04-07
|
|
128
|
-
|
|
129
|
-
### Fixed
|
|
130
|
-
- `h notify jump` now runs `switch-client` before `select-window`/`select-pane` so jumping to a pane in a different session actually works
|
|
131
|
-
- `h notify ls` and `h notify menu` now auto-prune stale entries for panes that no longer exist
|
|
132
|
-
|
|
133
|
-
### Added
|
|
134
|
-
- `h notify prune` — explicitly remove all notifications for dead panes
|
|
135
|
-
|
|
136
|
-
## [0.1.339] - 2026-04-07
|
|
137
|
-
|
|
138
|
-
### Added
|
|
139
|
-
- `h ps byport <port> [port2 ...]` — find processes listening on specified port(s)
|
|
140
|
-
- `PsProcess.by_port(*ports)` — query processes by listening port numbers
|
|
141
|
-
- `h task switch` now matches ~/proj/* directories by prefix as fallback when task name doesn't match
|
|
142
|
-
|
|
143
|
-
## [0.1.338] - 2026-04-07
|
|
144
|
-
|
|
145
|
-
### Changed
|
|
146
|
-
- `h pr watch`, `h pr fwatch`, `h pr check` now default to current branch's PR (use `-s` to select via fuzzyfinder)
|
|
147
|
-
- Renamed `registry_entries` table to `registry` (auto-migrates existing data)
|
|
148
|
-
|
|
149
|
-
## [0.1.337] - 2026-04-06
|
|
150
|
-
|
|
151
|
-
### Changed
|
|
152
|
-
- Refactor `PsProcess#files` and `PsProcess#ports` to use `filter_map` instead of `map + compact` for cleaner code
|
|
153
|
-
|
|
154
|
-
## [0.1.336] - 2026-04-06
|
|
155
|
-
|
|
156
|
-
### Fixed
|
|
157
|
-
- `PsProcess#ports` now uses `lsof -a` to AND conditions (was showing all system ports)
|
|
158
|
-
|
|
159
|
-
## [0.1.335] - 2026-04-07
|
|
160
|
-
|
|
161
|
-
### Added
|
|
162
|
-
- New `Hiiro::PsProcess` class (`lib/hiiro/ps_process.rb`) for encapsulated process info:
|
|
163
|
-
- `PsProcess.from_line(line)` - parse `ps awwux` output
|
|
164
|
-
- `PsProcess.all`, `.search(pattern)`, `.find(pid)`, `.in_dirs(*paths)`
|
|
165
|
-
- Instance methods: `#files`, `#ports`, `#dir`, `#parent`, `#children`
|
|
166
|
-
- Simple `#to_s` output: PID + CMD
|
|
167
|
-
- New `h ps` subcommands: `info`, `files`, `ports`
|
|
168
|
-
- Smart argument resolution in `h ps`: accepts PID, search pattern, or directory path
|
|
169
|
-
|
|
170
|
-
### Changed
|
|
171
|
-
- Refactored `h-ps` to use `PsProcess` class instead of raw `ps` parsing
|
|
172
|
-
|
|
173
|
-
## [0.1.334] - 2026-04-07
|
|
174
|
-
|
|
175
|
-
### Added
|
|
176
|
-
- New `h-ps` bin file for process utilities:
|
|
177
|
-
- `search <pattern>` - find processes matching a substring
|
|
178
|
-
- `indir <path> [path2 ...]` - list processes with files open in specified paths
|
|
179
|
-
- `getdir <pattern>` - list working directories of processes matching pattern
|
|
180
|
-
|
|
181
|
-
## [0.1.333] - 2026-04-04
|
|
182
|
-
|
|
183
|
-
### Changed
|
|
184
|
-
- Display hiiro version in queue watch output for better visibility during task monitoring
|
|
185
|
-
|
|
186
|
-
## [0.1.332] - 2026-04-04
|
|
187
|
-
|
|
188
|
-
### Changed
|
|
189
|
-
- Extract `hiiro_version` helper method in queue watcher to reduce duplication and improve version detection reliability
|
|
190
|
-
|
|
191
|
-
## [0.1.331] - 2026-04-04
|
|
192
|
-
|
|
193
|
-
### Fixed
|
|
194
|
-
- Strip whitespace from gem version output in queue watcher to prevent version comparison failures
|
|
195
|
-
|
|
196
|
-
## [0.1.330] - 2026-04-04
|
|
197
|
-
|
|
198
|
-
### Added
|
|
199
|
-
- `h queue add` now supports tmux session name prefix matching as fallback when task name doesn't match
|
|
200
|
-
- Queue editor now opens from the session's active pane directory when adding tasks via session reference
|
|
201
|
-
|
|
202
|
-
### Changed
|
|
203
|
-
- Extract `session_info_for()` helper to resolve tmux sessions by prefix in queue prompt resolver
|
|
204
|
-
|
|
205
|
-
## [0.1.329] - 2026-04-03
|
|
206
|
-
|
|
207
|
-
### Changed
|
|
208
|
-
- Add debug output and temporary JSON logging to publish script for troubleshooting Claude API responses
|
|
209
|
-
|
|
210
|
-
## [0.1.328] - 2026-04-02
|
|
211
|
-
|
|
212
|
-
### Changed
|
|
213
|
-
- Update command documentation
|
|
214
|
-
|
|
215
|
-
## [0.1.327] - 2026-04-02
|
|
216
|
-
|
|
217
|
-
### Added
|
|
218
|
-
- `h branch save --tag <tag>` (repeatable) — apply tags to branches during save operation
|
|
219
|
-
|
|
220
|
-
## [0.1.326] - 2026-04-02
|
|
221
|
-
|
|
222
|
-
### Changed
|
|
223
|
-
- Improve tag display formatting in link output by mapping individual tags to colored badges
|
|
224
|
-
- Refactor `h link tags` filtering logic to use `Hiiro::Tag` helpers for cleaner code
|
|
225
|
-
- Relocate `taggable` accessor method in `Hiiro::Tag` model
|
|
226
|
-
|
|
227
|
-
### Added
|
|
228
|
-
- `Hiiro::Tag.tagged_by_type` helper method to query tagged objects by tag name and type
|
|
229
|
-
|
|
230
|
-
## [0.1.325] - 2026-04-02
|
|
231
|
-
|
|
232
|
-
### Fixed
|
|
233
|
-
- Allow custom primary keys in `Hiiro::Invocation` model via `unrestrict_primary_key` for SQLite compatibility
|
|
234
|
-
|
|
235
|
-
## [0.1.324] - 2026-04-02
|
|
236
|
-
|
|
237
|
-
### Added
|
|
238
|
-
- `h pr status [ref...]` — query multiple PRs or pinned PRs; outputs number, title, state, check summary, and URL for each
|
|
239
|
-
- `h wtree branch [paths...]` — show branch for each worktree, or query specific worktree paths; resolves relative paths using task context
|
|
240
|
-
|
|
241
|
-
### Changed
|
|
242
|
-
- Pass `cwd` context to `h-wtree` via `Hiiro.run` for proper path resolution in nested environments
|
|
243
|
-
|
|
244
|
-
## [0.1.323] - 2026-04-01
|
|
245
|
-
|
|
246
|
-
### Changed
|
|
247
|
-
- Simplify `h pr ls` status refresh logic: always call `refresh_all_status` with `force:` parameter instead of conditional block
|
|
248
|
-
- Add optional `verbose:` parameter to `refresh_all_status` to control "already checked" message output
|
|
249
|
-
- Update `h pr update` to pass `verbose: true` when refreshing active PR status
|
|
250
|
-
|
|
251
|
-
## [0.1.322] - 2026-04-01
|
|
252
|
-
|
|
253
|
-
### Changed
|
|
254
|
-
- Refactor `h link tags` filtering logic to use new `Hiiro::Tag.tags_by_type` helper
|
|
255
|
-
- Simplify tag query to use `Hiiro::Link.where(id:)` instead of manual filtering
|
|
256
|
-
- Extract `tags_by_type(type)` singleton method to `Hiiro::Tag` for code reuse
|
|
257
|
-
|
|
258
|
-
## [0.1.321] - 2026-04-01
|
|
259
|
-
|
|
260
|
-
### Changed
|
|
261
|
-
- Extract `open_config` to `Hiiro::Config.open` singleton method; simplify parameter order from `dir:, file:` to positional `file, dir: nil`
|
|
262
|
-
- Update all config subcommands to use new `Hiiro::Config.open` interface
|
|
263
|
-
|
|
264
|
-
## [0.1.320] - 2026-04-01
|
|
265
|
-
|
|
266
|
-
### Changed
|
|
267
|
-
- Extract `open_config` helper to Hiiro instance method for reuse across config subcommands
|
|
268
|
-
- Refactor `h version --all` to use `Hiiro::Rbenv.capture` with clearer output formatting
|
|
269
|
-
- Add `to_s` method to `Hiiro::Tmux::Session` for string representation; rename existing `display` method for consistency
|
|
270
|
-
- Extract `project_dirs` and `projects_from_config` to singleton methods in Project plugin for testability
|
|
271
|
-
|
|
272
|
-
## [0.1.319] - 2026-04-01
|
|
273
|
-
|
|
274
|
-
### Added
|
|
275
|
-
- `h queue ls [STATUS]` — filter by status with prefix matching (e.g. `h queue ls run` → running tasks); composable with existing `-s` flag
|
|
276
|
-
- `h session sh <session> [cmd...]` — open a new window in another tmux session (runs shell or given command there, then switches)
|
|
277
|
-
- `h task sh -s SESSION [cmd...]` — run task shell/command in a new window in a specific tmux session
|
|
278
|
-
- `h link tags` — list all known link tags; `h link tags tag1 tag2...` filters links by tags (prefix matching)
|
|
279
|
-
- `h link ls` now shows tags inline with colored badges
|
|
280
|
-
- `h link rm` / `h link remove` subcommand — remove links by number, shorthand, or fuzzy select
|
|
281
|
-
|
|
282
|
-
### Fixed
|
|
283
|
-
- `h pr update` and `h pr ls -u` skip closed/merged PRs — only active PRs are refreshed
|
|
284
|
-
- `h link add -h` now shows help instead of adding `-h` as a URL
|
|
285
|
-
- `h db remigrate` no longer imports duplicate links — skips rows with an already-existing URL
|
|
286
|
-
- Add unique constraint on `links.url` to prevent duplicates at database level
|
|
287
|
-
|
|
288
|
-
## [0.1.318] - 2026-04-01
|
|
289
|
-
|
|
290
|
-
### Added
|
|
291
|
-
- `registry_pick` helper method for interactive registry entry selection via fuzzyfinder
|
|
292
|
-
|
|
293
|
-
### Changed
|
|
294
|
-
- Simplify gem installation logic: always use `gem install -u` instead of checking installation state and branching between `gem install` and `gem update`
|
|
295
|
-
- Remove `--clear-sources` and `--source` flags in favor of gem's built-in source cache handling
|
|
296
|
-
- Improve gem version regex in publish script to match only the first (latest) version from `gem list` output
|
|
297
|
-
|
|
298
|
-
### Fixed
|
|
299
|
-
- Ensure gem installation works reliably across all rbenv Ruby versions by using `-u` flag for consistent update behavior
|
|
300
|
-
|
|
301
|
-
## [0.1.317] - 2026-04-01
|
|
302
|
-
|
|
303
|
-
### Changed
|
|
304
|
-
- Parallelize gem installation across all rbenv Ruby versions using thread pool for faster multi-version deployment
|
|
305
|
-
- Refactor publish script to install/update hiiro gem across all Ruby versions instead of just current version
|
|
306
|
-
|
|
307
|
-
### Fixed
|
|
308
|
-
- Handle both gem install and update cases based on existing installation state
|
|
309
|
-
- Run `h setup` after installation in each Ruby version to initialize version-specific configuration
|
|
310
|
-
- Suppress gem installation output to reduce log noise during parallel installs
|
|
311
|
-
|
|
312
|
-
## [0.1.316] - 2026-04-01
|
|
313
|
-
|
|
314
|
-
### Added
|
|
315
|
-
- Parallelize hiiro gem updates across Ruby versions with thread pool for faster multi-version updates
|
|
316
|
-
- Optional `dir:` parameter to `Hiiro::Background.run` for working directory support
|
|
317
|
-
|
|
318
|
-
### Changed
|
|
319
|
-
- Improve gem version regex pattern in publish script for more reliable version matching
|
|
320
|
-
|
|
321
|
-
### Fixed
|
|
322
|
-
- Bypass rubygems local cache with `--clear-sources --source https://rubygems.org` flags in `install_gem` to ensure fresh gem installation
|
|
323
|
-
- Add debug output for version polling in publish script
|
|
324
|
-
- Convert `sa` symlink from absolute to relative path
|
|
325
|
-
|
|
326
|
-
## [0.1.315] - 2026-04-01
|
|
327
|
-
|
|
328
|
-
### Fixed
|
|
329
|
-
- Remove redundant `exit 0` statement from publish script
|
|
330
|
-
|
|
331
|
-
## [0.1.314] - 2026-04-01
|
|
332
|
-
|
|
333
|
-
### Fixed
|
|
334
|
-
- Rename `Gem` class to `RubyGem` in publish script to avoid conflict with Ruby stdlib
|
|
335
|
-
|
|
336
|
-
## [0.1.313] - 2026-04-01
|
|
337
|
-
|
|
338
|
-
### Fixed
|
|
339
|
-
- Remove `awesome_print` dependency
|
|
340
|
-
- Do not splice values into subcommand constructor; pass them as keyword arguments to prevent arg leakage
|
|
341
|
-
|
|
342
|
-
## [0.1.312] - 2026-04-01
|
|
343
|
-
|
|
344
|
-
### Fixed
|
|
345
|
-
- Separate `bin_name` and `args` initialization in `Hiiro.init` to prevent argument confusion in nested Hiiro instances
|
|
346
|
-
|
|
347
|
-
## [0.1.311] - 2026-04-01
|
|
348
|
-
|
|
349
|
-
### Changed
|
|
350
|
-
- Add `ap()` inspection for bin/args initialization in debug mode
|
|
351
|
-
|
|
352
|
-
## [0.1.310] - 2026-04-01
|
|
353
|
-
|
|
354
|
-
### Fixed
|
|
355
|
-
- `make_child` now passes `bin_name:` and `args:` as keyword args to `Hiiro.init`, fixing subcommand dispatch for all `h task`, `h queue`, `h service`, and `h run` child hierarchies — previously `child_bin_name` leaked into `oargs` and became the subcmd, so every child hiiro showed help instead of dispatching
|
|
356
|
-
|
|
357
|
-
## [0.1.309] - 2026-03-31
|
|
358
|
-
|
|
359
|
-
### Added
|
|
360
|
-
- `h link tag` support for tagging links in the link manager
|
|
361
|
-
|
|
362
|
-
### Fixed
|
|
363
|
-
- Correct argument passing in `run_child` to prevent arg dropping in nested Hiiro instances
|
|
364
|
-
|
|
365
|
-
## [0.1.308] - 2026-03-31
|
|
366
|
-
|
|
367
|
-
### Added
|
|
368
|
-
- `h db cleanup` subcommand to preview and prune duplicate rows from SQLite tables
|
|
369
|
-
|
|
370
|
-
### Fixed
|
|
371
|
-
- Prevent duplicate pinned_prs during import with `insert_conflict` and per-row rescue
|
data/README.md
CHANGED
|
@@ -61,20 +61,72 @@ h ping
|
|
|
61
61
|
|
|
62
62
|
### Task CLI
|
|
63
63
|
|
|
64
|
-
|
|
65
|
-
and existing task records. `
|
|
66
|
-
|
|
67
|
-
|
|
64
|
+
The repository's `bin/t` contains the task commands and helpers, using Hiiro's
|
|
65
|
+
`add_cmd` DSL and existing task records. `~/bin/t` and `~/bin/tt` are symlinks to
|
|
66
|
+
the repository launchers; installing the gem does not install them. `t NAME new`
|
|
67
|
+
creates a task and its notes directory without creating a Git worktree.
|
|
68
|
+
|
|
69
|
+
Use `t TASK COMMAND...`. Bare `t` lists every task, including done and archived
|
|
70
|
+
tasks. `t TASK` shows a task. Only exact root `t help` displays generic usage and
|
|
71
|
+
native scoped help without looking up a task. Other first words are task
|
|
72
|
+
references, even `new`, `show`, `edit`, or `he`.
|
|
73
|
+
|
|
74
|
+
Task references prefer an exact name, then a unique case-sensitive prefix.
|
|
75
|
+
Ambiguous prefixes fail. `t NAME new` creates the exact name instead of resolving
|
|
76
|
+
a prefix. An unknown name is otherwise an error, except that `t NAME todo add`
|
|
77
|
+
can create the task with its first todo.
|
|
78
|
+
|
|
79
|
+
Use `.` for the current task. Selection checks the calling Herdr workspace,
|
|
80
|
+
then the current directory, then the saved task. Stale or ambiguous context is
|
|
81
|
+
an error. `t TASK current` saves a named selection without focusing a terminal;
|
|
82
|
+
`t . current` only prints it. `t TASK switch` and `t TASK workspace` focus or
|
|
83
|
+
create the task workspace and save a named selection only after success.
|
|
84
|
+
`--show` inspects without changing focus or the saved task.
|
|
68
85
|
|
|
69
86
|
```sh
|
|
70
|
-
t new
|
|
71
|
-
t next
|
|
72
|
-
t
|
|
73
|
-
|
|
74
|
-
t
|
|
87
|
+
t investigation new
|
|
88
|
+
t investigation next "Inspect the failing request"
|
|
89
|
+
t investigation todo add Compare the retry settings
|
|
90
|
+
tt investigation add Inspect --help output
|
|
91
|
+
t investigation doc new findings
|
|
92
|
+
t investigation doc open findings
|
|
93
|
+
t investigation
|
|
94
|
+
t investigation todo rm 42 # Use an item ID printed by show or todo list.
|
|
95
|
+
t investigation current
|
|
96
|
+
t investigation switch
|
|
97
|
+
t investigation workspace --show
|
|
98
|
+
t . next "Write the handoff"
|
|
75
99
|
```
|
|
76
100
|
|
|
77
|
-
|
|
101
|
+
A task has one `next_action` and can have multiple independent todos. `t TASK`
|
|
102
|
+
and `t TASK todo` print todos with their IDs, statuses, and text in ID order.
|
|
103
|
+
`t TASK todo rm ID` deletes only that exact decimal ID in the selected scope.
|
|
104
|
+
`tt TASK ...` delegates to `t TASK todo ...`; bare `tt` means `t . todo`, and
|
|
105
|
+
`tt help` displays todo help. Use `t - todo` or `tt -` for orphan todos, including
|
|
106
|
+
`add` and `rm`. `-` is not a task and is invalid outside todo commands.
|
|
107
|
+
|
|
108
|
+
Every argument after `todo add` is literal text, including flags and `--`,
|
|
109
|
+
except that leading `add -h` or `add --help` displays help. Empty text fails
|
|
110
|
+
without creating a task.
|
|
111
|
+
|
|
112
|
+
Todos share the existing `todos` table with `h todo`. `t` writes only to the
|
|
113
|
+
database and does not rewrite `todo.yml`. Adding or removing a todo does not
|
|
114
|
+
change the task's next action, status, or saved selection. Task completion and
|
|
115
|
+
archival preserve todos; `h task` behavior is unchanged.
|
|
116
|
+
|
|
117
|
+
`t TASK omp`, `t TASK codex` or `cdx`, and `t TASK claude` or `cld` start fresh
|
|
118
|
+
native CLI sessions in new focused Herdr tabs. Claude always runs `claude`.
|
|
119
|
+
Only a nonempty prefix of `resume` as the first tool argument changes mode.
|
|
120
|
+
Bare `resume` focuses the unique running instance of that tool in the task
|
|
121
|
+
workspace, or launches the native resume picker if none is running. Multiple
|
|
122
|
+
running matches are an error. With an ID or any other arguments after `resume`,
|
|
123
|
+
the command always opens a new tab and passes those arguments to the native CLI.
|
|
124
|
+
All other arguments, including `--help`, are tool flags, not `t` flags.
|
|
125
|
+
|
|
126
|
+
Tasks can share an existing directory, including a worktree. `t` does not change
|
|
127
|
+
Git state or promise task-isolated persisted AI sessions in shared directories.
|
|
128
|
+
|
|
129
|
+
See the [task command reference](docs/t.md) for all commands and the [workflow introduction](docs/why-t.md) for practical examples.
|
|
78
130
|
|
|
79
131
|
## Subcommands
|
|
80
132
|
|
|
@@ -226,14 +278,21 @@ among the command's automatic flags and does not conflict with a selected
|
|
|
226
278
|
explicit option or `-h`. Every automatic flag has a long form. Explicit flags
|
|
227
279
|
and value options keep their definitions.
|
|
228
280
|
|
|
229
|
-
For a command that delegates to `
|
|
281
|
+
For a command that delegates to `run_child`, use `add_cmd(..., passthrough: true)`.
|
|
230
282
|
It forwards control without parsing the parent's arguments or intercepting the
|
|
231
|
-
child's `--help`. The child declares and parses its own options.
|
|
232
|
-
uses the original command block's source location and declared `args:`, not the
|
|
283
|
+
child's `--help`. The child declares and parses its own options.
|
|
284
|
+
Generated help uses the original command block's source location and declared `args:`, not the
|
|
233
285
|
internal wrapper's signature.
|
|
234
286
|
|
|
287
|
+
`run_child` is the convenience form of `make_child(...).run`. `make_child`
|
|
288
|
+
returns an unrun child when the caller needs to configure it before dispatch.
|
|
289
|
+
Module-level `build_hiiro` methods are builders that return such a child; callers
|
|
290
|
+
run the result. They are not required for an inline child command group.
|
|
291
|
+
Child commands inherit the parent's resolvers, so a task can be bound once and
|
|
292
|
+
shared with nested groups without consuming its name again.
|
|
293
|
+
|
|
235
294
|
For a CLI that should dispatch only registered blocks, pass
|
|
236
|
-
`external_commands: false` to `Hiiro.run` and its `make_child` calls. This
|
|
295
|
+
`external_commands: false` to `Hiiro.run` and its `run_child` or `make_child` calls. This
|
|
237
296
|
prevents unrelated same-prefix executables on `PATH` from taking precedence.
|
|
238
297
|
|
|
239
298
|
## Writing Plugins
|