Files
hcie-rust-v3.05/.githooks/semantic_analyzer.py
T
Your Name e509def0b2
mandatory-regression-gate / deterministic-tests (push) Has been cancelled
mandatory-regression-gate / protected-performance-path (push) Has been cancelled
feat: Add digital, dry, ink, and paint brush presets; implement regression testing hooks
- Introduced new crates for digital brushes, dry media brushes, ink brushes, and paint brushes, each containing various presets.
- Updated the menus to include "Paste Special" and "Paste as New Layer" options.
- Enhanced the feature scorecard tests to validate selection texture encoding.
- Added a regression gate workflow for automated testing on push and pull requests.
- Implemented Git hooks for pre-commit checks to ensure code formatting and run tests before commits.
- Created a settings file for local configurations.
2026-07-23 02:28:49 +03:00

50 lines
1.8 KiB
Python
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python3
import sys
import json
import os
def load_manifest():
with open("project_manifest.json", "r") as f:
return json.load(f)
def main():
changed_files = sys.argv[1].split('\n')
manifest = load_manifest()
critical_targets = set()
high_risk_change = False
for changed_file in changed_files:
if not changed_file.strip(): continue
files = manifest.get("files", []) if isinstance(manifest, dict) else manifest
for entry in files:
if entry.get("file_path", "") in changed_file:
print(f"⚠️ [UYARI] Değişiklik yapılan modül: {entry['file_path']}")
print(f" Açıklama: {entry['description']}")
print(f" Patlama Yarıçapı (Blast Radius): {entry['blast_radius']}")
if entry["blast_radius"] == "HIGH":
high_risk_change = True
for dep in entry.get("semantic_dependencies", []):
critical_targets.add((dep["target_file"], dep["impact_description"]))
if critical_targets:
os.makedirs("logs", exist_ok=True)
print("\n🚨 BU DEĞİŞİKLİKTEN ETKİLENEBİLECEK ÜCRA KÖŞELER VE ÖZELLİKLER:")
with open("logs/semantic_impact_report.txt", "w") as log:
log.write("=== SEMANTIK ETKI VE RISK RAPORU ===\n\n")
for target, reason in critical_targets:
report_line = f"- ETKİLENEN MODÜL: {target}\n RİSK NEDENİ: {reason}\n"
print(report_line)
log.write(report_line + "\n")
if high_risk_change:
print("High-risk change detected; the mandatory pre-commit gate already ran the deterministic workspace tests.")
sys.exit(0)
if __name__ == "__main__":
main()