Feature: 支持响应更多类型的喵 #52

Merged
Passthem merged 3 commits from feature/nya-more into master 2026-02-25 13:57:37 +08:00
Owner

PR Type

Enhancement


Description

  • 新增多字符"喵"消息的响应逻辑

  • 定义符号映射表转换喵语句

  • 重命名变量避免名称遮蔽

  • 原单字"喵"响应保持不变


Diagram Walkthrough

flowchart LR
  A["用户消息"] -- "单字喵" --> B["evt_nya 原逻辑"]
  A -- "多字喵语句" --> C["has_nya 规则校验"]
  C -- "通过" --> D["NYA_SYMBOL_MAPPING 转换"]
  D -- "发送" --> E["evt_nya_v2 响应"]

File Walkthrough

Relevant files
Enhancement
__init__.py
新增多字符喵语句匹配与响应逻辑                                                                                   

konabot/plugins/nya_echo/init.py

  • evt 重命名为 evt_nya 避免变量名遮蔽
  • 新增 NYA_SYMBOL_MAPPING 字典定义喵语句中允许的符号及其映射
  • 新增 has_nya 规则函数,校验消息是否为纯文本且包含"喵"且仅含映射表中的字符
  • 新增 evt_nya_v2 处理器,将匹配的喵语句通过映射表转换后回复
+52/-4   

### **PR Type** Enhancement ___ ### **Description** - 新增多字符"喵"消息的响应逻辑 - 定义符号映射表转换喵语句 - 重命名变量避免名称遮蔽 - 原单字"喵"响应保持不变 ___ ### Diagram Walkthrough ```mermaid flowchart LR A["用户消息"] -- "单字喵" --> B["evt_nya 原逻辑"] A -- "多字喵语句" --> C["has_nya 规则校验"] C -- "通过" --> D["NYA_SYMBOL_MAPPING 转换"] D -- "发送" --> E["evt_nya_v2 响应"] ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table> <tr> <td> <details> <summary><strong>__init__.py</strong><dd><code>新增多字符喵语句匹配与响应逻辑</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary> <hr> konabot/plugins/nya_echo/__init__.py <ul><li>将 <code>evt</code> 重命名为 <code>evt_nya</code> 避免变量名遮蔽<br> <li> 新增 <code>NYA_SYMBOL_MAPPING</code> 字典定义喵语句中允许的符号及其映射<br> <li> 新增 <code>has_nya</code> 规则函数,校验消息是否为纯文本且包含"喵"且仅含映射表中的字符<br> <li> 新增 <code>evt_nya_v2</code> 处理器,将匹配的喵语句通过映射表转换后回复</ul> </details> </td> <td><a href="https://gitea.service.jazzwhom.top/mttu-developers/konabot/src/branch/feature/nya-more/konabot/plugins/nya_echo/__init__.py">+52/-4</a>&nbsp; &nbsp; </td> </tr> </table></td></tr></tr></tbody></table> </details> ___
Passthem added 1 commit 2026-02-25 13:46:48 +08:00
Collaborator

PR Reviewer Guide 🔍

(Review updated until commit 5e01e086f2)

Here are some key observations to aid the review process:

⏱️ Estimated effort to review: 2 🔵🔵
🧪 No relevant tests
🔒 No security concerns identified
 Recommended focus areas for review

规则冲突

evt_nya 使用 match_keyword("喵") 匹配包含"喵"的消息,而 evt_nya_v2has_nya 同样匹配包含"喵"且长度大于1的消息。当用户发送多字喵语句时,两个处理器可能同时触发,导致重复响应。需要确认 match_keyword 是否为精确匹配(仅匹配单个"喵"字),否则应为其中一个处理器设置优先级或互斥条件。

evt_nya = on_message(rule=match_keyword("喵"))

@evt_nya.handle()
async def _():
    await evt_nya.send(await UniMessage().text("喵").export())


NYA_SYMBOL_MAPPING = {
    "喵": "喵",
    "!": "!",
    "?": "!",
    "!": "!",
    "?": "!",
    ",": ",",
    ",": ",",
    ".": ".",
    "。": "。",
    "…": "…",
    "~": "~",
    "~": "~",
    " ": " ",
    "\n": "\n",
}


async def has_nya(msg: UniMsg) -> bool:
    if any((not isinstance(seg, Text) for seg in msg)):
        return False

    text = msg.extract_plain_text()

    if len(text) <= 1:
        return False

    if "喵" not in text:
        return False

    if any(((char not in NYA_SYMBOL_MAPPING) for char in text)):
        return False

    return True


