Conversation
Allow PRs targeting release branches (like next/v8) to trigger CI. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* feat!: switch from npm to pnpm BREAKING CHANGE: The project now uses pnpm as its package manager. - Replace package-lock.json with pnpm-lock.yaml (imported via pnpm import) - Add pnpm-workspace.yaml for workspace configuration - Update all CI workflows to use pnpm - Update all npm scripts to use pnpm equivalents - Update simple-git-hooks to use pnpm exec - Add pnpm.onlyBuiltDependencies for esbuild and simple-git-hooks - Replace fixture npm lockfiles with pnpm lockfiles - Update test expectations for pnpm-lock.yaml in bundled file lists Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): use pnpm instead of npx in test fixtures Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): add string-width and ast-types as explicit dependencies These were phantom dependencies (transitive via recast and other packages) that worked with npm's flat node_modules but fail under pnpm's strict dependency resolution. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: serialize pnpm lifecycle scripts to prevent race conditions Set child-concurrency=1 in .npmrc so pnpm runs workspace prepare scripts sequentially. Remove the redundant `pnpm -r run prepare` from the root prepare script (pnpm already runs each package's prepare hook) and move prepare:ai-context to postprepare so it runs after all packages are built. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * refactor(cli): convert check-parse-error e2e test to use FixtureSandbox Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * test(create-cli): log stderr when bootstrap e2e stdout is empty Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(create-cli): force npm in e2e tests to avoid pnpm workspace detection Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(create-cli): fix playwright config e2e test prompt injection The test injected initializeGit=true but didn't account for when .git already existed (skipping the prompt). Change to not init git since it's not what the test is verifying, and add the missing askCopyPlaywrightProject prompt. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(create-cli): stop injecting jiti into scaffolded project dependencies jiti is now bundled internally by the CLI and no longer needed as a user-facing dependency. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): update pw-test e2e assertions for pnpm testCommand Fixtures now detect pnpm as the package manager, so the generated testCommand is 'pnpm playwright test' instead of 'npx playwright test'. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * refactor: decouple skills/ sync from prepare lifecycle Move the root-level skills/ copy from a postprepare lifecycle hook to an explicit sync:skills script. This eliminates the cross-package dependency between root and packages/cli during pnpm install, removing the need for child-concurrency=1 in .npmrc. The AI context is still built as part of packages/cli's prepare script (needed for the published tarball), but the root no longer races to copy from its output. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * perf(cli): optimize test fixtures with FixtureTemplate Introduce FixtureTemplate to pre-install dependencies once and share them across fixtures via symlinks, reducing pnpm install calls from 53 to 1. - Add FixtureTemplate class that caches pre-installed node_modules - Add vitest globalSetup to build the playwright template once - Migrate playwright-check, parse-files tests to use template - Set installPackages: false for fixtures with no deps (agentic-check, api-check, browser-check, project-parser) - Symlink workspace checkly package into all fixture node_modules - Remove injectPackedSelf (dead code) and pnpm pack from test scripts - Remove accidentally committed node_modules from test-bundling and test-shared-bundling fixtures Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * perf(cli): use FixtureTemplate in e2e tests Share a single playwright install across all e2e fixture sandboxes via symlinked node_modules. Fixtures with no dependencies use installPackages: false instead. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): use pnpm in e2e tests and add lockfiles to fixtures Replace npx with pnpm in e2e test runners for consistency with the pnpm-based fixtures. Add pnpm-lock.yaml to all e2e fixtures so detectPackageManager reliably identifies pnpm. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * refactor(cli): add FixtureTemplate.use() and simplify template usage Add FixtureTemplate.use() which looks up a cached template by name, falling back to an env var set by globalSetup for cross-process communication. Test files now pass template: 'playwright' as a string instead of managing FixtureTemplate.create() calls directly. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): use dedicated template for pinned playwright version in pw-test The test-pwt-native fixture pins @playwright/test to 1.53.1. The shared playwright template installs ^1.59.1 which resolves to a newer version, causing a version mismatch error at runtime. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * perf(cli): create fixture templates serially for better cache reuse Sequential pnpm installs let the second template reuse packages cached by the first (e.g. playwright-core), avoiding redundant downloads on CI. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * refactor(cli): prepare FixtureSandbox for runChecklyCli migration - Make source param optional (empty sandbox when omitted) - Add 'bare' template (checkly only, no other deps) - Fix Windows .bin by writing a .cmd shim instead of a symlink - Replace runChecklyCli with checklyEnv + runCheckly helpers Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * refactor(cli): migrate all e2e tests from runChecklyCli to FixtureSandbox Replace the raw child_process.spawn-based runChecklyCli with FixtureSandbox + runCheckly helper across all 21 e2e test files. Tests now use pnpm checkly via the .bin symlink instead of spawning bin/run directly, which fixes Windows module resolution issues with pnpm's node_modules layout. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): write package.json in sourceless fixture sandboxes pnpm requires a package.json in the working directory. When no source is provided, write a minimal one so pnpm checkly can run. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): fix e2e test migration issues - destroy: wrong project name exits 0, not failure - login: remove trailing newline assertion (oclif line-wrapping) - switch: remove trailing newline assertion - env.rm: add explicit timeout for interactive prompt test - Add missing package.json to fixtures that lacked one - Write package.json in sourceless sandboxes for pnpm compat Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): unset CI env var in e2e test helper Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): force interactive CLI mode in e2e tests Use CHECKLY_CLI_MODE=interactive instead of unsetting CI, since the CLI also checks GITHUB_ACTIONS and other CI-specific env vars. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): add .js extension to oclif helpClass path On Windows, oclif's module-loader uses require() to load the custom help class. Without the .js extension, require() fails to resolve the module in an ESM package because Node.js doesn't auto-append extensions for require() in "type": "module" packages. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): run CLI via node instead of pnpm in e2e tests On Windows, pnpm's import() of oclif command modules fails with MODULE_NOT_FOUND even when the files exist. Bypass pnpm's execution layer by invoking node with the bin/run path directly, matching the behavior of the old runChecklyCli helper. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): use real CLI path instead of junction path in e2e tests On Windows, Node.js import() fails when resolving through NTFS junctions. Use CLI_PACKAGE_ROOT directly to avoid junction traversal. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): use stripped env in e2e tests to match old runChecklyCli Use extendEnv: false so the CLI subprocess gets only explicitly passed env vars, matching the old child_process.spawn behavior. This prevents CI runner env vars from interfering with the CLI. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): pass API keys via checklyEnv in direct fixt.run callers Tests using fixt.run directly need checklyEnv() to provide API keys and other required env vars when extendEnv is false. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): use dir symlinks instead of junctions on Windows NTFS junctions cause Node.js ESM import() to fail when resolving modules through the junction. Regular dir symlinks work correctly on GitHub Actions runners which have the required permissions. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): add missing deps to e2e fixture templates Add uuid to the playwright template (used by deploy-project fixture). Switch sync-playwright tests from bare to playwright template (fixture loads playwright.config.ts which imports @playwright/test). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): use shell on Windows in FixtureSandbox.run Matches the old runChecklyCli behavior which used shell: true on Windows for cmd.exe to handle process execution. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): switch e2e tests back to pnpm checkly Unit tests use pnpm checkly and pass on Windows. The node bin/run approach fails because oclif's CJS module-loader can't import() ESM command files using Windows absolute paths. With dir symlinks (not junctions) now in place, pnpm checkly should work correctly. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): remove extendEnv: false from e2e tests Node.js on Windows needs system env vars (SYSTEMROOT, etc.) for module resolution. Stripping the env caused import() to fail for some files. Use the default extendEnv: true and rely on CHECKLY_CLI_MODE: 'interactive' to handle CI detection. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): install packed CLI tarball into templates instead of symlinking Windows CI runners have broken pnpm junctions that cause import() to fail. Install the packed CLI tarball into each FixtureTemplate via pnpm install, giving real file copies instead of junctions. - Add pnpm pack back to test scripts - FixtureTemplate.create installs checkly tarball as devDependency - Remove symlinkChecklyPackage and Windows .cmd shim - Replace installPackages: false with template: 'bare' Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * refactor(cli): remove installPackages option, default template to bare Every sandbox now uses a template (defaults to 'bare'). Remove installPackages option and clean up redundant template: 'bare' from all test files. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(ci): split e2e tests into separate jobs per package Prevents pnpm pack in CLI tests from deleting dist/ while create-CLI tests run in parallel. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * ci: cancel in-progress workflow runs on new push Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * ci: use 'e2e - <package> - <os>' job name format Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): use extendEnv: false in e2e test helpers Prevent CI env vars from leaking into CLI subprocesses. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(create-cli): add mock @playwright/test to playwright-project fixture The fixture's playwright.config.ts imports from @playwright/test. With extendEnv: false the subprocess can't resolve it from the workspace. Add a minimal mock that implements defineConfig and devices. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): remove shell: true from FixtureSandbox.run shell: true on Windows causes cmd.exe to mangle arguments with spaces. Not needed since pnpm is invoked directly via execa. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): wait for port 4242 release between login e2e tests The login command binds port 4242 for the OAuth callback. When tests time out and kill the process, the port may not be immediately available for the next test. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): force-kill login process after 1s grace period Reduce forceKillAfterDelay from default 5s to 1s so the port is released faster. Increase test timeouts to accommodate the afterEach port wait. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): kill orphaned login process on Windows via taskkill On Windows, execa kills pnpm but the grandchild node process holding port 4242 survives. Use netstat + taskkill /T to find and kill it. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): kill entire process tree in login e2e tests Use detached process group + taskkill /T (Windows) or negative PID SIGKILL (Unix) to kill pnpm and all its grandchild processes that hold port 4242. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): use detached only on Unix in login tests detached: true on Windows breaks stdio for grandchild processes due to DETACHED_PROCESS nullifying standard handles. Use detached only on Unix (for process group kill) and taskkill /T on Windows. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): handle subprocess rejection in login tests Attach rejection handler immediately to prevent unhandled rejection when taskkill kills the process tree externally. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
) * feat(cli)!: default --record to true on test and trigger commands Recording is almost always desired, so make it the default. Users can opt out with --no-record. This aligns test and trigger with pw-test, which already defaults to recording. Remove the now-dead "use --record" tip from list, ci and github reporters, and update all documentation and examples. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): show [default: true] in --record help text oclif doesn't render defaults for boolean flags automatically, so add it to the description string like verify-runtime-dependencies does. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* feat(cli): auto-load .env file for CLI configuration Load a .env file from the current directory before any CLI commands run, so users can set CHECKLY_API_KEY and CHECKLY_ACCOUNT_ID without exporting them in their shell. Process env vars always take precedence. Opt out with CHECKLY_NO_DOTENV=1. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): fix login e2e test and skip chmod test on Windows Update e2e login test to match the new warning message wording. Skip the permission error test on Windows where fs.chmod(0o000) does not restrict file reads. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): use shorter substrings in login e2e to handle line wrapping The longer warning message gets line-wrapped by oclif's warn formatter, inserting line break prefixes that break toContain checks on the full string. Match shorter substrings instead. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* feat(cli): add cancel REST client
* feat(cli): support cancellation status in reporters
* feat(cli): add --detach flag with SIGINT cancel flow
* feat(cli): wire cancel handler in test, pw-test, and trigger commands
* test(cli): add tests for cancellation flow
* feat(cli/reporters): suppress live panel while cancel prompt is open
Adds an isCancelling flag to AbstractListReporter so the live status panel
stops re-rendering while the cancel confirmation prompt is on screen, and
resumes when the prompt closes.
- onCancelPromptShown clears the panel and raises the flag.
- onCancelPromptHidden lowers the flag and repaints; runs on both confirm
and decline so live updates resume during the cancellation drain.
- _printSummary and onStreamLogs short-circuit while the flag is up.
- _clearSummary becomes a no-op when there is nothing to erase, preserving
the clear/print invariant if a guard skips the paired _printSummary.
* fix(cli/runner): close SIGINT race and add cancel feedback
PQueue.pause() does not interrupt an in-flight handler. A CHECK_INPROGRESS
handler that started before SIGINT could still emit and trigger a panel
re-render right under the cancel prompt, producing spurious project-tree
output.
- Emit CANCEL_PROMPT_SHOWN before queue.pause(); EventEmitter.emit is
synchronous so reporters set their flag before any pending handler can
render.
- Emit CANCEL_PROMPT_HIDDEN after the prompt resolves on both confirm and
decline, restoring live updates.
- On confirm, print 'Cancelling test session...' so the user sees feedback
while the backend cancellation completes.
- Always queue.start() after the prompt: drains MQTT results so
allChecksFinished can resolve on confirm, resumes normal flow on decline.
- Use printLn instead of raw process.stdout.write to match the rest of the
CLI.
* feat(cli/commands): forward cancel prompt events to reporters
Wires the runner's CANCEL_PROMPT_SHOWN and CANCEL_PROMPT_HIDDEN events to
each reporter for the test, pw-test, and trigger commands.
* test(cli/reporters): cover AbstractListReporter cancellation lifecycle
Covers happy paths (clear-then-repaint, normal render before/after the
prompt) and edge cases (empty _clearString no-op, double prompt-shown
idempotency, prompt-hidden without prior prompt-shown, suppression of
_printSummary and onStreamLogs while cancelling).
* fix(cli/runner): drain buffered ^C before opening cancel prompt
* fix: tests
* feat: rebuild
* fix: sigint handling
* fix: flip detached
* fix: skip question for non terminal
* fix: tests
* fix: prompt
* fix: tests
* chore: remove unused cancel-prompt e2e test and fixture
The fixture doesn't import any project code — it only tests prompts
library behavior, which is already covered by the abstract-check-runner
unit tests.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: add .js suffixes to ESM imports in new test files
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* ci: trigger CI after rebase onto next/v8
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: replace interactive cancel prompt with immediate cancellation
The interactive confirmation prompt on Ctrl+C broke on Windows due to
cmd.exe's competing "Terminate batch job" dialog and the `when-exit`
transitive dependency (conf → atomically → when-exit) preempting the
SIGINT handler.
Now Ctrl+C always cancels immediately and suggests --detach for keeping
checks running. Uses prependListener to run before when-exit's handler.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: always cancel immediately on SIGINT instead of showing interactive prompt
The interactive confirmation prompt on Ctrl+C conflicted with cmd.exe's
"Terminate batch job" prompt on Windows, and a transitive dependency
(when-exit via conf → atomically) preempted the SIGINT handler by
re-raising SIGINT, which is a hard kill on Windows.
Replace the prompt with immediate cancellation: first Ctrl+C emits
CANCEL and shows a message suggesting --detach, second Ctrl+C force
exits. The cancellation message is rendered by the reporter as part of
its live summary panel so it doesn't get overwritten. Pre-existing
SIGINT listeners are removed during the run and restored afterward to
prevent when-exit from terminating the process.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* feat: show detach message on SIGINT when --detach is used
Ctrl+C with --detach now shows "Checks will continue running in the
cloud." before exiting, instead of silently terminating.
Also refactors the SIGINT handler setup: both detach and non-detach
modes share the same when-exit listener removal and registration code,
with the mode-specific behavior inside the handler body.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: handle 403 from /v1/cancel gracefully
The cancel endpoint returns 403 when the account doesn't have the
feature flag set. Silently ignore it since cancellation is best-effort.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: update cancel REST client for resource-oriented endpoints
The cancel API moved from a single POST /v1/cancel with a discriminated
union body to resource-oriented endpoints:
- POST /v1/test-sessions/{testSessionId}/cancel
- POST /v1/check-sessions/{checkSessionId}/cancel
The body is now optional and accepts { sequenceId?: string[] } to cancel
specific sequences. Omitting it cancels all in-progress sequences.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Simo Kinnunen <simo@checklyhq.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Drop @oclif/plugin-not-found entry removed in the ESM migration. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…unCheckly Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ectory (#1309) * fix(cli)!: resolve include patterns relative to Playwright config directory Include glob patterns in bundlePlayWrightProject were resolved relative to Session.basePath (workspace root) instead of the Playwright config file's directory. This caused patterns like 'fixtures/**' to look in the wrong location when the Playwright config lived in a subdirectory. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * test(cli): add tests for include pattern resolution relative to Playwright config Update getAutoIncludes unit tests for the new globCwd parameter and add coverage for subdirectory scenarios. Add integration test with a fixture where the Playwright config lives in a subdirectory to verify include patterns resolve correctly. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * test(cli): add integration tests for pnpm patches auto-inclusion in bundles Verify that pnpm patch files are auto-included in Playwright check bundles for both the root case and the subdirectory case where the Playwright config lives in a nested directory. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * test(cli): add integration test for absolute paths in include Verify that absolute file paths in the PlaywrightCheck include property are supported. Uses a .check.ts file with import.meta.url to compute the absolute path dynamically at runtime. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): detect explicit include of ignored dirs regardless of path form The skipIf checks for default node_modules and .git ignore patterns only matched patterns starting with the directory name. This missed patterns using parent traversal or absolute paths. Use a helper that checks for the directory name as a path segment anywhere in the pattern. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(cli): normalize include patterns to forward slashes for glob on Windows path.join produces backslash paths on Windows, but glob requires forward slashes. Normalize patterns in findFilesWithPattern before passing them to glob. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* docs: add CLAUDE.md for Claude Code onboarding Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs: add /new-monitor and /new-alert-channel custom commands Step-by-step checklists for adding new construct types, covering all files that need changes (core construct, codegen, registry, reporters, tests, examples). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…1313) actionSuccess() already emits a trailing blank line after each progress step. The reporters' onBegin duplicated this with beforeLnCount=1, producing two blank lines instead of one. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Release branch for CLI v8.0.0. Merge commit (do not squash) to preserve individual commit history for changelog generation.
Breaking changes
--recordtotrueontestandtriggercommands (feat(cli)!: default --record to true on test and trigger commands #1306)includepatterns relative to Playwright config directory (fix(cli)!: resolve include patterns relative to Playwright config directory #1309)Features
.envfile for CLI configuration (feat(cli): auto-load .env file for CLI configuration #1307)Fixes
includepatterns relative to Playwright config directory (fix(cli)!: resolve include patterns relative to Playwright config directory #1309)