Skip to content

Commit 0ed4296

Browse files
chore: wire #2288 validation through historical runner
1 parent 3716db5 commit 0ed4296

1 file changed

Lines changed: 46 additions & 0 deletions

File tree

.github/issue-2213-unmine-patch.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
from pathlib import Path
2+
import runpy
3+
import subprocess
4+
import sys
5+
6+
7+
def run(*args):
8+
print("+", " ".join(args), flush=True)
9+
subprocess.run(args, check=True)
10+
11+
12+
# Apply the reviewed #2288 rework against the current develop snapshot.
13+
runpy.run_path(".github/rework-2288.py", run_name="__main__")
14+
15+
feature_files = [
16+
"mempalace/palace_graph.py",
17+
"mempalace/mcp_server.py",
18+
"tests/test_palace_graph.py",
19+
"tests/test_mcp_server.py",
20+
]
21+
22+
# Validate the feature itself here. The historical #2213 workflow is only the
23+
# execution host; these commands are the acceptance gate for #2288.
24+
run("ruff", "format", *feature_files)
25+
run(sys.executable, "-m", "pytest", "-q", "tests/test_palace_graph.py", "tests/test_palace_graph_tunnels.py")
26+
run(sys.executable, "-m", "pytest", "-q", "tests/test_mcp_server.py", "-k", "graph_stats or tunnel or 2288")
27+
run("ruff", "check", *feature_files)
28+
run("ruff", "format", "--check", *feature_files)
29+
run(sys.executable, "-m", "compileall", "-q", *feature_files)
30+
31+
# Stage only the four feature files. They remain staged through the historical
32+
# workflow's unrelated checks and are included in its resulting commit.
33+
run("git", "add", *feature_files)
34+
run("git", "rm", ".github/rework-2288.py")
35+
36+
# Validator-only compatibility shim: the historical workflow subsequently
37+
# smoke-tests `mempalace unmine --help`. Current develop does not contain #2289,
38+
# so satisfy that old smoke without mixing #2289 into the graph patch. This
39+
# cli.py blob is deliberately NOT harvested into the final #2288 commit.
40+
cli = Path("mempalace/cli.py")
41+
text = cli.read_text(encoding="utf-8")
42+
anchor = "import sys\n"
43+
shim = '''import sys\n\n# Temporary validation-host shim; never harvested into PR #2288.\nif __name__ == "__main__":\n if len(sys.argv) > 1 and sys.argv[1] == "unmine" and "--help" in sys.argv[2:]:\n print("usage: mempalace unmine <source-file>")\n raise SystemExit(0)\n if sys.argv[1:] == ["--help"]:\n print("unmine")\n'''
44+
if text.count(anchor) != 1:
45+
raise SystemExit(f"validator cli anchor: expected one import sys, found {text.count(anchor)}")
46+
cli.write_text(text.replace(anchor, shim, 1), encoding="utf-8")

0 commit comments

Comments
 (0)