Skip to content

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 14 Aug 05:31
· 104 commits to main since this release
56ceeff

An on-device AI agent for Android, where you build the agent's behaviour out of
explicit steps you can inspect, and every dangerous action stops to ask you.

This release is mostly about the two paths that reach outside the phone —
connecting your own MCP server, and delegating a step to a cloud provider. Both
had been built but almost never run. They were run deliberately this time,
against real servers and real providers, and both were broken.

Before you update

The signing identity changed. Builds up to and including 0.6.0 were signed
with the Android debug keystore; this is the first release signed with a real
release key. Android refuses to update an install in place when the signer
changes, so upgrading means uninstalling the old build first — which deletes its
data. Export anything you want to keep before you do. One-time only:
releases from here on update normally.

What was broken outside the phone

Six independent defects, none of which any unit test could see:

  • A third-party MCP server was unusable. The session was lost between the
    health indicator and the executor; every tool parameter was declared to the
    model as a string; and tool calls carried an accidental 10-second limit
    inherited from an HTTP client default. Any one of them was enough on its own.
  • A cloud answer cut off in transit was shown as if it were finished. A
    dropped stream ends normally on OpenAI-compatible clients — the only
    difference is a missing completion signal, which was being discarded. A
    configuration error was fed into the token stream, so a failed step read as a
    success. And there was no deadline at all: a stalled provider held a step for
    15 minutes (measured).

Fixed, with the limits now written down honestly in the
user guide
— including where the truncation protection does not apply yet, and why.

Two more found on the way: one hung tool call froze every chat in the app,
and a finished tool could run twice if the process died inside a 500 ms window.

Also in this release

  • Local servers over plain HTTP actually work now. Approving your own
    Ollama or MCP address on your network is a decision you make, not a list of
    addresses baked into the APK.
  • Archive chats instead of deleting them — swipe, undo, restore, read-only
    history.
  • A weekly view of your own usage, on-device: active days, current run,
    returns after a break. Nothing leaves the phone; a build-time guard forbids it.
  • Model downloads survive leaving the app and resume where they stopped.
  • Setup picks the fastest inference backend your device can actually run,
    and quietly falls back when it cannot.
  • See what your automations are doing — an evaluation journal and health
    badges say why a trigger did or did not fire.
  • Long-term memory recalls better: age no longer expires a relevant note,
    near-duplicates are found by meaning, and a summary is verified before the
    facts it replaces are deleted.
  • Steps inside a pipeline work in English; only what you read is translated.
    Working in another language used to break tool calls and routing silently.
  • A pipeline import now names what it could not read, field by field.

Which file do I want

  • knotwork-0.7.0-full-release.apk — the normal build.
  • knotwork-0.7.0-foss-release.apk — no Firebase, no crash reporting, for the
    F-Droid-minded. Same behaviour otherwise.
  • .aab is for store upload, not for installing.

Verifying what you downloaded

SHA256SUMS.txt covers all three artefacts. The signing certificate is

SHA-256: E5:0C:8A:A4:7C:38:C8:08:E4:49:C8:7D:BC:D4:AB:9D:0D:81:0B:CD:8C:A9:D3:3F:D0:CE:83:D4:92:C8:16:51

Check it with apksigner verify --print-certs. Every release from here shares
this signer.

Pre-release

Version 0.7.0 is a pre-release: no stability guarantees for the pipeline JSON
schema, exported formats or settings layout, and shared pipeline files are not
yet a compatibility contract. See the Pre-release notice in the
README.

Full changelog:
CHANGELOG.md
— every change in this release, in full.