LOKI LogoLOKIv1.10.0

Changelog v1.10.0Latest

Multi-browser engine support (Chromium, Firefox, WebKit), deterministic seeds (--seed), and expanded pluggable failure detectors.

v1.10.0LatestOct 22, 2026Syncing from GitHub…

Added

  • Multi-Browser Engine Support (--browser firefox|webkit|chromium):
    • loki run and loki record can now drive Firefox and WebKit (Safari) in addition to Chromium.
    • Generated repro_test.py scripts replay on the same engine the incident was captured with.
  • Deterministic Random Seed (--seed):
    • Chaos sessions can be repeated with the same seed to reproduce the exact sequence of random actions.
  • Expanded Failure Detection:
    • Detects requestfailed events, 4xx responses, unhandled promise rejections, and silent console errors.
    • Detectors are now pluggable (src/loki/engine/detectors.py).

Bug Fixes

  • Standalone Binary Could Not Launch Browsers (src/loki/engine/browser.py, #22):
    • The binary built from loki.spec now shares Playwright's per-user browser cache instead of looking for browsers inside the bundle. A user-provided PLAYWRIGHT_BROWSERS_PATH is always respected.
    • Missing engines are installed once through Playwright's bundled driver (previously the auto-install re-invoked loki.exe with invalid arguments) and reused on later runs.
  • Raw JSON in LLM Errors (src/loki/ai/llm.py, #20, PR [#21](https://github.com/Elabsurdo984/loki-agent/pull/21)):
    • Provider failures are now summarized in one line (quota, authentication, connection) instead of dumping the raw payload, with a quota-specific tip in loki fix.
  • Invalid --duration / --fault-rate Values (src/loki/cli.py, #23, PR [#30](https://github.com/Elabsurdo984/loki-agent/pull/30)):
    • --duration must be at least 1 and --fault-rate must be between 0.0 and 1.0. Bad values are rejected at parse time with exit code 2, before any browser starts (also in loki chat's /run).
  • CLI Help Assertions on CI: ANSI escape sequences are stripped in --help tests across runners.

Internal

  • Adopted the standard src/ layout and configured PyPI trusted publishing.
  • Extracted run and heal use-cases into a services layer, moved IncidentReport to loki.models, and added a persona registry.
  • Routed all LLM calls through a single llm module, and slash commands in loki chat through the CLI's own parser.
  • Split the sandbox into browser, devices, and detectors modules, and moved the repro scripts and HTML report into templates.

Contributors

Upgrade

bash
uv tool upgrade loki-chaos-agent
# or directly from LOKI:
loki update