Repository navigation
·
5 commits
to main
since this release
Highlights
Exploration grows up: explore now runs remotely on HyperExecute by default, streams a live map and browser view, and ships finding evidence packs you can inspect in the browser. Shared projects arrive across the whole CLI — ingest, design, review, maintain and run all work from a linked folder. A new policy system judges sealed evidence packs against Test Manager metrics, and every command speaks agent-mode NDJSON.
[0.10.0] - 2026-10-28
Exploration, end to end
explore runis remote by default — runs are pushed, checked and launched on HyperExecute; local-only flags say so inexplore run --help.--claim-runis what the VM uses.- Up to 20 cloud browsers at once —
explore --browser remotedrives LambdaTest Chrome over CDP, opening browsers only as the explorer asks for them, and never leaves a VM running after release. - One clean stop —
explore stop <id>aborts a queued run and stops a running one cleanly. At the terminal, the first Ctrl+C stops, the second acknowledges, the third kills immediately. - Scope the run —
--focus <screen>starts from one screen of an existing map,--depth-capssets per-depth lease caps, and--max-parallel Nbounds concurrency. - Run policy is explicit —
explore run --policy read_only|mutating. Mutating is now the default forexplore run; read-only blocks writes at the route and browser level and refuses secret controls. --allow-post— name the read-only POST endpoints the gate should let through, or pass*for every POST to the run's own domains.
Seeing what an exploration found
explore viewis a live map — a React Flow graph of the exploration, paged for maps of thousands of screens, with zoom levels, search, a legend, a findings drawer with filters, and map badges.- Watch a run as it happens — the live view streams each browser's picture through the controller at up to 15 fps, from any replica. The run card's Watch opens it.
- Finding evidence packs — every finding carries a clip player, Network and Console tabs, before/after screenshots with the acted control boxed, the cause chain, and a verdict. Clips stream as they draw and can be re-requested if one fails.
- Finding status lifecycle — open, bug, resolving, resolved, discarded, with a full History that names who changed what and when, including undos.
- Detectors — console, network, broken link, slow-request and accessibility (axe-core) findings, plus performance categories and re-check leases that mark results reproduced or not_reproduced.
Explore from the terminal
- Bare
exploreopens a project picker and the exploration card — from there you can run again, open the setup form, view the map, inspect assurance context, or delete with a confirm that Esc backs out of. - A compact live bar — polled progress for a running exploration; Ctrl+C detaches or stops.
- Help that reads like help —
explore --helpexplains what explore is instead of calling it "(agent mode)", groups flags with their values and defaults, and moves depth caps, slow budget and recheck into an Advanced group. explore sessions --run <prefix>— a run prefix is matched across every page of results.
Secrets never leave the worker
- The content fence — anything a page displays as a secret is masked before it leaves the worker: bare passwords and card numbers in step text, PINs, CVVs, placeholders, RFC emails, "set password to x" phrasings, and base64 or Basic
user:passwordforms. - Secret values never hit disk or stdout — not in
events.ndjson, not intui.log, not in evidence packs.explore viewredacts every shape the fence masks, and short bearer tokens in free text read as REDACTED. - Login is protected — the sign-in screen belongs to the setup flow alone, a pop-up never receives a secret, and managed Chrome launches with password leak detection and the password manager off.
Policies and evidence gates
kane-cli policy— list, create and inspect Test Manager policies, pluskane-cli policy metrics-listfor the metric catalog.- Judge a pack against a policy —
--policy-idworks onevidence merge(judges the sealed merged pack),testrun run(the published pack, local or remote) andtestmd run(seals, judges, and ingests the verdicts). evidence verdictandevidence lint-policy— read and lint policies over the evidence-cli verdict API. A lint finding's location prints once, and a policy file's path is reported as given.- Summaries carry gate totals by severity, and the metric catalog is snapshotted into every sealed pack so a verdict stays reproducible.
- A refused or unwritable verdict no longer costs the run its upload — and failures from evidence-cli are reported as faults instead of crashing the command.
Working in a shared project
- Linked folders work across the CLI —
context ingest,context list,context pull,design tests,maintain reconcile,maintain evolve,cover,testrun runandtestmd runall run against the shared project. Only paths the assurance store can't serve are refused. context ingesttakes more — URLs, references, Jira/Confluence/Linear items and several files in one session, all-or-nothing, with the project's converted sources landing on save.- Reviews you can drive — decide cards on screen, or answer on the agent stream with
--approve/--skip/--defer.--mode overrideand--jsonwork in a linked folder; a question with no recommended option fails asNO_DEFAULT_ANSWERin both override and ci. - Sessions survive interruption — Ctrl+C mid-child pauses the session with its resume, a resumed session comes back on the check-in it paused on, and credits count what was already spent.
- Saves say what Test Manager took — which scenarios couldn't be covered and why, which test files were written, which values the tests still need, and which cases will update on their next run.
- Nothing left empty-handed — an empty linked folder's next step is the pull; a fresh folder is told how to join; a folder with nothing designed leads with the design.
The assurance job
kane-cli explore assurance-jobruns the whole design chain unattended, logging progress on stderr so the HyperExecute log says what it did.- Clear outcomes —
MARK_REFUSED/PROJECT_NOT_MARKEDwhen it can't share a project,LATTICE_UNAVAILABLEafter a retried read,INGEST_FAILEDwith its cause, andINPUT_INVALIDwhere it applies. - Resumes are honest — a run that saved nothing says what became of the session, and a resume hint only appears when the session can actually be resumed.
KANE_AJ_CURSOR_FROMbounds the job's cut from below; a cut with nothing new counts as handled.
Agent mode and traceability
--agenteverywhere — one NDJSON rule across every command, plus--mode agentas an alias onrunandtestmd run, and--jsononextract,design testsandmaintain reconcile.- Every next item is runnable as printed — agent refusals name the commands you'd run next, with the flags you actually typed preserved.
- Support ids that lead somewhere — every support id a person sees reaches the remote log under that id, errors are spooled and sent at exit, and each Lattice call carries its request id, the command's support id and the CLI version.
- Richer traces — one trace per session run including its save, each landed design phase traced with its time, and a remote run's log naming its Lattice session and project.
Tests, designs and files
- Replaced tests are named, not silently dropped — a replaced test's file is left in place and labelled with what replaced it and what that new test verifies.
- Redesigns keep lineage — a rewritten scenario names the one it replaces via
reuse_of, the test pair and criteria carry across, and an orphaned criterion is retired only by a forced redesign of its own use case. - Start pages and variables — a design marks the variable a test's first step opens as its start page, under one rule for every test; a save lists the values its tests still need, writes their stubs, and names any test with no start page.
- Emulator and simulator runs fail fast — a run with no app to install stops before the case, the replay checks and any device (and before dispatch when remote), and says where the app should come from.
- Coverage is visible on every run path —
context viewshows the coverage figure beside designed,cover gapscounts criteria not yet run, and a pack sealed on the grid says plainly that it has no coverage rather than promising it later.
Install
# npm
npm install -g @testmuai/kane-cli@0.10.0
# 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.9.0...0.10.0