Yangilanish
v1.4.281
2026 M10 19
- Merge feat/47-play-yangilash
- feat(47): do'kon yangilanishi ilova ichida, 2 kundan keyin majburiy
- style(backend): dictionary_service ruff format (pre-push)
- Merge feat/42-shrift-haptika
- feat(42): tizim shrifti 1,0–1,3, yagona haptika moduli, ekran o'quvchi
- docs(55): 55-SPEC TAYYOR — 55.6j prodda, 17 922 maqola, MSA 85,92%, CA 85,37%; README, CLAUDE.md, avtonom yo'riqnoma yopildi
- data(55.6j): audit 52 (0 jiddiy, 4 oddiy) + merge 517 → entries 18 020
- data(55.6j): loan ko'rigi 353 → +10
- data(55.6j): R (3) + H + apply
- data(55.6j): 001-006 G (296) + S + review-sub
- data(55.6j): 007-011 G (221) + S + review-sub
- data(55.6j): saralash yakuni — 537 keep → 11 partiya; 19 900 qaror excluded ga; kitob navbati bo'sh
- data(55.6): saralash 037-039 (keep 22/1500)
- data(55.6): saralash 034-036 (keep 25/1500)
- data(55.6): saralash 031-033 (keep 44/1500)
- data(55.6): extra — avval rad etilgan نسبي، إلحاح olib tashlandi
- data(55.6): saralash 028-030 (keep 36/1500); extra +4
- data(55.6): saralash 022-024 (keep 58/1500); extra +5
- data(55.6): saralash 025-027 (keep 49/1500); extra لكم
- data(55.6): saralash 019-021 (keep 55/1500)
- data(55.6): saralash 016-018 (keep 37/1500)
- data(55.6): saralash 010-012 (keep 74/1500); توراة keep
- data(55.6): saralash 013-015 (keep 29/1500)
- data(55.6): saralash 007-009 (keep 75/1500)
- data(55.6): saralash 004-006 (keep 32/1500)
- data(55.6): saralash 001-003 (keep 74/1500)
- data(55): 2-A — 51 fors-asl so'zda uzbek_loan false (prodda); g-extra qoidasi; jurnal
- chore(55): 1-C — faqat-kitob saralash: skript filtri (2 065 olmoshli shakl), 42 bo'lak, triage prompti, lk55.py; 55.6j tayyorlovi bekor
- data(55.6j): navbat 1000 (faqat-kitob) → 20 partiya
- docs(55): 55.6i jurnali — prodda 17 405; keyingisi 55.6j
- data(55.6i): audit 52 (0 jiddiy, 4 oddiy) + merge 317 → entries 17 503
- data(55.6i): loan ko'rigi 273 → +3
- data(55.6i): R (1) + H + apply
- data(55.6i): 011-015 G (71) + S + review-sub
- data(55.6i): 016-020 G (20) + S + review-sub
- data(55.6i): 001-005 G (128) + S + review-sub
- data(55.6i): 006-010 G (98) + S + review-sub
- data(55.6i): navbat 1000 (faqat-kitob) → 20 partiya
- docs(55): 55.6h jurnali — prodda 17 088; keyingisi 55.6i
- data(55.6h): audit 52 (1 jiddiy: shadda; 3 oddiy) + merge 315 → entries 17 186
- data(55.6h): loan ko'rigi 275 → +9
- data(55.6h): 016-020 R (1) + H + apply
- data(55.6h): 016-020 G (66) + S + review-sub
- data(55.6h): 001-015 R (3) + H + apply
- data(55.6h): 011-015 G (80) + S + review-sub
- data(55.6h): 006-010 G (95) + S + review-sub
- data(55.6h): 001-005 G (74) + S + review-sub
- data(55.6h): navbat 1000 (faqat-kitob) → 20 partiya
- docs(55): 55.6g jurnali — prodda 16 773; keyingisi 55.6h
- data(55.6g): audit 52 (0 jiddiy, 6 oddiy) + merge 377 → entries 16 871
- data(55.6g): loan ko'rigi 303 → +17
- data(55.6g): R (2) + H + apply
- data(55.6g): yana 5 fe'l (تَحَالَفَ…) maqola
- data(55.6g): teskari masdar qoidasi bilan rad etilgan 8 fe'l maqola qilindi (لَانَ، حَسَدَ، اِلْتَهَبَ…)
- chore(55): g-extra — masdar qoidasi bir tomonlama
- data(55.6g): 006-010 G (112) + S + review-sub
- data(55.6g): 016-020 G (39) + S + review-sub
- data(55.6g): 012 translit noqis
- data(55.6g): 011-015 G (82) + S + review-sub
- data(55.6g): 001-005 G (132) + S + review-sub
- data(55.6g): navbat 1000 (faqat-kitob) → 20 partiya
- docs(55): 55.6f jurnali — prodda 16 396, korpusdagi kitob so'zlari tugadi; o'qish havolasi +2
- data(55.6f): audit 52 (0 jiddiy, 1 oddiy) + merge 829 → entries 16 494
- data(55.6f): loan ko'rigi 707 → +12
- data(55.6f): 016-020 R (3) + H + apply
- data(55.6f): 016-020 G (189) + S + review-sub
- data(55.6f): 001-015 R (4) + H + apply
- data(55.6f): 011-015 G (217) + S + review-sub
- data(55.6f): 001-005 G (224) + S + review-sub
- data(55.6f): 006-010 G (199) + S + review-sub
- data(55.6f): navbat 1000 → 20 partiya
- data(55): ض translit 15 ta 55.x yozuvda z → d (prodda)
- docs(55): 55.6e jurnali — prodda 15 567; keyingisi 55.6f
- data(55.6e): audit 52 (0 jiddiy, 1 oddiy) + merge 882 (ichki takror 2 olib tashlandi) → entries 15 665
- data(55.6e): loan ko'rigi 714 → +16
- data(55.6e): 016-020 R (1) + H + apply
- data(55.6e): 016-020 G (221) + S; 001-015 R (3) + H + apply; ض translit → d (5)
- data(55.6e): 011-015 G (215) + S + review-sub
- data(55.6e): 006-010 G (220) + S + review-sub
- data(55.6e): 001-005 G (228) + S + review-sub
- data(55.6e): navbat 1000 → 20 partiya
- docs(55): avtonom yo'riqnoma G qadami tozalandi
- docs(55): 55.6d jurnali — prodda 14 685; g-extra-55.6.txt; keyingisi 55.6e
- data(55.6d): audit 52 (1 jiddiy: odobsiz omograf ko'plik → null) + merge 827 → entries 14 783
- data(55.6d): loan ko'rigi 694 → +20
- data(55.6d): 011-015 R (0) + H + apply
- data(55.6d): 011-015 G (223) + S; مومس، عهر noise
- data(55.6d): R (4) + H + apply 15 partiya
- data(55.6d): 016-020 G (197) + S; طاسة form
- data(55.6d): 006-010 G (203) + S + review-sub
- data(55.6d): 001-005 G (206) + S; لوطي noise
- data(55.6d): navbat 1000 → 20 partiya
- docs(55): 55.6c jurnali — prodda 13 858, MSA 85,83%, CA 85,21%; keyingisi 55.6d
- data(55.6c): audit 52 (0 jiddiy, 4 oddiy) + kitobiy loan 7 → false + merge 902 → entries 13 956
- data(55.6c): R 016-020 + H + apply; loan ko'rigi 668 → +2
- data(55.6c): 016-020 G (215) + S; 001-015 R (6) + H + apply
- data(55.6c): 011-015 G (240) + S toza + review-sub
- docs(55): sub-agent chegarasi 2 ta (Muhammad 2026-10-17)
- data(55.6c): 006-010 G (218) + S toza + review-sub
- data(55.6c): 001-005 G (229) + S toza + review-sub
- data(55.6c): navbat 1000 → 20 partiya
- docs(55): 55.6b jurnali — prodda 12 956, MSA 85,79%, CA 85,07%; keyingisi 55.6c
- data(55.6b): audit 52 (0 jiddiy, 3 oddiy tuzatildi) + merge 940 → entries 13 054
- data(55.6b): loan ko'rigi 611 → +7
- data(55.6b): R (9) + H qo'lda + apply — 940 maqola; قحبة noise
- data(55.6b): 016-020 G (232) + S toza + review-sub
- data(55.6b): 011-015 G (245) + S toza + review-sub
- data(55.6b): 006-010 G (231) + S toza + review-sub
- data(55.6b): 001-005 G (240, 11 rad) + S toza + review-sub; to'xtash nuqtasi 55-avtonom-davom.md da
- docs(55): avtonom «davom et» yo'riqnomasi (55-avtonom-davom.md) + CLAUDE.md kirish qoidasi
- data(55.6b): navbat 1000 (o'rin 10 592–13 677) → 20 partiya; queue55: qayta rad etilgan diniy yopiq qoladi
- chore(55): G prompt shabloni bosqichga bog'liq emas ({STAGE})
- docs(55): 55.6a jurnali — prodda 12 016, CA qamrovi 84,9%; dict_coverage diniyni hisoblaydi
- data(55.6a): 973 maqola entries.jsonl ga (diniy guruh + kitob); audit 52 (0 jiddiy, 4 oddiy); nisba translit -iy (35); الْحَاقَّةُ ichki takrori; darvoza 0
- data(55.6a): 016-020 G (248) + S + R (2) + qo'lda H; 20 partiya judged — 974 maqola
- data(55.6a): 001-015 yengil R (9) + qo'lda H + apply — 727 maqola
- data(55.6a): 001-010 G (485, 19 rad; diniy guruh) + S (izohda arabcha, ة translit tuzatildi); review-sub
- data(55.6a): navbat 1000 (diniy 591 boshida) → 20 partiya; G prompt shabloni repoga
- fix(55): G yo'riqnomasi — uzbek_loan ildizdosh so'z misollari (55.5e auditi sinfi)
- docs(55): 55.5e jurnali — prodda 11 043, qamrov 84,5%
- data(55.5e): 871 maqola entries.jsonl ga; audit 52 (0 jiddiy, 9 oddiy — hammasi uzbek_loan); 715 lik loan qayta ko'rigi (+103); darvoza 0 xato
- data(55.5e): 016-020 G (214) + S + qo'lda R/H; 20 partiya judged — 871 maqola
- data(55.5e): 001-015 yengil R (11) + qo'lda H (35: 12 tasdiq) + apply — 659 maqola
- data(55.5e): partiya 011-015 — G (228, 23 rad; diniy endi maqola) + S; 001-010 fe'llarda o'zbekcha ildizdosh (25)
- data(55.5e): partiya 001-010 — G (437, 78 rad) + S; review-sub
- feat(55): lug'atda diniy so'z ruxsat (Muhammad qarori) — qo'riqchi faqat siyosiy, G/R/H/audit promptlari, diniy rad etilganlar 55.6 navbatining boshiga
- docs(55): 55.6 kitob so'zlari — Wasit + Muxtor as-Sihoh bosh so'zlari muzlatildi, kitob55.py navbati
- docs(55): 55.5d o'qish havolasi o'zgarmadi
- docs(55): 55.5d jurnali — prodda 10 172, qamrov 84,3%
- data(55.5d): 878 maqola entries.jsonl ga; audit 52 (0 jiddiy, 3 oddiy, 2 qo'llandi); darvoza 0 xato qo'riqchi: noqis ism translitida -i (18 tuzatildi), test
- data(55.5d): 001-015 yengil R (7 topilma) + qo'lda H (30: 9 tasdiq, 6 rad) + apply
- data(55.5d): partiya 011-015 — G (206, 48 rad) + S; ig'tirab; review-sub. Sessiya oxiri: 016-020 G boshlanmagan
- data(55.5d): partiya 001-005 — G (241, 13 rad) + S; الشَّيْخ → الْعَجُوز; review-sub
- data(55.5d): partiya 006-010 — G (216, 36 rad) + S toza; review-sub
- data(55.5d): 1 000 nomzod, 20 partiya
- docs(55): 55.5c jurnali — prodda 9 294, qamrov 84,1%
- data(55.5c): 909 maqola entries.jsonl ga; darvoza 0 xato
- data(55.5c): audit 52 (0 jiddiy, 9 oddiy; 8 qo'llandi)
- data(55.5c): R (4) va H qo'lda — 3 «o'zbekchada bor», غِبٌّ hadis iborasi misoldan olindi, 17 rad
- data(55.5c): 011-015 — R/H qo'lda (6 shubhali maqola, hammasi to'g'ri)
- data(55.5c): partiya 011-015 — G (230, 24 rad) + S; مُعْدٍ takror rad; muhaba; qo'riqchi: لَجْنَة ≠ جنة (test)
- data(55.5c): partiya 016-020 — G (233, 27 rad) + S; qo'riqchi: ma'nosi boshqa omograf (نَامُوسٌ) hakamga
- data(55.5c): partiya 006-010 — G (221, 32 rad) + S; qo'riqchi: «suratga/suradi/hajmi» soxta topilmasi tuzatildi (test)
- data(55.5c): partiya 001-005 — G (226, 29 rad) + S toza; review-sub
- feat(55.5c): noqis ism izohi batch55 prepare ichida; 55.5c 1 000 nomzod (o'rin 6 652–7 775), 20 partiya
- docs(55): 55.5b jurnali — prodda 8 385, qamrov 83,6%
- data(55.5b): 931 maqola entries.jsonl ga; darvoza 0 xato
- data(55.5b): audit 53 (0 jiddiy, 3 haqiqiy oddiy: tanvin translit 2, أَعْجَمُ ma'nosi); audit rubrikasi — 6–10 ming o'rinda B2 ham C1 ham to'g'ri
- data(55.5b): R 017-020 (1), H 017-020 qo'lda (7 rad)
- data(55.5b): partiya 017-020 — G (190, 15 rad) + S toza; review-sub
- data(55.5b): H 001-016 qo'llandi
- data(55.5b): yengil R 001-016 (8), judge-in
- data(55.5b): partiya 013-016 — G (176, 30 rad) + S; muhama translit
- data(55.5b): partiya 009-012 — G (187, 19 rad) + S; 2 misol neytral
- data(55.5b): partiya 005-008 — G (198, 10 rad) + S toza; review-sub
- data(55.5b): 002 misol neytral (مَالِك); review-sub 001-004
- data(55.5b): partiya 001-004 — G (180, 24 rad) + S; الْأَمِيرُ → الْمَلِكُ; review-sub
- data(55.5b): 1 000 nomzod (o'rin 5 411–6 650), 20 partiya; noqis ism izohlari
- docs(55): 55.5a jurnali — prodda 7 454, qamrov 82,9%; o'qish havolasi mavjudini saqlaydi; aliaslar
- data(55.5a): 948 maqola entries.jsonl ga; darvoza 0 xato
- data(55.5a): audit 53 (0 jiddiy, 9 oddiy) qo'llandi; مَيْسِرٌ rad (diniy ibora)
- data(55.5a): H 010-013, 018-020 qo'llandi
- data(55.5a): H 014-017 qo'llandi
- data(55.5a): yengil R 014-017 (18), judge-in
- data(55.5a): yengil R 010-013, 018-020 (15), judge-in
- data(55.5a): partiya 014-017 — G (185, 20 rad) + S; ig'tisab translit; review-sub
- data(55.5a): partiya 018-020 — G (147, 12 rad) + S toza; review-sub
- data(55.5a): partiya 010-013 — G (198, 24 rad) + S; عُمْرَهُ soxta topilma → حَيَاتَهُ; review-sub
- data(55.5a): H 001-009 (17 tasdiq, 41 rad) qo'llandi
- data(55.5a): yengil R 001-009 (16 oddiy), judge-in
- feat(55.5): yengil R (review-sub) — Muhammad «A + B»: maqsad 1–3-qatlam, R faqat shubhalilarga
- data(55.5a): partiya 007-009 — G (140, 13 rad) + S; noqis ism takrorlari (وَافٍ، مُسْتَوٍ، مُنْتَهٍ) rad; 010-020 ga ي li yozuv izohi
- data(55.5a): partiya 001-003 — G (134, 28 rad) + S toza
- data(55.5a): partiya 004-006 — G (145, 11 rad) + S; مُوَازٍ takrori rad
- feat(55.5): queue55.py — tartib navbatidan yangi lemmalar; ال takror qo'riqchisi; harakatsiz nomzod shakl bilan adashsa chiqarilmaydi (G ga izoh); 55.5a 1 000 nomzod, 20 partiya
- chore(55): knip — audit skrinshot skripti entry
- chore(55): audit skrinshot skripti scripts/dict/audit/ ga (e2e dan ko'chdi), README
- docs(55): 55.4 jurnali — prodda 6 506, qamrov 81,0%; hafta kunlari takrori yashirildi, aliaslar; README
- data(55.4): 517 maqola entries.jsonl ga; darvoza: verify 0 xato, kalit to'qnashuvi 0
- data(55.4): audit 33 (0 jiddiy, 4 oddiy) — xato sinfi: chet so'zga soxta ildiz; 15 ta root null, mi'atan; rubrika va G promptiga qoida
- data(55.4): qayta R 007-011 (2 oddiy) qo'llandi — لَوْحِيٌّ misol, زَنْبَقٌ «zambaq»
- data(55.4): H 007-011 (42 tasdiq, 14 rad) qo'llandi; qayta R kirishi
- data(55.4): qayta R 001-006 (5 oddiy) qo'llandi
- data(55.4): H 001-006 qo'llandi (37 tuzatish), qayta R kirishi
- data(55.4): H 001-006 (37 tasdiq, 15 rad)
- data(55.4): judge-in tayyor (77 tanqid + 31 savol)
- data(55.4): R 010-011 (20 tanqid); R tugadi
- data(55.4): R 007-009 (17 tanqid)
- data(55.4): R 004-006 (9 tanqid)
- data(55.4): R 001-003 (31 tanqid)
- data(55.4): partiya 010-011 — G (83) + S toza; G tugadi (520 maqola)
- data(55.4): partiya 007-009 — G (145, 5 rad) + S; «suratga» qo'riqchi soxta topilmasi → «rasmga»
- data(55.4): partiya 004-006 — G (148, 2 rad) + S; 4 translit ة → -a qo'lda (miqla, misfa, mikva, fursha)
- data(55.4): partiya 002-003 — G (100) + S (hakamga 3 savol)
- data(55.4): partiya 001 — G (44, 6 rad) + S toza
- data(55.4): «kam» birikmalar tahlili — 10 qism so'z nomzodga; 11 partiya (533); 4 noto'g'ri «shakl» qaytarildi (خَالَةٌ، فُطُورٌ، صِينِيَّةٌ، مُوَاصَلَاتٌ)
- data(55.4): mavzu ro'yxati (1 667 so'z, 34 mavzu) va filtr — 1 033 bor, 527 yangi nomzod, 107 «kam» (ko'pi ikki so'zli birikma)
- feat(55.4): mavzu_freq.py — kundalik mavzu so'zlari lug'atda bormi va MSA ≥0,1/mln filtri
- docs(55): 55.3 jurnali — prodda, kontent havolasi 263 → 51, README
- data(55.3): kontent audit (0 jiddiy, 1 oddiy) — مَحْذُورٌ «hazar»; o'qish havolalari qayta yig'ildi
- data(55.3): kontent 109 maqola entries.jsonl ga (H: 4 tasdiq, 4 rad)
- data(55.3): kontent R (4 tanqid)
- data(55.3): kontent 007 — G (9) + S
- data(55.3): kontent 005-006 — G (100) + S toza
- data(55.3): audit (0 jiddiy, 1 oddiy) — بُعَيْدَ «ba'd»
- data(55.3): kontent saralash — 109 nomzod (88 so'z + 20 grammatika atamasi + مَقُولٌ), 3 partiya; 54 alias (kontentdagi shakllar)
- data(55.3): 153 o'quv so'zi entries.jsonl ga; gate 0 xato
- data(55.3): H qo'llandi (22 tasdiq, 6 rad); ساءَ shakli «suiiste'mol»
- docs(55): rubrika — gap ichida vasl alifiga harakat (55.3 ko'rigi)
- data(55.3): R 003-004, judge-in
- data(55.3): R 001-002 (15 tanqid, 0 jiddiy)
- fix(55): حَرَى va حَبَّذَا jomid fe'llar ro'yxatiga; 55.3/003 S toza
- data(55.3): partiya 003-004 — G (56 maqola, 3 rad) + S
- data(55.3): partiya 002 — G (50) + S
- data(55.3): partiya 001 — G (50) + S toza
- data(55.3): o'quv so'zlari nomzodlari — 159 (sarf 64, ism vaznlari 39, nahv 66), 4 partiya; qo'riqchi unli farqini ham ko'radi (نِعْمَ ≠ نِعَم)
- docs(55): 55.2 jurnali — prodda, o'qish havolasi 99,6%, README
- fix(o'qish): havola — o'z maqolasi masdar/ko'plikdan ustun, harakat moslik bali, vasl alifi, yasalgan muzore faqat fe'lga; load_texts harakatli lemma bilan aniq bog'laydi
- fix(55): guards55.norm backend normalize_arabic bilan bir xil (ئ→ي, ؤ→و); لَئِنْ/كَأَيِّنْ keyingi sense_index ga
- data(55.2): 112 maqola entries.jsonl ga (3 partiya), o'qish matnlari havolasi 99,6%
- data(55.2): partiya 003 — G (36) + S toza
- data(55.2): G/R/H 001-002 merge (76 maqola); 3-partiya (o'qish matnlarida yo'q 36 so'z); aliaslar (لِـ/بِـ shakllari, ko'pliklar); qo'riqchi — harakatli nomzod shadda bilan farqlansa chiqarilmaydi; o'qish havolasi muzore yengilligi; 3 matnda harakat xatosi
- fix(55): qo'riqchi — bitta so'zning ikki imlosi (translit va ma'no bir xil) hakamga; 55.2 R natijalari
- fix(o'qish): bosilgan so'z havolasi harakat bo'yicha — har shaklga barcha maqolalar, matn harakatiga mos keladigani
- data(55.2): partiya 002 — G (25 maqola) + S toza
- data(55.2): partiya 001 — G (52 maqola) + S toza
- data(55.2): nomzodlar — 74 yordamchi so'z (harf, olmosh, bog'lovchi, ravish), 2 partiya
- docs(55): 55.1 prodda — zaxira, load_pg, OTA 1.4.280; README jadvallari