chore(repo): make the release gate reproducible and clean product URLs

PyJHora absence is now partial, tests write research manifests to tmp, the registry allows experimental_variant, and product links point at the Gitea repo. Early logs move to docs/history.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-09-03 16:55:26 +08:00
parent b6a70aa7df
commit 2415e751fe
32 changed files with 320 additions and 115 deletions
@@ -148,8 +148,23 @@ def test_one_command_user_invocation_acceptance_check() -> None:
assert completed.returncode == 0, completed.stderr or completed.stdout
report = json.loads(completed.stdout)
assert report["status"] == "pass"
# 原值=status 必须 pass;新值=pass 或 partial;原因=PyJHora 缺席是外部参照降级,不应把验收检查打成 fail
assert report["status"] in {"pass", "partial"}
assert report["checks"]["user_invocation_tests"] is True
assert report["checks"]["guided_topics_entrypoint"] is True
assert report["checks"]["external_adapter_diagnostics"] is True
assert report["external_adapter_status"] in {"pass", "partial", "complete"}
def test_missing_reference_engine_is_partial_not_fail() -> None:
from scripts.user_invocation_acceptance_check import resolve_acceptance_status
assert resolve_acceptance_status([], {"engines": {"PyJHora/JHora": {"status": "available"}}}) == "pass"
assert (
resolve_acceptance_status(
[],
{"engines": {"PyJHora/JHora": {"missing_dependency": "pyjhora"}}},
)
== "partial"
)
assert resolve_acceptance_status(["user_invocation_pytest_failed"], {"engines": {}}) == "fail"