From c2b05bebc83f336ce01288352727bb366ea73bdb Mon Sep 17 00:00:00 2001 From: Amin Chirazi <32016576+AminChirazi@users.noreply.github.com> Date: Fri, 7 Aug 2026 20:17:30 +0200 Subject: [PATCH] chore(release): prepare 0.18.0 Targeted typing now means fill on every adapter: typing into a named field states what the field should read, instead of landing after whatever was there. A spec that relied on targeted typing appending would change meaning - none does, and the docs never promised it - which is why this is 0.18.0 and not 0.17.1. All six version locations move together, and the lockfile with them. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 31 +++++++++++++++++++++++++++++++ Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- sdk/js/package.json | 10 +++++----- sdk/python/flowproof/__init__.py | 2 +- sdk/python/pyproject.toml | 2 +- 6 files changed, 46 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b6eeca..2a63d07 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,37 @@ together). ## Unreleased +## 0.18.0 + +### Changed + +- **Targeted typing means fill, on every adapter.** Typing into a NAMED + field now states what the field should read: whatever it held is replaced, + the way every mainstream tool works. Appending was never a designed + contract - it was an accident of the web keystroke path, and not even a + uniform one, since framed typing, the select branch and SAP fields always + replaced. + + What the accident cost was found the expensive way. A correction typed + 800 - the right value - into a payload field still holding the refused + 9000, and the page saw 9000800. The recording survived only because the + model noticed the tool's own behaviour in the scene, cleared the field and + retyped. + + Each adapter keeps the contract in its own idiom: web selects the content + and sends the same trusted keystrokes (a keydown-filtering app still sees + real keys), Windows UIA selects-all with its own chord and gains the + `clear_text` the Replace grammar always erred on there, vision composes + the chord its clear already used, SAP was already fill. Focused typing - + `Type ` with no target - stays raw keystrokes and APPENDS: it is + the step for dropdown filters, pre-focused rename boxes, and adding to + what is there. + + A spec that relied on targeted typing appending would change meaning. No + committed flow does, and the docs never promised it - but that is the + reason this is 0.18.0 and not 0.17.1. + + ## 0.17.0 ### Added diff --git a/Cargo.lock b/Cargo.lock index dc70ec3..8092d23 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -841,7 +841,7 @@ dependencies = [ [[package]] name = "flowproof-adapters" -version = "0.17.0" +version = "0.18.0" dependencies = [ "anyhow", "flowproof-driver", @@ -860,7 +860,7 @@ dependencies = [ [[package]] name = "flowproof-agent" -version = "0.17.0" +version = "0.18.0" dependencies = [ "chrono", "flowproof-driver", @@ -878,7 +878,7 @@ dependencies = [ [[package]] name = "flowproof-cli" -version = "0.17.0" +version = "0.18.0" dependencies = [ "ab_glyph", "chrono", @@ -899,7 +899,7 @@ dependencies = [ [[package]] name = "flowproof-driver" -version = "0.17.0" +version = "0.18.0" dependencies = [ "image", "postgres", @@ -913,7 +913,7 @@ dependencies = [ [[package]] name = "flowproof-python" -version = "0.17.0" +version = "0.18.0" dependencies = [ "flowproof-agent", "flowproof-cli", @@ -925,7 +925,7 @@ dependencies = [ [[package]] name = "flowproof-replay" -version = "0.17.0" +version = "0.18.0" dependencies = [ "chrono", "flowproof-agent", @@ -939,7 +939,7 @@ dependencies = [ [[package]] name = "flowproof-trace" -version = "0.17.0" +version = "0.18.0" dependencies = [ "jsonschema", "regex", diff --git a/Cargo.toml b/Cargo.toml index f2d382a..4f39aae 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -30,7 +30,7 @@ members = [ exclude = ["spike/windows-containment"] [workspace.package] -version = "0.17.0" +version = "0.18.0" edition = "2021" license = "Apache-2.0" repository = "https://github.com/automators-com/flowproof" diff --git a/sdk/js/package.json b/sdk/js/package.json index 52a53d4..0be3f48 100644 --- a/sdk/js/package.json +++ b/sdk/js/package.json @@ -1,6 +1,6 @@ { "name": "flowproof", - "version": "0.17.0", + "version": "0.18.0", "description": "Test that a bot only ever does the job it was given \u2014 and never deletes, sends or approves the thing it must not. Record it doing the job once, then replay on every commit with zero LLM calls. For the agents and RPA already running real work in production: web, desktop, SAP, Citrix.", "bin": { "flowproof": "bin/flowproof.js" @@ -14,10 +14,10 @@ "node": ">=18" }, "optionalDependencies": { - "@automators/flowproof-cli-linux-x64": "0.17.0", - "@automators/flowproof-cli-darwin-x64": "0.17.0", - "@automators/flowproof-cli-darwin-arm64": "0.17.0", - "@automators/flowproof-cli-win32-x64": "0.17.0" + "@automators/flowproof-cli-linux-x64": "0.18.0", + "@automators/flowproof-cli-darwin-x64": "0.18.0", + "@automators/flowproof-cli-darwin-arm64": "0.18.0", + "@automators/flowproof-cli-win32-x64": "0.18.0" }, "repository": { "type": "git", diff --git a/sdk/python/flowproof/__init__.py b/sdk/python/flowproof/__init__.py index b8087ac..d3313d3 100644 --- a/sdk/python/flowproof/__init__.py +++ b/sdk/python/flowproof/__init__.py @@ -24,7 +24,7 @@ run, ) -__version__ = "0.17.0" +__version__ = "0.18.0" __all__ = [ "ClarificationNeeded", diff --git a/sdk/python/pyproject.toml b/sdk/python/pyproject.toml index 96603da..a45280a 100644 --- a/sdk/python/pyproject.toml +++ b/sdk/python/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "flowproof" -version = "0.17.0" +version = "0.18.0" description = "Test that a bot only ever does the job it was given — and never deletes, sends or approves the thing it must not. Record it doing the job once, then replay on every commit with zero LLM calls. For the agents and RPA already running real work in production: web, desktop, SAP, Citrix." readme = "README.md" license = "Apache-2.0"