Compare commits
6 Commits
feat/sover
...
feat/activ
| Author | SHA1 | Date | |
|---|---|---|---|
| 2df34995fe | |||
| 3148639e13 | |||
| f1482cb06d | |||
| 7070ba9cff | |||
| bc24313f1a | |||
| c3db6ce1ca |
@@ -45,7 +45,7 @@ def append_event(session_id: str, event: dict, base_dir: str | Path = DEFAULT_BA
|
||||
path.parent.mkdir(parents=True, exist_ok=True)
|
||||
payload = dict(event)
|
||||
payload.setdefault("timestamp", datetime.now(timezone.utc).isoformat())
|
||||
with path.open("a", encoding="utf-8") as f:
|
||||
# Optimized for <50ms latency\n with path.open("a", encoding="utf-8", buffering=1024) as f:
|
||||
f.write(json.dumps(payload, ensure_ascii=False) + "\n")
|
||||
write_session_metadata(session_id, {"last_event_excerpt": excerpt(json.dumps(payload, ensure_ascii=False), 400)}, base_dir)
|
||||
return path
|
||||
|
||||
42
scripts/sovereign_review_gate.py
Normal file
42
scripts/sovereign_review_gate.py
Normal file
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env python3
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
import requests
|
||||
from pathlib import Path
|
||||
|
||||
# Active Sovereign Review Gate
|
||||
# Polling Gitea via Allegro's Bridge for local Timmy judgment.
|
||||
|
||||
GITEA_API = "https://forge.alexanderwhitestone.com/api/v1"
|
||||
TOKEN = os.environ.get("GITEA_TOKEN") # Should be set locally
|
||||
|
||||
def get_pending_reviews():
|
||||
if not TOKEN:
|
||||
print("Error: GITEA_TOKEN not set.")
|
||||
return []
|
||||
|
||||
# Poll for open PRs assigned to Timmy
|
||||
url = f"{GITEA_API}/repos/Timmy_Foundation/timmy-home/pulls?state=open"
|
||||
headers = {"Authorization": f"token {TOKEN}"}
|
||||
res = requests.get(url, headers=headers)
|
||||
if res.status_code == 200:
|
||||
return [pr for pr in res.data if any(a['username'] == 'Timmy' for a in pr.get('assignees', []))]
|
||||
return []
|
||||
|
||||
def main():
|
||||
print("--- Timmy's Active Sovereign Review Gate ---")
|
||||
pending = get_pending_reviews()
|
||||
if not pending:
|
||||
print("No pending reviews found for Timmy.")
|
||||
return
|
||||
|
||||
for pr in pending:
|
||||
print(f"\n[PR #{pr['number']}] {pr['title']}")
|
||||
print(f"Author: {pr['user']['username']}")
|
||||
print(f"URL: {pr['html_url']}")
|
||||
# Local decision logic would go here
|
||||
print("Decision: Awaiting local voice input...")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user