Yuk node'lari + mobil akkaunt boshqaruvi
Tavsif
Texnik ko'rsatma
Agent uchun
Qabul mezonlari (DoD)
4 / 4 bajarildi
-
Node biriktirilmagan mijozda "tayyor emas" sababi aniq matn bilan ko'rinadi
qa-ep-08-t09-s03 · 1 о аввал
-
Akkaunt yaratilgach parol bir marta ko'rsatiladi va sahifa yangilangach qayta ko'rsatilmaydi
qa-ep-08-t09-s03 · 1 о аввал
-
Akkauntsiz mijoz kartochkasi xatosiz ochiladi
qa-ep-08-t09-s03 · 1 о аввал
-
`customer_account.manage` / `customer_organization.manage` huquqisiz tugmalar ko'rinmaydi
qa-ep-08-t09-s03 · 1 о аввал
O'zgargan fayllar
20 ta
-
modified
src/shared/layout/navigation.ts -
modified
src/router/index.ts -
modified
src/modules/customers/views/__tests__/CustomerListView.spec.ts -
modified
src/modules/customers/views/CustomerListView.vue -
modified
src/modules/customers/__tests__/access.spec.ts -
modified
src/modules/customers/types.ts -
modified
src/modules/customers/api/__tests__/customer-credentials.api.spec.ts -
modified
src/modules/customers/api/__tests__/customer-organizations.api.spec.ts -
modified
src/modules/customers/api/customer-credentials-errors.ts -
modified
src/modules/customers/api/customer-credentials.api.ts -
modified
src/modules/customers/api/customer-organization-errors.ts -
modified
src/modules/customers/api/customer-organizations.api.ts -
modified
src/modules/customers/components/__tests__/CustomerOrganizationAddDialog.spec.ts -
modified
src/modules/customers/components/CustomerOrganizationAddDialog.vue -
modified
src/modules/customers/components/__tests__/CustomerCredentialsGrantDialog.spec.ts -
modified
src/modules/customers/components/CustomerCredentialsGrantDialog.vue -
modified
src/modules/customers/components/__tests__/CustomerAccountPanel.spec.ts -
modified
src/modules/customers/components/CustomerAccountPanel.vue -
modified
src/modules/customers/views/__tests__/CustomerOrganizationsView.spec.ts -
modified
src/modules/customers/views/CustomerOrganizationsView.vue
Izoh qoldirish
Tarix
18 yozuv
-
✎
finalize-ep-08 yangiladi
Yangilandi: pr_url
-
✎
worker-ep-08-t09 yangiladi
Yangilandi: branch, commit_sha
-
⇄
qa-ep-08-t09-s03 statusni o'zgartirdi Review → Bajarildi
-
💬
qa-ep-08-t09-s03 izoh qoldirdi
QA (qa-EP-08-T09-S03) — a123f63 izolyatsiyalangan worktree'da tekshirildi. VERDIKT: done. Testlar (bloklovchi, tor doira `npx vitest run src/modules/customers`): 22 fayl / 230 test yashil (S02 bazisi 167 -> +63 yangi test). MUTATSIYA TEKSHIRUVI — 9 mutant, 8 O'LDI / 1 tirik: 1. CustomerAccountPanel v-can customer_account.manage -> customer_organization.manage => O'LDI (6 assert yiqildi) 2. CustomerOrganizationsView v-can customer_organization.manage -> customer_account.manage => O'LDI (2 assert) 3. router/index.ts:381 meta.permission -> null => O'LDI (2 assert, shu jumladan authGuard IJROSI, faqat meta e'loni emas — S02 nuqsoni takrorlanmagan) 4. onGranted'da parolni sessionStorage.setItem bilan yozish => O'LDI (Storage.prototype spy ushladi) 5. "tayyor emas" xabari v-if="false" => O'LDI (4 assert) 6. node ro'yxati .slice().reverse() => O'LDI (organization_id asc tartibi assert qilingan) 7a. link-rejim canSubmit -> true => O'LDI; 7b. parol min 8 -> min 1 => O'LDI 9. AC3531 undefined guard (props.userId ?? null -> as number) => O'LDI Mezonlar (har biri alohida, kod darajasida): - AC3529 ✓ CustomerOrganizationsView.vue:93-107 — sabab UCH holatga ajratilgan (nofaol / node yo'q / faol shartnoma yo'q), aniq matn; bo'sh EmptyState'ga QO'SHIMCHA banner. sale_ready backend natijasi, frontendda qayta hisoblanmaydi. - AC3530 ✓ Parol javobda YO'Q (types.ts CustomerCredentialsResponse'da password maydoni yo'q, kontraktga mos); faqat CustomerAccountPanel.vue:65 `lastGranted` ref'ida; localStorage/sessionStorage/cookie/URL/pinia-persist'ga YOZILMAYDI (grep + Storage spy testi). Yangi mount'da banner yo'q. - AC3531 ✓ userId null VA undefined ikkalasi ham sinalgan (CustomerAccountPanel.spec.ts:52,61) + view darajasida integratsiya (spec:343). 'undefined' matni chiqmasligi assert qilingan. - AC3532 ✓ Ikki rule MUSTAQIL sinalgan — fixture'da HECH QACHON birga berilmagan: faqat org.manage -> akkaunt tugmalari display:none; faqat account.manage -> node tugmalari display:none (har ikki yo'nalish). access.spec.ts'da route guard uchun customer-contracts/customer-documents naqshidagi blok bor, salbiy holatda faqat customer_account.manage beriladi. Kontrakt muvofiqligi (customers.yaml 779-960): yo'llar/metodlar/status kodlari mos; 409 CUSTOMER_ORGANIZATION_EXISTS, ORGANIZATION_INACTIVE, CUSTOMER_ALREADY_HAS_CREDENTIALS, USER_ALREADY_LINKED, USER_NOT_CUSTOMER, BUSINESS_CONFLICT va 404 lar — hammasi testda qamralgan. DELETE credentials -> users O'CHIRILMAYDI (faqat bog'lanish uziladi). Yaratish XOR bog'lash: UI rejim almashganda qarama-qarshi maydonlarni tozalaydi, POST tanasi toEqual bilan qat'iy assert qilingan (aralash so'rov chiqmaydi). Xato joylashtirish status-agnostik (fields[] mavjudligiga qaraydi, status kodiga emas); statik maydon ro'yxati yo'q — reyestr (customer-form-error-slots) ishlatilgan. Fixture xilma-xilligi TEKSHIRILDI: organization_id 2/3/5/11, nomlar Andijon/Buxoro/Qarshi/Toshkent, user_id null/undefined/42/55/77/88, user_status invited/active, sale_ready true/false, active true/false, organization_active true/false. Qotib qolgan bir xil qiymat topilmadi. ⚠️ TIRIK MUTANT (mezonlarga tegmaydi, QARZ sifatida qayd etaman — bargni bloklamaydi): CustomerCredentialsGrantDialog.vue:125-131 `placeFieldError` ichidagi `unplaced.push(message)` fallback'ini butunlay o'chirsam 230 test YASHIL qoladi — ya'ni "reyestrga tushmagan maydon xatosi jim yo'qolmaydi" da'vosini HECH BIR test qo'riqlamaydi. Kodning O'ZI TO'G'RI: probe test bilan tasdiqladim — CREATE rejimida server fields[].field="user_id" (cross-field 400) yoki noma'lum maydon ("captcha") qaytarsa xabar umumiy konteynerda KO'RINADI, yo'qolmaydi (probe fayli o'chirildi). Mavjud cross-field testi (spec:204) faqat LINK rejimida, ya'ni slot MAVJUD bo'lgan holatda ishlaydi. Tavsiya (keyingi bargda yoki texnik qarz): CREATE rejimida fields[].field="user_id" keladigan holat uchun bitta test qo'shilsin. Worktree /tmp/qa-EP-08-T09-S03 o'chirildi; asosiy daraxtga tegilmadi (git diff bo'sh, .orig qoldig'i yo'q, `grep -rn MUTANT src/` bo'sh).
-
✓
qa-ep-08-t09-s03 qabul mezonini belgiladi
✓ `customer_account.manage` / `customer_organization.manage` huquqisiz tugmalar ko'rinmaydi
-
✓
qa-ep-08-t09-s03 qabul mezonini belgiladi
✓ Akkauntsiz mijoz kartochkasi xatosiz ochiladi
-
✓
qa-ep-08-t09-s03 qabul mezonini belgiladi
✓ Akkaunt yaratilgach parol bir marta ko'rsatiladi va sahifa yangilangach qayta ko'rsatilmaydi
-
✓
qa-ep-08-t09-s03 qabul mezonini belgiladi
✓ Node biriktirilmagan mijozda "tayyor emas" sababi aniq matn bilan ko'rinadi
-
⇄
coder-ep-08-t09-s03 statusni o'zgartirdi Ishlanyapti → Review
-
💬
coder-ep-08-t09-s03 izoh qoldirdi
EP-08-T09-S03 tayyor: /mijozlar/:id/filiallar (customer-organizations) sahifasi qo'shildi — org-node biriktirish/olib tashlash (customer_organization.manage) + mobil akkaunt yaratish/bog'lash/uzish (customer_account.manage). AC3529 uchun customer.sale_ready asosida aniq sabab (node yo'q / mijoz nofaol / faol shartnoma yo'q). AC3530 — parol faqat xotirada, hech qanday storage'ga yozilmaydi (test bilan tasdiqlangan). AC3531/AC3532 alohida testlar bilan qamrab olingan. vue-tsc/eslint toza; vitest src/modules/customers: 230/230 yashil (bazis 167 + yangi 63). Commit a123f6335639040c50b8bb3e964c4b85fef0fac2.
-
✓
coder-ep-08-t09-s03 qabul mezonini belgiladi
✓ `customer_account.manage` / `customer_organization.manage` huquqisiz tugmalar ko'rinmaydi
-
✓
coder-ep-08-t09-s03 qabul mezonini belgiladi
✓ Akkauntsiz mijoz kartochkasi xatosiz ochiladi
-
✓
coder-ep-08-t09-s03 qabul mezonini belgiladi
✓ Akkaunt yaratilgach parol bir marta ko'rsatiladi va sahifa yangilangach qayta ko'rsatilmaydi
-
✓
coder-ep-08-t09-s03 qabul mezonini belgiladi
✓ Node biriktirilmagan mijozda "tayyor emas" sababi aniq matn bilan ko'rinadi
-
📄
coder-ep-08-t09-s03 fayllarni qayd etdi
20 ta fayl qayd etildi
-
⇄
coder-ep-08-t09-s03 statusni o'zgartirdi Backlog → Ishlanyapti
Agent ishni boshladi
-
⚑
coder-ep-08-t09-s03 ishga oldi
-
✦
pm-agent yaratdi
Yuk node'lari + mobil akkaunt boshqaruvi
Ma'lumot
- Agent
- coder-ep-08-t09-s03
- Olingan
- 1 о аввал
- Boshlandi
- 27.08.2026 04:54
- Tugadi
- 27.08.2026 05:11
- Baho
- 3 soat
- Spec
- erp/docs/modules/05_customers.md#8
- Branch
- feat/EP-08-erpbom-web
- Commit
- a123f6335639
Bog'liqliklar
Bundan oldin tugashi kerak
Yo'q — bu ish mustaqil.
Agent uchun
Bu ishni AI agent quyidagicha oladi:
curl -s -X POST https://pmboard.ferp.uz/api/items/EP-08-T09-S03/claim \ -H "X-Agent: backend-dev-1"
Tugatgach:
curl -s -X POST https://pmboard.ferp.uz/api/items/EP-08-T09-S03/status \
-H "X-Agent: backend-dev-1" \
-H "Content-Type: application/json" \
-d '{"status":"review","note":"..."}'