fix(agent): ограничить длину значений в подсказке о неполной публикации (M-4)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Andrey Epifancev 2026-10-15 00:36:03 +04:00
parent 6b3109863d
commit af3e9c47c4
2 changed files with 9 additions and 1 deletions

View File

@ -1014,7 +1014,7 @@ class Updater:
return False
version, sha = release.get("version"), release.get("sha256")
if type(version) is not int or not isinstance(sha, str) or not self.SHA_RE.fullmatch(sha):
self._hint("format", "хаб прислал неполную публикацию: version=%r, sha256=%r" % (version, sha)) # design 10
self._hint("format", "хаб прислал неполную публикацию: version=%.80r, sha256=%.80r" % (version, sha)) # design 10
return False
if version <= AGENT_VERSION:
return False

View File

@ -97,6 +97,14 @@ class UpdaterCheckTest(unittest.TestCase):
self.assertEqual(self.hub.release_requests, 0)
self.assertIsNone(self.u.state())
def test_incomplete_release_hint_is_bounded(self):
"""M-4: подсказка не печатает произвольно длинный мусор от хаба целиком."""
logs = self.capture_logs()
self.assertFalse(self.u.check({"version": NEXT, "sha256": "x" * 10000}))
hints = [l for l in logs if l.startswith("хаб прислал неполную публикацию")]
self.assertEqual(len(hints), 1)
self.assertLess(len(hints[0]), 300)
def test_hints_have_separate_timers(self):
logs = self.capture_logs()
self.u.launcher_version = None