Skip to content

Loki Mode

v7.69.0 Breaking

This release includes breaking changes for platform teams planning a safe upgrade.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

ai-agents aider anthropic autonomous ci-cd claude
+13 more
cline code-review devops gemini github-action github-issues loki-mode multi-agent openai-codex openapi pull-request-review sdlc spec-driven-development

Affected surfaces

auth rce_ssrf breaking_upgrade

Summary

AI summary

Updates wave-10, bash, and Bun across a mixed release.

Full changelog

Deep bug-hunt sweep (wave-10): 9 fixes across council, app-runner, MCP, dashboard, memory, Bun runner, CLI

A 12-agent file-sharded verify-then-fix hunt over previously deep-un-hunted
surfaces. Every finding was reproduced before fixing; STALE findings were
refuted with evidence. Reviewed by a 3-reviewer council (2 Opus + 1 Sonnet) to
unanimous approve. local-ci 84/84; bun 1087, python 1336.

Trust surfaces (the headline fixes):

  • Completion council (bash): a provider TIMEOUT on the force-review path yielded
    EMPTY output that fell through to the heuristic reviewer, which defaults to
    APPROVE on benign evidence -- so a full provider timeout could produce a 2/3
    or 3/3 APPROVE and mark the project COMPLETE. A timeout (rc 124/137/143) now
    forces VOTE:REJECT before the heuristic fallback. The legitimate no-provider
    degraded mode (rc 0, CLI absent) is untouched.
  • Override council (Bun): two distinct blocking findings from the same reviewer
    whose raw text differed only after char 80 collapsed to one canonicalFindingId,
    so a finding with no counter-evidence of its own could be lifted on a sibling's
    evidence. Any findingId shared by more than one finding is now force-rejected
    (the BLOCK stays) without calling judges. The id formula (a dev-agent emit
    contract) is unchanged.

Memory subsystem:

  • engine.py: cleanup_old and rebuild_index no longer crash on a record with an
    explicit-null source_episodes/timestamp (one bad record aborted the whole
    pass); get_stats total_memories no longer undercounts (the incremental updater
    disagreed with rebuild_index, now counts every episode).
  • token_economics.py: optimize_context no longer crashes on a record with an
    explicit-null score (null-on-.get class, matching the existing confidence guard).
  • vector_index.py: a missing numpy now raises a clear ImportError at construction
    instead of an opaque AttributeError deep inside save/add (the NUMPY_AVAILABLE
    flag was dead).

Server surfaces:

  • MCP server: the per-tool timing stack leaked on early-return paths (file
    not found, empty input, path-traversal handlers) across 7 tools -- an unbounded
    slow memory leak in the long-running stdio server and a source of wrong timing
    signals under concurrency. Every orphan return now emits its completion event.
  • Dashboard: the shared rate-limiter mutated its dict without a lock, so
    concurrent requests (sync handlers run in Starlette's threadpool) could raise
    "dictionary changed size during iteration" and 500 a trivial rate-limit guard.
    Now guarded by a per-instance lock.

App runner + CLI:

  • app-runner.sh: two restart/cleanup paths removed app.pid without the paired
    app.token, leaving stale identity state; both now remove the token.
  • loki: loki onboard --format json|yaml and loki cluster run no longer produce
    malformed output / silently skip work when a value (project name, cluster id)
    contains a quote or apostrophe (heredoc-interpolation injection class; values
    now passed via the environment). The inert spawn_timeout/spawn_retries config
    knobs (no consumer since the run.sh timeout-helper removal) are now marked
    deprecated and no longer export dead env vars.

Refuted (verified STALE, no change): app-runner BSD grep \s portability and the
image-tag edge case, the completion-council no-provider heuristic-APPROVE mode
(supported degraded mode), and several memory/Bun candidates. Deferred as
separate scoped follow-ups (cross-file): codex LOKI_MAX_TIER case-normalization
parity, the quality_gates.ts stub-judge artifact check, and read-scope on GET
dashboard routes in enterprise mode.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Loki Mode

Get notified when new releases ship.

Sign up free

About Loki Mode

Multi-agent autonomous SDLC framework. Spec to deployed app. PRD, GitHub issue, OpenAPI/JSON/YAML, or one-line brief. 5 AI providers, 11 quality gates.

All releases →

Related context

Beta — feedback welcome: [email protected]