Skip to content

Releases: Swival/swival

1.0.14

03 May 13:48
1.0.14

Choose a tag to compare

1.0.14

  • /audit now accepts an --all flag that skips Phase 2 triage and sends every file in scope straight to deep review. Useful when you have already narrowed scope to a subtree you want exhaustively reviewed and do not want triage second-guessing which files are worth a closer look. The flag is recorded with the run, so a bare /audit --resume picks up an --all run without needing the flag again.
  • Server-side context overflow is now recoverable. When the local tiktoken estimate under-counts against the model's real tokenizer, the agent used to give up after the no-tools clamp also got rejected. It now progressively truncates the prompt at tighter targets (50%, 25%, 10% of the context window) and retries each one before declaring the turn lost.

1.0.13

02 May 13:40
1.0.13

Choose a tag to compare

1.0.13

  • A goal-driven mode has been added: a structured spin on the Ralph-style "keep prompting until it's done" loop. Set an objective with /goal <objective> in the REPL and the agent doesn't get to declare victory and walk away after one turn. The original objective is fed back to the model after every answer, and the loop only ends when the agent itself signals the goal is complete after a real evidence-based audit, declares a blocker, or hits the optional token budget. This makes it practical to point Swival at ambitious, long-running tasks like refactors, audits, or end-to-end fixes, and let it grind for hours without giving up halfway. /goal pause, /goal resume, /goal replace, and /goal clear give you full control.
  • First-run setup now writes a [profiles.default] block to the generated config, so the freshly created file lines up with the profile structure used everywhere else.
  • The history file is automatically trimmed when it grows past its maximum capacity.

1.0.12

30 Apr 18:08
1.0.12

Choose a tag to compare

1.0.12

  • The system prompt has been optimized for efficiency, and small models may enjoy a significant reduction in token usage.

1.0.11

29 Apr 18:42
1.0.11

Choose a tag to compare

1.0.11

  • /audit got more constraints to focus more on security issues.
  • /audit compatibility with models such as Xiaomi MiMo was also improved.

1.0.10

28 Apr 13:21
1.0.10

Choose a tag to compare

1.0.10

  • /audit now accepts multiple focus paths in a single invocation (/audit src/auth/ src/api/).
  • Other minor improvements to /audit to reduce false positives while exploring more bug classes.

1.0.9

26 Apr 11:11
1.0.9

Choose a tag to compare

1.0.9

  • --logout has been added to delete locally cached ChatGPT OAuth tokens and exit, so users can sign out without hand-deleting files under ~/.config/litellm/chatgpt/.
  • /audit no longer asks the LLM for JSON. Intermediate phase responses now use a simple structured-text format (@@ name @@ blocks with key: value lines), which models emit far more reliably across long prompts than nested JSON.
  • /audit phase 1 (file profiling) is now dramatically faster on large repositories. File contents are read through a single git cat-file --batch process instead of one subprocess per file, cutting the per-file overhead by an order of magnitude on multi-thousand-file scans.
  • A --debug option has been added to /audit. When enabled, a real-time JSONL log is written to .swival/audit/debug.jsonl capturing every LLM request and response, parse outcomes, repair attempts, and per-phase metrics, which makes it tractable to diagnose model misbehavior on large audits.
  • Another /audit improvement: it is now considerably more verbose during phase 3, surfacing per-file progress instead of presenting one long silent batch.
  • Phase 5 audit reports no longer occasionally contain raw tool-call JSON ({"cmd": "ls"}) or conversational preamble like "I'll inspect the patch...".
  • /audit prompt cache hit rates have been improved: the bug-class taxonomy and finding metadata interpolated into phase 3 system prompts have been moved into user messages so the system prefix stays static across calls, and per-phase cache statistics are now logged when --debug is on.

1.0.8

25 Apr 09:10
1.0.8

Choose a tag to compare

1.0.8

  • GPT-5.5 is now recognized by the ChatGPT provider. Older LiteLLM releases that don't yet know about the model are patched at runtime so context-length queries and Responses API routing work out of the box.

1.0.7

24 Apr 13:09
1.0.7

Choose a tag to compare

1.0.7

  • Emergency truncation has been added as a last-resort compaction stage.
  • Prompt caching now works for tool-less LLM calls such as /audit. Previously, cache control breakpoints were only injected when tool schemas were present.
  • /audit Phase 2 triage now places the repository profile in the system prompt instead of repeating it in every user message, improving prompt cache hit rates and reducing costs.
  • /audit Phase 3b finding expansions now run sequentially with per-item error handling instead of in parallel, so a single failed expansion no longer kills the entire batch.
  • D language (.d) files are now recognized as source code by /audit.
  • LiteLLM has been updated to add support for the Mythos provider.

1.0.6

21 Apr 13:11
1.0.6

Choose a tag to compare

1.0.6

  • top_p is no longer sent to the provider by default, letting each provider use its own default. The --top-p flag is still available to override it explicitly.
  • A --user-agent option has been added to set a custom User-Agent header on LLM API requests. The generic and llama.cpp providers now send Swival/<version> by default, and OpenRouter forwards the header when set. This can also be configured via user_agent in config files.
  • /audit path scoping no longer silently skips the target directory when the argument is missing a trailing slash.
  • Provider-specific workarounds have been added for Kimi K2.6.

1.0.5

17 Apr 14:31
1.0.5

Choose a tag to compare

1.0.5

  • When a file is too large for the LLM's context window during an audit, the audit now progressively truncates it and retries instead of failing outright.
  • Audit LLM calls no longer force a fixed temperature and top_p, letting providers that reject custom sampling parameters (such as Anthropic) work without errors.