Skip to content

feat(FR-2875,FR-2876): introduce @smoke tag convention and scaffold webui-smoke-cli package#7391

Open
yomybaby wants to merge 2 commits into
05-12-chore_fr-2872_add_webui_smoke_cli_dev_planfrom
05-12-feat_fr-2875_fr-2876_introduce_smoke_tag_convention_and_scaffold_webui-smoke-cli_package
Open

feat(FR-2875,FR-2876): introduce @smoke tag convention and scaffold webui-smoke-cli package#7391
yomybaby wants to merge 2 commits into
05-12-chore_fr-2872_add_webui_smoke_cli_dev_planfrom
05-12-feat_fr-2875_fr-2876_introduce_smoke_tag_convention_and_scaffold_webui-smoke-cli_package

Conversation

@yomybaby
Copy link
Copy Markdown
Member

@yomybaby yomybaby commented May 12, 2026

Resolves #7379(FR-2875), #7380(FR-2876)

Part of Epic FR-2871 — WebUI Smoke CLI.

Summary

  • Introduce @smoke, @smoke-admin, @smoke-user, @smoke-any tag convention in e2e/E2E-TEST-NAMING-GUIDELINES.md with rules (single-account, self-cleanup, <10 min, no visual regression, no outbound deps)
  • Tag 5 existing specs covering login, dashboard, session lifecycle, vfolder file-create, and admin agent list
  • Scaffold packages/backend.ai-webui-smoke-cli/ workspace package with commander-based CLI: list and version working; run is a stub that prints "Not yet implemented. Coming in FR-2877." and exits 2

Tagged specs

Spec Tags added
e2e/auth/login.spec.ts (Before Login + Login describes) @smoke-any (added; existing @smoke kept)
e2e/dashboard/dashboard.spec.ts @smoke, @smoke-any
e2e/session/session-lifecycle.spec.ts @smoke, @smoke-user
e2e/vfolder/file-create.spec.ts (write-path describe) @smoke, @smoke-user
e2e/agent/agent.spec.ts @smoke, @smoke-admin

Existing tags (@critical, @regression, @functional, etc.) were preserved — smoke tags are additive metadata.

Package surface

packages/backend.ai-webui-smoke-cli/
├── package.json        # private workspace pkg, bin: bai-smoke
├── tsconfig.json       # ES2022 / NodeNext, outDir dist/
├── README.md           # stub (operator README ships in FR-2883)
├── bin/bai-smoke.cjs   # shim → dist/cli.js
└── src/
    ├── cli.ts          # commander; list/version/run subcommands
    ├── catalog.ts      # smoke catalog mirroring FR-2875 tags
    └── version.ts      # CLI version + WEBUI_SHA placeholder

run declares the full flag surface (--endpoint, --email, --password, --role, --include, --exclude, --pages, --workers, --timeout, --output, --headed, --insecure-tls, etc.) so --help documents the eventual API — every flag is a no-op at this stage.

Out of scope

  • Actual Playwright runner + playwright.smoke.config.tsFR-2877 (next PR in stack)
  • --password-stdin plumbing, role auto-detection → FR-2878
  • Chromium bundling / air-gap / SEA binary → FR-2881 / FR-2882
  • Operator README (EN/KO) → FR-2883

TODOs left in code for FR-2877

  • src/version.ts — inject real WebUI git SHA at build time
  • src/version.ts — read Playwright version once the runner depends on it

