Skip to content

Commit f50a71f

Browse files
committed
deploy: 7e4e4c7
1 parent aada198 commit f50a71f

29 files changed

Lines changed: 110 additions & 58 deletions

File tree

CHANGELOG/index.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4214,6 +4214,7 @@ <h2 id="unreleased">Unreleased<a class="headerlink" href="#unreleased" title="Pe
42144214
<ul>
42154215
<li>MCP tools that return image content blocks (e.g. an MCP image-generation/edit server) now render those images in the chat UI as <code>ChatImageContent</code> and replay them back to the LLM as image inputs on follow-up turns when the model supports vision. Implemented for <code>openai-responses</code> (synthetic user-role <code>input_image</code> after the <code>function_call_output</code>) and <code>anthropic</code> (mixed text + image blocks inside <code>tool_result.content</code>). <code>openai-chat</code> and <code>ollama</code> continue to receive a text placeholder until a parallel pattern is implemented there.</li>
42164216
<li>Bugfix: MCP tools without a <code>description</code> (which the MCP spec marks optional) no longer break Anthropic chat requests with <code>tools.&lt;n&gt;.custom.description: Input should be a valid string</code>. Missing/empty descriptions now fall back to the tool's <code>title</code>, then to a synthesized <code>MCP tool: &lt;name&gt;</code> string at the MCP boundary so all providers receive a non-null string.</li>
4217+
<li>Hook <code>matcher</code> now supports object form keyed by tool selectors with per-tool <code>argsMatchers</code>; legacy string regex matchers remain supported.</li>
42174218
</ul>
42184219
<h2 id="01310">0.131.0<a class="headerlink" href="#01310" title="Permanent link">#</a></h2>
42194220
<ul>
@@ -5919,7 +5920,7 @@ <h2 id="001">0.0.1<a class="headerlink" href="#001" title="Permanent link">#</a>
59195920
<span class="md-icon" title="Last update">
59205921
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg>
59215922
</span>
5922-
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date" title="April 29, 2026 18:18:40 UTC">April 29, 2026</span>
5923+
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date" title="April 30, 2026 16:23:24 UTC">April 30, 2026</span>
59235924
</span>
59245925

59255926

