release: nexus btpanel session fix and app-v2

This commit is contained in:
Codex Release Bot
2026-07-08 22:31:31 +08:00
commit 1933f0af6e
2457 changed files with 350105 additions and 0 deletions
@@ -0,0 +1,56 @@
"""Tests for script execution MySQL persist compaction."""
import json
from server.infrastructure.redis.script_execution_store import (
MYSQL_RESULTS_SOFT_LIMIT_BYTES,
PERSIST_STDIO_MAX_CHARS,
compact_results_for_mysql_persist,
pack_mysql_results_blob,
)
def test_compact_truncates_long_stdio():
results = {
"1": {
"status": "success",
"exit_code": 0,
"stdout": "x" * 2000,
"stderr": "y" * 100,
},
}
compact = compact_results_for_mysql_persist(results)
assert len(compact["1"]["stdout"]) <= PERSIST_STDIO_MAX_CHARS
assert compact["1"]["stdout_truncated"] is True
assert compact["1"]["stderr"] == "y" * 100
def test_pack_mysql_fits_large_batch_like_production():
"""366 servers with mysql warning stderr — must fit under old TEXT limit after compact."""
results = {
str(i): {
"status": "success" if i <= 256 else "failed",
"exit_code": 0 if i <= 256 else 1,
"stdout": "",
"stderr": "mysql: [Warning] Using a password on the command line interface can be insecure.\n",
}
for i in range(1, 367)
}
blob = pack_mysql_results_blob(results, [{"action": "execution_finished", "detail": "ok"}])
assert len(blob.encode("utf-8")) < 65535
def test_pack_mysql_under_soft_limit_for_huge_output():
results = {
str(i): {
"status": "failed",
"exit_code": 1,
"stdout": "line\n" * 500,
"stderr": "err\n" * 500,
}
for i in range(1, 401)
}
blob = pack_mysql_results_blob(results, [])
assert len(blob.encode("utf-8")) <= MYSQL_RESULTS_SOFT_LIMIT_BYTES
data = json.loads(blob)
assert data["1"].get("persist_summary_only") or data["1"].get("stdout_truncated")