mirror of
https://github.com/christinminor459/OnionClaw.git
synced 2026-07-27 22:15:28 +00:00
fix: v2.1.10 — output-dir saves all due jobs + rich JSON, .env.example POOL_SIZE guidance
This commit is contained in:
@@ -50,6 +50,8 @@ SICRY_SEARCH_CACHE_TTL=1800
|
||||
# TTL for engine health check cache (seconds)
|
||||
SICRY_ENGINE_CACHE_TTL=3600
|
||||
# TorPool circuit count (0 = disabled, use single Tor)
|
||||
# Recommended: 2–4 circuits; each uses ~50 MB RAM and one Tor entry guard.
|
||||
# Example: SICRY_POOL_SIZE=3 ← good starting point for most investigations.
|
||||
SICRY_POOL_SIZE=0
|
||||
# Base SOCKS port for TorPool circuits (9060, 9061, …)
|
||||
SICRY_POOL_BASE_PORT=9060
|
||||
|
||||
@@ -7,6 +7,25 @@ Versioning follows [Semantic Versioning](https://semver.org).
|
||||
|
||||
---
|
||||
|
||||
## [2.1.10] — 2026-03-16
|
||||
|
||||
### Fixed
|
||||
- **[1]** `pipeline.py --watch-check --output-dir`: was only writing a file
|
||||
when `new=True` AND results were non-empty. Now saves **all due jobs** to
|
||||
`<output-dir>/<job_id>.json`, unconditionally. Enriched JSON payload:
|
||||
`"new"`, `"result_count"`, `"mode"`, `"last_run"`, `"last_run_ts"`,
|
||||
`"next_run"`. `Saved N file(s)` summary line added; note printed when
|
||||
`--output-dir` is set but no jobs were due.
|
||||
|
||||
### Improved
|
||||
- **[2]** `.env.example`: `SICRY_POOL_SIZE` now carries a
|
||||
"Recommended: 2–4 circuits" comment with a concrete example.
|
||||
|
||||
### Bundled SICRY™
|
||||
- Version 2.1.10 (`__version__` bump only; no logic changes in sicry.py)
|
||||
|
||||
---
|
||||
|
||||
## [2.1.9] — 2026-03-16
|
||||
|
||||
### Fixed
|
||||
|
||||
+23
-6
@@ -173,9 +173,13 @@ if args.check_update:
|
||||
if args.watch_check:
|
||||
print("[watch-check] Running all due watch jobs…")
|
||||
alerts = sicry.watch_check()
|
||||
_n_saved = 0
|
||||
if not alerts:
|
||||
print(" No due jobs or no new results.")
|
||||
print(" No due jobs.")
|
||||
if args.output_dir:
|
||||
print(f" --output-dir: no files written (no due jobs).")
|
||||
else:
|
||||
import json as _json
|
||||
for a in alerts:
|
||||
new_flag = "[NEW]" if a.get("new") else "[unchanged]"
|
||||
last_run = a.get("last_run")
|
||||
@@ -197,15 +201,28 @@ if args.watch_check:
|
||||
_tc = f"[conf={_conf:.2f}] " if _conf is not None else ""
|
||||
print(f" {_tc}{_tr.get('title', '(no title)')[:70]}")
|
||||
print(f" {_tr.get('url', '')}")
|
||||
# IMPROVE-7: --output-dir saves each triggered alert as <job_id>.json
|
||||
if args.output_dir and a.get("new") and a.get("results"):
|
||||
import json as _json
|
||||
# [1] v2.1.10: --output-dir saves ALL due jobs (new or unchanged) so
|
||||
# automated pipelines always receive a file regardless of delta status.
|
||||
# Payload enriched with 'new', schedule fields, and 'mode'.
|
||||
if args.output_dir:
|
||||
os.makedirs(args.output_dir, exist_ok=True)
|
||||
_wout = os.path.join(args.output_dir, f"{a['job_id']}.json")
|
||||
with open(_wout, "w") as _wf:
|
||||
_json.dump({"job_id": a["job_id"], "query": a["query"],
|
||||
"results": a["results"]}, _wf, indent=2)
|
||||
_json.dump({
|
||||
"job_id": a["job_id"],
|
||||
"query": a.get("query", ""),
|
||||
"new": a.get("new", False),
|
||||
"result_count": a.get("result_count", 0),
|
||||
"mode": a.get("mode", "threat_intel"),
|
||||
"last_run": last_str,
|
||||
"last_run_ts": last_run,
|
||||
"next_run": next_str,
|
||||
"results": a.get("results") or [],
|
||||
}, _wf, indent=2)
|
||||
print(f" saved → {_wout}")
|
||||
_n_saved += 1
|
||||
if args.output_dir:
|
||||
print(f" Saved {_n_saved} file(s) to {args.output_dir!r}")
|
||||
# [2] v2.1.9: also list waiting (non-due) jobs so every job's health is
|
||||
# visible — not just the ones that ran today.
|
||||
_due_ids = {a["job_id"] for a in alerts}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# Copyright (c) 2026 JacobJandon — https://github.com/JacobJandon/Sicry
|
||||
from __future__ import annotations
|
||||
|
||||
__version__ = "2.1.9"
|
||||
__version__ = "2.1.10"
|
||||
|
||||
"""
|
||||
SICRY — Tor/Onion Network Access Layer for AI Agents
|
||||
|
||||
+1
-1
@@ -62,7 +62,7 @@ def _fetch_sicry_tags() -> str:
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description="Sync bundled sicry.py from upstream SICRY™")
|
||||
parser.add_argument("--version", action="version", version="OnionClaw sync_sicry 2.1.9")
|
||||
parser.add_argument("--version", action="version", version="OnionClaw sync_sicry 2.1.10")
|
||||
parser.add_argument("--tag", default="main", help="git ref / tag to fetch (default: main)")
|
||||
parser.add_argument("--dry-run", action="store_true", help="print what would happen without writing")
|
||||
parser.add_argument("--check-bundled", action="store_true",
|
||||
|
||||
Reference in New Issue
Block a user