Users routinely use the VIN-only /dashboard/search box to look for a part by name (e.g. "Cam düğme") or fiddle with search/history and rage-click out of affordance confusion — while nothing is actually broken. The generic ux_friction / frustrated_session tags turned these pure-rage sessions into insights (noise; ~40 of the first 67 open insights were exactly this, all dismissed by the founder). apps/worker/src/lib/tagger.ts: when a session used the search box (search_input_focused) but carries NO concrete failure (errorCount=0, network5xxCount=0, no vin_decode_failed, search_input_validation_failed<3, no payment_initiated/failed, no checkout_started), do not emit the generic ux_friction / frustrated_session tags. With no other actionable tag the session becomes tag-less and tag-sessions discards it → no compress / analyze / insight. Scoped narrowly to search-box sessions on purpose, to avoid hiding genuine parts/category bugs. Every concrete signal stays actionable: JS errors (bug_suspected), 5xx (server_error_impact), payment friction, VIN upstream provider failures, and ≥3 client validation failures (search_validation_friction). Smoke: apps/worker/src/lib/tagger.smoke.ts (12/12) covers the misuse case plus six must-keep cases. tsc --noEmit clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
24 lines
536 B
JSON
24 lines
536 B
JSON
{
|
|
"name": "@panel/worker",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "tsx watch src/index.ts",
|
|
"start": "tsx src/index.ts",
|
|
"typecheck": "tsc --noEmit",
|
|
"test": "tsx src/lib/dedup.smoke.ts && tsx src/lib/tagger.smoke.ts"
|
|
},
|
|
"dependencies": {
|
|
"@panel/web": "workspace:*",
|
|
"@prisma/client": "^5.22.0",
|
|
"bullmq": "^5.34.0",
|
|
"ioredis": "^5.4.1",
|
|
"minio": "^8.0.6",
|
|
"tsx": "^4.19.2"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^22.0.0",
|
|
"typescript": "^5.6.0"
|
|
}
|
|
}
|