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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bc3bb4ffb44a7fd10c4326c3b66ce610252b5577a2bf9bbd853609e136ce372d
4
- data.tar.gz: b5656ec5578ab8d44db8d052ee221a8fc0ec7a20b3dd576e0f1e26aab8b50a75
3
+ metadata.gz: 97e9a140ccea0c61c6efe48395bda803e10bec8c0a933a95efb4a949a8788cdf
4
+ data.tar.gz: 24c45d70c07d018be4cca31368d91d55b8c8caa89d326e65803c512dcdf3b93e
5
5
  SHA512:
6
- metadata.gz: '089a0505748168d9589a116e9c21b2b7b28e7a5703128d4a897ba00d44d2fc19026230b4f34fb83fef436c96228e3e0c77e866683048cea0e73a4b977aa5656d'
7
- data.tar.gz: 0557625e1493c2a9aad1e398f93f0ee1f1504eeea5b753c4c9de908ccb89a99731cdb6127d84d44396a5dcdfde43728fdc10670a457fea4a8686a4fb61f08bd9
6
+ metadata.gz: e1b139bc6a4286240311b0106413abed936ebef51771b267d4284ecff70783c5df7a4a0a7b368251e481c8f72ed0cc5d0bc094fe513cffa1563df08123fa65dc
7
+ data.tar.gz: 37b32e60d486151dad01c08fdff82db9e9cff23506c8dad72636421b91e77c9e2e7a342b145770d86c615cc982035c4dcc80f3039ec3e457809e431f0bcc5aa2
data/CHANGELOG.md CHANGED
@@ -1,12 +1,30 @@
1
1
  # Changelog
2
2
 
3
- ## [0.1.364] - 2026-09-13
3
+ ## [Unreleased]
4
4
 
5
- ### Fixed
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
- ## [Unreleased]
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
- `~/bin/t` contains the task commands and helpers, using Hiiro's `add_cmd` DSL
65
- and existing task records. `t new NAME` creates a task and its notes directory
66
- without creating a Git worktree. Select a task with `--task NAME` or `-t NAME`.
67
- Root and group help are generated by Hiiro; leaf command help lists its selected options.
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 investigation
71
- t next -t investigation "Inspect the failing request"
72
- t doc new findings -t investigation
73
- t doc open findings -t investigation
74
- t show investigation
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
- See [Task commands](docs/h-task.md) for the full command reference.
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 `make_child`, use `add_cmd(..., passthrough: true)`.
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. Generated help
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