Skip to content

v0.8.0

Latest

Choose a tag to compare

@github-actions github-actions released this 23 Aug 02:26
· 5 commits to main since this release
996be75

Knotwork can now be called by the automation app you already use, and a run nobody is watching is bounded.

Upgrading from 0.7.x is an ordinary in-place update. The signing key is unchanged, so unlike the 0.7.0 release this one does not ask you to uninstall anything.

Another app can ask Knotwork to run a pipeline

Tasker, MacroDroid, or a shell script over adb can now ask Knotwork to run one pipeline you nominate. The other app decides when, using its own permissions and its own conditions; Knotwork does the language-model part of what. It complements an automation app rather than replacing it.

It is off by default and opens only through a consent dialog that spells out what you are agreeing to. Even switched on it does nothing until you bind exactly one pipeline — and that binding is an allowlist, not a fallback: a request naming any other pipeline is refused rather than quietly redirected. Your tool approvals still apply exactly as they do to the app's own background runs; an external call asks for a run, it does not approve what the run then wants to do. Every request that arrives, accepted or refused, lands in a readable journal with the reason in plain language.

Android does not tell an app who sent a broadcast unless the sender opts in, which automation apps do not — so the callback address is taken at face value, and that is why the callback carries only your own request id and a status, never what the run produced.

The smallest call is two keys: which pipeline, and what to say to it. Worked Tasker, MacroDroid and adb examples are in the contract documentation.

Runs that nobody is watching now have limits

A background run with a cloud provider configured spends your own API key, and until now nothing stopped one that started going in circles. Runs now carry step and token ceilings counted across the whole run tree — so a nested sub-pipeline cannot start a fresh allowance, and neither can answering a background approval hours later, which is the case that actually leaked. Background runs get a tighter token ceiling than interactive ones, and both are adjustable.

A separate detector ends a run that keeps repeating the same work without getting anywhere. Either way the run says why it stopped, in words, and reads as a guard doing its job rather than as a broken automation.

Also in this release

  • Knotwork now installs on Android 14 and 15, not only Android 16. Two features still need Android 16 and fail softly without it: calling functions other apps expose, and one platform hardening on the external-automation receiver. The hardware requirement is unchanged and is the one more likely to bind: a local model still needs roughly 2 GB of free RAM.
  • A prompt can travel as a Markdown file — export one, send it to someone, import it back. A prompt file supplies wording only: it cannot add tools or steps, and a file that asks for them is imported as text with the request named.
  • A thinking model's private reasoning no longer arrives as your answer. It was reaching the chat, the stored history, and the parser that reads structured replies.
  • Values in the run console can be copied from the tab you are actually looking at.
  • A short catalogue of the decisions that constrain contributions now ships in the repository, for the cases where the obvious change is the wrong one.

Which file to download

  • knotwork-0.8.0-full-release.apk — the standard build. This is the one to take unless you have a reason not to.
  • knotwork-0.8.0-foss-release.apk — no proprietary dependencies, no crash reporting.
  • knotwork-0.8.0-full-release.aab — for the store pipeline, not for sideloading.

Verifying what you downloaded

SHA256SUMS.txt covers all three files. The APKs are signed with:

C=CL, CN=Aleksei Volodin
SHA-256: e50c8aa47c38c808e449c87dbcd4ab9d0d810bcd8ca9d33fd0ce83d492c81651

Check it with apksigner verify --print-certs <file>.apk. A build signed by C=US, O=Android, CN=Android Debug did not come from this release.

Pre-release

This is still a pre-release. Storage formats, the pipeline JSON schema, the Kotlin public surface and the settings layout can change between minor versions without a migration path — with one deliberate exception: the external-automation contract's action, keys, statuses and refusal reasons are frozen as of this release, because profiles written against them live in other people's apps.

Full details, including everything not summarised here: CHANGELOG at this tag.