evt_nya_v2 = on_message(rule=has_nya)
符号映射遗漏

NYA_SYMBOL_MAPPING"?""?" 都映射到了 "!" / "!",即问号被转换为感叹号。这看起来可能是有意为之的设计,但也可能是复制粘贴时的笔误,建议确认是否应该将问号映射为问号本身。

"?": "!",
"!": "!",
"?": "!",
函数命名

evt_nyaevt_nya_v2 的 handler 函数都命名为 _,虽然在 nonebot 中这是常见写法,但在同一模块中两个同名 _ 函数会导致后者覆盖前者的引用。如果后续需要直接引用这些函数(如测试),可能会产生问题。

async def _():
    await evt_nya.send(await UniMessage().text("喵").export())


NYA_SYMBOL_MAPPING = {
    "喵": "喵",
    "!": "!",
    "?": "!",
    "!": "!",
    "?": "!",
    ",": ",",
    ",": ",",
    ".": ".",
    "。": "。",
    "…": "…",
    "~": "~",
    "~": "~",
    " ": " ",
    "\n": "\n",
}


async def has_nya(msg: UniMsg) -> bool:
    if any((not isinstance(seg, Text) for seg in msg)):
        return False

    text = msg.extract_plain_text()

    if len(text) <= 1:
        return False

    if "喵" not in text:
        return False

    if any(((char not in NYA_SYMBOL_MAPPING) for char in text)):
        return False

    return True


evt_nya_v2 = on_message(rule=has_nya)

@evt_nya_v2.handle()
async def _(msg: UniMsg, evt: Event):
## PR Reviewer Guide 🔍 #### (Review updated until commit https://gitea.service.jazzwhom.top/mttu-developers/konabot/commit/5e01e086f278e8d5f78d19942073edba6205d4aa) Here are some key observations to aid the review process: <table> <tr><td>⏱️&nbsp;<strong>Estimated effort to review</strong>: 2 🔵🔵⚪⚪⚪</td></tr> <tr><td>🧪&nbsp;<strong>No relevant tests</strong></td></tr> <tr><td>🔒&nbsp;<strong>No security concerns identified</strong></td></tr> <tr><td>⚡&nbsp;<strong>Recommended focus areas for review</strong><br><br> <details><summary><a href='https://gitea.service.jazzwhom.top/mttu-developers/konabot/src/branch/feature/nya-more/konabot/plugins/nya_echo/__init__.py#L7-L50'><strong>规则冲突</strong></a> `evt_nya` 使用 `match_keyword("喵")` 匹配包含"喵"的消息,而 `evt_nya_v2` 的 `has_nya` 同样匹配包含"喵"且长度大于1的消息。当用户发送多字喵语句时,两个处理器可能同时触发,导致重复响应。需要确认 `match_keyword` 是否为精确匹配(仅匹配单个"喵"字),否则应为其中一个处理器设置优先级或互斥条件。 </summary> ```python evt_nya = on_message(rule=match_keyword("喵")) @evt_nya.handle() async def _(): await evt_nya.send(await UniMessage().text("喵").export()) NYA_SYMBOL_MAPPING = { "喵": "喵", "!": "!", "?": "!", "!": "!", "?": "!", ",": ",", ",": ",", ".": ".", "。": "。", "…": "…", "~": "~", "~": "~", " ": " ", "\n": "\n", } async def has_nya(msg: UniMsg) -> bool: if any((not isinstance(seg, Text) for seg in msg)): return False text = msg.extract_plain_text() if len(text) <= 1: return False if "喵" not in text: return False if any(((char not in NYA_SYMBOL_MAPPING) for char in text)): return False return True evt_nya_v2 = on_message(rule=has_nya) ``` </details> <details><summary><a href='https://gitea.service.jazzwhom.top/mttu-developers/konabot/src/branch/feature/nya-more/konabot/plugins/nya_echo/__init__.py#L17-L19'><strong>符号映射遗漏</strong></a> `NYA_SYMBOL_MAPPING` 中 `"?"` 和 `"?"` 都映射到了 `"!"` / `"!"`,即问号被转换为感叹号。这看起来可能是有意为之的设计,但也可能是复制粘贴时的笔误,建议确认是否应该将问号映射为问号本身。 </summary> ```python "?": "!", "!": "!", "?": "!", ``` </details> <details><summary><a href='https://gitea.service.jazzwhom.top/mttu-developers/konabot/src/branch/feature/nya-more/konabot/plugins/nya_echo/__init__.py#L10-L53'><strong>函数命名</strong></a> `evt_nya` 和 `evt_nya_v2` 的 handler 函数都命名为 `_`,虽然在 nonebot 中这是常见写法,但在同一模块中两个同名 `_` 函数会导致后者覆盖前者的引用。如果后续需要直接引用这些函数(如测试),可能会产生问题。 </summary> ```python async def _(): await evt_nya.send(await UniMessage().text("喵").export()) NYA_SYMBOL_MAPPING = { "喵": "喵", "!": "!", "?": "!", "!": "!", "?": "!", ",": ",", ",": ",", ".": ".", "。": "。", "…": "…", "~": "~", "~": "~", " ": " ", "\n": "\n", } async def has_nya(msg: UniMsg) -> bool: if any((not isinstance(seg, Text) for seg in msg)): return False text = msg.extract_plain_text() if len(text) <= 1: return False if "喵" not in text: return False if any(((char not in NYA_SYMBOL_MAPPING) for char in text)): return False return True evt_nya_v2 = on_message(rule=has_nya) @evt_nya_v2.handle() async def _(msg: UniMsg, evt: Event): ``` </details> </td></tr> </table>
Collaborator

