<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mingling.git/CHANGELOG.md, branch wip/mingling-cli-ux</title>
<subtitle>用于开发多子命令的命令行框架
</subtitle>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/'/>
<entry>
<title>docs: document completion description support</title>
<updated>2026-08-04T07:00:42+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-04T07:00:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=a97f8d32a856ae72d128ed61aebfb20709b7d4b9'/>
<id>a97f8d32a856ae72d128ed61aebfb20709b7d4b9</id>
<content type='text'>
Update changelog and issue tracker notes for the enhanced
`default_completion` behavior.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Update changelog and issue tracker notes for the enhanced
`default_completion` behavior.
</pre>
</div>
</content>
</entry>
<entry>
<title>chore(core): merge custom completions with defaults</title>
<updated>2026-08-04T06:33:49+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-04T06:33:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=b5e14df41a2b77d71e3367fe44bf466f5c8ad1b5'/>
<id>b5e14df41a2b77d71e3367fe44bf466f5c8ad1b5</id>
<content type='text'>
When a concrete entry's custom completion handler produces a `Suggest`
value, combine it with the default subcommand suggestions instead of
replacing them entirely. `FileCompletion` still falls back to the
default completion since it cannot be meaningfully merged.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When a concrete entry's custom completion handler produces a `Suggest`
value, combine it with the default subcommand suggestions instead of
replacing them entirely. `FileCompletion` still falls back to the
default completion since it cannot be meaningfully merged.
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(dispatch_tree): match longest registered prefix in trie</title>
<updated>2026-08-04T06:26:14+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-04T06:26:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=5b281566c7ba56d3de1cdc9f0909da6eb32884ab'/>
<id>5b281566c7ba56d3de1cdc9f0909da6eb32884ab</id>
<content type='text'>
Refactor `build_dispatch_body` to take a caller-provided `no_match`
fallback token stream instead of hardcoding `build_entry_fallback`
calls. Thread the fallback through recursive calls so child paths are
preferred over exact endpoints at the same depth, matching the dynamic
dispatcher's longest-prefix-wins behavior.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Refactor `build_dispatch_body` to take a caller-provided `no_match`
fallback token stream instead of hardcoding `build_entry_fallback`
calls. Thread the fallback through recursive calls so child paths are
preferred over exact endpoints at the same depth, matching the dynamic
dispatcher's longest-prefix-wins behavior.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(metadata): add Description convention metadata type</title>
<updated>2026-08-04T05:37:19+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-04T05:37:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=26ef5d88f36f69bb856aedc7bb50138933d1e036'/>
<id>26ef5d88f36f69bb856aedc7bb50138933d1e036</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat: add entry metadata system with compile-time typed values</title>
<updated>2026-08-04T05:26:48+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-04T05:26:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=4588e17f7ddacd8391a5c881a209735e08d48797'/>
<id>4588e17f7ddacd8391a5c881a209735e08d48797</id>
<content type='text'>
Add `Metadata&lt;B&gt;` trait and `#[metadata(Entry)]` attribute macro
to attach arbitrary, compile-time-typed metadata to entries.
Implement `ProgramCollect::get_metadata&lt;T&gt;()` for runtime retrieval,
backed by a global registry populated by `register_metadata!`.

Extend `pathf` with `MetadataPattern` to resolve metadata types
across modules at build time. Add two examples demonstrating
metadata usage with and without pathf integration.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add `Metadata&lt;B&gt;` trait and `#[metadata(Entry)]` attribute macro
to attach arbitrary, compile-time-typed metadata to entries.
Implement `ProgramCollect::get_metadata&lt;T&gt;()` for runtime retrieval,
backed by a global registry populated by `register_metadata!`.

Extend `pathf` with `MetadataPattern` to resolve metadata types
across modules at build time. Add two examples demonstrating
metadata usage with and without pathf integration.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(comp): add prefix and suffix methods to Suggest</title>
<updated>2026-08-03T10:01:56+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-03T10:01:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=ffd2925b5fb619a91cd66f0e35a518c9077838d4'/>
<id>ffd2925b5fb619a91cd66f0e35a518c9077838d4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(core): resolve subcommands after global parameters</title>
<updated>2026-08-03T09:51:58+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-03T09:51:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=4ef4dfa8a36610cb2bb626794dc1d35d4584ee03'/>
<id>4ef4dfa8a36610cb2bb626794dc1d35d4584ee03</id>
<content type='text'>
Fix command tree matching when global flags precede the subcommand.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix command tree matching when global flags precede the subcommand.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(comps): improve bash completion script word tracking</title>
<updated>2026-08-03T09:22:44+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-03T09:22:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=61c42889b4bd4b91fe8660a3f17d3ad0dedf247b'/>
<id>61c42889b4bd4b91fe8660a3f17d3ad0dedf247b</id>
<content type='text'>
Rework bash completion script to fix word-index tracking when the
cursor is in the middle of a word, compute the current word from
COMP_LINE truncated at COMP_POINT, and use space-separated option
arguments. Also trim colon prefixes from completion items when
COMP_WORDBREAKS includes colons.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Rework bash completion script to fix word-index tracking when the
cursor is in the middle of a word, compute the current word from
COMP_LINE truncated at COMP_POINT, and use space-separated option
arguments. Also trim colon prefixes from completion items when
COMP_WORDBREAKS includes colons.
</pre>
</div>
</content>
</entry>
<entry>
<title>chore: escape colons in zsh completion descriptions</title>
<updated>2026-08-03T08:55:52+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-03T08:55:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=c31aefaf46c33dea092b357d6311fac7819a3cea'/>
<id>c31aefaf46c33dea092b357d6311fac7819a3cea</id>
<content type='text'>
Fix zsh completion script to escape colons in completion items
and descriptions, preventing parsing issues with `_describe`.
Also iterate over the original completions array for simple
completions to correctly extract completion items.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix zsh completion script to escape colons in completion items
and descriptions, preventing parsing issues with `_describe`.
Also iterate over the original completions array for simple
completions to correctly extract completion items.
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(picker): replace global picker functions with PickerHelper</title>
<updated>2026-08-03T06:48:59+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-03T06:46:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/catilgrass/mingling.git/commit/?id=0ddfcbd044aa2a35f716f8d9b18c056dd6ec46af'/>
<id>0ddfcbd044aa2a35f716f8d9b18c056dd6ec46af</id>
<content type='text'>
trait
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
trait
</pre>
</div>
</content>
</entry>
</feed>
