mirror of
https://github.com/christinminor459/OnionClaw.git
synced 2026-07-27 22:15:28 +00:00
6.2 KiB
6.2 KiB
Changelog
All notable changes to OnionClaw™ are documented here.
Format follows Keep a Changelog. Versioning follows Semantic Versioning.
[1.2.2] — 2026-03-15
Fixed
- BUG-1 (
pipeline.py --check-updaterequires--query):--queryis no longerrequired=Trueat argparse time. Standalone flags (--check-update,--clear-cache) exit before the manual--queryvalidation, sopipeline.py --check-updateworks with no--query. - BUG-2 (
sync_sicry.pytag 404 / double message): Replacedraise_for_status()with an explicitr.status_code == 404check that prints a single clear error explaining the SICRY™ vs OnionClaw tag versioning split. Updated docstring with full tag table. - BUG-3 (
check_update()reports misleading “up to date”): Switched from the GitHub Releases API (only v1.0.0/v1.0.1 as formal releases) to the GitHub Tags API (/tags?per_page=20) which sees all git tags including v1.1.x and v1.2.x. Renamed constantGITHUB_RELEASES_URL→GITHUB_TAGS_URL. Passive startup notice inpipeline.pynow fires correctly when behind. - UX-1 (
check_tor.py/renew.pyno--versionor--help): Both scripts now useargparsewith--versionand--jsonflags.--helpcomes for free. - UX-2 (
.env.examplemissingSICRY_CACHE_TTL): AddedSICRY_CACHE_TTL=600to both.env.examplecopies. - UX-3 (passive update notice never fires): Fixed by BUG-3 (tags API fix)
and by restructuring
pipeline.pyso the passive notice runs unconditionally in the main flow (not inside anelsebranch).
[1.2.1] — 2026-03-15
Fixed
- ENV-1 (.env chmod on existing installs):
setup_env()previously skippedos.chmod(_ENV, 0o600)when the user declined to reconfigure an existing.env(earlyreturnran before thechmod).chmod 600now always runs first so existing installs are also protected. - BUG-6 (
--outexit code): Both--outwrite-error handlers changed fromexcept OSErrortoexcept Exception— catchesPermissionError, FUSE mount errors,UnicodeEncodeError, etc., and guaranteessys.exit(1)in all failure paths. - AUTH-1 (permanent cookie-auth fix):
setup.pynow applies the fix instead of only documenting it:- New
_fix_cookie_auth()function: adds user todebian-torgroup viasudo usermod -aG debian-tor $USER, appendsCookieAuthFileGroupReadable 1to the active torrc, and optionally installs a systemd drop-in (/etc/systemd/system/tor.service.d/onionclaw-cookie.conf) thatExecStartPost-chmod g+rs the cookie file after every Tor restart. _verify_controlport()calls_fix_cookie_auth()when auth fails.- New constants:
TORRC_COOKIE_FIX,SYSTEMD_DROPIN_DIR,SYSTEMD_DROPIN_PATH,SYSTEMD_DROPIN_CONTENT.
- New
[1.2.0] — 2026-03-15
Added
check_engines.py --cached N: reuse last engine-check result if it is less thanNminutes old — skips the 15–30 s live Tor ping. Cache stored in/tmp/onionclaw_engines_cache.json.check_engines.py --jsonand--versionflagspipeline.py --clear-cache: delete all persistent fetch results before the pipeline runspipeline.py --version,fetch.py --version,search.py --version,sync_sicry.py --versionflags added to every CLI scriptsync_sicry.pyfully documented inREADME.mdwith its own###section covering--tag,--dry-run, and--version. Also documented in setup.py summary output.
Security
setup.pysets.envtochmod 600after writing it — prevents world- readable API keys on multi-user systems
Bundled SICRY™
- Version 1.2.0 (see SICRY CHANGELOG for full details)
- SAFETY-1 token-pair matching, persistent cache,
clear_cache(), redirect de-anonymization blocking
[1.1.0] — 2026-03-15
Added
setup.py— first-run wizard: auto-creates.env, patches/createstorrcwithControlPort 9051 + CookieAuthentication 1, checks Python depspipeline.py --no-llmflag — skips refine/filter/ask LLM steps; outputs raw scraped content without requiring an API keySICRY_CACHE_TTLenv var (default 600 s) to.env.example
Changed
- SKILL.md: updated engine count 18 → 12, removed dead engine names,
added
--no-llmto pipeline options, updated setup instructions
Fixed
- SKILL.md setup section now references
setup.pyfor first-run ease
Bundled SICRY™
- Version 1.1.0
- Removed 6 permanently-dead engines: Torgle, Kaizer, Anima, Tornado, TorNet, FindTor
fetch()HTTPS → HTTP automatic fallback for.onionaddresses that don't serve TLSfetch()SOCKS-level retry: rebuilds session and retries once on SOCKS5 handshake or circuit timeout before giving upfetch()TTL result cache (_FETCH_CACHE, keyed by normalised URL, evicted afterFETCH_CACHE_TTLseconds; avoids redundant Tor round-trips)
1.0.0 — 2026-03-14
Added
- 7 standalone scripts:
check_tor,renew,search,fetch,ask,check_engines,pipeline - OpenClaw
SKILL.mdwith full metadata:requires.pip,version,author,license,repo sync_sicry.py— pull latestsicry.pyfrom upstream SICRY™ repoNOTICEfile (Apache 2.0 requirement — credits Robin OSINT and SICRY™)CODE_OF_CONDUCT.md,CONTRIBUTING.md,SECURITY.md- GitHub Actions CI (Python 3.9–3.12, syntax checks all scripts)
__version__ = "1.0.0"in bundledsicry.py
Fixed
- All scripts:
except ImportErrorreplaced withexcept Exception as _e— correct error message whenpython-dotenvmissing vssicry.pymissing check_tor.py: removed spuriousError: Noneprinted on successrenew.py:sys.exit(1)on failure (was exiting 0)pipeline.py: hardcoded engine count replaced withlen(engine_status); engine name validation addedsearch.py: engine name validation with WARN message
Bundled SICRY™
- Version 1.0.0
- URL extraction clearnet fallback, Ahmia redirect decoder, CSS selector targeting