fix(runtime): 运行稳定性 - 修复技能种子、任务续租与回归检查

保留社区技能作者与时间戳修复、Agent 参数约束、资源删除 worker 生命周期、PostgreSQL/Redis 测试门禁及相关回归。

Original-Commit: 0d05ff88bbe6c875d01964041788023a662ff7e8
This commit is contained in:
ddCat
2026-09-21 09:48:43 +08:00
parent 15946e5a86
commit 8b8ea29148
21 changed files with 644 additions and 354 deletions

View File

@@ -0,0 +1,34 @@
"""Require named dependency-backed Go tests to run and pass (not merely avoid SKIP)."""
import json
import sys
REQUIRED = {
("database", "TestPostgresAssetIDMigration"),
("canvas", "TestRepairAssetBytesPostgres"),
("repository", "TestCanvasRevision/postgres"),
("platform", "TestRuntimeCoordinatorRedisLeasePreservesLongestTTL"),
("app", "TestClearAdminRuntimeCacheUsesRedisWhitelist"),
}
def missing_tests(events):
ran, passed, failed = set(), set(), set()
for event in events:
key = (event.get("Package", "").rsplit("/", 1)[-1], event.get("Test"))
action = event.get("Action")
if action == "run":
ran.add(key)
elif action == "pass":
passed.add(key)
elif action in {"skip", "fail"}:
failed.add(key)
return REQUIRED - ((ran & passed) - failed)
if __name__ == "__main__":
with open(sys.argv[1], encoding="utf-8") as stream:
missing = missing_tests(json.loads(line) for line in stream if line.strip())
if missing:
sys.exit("Dependency tests missing, skipped or failed: " + repr(sorted(missing)))
print("All five dependency-backed tests ran and passed.")

View File

@@ -0,0 +1,29 @@
import importlib.util
from pathlib import Path
import unittest
spec = importlib.util.spec_from_file_location(
"check", Path(__file__).with_name("check-dependency-tests.py")
)
check = importlib.util.module_from_spec(spec)
spec.loader.exec_module(check)
class DependencyChecks(unittest.TestCase):
def test_requires_run_and_pass_for_every_exact_name(self):
events = [
{"Package": "example/internal/" + package, "Test": name, "Action": action}
for package, name in check.REQUIRED
for action in ("run", "pass")
]
self.assertFalse(check.missing_tests(events))
self.assertTrue(check.missing_tests([]))
self.assertTrue(check.missing_tests(events[1:]))
self.assertTrue(check.missing_tests(events[:-1]))
for action in ("skip", "fail"):
self.assertTrue(check.missing_tests(events + [dict(events[-1], Action=action)]))
self.assertTrue(check.missing_tests([dict(e, Test=e["Test"] + "Renamed") for e in events]))
if __name__ == "__main__":
unittest.main()