config.json

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -755,9 +755,23 @@
755755
]
756756
},
757757
"matcher": {
758-
"type": "string",
759-
"description": "Regex pattern for matching server__tool-name. Only for *ToolCall hook types.",
760-
"markdownDescription": "Regex pattern for matching server__tool-name. Only for *ToolCall hook types."
758+
"description": "Matches *ToolCall hooks; unmatched hooks are skipped. String: legacy regex against server__tool-name. Object: tool selector map with optional argsMatchers.",
759+
"markdownDescription": "Matches `*ToolCall` hooks; unmatched hooks are skipped. **String**: legacy regex against `server__tool-name`. **Object**: tool selector map with optional `argsMatchers`.",
760+
"oneOf": [
761+
{
762+
"type": "string",
763+
"description": "Regex pattern for matching server__tool-name.",
764+
"markdownDescription": "Regex pattern for matching `server__tool-name`."
765+
},
766+
{
767+
"type": "object",
768+
"description": "Tool selector map. Keys follow toolApproval selectors: full tool name (server__tool-name), native ECA tool name, or server name. Empty rule {} matches without argument filtering.",
769+
"markdownDescription": "Tool selector map. Keys follow `toolApproval` selectors: full tool name (`server__tool-name`), native ECA tool name, or server name. Empty rule `{}` matches without argument filtering.",
770+
"additionalProperties": {
771+
"$ref": "#/definitions/hookMatcherEntry"
772+
}
773+
}
774+
]
761775
},
762776
"visible": {
763777
"type": "boolean",
@@ -1010,6 +1024,25 @@
10101024
},
10111025
"additionalProperties": false
10121026
},
1027+
"hookMatcherEntry": {
1028+
"type": "object",
1029+
"description": "Hook matcher rule. Use argsMatchers to require argument values to match Java regex patterns.",
1030+
"markdownDescription": "Hook matcher rule. Use `argsMatchers` to require argument values to match Java regex patterns.",
1031+
"properties": {
1032+
"argsMatchers": {
1033+
"type": "object",
1034+
"description": "Tool argument name to Java regex alternatives. Every listed argument must exist and match at least one pattern.",
1035+
"markdownDescription": "Tool argument name to Java regex alternatives. Every listed argument must exist and match at least one pattern.",
1036+
"additionalProperties": {
1037+
"type": "array",
1038+
"items": {
1039+
"type": "string"
1040+
}
1041+
}
1042+
}
1043+
},
1044+
"additionalProperties": false
1045+
},
10131046
"mcpServer": {
10141047
"type": "object",
10151048
"description": "MCP server configuration. Use 'url' for remote HTTP servers or 'command' for stdio servers.",

config/agents/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1570,7 +1570,7 @@ <h2 id="subagents">Subagents<a class="headerlink" href="#subagents" title="Perma
15701570
<span class="md-icon" title="Last update">
15711571
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg>
15721572
</span>
1573-
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date" title="April 29, 2026 18:18:15 UTC">April 29, 2026</span>
1573+
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date" title="April 30, 2026 16:22:57 UTC">April 30, 2026</span>
15741574
</span>
15751575

15761576

config/commands/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1327,7 +1327,7 @@ <h1 id="commands">Commands<a class="headerlink" href="#commands" title="Permanen
13271327
<span class="md-icon" title="Last update">
13281328
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg>
13291329
</span>
1330-
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date" title="April 29, 2026 18:18:15 UTC">April 29, 2026</span>
1330+
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date" title="April 30, 2026 16:22:57 UTC">April 30, 2026</span>
13311331
</span>
13321332

13331333

config/completion/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1308,7 +1308,7 @@ <h1 id="completion">Completion<a class="headerlink" href="#completion" title="Pe
13081308
<span class="md-icon" title="Last update">
13091309
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg>
13101310
</span>
1311-
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date" title="April 29, 2026 18:18:15 UTC">April 29, 2026</span>
1311+
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date" title="April 30, 2026 16:22:57 UTC">April 30, 2026</span>
13121312
</span>
13131313

13141314

config/context-management/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1503,7 +1503,7 @@ <h2 id="file-reading">File Reading<a class="headerlink" href="#file-reading" tit
15031503
<span class="md-icon" title="Last update">
15041504
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg>
15051505
</span>
1506-
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date" title="April 29, 2026 18:18:15 UTC">April 29, 2026</span>
1506+
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date" title="April 30, 2026 16:22:57 UTC">April 30, 2026</span>
15071507
</span>
15081508

15091509

config/examples/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1824,7 +1824,7 @@ <h2 id="from-users">From users<a class="headerlink" href="#from-users" title="Pe
18241824
<span class="md-icon" title="Last update">
18251825
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg>
18261826
</span>
1827-
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date" title="April 29, 2026 18:18:15 UTC">April 29, 2026</span>
1827+
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date" title="April 30, 2026 16:22:57 UTC">April 30, 2026</span>
18281828
</span>
18291829

18301830

config/hooks/index.html

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1462,7 +1462,7 @@ <h2 id="hook-types">Hook Types<a class="headerlink" href="#hook-types" title="Pe
14621462
</table>
14631463
<h2 id="hook-options">Hook Options<a class="headerlink" href="#hook-options" title="Permanent link">#</a></h2>
14641464
<ul>
1465-
<li><strong><code>matcher</code></strong>: Regex for <code>server__tool-name</code>, only for <code>*ToolCall</code> hooks.</li>
1465+
<li><strong><code>matcher</code></strong>: For <code>*ToolCall</code> hooks. String = legacy regex for <code>server__tool-name</code>. Object = tool selector map with optional <code>argsMatchers</code>. Selectors follow tool approval: full tool name (<code>eca__write_file</code>), native ECA tool name (<code>write_file</code>), or server name. In <code>argsMatchers</code>, keys are tool argument names and values are arrays of regex alternatives for that argument. All listed arguments must match; multiple regexes for one argument are alternatives.</li>
14661466
<li><strong><code>visible</code></strong>: Show hook execution in chat (default: <code>true</code>).</li>
14671467
<li><strong><code>runOnError</code></strong>: For <code>postToolCall</code>, run even if tool errored (default: <code>false</code>).</li>
14681468
</ul>
@@ -1496,7 +1496,7 @@ <h2 id="input-output">Input / Output<a class="headerlink" href="#input-output" t
14961496
<p>Plain text output (non-JSON) is treated as <code>additionalContext</code>.</p>
14971497
<p>To reject a tool call, either output <code>{"approval": "deny"}</code> or exit with code <code>2</code>.</p>
14981498
<h2 id="examples">Examples<a class="headerlink" href="#examples" title="Permanent link">#</a></h2>
1499-
<div class="tabbed-set tabbed-alternate" data-tabs="1:8"><input checked="checked" id="notify-after-prompt" name="__tabbed_1" type="radio" /><input id="ring-bell-sound-when-pending-tool-call-approval" name="__tabbed_1" type="radio" /><input id="inject-context-on-chat-start" name="__tabbed_1" type="radio" /><input id="rewrite-prompt" name="__tabbed_1" type="radio" /><input id="block-tool-with-json-response" name="__tabbed_1" type="radio" /><input id="modify-tool-arguments" name="__tabbed_1" type="radio" /><input id="notify-when-subagent-finishes" name="__tabbed_1" type="radio" /><input id="use-external-script-file" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="notify-after-prompt">Notify after prompt</label><label for="ring-bell-sound-when-pending-tool-call-approval">Ring bell sound when pending tool call approval</label><label for="inject-context-on-chat-start">Inject context on chat start</label><label for="rewrite-prompt">Rewrite prompt</label><label for="block-tool-with-json-response">Block tool with JSON response</label><label for="modify-tool-arguments">Modify tool arguments</label><label for="notify-when-subagent-finishes">Notify when subagent finishes</label><label for="use-external-script-file">Use external script file</label></div>
1499+
<div class="tabbed-set tabbed-alternate" data-tabs="1:9"><input checked="checked" id="notify-after-prompt" name="__tabbed_1" type="radio" /><input id="ring-bell-sound-when-pending-tool-call-approval" name="__tabbed_1" type="radio" /><input id="inject-context-on-chat-start" name="__tabbed_1" type="radio" /><input id="rewrite-prompt" name="__tabbed_1" type="radio" /><input id="block-tool-with-json-response" name="__tabbed_1" type="radio" /><input id="modify-tool-arguments" name="__tabbed_1" type="radio" /><input id="match-tool-arguments" name="__tabbed_1" type="radio" /><input id="notify-when-subagent-finishes" name="__tabbed_1" type="radio" /><input id="use-external-script-file" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="notify-after-prompt">Notify after prompt</label><label for="ring-bell-sound-when-pending-tool-call-approval">Ring bell sound when pending tool call approval</label><label for="inject-context-on-chat-start">Inject context on chat start</label><label for="rewrite-prompt">Rewrite prompt</label><label for="block-tool-with-json-response">Block tool with JSON response</label><label for="modify-tool-arguments">Modify tool arguments</label><label for="match-tool-arguments">Match tool arguments</label><label for="notify-when-subagent-finishes">Notify when subagent finishes</label><label for="use-external-script-file">Use external script file</label></div>
15001500
<div class="tabbed-content">
15011501
<div class="tabbed-block">
15021502
<div class="highlight"><span class="filename">~/.config/eca/config.json</span><pre><span></span><code><span class="p">{</span>
@@ -1595,6 +1595,24 @@ <h2 id="examples">Examples<a class="headerlink" href="#examples" title="Permanen
15951595
<div class="tabbed-block">
15961596
<div class="highlight"><span class="filename">~/.config/eca/config.json</span><pre><span></span><code><span class="p">{</span>
15971597
<span class="w"> </span><span class="s2">&quot;hooks&quot;</span><span class="o">:</span><span class="w"> </span><span class="p">{</span>
1598+
<span class="w"> </span><span class="s2">&quot;check-allium&quot;</span><span class="o">:</span><span class="w"> </span><span class="p">{</span>
1599+
<span class="w"> </span><span class="s2">&quot;type&quot;</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;postToolCall&quot;</span><span class="p">,</span>
1600+
<span class="w"> </span><span class="s2">&quot;matcher&quot;</span><span class="o">:</span><span class="w"> </span><span class="p">{</span>
1601+
<span class="w"> </span><span class="s2">&quot;eca__write_file&quot;</span><span class="o">:</span><span class="w"> </span><span class="p">{</span>
1602+
<span class="w"> </span><span class="s2">&quot;argsMatchers&quot;</span><span class="o">:</span><span class="w"> </span><span class="p">{</span>
1603+
<span class="w"> </span><span class="s2">&quot;path&quot;</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s2">&quot;.*\\.allium$&quot;</span><span class="p">]</span>
1604+
<span class="w"> </span><span class="p">}</span>
1605+
<span class="w"> </span><span class="p">}</span>
1606+
<span class="w"> </span><span class="p">},</span>
1607+
<span class="w"> </span><span class="s2">&quot;actions&quot;</span><span class="o">:</span><span class="w"> </span><span class="p">[{</span><span class="s2">&quot;type&quot;</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;shell&quot;</span><span class="p">,</span><span class="w"> </span><span class="s2">&quot;file&quot;</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;hooks/check-allium.sh&quot;</span><span class="p">}]</span>
1608+
<span class="w"> </span><span class="p">}</span>
1609+
<span class="w"> </span><span class="p">}</span>
1610+
<span class="p">}</span>
1611+
</code></pre></div>
1612+
</div>
1613+
<div class="tabbed-block">
1614+
<div class="highlight"><span class="filename">~/.config/eca/config.json</span><pre><span></span><code><span class="p">{</span>
1615+
<span class="w"> </span><span class="s2">&quot;hooks&quot;</span><span class="o">:</span><span class="w"> </span><span class="p">{</span>
15981616
<span class="w"> </span><span class="s2">&quot;subagent-done&quot;</span><span class="o">:</span><span class="w"> </span><span class="p">{</span>
15991617
<span class="w"> </span><span class="s2">&quot;type&quot;</span><span class="o">:</span><span class="w"> </span><span class="s2">&quot;subagentPostRequest&quot;</span><span class="p">,</span>
16001618
<span class="w"> </span><span class="s2">&quot;visible&quot;</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span>
@@ -1640,7 +1658,7 @@ <h2 id="examples">Examples<a class="headerlink" href="#examples" title="Permanen
16401658
<span class="md-icon" title="Last update">
16411659
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg>
16421660
</span>
1643-
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date" title="April 29, 2026 18:18:15 UTC">April 29, 2026</span>
1661+
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date" title="April 30, 2026 16:22:57 UTC">April 30, 2026</span>
16441662
</span>
16451663

16461664

config/introduction/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1570,7 +1570,7 @@ <h2 id="default-config">Default config<a class="headerlink" href="#default-confi
15701570
<span class="md-icon" title="Last update">
15711571
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg>
15721572
</span>
1573-
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date" title="April 29, 2026 18:18:15 UTC">April 29, 2026</span>
1573+
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date" title="April 30, 2026 16:22:57 UTC">April 30, 2026</span>
15741574
</span>
15751575

15761576

config/metrics/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1360,7 +1360,7 @@ <h2 id="opentelemetry-integration">Opentelemetry integration<a class="headerlink
13601360
<span class="md-icon" title="Last update">
13611361
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"/></svg>
13621362
</span>
1363-
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date" title="April 29, 2026 18:18:15 UTC">April 29, 2026</span>
1363+
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date" title="April 30, 2026 16:22:57 UTC">April 30, 2026</span>
13641364
</span>
13651365

13661366

0 commit comments

Comments
 (0)