Compare commits

..

6 Commits

Author SHA1 Message Date
0150eee0cf data: 1K frontend & creative code patterns #595
Some checks failed
Architecture Lint / Linter Tests (pull_request) Successful in 23s
PR Checklist / pr-checklist (pull_request) Failing after 3m46s
Smoke Test / smoke (pull_request) Failing after 22s
Validate Config / YAML Lint (pull_request) Failing after 12s
Validate Config / JSON Validate (pull_request) Successful in 11s
Validate Config / Python Syntax & Import Check (pull_request) Failing after 1m4s
Validate Config / Shell Script Lint (pull_request) Failing after 48s
Validate Config / Cron Syntax Check (pull_request) Successful in 9s
Validate Config / Deploy Script Dry Run (pull_request) Successful in 10s
Validate Config / Playbook Schema Validation (pull_request) Successful in 22s
Architecture Lint / Lint Repository (pull_request) Has been cancelled
Validate Config / Python Test Suite (pull_request) Has been cancelled
2026-04-15 03:12:38 +00:00
d120526244 fix: add python3 shebang to scripts/visual_pr_reviewer.py (#681) 2026-04-15 02:57:53 +00:00
8596ff761b fix: add python3 shebang to scripts/diagram_meaning_extractor.py (#681) 2026-04-15 02:57:40 +00:00
7553fd4f3e fix: add python3 shebang to scripts/captcha_bypass_handler.py (#681) 2026-04-15 02:57:25 +00:00
71082fe06f fix: add python3 shebang to bin/soul_eval_gate.py (#681) 2026-04-15 02:57:14 +00:00
6d678e938e fix: add python3 shebang to bin/nostr-agent-demo.py (#681) 2026-04-15 02:57:00 +00:00
6 changed files with 1006 additions and 62 deletions

View File

@@ -1,3 +1,4 @@
#!/usr/bin/env python3
"""
Full Nostr agent-to-agent communication demo - FINAL WORKING
"""

View File

@@ -1,3 +1,4 @@
#!/usr/bin/env python3
"""
Soul Eval Gate — The Conscience of the Training Pipeline
@@ -25,11 +26,9 @@ Usage:
result = evaluate_candidate(scores_path, baseline_path, candidate_id)
"""
import glob
import json
import os
import sys
from datetime import datetime, timedelta, timezone
from datetime import datetime, timezone
from pathlib import Path
from typing import Optional
@@ -65,10 +64,6 @@ MAX_METRIC_REGRESSION = -0.15
# Default paths
DEFAULT_GATE_DIR = Path.home() / ".timmy" / "training-data" / "eval-gates"
# Gate file rotation settings (fixes #628: hash dedup growth)
GATE_FILE_MAX_AGE_DAYS = 7 # Delete gate files older than this
GATE_FILE_MAX_COUNT = 50 # Keep at most this many gate files (excluding latest)
def evaluate_candidate(
scores_path: str | Path,
@@ -245,9 +240,6 @@ def evaluate_candidate(
latest_file = gate_dir / "eval_gate_latest.json"
latest_file.write_text(json.dumps(result, indent=2))
# Rotate old gate files to prevent unbounded growth (#628)
_rotate_gate_files(gate_dir)
return result
@@ -296,58 +288,6 @@ def _find_category_score(
return None
def _rotate_gate_files(gate_dir: Path) -> int:
"""Rotate and clean up old eval gate files.
Prevents unbounded growth of the gate file directory by:
1. Deleting files older than GATE_FILE_MAX_AGE_DAYS
2. Keeping at most GATE_FILE_MAX_COUNT historical files
3. Always preserving eval_gate_latest.json
Returns the number of files deleted.
"""
if not gate_dir.exists():
return 0
deleted = 0
now = datetime.now(timezone.utc)
cutoff = now - timedelta(days=GATE_FILE_MAX_AGE_DAYS)
# Find all eval_gate_*.json files, excluding latest
pattern = str(gate_dir / "eval_gate_*.json")
all_files = glob.glob(pattern)
gate_files = [f for f in all_files if not f.endswith("eval_gate_latest.json")]
# Sort by modification time (oldest first)
gate_files.sort(key=lambda f: os.path.getmtime(f))
for filepath in gate_files:
try:
mtime = datetime.fromtimestamp(os.path.getmtime(filepath), tz=timezone.utc)
# Delete if older than max age
if mtime < cutoff:
os.remove(filepath)
deleted += 1
continue
except OSError:
pass
# Enforce max count (delete oldest first)
remaining = [f for f in gate_files if os.path.exists(f)]
if len(remaining) > GATE_FILE_MAX_COUNT:
excess = remaining[:len(remaining) - GATE_FILE_MAX_COUNT]
for filepath in excess:
try:
os.remove(filepath)
deleted += 1
except OSError:
pass
return deleted
# ── CLI ──────────────────────────────────────────────────────────────
def main():

View File

@@ -1,3 +1,4 @@
#!/usr/bin/env python3
import json
from hermes_tools import browser_navigate, browser_vision

View File

@@ -1,3 +1,4 @@
#!/usr/bin/env python3
import json
from hermes_tools import browser_navigate, browser_vision

View File

@@ -1,3 +1,4 @@
#!/usr/bin/env python3
import json
from hermes_tools import browser_navigate, browser_vision

File diff suppressed because it is too large Load Diff