Değişiklik günlüğü
GitHubHer önemli değişiklik, sürüm sürüm. Aynı dosya depoda yer alır ve 19 dilin tümüne çevrilmiştir.
[1.267.1] — 2026-11-04
Düzeltildi
- Release treni onarımı (v1.267.0’un CI kapıları) — PROJECT-CONTEXT’teki test-sayım zinciri artık v1.267.0 başında kopmuyor (eval grader’ın eşlediği ok biçimi), QA prompt’ları yeniden düzenlendi (release başına bir canlı prompt, v1.266.0 arşivlendi) ve dosya-başına coverage 98/90 ratchet’ının üzerine çekildi: applicantpro salary renderer’ı ulaşılamaz bir fallthrough kaybediyor (salaryRangeOf kanıtlanabilir biçimde yalnızca undefined, {min}, {max} veya {min,max} üretiyor), tek-taraflı ≥/≤ dalları fetch akışı üzerinden sabitleniyor ve board-response-cache suite’ı no-store bypass’ını, kaydedilmemiş bir board’a karşı çağıranın sağladığı 304’ü ve MAX_ENTRIES tahliyesini sabitliyor.
- Testler: canlı sayım 7395 (v1.266.0/1.267.0 dalgasının süitleri önceki notların izlediğinden daha fazla spec taşıyor — zincir ölçülen tabana yeniden sabitleniyor: dalgadan sonra 7392, bu yamada +3 kapı testi); kapsam 98.51 satır / 90.35 dal.
Notlar
-
v1.267.0 etiketi kırmızı merge commit’ini göstermeye bırakılır — yeniden işaretlenmez (sunucu yeniden işaretlenen etiketleri reddeder); v1.267.1 dağıtım aracıdır.
-
v1.267.0 treninin yama onarımı: CI kapıları yeşil, kod ağacı özünde değişmedi.
[1.267.0] — 2026-11-04
Eklendi
- Dört yeni tarama kaynağı — GermanTechJobs, Darwinbox, Keka, ApplicantPro/isolved (kayıt 125 → 129 = 124 EN + 5 RU · 124 adapter) — career-ops @
7d8feb6d(87 upstream commit) karşısında ikinci parent-sync dalgası. GermanTechJobs (#6346):germantechjobs.de/rssüzerinden pano-geneli RSS (tek istekte ~626 öğe); işveren başlığın son" @ "segmentidir — bir tane içermeyen başlık düşürülür, asla panonun altına kaydedilmez; yalnızca açıkprovider:seçimi. Darwinbox (#6416):<tenant>.darwinbox.inardında kimlik-gerektirmeyenalljobsJSON’u, şirket id’si careers URL’sinden gelir, POST ile sayfalı yürüyüş (50/sayfa,max_pages20/200), kısa-sayfa durağı kaynağın kendi satır sayısından okunur. Keka (#6199): iki istek — feed UUID’sini adlandıran betiği taşıyanredirect:'manual'bir careers kabuğu (bilinmeyen bir tenantTenantNotFound.html’e 302 döner ve adlandırılmış bir 404 gibi okunur), ardından açık envanterin tamamı tek bir embed-jobs dizisinde. ApplicantPro / isolved (#6252): bootstrap’tan sayısaldomainId, ardından{success, data:{jobs, jobCount}};jobCount > rowslistenin eksik olduğu konusunda uyarır; isteğe bağlıapplicantpro: { fetchDetails: true }250 ms pacing’le JSON-LD’den zenginleştirir. - ETag ile pano yanıtlarının yeniden kullanımı (#6105) — tek bir tarama içinde son 15 dakikada çekilmiş bir pano yanıtı olduğu gibi yeniden kullanılır ve daha eskileri
If-None-Matchile yeniden doğrulanır (304 gövdeyi korur); önbellek anahtarı yöntem + URL + kimlik başlıkları + gövdeyi kapsar, üst üste binen okumalar uçuştaki promise’e katlanır,CAREER_OPS_HTTP_CACHE=0/_TTL_MSbunları override eder. Tarama koşusu başına bellek-içi (web-ui’nin disk-üzeri önbellek sözleşmesi yok) — kayda geçen bir sapma.
Düzeltildi
- Dört panoda tarihler (#6274) — remoteok, remotive, workingnomads ve IBM artık bir yayın tarihi veriyor, böylece «Posted within» filtresi oralarda da çalışıyor; remotive’nin naive zaman damgası UTC’ye normalize ediliyor (makine-başına yaş bug’ı canlıydı), IBM’in
_source’u gerçektedcdateistiyor. - Yanlış yazılmış bir portals.yml anahtarı reddediliyor (#6107) — EN taraması artık herhangi bir istekten önce adlandırılmış bir hata fırlatıyor (dosya + anahtar + en yakın anahtar önerisi, Levenshtein ≤ 2),
titel_filter:’ı sessizce yok saymak yerine. - getro eski bir featured pin’inin ötesinde yürümeye devam ediyor (#6406) — sabitlenmiş bayat bir ilan hâlâ düşürülüyor ama artık sayfalamayı sonlandırmıyor; yürüyüş gerçek bir kısa sayfada biter.
Notlar
- Bilinçli olarak yapılmadı: RU tarayıcının seen-filtresi dil-duyarlı değil ve onun portals ayrıştırma yolu yanlış-yazım-anahtarı kapısını çalıştırmıyor (hand-off’lar dalga spesinde kayıtlı — henüz dil-başına satır veren bir RU panosu yok); remoteok, UTC’ye normalize etmek yerine offset taşıyan tarih dizisini tutuyor (canlı şekli deterministik). Testler 7096 → 7243; Playwright 173 geçti / 0 başarısız / 1 opsiyonel atlandı; kayıt 129 = 124 EN + 5 RU · 124 adapter (tüm sayaç kapıları canlı kayıttan yeniden üretildi).
[1.266.0] — 2026-11-01
Eklendi
- Personio dil sürümleri birbirini yemeyi bırakıyor (CAR-223: parent #4789 + #5044 + #5285) — ertelenmiş yığın, kendi sürümü olarak icra edildi. Tarama tarafı (#4789):
scan_history.dedup_include_language: true(katı opt-in — KAPALI bayt-özdeş) bir ilanın dil sürümlerinin seen-history varyant mekanizması üzerinden dedup’ı atlatmasını sağlar (languageFormsFromUrl/recordUrlVariant/isUnseenLanguageVersion); kanonik anahtarlanguage/lang/localeparametrelerini soyar. preferred_languages (#5285): bir ilanın sürüm satırlarını tercih-edilen-önce sıralar (kararlı, eşitlikte sağlayıcı sırası) — anahtardan bağımsız (KAPALI tercih edilen sürümü tutar, AÇIK her sürümü o sırada tutar), validate-portals’in birvalidatePreferredLanguagesportuyla. personio fan-out (#5044): careers sayfası?language=enzorlaması olmadan çekilir (bir tenant’ın kendi?language=xx’i dikkate alınır) ve her dil sürümü içinlanguage+?language=<code>URL’leriyle bir satır verir;dedupIncludeLanguagedil-başına çekimler ekler (tavan 5, pacing’li); /xml ve job-link yedekleri değişmedi. recruitee aynılanguageemisyonunu +preferred_languages’ı kazanır (opts veya girdi). Paylaşılan yardımcılarserver/lib/language-preferences.mjsiçinde yaşıyor.
Notlar
- Hand-off’lar kayıtlı, bilinçli olarak yapılmadı: RU tarayıcının seen-filtresi dil-duyarlı değil ve henüz dil-başına satır veren bir RU panosu yok; istemci
url-key.jsaynası ve portals-rota doğrulama bağlantısı açık kalıyor. Testler 7096 → 7203; kayıt değişmedi 125 = 120 EN + 5 RU · 120 adapter.
[1.265.0] — 2026-11-01
Eklendi
- İki yeni tarama kaynağı — Apple ve Bulldogjob (kayıt 123 → 125 = 120 EN + 5 RU · 120 adapter) — career-ops @
fe857ecfkarşısında parent-sync dalgası. Apple (jobs.apple.com, #5496 + #6196): site kullanılabilir bir JSON API’si olmayan bir React Router SSR uygulaması; kaynak sıradan arama rotasının hydration blob’unu okur (window.__staticRouterHydrationData); keşif girdi tarafından yönetilir (apple.queriesilgililik sıralı metin eksenleri +apple.teamsslug eksenleri, varsayılan yok — ikisi de olmayan girdi fırlatır), sayfalarmax_pagesile sınırlı (varsayılan 2, tavan 50) 200 ms pacing’le, URL’nin her segmenti surrogate-güvenli kodlanır ve Apple’ın PIPE diye etiketlediği ilan snippet’inde «talent pipeline olabilir» ipucu taşır — bunun üzerine filtre yapılmaz. Bulldogjob (bulldogjob.pl, #6253): Polonya teknoloji panosunun da JSON API’si yok — listeleme sayfaları__NEXT_DATA__(50/sayfa,totalCount) taşır; girdinincareers_url’i kullanıcının sitede kurduğu aramadır (filtreler yolda yaşar), her istek açık bir/page,Ntaşır ve yürüyüş kısa sayfada, bildirilen total’da veyamax_pages’te (varsayılan 25, tavan 100) durur, kısmi panolarda kesilme etiketiyle. - IBM sayfalama rework’u (#6273) — sabit 600 kayıtlık yürüyüş
max_pagesolur (varsayılan 20, tavan 300, girdi bazlı override), sayfalar arası 200 ms pacing vefetchJsonWithRetryüzerinden sayfa başına retry; ilk sayfa başarısızsa fırlatır, sonraki bir sayfa başarısızsa toplananı korur ve sayfayı adlandırır, yalnızca girdinin kendi tavanında tam sayı bir sayfa «raise max_pages» uyarısı verir.
Düzeltildi
- justjoin ilanları
lastPublishedAtile tarihliyor (#6254) — aday API’ninpublishedAt’ı işveren her yenilediğinde ilerler, panonun çoğu bugünün tarihini taşıyordu vemax_posting_age_dayshaftalardan kalma ilanları geçiriyordu; artık daha erken yayın tarihi kazanır, eksik veya parse edilemezse fallback. - jobvite tek bir posting URL paylaşan satırları katlıyor (#6127) — kamuya açık bir besleme tek bir detail URL için şehir başına bir
<job>satırı döndürür; ayrıştırıcı ilk şehri tutuyor ve gerisini yineler olarak sayıyordu. Artık kardeş satırlar yalnızca konum katkısı verir, feed sırasıyla·ile birleşir, ilk başlık/tarih kalır, remote birleşen konum üzerinden yeniden değerlendirilir. - Liveness: bir UltiPro rung’ı (#6090) — UKG’nin ilan başına JSON endpoint’i yok ve kapalı ilanlara da 200 döner, böylece 57 kapalı UltiPro ilanının tamamı uncertain okunuyordu. Detay sayfası kaydı gömer:
OpportunityIsClosedtrue/false → expired/active, «opportunity unavailable» bildirimi → expired, gerisi tarayıcıya kalır. Built In’ın «Sorry, this job was removed» bandı hard-expired oldu (#6336) — sayfa tam JD’yi ve APPLY kontrolünü tutuyor; artık bant kazanır, «sorry» içermeyen kardeş «Job removed» rozeti eşleşmez.
Notlar
- Bilinçli olarak yapılmadı: jobvite düzeltmesinin parent-tarafı scan.mjs konum derleyicisi yarısı (web-ui USPS derleyicisini no-port olarak belgeler) ve Apple PIPE ipucu için ebeveynin
notealanı (web-ui job shape’indenoteyok;snippetiçinde seyahat eder). Tests 7096 → 7135 (+39); Playwright 173 pass / 0 fail / 1 opt-in skip; coverage gate ≥ 98/89; kayıt 125 = 120 EN + 5 RU · 120 adapter (tüm sayaç kapıları canlı kayıttan yeniden üretildi).
[1.264.3] — 2026-11-01
Düzeltildi
- Hız sınırı sağlamlaştırma dalgası (
REVIEW-2026-10-31-v1.264.1’den inceleme LOW №1–3) —writeRateLimit()(express-rate-limit@7.5.1, 60 req/min route×IP, 429 JSON + Retry-After) artık 47 veri-değiştiren uç noktanın tamamını kapsıyor (2 idi): kapsam dışı bırakılmış 9llmRateLimitkoruması değiştirildi (/api/config—.envyeniden yazımı!,PUT /api/batch,/api/batch/merge, outcome, followup/seed, assessments, stats/snapshot, mock-interview/save, networking/save), pahalı yollarda LLM kovasının öncesine 3 tane istiflendi (/api/evaluate,/api/deep,/api/auto-pipeline) ve 33 çıplak kayıt bağlandı (CV/profile/modes düzenleyicileri, tüm tracker yazımları, pipeline POST/restore/DELETE, jds, tek bir döngü düzenlemesiyle 7/api/run/*, posting-guard, satır-içi Playwright-PDF, portals toggle/health/track, discover, reports, export/docx, two-pager, career-plan, memory ve üç DELETE rotası)./api/apply-helperallowlist’li çıplak olarak kalıyor (salt yerel hesaplama, sabitlenmiş); 16 salt-LLM rotası tasarım gereği koşullu LLM kovasını koruyor. Bir eksiksizlik tetikleyicisi (tests/rate-limit-coverage.test.mjs, 27 çıplak kayıtla red-first) gelecekteki her hız sınırlandırılmamış veri-değiştiren kayıtta CI’ı düşürür. TRUST_PROXYisteğe bağlı kullanımı + yeniden devreye alınan doğrulamalar (inceleme LOW №1–2) —app.set('trust proxy', N)birTRUST_PROXYenv hop sayısını kabul ediyor (asla booleantruedeğil — bu, saldırgan-kontrollü sol XFF ucuna göre anahtarlamaya yol açardı); varsayılan olarak ayarsız, böylece loopback belgelenmiş soket-anahtarlı rota-başına dejenerasyonunu koruyor.validate: false, hedefli birwriteValidateConfig()’e dönüşüyor: yalnızcaxForwardedForHeadermuaf tutuluyor (trust proxy olmadan Caddy’nin XFF’si tasarım gereği yok sayılıyor), diğer her doğrulama —trustProxydahil — yeniden gürültülü, böylece gelecekteki birtrust proxy: trueyanlış yapılandırması sessizlik yerineERR_ERL_PERMISSIVE_TRUST_PROXYolarak yüzeye çıkıyor. ÖzelkeyGeneratorbilinçli olarak kaldırıldı: express-rate-limit, proxy doğrulamalarını varsayılan anahtar üreticisine bağlıyor ve rota-başına izolasyon değişmedi (her fabrika çağrısına birMemoryStore).- cvstart.org kopyalama geri bildirimi 2 sn sonra geri alınıyor (CAR-141) — «Скопировано ✓» durumu artık kabul kriterindeki 2 saniye boyunca kalıyor (1,5 sn idi),
tests/site-copy-feedback.test.mjsiçinde red-first sabitlendi. Bu, CAR-141’in ajan tarafından giderilebilir son kriterini kapatıyor; tanıtım videosu yenilemesi sahibin ertelemesinde kalıyor (karar 2026-11-01).
Değişti
- Yardım paketleri 19 dil diyor (×19) — §19 “Localizing the app” ve §32 “Run it from OpenWorker” cümleleri artık iki yerel ayar geriden gelmiyor: her paket artık 19 diyor ve தமிழ் ile Tiếng Việt’i kendi sayım biçimiyle adlandırıyor (ar, yazıyla yazılmış «التسع عشرة» biçimini kullanıyor);
vi.md§32’sindeki kendi «cả-17» kalıntısı da düzeltildi. Yapı kapıları (33 H2 / 125+ H3) bayt düzeyinde kararlı. - Durum hijyeni —
AGENTS.mdv1.264.2 / 7082 test diyor (v1.86.x / 1566 idi);PLAN.md1–7. sürümleri Shipped olarak işaretliyor ve ship-train paragrafı docs ×19 diyor;StatsBar.astroyorumu artıkfacts.adapters’ın gerçekte ne tuttuğunu açıklıyor (123 = kaynak toplamı, tüketiciler için tarihsel anahtar adı korundu);i18n.jsbaşlığı 19 dil diyor; v1.264.2 QA istemi gerçek kapsamı (98.45/90.05) ve Playwright aritmetiğini (176 = 174 harness + 1 opsiyonel atlama + 2 betik-seviyesi süit) taşıyor.
Notlar
- Bilinçli olarak yapılmadı: kayıtlı port-listesi başına parent-sync dalgası BACKLOG’da kalıyor — fork önce upstream
a9476866’ın ötesine senkronize olmalı (10 port-listesi commit’inin 7’si henüz yerel üst proje ağacında değil; IBM/UltiPro/Bulldogjob/apple S–M olarak kapsamlandı, personio language-dedup kendi sürümüne ertelendi). CAR-141’in tanıtım videosu yeniden kaydı sahibin tarafından bilinçli olarak ertelendi («видео не надо пока», 2026-11-01). - Testler 7082 → 7096 (+9 kapsam tetikleyicisi + 5 trust-proxy); Playwright 173 geçti / 0 başarısız / 1 opsiyonel atlandı (mevcut vakalar içinde +2 chevron sabitlemesi); kapsam 98.46 satır / 90.10 dal; evals 14/0/1skip; registry değişmedi 123 = 118 EN + 5 RU · 118 adapters.
[1.264.2] — 2026-11-01
Düzeltildi
- Kenar çubuğu grup başlıkları kısaltma sözleşmesine katılıyor (CAR-219) — grup açma/kapama etiketleri (
.nav-v2-toggle > span) artık üç nokta ile kısaltılıyor ve CAR-203 gezinme öğeleriyle aynısyncLabelTitles()mekanizması üzerinden yerelleştirilmiş bir araç ipucu taşıyor; chevron asla küçülmüyor, açma/kapama tıklanabilir kalıyor, RTL bozulmadan korunuyor. Red-first sabitlemetests/nav-v2.test.mjsiçinde (+1 → 7082 test).
Değişti
- cvstart.org metni 19 dilin tamamında yayınlanıyor (CAR-220) —
meta.helpDesc,helpTeaser.c1.descvefaq.a2her site yerel ayarında çevrilmiş (v1.264.1’de tasarım gereği yalnızca EN’diler); GitHub Pages yükseltilmiş metni cvstart.org’da canlı olarak yayınladı. - Backlog + inceleme hijyeni (CAR-221/222) — «upstream’de birleştirildikten sonra taşınacak» altı madde kapatıldı: yedi upstream PR’sinin tamamı birleştirildi, dört madde zaten taşınmıştı, ikisi üst proje tarafında.
docs/reviews/REVIEW-2026-10-31-v1.264.1.mdgeliyor (0 HIGH / 0 MED, üç LOW takip maddesi BACKLOG’a not edildi) ve parent-sync port-listesi kayda geçiyor (6 PORT / 3 VERIFY / apple kaynak boşluğu; upstream kuyruğu 118 commit @ VERSION 1.38.0).
Notlar
- Changelog ayna-damgası düzeltmesi (
92a05fcf) bu etiketle birlikte geliyor: cvstart.org’daki her sayfalanmış ayna artık onu üreten sürümün sürüm numarasını taşıyor, böylecesite-build-after-fanoutdeğerlendiricisi nihayet atlamak yerine gerçek mantığını çalıştırıyor. - Bilinçli olarak yapılmadı: kalan veri-değiştiren POST’ların hız sınırlandırılması (inceleme LOW №3) ve trust-proxy kova bağlaşımı — bir sonraki sağlamlaştırma dalgası için BACKLOG’a not edildi. CAR-141 (tanıtım videosu) sahibin kalıyor.
- Testler 7081 → 7082 (+1 CAR-219 sabitlemesi); Playwright 176; registry değişmedi 123 = 118 EN + 5 RU · 118 adapters.
[1.264.1] — 2026-10-31
Düzeltildi
- Kenar çubuğu hapları uzun yerelleştirilmiş etiketleri zarifçe kısaltıyor (CAR-203) — gezinme etiketi span’i artık düzgün bir flex vatandaşı (
v2-nav.cssiçindemin-width: 0+overflow: hidden+text-overflow: ellipsis+nowrap), venav-v2.js’tekisyncLabelTitles()yerelleştirilmiş etiketi aynıdata-i18nanahtarı üzerinden araç ipucuna yansıtıyor (sıfır yeni i18n anahtarı) — uzun «Профинансированные компании» artık satırınoverflow: hidden’ı tarafından sertçe kırpılmak yerine fareyle üzerine gelindiğinde yeniden okunuyor. 44 px dokunma hedefi, aktif boyama ve RTL aynası dokunulmadan kaldı; red-first sabitlemetests/nav-v2.test.mjsiçinde. - Her yerel ayar için tek bir 480 s değerlendirme tavanı (CAR-218) — remote-QA v1.264.0,
esvezh-CNüzerinde geçici502 · 300 s · 0 chdeğerlendirmeleri yakaladı (hedefli yeniden koşu geçti, ama duvar gerçekte oradaydı).EVAL_TIMEOUT_MSartık480_000veevalTimeoutMs(lang)onu koşulsuz döndürüyor —GEMINI_EVAL_TIMEOUT_MSve auto-pipeline miras alıyor. CAR-174’ten gelen yerel-ayar-duyarlı token bütçesi (16384 / 32768) yerel ayar başına tek bölünme olarak kalıyor.
Değişti
- cvstart.org SSS tam kaynak sayılarını taşıyor (CAR-217) —
{sources} iş panosu kaynağı: {sourcesEn} uluslararası pano artı {sourcesRu} Rus kaynağıifadesifacts.json’dan yerine konuyor;facts.jsoncanlı registry’den üretiliyor (123 = 118 EN + 5 RU), böylece sayılar asla sapamaz; hâlâ eski~{adapters}söyleminde olan yerel ayarlaradaptersRoundedüzerinden yuvarlamayı sürdürüyor. EN metin yükseltmeleri de beraberinde geliyor (meta.helpDesc,helpTeaser.c1.desc,faq.a2komut menüsünü, geri al özelliğiyle gruplanmış pipeline’ı ve kanban tracker’ı adlandırıyor).
Notlar
- Bilinçli olarak yapılmadı: site i18n metin yükseltmeleri (
meta.helpDesc/helpTeaser.c1.desc/faq.a2) bu sürümde yalnızca EN kalıyor — diğer yerel ayarlar bir sonraki dokümantasyon dalgasına kadar doğru-ama-daha-yuvarlak söylemi koruyor (çevrilenlerde onlarınfaq.a7’si tam-sayı yer tutucularını kazanıyor). CAR-141 (tanıtım videosu) sahibin kalıyor; yerine geçencar136/m141dalı silindi, fikirleri Linear görevine not edildi (archive/car136-m141etiketiyle kurtarılabilir). - Testler 7041 → 7081 (CAR-203 sabitlemesi + CAR-218 sabitleme yeniden yazımları); Playwright 176; registry değişmedi 123 = 118 EN + 5 RU · 118 adapters.
[1.264.0] — 2026-10-31
Eklendi
- Satır-içi tracker durum düzenlemesi — her
#/trackersatırının durum rozeti, kanonik aşamaların kompakt bir<select>’i (GET /api/tracker/stages’ten, asla sabit kodlanmış bir whitelist değil).POST /api/tracker/status, üst projenin kanonikset-status.mjs’iniapplications.mdkilidi altında aktarıyor (durum whitelist’istates.mjsüzerinden,--dry-run/--notegeçişi, temizlenmiş ayrıntıyla fail-soft 502, argv-dizisi spawn). Başarı satırı yerinde güncelliyor (ton sınıfı + sekme sayıları, odak korunur); başarısızlık değeri geri alır ve toast gösterir. Aktarımın adresleyemediği satırlar — elle düzenlenmiş bilinmeyen bir durum, bir backfill sentinel’i#— salt-okunur rozeti tutuyor (route-review LOW düzeltmeleri; inceleyici: HIGH/MED bulgu yok). - Sunucu uyarıları her AI sayfasında yüzeye çıkarıldı —
evaluate,deep,auto-pipeline(sayfa ve modal),career-plan,market,cv-studio(humanize + tailor) artık sunucununwarningsdizisini (çıktı-token kırpılması, dil sürüklenmesi, tarih düzeltmeleri) birbadge-warnşeridi olarak (role="status") render ediyor; auto-pipeline modalı artık done-frame uyarılarını düşürmüyor. Yeni anahtarllm.truncatedNotice×19. - Kapsam dalgası (+111 test) —
routes/map.mjs100/94.9,geocode.mjs96.3/92.9,content.mjs99/84.9,networking.mjs96.4/89.1,sources/habr.mjs100/98.2 (yenitests/cov-*-routes.test.mjs×3,tests/sources-habr.test.mjs); dal tabanı ≥ 90 %’ta tutuldu. - Linear CAR-191…216 kapanış paketi (
docs/reviews/2026-10-30-linear-car191-216-closure-bundle.md) — CAR başına commit SHA’ları ve kanıt yorumlarıyla yapıştırılmaya-hazır sahip kapanışı.
Düzeltildi
- Trudvsem tarama kaynağı — boş bir sayfa (
results: {}, “sonun ötesinde” de dahil) artık tüm taramayı öldürmüyor (temiz sıfır satır); API hata zarfları (HTTP-200status: 500ile) API’nin kendi metniyle fırlatılıyor; sayfalama kayıt ofsetleriyle yürüyor (sayfa-indeksiydi — sayılar sessizce kopyalanıyordu, yüzlerce yerine ~52 ilan); yürüyüş, API’nin derin-ofset hata bölgesinden önce duruyor (offset × limit ≥ 10000). Canlı uçtan uca doğrulandı. - habr — başlıklar/şirketler varlık çözümünden sonra etiket-kırpılıyor (hh.mjs paritesi): kart başlığındaki
<script>artık canlı işaretleme olarak tarama satırlarına ulaşamıyor; başlıklardaki meşru>>hayatta kalıyor. - PUT /api/profile (ham yol) — boş olmayan bir
full_nameiçermeyen bircandidate:bloğu reddediliyor, alanlar-birleştirme yoluyla aynı çizgide (full_name: nullkalıcıyordu). - İpucu dürüstlüğü —
.docCV yükleme kabul listesinden vecv.uploadHint×19’dan kaldırıldı (ayrıştırıcı onu hiç desteklemedi);config.openaiModelHint×19gpt-5adını veriyor (sunucu her*-codexkimliğini ona eşliyor);config.anthropicModelHint×19 ve Anthropic varsayılanı artık üst projenin katmanlarını yansıtıyor — varsayılanclaude-sonnet-5-5, premiumclaude-opus-5-5. - Claude Code dokümantasyon bağlantısı →
code.claude.com(eskidocs.anthropic.com/en/docs/claude-codeURL’si bağlantılar kapısında TypeErrors veriyor). - yardım ×19: Satır-yoğunluğu mermisi gitti (düğme v1.263.0’da arayüzden ayrıldı) ve 18 kırık
**bold**aralık ailesi onarıldı — artı renderer-sızıntı sınıfı ×19 düzeltildi (her tablo-öncesi-paragraftan sonra ikinci boş satır; kalın hücrelerin dışına taşan pipe glifi): 19 yardım paketinin tamamında render’da 0 literal**.
Notlar
- Anthropic varsayılan modeli değişti →
claude-sonnet-5-5(üst projenin standart katmanı). Eski sessiz varsayılana (claude-sonnet-4-6) dayanan dağıtımlar otomatik yükseliyor — vazgeçmek için.env’deANTHROPIC_MODEL’i sabitleyin. - Bilinçli olarak yapılmadı: tasarım gereği açık bırakılan iki LOW inceleme kusuru (satır-içi seçici kanban
movesReadybozulmasını yansıtmıyor — her başarısızlıkta dürüst toast seçilen davranış;code: 'timeout'dalı >30 s’lik bir testle değil, sahte-yazıcı sözleşmesiyle kapsanıyor). CAR-141 (tanıtım videosu) sahibin kalıyor. - yardım ×19, v1.263.0 gönderildikten sonra
mainüzerinde yayın-sonrası düzyazı geçişini aldı (yoğunluk mermisi çıktı, renderer-sızıntı sınıfı düzeltildi) — bu sürüm onu taşıyan ilk etiket. - Bu etikette ayrıca: kanıt çipi altyapısı (rapor parser’ları + görünüm rozetleri), fix-report-links runner’ı (
POST /api/runners/report-links,#/healthüzerinde «Onar» kartı) ve kullanım kaydıyla batch maliyet tahmini/onayı — dal kesimi ile etiket arasında main’e geldi.
Tests 6905 → 7041 (+136) · Playwright 176 (173 geçti / 1 opsiyonel atlandı) · kapsam 98.5 % satır / 90.1 % dal · registry değişmedi: 123 sources = 118 EN + 5 RU · 118 adapters.
[1.263.0] — 2026-10-30
Eklendi
- Hareket cilalama katmanı — yeni
motion.css(son app sayfası): modal/popover girişleri (scale .97 + fade, 130–180 ms), toast yay-vari giriş + yumuşak ayrılma durumu, tema-düğmesi basma yayı, chip/sekme basma scale(.97), kademelendirme altyapısı (50 ms adımlar, 12 tavan),.page-enterrota-değişimi solması (router), chip’lerde/sekmelerde odak-halo geçişleri. Her kuralprefers-reduced-motion-güvenli (hareket none’a düşer, opaklık/renk kalır). - Dokunma doğruluğu — 68 hover-lift kuralı korumasızdı: dokunmatik cihazlar bir dokunuş sonrasında takılı kalmış “kaldırılmış” bir kart tutuyordu. Tüm transform hover’ları artık
@media (hover:hover)-kapılı (motion.css nötrleştirici) ve kart kaldırma yalnızca gerçekten etkileşimli kartlara uygulanıyor (.card:has(a),a.card,button.card,[role=button].card) — statik kartlarda artık sahte affordance yok. - Erişilebilirlik: her kontrolün programatik bir adı var. Yeni
A11yDumpyardımcısı 16 salt-okunur LLM-çıktısı dökümünün tümünü adlandırıyor; 12 yalnızca-placeholder alanı (CV Studio ×6, config ×2, scan arama, tracker puan seçici, outcome notu, plan düzenleyici, auto URL, hata raporu)aria-labelaldı;a11y-form-wireskapısı artık bunu sınıf-çapında dayatıyor (26 adlandırılmamış yer vardı, artık 0 + gerekçeleri belgelenmiş bir allowlist).
Düzeltildi
- #/scan: yapışkan tablo başlığı, üstüne kaydırıldığında artık topbar aramasının üzerine boyamıyor (z topbar’ınkine eşitti, sonra gelen DOM kazanıyordu — artık onun altında token-türevli); “Зарплата от/до” girdileri yeniden normal boyutta (bir
.v2-scan-bar .inputflex kuralı popover’ın sütun flex’ine sızıyor ve flex-basis 200 px’i YÜKSEKLİK olarak ayarlıyordu — artık>-kapsamlı + popover koruması); yoğunluk düğmesi sahip kararıyla kaldırıldı (altyapı korundu, i18n anahtarları ×19 kaldırıldı). - Deploy workflow sağlamlaştırması (F1–F6):
providergirdisi herhangi bir kabuk birleştirmesinden önce karakter-seti doğrulamasından geçiyor; hermes teşhisleri değerleri ayıklıyor (büyük/küçük-harf-duyarsız anahtar filtresi + değer maskeleme + üç çıkış kanalında da 80 karakter kırpma,?token=de maskeleniyor); hermes adımıinputs.app_dir’e saygı duyuyor; public_url https-kapılı; anti-downgrade korumasının 6 yürütülebilir sabitlemesi var (varsayılan yok, koruma-Deploy’dan-önce sırası, katı refs regex’i). - İnceleme kuyruğu, red-first: CSV-içe-aktarma ters-bölü gidiş-dönüşü (yeniden içe aktarım yeniden tekilleştiriyor), cv-voice baş-kırpma 4827 ms → 13 ms,
statedYearsMintembel hesaplanıyor, posting-guard capture TOCTOU, MiniMax CN joker’i, deel token atlama, içe aktarma seçicinin okumadan önce boyut-korumaları. İçe aktarma modalı: nav-guard kuruldu, dosya girdisi iptalde kaldırılıyor, korumalı yinelenenler okunuyor,numreduce ile. - Sahibin UX paketi: dashboard hero dikey ritmi (satır-seviyesi çocuklar tek satır kutusuna yapıştırılıyordu); yardım TOC’si −8 px aktif-satır kayması (satır-başına satır-içi oluk + numara sütunu); mobil çekmece (görünür ✕ kapatma, scrollTop sıfırlama, hayalet –paper solması
.has-hud’a kapılı); docs-assistant sayfası artık yanıttaki uzun bir URL ile taşmıyor (gridmin-widthzinciri +overflow-wrap: anywhere); «Недавние» açıklandı (ipucu) + temizlenebilir; career-plan Kaydet başarısız bir yükleme sonrasında yeniden kuruluyor; evaluate URL-ön-doldurması yapıştırma-yer-tutucusu üzerinde artık bir LLM çağrısı yakmıyor; auto-pipeline Enter IME bileşimine saygı duyuyor. - Kontrast (WCAG denetimi, 296 çift): docs-fab degrade 2.43 → 6.4:1, toast.success → ok-soft çifti (1.75 → AA koyu), banner btn-dark →
--inkçevirmesi, scan-logbtn/reposts-badge/fab-chip/close açık varyantları ve form-kontrol kenarlıkları 3:1’e (--cv3-input-line, WCAG 1.4.11 — 1.2:1 idi). - Görsel tarama: tracker boş durumu tam-genişlik bir kart (390’da 760 px tablonun içinde kırpılıyordu); scan konsol satırı yarım-kırpma yerine üç-noktayla kısalıyor; yüzen sohbet FAB’ı artık 390’da içeriği örtmüyor (44 px hedef, inset 12); dashboard «Application statuses» boş durumu v2-empty desenini izliyor; stats «?» ipucu bir ayırıcı + 44 px hedef alıyor; career-plan Input sekmesi sonucun nereye geldiğini açıklıyor; yardım §1 markdown (18 kırık kalın aralığı).
Değişti
- Vurgu mavisi → kızıl kırmızı (sahip isteği, logo ile uyumlu, hue 15) — 5 cv3 token × 3 tema bloğu;
docs-assistantsohbet balonu metni--accent-ink’e biniyor (sabit #fff idi, koyuda 2.39:1); funded yıkaması--accent-soft’a biniyor. Danger kendi tedavileriyle hue 25’te kalıyor. - Dokümantasyon: README test-tablosu sayısı ×17 (v1.248 döneminden bir sürüklenme), yardım §1 + 18 markdown aralığı, yardım fr/it/ta «118», satıcı fiyatları CHECKED_ON 2026-10-30, HANDOFF/CONTEXT/TRACEABILITY olguları.
Notlar
- Bilinçli olarak yapılmadı: skeleton sweep yeniden işi dışarıda kalıyor (car112 sözleşmesi mevcut solmayı kelimesi kelimesine sabitliyor); tema-düğmesi simge çapraz-solması bir
displaydeğişimi olarak kalıyor (tema-düğmesi Playwright sözleşmesi onu gözlemliyor);.btn:activescale çoğaltılmadı (app.css ona sahip); motion kademelendirme yalnızca altyapı — dashboard karoları onu sonra benimser; yardım ×19 düzyazısı (yoğunluk anması, §1 markdown, «118») sonraki fan-out’a biniyor. - Tam remote-QA kanıtı: v1.262.4 üzerinde ja hedefli yeşil (376 s / A–G ✓); en/it token-yoğun dönemde daha önce yeşildi.
Tests 6869 → 6905 (+36) · Playwright 176 · kapsam 98.4 % satır / 89.9 % dal · registry değişmedi: 123 sources = 118 EN + 5 RU · 118 adapters.
[1.262.4] — 2026-10-30
Düzeltildi
ja, token-yoğun değerlendirme yerel ayarlarına katılıyor (ja→ 32768-token tavanı + 480 s saati). prod v1.262.3 üzerindeki 5-yerel-ayarlık hedefli yeniden koşu, gecenin dört502 · 300 s · 0 chzaman aşımını geçiciler ve deterministikler olarak ayırdı: ar (250 s), ko (291 s) ve zh-CN (259 s) yeniden koşularından geçti, ru’nun tek seferlik dil sürüklenmesi tekrarlanmadı — amajastandart tavanda sıfır çıktıyla iki kez duvara çarptı (tam ×19 koşu 40981578549 ve hedefli yeniden koşu 41012725839). it/pl ile aynı şekil sınıfı. Red-first sabitleme:evalMaxTokens('ja') = 32768,evalTimeoutMs('ja') = 480_000, diğer yerel ayarlar 300 s tutuyor.
Notlar
- Bilinçli olarak tek-amaçlı bir yama:
jadüzeltmesi bu sürümün taşıdığı tek değişiklik — başka hiçbir şey taşımıyor. Gecenin kanıtına göre ar/ko/zh-CN standart tavanda kalıyor (geçiyorlar; gecenin başarısızlıkları sağlayıcı yükü geçicileriydi) ve ru’nun sürüklenmesi tek seferlik bir üretim feyk’iydi.
Tests 6868 → 6869 (+1) · Playwright 176 · registry değişmedi: 123 sources = 118 EN + 5 RU · 118 adapters.
[1.262.3] — 2026-10-30
Düzeltildi
- pl, token-yoğun değerlendirme yerel ayarlarına katılıyor (
pl→ 32768-token tavanı + 480 s saati). prod v1.262.1 üzerindeki tam remote-QA, Lehçe evaluate’in standart tavanda öldüğünü yakaladı —502 · openrouter · 300 s · 0 ch— ve v1.262.2 ile gönderilen hedefli yeniden koşu onu birebir yeniden üretti (koşular 40960568766 ve 40968958062): 18/19 yerel ayar A–G’den geçti,ittoken-yoğun 480 s saati içinde 302 s’de bitti,plise sıfır çıktıyla iki kez duvara çarptı. Deterministik bir zaman aşımı, bir feyk değil — v1.262.1’deit’i bu kümeye taşıyan şekil sınıfının aynısı. Red-first sabitleme:evalMaxTokens('pl') = 32768,evalTimeoutMs('pl') = 480_000, 18 standart yerel ayar 300 s tutuyor.
Notlar
- Bilinçli olarak tek-amaçlı bir yama:
pldüzeltmesi bu sürümün taşıdığı tek değişiklik — başka hiçbir şey taşımıyor; v1.262.2 inceleme-kuyruğu içeriği ayrı gönderildi.
Tests 6867 → 6868 (+1) · Playwright 176 · registry değişmedi: 123 sources = 118 EN + 5 RU · 118 adapters.
[1.262.2] — 2026-10-30
Düzeltildi
- Dalga-incelemesi kuyruğu — 7 düşük-şiddetli bulgu, her biri red-first. CSV içe aktarma ters-bölü gidiş-dönüşü: bir hücredeki
\yazılırken ikiye katlanıyor ve geri okunurken de ikiye katlanmış kalıyordu, böylece aynı CSV’nin yeniden içe aktarımı şirket+rol tekilleştirmesini kaçırıyor ve yinelenen bir satır oluşturabiliyordu — okuyucu artık bölme işleminden sonra\\kaçışını geri çözüyor (yaz→oku gidiş-dönüşü kayıpsız, yeniden içe aktarım tekilleştiriyor). cv-voice<head>kırpma, kapanmamış etiketlerde ikinci derecedendi — rotanın tavanladığı 64 KB girdi üzerinde 4827 ms → 13 ms.statedYearsMin,years_minyapılandırılmamışken bile her kaynağın her işi için tam yıl-ayrıştırıcısını çalıştırıyordu — artık tembel (lazy), büyük tarama başına saniyelerce CPU ortadan kalktı. readdir ile statSync arasında silinen bir capture, posting-guard listelemesini çökertiyordu (TOCTOU — kaybolan dosyalar atlanıyor). MiniMax CN varsayılanı yalnızcaapi.minimax.cnile tam eşleşme arıyordu — artık herhangi bir*.minimax.cnbase URL’si CN modelini alıyor. Hex referansı olmayan Deel$-token’ları artık özete sabit-metin olarak sızmıyor. İçe aktarma seçici,file.text()’ten ÖNCEfile.size’ı kontrol ediyor — 512 KB sunucu tavanı, tarayıcı olası bir dev dosyayı ayrıştırdıktan sonra ancak 413 döndürüyordu — yerelleştirilmiş birimport.tooLargetoast ×19 ile. - Deploy workflow’unun sağlamlaştırılması (workflows incelemesi F1–F6).
provider, karakter-seti doğrulaması olmadan uzak kabuğa yerleştirilen tek girdiydi — değer içindeki bir'tırnaklamayı kırıyor ve prod’da keyfi kod çalıştırıyordu; artık herhangi bir birleştirmeden önce^[A-Za-z0-9_-]+$beyaz listesiyle doğrulanıyor ve anahtar-koruma grep’i artık yanlış geçemez. hermes teşhis adımı ham journalctl + unit dökümlerini genel günlüğe basıyordu; filtresi büyük harfli*_API_KEY=’i kaçırıyor ve hiçbir şeyi maskelemiyordu — artık üç çıkış kanalında paylaşılan büyük/küçük-harf-duyarsız ayıklama + değer maskeleme + 80 karakter kırpma var,?token=sorgu dizeleri de maskeleniyor. hermes adımıinputs.app_dir’i yok sayıyor ve/opt/career-ops/src/.envyolunu sabitliyordu.public_url, bir https kontrolü olmadan curl’a ulaşıyordu (başındaki-ile seçenek enjeksiyonu). Ve anti-downgrade koruması — v1.238.0 olayının düzeltmesi — hiçbir yürütülebilir kapısı yoktu: ci-workflows’a altı yeni sabitleme (refs’in varsayılanı yok, koruma Deploy’dan önce çalışıyor, katı refs regex’i). - İçe aktarma modalı kuyruğu (SPA incelemesi). Modal, outcome modalıyla aynı nav guard’ı kuruyor — sayfadan ayrılmak artık onu başka bir görünümün üzerinde yetim bırakmıyor. Gizli dosya girdisi artık yalnızca
change’de değilcancel’de de kaldırılıyor — art arda iptaller document.body’ye girdi elemanları sızdırmıyor.plan.duplicates, önizlemede korumalı biçimden okunuyor. Trackernumtahsisi,Math.max(...spread)yerinereducekullanıyor — spread ~100 bin satırda argüman sınırına çarpıyor.
Değişti
- Dokümantasyon: yardım kılavuzunun «118 EN adapters» maddesi fr/it/ta’da da sayıyı taşıyor (diğer 15 yerel ayarda zaten vardı). cvstart.org’daki satıcı fiyatları resmi fiyatlandırma sayfalarına karşı yeniden doğrulandı — dördü de değişmedi, CHECKED_ON → 2026-10-30. Sürüm-sonrası sürüklenme taraması, README ×19, CONTEXT.md, CLAUDE.md ve SDD kılavuzlarında 42 bayat sayı/sürüm satırını düzeltti (109/104 dönemi ve v1.262.0 dönemi kalıntıları).
Notlar
- Bilinçli eylemsizlik: cv-studio’nun yerel
window.confirm’i (CAR-179 dönemi) kalıyor — onuUI.confirm’e dönüştürmek bir takip işidir, yama maddesi değil;<mark title>kalıp-ifade tooltip’i yalnızca-tooltip olarak kalıyor (kabul edilebilir a11y tabanı);remote-qa.yml,cancel-in-progress: truetutuyor — yeniden gönderme, çalışan bir regresyonun yerini kasıtlı olarak alıyor. - prod v1.262.1 üzerinde tam remote-QA: routes ×19 ✓ · site ×19 ✓ · links ✓ · canlı LLM 18/19 yerel ayarda A–G ✓ —
pltek bir502 · 300 s · 0 chsağlayıcı zaman aşımı yedi (token-yoğun bölge değil; hedefli yeniden koşu bu sürümle gidiyor). - Testler 6841 → 6867, sürüm dalında (6864 pass / 0 fail / 3 skip, +26 vs v1.262.1) · Playwright 176 · kapsam 98.42 % satır / 89.94 % dal · registry değişmedi: 123 sources = 118 EN + 5 RU · 118 adapters.
[1.262.1] — 2026-10-29
İtalyanca değerlendirme yaması: OpenRouter dönemi raporu SCORE_SUMMARY bloğunun hemen önünde keserken yakaladığı için it token-yoğun yerel ayarlara katılıyor (32768 token tavanı + 480 s saati) — ve bu tanıyı mümkün kılan sağlayıcı geçiş araç takımı deploy workflow’una geliyor.
Düzeltildi
itdeğerlendirmesi SCORE_SUMMARY’den önce kesildi (CAR-190 kuyruğu): remote-QA 40928864980 (yeniden doldurulan kredilerle ilk koşu) — biritdeğerlendirmesi 264 s koştu ve 15 045 karakterle döndü, 16 384 tavanındatok ~15635: A–G blokları sağlam,---SCORE_SUMMARY---yok. v1.261.1’de (CAR-174)ta’ya tavanını kazandıran şekil sınıfının aynısı.it,TOKEN_DENSE_EVAL_LOCALES’e katılıyor (ta,hi→ta,hi,it): hem 32 768 token bütçesi hem de 480 s saati artık uygulanıyor ve/api/evaluate+ auto-pipelinellm.mjs’teki tek doğruluk kaynağında kalıyor.- Bloksuz en raporu — tek seferlik üretim feyki: Aynı koşu tek bir
endeğerlendirmesinin dili doğru ama A–G bloklarının hiçbiri olmadan döndüğünü gördü; hedefli bir yeniden koşu tertemiz geçti (21 091 karakter, A–G ✓). Token-yoğun kümeye eklenmedi — bir feyk tarih değildir.
Eklendi
- Deploy workflow’u:
mode=hermesvemode=provider(CAR-190 operasyon kuyruğu):mode=hermesHermes gateway’ini yeniden başlatır ve tam bir teşhis basar (sırları ayıklanmış unit dosyası, önce/sonra dinleyiciler, sudo günlüğü, port-port sondalar, uygulamanın kendiHERMES_BASE_URLgörünümü, OpenRouter kredi bakiyesi);mode=providerbir anahtar-varlığı korumasıylaLLM_PROVIDER’ı değiştirir (hedef sağlayıcının*_API_KEY’i yoksa reddeder) ve uygulamayı yeniden başlatır — Hermes kredileri yolda bittiğinde prod’unopenrouter’a geçtiği yöntem budur. Deploy-modu ref koruması yalnızcamode=deployiçin doğrulanıyor, böylece recon/verify gönderimleri yeniden çalışıyor (v1.261.3 dönemindeki required-inputs değişikliği onları sessizleştirmişti).
Notlar
- Bilinçli eylemsizlik:
entoken-yoğun kümeye hiç eklenmiyor — bloksuz tek bir rapor bir üretim feykidir, hacim tarihi değil. - Bilinçli eylemsizlik: pekiştirilmiş ta dil yönergesi
it’e hiç genişletilmiyor — İtalyanca için dil kayması gözlemlenmedi. - Bilinçli eylemsizlik: yeni UI-v2 demo videosunun kaydı owner’da kalıyor (CAR-141) — landing artık her durumda
youtube-nocookie.comüzerinden gömüyor. - Testler 6841 → 6841, sürüm dalında.
[1.262.0] — 2026-10-29
Upstream-özellikleri minor sürümü: Deel iş panosu tarayıcıya katılıyor (registry 123), başka bir tracker’ın CSV’si doğrudan #/tracker’a aktarılıyor, posting-guard bütünlük denetimi ve CV ses denetimi relay/lint olarak geliyor, tarayıcı bir deneyim-yılı filtresi öğreniyor ve yedi dilde daha Apply düğmeleri eksik gibi okunmayı bırakıyor — ayrıca MiniMax’ın emekliye ayrılmış varsayılan modeli değiştirildi ve repost’lar artık kaynaklar arasında uydurulmuyor.
Eklendi
- Deel iş panosu kaynağı (CAR-184): registry 123 kaynak = 118 EN + 5 RU · 118 adapter —
jobs.deel.com/<slug>tenant panolarını otomatik algılar (Klarna ve diğerleri); Next.js flight yükü tüm envanteri tek istekte taşır (başlıklar, konumlar, düzen, tarihler, açıklama), izin verilmeyen/api/yoluna hiç dokunulmaz, iş ilanlarını başka yerde yayınlayan bir tenant, kaynağın adıyla reddettiği bir redirect ile yanıt verir ve ücret bilgisi bilinçli olarak eşlenmemiş bırakılır (ödeme aralığı olmayan tutarlar bir tahmin olurdu); count kapıları ×5 + help §17 ×19. - Tracker CSV içe aktarma (CAR-181): dry-run önizlemeli ve kilitli commit’li
POST /api/tracker/import-csv— RFC-4180 tırnaklama, ISO / gün-önce / ay-adı biçimlerinde tarihler, yabancı tracker aşamaları kanonik durumlara katlanır (bilinmeyen bir aşama notla birlikte Evaluated olarak gelir, asla atılmaz), markdown-link hücresinden veya Notlar sütunundan okunan normalize edilmiş ilan URL’siyle tekilleştirme, sınırlar 512 KB / 2000 satır;#/tracker, önizleme modallı bir CSV İçe Aktar düğmesi kazanır, i18n ×19. - Posting guard relay’i (CAR-182):
POST /api/runners/posting-guard— parent’ın deterministik sıfır-LLM JD bütünlük kapısı,jds/capture önek kuralıyla (doldurulmuş ya da değil, tam-sayı karşılaştırmalı) rapor numarasından veya açık, temizlenmiş bir yoldan çözülür; çocuk yalnızca argv, 30 sn’lik bir tavan ve fail-soft bir sözleşme alır;#/reports/:slugüzerindeki bir «Posting guard» eylemi bulguları gösterir, i18n ×19. - CV ses denetimi (CAR-188): özgeçmişlerdeki 27 kalıplaşmış ifade (
passionate about,proven track record,leveraged,spearheaded,delve…) artı kısa çizgi bulguları (2022–2024 gibi bir yıl aralığı bir iz değildir;20–30%öyledir) salt-okunurPOST /api/cv-studio/voice-checkolarak ve birebir eşleşmeleri vurgulayan bir#/cv-studiokartı; Tailor kontrol listesi altı değişmeze büyüyor; i18n ×19. - Deneyim-yılı tarama filtresi (CAR-180): jd-years ayrıştırıcısı (65 ifade, emin olmadığında asla atmaz) ilan açıklamalarından belirtilen alt sınırı okur, yeni bir
years_min:portals seçeneği yetersiz-nitelikli ilanlarıskipped_experienceolarak atlar (asla bir URL’yi sabitlemeyen gözlemsel bir geçmiş durumu) veyearsMingelecekteki UI için tarama snapshot’ında yolculuk eder. - Yedi dilde daha Apply denetimleri (CAR-185/189): Vietnamca
Nộp đơn ứng tuyển, BulgarcaКандидатствай/Кандидатстване/Външно кандидатстване(isim etiketin başına sabitlenir — tavsiye-makalesi bağlantıları Apply değildir), FelemenkçeSolliciteer/Solliciteren, İspanyolca¡Apúntame!/Postularse(etiketler, fiil değil — SSS bağlantıları artık önemsizdir), Çince申请职位/投递(denetimin tamamına sabitlenir) — bu panolardaki canlı ilanlar artıkno_apply_controlokumuyor.
Düzeltildi
- MiniMax varsayılan modeli (CAR-187): emekliye ayrılmış
MiniMax-Text-01varsayılanı,api.minimax.ioüzerindeMiniMax-M3.1-Flashveapi.minimax.cnüzerindeMiniMax-M3ile değiştirildi; temel URL satıcıya sabitli (satıcı-olmayan bir ana bilgisayar çalışma zamanında reddedilir ve anahtar ona hiç ulaşmaz); ayarlar ipucu ×19 yeni varsayılanları adlandırıyor. - Repost’lar aynı kaynağı gerektiriyor (CAR-186): LinkedIn’de ve işverenin Greenhouse’unda listelenen bir rol artık repost olarak bildirilmiyor — kümeler artık
sourceHost()’a göre bölünüyor; bu, bölgesel alt alan adlarını yalnızca bilinen sitelerde katlar (de.linkedin.com≡www.linkedin.com, amaca.example.comayrı kalır), Greenhouse ana bilgisayar takma adlarını tek kaynakta birleştirir ve sondaki noktayı soyar. - Tamilce değerlendirme dil-sürüklenmesi (CAR-183): güçlendirilmiş bir Tamilce yönergesi artık hacim bütçesinin yanındaki uçucu prompt kuyruğunda oturuyor (CAR-174 yuvası) — v1.261.2’de görülen aralıklı sürüklenmenin ardından remote-QA raporları yeniden Tamilce’ye düşüyor.
Notlar
- Bilinçli eylemsizlik: posting-guard relay’i fail-soft olarak geliyor — fork, parent’ın
posting-guard.mjsdosyasını henüz hiç taşımıyor (upstream PR #6146 hâlâ açık), bu yüzden bir parent senkronizasyonu onu sevk edene dek uç nokta{available:false, reason:"script-not-found"}yanıtını veriyor. - Bilinçli eylemsizlik:
yearsMinbu sürümde bir#/scanUI çipi olarak hiç görünmüyor — alan snapshot’ta yol alıyor ve filtre yalnızca portals-config. - Bilinçli eylemsizlik: upstream modes/reports Machine Summary değişiklikleri (#6161/#6160/#6157) hiç port edilmedi — web-ui aynaları olarak değil, dağıtılmış parent ile geliyorlar.
- Testler 6734 → 6841, sürüm dalında; tarayıcının dedup anahtarına dokunulmadı (URL-normalizasyon davranışı hiç değişmedi).
[1.261.3] — 2026-10-28
Tasarım-tamamlama yaması: Lovable tasarım fazı 3 (yoğunluk + coral’ın tamamen emekli edilmesi), tarama ana bilgisayar havuzu (32 şirket, ana bilgisayar başına 10), altı upstream sağlayıcı konum düzeltmesi, Trakstar Hire kaynağı (kayıt defteri 122), CV Studio geri alması + kaydedilmemiş-değişiklik koruması — artı nihai-regresyon P3 düzeltmeleri ve dokümantasyon paritesi.
Düzeltildi
- Harita kümesi «related» etiketi 3.16:1 → 4.68:1 (her iki tema): açık temadaki
--map-score-mid#567b75’e koyulaştırıldı (önerilen#5f7f7ayalnızca 4.37 ölçtü — bir adım daha koyu gerekiyordu); koyu taraf zaten 4.98:1’di, dokunulmadı.map-cluster-visualiçinde red-first sabitlemesi. - Skip-link odak halkası: son kalan literel
#ff385ckonturu →var(--accent-c)— 78 odak halkasının tamamı artık accent token’ını izliyor. .tab-btn.is-activeaccent topolojisi (#584, faz 3): denetim üç renk ailesini karıştırıyordu (açık coral dolgusu + danger metni + mavi kenarlık); artık tek bir accent-soft çifti.- Upstream sağlayıcı konum düzeltmeleri ×5 (#580, CAR-176): workday
Fully Remotebayrağı (bir yer değil), workable telecommuting fan-out’u + eyaletin yalnızca şehir yokken eklenmesi, successfactors sondaki virgül, lever remote kelime-sınırı, icimsLocation-önekli etiketler. - http-json: tükenmiş zaman aşımında yeniden deneme yok (#580) — son-tarih iptali her iki yeniden-deneme yardımcısında da geçici değil (upstream, 30sn×yeniden-denemelerle bir Ashby panosunda ~94sn ölçtü).
- Dokümantasyon paritesi (#587): HANDOFF/CONVENTIONS/README içindeki son 17/18-dönemi sayaçları (uk, eksik Локалізація bölümünü aldı; §-geçmişi §32/§33’e uzatıldı — 33 H2 aritmetiği doğrulandı).
Eklendi
- Lovable tasarım fazı 3 (#584): yoğunluk token’ları canlı — tablo satırları ≈32px, denetimler 30px, çipler 24px (WCAG 2.5.8 boşluk istisnası); her coral rgba kalıntısı cv3 çiftlerine taşındı (
.dash-hero,.badge-bad, haleler,.tab-btn.is-active);--ease-outtanımlandı, TOKEN_HANDOFF boş;.callout--ok/--dangersözleşmesi. - Trakstar Hire kaynağı (#583, CAR-177): kayıt defteri 122 kaynak = 117 EN + 5 RU · 117 adaptör — ana bilgisayara sabitlenmiş jsapi.recruiterbox.com, kısa/boş/tekrarlı duruşlarla offset yürüyüşü, kısmiler korunuyor,
trakstarTruncatedetiketlemesi; sayaç kapıları ×5 + yardım §17 ×19. - Tarama ana bilgisayar havuzu (#579, CAR-178): eşzamanlı 32 şirkete kadar, ana bilgisayar başına 10 ile sınırlı (upstream anahtarlı-limiter deseni) — anlık görüntü sıralı koşuyla bayt-birebir özdeş (red-first zamanlama-sahte kapısı).
- CV Studio geri alması + kaydedilmemiş-değişiklik koruması (#582, CAR-179): QWERTY-olmayan düzenlerde güvenli
Cmd/Ctrl+Zile AI-koşusu sonuçları üzerinde sınırlı bir geri alma yığını (30), rotadan ayrılırken kaydedilmemiş-değişiklik koruması (canlı-probe ile kirli kontrolü, confirm/rewind/beforeunload), i18n ×19. - Upstream sağlayıcı düzeltmeleri ×17 test edildi (CAR-176’nın parçası); remote-QA özeti başarısız tarama kaynaklarını adlandırıyor + eval başına
tok ~N(#567, v1.261.2’de zaten mevcut — bu sürümün triajında gözlemlenebilirlik kullanıldı).
Notlar
- Accent artık mavi (Lovable konsepti): birincil eylemler/aktif durumlar/odak halkaları
--cv3-accent’ı izliyor; kırmızı danger için saklı (.btn-danger,toast.error, danger metni). Coral yalnızca logo PNG varlığında yaşıyor (sahibin kararı). - Yoğunluk: tablo satırları ≈32px / denetimler 30px / çipler 24px — WCAG 2.5.8 boşluk istisnası belgelendirildi; v1.26.1’in 44px kanaryası token sözleşmesi üzerine yeniden yazıldı.
- CodeQL: açık 10 uyarının tamamı kapatıldı (4’ü gerekçeyle FP olarak kapatıldı — belgelenmiş sınıflar: llmRateLimit/atomicWrite; 6’sı kaynakta düzeltildi).
- Testler sürüm dalında 6655 → 6734; yeni Trakstar kaynağının ötesinde hiçbir tarayıcı-kaynak davranışı değişmedi.
[1.261.2] — 2026-10-28
Kararlılık + cilalama yaması: geocode önbelleği yazım-ortası bir çökmeyi atlatıyor (CAR-173), UI.md madde-işareti devamlarını ve iç içe listeleri render ediyor, yardım paketlerindeki render-edilen-metin anahtar sızıntıları ×17 kapatıldı, evaluate ta için yerel-ayar duyarlı bir token tavanı alıyor (CAR-174), RTL chrome mantıksal özelliklerle aynalanıyor (85 bulgu), harita yakalamaları ×19 yeniden çerçeveleniyor ve harita kümeleri koyu temada kontrastı geçiyor — artı Lovable tasarım entegrasyonunun ilk fazı (pasif tokens-v3.css sayfası), dokümantasyon geri-doldurması (sürüm incelemesi + şartnameler) ve CI-düğüm kapsam muafiyetleri.
Düzeltildi
- Geocode önbelleği yırtık-yazma kaybı (CAR-173, #562): her iki flush yolu da (gecikmeli insert-flush, çıkış-flush)
.cache/geocode.jsondosyasını çıplak birwriteFileSyncile yazıyordu — önce-kırp-sonra-yaz — böylece yazım ortasında bir çökme, OOM veya SIGKILL yırtık bir dosya bırakıyor ve bir sonraki açılışınJSON.parse’u hata fırlatıyordu; gününki değil tüm kalıcı önbelleği (haftalarca Nominatim bütçesi) sessizce çöpe atıyordu. Her iki yazım noktası da artıkfile-lock.mjs::atomicWriteüzerinden gidiyor (aynı dizinde geçici dosya → rename → başarısızlıkta unlink) — FULL-R1/FULL-M1’inpipeline.md,cv.md,profile.yml,career-plan, batch girdisi ve memory’ye uyguladığı sözleşmenin aynısı. CAR-142 flush mekanizmasının kendisi (gecikmeli insert-flush, çıkış-flush, sınırlı kapanış) red-first doğrulamayla sağlam olduğu kanıtlandı: testler (a)/(b), eklemelerinGEOCODE_SAVE_MSpenceresi içinde dosyaya ulaştığını ve geçerli JSON olarak kaldığını kilitliyor; (c) bir mekanizma kapısı artı her iki flush yolunun davranışsal çalıştırmaları — geçici-dosya artığı kalmadığını ve dosyanın ayrıştırılabilir olduğunu doğruluyor. - UI.md liste devamları (#563): liste işleyicisi yalnızca arka arkaya gelen
-/*satırlarını tüketiyordu; böylece bir maddeden sonraki girintili devam satırı üretilen<ul>’in dışına düşüyor ve paragraf geçişi parçayı atlıyordu — devam satırı**/ters-tırnak işaretleriyle çıplak düzyazı olarak sızıyor (yardım paketleri boyunca yerel ayar başına ~95 sarkan metin dizisi; en.md 95, ru.md 104). Bir devam satırı — baştaki boşluk, yeni bir blok değil (başlık, madde, NUL-sarmalı fence yer tutucu, boş satır) — artık önceki<li>’ye<br/>ile birleştirilmiş metin olarak katılıyor; vurgu işaretlerinin birleşimin ötesinde asla eşleşmemesi içininline()satır satır çalıştırılıyor; fence-yer-tutucu koruması NUL-ilk-karakter üzerine kurulu, çıplak bir token eşleşmesi değil. İç içe-maddeleri, numaralı listeler, liste içindeki fence’ler ve liste içindeki başlıklar belgelenmiş ayrı bir boşluk olarak kalıyor (sonraki docs dalgası). - Yardım render-edilen-metin anahtar sızıntıları ×17 (#561): remote-QA, render edilen yardımda görünen 85 çiğ i18n anahtarı buldu (kök neden yeniden-üretimle kanıtlandı: aynı UI.md tek-satır-madde tüketimi — sarılmış bir devam satırı çiğ metin olarak üretilirken ters tırnaklarını düz tutuyordu; v1.260/261 yardım bölümleri çok satırlı maddeler yazmıştı). 163 madde 17 yerel ayarda tek satıra açıldı — yalnızca boşluk değişikliği, çevrilmiş tek bir sözcüğe bile dokunulmadı (eski-yeni karşılaştırması doğrulandı). Yeni kapı
tests/help-rendered-keys.test.mjsher paketi gerçek zincir üzerinden render ediyor (stripGithubOnlyBlocks+ vm ile yüklenenUI.md) ve 1711 anahtardan herhangi biri metinde görünürse başarısız oluyor; red-first 17 yerel ayar → yeşil. Yeniden-üretim araçları depoya giriyor:scripts/remote-qa/help-render-scan.mjs(vm) +help-render-crosscheck.mjs(gerçek DOM). - Remote-QA Ctrl+K CAR-122 palet sözleşmesini doğruluyor (#561):
prod-regression.mjsartık Ctrl+K’dan sonra komut paletini bekliyor (.nav-v2-palette[role=dialog]+ odaknav-v2-input’ta) VEYA geri-dönüş olarak eski arama-odaklanmasını; ikisinden birini sessizce kabul etmek yerine. Birim testitests/remote-qa-ctrl-k.test.mjssahte bir DOM üzerinde 6 senaryoyu kilitliyor, red-first 0/6 → 6/6. - Harita yakalama çerçevelemesi ×19 (#560):
images/job-map-en.pngüzerinde sahibin raporu — üstte topbar aramasının yarısı + kesilmiş bir h1, sağ kenarda yan listenin gri bir kıyısı, Londra yakınlarında çerçeveyle kesilmiş bir işaretçi kümesi ve haritada ~2/3 yükseklikte haritayı enine kesen beyaz bir yatay çizgi.capture-map-screenshots.mjsartık geocode kuyruğunun boşalmasını bekliyor (located + noLoc === total, N/N sayacı değil — Remote satırları yapısal olarak konumsuz, dolayısıyla eski bekleme asla tamamlanamıyordu), çekim içinheader.topbarve#notif-drawer’ı gizliyor, tam.job-map-pagekutusunu kırpıyor (çerçeve kenarıyla kesilen panel yok), hiçbir küme yarım kesilmesin diye iki adım uzaklaştırıyor, harita yüksekliğini sabitliyor ve düz bir görüntü-alanı ekran görüntüsü alıyor (captureBeyondViewportbirleşik döşeme katmanını yeniden örnekliyor ve döşeme-satır sınırlarında beyaz şeritler boyuyor), ayrıca harita kapsayıcısını tamsayı hizasına oturtuyor. 19 job-map yakalamasının tamamı yeniden çekildi. - Harita küme baloncukları — koyu-tema kontrastı + etiket sığması (#572): sahibin taraması P2/P3 — koyu temadaki küme halkaları sabit bir beyaz dolgunun üzerinde duruyordu (1.83:1); halkalar artık skor-paleti rakamlarıyla
var(--paper)alıyor (ölçülen 4.98:1+, dolguda 9.53:1; en düşük bant koyu temada matematiksel olarak renklendirilemez ve dürüst birdata-dimyoluyla 6.1:1’i koruyor) verelatedetiketi baloncuğuna sığıyor (rAF yazı-tipi-sığması, rakamlar asla küçülmüyor). - #/scan dil değişimi — iskelet yeniden-kurulumu (#534 takibi, ajan yolda, etiketten önce iniyor): v1.261.0 sahibin düzeltmesine (#534) takip — dil değişimi yeniden-boyamasında yeniden kurulan iskeletler tamamlanmış bir yeniden-getirmenin ardından artık hayatta kalmıyor.
- Dokümantasyon sapması (CAR-139, ajan yolda, etiketten önce iniyor): README ×19 sayaçları, HANDOFF ×19, CONVENTIONS olguları canlı kayıt defteri/test durumuyla yeniden eşitlendi.
Eklendi
- Sürüm incelemesi + şartname geri-doldurması (docs, #559/#558):
docs/reviews/REVIEW-2026-10-28-v1.261.1.md(v1.261.0/v1.261.1 dalgası kendi şartnamelerine karşı incelendi) ve aynı dalga için SDD şartname geri-doldurması — BACKLOG kuyruğu artık kalan boşluğu adlandırıyor (sources/habr.mjsiçin özgül testler). - RTL derin taraması (#571): AR düzeneği 39 rotayı LTR-karşı-RTL dolaşıyor (X-aynası, taşma, kırpılma, text-align imzaları) — 85 bulgu düzeltildi: sabit chrome öğeleri (toast, sidebar, drawer + onun kapatma ×’i, docs-FAB, usage-HUD, skip-link)
inset-inline-*/border-inline-*’a taşındı, tablolar 17 görünüm dosyası + 2 kütüphanedetext-align: start/end’e geçti, toplu[dir=rtl] text-align:rightkuralı kaldırıldı (scan yıldız-sütunu ortalamasıyla çelişiyordu), CAR-58 skor-sütunu izolasyonu birltrNumspan’ına taşındı. - Klavye a11y düzenek (#570):
tests/playwright-a11y-keyboard.mjs11 rota dolaşıyor (Tab sırası/tuzakları, odak göstergeleri, Escape kaplamaları, Enter/Space) — 0 üretim hatası; regresyon kapsamı yeni. - i18n çevrilmemiş taraması (#565): 36 en-özdeş değer ×9 yerel ayarda çevrildi (
*.rolePh, config anahtarları, ta manifestosu) + beyaz-listeye dayalı kapalı bir tarama koruması; site (cvstart.org) i18n denetimi (#568): 20 anahtar × 18 yerel ayarda çevrildi (demo.*/stats.t.*/showcase.tab*bloğunun tamamı her yerde İngilizceydi), 1 ölü anahtar ×19 kaldırıldı. - Remote-QA gözlemlenebilirliği (CAR-175, #567): özet, başarısız olan tarama kaynaklarını adlandırıyor (
stderr örnekleri, kırpma-öncesi maskeleme) ve sağlayıcı kullanımındantok ~Nyazdırıyor; mantık, bir sapma kapısıyla birlikte saf birsummary-parts.mjsiçinde duruyor. - UI.md iç içe işaretçi listeleri (tek düzey, #564):
-maddeleri iç içe bir<ul>olarak render ediliyor (fence-yer-tutucu-güvenli) — yerel ayar başına son 2 sarkan düzyazı dizisi gitti. - Lovable tasarım entegrasyonu — faz 1 (#566) / faz 2 (dal, etiketten önce iniyor):
public/css/tokens-v3.cssLovable konseptini harfi harfine taşıyor (oklch yüzeyler 0–3, AA-ek-açıklamalı mürekkep çiftleri, accent ailesi, ok/warn/danger/info/neutral yumuşak+mürekkep, skor bantları A–G ×2 tema, yoğunluk + odak + gölgeler); faz 2 onu mevcut token adları üzerinde etkinleştiriyor (accent blue/danger diye bölünüyor, cv3 token’ları üzerinde skor bantları + callout’lar), kontrast/rol/koyu kapıları güncellenmiş olarak. - Evaluate yerel-ayar duyarlı token tavanı (CAR-174, #569):
evalMaxTokens(lang)— ta/hi 32768 istiyor (üç SDK istemcisi 16384’te yeniden kırpılıyordu; her iki katman da düzeltildi), artı prompt’ta bir Tamil hacim bütçesi (blok başına ≤5 cümle, ≤900 sözcük) — v1.261.1 remote-QA ta raporu çıkış-token sınırında kesilmişti (Block B–G + SCORE_SUMMARY eksikti). - CodeQL gerçek-düzeltme takibi: yeni QA render araç takımı, elle yazılmış varlık işlemey yapısal bölme geçişleri +
htmlToText({cap: Infinity})ile değiştirdi; maskeleme doğrulamaları maskelenmiş çıktının birebirini sabitliyor; RTL düzeneğinin kullanılmayan sabitleri temizlendi. - CI-düğüm varyansı için Coverage muafiyet politikası (habr #558, states #561):
sources/habr.mjs(CI node-matrisi dal kapsamı 87.23, yerel ≥89’a karşı) vestates.mjs(CI 86.49, yerel ≥89’a karşı)scripts/coverage-baseline.jsoniçindeki muafiyetlere katılıyor — node-sürüm varyansı nedeniyle CI’da ölçülen dal kapsamı yerel tabanın yapısal olarak altında kalan dosyalar, tüm kapıyı aşağı kırmak yerine muaf tutuluyor.
Notlar
- Ctrl+K sözleşmesi (CAR-122): akor komut paletini açar — arama kutusunu doğrudan ODAKLAMAZ; arama paletten odaklanır. Remote-QA prod regresyonu artık tam olarak bunu doğruluyor (#561).
- CodeQL yanlış-pozitif kapatmaları ×5: main’deki
js/missing-rate-limitinguyarılarısecurity_eventstoken’ını bekliyor — operatör eylemi, kod değişikliği değil. - Dal kesiminden sonra indi: #561/#562/#563/#564/#565/#566/#567/#569/#570/#571/#572’nin tamamı main’e birleştirildi; #534-skeleton ve CAR-139 ajanları etiketten önce birleşiyor. Tek düzeyin ötesindeki iç içe işaretçi listeleri ve inline-ağırlıklı görünüm geometrisi belgelenmiş boşluklar olarak kalıyor.
- Test tabanı: sürüm dalında 6609 (v1.261.1’den beri +15; birleşme anında #561’den ~13 daha — 2 yeni kapı dosyası); fan-out öncesindeki tek kırmızı testler CHANGELOG ×19 parite kapıları (yerel ayar fan-out’u orkestratörün bir sonraki adımı); hiçbir tarayıcı kaynağına dokunulmadı (kayıt defteri 121 = 116 EN + 5 RU · 116 adaptör).
[1.261.1] — 2026-10-28
prod-QA istemci yaması: #/two-pager için bir P1 çökme düzeltmesi, Ctrl+K’nın QWERTY-olmayan klavye düzenlerinde çalışması, 390px mobil dalgası (docs-assistant taşması, harita çiplerinin üst üste binmesi, 39 rotalı bir düzenek), CAR-137’nin tamamlanması (özgül hatalar, v2empty ×5, ipuçları ×13 + mode sayfaları) ve CAR-140’ın gerçek v2 ekran görüntülerini her yere indirmesi.
Düzeltildi
- two-pager TDZ (CAR-170, P1, #554):
Cannot access 'previewTimer' before initialization— kurulum döngüsü sözcüksel olaraklet previewTimer’ın üzerinde dururken, kaydedilmiş etiketler düzenleyicisi geri yüklenen her çip için kurulum sırasındaonChangetetikliyordu; böylece#/two-pagerrender’ının tamamı çöküyordu (h1 yok, ×19 yerel ayar). Zamanlayıcı + bağlama artık döngünün üzerinde duruyor; davranışsal bir test gerçek görünüm modülünü yürütüyor — düzeltmeden önce birebir prod hatası, sonrasında render edilmiş bir sayfa — artı bir sözcüksel-sıra sapma kapısı. - QWERTY-olmayan klavye düzenlerinde Ctrl+K (CAR-172, #554): her iki akor işleyicisi de yalnızca
e.keyile eşleşiyordu — Rusça bir klavye düzeninde akorkey='л' code='KeyK'olarak geliyordu ve hiçbir şey yapmıyordu. nav-v2.js ve app.js’tee.code === 'KeyK'üzerinden eşleştiriliyor; sentetik bir ‘л’/KeyK akoruyla gerçek bir tarayıcıda yeniden üretildi. CAR-122 sözleşmesi yeniden ifade ediliyor (bkz. Notlar). - docs-assistant 390px taşması (CAR-172, #554): CAR-136 başlangıç çipleri
.btnidi (nowrap,flex-shrink: 0) — kırılamayan bir 418px öge,#/docs-assistant’ı 390px görüntü alanının 56px ötesine itiyordu; CAR-146 daraltma deseni (v2-llm.css içinde; 800-LOC CSS kapılarına dokunulmadan) bunu 0’a indiriyor. - Harita çiplerinin üst üste binmesi @390 (#552): 390px görüntü alanında harita meta çipleri CTA satırının üzerine biniyordu (map.css).
- CAR-137 — özgül hatalar + v2empty ×5 (#550): beş genel hata geri-dönüşü (‘Error’ / ‘failed’) özgül, eyleme dönük anahtarlara dönüştü — evaluate POST başarısızlığı, sonlandırıcı olay olmayan bir auto-pipeline akışı, scan→pipeline ekleme, repost-kümeleri yükleme, pipeline geri alması; son beş düz boş durum (
#/reports,#/usage,#/portals,#/activity,#/dashboard) CAR-124 v2empty desenine katılıyor (açıklama + etiketli aria-hidden örnek + önceden bağlanmış eylem; 15 yeniv2empty.*anahtarı, dört ölü tek satırlık anahtar kaldırıldı) — tamamı ×19 sözlükte, birleştirilmiş anlık görüntü yeniden üretildi. - CAR-137 — HelpHint ×13 + mode-sayfa kiti (#550): bağlamsal «?» ipucu artık kalan her sayfa H1’inde (pipeline, reports, dashboard, cv, portals, usage, activity, assessments, map, health, docs-assistant, settings) ve kit aracılığıyla 8 mode sayfasında duruyor (her MODES cfg’si bir
hintKeytaşıyor,HelpHint.titleüzerinden render ediliyor).
Eklendi
- Mobile-390 düzenek (#552): tohumlanmış bir korpusla 390×844 boyutunda her SPA rotasının (31 kanonik + 8 mode sayfası = 39 hash) bir Playwright taraması — rota başına yatay taşma kontrolü (scrollWidth vs clientWidth, 1px tolerans, en geniş ihlalciyi adlandırır) artı bir CTA isabet kontrolü (yapışkan çubuk/çekmece/FAB birincil bir CTA’yı kapatamaz); opt-in, tarayıcı ikilisi yokken zarifçe atlanır, ağsız.
- Taze v2 yakalamaları ×48 (CAR-140 A fazı, #551): tohumlanmış, CI-izole bir fikstürden gerçek v2-arayüz ekran görüntüleri — dashboard ×19 + job-map ×19 (job-map-ta ilk kez görünüyor, job-map-vi yeni) + scan/pipeline/tracker/reports × en/ru — README’yi, yardımı ve landing’i besliyor.
- cvstart.org gerçek ekran görüntüleri (CAR-140 B fazı, #553): CAR-140 yer tutucu yuvaları gitti — landing artık gerçek v2 yakalamalarını gösteriyor (job-map vitrini + ekran görüntüsü satırları, ×19 landing yerel ayarı).
- CAR-137 ipuçları (#550): 21 yeni çevrilmiş anahtar ×19 (
help.hint.*×20 + mode-sayfahintKey’leri) — artık her sayfa kendini yerinde açıklıyor.
Notlar
- Ctrl+K sözleşmesi (CAR-122): akor komut paletini açar — arama kutusunu doğrudan ODAKLAMAZ; arama paletten odaklanır. v1.261.0 QA kontrol listesindeki «Ctrl+K фокусит поиск» satırı geçersiz kılındı; v1.261.1 QA prompt’u güncellenmiş kontrolü taşıyor.
- CodeQL gerçek düzeltmeleri (#547): 4 uyarı kapatıldı (content.mjs sabit-anahtar yinelemesi yapısal hâle getirildi, lint taraması) — bu yamadan önce v1.261.0 main’inde yayın sonrası indi; eksiksizlik için burada listeleniyor.
- Test tabanı: 6582 (+51); tarayıcı süiti 171–172 geçti / 0 başarısız / 1 seçime bağlı atlama; mobile-390 düzenek bağımsız çalışıyor (
node tests/playwright-mobile-390.mjs). Hiçbir tarayıcı kaynağına dokunulmadı (kayıt defteri 121 = 116 EN + 5 RU · 116 adaptör).
[1.261.0] — 2026-10-28
Tam inceleme dalgası 1.261.0 ile tamamlandı (tüm YÜKSEK + ORTA bulgular indi), sahibin bildirdiği dil değişimi düzeltmesi, değerlendirme-kalitesi düzeltmeleri, yardım ×18 fan-out’u, cvstart.org landing v2 — artı dalgayı belgeleyen 4 SDD/OpenSpec şartnamesi. Her düzeltme red→green fix-forward ve bir GLM-5.3-Flash taze-bağlam incelemesinden geçti.
Güvenlik
- FULL-R1 — CSRF acting-GET kapısı + kilitli atomik pipeline yazıları (#519):
/api/stream/*,/api/run/*,/api/geocodeüzerindeSec-Fetch-Site/Origin/Referer kapısı (dışa aktarılanACTING_GET, statik kapsam kapısı); herdata/pipeline.md/data/last-scan.jsonoku-değiştir-yaz’ıwithFileLock+ yeniatomicWritealtında (aynı dizinde geçici dosya → rename → başarısızlıkta unlink). - FULL-R2 — kaynaklarda SSRF kümesi (#514): rss.mjs https+özel-adres reddi; ~25 çıplak-
fetchImplkaynağı korumalı taşıma katmanlarına geçirildi; aynalar sabitlendi; habr/hh/geekjob/getmatch için yönlendirme doğrulaması; paylaşılandelay(ms, signal). - FULL-R4 — stripDangerousMarkdown düzyazı bozulması (#513/#518): şema temizliği artık yalnızca bağlantı/öznitelik bağlamlarında çalışıyor; varlıklar yalnızca saptama amaçlı bir kopyada çözülüyor («JavaScript: React, Node» ve «R&D» artık sağ kalıyor).
- FULL-M2 — taşıma katmanı sertleştirmesi (#520):
safeGet, köprü denetleyicisinin sinyaliyle birliktetimeoutMs’e uyuyor;guardResolvedHostDNS hatasında fail-closed davranıyor. #525, çapraz-köken yönlendirmelerde kimlik-bilgisi başlıklarının soyulmasını, her sonuçlanma yolunda taşıma-dinleyicisi ayrılmasını ve önceden-iptal edilmiş bir sinyalin çökmesini düzeltiyor. - FULL-M4 — logo/batch (#523): logo HER yolda magic byte sabitliyor (yalan söyleyen bir
image/pngSVG taşıyamıyor), depolama anında content-type’ıimage/*ile sınırlıyor, özel önbellek + nosniff; batch:--parallel1–8 aralığına kırpılıyor,--min-scoredoğrulanıyor, BATCH_BUSY tek-uçuş, config/batch mutasyonlarındallmRateLimit.
Eklendi
- CAR-147 — yerel ayar duyarlı değerlendirme tavanı (#524):
evalTimeoutMs(lang)— ta/hi, 300 s yerine 480 s alıyor (Hint yazı sistemleri hece başına birkaç belirteç tokenize ediyor; eski sert süre sınırı 502 + boş rapor üretiyordu); remote-QA istemcisi 540 s bekliyor. - CAR-133 — cvstart.org landing v2 (#532): reduced-motion ile kapılanan paralaks hero, scan→evaluate→tracker akışının açıkça SIMULATED etiketli bir demosu, canlı-doğrulanmış sayımlarla scroll-reveal bölümleri, CAR-140 ekran-görüntüsü yer tutucu yuvaları.
- CAR-135 — arayüz v2 için yardım yeniden yazıldı, ×18 fan-out tamamlandı (#533, #540, #541, #542): 19 yardım dosyasının tamamı v2 kabuğunu anlatıyor (katlanabilir gezinme, Cmd/Ctrl+K komut paleti, iskeletler, örnek+eylemli boş durumlar, scan v2 kabuğu, pipeline gruplu+geri alma, reports v2, kanban); arayüz etiketleri kendi i18n anahtarlarını aktarıyor; 121-kaynak cümlesi kayıt defterinden üretiliyor.
- Şartnameler (SDD/OpenSpec) (#535): oct27 wave-two geri-doldurması + üç ileriye dönük şartname (yardım fan-out’u, yazma devirleri, dil değişimi değişmezleri).
Düzeltildi
- Dil değişimi artık #/scan’i boş bırakmıyor (#534) — sahibin bildirdiği: görünüme-yerel tarama durumu (sonuçlar, facet çipleri) artık modül düzeyinde; 4 s gecikmeli yeniden-getirme ile davranışsal bir Playwright düzeneği (eski biçimde kırmızı).
- CAR-148/149 — ru raporları «Block G eksik» diyor (#530): prompt, birbiriyle tutarsız üç farklı A–G eşlemesi öğretiyordu; iskelet + liste + örnek artık oferta.md ile uyuşuyor (G = Posting Legitimacy); davranışsal sapma kapısı.
- CAR-150 — pipeline geri alması comp meta verisini koruyor (#537): DELETE
compyanıtlıyor, POST kapılı isteğe bağlı bircompkabul ediyor, görünüm{token, comp}’u tüm geri-dönüş dallarında taşıyor. - FULL-M3 — ölü kaynaklar dürüst paneller raporluyor (#522): getro/mycareersfuture/meituan/mokahr/glints bozuk bir 1. sayfada hata fırlatıyor (ölü bir API artık «sağlıklı, 0 iş» gibi okunmuyor);
pinnedOverride, 18 adaptörüncompany.apigeçersiz kılmalarını sabitliyor. - FULL-M5 — tek sağlayıcı basamağı (#521): routes/llm.mjs
runActiveProviderüzerinden yürüyor (+cachePrefix, sinyal); Gemini alt-süreç müdahalesi; yanıt sözleşmeleri bayt-aynı. - FULL-M1 — paylaşılan-dosya yazıları kilitli (#526, #539):
runTrackedScript+TRACKER_MUTATINGkadrosu; outcome/followup alt-süreçleri kilidi tutuyor; tracker.mjsatomicWriteile yazıyor; PUT kayıtları kilitli+atomik. - FULL-M6 — sunucu + istemci konsolidasyonu (#531, #536, #525): dotenv null-prototip +
__proto__reddi; isPrivateOrLoopback NAT64/6to4/benchmark/rezerve; env-config mtime önbelleği; file-lock gerçek yuva GC; safeGet timeout+signal; DNS koruması fail-closed; SSE ×4 →API.postStream; odak/etiket/durum kütüphaneleri; clipboard yazımı artık bekleniyor; dashboard Hired tonu. - R3 — CSS belirteç sapması (#527):
--accentçözümlendi (harita odak halkaları sessizce ölüydü); 11 belirteç-dışı süre belirteç tablosuna katlandı; sapma kapısı. - R4 — yüklemede geride kalanlar (#538): assessments/mode-page/pipeline önizlemesi CAR-112 iskeletlerini render ediyor.
- CodeQL + CI paketi (#517, #539 düzeltmesi): kullanılmayan import’lar; ACTING_GET kapısı gerçek regex’i import ediyor; yaşam-döngüsü dilimi yeniden çapalandı.
Notlar
- Bilinçli olarak yapılmayanlar: bağlantı-anı DNS sabitlemesi (undici gerektiriyor — bağımlılıkların dışında, belgelenmiş kalıntı risk); CAR-140 ekran görüntüleri (dağıtılmış v2 arayüzünü gerektiriyor); CAR-137/138/141 (bir sonraki belge geçişi);
js/missing-rate-limitingCodeQL sınıfı belgelenmiş bir yanlış-pozitiftir (özel limiter kredilendirilmiyor). - Yardım ×18 fan-out: es/de wave-1, giriş notunu ve Aktif Şirketler kartı deltasını atladı (de kendi girişini indirdi; es tek satırlık bir takip düzeltmesi alıyor).
[1.260.0] — 2026-10-26
İncelemeyle sertleştirme treni, v1.259.0 filosunun opus-5-5 ve AI-inceleme turlarından sekiz birleştirmesi (#491–#498): maaş normalizasyonu, rapor-tarihi kapsamı, coğrafi kodlama sağlamlığı, paket önbellek-kırmama r2+r3, derin taşma düzeltmesi — artı iki arayüz v2’si (pipeline, reports). Her düzeltme kırmızı→yeşil fix-forward ile indi.
Düzeltildi
- Maaş karşılaştırma normalizasyonu (CAR-143 rev-2): dönem işaretçileri yalnızca ait oldukları rakamın yakınında tanınıyor — «6 month contract, $120k» artık ×12 ile yıllıklaştırılmıyor; yalnızca sayıya ekli RU/ES dönem biçimleri («за месяц» rakamın hemen yanında) tesadüfi sözcükleri geçiyor;
$/¥simge ailesi tanınıyor ama satırda açık bir ISO kodu yoksa eşlemesiz kalıyor (AUD/CA/SG dollar’lar artık USD olarak faturalandırılmıyor; bir ¥ RMB biçimi ~20×-sapmış JPY dönüşümü yerine açık bir uyarı taşıyor); çıplak 19xx/20xx sayıları her zaman yıldır; aralık rakamları ortağın dönemini devralıyor; profilinminimumvetarget_rangedeğerleri asla tek bir aralıkta birleştirilmiyor. - fixReportDate kapsamı (CAR-144 rev-2): sunucuda sabitlenen tarih düzeltmesi yalnızca ilk
##başlığından önceki ön-bölüme uygulanıyor (H2 başlıklı bir rapor temkinli bir no-op kazanıyor — bayat bir tarih kabul edilebilir, uydurulmuş olan değildir); ön-bölüm içinde: tek bir aday varsa o düzeltilir, değilse tek bir kalın**Date:**düzeltilir, o da yoksa hiçbir şey yapılmaz (iki kalın ya da iki düz aday hiçbirini yeniden yazmaz). FIX-5 PDF-etiket kapısı artık gerçek birleştirilmiş sözlüğü okuyor — eksik bir yerel ayar, İngilizce geri dönüşün üzerinden sessizce geçmek yerine hata veriyor. - Habr konum çipi + coğrafi kodlama sağlamlığı (CAR-142 rev-2): bir Habr meta çipi ancak yapısal kanıtla (bir şehir-filtresi bağlantısı ya da bir konum simgesi) şehre dönüşüyor — taşınma bildirimleri («Возможна релокация») ve istihdam türleri asla konum kılığına girmiyor; coğrafi kodlama önbelleği artık yeniden başlatmayı aşıyor (
beforeExit/exit/SIGTERM+SIGINT üzerinde yeniden fırlatmayla akıtma, kirli bayrak yalnızca yazma yere indikten sonra temizleniyor); kapatma sınırlı (çıkış-döngüsü mandalı, nesil sayacı, tazelik LRU); tükenmiş bir coğrafi kodlama bütçesi genel bir 502 yerine 503 + Retry-After yanıtlıyor. - Paket önbellek-kırmama (CAR-145 r2+r3): kabuk
/js/bundle.js?v=<content-hash>adresini gösteriyor — eşleşmede immutable, uyuşmazlıkta no-store — taze bir kabuğun önbelleğe alınmış eski bir paketle eşleştiği 5 dakikalık dağıtım penceresini ortadan kaldırıyor. Karma ve akış tek dosya tanıtıcısını paylaşıyor (yırtık okuma yok); kısa bir okuma, bütün bir dağıtımı zehirleyebilecek bir stat-geri-dönüş karması yerine null döndürüyor;make-bundle, kimliği ve .br/.gz eş-dosyalarını nokta-önekli bir geçici dosya + yeniden adlandırma yoluyla yazıyor — böylece öldürülen bir derleme ne yarım yazılmış bayt sunabilir ne de geçici dosyasını sızdırabilir. - Derin sayfa taşması (CAR-146): dosya adı tek başına bir telefonun dar ekranını aşan kayıtlı bir araştırma özeti
#/deepsayfasını artık 390px ötesine itemiyor — kart kendi satırında sınırlanıyor, başlık sarılıyor, tarih tek satırda kalıyor; dar-görüntü-alanı taraması artık aşırı uzun tohumlanmış bir fikstürle#/deepüzerinden de yürüyor (iki uzak-QA çalışmasının tek bulgusu, kapatıldı). - Pipeline v2 sertleştirmesi (CAR-116 incelemesi): silmeler onaylıyor ve geri alınıyor (dürüst geri-alma metniyle), kartlarda ana-makineden şirket uydurması yok, FNV-1a satır kimlikleri, gerçek toplu sayımlar ve toplu işlemler üzerinde bir yeniden-giriş koruması.
Eklendi
- Pipeline v2 (CAR-116): zenginleştirilmiş kartlar, gruplanmış bir görünüm ve geri almaya izin veren toplu ıskarta; 17 yeni
pipe.*anahtarı 19 sözlüğün tamamında çevrilmiş olarak indi. - Reports v2 (CAR-118): puan-bandı/meşruiyet/şirket/tarih filtreleriyle canlı arama, sıralanabilir başlıklar (
aria-sort), bant başına eylem düğmeleri taşıyan kalıcı bir kart görünümü, tıkla-filtrele puan histogramı ve birleşik «Company — Role» / «x.x/5» render’ı (window.ReportOps); 31rep2.*anahtarı 19 sözlüğün tamamında çevrilmiş olarak indi.
Notlar
- Her düzeltme, kırmızı→yeşil kanıt taşıyan bir inceleme turundan geçti; ilk paket r2 üzerindeki iki AI-inceleme YÜKSEK bulgusu (kısa-okuma karması, eş-dosya atomikliği) r3 ile kapandı ve CAR-143/CAR-144/CAR-142 turlarının her biri öncülünün açık bulgularını yeniden doğruladı.
- Bilinçli olarak yapılmayanlar: harita küme görünümü CAR-125 olarak kalıyor (kuyrukta); sunucu-taraflı pipeline meta verisi geri yüklemesi ayrı bir bilet; rev-2 öncesi v1.259.0 durumları altında kaydedilen içerik için geriye dönük düzeltme yok.
- Test tabanı: 5988 (+165); tarayıcı süiti 152 geçti / 0 başarısız / 1 seçime bağlı atlama. Hiçbir tarayıcı kaynağına dokunulmadı (kayıt defteri 121 = 116 EN + 5 RU · 116 adaptör); 48 yeni i18n anahtarı, ×19 fan-out ile birlikte özellik PR’lerinin kendileri içinde indi.
[1.259.0] — 2026-10-25
Ajan filosundan ikinci tren, altı düzeltme: rapor tarihleri sunucu tarafında sabitleniyor, harita coğrafi kodlayıcısı önbelleğe alıp RU şehirlerini okuyor, yardım ×18 yerelleştirilmiş düğme etiketlerini kullandırıyor, arayüz cümleleri dilleri karıştırmayı bırakıyor, maaş karşılaştırmaları sunucu tarafında hesaplanıyor — ve JS paketi önceden sıkıştırılmış dağıtılıyor (soğuk yükleme 3.1 MB → 598 KB).
Düzeltildi
- Uydurulmuş rapor tarihleri (CAR-101): değerlendirme prompt’u bugünün tarihini artık sunucu tarafında sabitliyor («Date: alanı TAM OLARAK
OLMALIDIR — harfiyen kopyala; asla uydurma») ve fixReportDate, kaymış bir tarihi her kabul noktasında (Anthropic dalı, Gemini alt-süreci, OpenAI-uyumlu kuyruk, /api/deep, auto-pipeline) bugüne yeniden yazıyor — bir uyarı + etkinlik kaydıyla; bu bir düzeltmedir, asla bir ret değil. Üretimdeki 349/789 rapor uydurulmuş tarihler taşıyordu; yenileri taşıyamıyor. - Harita coğrafi kodlaması (CAR-105): hh.ru/Habr satırlarının Kiril şehir dizgeleri artık coğrafi kodlayıcıya ulaşıyor; kalıcı ve sınırlı bir önbellek (
data/geocode-cache.json, withFileLock), çözümlenmiş bir şehrin sağlayıcıya asla ikinci kez gitmemesini sağlıyor; coğrafi kodlama çağrıları istek başına bütçeleniyor, böylece harita 13.9 sn bloke olmak yerine aşamalı olarak doluyor. - Karma-dilli arayüz (CAR-108): 19 sözlükten 17’sinde 23 anahtarlı sızıntı düzeltildi (85 değer) — «все matching», «только remote», «Открыть Scan», «Evaluated → Applied…» hunisi ve daha fazlası, her yerel ayarın kendi ürün sözcük dağarcığını yeniden kullanan eksiksiz yerelleştirilmiş cümlelere dönüştü.
i18n-no-latin-leaks, parça tablosu + huni sondasıyla genişletildi (kırmızı→yeşil). - Para birimi karar çevrilmesi (CAR-109): maaş karşılaştırması
comp-compare.mjsiçinde sunucu tarafında hesaplanıyor ve kanonik biçimde gömülüyor (Candidate minimum: … per YEAR (raw: …)karşısındaJD offer: …); aylık ×12, k/к/тыс/萬 ve ondalık-virgül biçimleri karşılaştırmadan önce normalize ediliyor; belirsiz bir dönüştürme tek başına kararı asla çeviremez (zh-TW «€80–100k ниже минимума» vakası öldü). Model asla çarpma yapmıyor. - Yardım ×18 düğme etiketleri (CAR-107): yerelleştirilmiş yardım paketleri, arayüzün artık göstermediği İngilizce etiketleri kullandırıyordu («⚡ Run live», «Save», «Scan now») — görünüm kaynaklarından eşlenen 18 yerel ayarda 263 değişiklik; docs-assistant düzeltmeyi devralıyor.
Eklendi
- Ön-sıkıştırılmış paket + önbelleklenebilir soğuk yükleme (CAR-104):
make-bundle.mjs, sürüm anındabundle.js.br(brotli q11) +.gzüretiyor; paket-kapsamlı bir ara katmanVary: Accept-Encoding,public, max-age=300, must-revalidate+ ETag/304 ile br > gz pazarlığı yapıyor; tazelik-korumalı (eş-dosyalar asla kimlik paketinden daha eski sürüm sunmaz), doğrudan artefakt çekimleri 404 veriyor, CSP bayt-aynı. Soğuk yükleme: 3.1 MB → ~0.6 MB tel (−%80); 5 dk içindeki tekrar ziyaretler ≈0 bayt aktarıyor.
Notlar
- Altı düzeltmenin tamamı kırmızı→yeşil kanıtla (kendi süitlerinde 13 + 28 + 1 + 30 + 7 yeni vaka) ajan filosundan geldi ve inceleme turlarıyla cilalandı (CodeQL #579/#580/#584 kodda düzeltildi — stub URL’ler
new URL().hostile ayrıştırılıyor, ölü bir prompt dizgesi düşüldü). - v1.258.0 puan geri-doldurması sayıları artık CAR-129’da kayıtlı (
updated: 22,reportScoreless: 159). - Bilinçli olarak yapılmayanlar: 349 tarihsel rapor için geriye dönük tarih düzeltmesi yok (bir geri-doldurma sahibin onaylayacağı bir operasyon olurdu), harita küme görünümü yok (CAR-125 bu coğrafi kodlama düzeltmesinin arkasında kuyrukta kalıyor).
- Test tabanı: 5823 (+74). Hiçbir tarayıcı kaynağına dokunulmadı (kayıt defteri 121 = 116 EN + 5 RU · 116 adaptör); i18n anahtarı yok (CAR-108 yalnızca mevcut anahtarların değerlerini düzenliyor).
[1.258.0] — 2026-10-25
Ajan filosundan tek tren üzerinde altı düzeltme: #/scan şirket sayacı evrenleri karıştırmayı bırakıyor, derin araştırma kaynak talep ediyor, form hataları alanı aydınlatıyor, yükleme durumları iskeletler ve anında h1 kazanıyor ve değerlendirmeler 37k-belirteçlik prompt öneklerini önbelleğe alıyor.
Düzeltildi
- #/scan «Aktif şirketler» sayacı (CAR-100): pay, TÜM sonuç satırlarında ayırt edilen şirketleri sayıyordu (üretimde 1554 — tek başına hh.ru yüzlerce katıyor), payda ise API destekli izlenen şirketleri sayıyordu (~90) — tek kesirde iki evren. (a) eşleştirmesi: pay artık API destekli izlenen taramanın kendisinin getirdiği satırlar arasındaki şirketleri sayıyor (
_entry ?? companyile eşleşen; hh.ru/telegram işveren satırları düşüyor); tarama-öncesi geri dönüş aynı evrene taşındı («104/90» okuyabiliyordu). - Derin araştırma uydurması (CAR-110): derin prompt artık katı bir sözleşme taşıyor — her olgusal iddia
[source: domain.com]ile bitiyor (adlandıramıyorsa → söyleme; bir işaret uydurmak «unknown» yazmaktan daha kötüdür), bilinmeyen olgularunknownolarak yazılıyor ve rapor MUTLAKA bir## Data freshnessbölümüyle bitmelidir. Tazelik çapaları: bugünün UTC tarihi +POST /api/deepüzerinde isteğe bağlı bir şirketurl(sınırlı, sunucu tarafında asla getirilmez). - Form hataları alanı vurguluyor (CAR-130): başarısız bir POST ilk form alanını
aria-invalid+.is-errorile işaretleyip odağı ona veriyor (WCAG 3.3.1); düzenlenince temizleniyor. Ağ-hatası ipucu dağıtım-farkında — loopback geliştirici-komutu ipucunu koruyor, dağıtılmış bir kaynakbash web-ui/bin/start.mdtavsiyesi yerine «sunucu yanıt vermiyor» mesajını alıyor (bağlantı banner’ında da aynı sabit-kod vardı). - Yükleme durumları (CAR-112): #/map ve #/tracker h1’lerini anında render ediyor (router odak hedefi ancak veri geldikten sonra var oluyordu) ve paylaşılan bir iskelet yardımcısı (
Skeleton.rows,common.loading’i yeniden kullanan birrole="status"bölgesi içinde aria-hidden parıltı satırları), takipçi, tarama sonuçları ve harita kabuğundaki çıplak «Yükleniyor…» metninin yerini alıyor;prefers-reduced-motionnabzı durduruyor. - Değerlendirme prompt önbelleği (CAR-111):
buildEvaluationPromptParts, ~37k-belirteçlik prompt’u bayt-kararlı bir öneke (CV + profil + mod dosyaları + talimatlar) ve JD kuyruğuna ayırıyor; Anthropic yolu[önek + cache_control: ephemeral] + [JD]gönderiyor — önek, ilkinden sonraki her çağrıda önbellek-okuma tarifesiyle faturalanıyor (≈10× daha ucuz). Eksik/uyuşmayan önek, bayt-aynı eski isteğe geri düşüyor; OpenAI-uyumlu basamak dokunulmadan bırakıldı (oradaki önbellekleme sunucu-taraflı).
Notlar
- Altı düzeltmenin tamamı kırmızı→yeşil kanıtla (5 + 7 + 7 + 7 + 8 yeni vaka) ve inceleme turlarıyla ajan filosundan geldi; ilk CAR-111 CodeQL uyarıları (#579/#580) kodda düzeltildi — test stub’ı alt-dizge eşleştirmesi yerine URL ana makinesini ayrıştırıyor ve ölü bir tam-prompt dizgesi düşüldü.
- Puan geri-doldurması üretimde çalıştırıldı (v1.256.0 uç noktası, sahibin onayıyla):
updated: 22,missingReport: 0,reportScoreless: 159— 159 puansız satır, başlıkları makine bloğundan önce gelen ya da ayrıştırılamayan puan biçimleri taşıyan raporlara işaret ediyor; yalnızca yeniden değerlendirmeyle ya da daha geniş bir ayrıştırıcı geçişiyle kurtarılabilir (CAR-129’da not edildi). - Bilinçli olarak yapılmayanlar: yol-süresi sütunu sona-sıralama değişikliği yok (önceden var olan
Infinity-on-desc tuhaflığı), eski kullanım kayıtlarının geriye dönük yeniden fiyatlandırması yok, tarama filtre formları için.is-errortarzı vurgu yok (CAR-130, paylaşılan mod-sayfası gönderim yardımcısı + api.js ipucuyla sınırlı). - Test tabanı: 5749 (+36). Hiçbir tarayıcı kaynağına dokunulmadı (kayıt defteri 121 = 116 EN + 5 RU · 116 adaptör); i18n anahtarı yok (CAR-130 ipucu
conn.down’u yeniden kullanıyor; iskelet bölgesicommon.loading’i yeniden kullanıyor).
[1.257.0] — 2026-10-25
Ajan filosundan iki düzeltme: uygulama içi yardım asistanı Devanagari ve Tamil yazılarını anlıyor ve kullanım sayfası Hermes’in gerçekte neye mal olduğunu gösteriyor.
Düzeltildi
- hi/ta için yardım asistanı getirimi (CAR-103): docs-assistant anahtar-sözcük dizgecinin kelime sınıfı
[\p{L}\p{N}\u30fc]+idi — birleştirme işareti yoktu. Her Devanagari matrası (ा ै ्…) ve Tamil sesli işareti (ே ை ்…) bir kelimeyi parçalara bölüyordu; uzunluk kuralı kısa parçaları düşürüyordu (bir Hintçe sorgu 0 bölümle eşleşiyordu), daha uzun kelimeler ise başları kesilerek alakasız bölümlerle çakışan anlamsız artıklara dönüşüyordu. Sınıf artık\p{M}’i içeriyor; CJK bigram yoluna dokunulmadı. hi «मैं स्कैन कैसे चलाऊं?» ve ta «ஸ்கேன் எப்படி இயக்குவது?» sorguları dağıtılan paketlerden doğru bölümleri getiriyor. - Hermes için kullanım maliyeti (CAR-106):
normalizeUsage()sağlayıcı kullanımını{in, out}’a daraltıp ağ geçidinin bildirdiğicost’u sessizce düşürüyordu —#/usage, 9.5 M Hermes belirteci üzerinde $0.0000 gösteriyordu (fiyat tablosundaki satırı 0/0). Kullanım kaydı biçimi, geriye dönük uyumlu isteğe bağlı bircost?kazanıyor; toplayıcı, kayıt başına sağlayıcının bildirdiği maliyeti yeğliyor ve yalnızca yokken fiyat tablosu tahminine dönüyor; çöp/negatif değerler düşürülüyor, asla uydurulmuyor.
Notlar
- Her iki düzeltme de kırmızı→yeşil kanıtla (3 + 5 yeni test; 14/14 ve 10/10 yeşil; komşu süitler 78/78 ve 61/61) ajan filosundan geldi. İlk PR’ler (#470/#471), squash-merge edilmiş v1.256.0 ile çakışan bayat bir worktree tabanı taşıyordu — bunların yerine temiz cherry-pick’ler (#472/#473) geçti.
- Bilinçli olarak yapılmayanlar: tarihsel
data/llm-usage.jsonlsatırlarının geriye dönük yeniden fiyatlandırması yok (bunlar maliyet alanı taşımıyor; yalnızca yeni kayıtlar yararlanıyor). - Test tabanı: 5713 (+8: docs-assistant ×3, usage ×5). Hiçbir tarayıcı kaynağına dokunulmadı (kayıt defteri 121 = 116 EN + 5 RU · 116 adaptör); i18n anahtarı yok.
[1.256.0] — 2026-10-25
Takip verisi kalitesi: rol hiçbir zaman şirket olarak kaydedilmiyor, bir iş panosu hiçbir zaman işveren olarak kaydedilmiyor, puanlanmamış satırlar artık en önde belirmeyi bırakıyor — ve tek-seferlik bir uç nokta, eksik puanları raporların kendilerinden geri dolduruyor.
Eklendi
- Puan geri-doldurması (CAR-129):
POST /api/tracker/backfill-scores, bağlantılı raporu ayrıştırılabilir bir puan taşıyan satırların Puan hücresini dolduruyor (değerlendirilmiş 181 satırın raporu vardı ama puanı yoktu). Puanlı satırlara, açık sentinel’lere (N/A), raporsuz satırlara ve puansız raporlara asla dokunulmuyor; yalnızca Puan hücresi, dosya kilidi altında yeniden yazılıyor; puan biçimi yazım yerinde doğrulanıyor ve takipçininX.X/5kuralına normalize ediliyor; çalıştırma idempotent ve{ok, updated, missingReport, reportScoreless}döndürüyor.
Düzeltildi
- Rol hiçbir zaman şirket değildir (CAR-128):
guessCompanyRoletire-başlıklı satırın SOL tarafını şirket olarak ele alıyordu, oysa panolar her iki sıralamayı da yazıyor — «Senior Frontend Engineer - Grafana Labs» rolü ŞİRKET olarak kaydediyordu (13 satır: Grafana, CircleCI…). Artık kelime-sınırlı bir rol-anahtar sözcüğü sezgisi rol tarafını seçiyor ve bir istihdam türü asla işveren olmuyor («Senior Engineer - Remote (EU)», «Remote (EU)» kaydetmek yerine hiçbir şey kaydetmiyor). - Bir iş panosu hiçbir zaman işveren değildir (CAR-127): alan-adı-slug geri dönüşü hh.ru satırlarını «hh» olarak kaydediyordu (120 satır).
hh/habrslug’ları işveren-değil listesine katılıyor; cümle-içi işveren çıkarımı («в компании X», «X ищет») artık iş-panosu ana makineleri (hh.ru/kz/uz/by, habr.com) için de çalışıyor — sayfa metninin gerçek işvereni adlandırdığı yerde. Yolda kök neden de bulundu: o çıkarım desenlerindeki ASCII\b/\wKiril alfabesiyle hiçbir zaman eşleşmiyordu — v1.248.4’ten beri sessizce ölü; Unicode lookbehind’ları ve\p{L}sınıfları onların yerini alıyor. - Puanlanmamış satırlar sona sıralanıyor (CAR-129): takipçinin puan sıralaması bir
-1sentinel’i kullanıyordu; böylece varsayılan artan sıralamayla her puanlanmamış satır her puanlıdan önce beliriyordu. Boş değerler artık her iki yönde de sona sıralanıyor (puan FİLTRESİ kendi-1’ini koruyor — “puanlanmamış bir ≥4 filtresine takılır” orada doğru semantiktir).
Notlar
- Tarihsel satırlar bu sürümle TAŞINMIYOR: ayrıştırıcı düzeltmeleri yeni değerlendirmelere uygulanıyor; puanlar geri-doldurma uç noktası üzerinden geri kazanılabilirken, 120 «hh» işveren hücresi yeniden yazım değil yeniden değerlendirme gerektiriyor.
- Bir opus-5-5 inceleme turu içine katıldı: çapasız «X ищет» deseni dağıtımdan önce atıldı (fiilden önceki herhangi bir büyük-harfli dizi işveren olarak kaydedilirdi — uydurma-yapmama invariatı), cümle-başı «В…» çapaları eklendi ve geri-doldurma yazıcısı hedef hücreyi yeniden denetliyor (manuel düzenlemelerden sonra yinelenen
#satırları mevcut), elle-bozulmuş kısa bir satırın sütun sayısını koruyor ve ilk tablo-dışı satırda duruyor. Noktalı bir adın içindeki nokta («Сбер. IT»), «в компании» çapası için cümle noktasından ayırt edilemez — tutucu önek («Сбер») kaydediliyor; fiile-çapalı desen tam biçimi yakalıyor. - Bilinçli olarak yapılmayanlar:
tracker.js’ten birim-test-edilebilir bir lib’ye karşılaştırıcı çıkarımı yok (kaynak-statik kapı kalıyor; CAR-129’da takip işi olarak not edildi), yol-süresi sütunu sona-sıralama değişikliği yok (önceden var olanInfinity-on-desc tuhaflığı), «hh» satırları için veri taşıması yok. - Test tabanı: 5705 (+10:
auto-pipeline-jd-gateiçinde 5 kimlik, 2 CAR-128, CAR-129 sıralama kapısı, düşmanca yol pinini de kapsayan 4 geri-doldurma — yerlerine konan v1.248.x örnekleri düşülünce). Hiçbir tarayıcı kaynağına dokunulmadı (kayıt defteri 121 = 116 EN + 5 RU · 116 adaptör); i18n anahtarı yok.
[1.255.2] — 2026-10-24
Canlı regresyondan ve bir üretim çökme bildiriminden gelen üç kullanıcıya-görünür düzeltme: #/scan render çökmesi, kör Vietnamca dil denetimi ve yinelenen zh-TW özet-bloğu kaybı.
Düzeltildi
- #/scan çökmesi (CAR-99): v1.253.0’dan bu yana sayı-kapısı yenilemesi
FALLBACK_SOURCESliteralini her girdinin sonuna çift virgül koyarak yazdı — dizide 120 eleman-bırakma boşluğu. Tarama görünümündekinew Set(FALLBACK_SOURCES.map((s) => s.value))böyleceundefinedtuttu ve şirket sınıflandırıcısınınid.length’i her sayfa render’ındaTypeError: Cannot read properties of undefined (reading 'length')attı (üretimde logbuf yakaladı). Boşluklar kaldırıldı ve yeni bir kapı (4 özellik, kırmızı-doğrulanmış) dosyayı çalıştırıp herhangi bir boşlukta, kullanılamaz girdide ya da adaptör-kimliği Set’indeki birundefined’da başarısız oluyor — yalnızca-metin sapma kapısı bu sınıfı göremiyordu. - Kör vi dil denetimi (CAR-97): Vietnamca Latin yazıdır ve canlı-QA stop-word tablosunda girdisi yoktu; bu yüzden “vi stop words” İngilizce eşleşmeleri sayıyordu ve bir Vietnamca yanıt
report not in violarak okunuyordu (canlı regresyon: vi 2, en 2). Vietnamcanın artık kendi on-kelimelik işlev-sözcüğü tablosu var — saf bir vi raporu geçiyor, İngilizce olan hâlâ düşüyor. - zh-TW SCORE_SUMMARY bloğunu kaybetti (CAR-98): kapanış dil hatırlatması yalnızca makine biçiminin çevrilmemesi gerektiğini söylüyordu, özet bloğunun var olması gerektiğini asla — kısa bir zh-TW raporu (5.983 karakter) A–G bloklarını taşıyordu ama bloğu tümüyle atlıyordu (v1.239.2 sınıfı bir yinelenme). Açılış yönergesi ve kapanış hatırlatması artık bloğun zorunlu olduğunu ve bloksuz raporun geçersiz olduğunu söylüyor.
Notlar
- Bu sürüm bilinçli olarak hiçbir tarayıcı kaynağını, kayıt defteri sayısını (121 = 116 EN + 5 RU · 116 adaptör) ya da sağlayıcı kablolamasını değiştirmiyor — yalnızca düzeltmedir, sayı-kapılarına dokunulmadı.
- Test tabanı: 5695 (+9:
car99-fallback-holes×4,car97-vi-lang-check×4, CAR-98 prompt değişmezi ×1). Tarayıcı süiti 143/143. vi/zh-TW canlı yeniden-denetimi dağıtım-sonrası regresyonla geliyor.
[1.255.1] — 2026-10-24
İki inceleme düzeltme turu: Vietnamca yerelleştirmesinin Opus incelemesi (9 bulgu) ve CAR-91/92 düzeltmelerinin ikinci tur incelemesi (5 zorunlu düzeltme) — her ikisi de kırmızı→yeşil testlerle kapatıldı.
Düzeltildi
- vi yerelleştirmesi inceleme turu (CAR-88 devamı):
project.subtitle/project.roleHintiçine sızan Hangul glifi (신) düzeltildi (độ khớp tín hiệu); EN sözlüğünün taşımadığı bir vi değerindeki herhangi bir CJK/Kana glifi için başarısız olan bir kapı eklendi. docs/help/vi.md içindeki altı boşluklu markdown URL’si (what-is career-ops,apply for a job,set up playwrightve üç tane daha) gerçek kılavuz slug’larına kısa çizgili biçime çevrildi; URL’lerde-boşluk-olmaz kapısı eklendi. - Değerlendirme başlık sınırları (CAR-92 r2 H1):
&,.,/,'artık blok harfinin sol sınırında kelime karakteri sayılıyor —## Q&A,## Plan B,## Ph.D. requirement,## E-commerceartık A/B/D/E blokları olarak kaydedilmiyor; çıplak satır sonu sonlandırıcısı yalnızca bir blok-kelime dizgecinden (Block/блок/블록/…) sonra kabul ediliyor; ASCII-yazılı-sonlandırıcı sınıflarından çıkarıldı, böyleceE-commerce/ई-मेलbaşlıkları hayatta kalıyor. - Ukraynaca/Rusça numaralı raporlar (CAR-92 r2 H2): А Б В Г Д Є Ж dizi algılayıcısı artık paylaşılan bir yardımcı; bir başlık düzeyinde 3+ dizi harfi bulduğunda o düzey kesicinin referans düzeyi oluyor — harfli
### A.alt bölümleri raporu artık Б bloğunda kesmiyor. - Taşınan-satır yaşam döngüsü (CAR-92 r2 M1): başarısız bir kaynağın sonraki taramaya taşıdığı satırlar
carriedSincedamgası alıyor, 30 gün sonra ya da 5 art arda taşınmadan sonra atılıyor ve sessizce sonsuza dek birikmek yerine taze satırların arkasına ekleniyor. - Gemini sentez paydası + legitimacy (CAR-92 r2 M2) ve alt süreç gövde-puanı yolu (M3): bulgular dosyasından okundu, kırmızı testlerle düzeltildi.
- Soğuk-yükleme paketi sapma kapısı vi sözlüğü için güncellendi (90 script etiketi / 87 paketlenebilir) ve kullanılmayan test bağlaması kaldırıldı (CodeQL 572).
Notlar
- İncelemenin işaretlediği README.vi “Son sürüm” bandındaki adaptör-sayısı ifadesi Önceki bandında yaşıyor ve zaten EN README ile bayt-bayt aynı — EN↔vi paritesini korumak için dokunulmadan bırakıldı (commit gövdesinde belgelendi).
- Test tabanı: 5686 (+26:
eval-validate-opus-r2,scanner-carryover-r2, vi-kapısı doğrulamaları). Kayıt defteri değişmedi: 121 kaynak (116 EN + 5 RU) · 116 adaptör.
[1.255.0] — 2026-10-24
Vietnamca (Tiếng Việt), 19. arayüz dili olarak katılıyor — EN ile tam pariteli 1525 anahtarlık sözlük, vi/vi-VN algılama, eksiksiz yardım paketi, README ve CHANGELOG aynaları, cvstart.org açılış sayfası entegrasyonu ve dil değiştiricideki 🇻🇳.
Eklendi
- Vietnamca (
vi) — 1525/1525 anahtar,enile tam parite;detect()vivevi-VNkabul eder; Vietnamca LTR’dir (aslaRTL_LANGS’a eklenmez). ‘Pipeline’ ‘Pipeline’ olarak kalır — standart teknik ödünç kelime, beyaz listede. - Eksiksiz docs/help/vi.md (33 H2 / 125 H3), ayrıca README.vi.md ve CHANGELOG.vi.md aynaları ve
prompts.mjsiçindeki Vietnamca iskele dizeleri (LOCALE_NAMES+SCAFFOLD_STRINGS) — Vietnamca LLM çıktısı kutudan çıktığı gibi çalışır. - cvstart.org açılış sayfasının Vietnamca’sı —
site/src/i18n/vi.json, sitemap locale girdisi ve birdashboard-vi.pngekran görüntüsü; dil değiştirici 🇻🇳 kazanır (19 konum). - Sayım kapıları 18 → 19 — LANGS, detect prob’ları, i18n denetimi, changelog paritesi, README çeviri bloğu, locale taraması — ayrıca red-first
tests/i18n-vi-locale.test.mjs(139 satır).
Notlar
- Açılış sayfası vi kazanıyor — ta emsalinden kasıtlı bir sapma (o sürüm açılış sayfasını bilerek 17’de tutmuştu); sürüm şartnamesinde belgelendi.
- vi Latin yazıdır, bu yüzden no-latin-leaks kapısı uygulanmaz (Latin olmayan dilleri korur); Latin teknik kelime hazinesi burada normdur.
- Test tabanı: 5634 → 5642 (1 atlanan = katılım-isteğe bağlı yerleşim-yakalama tarayıcı testi, değişmedi).
career-ops-ui v1.267.1 · page 1/10 · mirror of the project changelog for cvstart.org