Repository navigation
·
2 commits
to main
since this release
Highlights
This release makes every run observable: commands, sessions and failures now emit structured events with error codes, durations and the surface they ran on. Replay gets a self-healing read loop for screenshots and page code, and exit codes finally distinguish "your test failed" from "kane-cli broke".
[0.10.4] - 2026-11-12
Every run is now traceable
- Commands report their own lifecycle — every command emits a start and end event, including
run,testmd runandexplore, so a run's shape is visible even if it dies early. - Sessions say what they are and how they ended — session start records the surface and target; session end records the outcome, including sessions that exit without finishing.
- Failures carry an error code, a domain and the actual error — no more guessing from a bare stack trace, and a
testmdrun that throws now logs why before closing its session. - Ctrl+C is recorded as a signal exit, not a crash — interrupting a run no longer pollutes your history with phantom crashes.
- Telemetry is always on — there is no opt-out, and usage before login is attributed by machine id.
Exit codes you can trust
- A failed test is not a CLI error — test failures and CLI failures are now reported on separate lanes, so scripts and CI can tell them apart.
- A command that needs a login says so — instead of a generic failure, kane-cli reports the missing login explicitly.
- A run that produces no result still fails — an empty result no longer slips through as a success.
Replay that repairs itself
- Reads heal instead of giving up — screenshot and page-code reads run through the analyze v3 repair loop before failing, and a heal that finds nothing is reported as a failed read rather than a silent pass.
- Screenshot reads record the question they asked — and are checked the same way replay asks it, so verification matches intent.
- Pages are re-read after hover and drag — actions that change the page no longer leave replay working from stale content.
query_jshandles code that evaluates to a function — snippets that return a function now execute instead of erroring.- New
@manualmarker — tag steps that need a human and replay treats them as replay-only, not as something to automate.
Remote and multi-test runs make sense in the logs
testrun --remotereports dispatch, outcome and failures — and every HyperExecute VM session names the job that sent it.- A test run coordinator is its own session — each member run names the run it belongs to and is tagged with its run type, so a parallel suite reads as one tree instead of scattered sessions.
explorehas its own lifecycle events — start, end and error are logged like any other command.
Quieter, more useful output
- Per-item success spam is gone — repeated success lines collapse into one summary, and normal states no longer emit warnings.
- Every pipeline stage reports how long it took — stages end with a duration, making slow steps easy to spot.
- Debug detail appears only when it matters — debug lines are held back and released when a run fails, and a passing
test.mdrun drops its held step output. - Nothing is dropped at the edges — log lines before attach, after finish and at exit are all kept.
Install
# npm
npm install -g @testmuai/kane-cli@0.10.4
# 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.10.3...0.10.4