Repository navigation
Releases
Releases · invarcore/unloop
unloop v0.2.0: ArgShield Path & Argument Hardening, Stdio Session Recorder & Semantic Anti-Oscillation Watchdog
unloop v0.2.0: ArgShield Path & Argument Hardening, Stdio Session Recorder & Semantic Anti-Oscillation Watchdog
Latest
Highlights of unloop v0.2.0 (Rank 5 Sprint)
- ArgShield Tool Argument Hardening:
- Enforces strict path traversal boundaries via \os.path.commonpath.
- Blocks cross-platform DOS/Windows reserved device names (\CON, \PRN, \AUX, \NUL, \COM1-9, \LPT1-9).
- Tokenizes and strips flag injection attempts (--flag=value, -flag).
- Redacts high-entropy API keys and passwords before wire execution.
- UN-01 Transparent Stdio / JSON-RPC Session Recorder:
- Intercepts wire-level agent tool streams into high-performance SQLite in WAL mode.
- Length-prefixed RFC 8785 canonical JSON-RPC hash chaining for audit-grade tamper resistance.
- UN-02 Semantic Anti-Oscillation Watchdog:
- Tracks sliding-window tool executions to detect repetitive thrashing, alternating cycles, and state loops.
- Trips circuit-breakers dynamically before runaway token or budgetary exhaustion.
- Deterministic 6-Slot Compaction:
- OpenClaw/Hermes constraint verification and memory preservation across agent handoffs.
unloop v0.1.0: The Time-Travel Debugger & Anti-Oscillation Watchdog for AI Agents
unloop v0.1.0: The Time-Travel Debugger & Anti-Oscillation Watchdog for AI Agents
unloop is an open-source, interactive time-travel debugger and trajectory flight-recorder for autonomous AI agents.
It breaks multi-turn agents out of infinite critique/retry loops, lets engineers rewind cognitive turns like a video player, inspect state diffs, fork alternate execution branches, and capture reproducible single-file .unloop CI replay cassettes.
⚡ 60-Second Quickstart
pip install unloopWrap Any CLI Agent Without Code Changes
Flight-record agents like Claude Code, Copilot, or Aider with automatic loop protection:
unloop wrap -- claudeDrop-In Python Function Tracing
from unloop import trace, Session
@trace
def my_agent_step(prompt: str, session: Session = None):
# Every cognitive turn, tool call, and state delta is persisted
return run_turn(prompt)Interactive Terminal Debugger (TUI)
Launch the full-screen terminal inspector:
unloop tui session.unloop- Navigate cognitive turns with arrow keys.
- Inspect JSON state deltas and tool argument hashes.
- Rewind, mutate corrupt context, and fork alternative reasoning trajectories.
🛡️ Core Capabilities & Architectural Invariants
-
Deterministic Trajectory Persistence (SQLite WAL):
- Append-only event store with sub-2ms write tax.
- Encrypted at rest via optional AES-256 and PII redaction rules.
-
OscillationWatchdog:
- Detects agent death-spirals (repetitive tool calls, ping-pong state cycles, oscillatory self-critique loops) before token budgets are exhausted.
- Freezes execution or drops into an interactive breakpoint when loop threshold is exceeded.
-
State Deltas & Dynamic Forking:
- Calculates semantic state diffs between arbitrary cognitive turns.
- Supports branching: rewind to turn
$N$ , modify prompt or tool output, and execute an alternate path without starting over.
-
CI Replay Cassettes:
- Package multi-turn failures into portable
.unloopfiles for deterministic regression tests and bug reports.
- Package multi-turn failures into portable
🧪 Quality Gates & Verification Suite
- Unit & Integration Suite: 42/42 tests passing in 4.73s.
- Code Coverage: 94.56% coverage (exceeding strict 90% threshold).
- Multi-Platform Verification: Tested across Ubuntu, macOS, and Windows on Python 3.10–3.14.
- Packaging: Built wheel and sdist distributions attached.
Full Changelog: https://github.com/invarcore/unloop/commits/v0.1.0