Release beta 1.1.0 scan and duplicate fixes

This commit is contained in:
JWeBot Contributors
2026-10-16 17:14:41 +08:00
parent b1d8e4e8e7
commit 35ef82f14f
23 changed files with 217 additions and 37 deletions
+45 -3
View File
@@ -698,6 +698,42 @@ class LedgerAndApplicationTests(unittest.TestCase):
).fetchone()[0]
self.assertEqual(count, 1)
def test_resource_mutation_semantic_duplicate_uses_longer_window(self):
first = self.application.accept(
{
**event("event-1", "@JWeBot /原石祈愿"),
"source": "rapidocr-local",
}
)
old_timestamp = (
MODULE.datetime.now(MODULE.timezone.utc)
- MODULE.timedelta(seconds=30)
).isoformat(timespec="milliseconds")
with self.application.ledger.lock, self.application.ledger.connection:
self.application.ledger.connection.execute(
"""
UPDATE events
SET created_at = ?, updated_at = ?
WHERE event_id = ?
""",
(old_timestamp, old_timestamp, "event-1"),
)
duplicate = self.application.accept(
{
**event("event-2", "@JWeBot /原石祈愿"),
"source": "rapidocr-local",
}
)
self.assertEqual(first["status"], "reply")
self.assertEqual(duplicate["status"], "ignored")
self.assertTrue(duplicate["duplicate"])
with self.application.ledger.lock:
count = self.application.ledger.connection.execute(
"SELECT COUNT(*) FROM events"
).fetchone()[0]
self.assertEqual(count, 1)
def test_failed_fast_ack_never_delivers_the_generated_reply(self):
self.application.deepseek.complete = mock.Mock(return_value="最终回复喵")
self.application.deliver = mock.Mock()
@@ -888,9 +924,9 @@ class LedgerAndApplicationTests(unittest.TestCase):
self.assertEqual(version["route"], "local")
self.assertIn("JWeBot 版本", version["text"])
self.assertIn("kernel", version["text"])
self.assertIn("最新版本:beta 1.0.5.1016", version["text"])
self.assertIn("更新时间:2026-10-16 16:30:44", version["text"])
self.assertIn("更新摘要:新增原石系统", version["text"])
self.assertIn("最新版本:beta 1.1.0.1016", version["text"])
self.assertIn("更新时间:2026-10-16 17:04:25", version["text"])
self.assertIn("更新摘要:修复 OCR 偶发重复识别", version["text"])
self.assertEqual(debug["route"], "local")
self.assertIn("调试埋点", debug["text"])
self.assertEqual(balance["route"], "local")
@@ -1155,6 +1191,12 @@ class LedgerAndApplicationTests(unittest.TestCase):
self.assertEqual(response["route"], "local")
self.assertIn("北京时间今日扫码排行", response["text"])
self.assertIn("bob 1 次", response["text"])
self.assertIn("alice 0 次", response["text"])
self.assertIn("carol 0 次", response["text"])
self.assertIn("下一小时扫码权重:", response["text"])
self.assertIn("alice 1", response["text"])
self.assertIn("bob 1", response["text"])
self.assertIn("carol 1", response["text"])
def test_repeat_ranking_tracks_origin_and_later_repeats_by_display_id(self):
ledger = self.application.ledger