Verification

  • pnpm install — picks up the new workspace via packages/* glob
  • pnpm --filter backend.ai-webui-smoke-cli build — PASS
  • pnpm --filter backend.ai-webui-smoke-cli exec bai-smoke list — prints 5 categories
  • pnpm --filter backend.ai-webui-smoke-cli exec bai-smoke version — prints 0.1.0-alpha.0, node, platform
  • pnpm --filter backend.ai-webui-smoke-cli exec bai-smoke run — prints stub message, exits 2
  • bash scripts/verify.sh — Relay/Lint/Format PASS. TypeScript FAIL with pre-existing errors in react/src/components/{ImportArtifactRevisionToFolderModal,ModelCardDeployModal,MyKeypairManagementModal,PurgeUsersModal,ScanArtifactModelsFromHuggingFaceModal,VFolderDeployModal}.tsx, react/src/hooks/useDeploymentLauncher.ts, react/src/pages/{DeploymentLauncherPage,ReservoirArtifactDetailPage}.tsx. Confirmed these files exist unchanged on main and are not touched by this PR.

🤖 Generated with Claude Code

Copy link
Copy Markdown
Member Author

yomybaby commented May 12, 2026

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more


How to use the Graphite Merge Queue

Add either label to this PR to merge it via the merge queue:

  • flow:merge-queue - adds this PR to the back of the merge queue
  • flow:hotfix - for urgent changes, fast-track this PR to the front of the merge queue

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has required the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@github-actions github-actions Bot added size:L 100~500 LoC and removed size:XL 500~ LoC labels May 12, 2026
@yomybaby yomybaby marked this pull request as ready for review May 12, 2026 11:50
Copilot AI review requested due to automatic review settings May 12, 2026 11:50
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Introduces a Playwright @smoke* tagging convention for selecting a curated smoke subset of existing E2E specs, and scaffolds a new workspace package (backend.ai-webui-smoke-cli) that can list smoke categories and print version info (with a stubbed run command for future implementation).

Changes:

  • Documented @smoke, @smoke-admin, @smoke-user, @smoke-any, @smoke-extended conventions in e2e/E2E-TEST-NAMING-GUIDELINES.md.
  • Added @smoke* tags to 5 existing E2E specs (auth, dashboard, session lifecycle, vfolder, agent).
  • Added a new packages/backend.ai-webui-smoke-cli/ CLI scaffold (commander-based) with list and version commands, plus a stub run.

Reviewed changes

Copilot reviewed 12 out of 14 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
.gitignore Ignores branch-suffixed pnpm lockfiles.
e2e/E2E-TEST-NAMING-GUIDELINES.md Adds smoke tag taxonomy + rules and updates “Last Updated” date.
e2e/agent/agent.spec.ts Adds @smoke + @smoke-admin tags to agent list suite.
e2e/auth/login.spec.ts Adds @smoke-any tag to smoke-tagged login describes.
e2e/dashboard/dashboard.spec.ts Adds @smoke + role tag to dashboard suite.
e2e/session/session-lifecycle.spec.ts Adds @smoke + role tag to session lifecycle suite.
e2e/vfolder/file-create.spec.ts Adds @smoke + @smoke-user tags to vfolder file-create suite.
packages/backend.ai-webui-smoke-cli/bin/bai-smoke.cjs Adds CJS shim entrypoint that loads compiled ESM CLI.
packages/backend.ai-webui-smoke-cli/package.json Adds new private workspace package metadata, bin, and build scripts.
packages/backend.ai-webui-smoke-cli/README.md Adds brief package intro and spec link.
packages/backend.ai-webui-smoke-cli/src/catalog.ts Adds static smoke category catalog used by bai-smoke list.
packages/backend.ai-webui-smoke-cli/src/cli.ts Implements list and version subcommands; stubs run with full option surface.
packages/backend.ai-webui-smoke-cli/src/version.ts Provides CLI version/name + placeholder WebUI SHA and Playwright version.
packages/backend.ai-webui-smoke-cli/tsconfig.json Adds TypeScript build configuration for the CLI package.

Comment thread e2e/dashboard/dashboard.spec.ts
Comment thread e2e/session/session-lifecycle.spec.ts
Comment thread e2e/auth/login.spec.ts
Comment thread packages/backend.ai-webui-smoke-cli/tsconfig.json
Comment thread e2e/session/session-lifecycle.spec.ts Outdated
Comment thread e2e/E2E-TEST-NAMING-GUIDELINES.md Outdated
Comment thread packages/backend.ai-webui-smoke-cli/src/catalog.ts Outdated
Comment thread packages/backend.ai-webui-smoke-cli/src/catalog.ts Outdated
@yomybaby yomybaby force-pushed the 05-12-feat_fr-2875_fr-2876_introduce_smoke_tag_convention_and_scaffold_webui-smoke-cli_package branch from 3e3d64d to 0819c45 Compare May 12, 2026 12:07
@yomybaby yomybaby force-pushed the 05-12-chore_fr-2872_add_webui_smoke_cli_dev_plan branch from e299fc9 to 6ef24fb Compare May 12, 2026 12:07
@github-actions github-actions Bot added size:XL 500~ LoC and removed size:L 100~500 LoC labels May 12, 2026
@yomybaby yomybaby force-pushed the 05-12-chore_fr-2872_add_webui_smoke_cli_dev_plan branch from 6ef24fb to 39693f0 Compare May 12, 2026 12:15
@yomybaby yomybaby force-pushed the 05-12-feat_fr-2875_fr-2876_introduce_smoke_tag_convention_and_scaffold_webui-smoke-cli_package branch from 0819c45 to 0897166 Compare May 12, 2026 12:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL 500~ LoC

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants