Compare commits
1 Commits
fix/674-ga
...
fix/issue-
| Author | SHA1 | Date | |
|---|---|---|---|
| 0c18534076 |
@@ -1,4 +1,3 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Full Nostr agent-to-agent communication demo - FINAL WORKING
|
||||
"""
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Soul Eval Gate — The Conscience of the Training Pipeline
|
||||
|
||||
@@ -33,11 +32,6 @@ from pathlib import Path
|
||||
from typing import Optional
|
||||
|
||||
|
||||
# ── Gate File Rotation ──────────────────────────────────────────────
|
||||
GATE_FILE_MAX_AGE_DAYS = 7
|
||||
GATE_FILE_MAX_COUNT = 50
|
||||
|
||||
|
||||
# ── SOUL.md Constraints ──────────────────────────────────────────────
|
||||
#
|
||||
# These are the non-negotiable categories from SOUL.md and the
|
||||
@@ -245,9 +239,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
|
||||
_rotate_gate_files(gate_dir)
|
||||
|
||||
return result
|
||||
|
||||
|
||||
@@ -257,48 +248,6 @@ def _load_json(path: str | Path) -> dict:
|
||||
return json.loads(Path(path).read_text())
|
||||
|
||||
|
||||
def _rotate_gate_files(gate_dir: Path) -> None:
|
||||
"""Clean up old gate files to prevent unbounded directory growth.
|
||||
|
||||
- Deletes files older than GATE_FILE_MAX_AGE_DAYS
|
||||
- Caps total count at GATE_FILE_MAX_COUNT (oldest first)
|
||||
- Always preserves eval_gate_latest.json
|
||||
"""
|
||||
if not gate_dir.exists():
|
||||
return
|
||||
|
||||
latest_name = "eval_gate_latest.json"
|
||||
cutoff = datetime.now(timezone.utc).timestamp() - (GATE_FILE_MAX_AGE_DAYS * 86400)
|
||||
|
||||
gate_files = []
|
||||
for f in gate_dir.iterdir():
|
||||
if f.name == latest_name or not f.name.startswith("eval_gate_") or f.suffix != ".json":
|
||||
continue
|
||||
try:
|
||||
mtime = f.stat().st_mtime
|
||||
except OSError:
|
||||
continue
|
||||
gate_files.append((mtime, f))
|
||||
|
||||
# Sort oldest first
|
||||
gate_files.sort(key=lambda x: x[0])
|
||||
|
||||
deleted = 0
|
||||
for mtime, f in gate_files:
|
||||
should_delete = False
|
||||
if mtime < cutoff:
|
||||
should_delete = True
|
||||
elif len(gate_files) - deleted > GATE_FILE_MAX_COUNT:
|
||||
should_delete = True
|
||||
|
||||
if should_delete:
|
||||
try:
|
||||
f.unlink()
|
||||
deleted += 1
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
|
||||
def _find_category_score(
|
||||
sessions: dict[str, dict],
|
||||
category: str,
|
||||
|
||||
79
reports/pr-backlog-action-plan-2026-04-14.md
Normal file
79
reports/pr-backlog-action-plan-2026-04-14.md
Normal file
@@ -0,0 +1,79 @@
|
||||
# PR Backlog Action Plan — 2026-04-14
|
||||
|
||||
**Generated from:** #658 (PR Backlog Analysis)
|
||||
**Total Open PRs:** 27
|
||||
|
||||
## Auto-Merge Candidates (Training Data — 14 PRs)
|
||||
|
||||
These are data-only changes. If tests pass, merge.
|
||||
|
||||
| PR | Issue | Content | Action |
|
||||
|----|-------|---------|--------|
|
||||
| #656 | #596 | 500 visual scene pairs | Auto-merge if green |
|
||||
| #649 | #598 | 500 crisis manipulation pairs | Auto-merge if green |
|
||||
| #648 | #605 | 500 video scene pairs | Auto-merge if green |
|
||||
| #644 | #604 | 500 game asset pairs | Auto-merge if green |
|
||||
| #643 | #603 | 500 emotional weather pairs | Auto-merge if green |
|
||||
| #642 | #610 | 100 folk scene descriptions | Auto-merge if green |
|
||||
| #641 | (none) | 100 pop lyrics-to-scene | Needs issue ref |
|
||||
| #640 | #615 | 100 metal scene descriptions | Auto-merge if green |
|
||||
| #639 | #601 | 500 music mood pairs | Auto-merge if green |
|
||||
| #638 | #597 | Crisis signal pairs | Auto-merge if green |
|
||||
| #637 | #612 | 100 classical scene descriptions | Auto-merge if green |
|
||||
| #636 | (none) | 100 jazz scene descriptions | Needs issue ref |
|
||||
| #635 | #609 | 100 electronic scene descriptions | Auto-merge if green |
|
||||
| #631 | #613 | 100 R&B/Soul scene descriptions | Auto-merge if green |
|
||||
| #630 | #607 | 100 rock scene descriptions | Auto-merge if green |
|
||||
|
||||
## Bug Fixes Requiring Review (6 PRs)
|
||||
|
||||
| PR | References | Concern |
|
||||
|----|------------|---------|
|
||||
| #565 | #561 (refs closed #558) | May reference stale issue |
|
||||
| #562 | #483 | Local-first fallbacks — needs review |
|
||||
| #560 | #492 | Gitea a11y fixes V3-V5 |
|
||||
| #559 | #492 | Gitea a11y fixes R1-R4 |
|
||||
| #557 | #484 | OR operator stripping |
|
||||
| (1 more) | — | Needs identification |
|
||||
|
||||
**Action:** Assign reviewers. Prioritize #565 for staleness check.
|
||||
|
||||
## Features Requiring Review (5 PRs)
|
||||
|
||||
| PR | Issue | Priority |
|
||||
|----|-------|----------|
|
||||
| #653 | #617 | Value-violations adversary suite |
|
||||
| #651 | — | Nightly Pipeline Scheduler |
|
||||
| #633 | — | Token budget tracker |
|
||||
| #626 | #621 | Shared orchestrator |
|
||||
| #625 | #623 | Quality Gate |
|
||||
|
||||
**Action:** Prioritize #625 (Quality Gate) and #626 (Shared Orchestrator) — pipeline improvements.
|
||||
|
||||
## Other (2 PRs)
|
||||
|
||||
| PR | Notes |
|
||||
|----|-------|
|
||||
| #654 | Identity attacks corpus |
|
||||
| #568 | Enhanced meaning kernel extraction |
|
||||
|
||||
## Recommended Actions
|
||||
|
||||
1. **Merge training data PRs** (14) — low risk, data-only
|
||||
2. **Close or update #565** — references closed issue #558
|
||||
3. **Assign reviewers** to bug fixes and features
|
||||
4. **Create issue** for PRs #641 and #636 (missing issue references)
|
||||
5. **Prioritize** #625, #626 for pipeline infrastructure
|
||||
|
||||
## Triage Summary
|
||||
|
||||
```
|
||||
Ready to merge: 14 (training data)
|
||||
Needs review: 11 (bugs + features + other)
|
||||
Needs issue ref: 2 (#641, #636)
|
||||
Stale reference: 1 (#565)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
*Generated by PR triage analysis. Ref: #658.*
|
||||
@@ -1,4 +1,3 @@
|
||||
#!/usr/bin/env python3
|
||||
import json
|
||||
from hermes_tools import browser_navigate, browser_vision
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
#!/usr/bin/env python3
|
||||
import json
|
||||
from hermes_tools import browser_navigate, browser_vision
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
#!/usr/bin/env python3
|
||||
import json
|
||||
from hermes_tools import browser_navigate, browser_vision
|
||||
|
||||
|
||||
Reference in New Issue
Block a user