PR Code Suggestions

Latest suggestions up to 5e01e08

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
Possible issue
两个处理器可能重复响应同一消息

evt_nyaevt_nya_v2
都会匹配包含"喵"且仅由映射字符组成的消息(长度>1时)。当用户发送如"喵喵"这样的消息时,两个处理器都会触发并各自发送一条回复,导致重复响应。应降低
evt_nya_v2 的优先级,或在 has_nya 中排除纯"喵"单字的情况已经不够——需要排除 evt_nya 也会匹配的场景,例如通过设置优先级并使用
event.stop_propagation()

konabot/plugins/nya_echo/init.py [50-52]

-evt_nya_v2 = on_message(rule=has_nya)
+evt_nya_v2 = on_message(rule=has_nya, priority=2)
 
 @evt_nya_v2.handle()
Suggestion importance[1-10]: 6

__

Why: The concern is valid: evt_nya matches any message containing "喵" via match_keyword("喵"), while has_nya also requires "喵" to be present. A message like "喵喵" would trigger both handlers, causing duplicate replies. However, the suggested fix of only setting priority=2 on evt_nya_v2 is incomplete — without event.stop_propagation() on evt_nya, both handlers would still fire. The suggestion correctly identifies the issue but the improved_code alone doesn't fully resolve it.

Low

Previous suggestions

Suggestions up to commit 5e01e08
CategorySuggestion                                                                                                                                    Impact
Possible issue
变量名重复导致处理器被覆盖

变量 evt_nya_v2 在文件上方已经被赋值为 on_message(rule=match_keyword("喵")),这里再次赋值会覆盖前面的
matcher,导致第一个 @evt_nya_v2.handle() 注册的处理函数绑定在一个被丢弃的对象上,永远不会被触发。应该使用不同的变量名来注册第二个
matcher。

konabot/plugins/nya_echo/init.py [50]

-evt_nya_v2 = on_message(rule=has_nya)
+evt_nya_v3 = on_message(rule=has_nya)
Suggestion importance[1-10]: 9

__

Why: This is a genuine bug. evt_nya_v2 is assigned at line 7 with on_message(rule=match_keyword("喵")) and its handler is registered at line 9. Then at line 50, evt_nya_v2 is reassigned to a new on_message(rule=has_nya), which means the first matcher object (and its registered handler from line 9-11) becomes orphaned and will never trigger. Using a distinct variable name like evt_nya_v3 for the second matcher is the correct fix.

High
Suggestions up to commit 5e01e08
CategorySuggestion                                                                                                                                    Impact
Possible issue
缺少对核心关键字的存在性校验

text 为空字符串时(即消息中只有非 Text 段被过滤后无内容),len(text) <= 1 会返回
False,但空字符串实际上也应该被排除。此外,仅包含标点符号(如 "!!!" )而不含 "喵" 的消息也会匹配。建议增加对 "喵"
字符存在性的检查,确保消息确实包含"喵"。

konabot/plugins/nya_echo/init.py [40-41]

 if len(text) <= 1:
     return False
 
+if "喵" not in text:
+    return False
+
Suggestion importance[1-10]: 7

__

Why: This is a valid logic concern. The has_nya function checks that all characters are in NYA_SYMBOL_MAPPING, but a message like "!!!" (only punctuation, no "喵") would pass the check and trigger the handler unnecessarily. Adding a "喵" not in text check ensures the plugin only responds to messages that actually contain the core keyword, which is a meaningful correctness improvement.

Medium
参数名遮蔽外部变量导致潜在错误

