Files
qwen-code/packages/web-shell/package.json
T
易良andQwen-Coder e596a410bb feat(web-shell): publish the package with the cli release (#12178)
* feat(web-shell): publish the package with the cli release

The release workflow published the cli and the channel packages but never
@qwen-code/web-shell, so the npm artifact only moved when someone published
it by hand.

Add the package to the release step and record its repository so npm accepts
the provenance attestation the workflow requests.

* fix(release): probe @qwen-code/web-shell in the push-time version guard

publish_package 'packages/web-shell' made the package CI-published, but
PUBLISHED_PACKAGES — the sole input to assertVersionUnreleased — still
listed only twelve names. A release shipped only as @qwen-code/web-shell
therefore read as unshipped: the version-collision bump never fired and
the force-push guard could proceed over an already-published version.

Widen the guard list, its pin in get-release-version.test.js, and
generalise "keeps the publish allowlist and the guard package set in
step" so every bare publish_package '<dir>' target is resolved through
the package.json it publishes. The channel-loop comparison alone could
not see this addition, which is how it shipped unguarded.

Co-authored-by: Qwen-Coder <[email protected]>
Patrol-Run: qwen-pr-closeout/jmu6tb0j73c

* test(release): simplify publish guard coverage

* fix(release): publish web-shell after the channels

Review on #12178 (R1-3): the step runs under `set -eo pipefail` and every
publish_package call is bare, so inserting the newest name ahead of the
channel packages makes a failure of its first CI publish strand all of
them. Publish it last instead.

Also append the new entry to PUBLISHED_PACKAGES rather than inserting it
after audio-capture: the version-guard tests read that array by index, so
its position is load-bearing. Record that in the pinned assertion.

---------

Co-authored-by: Qwen-Coder <[email protected]>
2026-09-18 12:17:07 +00:00

108 lines
3.7 KiB
JSON

{
"name": "@qwen-code/web-shell",
"version": "0.24.0",
"repository": {
"type": "git",
"url": "git+https://github.com/QwenLM/qwen-code.git",
"directory": "packages/web-shell"
},
"type": "module",
"main": "./dist/index.js",
"module": "./dist/index.js",
"types": "./dist/types/index.d.ts",
"exports": {
".": {
"types": "./dist/types/index.d.ts",
"import": "./dist/index.js"
},
"./daemon-react-sdk": {
"types": "./dist/types/daemon-react-sdk.d.ts",
"import": "./dist/daemon-react-sdk.js"
},
"./transcript": {
"types": "./dist/types/transcript.d.ts",
"import": "./dist/transcript.js"
}
},
"files": [
"dist/*.js",
"dist/types"
],
"scripts": {
"dev": "vite",
"build": "vite build && vite build --config vite.lib.config.ts && vite build --config vite.lib.config.ts --mode transcript && tsc -p tsconfig.lib.json",
"lint": "cd ../.. && eslint packages/web-shell --ext .ts,.tsx",
"lint:fix": "cd ../.. && eslint packages/web-shell --ext .ts,.tsx --fix",
"format:check": "cd ../.. && prettier --experimental-cli --check packages/web-shell",
"typecheck": "tsc -p tsconfig.json --noEmit",
"test": "vitest run --config vitest.config.ts",
"test:ci": "vitest run --config vitest.config.ts",
"test:coverage": "vitest run --config vitest.config.ts --coverage",
"test:e2e:smoke": "playwright test --config playwright.config.ts --grep @smoke",
"test:e2e:perf": "cross-env WEB_SHELL_PERF=1 playwright test --config playwright.config.ts --grep @perf --project=chromium",
"test:e2e": "playwright test --config playwright.config.ts",
"test:e2e:visuals": "playwright test --config playwright.visuals.config.ts",
"test:e2e:report": "playwright show-report client/e2e/playwright-report",
"verify": "npm run lint && npm run format:check && npm run typecheck && npm run test:ci"
},
"dependencies": {
"@codemirror/autocomplete": "^6.18.0",
"@codemirror/commands": "^6.7.0",
"@codemirror/language": "^6.10.0",
"@codemirror/merge": "^6.12.2",
"@codemirror/state": "^6.5.0",
"@codemirror/view": "^6.35.0",
"@datafe-open/markdown-chart": "^0.1.12",
"@datafe-open/markdown-chart-echarts": "^0.1.12",
"@datafe-open/markdown-chart-react": "^0.1.12",
"@modelcontextprotocol/ext-apps": "^1.7.5",
"@tanstack/react-table": "^8.21.3",
"@tanstack/react-virtual": "^3.13.26",
"@xterm/addon-fit": "^0.11.0",
"@xterm/xterm": "^6.0.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"codemirror": "^6.0.0",
"echarts": "^6.0.0",
"fzf": "^0.5.2",
"katex": "^0.16.47",
"lucide-react": "^1.24.0",
"mermaid": "^11.15.0",
"radix-ui": "^1.6.2",
"react-markdown": "^9.0.0",
"rehype-katex": "^7.0.1",
"remark-cjk-friendly": "^2.3.1",
"remark-gfm": "^4.0.0",
"remark-math": "^6.0.0",
"shiki": "^1.29.2",
"tailwind-merge": "^3.6.0",
"vaul": "^1.1.2"
},
"peerDependencies": {
"@qwen-code/sdk": ">=0.1.8",
"react": "^18.0.0 || ^19.0.0",
"react-dom": "^18.0.0 || ^19.0.0"
},
"devDependencies": {
"@playwright/test": "1.61.1",
"@qwen-code/sdk": "file:../sdk-typescript",
"@tailwindcss/vite": "^4.3.2",
"@types/hast": "^3.0.5",
"@types/node": "^22.0.0",
"@types/react": "^19.2.0",
"@types/react-dom": "^19.0.0",
"@vitejs/plugin-react": "^4.2.0",
"jsdom": "^26.1.0",
"postcss": "^8.5.17",
"postcss-selector-parser": "^7.1.4",
"react": "^19.2.0",
"react-dom": "^19.0.0",
"shadcn": "^4.13.0",
"tailwindcss": "^4.3.2",
"tw-animate-css": "^1.4.0",
"typescript": "^5.3.3",
"vite": "^5.0.0",
"vitest": "^3.2.4"
}
}