diff --git a/.changeset/remove-automate-command.md b/.changeset/remove-automate-command.md new file mode 100644 index 000000000..2671c1b72 --- /dev/null +++ b/.changeset/remove-automate-command.md @@ -0,0 +1,7 @@ +--- +"@qawolf/cli": minor +--- + +`qawolf automate` has been removed. The command asked QA Wolf to automate draft flows, and it is deprecated. Running it now reports an unknown command. + +The public API endpoint behind it is unchanged, so anything that calls QA Wolf directly still works. diff --git a/skills/qawolf-cli/SKILL.md b/skills/qawolf-cli/SKILL.md index 3a059b2fe..69a7d7b13 100644 --- a/skills/qawolf-cli/SKILL.md +++ b/skills/qawolf-cli/SKILL.md @@ -1,6 +1,6 @@ --- name: qawolf-cli -description: Manage QA Wolf through the qawolf CLI. Use when asked to create, update, or list coverage requests, bug reports, or maintenance reports; start a run of flows or tags on the QA Wolf platform or read a run's results; list, set, or delete environment variables; manage environments, flows, or tags; request automation of draft flows; run or list flows locally; authenticate; install the local runtime; or drive a live cloud browser (launch a runner, screenshot it, click and type on it, read its recorder) from a shell. +description: Manage QA Wolf through the qawolf CLI. Use when asked to create, update, or list coverage requests, bug reports, or maintenance reports; start a run of flows or tags on the QA Wolf platform or read a run's results; list, set, or delete environment variables; manage environments, flows, or tags; run or list flows locally; authenticate; install the local runtime; or drive a live cloud browser (launch a runner, screenshot it, click and type on it, read its recorder) from a shell. license: Apache-2.0 compatibility: Requires the qawolf CLI on PATH. Install it from @qawolf/cli or use a standalone binary from GitHub Releases. --- @@ -131,7 +131,6 @@ that `url`; never guess a route and never send a repository link in its place. | `qawolf auth logout` | local | Remove stored credentials | | `qawolf auth switch` | local | Choose which workspace to work in | | `qawolf auth whoami` | read | Show authentication status | -| `qawolf automate` | write | Request automation for draft flows. First create a named local .flow.ts draft for every requested journey that does not already have a matching draft; never reuse a generic starter or placeholder. Each new draft must start with a JSDoc Goal: description, import flow from @qawolf/flows/web, and use export default flow(...); a comment-only file or direct test(...) call is not a valid draft. Commit and push all changes with Git to publish them, then list remote drafts to resolve every selected ID. Do not use patch to create or rename a selected flow. Finally make one automation request containing all requested flow IDs. | | `qawolf doctor` | local | Diagnose problems running flows locally | | `qawolf email find` | read | List the workspace's inbox, or its sent mail, newest first. Read a message body with email.get. | | `qawolf email get` | read | Read one email of the workspace, with its plain text and HTML bodies. Use it to pull a sign-in code or a verification link out of a message. | diff --git a/src/commands/__snapshots__/help.test.ts.snap b/src/commands/__snapshots__/help.test.ts.snap index 9be8beefd..539fe5c54 100644 --- a/src/commands/__snapshots__/help.test.ts.snap +++ b/src/commands/__snapshots__/help.test.ts.snap @@ -24,20 +24,6 @@ Commands: flows need runner Drive an interactive runner on the QA Wolf platform - automate [options] Request automation for draft flows. First create - a named local .flow.ts draft for every requested - journey that does not already have a matching - draft; never reuse a generic starter or - placeholder. Each new draft must start with a - JSDoc Goal: description, import flow from - @qawolf/flows/web, and use export default - flow(...); a comment-only file or direct - test(...) call is not a valid draft. Commit and - push all changes with Git to publish them, then - list remote drafts to resolve every selected ID. - Do not use patch to create or rename a selected - flow. Finally make one automation request - containing all requested flow IDs. email QA Wolf public API email commands environment QA Wolf public API environment commands file QA Wolf public API file commands diff --git a/src/commands/program.test.ts b/src/commands/program.test.ts index a9124d99e..1f448dda4 100644 --- a/src/commands/program.test.ts +++ b/src/commands/program.test.ts @@ -139,4 +139,13 @@ describe("public API commands", () => { const create = run?.commands.find((command) => command.name() === "create"); expect(create).toBeDefined(); }); + + it("does not register the deprecated automate command", () => { + const program = createProgram({ signals: noopSignals }); + + const automate = program.commands.find( + (command) => command.name() === "automate", + ); + expect(automate).toBeUndefined(); + }); }); diff --git a/src/commands/qawolfCliSkill.template.md b/src/commands/qawolfCliSkill.template.md index 467047f7f..9ab3d0a6f 100644 --- a/src/commands/qawolfCliSkill.template.md +++ b/src/commands/qawolfCliSkill.template.md @@ -1,6 +1,6 @@ --- name: qawolf-cli -description: Manage QA Wolf through the qawolf CLI. Use when asked to create, update, or list coverage requests, bug reports, or maintenance reports; start a run of flows or tags on the QA Wolf platform or read a run's results; list, set, or delete environment variables; manage environments, flows, or tags; request automation of draft flows; run or list flows locally; authenticate; install the local runtime; or drive a live cloud browser (launch a runner, screenshot it, click and type on it, read its recorder) from a shell. +description: Manage QA Wolf through the qawolf CLI. Use when asked to create, update, or list coverage requests, bug reports, or maintenance reports; start a run of flows or tags on the QA Wolf platform or read a run's results; list, set, or delete environment variables; manage environments, flows, or tags; run or list flows locally; authenticate; install the local runtime; or drive a live cloud browser (launch a runner, screenshot it, click and type on it, read its recorder) from a shell. license: Apache-2.0 compatibility: Requires the qawolf CLI on PATH. Install it from @qawolf/cli or use a standalone binary from GitHub Releases. --- diff --git a/src/domains/publicApi/skippedContracts.ts b/src/domains/publicApi/skippedContracts.ts index ea2ec6742..9b5e8b72f 100644 --- a/src/domains/publicApi/skippedContracts.ts +++ b/src/domains/publicApi/skippedContracts.ts @@ -23,8 +23,7 @@ // prefix. The group is claimed as a whole here, so the contracts whose commands // land in a later change are absent rather than generated in a shape the rest of // the group does not match. -/** Every contract the generator passes over. */ -export const skippedContractNames: ReadonlySet = new Set([ +const handWrittenContractNames: readonly string[] = [ "agent.get", "agent.send", "flow.list", @@ -43,4 +42,12 @@ export const skippedContractNames: ReadonlySet = new Set([ "runner.stopRun", "runner.takeScreenshot", "runner.terminate", +]; + +const deprecatedContractNames: readonly string[] = ["automate"]; + +/** Every contract the generator passes over. */ +export const skippedContractNames: ReadonlySet = new Set([ + ...handWrittenContractNames, + ...deprecatedContractNames, ]);