参数 evt 与外部作用域中的 evton_message 返回的 Matcher 实例)同名,会遮蔽(shadow)外层变量。更严重的是,在函数体内调用
UniMessage.text(...).send(evt) 时,传入的 evt 实际上是 Event 对象而非
Matcher,这可能导致运行时行为异常或报错。建议将参数重命名以避免遮蔽。

konabot/plugins/nya_echo/init.py [49-53]

-async def _(msg: UniMsg, evt: Event):
+async def _(msg: UniMsg, event: Event):
+    text = msg.extract_plain_text()
+    await UniMessage.text(''.join(
+        (NYA_SYMBOL_MAPPING.get(c, '') for c in text)
+    )).send(event)
Suggestion importance[1-10]: 6

__

Why: The parameter evt does shadow the outer evt variable (the Matcher instance). However, in NoneBot2's framework, UniMessage.text(...).send() typically accepts an Event object, so passing the Event parameter is likely correct behavior. The shadowing is still a code quality concern that could cause confusion, but it may not cause a runtime error as the suggestion claims. The rename to event is a reasonable improvement for clarity.

Low
## PR Code Suggestions ✨ <!-- 5e01e08 --> Latest suggestions up to 5e01e08 Explore these optional code suggestions: <table><thead><tr><td><strong>Category</strong></td><td align=left><strong>Suggestion&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </strong></td><td align=center><strong>Impact</strong></td></tr><tbody><tr><td rowspan=1>Possible issue</td> <td> <details><summary>两个处理器可能重复响应同一消息</summary> ___ **<code>evt_nya</code> 和 <code>evt_nya_v2</code> <br>都会匹配包含"喵"且仅由映射字符组成的消息(长度>1时)。当用户发送如"喵喵"这样的消息时,两个处理器都会触发并各自发送一条回复,导致重复响应。应降低 <br><code>evt_nya_v2</code> 的优先级,或在 <code>has_nya</code> 中排除纯"喵"单字的情况已经不够——需要排除 <code>evt_nya</code> 也会匹配的场景,例如通过设置优先级并使用 <br><code>event.stop_propagation()</code>。** [konabot/plugins/nya_echo/__init__.py [50-52]](https://gitea.service.jazzwhom.top/mttu-developers/konabot/src/branch/feature/nya-more/konabot/plugins/nya_echo/__init__.py#L50-L52) ```diff -evt_nya_v2 = on_message(rule=has_nya) +evt_nya_v2 = on_message(rule=has_nya, priority=2) @evt_nya_v2.handle() ``` <details><summary>Suggestion importance[1-10]: 6</summary> __ Why: The concern is valid: `evt_nya` matches any message containing "喵" via `match_keyword("喵")`, while `has_nya` also requires "喵" to be present. A message like "喵喵" would trigger both handlers, causing duplicate replies. However, the suggested fix of only setting `priority=2` on `evt_nya_v2` is incomplete — without `event.stop_propagation()` on `evt_nya`, both handlers would still fire. The suggestion correctly identifies the issue but the `improved_code` alone doesn't fully resolve it. </details></details></td><td align=center>Low </td></tr></tr></tbody></table> ___ #### Previous suggestions <details><summary>Suggestions up to commit 5e01e08</summary> <br><table><thead><tr><td><strong>Category</strong></td><td align=left><strong>Suggestion&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </strong></td><td align=center><strong>Impact</strong></td></tr><tbody><tr><td rowspan=1>Possible issue</td> <td> <details><summary>变量名重复导致处理器被覆盖</summary> ___ **变量 <code>evt_nya_v2</code> 在文件上方已经被赋值为 <code>on_message(rule=match_keyword("喵"))</code>,这里再次赋值会覆盖前面的 <br>matcher,导致第一个 <code>@evt_nya_v2.handle()</code> 注册的处理函数绑定在一个被丢弃的对象上,永远不会被触发。应该使用不同的变量名来注册第二个 <br>matcher。** [konabot/plugins/nya_echo/__init__.py [50]](https://gitea.service.jazzwhom.top/mttu-developers/konabot/src/branch/feature/nya-more/konabot/plugins/nya_echo/__init__.py#L50-L50) ```diff -evt_nya_v2 = on_message(rule=has_nya) +evt_nya_v3 = on_message(rule=has_nya) ``` <details><summary>Suggestion importance[1-10]: 9</summary> __ Why: This is a genuine bug. `evt_nya_v2` is assigned at line 7 with `on_message(rule=match_keyword("喵"))` and its handler is registered at line 9. Then at line 50, `evt_nya_v2` is reassigned to a new `on_message(rule=has_nya)`, which means the first matcher object (and its registered handler from line 9-11) becomes orphaned and will never trigger. Using a distinct variable name like `evt_nya_v3` for the second matcher is the correct fix. </details></details></td><td align=center>High </td></tr></tr></tbody></table> </details> <details><summary>Suggestions up to commit 5e01e08</summary> <br><table><thead><tr><td><strong>Category</strong></td><td align=left><strong>Suggestion&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </strong></td><td align=center><strong>Impact</strong></td></tr><tbody><tr><td rowspan=2>Possible issue</td> <td> <details><summary>缺少对核心关键字的存在性校验</summary> ___ **当 <code>text</code> 为空字符串时(即消息中只有非 <code>Text</code> 段被过滤后无内容),<code>len(text) <= 1</code> 会返回 <br><code>False</code>,但空字符串实际上也应该被排除。此外,仅包含标点符号(如 <code>"!!!"</code> )而不含 <code>"喵"</code> 的消息也会匹配。建议增加对 <code>"喵"</code> <br>字符存在性的检查,确保消息确实包含"喵"。** [konabot/plugins/nya_echo/__init__.py [40-41]](https://gitea.service.jazzwhom.top/mttu-developers/konabot/src/branch/feature/nya-more/konabot/plugins/nya_echo/__init__.py#L40-L41) ```diff if len(text) <= 1: return False +if "喵" not in text: + return False + ``` <details><summary>Suggestion importance[1-10]: 7</summary> __ Why: This is a valid logic concern. The `has_nya` function checks that all characters are in `NYA_SYMBOL_MAPPING`, but a message like `"!!!"` (only punctuation, no `"喵"`) would pass the check and trigger the handler unnecessarily. Adding a `"喵" not in text` check ensures the plugin only responds to messages that actually contain the core keyword, which is a meaningful correctness improvement. </details></details></td><td align=center>Medium </td></tr><tr><td> <details><summary>参数名遮蔽外部变量导致潜在错误</summary> ___ **参数 <code>evt</code> 与外部作用域中的 <code>evt</code>(<code>on_message</code> 返回的 <code>Matcher</code> 实例)同名,会遮蔽(shadow)外层变量。更严重的是,在函数体内调用 <br><code>UniMessage.text(...).send(evt)</code> 时,传入的 <code>evt</code> 实际上是 <code>Event</code> 对象而非 <br><code>Matcher</code>,这可能导致运行时行为异常或报错。建议将参数重命名以避免遮蔽。** [konabot/plugins/nya_echo/__init__.py [49-53]](https://gitea.service.jazzwhom.top/mttu-developers/konabot/src/branch/feature/nya-more/konabot/plugins/nya_echo/__init__.py#L49-L53) ```diff -async def _(msg: UniMsg, evt: Event): +async def _(msg: UniMsg, event: Event): + text = msg.extract_plain_text() + await UniMessage.text(''.join( + (NYA_SYMBOL_MAPPING.get(c, '') for c in text) + )).send(event) ``` <details><summary>Suggestion importance[1-10]: 6</summary> __ Why: The parameter `evt` does shadow the outer `evt` variable (the `Matcher` instance). However, in NoneBot2's framework, `UniMessage.text(...).send()` typically accepts an `Event` object, so passing the `Event` parameter is likely correct behavior. The shadowing is still a code quality concern that could cause confusion, but it may not cause a runtime error as the suggestion claims. The rename to `event` is a reasonable improvement for clarity. </details></details></td><td align=center>Low </td></tr></tr></tbody></table> </details>
Passthem added 1 commit 2026-02-25 13:49:20 +08:00
Collaborator

Persistent review updated to latest commit 5e01e086f2

**[Persistent review](https://gitea.service.jazzwhom.top/mttu-developers/konabot/pulls/52#issuecomment-270)** updated to latest commit https://gitea.service.jazzwhom.top/mttu-developers/konabot/commit/5e01e086f278e8d5f78d19942073edba6205d4aa
Passthem added 1 commit 2026-02-25 13:52:27 +08:00
Collaborator

Persistent review updated to latest commit 5e01e086f2

**[Persistent review](https://gitea.service.jazzwhom.top/mttu-developers/konabot/pulls/52#issuecomment-270)** updated to latest commit https://gitea.service.jazzwhom.top/mttu-developers/konabot/commit/5e01e086f278e8d5f78d19942073edba6205d4aa
Passthem merged commit 00c0202720 into master 2026-02-25 13:57:37 +08:00
Passthem deleted branch feature/nya-more 2026-02-25 13:57:37 +08:00
Sign in to join this conversation.
No description provided.