Files
rea/experiments/analysis-efficiency/joplin-window-options-check.py
YsopwnableandKaoru0822 d72d856f58 feat(electron): resolve stable local constant window options
Resolve stable local constant BrowserWindow options with retained provenance and shared early-exit mutation queries. Preserve source ordering and unknown results for relevant mutations or escapes.

Includes real Joplin correctness/cost receipts and regression coverage.

Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>
2026-10-16 14:52:33 +08:00

107 lines
5.1 KiB
Python

#!/usr/bin/env python3
"""Check pinned Joplin static evidence from retained-facts.mjs reports.
The oracle comes from the unchanged published ElectronAppWrapper.js, not from
the production resolver. It establishes static reconstruction, not execution.
"""
import argparse
import json
def check(baseline, candidate):
assert baseline["query"] == candidate["query"]
archive_sha = "767df409b18effe60421fbefcca873de237c7e813eac744ecdeebbc5e825a33a"
source_sha = "dcd2260e46dd1b4922449090e268773b052d58ba24ff977b08b978bee6cc9da1"
for report in (baseline, candidate):
assert report["artifact_sha256"] == archive_sha
assert report["source_paths"] == ["ElectronAppWrapper.js", "package.json"]
assert report["mode"] == "view"
assert report["cli_parity"]["exact_evidence_parity"] is True
assert report["answer"]["total"] == 1
assert len(report["answer"]["rows"]) == 1
before = baseline["answer"]["rows"][0]
after = candidate["answer"]["rows"][0]
assert before["node_id"] == after["node_id"]
assert before["identity"] == after["identity"] == {
"strategy": "artifact-local-key",
"stability": "artifact-version",
"artifact_sha256": source_sha,
"namespace": "electron-browser-window",
"key": "268:20-268:63",
}
assert before["properties"] == {
"options_status": "dynamic",
"web_preferences_status": "dynamic",
"web_preferences": [],
"preload_path": None,
}
properties = after["properties"]
assert properties["options_status"] == "object-literal"
assert properties["web_preferences_status"] == "object-literal"
assert properties["preload_path"] is None
assert properties["resolution_sources"] == [{
"source": "ElectronAppWrapper.js",
"start": {"line": 238, "column": 30},
"end": {"line": 263, "column": 9},
}]
preferences = {item["name"]: item["value"] for item in properties["web_preferences"]}
assert len(preferences) == len(properties["web_preferences"]) == 5
expected = {
"nodeIntegration": True,
"contextIsolation": False,
"spellcheck": True,
"enableRemoteModule": True,
}
for name, value in expected.items():
assert preferences[name] == {"status": "literal", "value": value, "expression": None}
assert preferences[name]["value"] is value
assert preferences["session"] == {
"status": "dynamic", "value": None, "expression": "this.joplinSession_",
}
assert before["evidence"]["state"] == "observed"
assert after["evidence"]["state"] == "inferred"
assert after["evidence"]["authority"] == "static-relationship-inference"
assert before["evidence"]["location"] == after["evidence"]["location"]
if "analysis_fingerprints" in baseline or "analysis_fingerprints" in candidate:
before_analysis = baseline["analysis_fingerprints"]
after_analysis = candidate["analysis_fingerprints"]
assert before_analysis["summary"]["explicit_web_preferences"] == 0
assert after_analysis["summary"]["explicit_web_preferences"] == 5
assert before_analysis["summary"] == {
**after_analysis["summary"], "explicit_web_preferences": 0,
}
return {"static_oracle": "passed", "stable_window_identity": True,
"explicit_preferences_before": 0, "explicit_preferences_after": 5,
"runtime_configuration_verified": False}
if __name__ == "__main__":
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("record", help="Combined baseline/candidate verification JSON")
arguments = parser.parse_args()
with open(arguments.record, encoding="utf-8") as record_file:
record = json.load(record_file)
assert record["trials"]
receipts = [check(trial["baseline"]["profile"], trial["candidate"]["profile"])
for trial in record["trials"]]
assert any("analysis_fingerprints" in trial["baseline"]["profile"]
and "analysis_fingerprints" in trial["candidate"]["profile"]
for trial in record["trials"])
proof = record["semantic_content_comparison"]
assert proof["excluded_top_level_fields"] == ["application_graph_id", "graph_id"]
assert proof["content_deep_equal"] is True
assert proof["baseline_content_sha256"] == proof["candidate_content_sha256"]
fingerprinted = record["trials"][-1]
for label in ("baseline", "candidate"):
assert proof[label + "_raw_sha256"] == fingerprinted[label]["profile"]["analysis_fingerprints"]["semantic_graph_sha256"]
for stage in ("ordering_review_followup", "effect_query_review_followup"):
followup = record.get(stage)
if followup is not None:
current = followup["profile"]
assert current["answer"] == record["trials"][0]["candidate"]["profile"]["answer"]
assert current["analysis_fingerprints"] == fingerprinted["candidate"]["profile"]["analysis_fingerprints"]
assert current["cli_parity"]["exact_evidence_parity"] is True
print(json.dumps({"trials": len(receipts), "semantic_content_unchanged": True,
"checks": receipts}, sort_keys=True))