A launcher masks the icon it puts on the home screen, and the install manifest advertised the bare whale favicon: an SVG mark drawn edge to edge on a transparent canvas, with no tile and no background of its own. Handed to a mask it loses its fins, and iOS reads no manifest icon at all, so an installed Web App showed a generic tile. Ship four rasters rendered from the desktop application tile: 192px and 512px `any`, a 512px `maskable` whose artwork is scaled into the circle a platform mask is guaranteed to show, and a 180px `apple-touch-icon`. Request `display: standalone` so the phone keeps its status bar, and declare `png` in the static MIME table so a launcher receives an image. Agent Note: .agents/notes/implemented/feature/2026-10-13-web-install-icons-and-launch-display.md
77 lines
3.1 KiB
JSON
77 lines
3.1 KiB
JSON
{
|
|
"name": "@deepseek-ai/dsh-web-frontend",
|
|
"description": "Web application entry: vite build over the @deepseek-ai/dsh-client-web shell library; dist/ served by apps/cli's dsh web",
|
|
"version": "0.2.1-rc.2",
|
|
"publishConfig": {
|
|
"access": "public"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/deepseek-ai/deepseek-harness.git",
|
|
"directory": "apps/web"
|
|
},
|
|
"type": "module",
|
|
"exports": {
|
|
"./dist/*": "./dist/*",
|
|
"./package.json": "./package.json"
|
|
},
|
|
"files": [
|
|
"dist",
|
|
"!dist/**/*.map",
|
|
"!dist/preview.html",
|
|
"!dist/preview"
|
|
],
|
|
"scripts": {
|
|
"build": "vite build",
|
|
"dev": "vite",
|
|
"watch": "vite build --watch --no-emptyOutDir",
|
|
"build:preview": "pnpm --filter @deepseek-ai/dsh-experimental-webworker-runtime exec tsdown && pnpm --filter @deepseek-ai/dsh-experimental-webworker-packer exec tsdown && vite build && dsh-pack-vfs-image --out dist/preview/vfs-image.tar.gz",
|
|
"serve:preview": "http-server dist -a 0.0.0.0 -p 4173 -c-1",
|
|
"render:app-icons": "tsx scripts/render-app-icons.ts"
|
|
},
|
|
"license": "MIT",
|
|
"devDependencies": {
|
|
"@deepseek-ai/cordis-plugin-group": "workspace:~",
|
|
"@deepseek-ai/dsh-client-modules": "workspace:*",
|
|
"@deepseek-ai/dsh-client-store": "workspace:*",
|
|
"@deepseek-ai/dsh-llm-mock-server": "workspace:*",
|
|
"@deepseek-ai/dsh-client-test-runtime": "workspace:*",
|
|
"@deepseek-ai/dsh-client-ui-deliverables": "workspace:*",
|
|
"@deepseek-ai/dsh-client-ui-dockkit": "workspace:*",
|
|
"@deepseek-ai/dsh-client-ui-primitives": "workspace:*",
|
|
"@deepseek-ai/dsh-client-ui-slots": "workspace:*",
|
|
"@deepseek-ai/dsh-client-web": "workspace:*",
|
|
"@deepseek-ai/dsh-cmdline": "workspace:*",
|
|
"@deepseek-ai/dsh-pwsh-local": "workspace:*",
|
|
"@deepseek-ai/dsh-experimental-agent-team": "workspace:*",
|
|
"@deepseek-ai/dsh-experimental-webworker-packer": "workspace:*",
|
|
"@deepseek-ai/dsh-experimental-webworker-runtime": "workspace:*",
|
|
"@deepseek-ai/dsh-remote-mock": "workspace:*",
|
|
"@deepseek-ai/dsh-session-projection-cache": "workspace:*",
|
|
"@deepseek-ai/dsh-util-values": "workspace:*",
|
|
"@types/node": "^22.20.1",
|
|
"@types/ws": "8.18.1",
|
|
"@vitejs/plugin-react": "^4.7.0",
|
|
"http-server": "^14.1.1",
|
|
"fflate": "^0.8.2",
|
|
"playwright": "^1.49.0",
|
|
"react": "^18.2.0",
|
|
"react-dom": "^18.2.0",
|
|
"sharp": "0.35.5",
|
|
"typescript": "^6.0.3",
|
|
"vite": "^6.4.3",
|
|
"vitest": "^4.1.11",
|
|
"ws": "8.21.3",
|
|
"@deepseek-ai/dsh-client-ui-theme": "workspace:*",
|
|
"@deepseek-ai/dsh-launch-environment": "workspace:*",
|
|
"@deepseek-ai/dsh-workspace-changes": "workspace:*",
|
|
"@deepseek-ai/dsh-subprocess-local": "workspace:*",
|
|
"@deepseek-ai/dsh-experimental-auto-review": "workspace:*",
|
|
"@deepseek-ai/dsh-experimental-speech-to-text": "workspace:*",
|
|
"@deepseek-ai/dsh-experimental-voice-input-bundle": "workspace:*",
|
|
"@deepseek-ai/dsh-experimental-cot-translation-bundle": "workspace:*",
|
|
"@deepseek-ai/dsh-experimental-worktree": "workspace:*",
|
|
"@deepseek-ai/dsh-experimental-plugin-market-bundle": "workspace:*"
|
|
}
|
|
}
|