kane-cli 0.8.14
Highlights
This release adds context sync: a shared context store that lives in a git repository, an S3-compatible bucket, or a synced folder, with guided setup, typed refusals, and a replay engine that puts your work back after a reset. Mobile runs can attach to an Appium session you already have.
[0.8.14] - 2026-09-15
Share a context store with your team
- Set up sharing in one guided flow —
kane-cli context sync setupwalks you through sharing over GitHub, an S3-compatible bucket, or a plain folder, or joining a team's existing context. - Refusals read like sentences, not stack traces — an unreachable location, a denied account, or an empty location each come back as a named refusal with the remedy, and bucket or Git output is never echoed back.
- Setup keeps what you typed — after a refusal your address and credentials survive, a changed bucket re-asks only for keys, and the closing line gives you an address you can paste.
- Credentials are handled carefully — key pairs are validated before they are saved, a rejected pair is handed back, files are written
0600, and a failed clone restores origin's keys. - Conflict? — status, the behind advisory, and the refusal all name the location and point you at
pull --rebase(orclonefor the first position). - Scriptable end to end — every sync command takes
--mode agentwith typed events,--jsonoutput, exit code 2 on usage errors, and no echoed option values.
Deciding what wins during a rebase
- A decision panel you can read — one panel per walk, each side labeled by what actually tells them apart, with field-level diffs for edits.
- Answer decisions inline or ahead of time —
syncandpullfinish an open rebase,statusanddoctorlook without changing anything, and--answerresolves a card directly. - Writes are fenced while a rebase is open — the store only accepts writes from the walk, so nothing lands behind your back mid-decision.
- Quieter output — no notices on context verbs, one line per decision, a summary block at the end, and Ctrl+C pauses instead of tearing the walk down.
Tests can branch and loop
- Branches survive export — local mobile export records the whole if/else structure, not just the branch that happened to run, and picks the taken branch from the recorded run.
- Healing keeps your structure — a block that produced no runs is kept in the healed draft instead of being dropped.
Attach to existing appium sessions
- Attach to an Appium session you already have —
run --appium-session-idjoins a live session, and an attached session never launches the app, so the opening action stands in for the launch. - Clear refusals on conflicting flags — a conflict names only the flags you actually passed, in plain language.
New store housekeeping
.context/is gitignored automatically — creating a store inside a Git repository adds it, and a store exported bysync doctor --exportgets the entry in its own folder's.gitignoretoo.- First landings report what happened — a first landing from a URL tells you the
.gitignoreoutcome, across every URL provider family.
Install
# npm
npm install -g @testmuai/kane-cli@0.8.14
# Homebrew
brew install lambdatest/kane/kane-cli
# Shell installer (latest release)
curl -fsSL https://raw.githubusercontent.com/LambdaTest/kane-cli/main/install.sh | bashCompare: 0.8.13...0.8.14