Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Releases: coreyt/airlock

v0.3.1

16 Apr 11:37
@github-actions github-actions

Choose a tag to compare

Assets 4
Loading

v0.3.0

15 Apr 02:56
@github-actions github-actions

Choose a tag to compare

Full Changelog: v0.2.1...v0.3.0

Loading

v0.2.1

11 Apr 20:55
@github-actions github-actions

Choose a tag to compare

Full Changelog: v0.2.0...v0.2.1

Loading

v0.2.0

10 Apr 21:19
@github-actions github-actions

Choose a tag to compare

Full Changelog: v0.1.1...v0.2.0

Loading

v0.1.1 — production readiness

10 Apr 03:41
@coreyt coreyt

Choose a tag to compare

Changelog

All notable changes to Airlock are documented here.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

0.1.1 — 2026年04月09日

First published release. Production-readiness pack on top of the 0.1.0
internal baseline.

Security

  • AIRLOCK_HOST now defaults to 127.0.0.1 instead of 0.0.0.0. The
    proxy no longer binds all interfaces out of the box. Deployments that
    need to accept off-host traffic (Docker, Kubernetes, reverse-proxied
    hosts) must set AIRLOCK_HOST=0.0.0.0 explicitly. Documented in the
    README, docs/operations.md, the .env template, and the TUI config
    screen.

Fixed

  • Alert engine leak (airlock.tui.alert_engine) — active alerts
    accumulated forever with no expiry or resolution. The engine now
    auto-resolves alerts whose underlying condition no longer holds on the
    next evaluation cycle, drops alerts older than 24h, and caps the
    active list at 500 entries.
  • Guards stream burst drop (airlock.tui.screens.guards) — a burst
    of log entries sharing the same timestamp was being dropped after the
    first one because the incremental-read filter used <= instead of
    <. Fixed, with a request_id dedupe for the rare re-seek path.
  • Overview p95 off-by-one (airlock.tui.screens.overview) — the
    naive int(n * 0.95) index pinned p95 to the max for any sample size
    up to 20. Replaced with a nearest-rank helper (_p95_index).
  • test_cli_status::test_status_defaults_to_localhost_4000 — failed
    intermittently depending on whether a proxy was actually listening on
    localhost:4000 in the test environment. Now mocks urlopen.
  • test_proxy::test_main_default_host_port — flipped to assert the
    new 127.0.0.1 default and stubbed load_dotenv so a developer's
    local .env can't shadow the in-code default.
  • test_cli_post::test_pass_when_key_and_sdk_available — stopped
    depending on the [search] extra actually being installed in the dev
    environment. Now stubs the SDK module.

Changed

  • Distribution name is airlock-llm on PyPI. The import name is
    unchanged (import airlock), and the CLI command remains airlock.
    The airlock name on PyPI was already taken by an unrelated package.
  • CI hardening (.github/workflows/ci.yml):
    • lint, docker, and security jobs now needs: [test], so they
      only run after tests pass. This stops lint/Docker from reporting
      green while the test suite is red.
    • Linter versions pinned: ruff==0.15.9, mypy==1.20.0,
      pip-audit==2.7.3. A new upstream release can no longer turn CI
      red on an unrelated PR.
  • Ruff per-file ignores (pyproject.toml) for modules with
    legitimate post-gate imports (callbacks/{metrics,s3_logger,sql_logger,tracing}.py,
    fast/monitor.py, guardrails/semantic.py).

Documentation

  • Added PyPI metadata to pyproject.toml: authors, keywords,
    classifiers, and [project.urls] (Homepage, Repository, Issues,
    Changelog).
  • README install instructions now lead with pip install airlock-llm
    and use the real repository URL for source installs.
  • All pip install airlock[extra] snippets across docs and error
    messages updated to pip install airlock-llm[extra].

0.1.0 — unreleased

Internal baseline. Never published to PyPI. Includes the full feature
set:

  • LiteLLM-based unified proxy for OpenAI, Anthropic, and self-hosted
    (vLLM / Ollama / LocalAI) endpoints.
  • Structured JSONL request/response logging with size + age rotation.
  • PII redaction via Microsoft Presidio (CREDIT_CARD, US_SSN,
    EMAIL_ADDRESS, PHONE_NUMBER, US_BANK_NUMBER, IBAN_CODE).
  • Keyword blocking (AIRLOCK_BLOCKED_KEYWORDS).
  • Adaptive guardrail pipeline: semantic classifier, threat detector,
    circuit breaker, priority scoring.
  • MCP tool server proxying with per-tool allow/block lists and argument
    sanitization.
  • Textual TUI with overview, guards, threats, logs, config, test chat,
    and proxy control screens.
  • Optional extras for S3 log archival, SQL logging, Prometheus metrics,
    OpenTelemetry tracing, and the [tui] / [search] integrations.
  • Client-side Claude Code hooks (session, prompt, audit).
  • Offline log analyzer (airlock analyze).
Loading

AltStyle によって変換されたページ (->オリジナル) /