மாற்றப் பதிவு

GitHub

ஒவ்வொரு குறிப்பிடத்தக்க மாற்றமும், வெளியீடு வாரியாக. இதே கோப்பு ரிப்போவில் இருக்கிறது மற்றும் அனைத்து 19 மொழிகளிலும் மொழிபெயர்க்கப்பட்டுள்ளது.

[1.253.0] — 2026-10-24

பத்து புதிய வேலை மூலங்கள் ஸ்கேனரில் இணைகின்றன — Atlassian, BWI, Computrabajo, Dover, Google, Kalibrr, Magneto365, Platsbanken, Tech in Asia, Zoho Recruit — பதிவேடு இப்போது 115 அடாப்டர்களுடன் 120 மூலங்களை (115 EN + 5 RU) வழங்குகிறது, மேலும் ரோல் மேட்சர் ஒரு குறுகிய கேப்பிட்டல் குறியீட்டால் மட்டும் வேறுபடும் தலைப்புகளை இனி ஒரே பணியாக இணைக்காது.

சேர்க்கப்பட்டது

  • 10 மூலங்கள் parent 1.38.0-இலிருந்து போர்ட், ஒவ்வொன்றும் அதன் சொந்த fetch-walk அடாப்டர் மற்றும் CI-தனிமைப்படுத்தப்பட்ட சூட் (போலி fetchImpl, பூஜ்ஜிய நெட்வொர்க்): Atlassian (ஒரே auth-free JSON ஃபீட், iCIMS URL-கள், https+icims.com allowlist), BWI (JSON-LD ItemList, JSON.parse முதலில்), Computrabajo (LATAM, எண்டிட்டி டிகோட், ஸ்பானிஷ் «remoto»=remote), Dover (டெனண்ட்-வாரி DRF பேஜினேஷன், Remote (International) ரெண்டரிங், UUID-சரிபார்ப்பு போர்டுகள்), Google Careers (சொற்றொடருக்கு முதல் பக்கம், கார்டின் பணியாளர் வெல்கிறார், வினவல்-இடை dedup), Kalibrr (SEA அக்ரிகேட்டர், ஃபீட் id வரிசை id-ஆக), Magneto365 (LATAM, நிலையான இடை-பக்க தாளம்), Platsbanken (ஸ்வீடிஷ் JobTech API, முக்கியவார்த்தை-வாரி ஜன்னல்கள்), Tech in Asia (தள பில்டிலிருந்து Algolia விசைகள் கண்டுபிடிக்கப்படுகின்றன), Zoho Recruit (hidden-input போர்டு, வரம்புடைய detail என்ரிச்மெண்ட், நாணயம் ISO-4217 மட்டும்)。
  • பதிவேடு எண்ணிக்கை: 120 மூலங்கள் = 115 EN + 5 RU · 115 அடாப்டர்கள்; ஐந்து கவுண்ட் கேட்கள் நேரடி பதிவேட்டிலிருந்து மீண்டும் உருவாக்கப்பட்டன; #/scan ட்ராப்டவுன் ஃபால்பேக், cvstart.org மூல இணைப்புகள் மற்றும் help §17 ×18 பின்தொடர்கின்றன.

சரி செய்யப்பட்டது

  • ரோல்-மேட்சர் (#5688 போர்ட்): ஒரு குறுகிய கேப்பிட்டல் குறியீட்டால் மட்டும் வேறுபடும் தலைப்புகள் («HR BP» vs «HR GP», «AWS» vs «GCP», கலப்பு எழுத்துக்கள் உட்பட) இனி ஃபஸி-மேட்ச் மூலம் ஒரே பணியாக இணைக்கப்படாது; குறியீடுகள் சத்த-வார்த்தைகளை விலக்கி மூல தலைப்பிலிருந்து படிக்கப்படுகின்றன, காவல் Jaccard விகிதத்திற்கு சரியாக முன் உள்ளது.
  • போர்ட்கள் அதிகபட்ச கடுமையான Opus 5-5 மறுஆய்வை தாண்டின (21 கண்டுபிடிப்புகள்): மார்க்கப் டிரிஃப்டில் மௌன-காலியான போர்டுகளில் throw (google/bwi), முன்கூட்டி-நிறுத்தப்பட்ட ஸ்கேன் [] திருப்புவதற்கு பதிலாக throw, LATAM ஸ்கிராப்பர்களில் decode-then-strip வரிசை (strip-then-decode XSS வடிவம்), atlassian வரிசை URL-களில் https+allowlist, துறைமுகங்களை நிராகரிக்கும் host கூற்றுகள், பிந்தைய பக்க parse try-க்குள் (பாகங்கள் உயிர்ப்பு), மற்றும் சோதனை நேர்மை (பட்ஜெட்டுகள் துல்லியமாக எண்ணப்பட்டன, கார்ஷன் ஒப்பந்தங்கள் உண்மையாக பொருத்தப்பட்டன). 13 கண்டுபிடிப்புகள் சரி; [spec] வால் தனியாக கண்காணிக்கப்படுகிறது.

குறிப்புகள்

  • ஐந்து RU மூலங்கள் web-ui-only-ஆகவே உள்ளன (upstream அடாப்டர்கள் இல்லை — வேண்டுமென்றே); ஒவ்வொரு EN மூலத்திற்கும் அதன் அடாப்டர் உள்ளது.
  • கவரேஜ் ராட்செட்: ஆறு பெரிய போர்ட்கள் ≥95 % branch-ஆக உயர்த்தப்பட்டன (27 புதிய வழக்குகள்); மீதமுள்ள பாதுகாப்பு டெட்-கோட் கோப்பு-வாரி ஆவணப்படுத்தப்பட்டது.
  • புதிய மூலங்கள் portals.yml-இல் provider: <slug> மூலம் தேர்ந்தெடுக்கப்படுகின்றன — ஏற்கனவே உள்ள கட்டமைப்புகளுக்கு எதுவும் மாறவில்லை.

[1.252.1] — 2026-10-17

Wiki-இன் வெளியீட்டு பேனரை இப்போது கைமுறை ஸ்வீப்புக்கு பதிலாக ஒரு ஸ்கிரிப்ட் சரிபார்க்கிறது — v1.252.0 ரிக்ரெஷன் அதை கையால் மட்டுமே கண்டறிந்தது — மேலும் locale டைரக்டிவ் சுயவிவரத்தின் language.output-ஐயும் வேலை இடுகையின் மொழியையும் வெளிப்படையாக மேலெழுதுகிறது.

சேர்க்கப்பட்டது

  • scripts/wiki-banner-check.mjs — ரிக்ரெஷன் கோரிய கேட்: wiki க்ளோனில் உள்ள ஒவ்வொரு Home*.md-ஐயும் படித்து, பேனரை package.json மற்றும் பதிவேட்டின் நேரடி கவுண்டர்களுடன் (போர்ட்டல் பதிவேட்டின் scanner adapters — பேனரின் காலாவதியான 109 அல்ல, 105; server/lib/routes/-இல் route modules; CHANGELOG தொகுப்பில் UI locales) ஒப்பிடுகிறது. பேனர் regex சொற்களால் அல்ல வடிவத்தால் மொழி-சார்பற்றது: உள்ளூர்மயமாக்கப்பட்ட Home பக்கங்கள் லேபிளையும் கவுண்டர்களையும் மொழிபெயர்க்கின்றன («Текущий релиз», «Aktuel udgivelse», «адаптеров сканера», «enhedstests»), மேலும் அவற்றின் எண்கள் EN பக்கத்தை (5245) விட அதிகமாக விலகின (5177). --tests N சற்றுமுன் இயங்கிய test:ci அச்சிட்ட எண்ணை ஏற்கிறது; --check-only ஆஃப்லைன் பயன்பாட்டுக்கு மறைமுக க்ளோனை தடை செய்கிறது. ஆஃப்லைன் ஃபிக்ஸ்சர் டெஸ்ட் tests/wiki-banner-check.test.mjs.

சரி செய்யப்பட்டது

  • Wiki Home ×18 பேனர் மீண்டும் ஒத்திசைவுக்கு கொண்டுவரப்படுகிறது (இந்த வெளியீட்டுடன் புஷ் செய்யப்படுகிறது): v1.252.0 ஸ்வீப் பேட்ஜ்களையும் இணைப்புகளையும் மாற்றியது ஆனால் பேனர் வரியை ஒருபோதும் மாற்றவில்லை, அதை குறிக்க எந்த இயந்திர வழியும் இல்லை. மேலே உள்ள கேட் அதை வெளியீட்டைத் தடுக்கும் சோதனையாக்குகிறது.
  • Locale டைரக்டிவ் மொழி முன்னுரிமையை நிர்ணயிக்கிறது (buildLocaleDirective): «This UI locale overrides the profile’s language.output setting and the job posting’s own language». பேரண்டின் சொந்த விதி 6 language.output-இல் எழுதுமாறு கட்டளையிடுகிறது — முன்னுரிமை வாக்கியம் இல்லாமல் மாடல் இரு முரண்பட்ட கட்டளைகளை locale வாரியாக முரணற்ற முறையில் தீர்த்தது; அதுவே v1.252.0-இன் மொழி நெடுவரிசை சிதறல். tests/locale-directive-language-output.test.mjs டைரக்டிவ் உரையில் இதை பொருத்துகிறது (17 EN-அல்லாத locale + காலியான EN).

குறிப்புகள்

  • ta evaluate வடிவ கவனிப்பு (§3, கண்காணி): v1.252.0-இன் முதல் நேரடி ஓட்டம் Block G-யும் SCORE_SUMMARY-யும் இல்லாத 48 336 எழுத்துகளின் evaluate-ஐ தந்தது — மோதிர வடிவில், மொழி வடிவில் அல்ல (CAR-70 மொழி). அடுத்த வெளியீட்டில் மீண்டும் வந்தால் CAR-70-இலிருந்து தனியான சொந்த Linear இஷ்யூ பெறும்.
  • FIX-PROMPT-இன் படி: பேரண்ட் read-only-ஆகவே இருக்கும்; மேலெழுதல் முழுவதும் UI டைரக்டிவில் வாழ்கிறது.

[1.252.0] — 2026-10-17

பேரண்ட் ஃபோர்க் career-ops-hq/career-ops-உடன் ஒத்திசைக்கப்பட்டது — அப்ஸ்ட்ரீம் 264 கமிட்கள், பேரண்ட் 1.36.0 → 1.37.0 — ஃபோர்க்கின் இரு வேறுபாடுகளும் பாதுகாக்கப்பட்டன, மேலும் டிப்ளாய் இயங்கும் பேரண்டை அந்த அடிப்படைக்கு மீண்டும் பின் செய்கிறது.

சேர்க்கப்பட்டது

  • வியட்னாமிய (vi) சந்தை முறை அப்ஸ்ட்ரீமிலிருந்து (modes/vi/, tuyen-dung / ung-tuyen): BHXH/BHYT/BHTN, thử việc, lương tháng 13, trợ cấp thôi việc — பேரண்டின் முறை அட்டவணையில் 21வது சந்தை.
  • Tech in Asia போர்டு வழங்குநர் (அப்ஸ்ட்ரீம்): techinasia.com வேலை UI தானே வினவும் பொது Algolia job_postings அட்டவணையைப் படிக்கிறது — SEA ஸ்டார்ட்அப் போர்டு, மாதிரெடுப்பில் ~300 நேரடி இடங்கள், அவற்றில் 273 இந்தோனேசியாவைச் சேர்ந்தவை. விசைகள் ஒவ்வொரு ஓட்டத்திலும் தளத்தின் பில்டிலிருந்து மீண்டும் கண்டுபிடிக்கப்படுகின்றன, பணியாளரின் சொந்த விண்ணப்ப இணைப்பு போர்டு பக்கத்தை வெல்கிறது, சம்பளம் வேண்டுமென்றே இணைக்கப்படவில்லை (அட்டவணையின் சம்பள புலங்கள் கொடிகளே, பணமல்ல).
  • Block G இடுகை செல்லுபடி சமிக்ஞை ஆவணங்களின் எட்டு புதிய தொகுப்பு (modes/oferta-signals/08–17): நலன்கள் சொற்பிரயோகத்தில் நாடு, மூன்றாம் தரப்பு தளத்தின் இட குறிச்சொல், முகவர் உரிமம், குடியேற்ற தேவைகளின் மீறல், அதிகார வரம்பு தடைசெய்யும் உள்ளடக்கம், pay-transparency வரம்பு அகலம், குறைந்தபட்ச ஊதிய வழக்கறிஞர் கேள்வி, AI திரையிடல் வெளிப்படுத்தல், கால ஒப்பந்த வெளிப்படுத்தல், relocation வாங்கும் திறன்.

மாற்றப்பட்டது

  • அடித்தளத்துடன் வரும் பேரண்ட்-பக்க வலுப்படுத்தல்கள்: story-provenance சோதனை அலகு மற்றும் வாக்கிய அடிப்படையில் வேலை செய்கிறது, user-cannot-confirm எண்களை பேச்சுவார்த்தை, ATS, நேர்காணல் வெளியீட்டிலிருந்து விலக்கி வைக்கிறது; CV fact-gate ஒவ்வொரு ரெண்டரரிலும் இயங்கி மறுவார்த்தை செய்யப்பட்ட மற்றும் கட்டமைக்கப்பட்ட கூற்றுகளைப் படிக்கிறது; LaTeX எழுதுவதற்கு முன் காலாவதியான பிரித்தெடுக்கப்பட்ட ஸ்லாட்களை நிராகரிக்கிறது; follow-ups அணைக்கப்பட்டிருந்தால் launchd சுத்தம் தவிர்க்கப்படுகிறது; update-system உள்ளூர் திருத்த ஸ்கேனை argv வரம்பிற்குள் வைக்கிறது.
  • ஃபோர்க்கின் வேறுபாடுகள் இணைப்பில் உயிர் பிழைத்தன: providers/telegram.mjs (ஃபோர்க்-மட்டும் பார்சர், ADR-0001) மற்றும் telegram-channel.mjs-இல் Unicode lookaround LOCATIONISH_RE (ADR-0002). போர்டு ஆவணம் இப்போது அப்ஸ்ட்ரீமின் மேம்படுத்தப்பட்ட telegram-channel வரிசை, ஃபோர்க்-மட்டும் telegram வரிசை, Tech in Asia, மற்றும் 20 → 100 ஆக உயர்த்தப்பட்ட Tencent இயல்பு max_pages ஆகியவற்றை பட்டியலிடுகிறது.

குறிப்புகள்

  • இந்த வெளியீட்டில் SPA நடத்தை மாற்றம் இல்லை: இது ஆவண ரயில் பிளஸ் பேரண்ட் மீள்-பின் ஆகும். டிப்ளாய் இப்போது பேரண்ட் 1.37.0-இல் இயங்குகிறது; கானானிகல்-நிலை அட்டவணை பேரண்ட் டெல்டாவால் தொடப்படவில்லை — ட்ராக்கர் நிலைகள் முன்பை விட மாறாமல் ரெண்டர் ஆகின்றன.
  • அப்ஸ்ட்ரீம் இணைப்பில் இரு மோதல்கள் தீர்க்கப்பட்டன: docs/SUPPORTED_JOB_BOARDS.md (இரு telegram வரிசைகளும் பாதுகாக்கப்பட்டன) மற்றும் test-all.mjs (அப்ஸ்ட்ரீமின் walkTree அடிப்படை copyDirSync ஃபோர்க்கின் .git கூடு-செக்அவுட் கையேடு காவலை உள்ளடக்குகிறது; இறக்குமதி பட்டியல் ஒன்றிணைப்பு).

[1.251.1] — 2026-10-12

சிறப்புத்துறை வடிகட்டி இப்போது பாத்திரத்தின் வேறுபடும் சொற்களை மட்டுமே match செய்கிறது — சினியாரிட்டி மற்றும் பொது வேலை பெயர்கள் தாங்களாகவே வேலையை match செய்யாது — remote-qa வடிவத்தையும் மொழியையும் பிரிக்கிறது, எனவே டிரிஃப்ட் A–G-ஐ சிவப்பாக்காது.

சரி செய்யப்பட்டது

  • சிறப்புத்துறை வடிகட்டி தனது மேட்சரிலிருந்து சினியாரிட்டி மற்றும் பொது வேலை பெயர்களை நீக்குகிறது: «Senior PHP Developer» பகிரப்பட்ட Senior/Developer மூலம் «Senior Java Developer»-ஐ match செய்தது. மேட்சர் வேறுபடும் டோக்கன்களை மட்டுமே வைக்கிறது (PHP, Go, Platform, SRE, Backend…); வேறுபடும் டோக்கன்கள் இல்லாத பாத்திரம் («Software Engineer») முழு வாக்கிய match-க்கு விழுகிறது. வார்த்தை எல்லைகள் நிலைக்கின்றன: «Go» எப்போதும் «Golang»/«Google»-ஐ match செய்யாது.
  • remote-qa வடிவத்தையும் மொழியையும் பிரிக்கிறது: A–G கொடி பிளாக்/SCORE_SUMMARY/looping குறியீடுகளால் மட்டுமே தீர்மானிக்கப்படுகிறது; report not in <locale> டிரிஃப்ட் தனது கொடிக்கும் warnings நெடுவரிசைக்கும் செல்கிறது (அட்டவணை காணாமல் போன 4வது நெடுவரிசையைப் பெறுகிறது; குறியீடுகள் வரி வாரியாக சேமிக்கப்படுகின்றன).
  • மேப் டூல்பார் 390px-இல் உண்மையான 50/50 (58/42 பிரிவு தேடலை 124px-இல் விட்டு அதன் placeholder-ஐ வெட்டியது), இறந்த .job-map-job-select CSS விதி நீக்கப்பட்டது.
  • CodeQL 552 — design-qa டெஸ்ட்டில் பயன்படுத்தப்படாத OVERLAYS மாறி நீக்கப்பட்டது.

குறிப்புகள்

  • மைல்கள் இன்னும் உரிமையாளரால் ஒத்திவைக்கப்பட்டுள்ளன. ta மொழி டிரிஃப்ட் hermes பேக்கெண்டின் ஆவணப்படுத்தப்பட்ட வரம்பாக உள்ளது (ஓட்டங்களில் ப்ரோஸ் 2–26%; A–G நிலைக்கிறது): remote-qa இதை எதிர்பார்க்கப்படும் கண்டுபிடிப்பாக அறிக்கையிடுகிறது. பொது டோக்கன் பட்டியல் வேண்டுமென்றே குறைந்தது — விரிவாக்க ஒரு மொழிக்கு ஒரு வரி.

[1.251.0] — 2026-10-12

மேப் select இப்போது அமைப்புகளின் சிறப்புத்துறையால் வடிகட்டுகிறது (config/profile.yml → target_roles.primary): «Product Manager» அல்லது «Backend Engineer (Go / PHP)» தேர்ந்தெடுத்தால், அந்த பாத்திரத்தின் சொற்களை தலைப்பில் கொண்ட வேலைகள் மட்டும் மேப்பில் இருக்கும். V1.250.0-இன் வேலை-பட்டியல் லொக்கேட்டர் நீக்கப்பட்டது — தவறான கருவி (உரிமையாளர் திருத்தம்).

சேர்க்கப்பட்டது

  • சிறப்புத்துறை வடிகட்டி: select, அமைப்புகளின் சிறப்புத்துறைகளை (target_roles.primary) பட்டியலிடுகிறது; ஒன்றைத் தேர்ந்தெடுத்தால், தலைப்பில் அந்த பாத்திரத்தின் வேறுபடுத்தும் டோக்கன்களில் ஒன்றைக் கொண்ட வேலைகள் மட்டுமே இருக்கும் (வார்த்தை எல்லைகள், கேஸ் பொருட்படுத்தாமல் — «Go» எப்போதும் «Google»-ஐ match செய்யாது); Reset அனைத்தையும் மீட்டமைக்கும்.
  • V1.250.0-இன் வேலை-பட்டியல் லொக்கேட்டர் நீக்கப்பட்டது — மாற்று: சிறப்புத்துறை வடிகட்டி, வேலை-பட்டியல் அல்ல (உரிமையாளர் திருத்தம்).

மாற்றப்பட்டது

  • Two mobile-map height specs: the floor moves 600 -> 540 px (the toolbar takes ~90 px of the viewport).

குறிப்புகள்

  • மைல்கள் இன்னும் உரிமையாளரால் ஒத்திவைக்கப்பட்டுள்ளன. மேட்ச் வேண்டுமென்றே தலைப்பு-மட்டும், அமைப்புகளின் சொற்களுடன்: நிறுவனங்கள் அல்லது விளக்கங்கள் தொடர்பில்லாத வேலைகளை சிறப்புத்துறைக்குள் இழுத்துவிடும். எல்லா கட்டமைக்கப்பட்ட பாத்திரங்களுக்கும் வெளியே உள்ள வேலை «All»-இன் கீழ் தெரியும்.

[1.250.0] — 2026-10-12

மேப் பக்கம் வேலை செய்யக்கூடியதாக மாறுகிறது: மேப்புக்கு மேலே உள்ள வேலை லொக்கேட்டர் தெரியும் எந்த வேலைக்கும் பறந்து அதன் பீக்கைத் திறக்கிறது (டெஸ்க்டாப்பும் சேர்த்து), மற்றும் டெக்ஸ்ட் தேடல் நிறுவனம் அல்லது பதவியால் மேப்பைக் குறுகுகிறது — இரண்டும் ரீலோடுக்குப் பிறகும் நிலைக்கின்றன.

சேர்க்கப்பட்டது

  • வேலை லொக்கேட்டர்: மேப்புக்கு மேலே உள்ள select, தெரியும் வேலைகளை நிறுவனம்+பட்டினம் வரிசையில் list செய்கிறது; தேர்வு வட்டத்திற்குப் பறந்து பீக்கைத் திறக்கும் — டெஸ்க்டாப்பிலும்.
  • டெக்ஸ்ட் தேடல்: நிறுவனம்+பட்டினம் மூலம் மேப்பைக் குறுகுகிறது, map-prefs-இல் நிலைக்கிறது, Reset சுத்தம் செய்யும்.
  • FAB இனி #/map-இல் attribution-ஐ மறைக்காது (எல்லா அகலங்களிலும்).

சரி செய்யப்பட்டது

  • இரண்டு மொபைல்-மேப் உயர ஸ்பெக்குகள்: வரம்பு 540 px ஆகிறது (டூல்பார் வியூபோர்ட்டின் ~90 px எடுக்கும்).

குறிப்புகள்

  • மைல்கள் உரிமையாளரால் அடுத்த ரிலீஸுக்கு ஒத்திவைக்கப்படுகிறது. 4 புதிய i18n விசைகள் 18 அகராதிகளில் நுழைகின்றன மற்றும் கூட்டு ஸ்னாப்ஷாட் மீண்டும் உருவாக்கப்படுகிறது. லொக்கேட்டர் எப்போதும் பீக்கைத் திறக்கும் (செல்வது அதன் நோக்கத்தை வீணாக்கும்); வட்டம் __job பின்சேர்க்கை மூலம் கண்டறியப்படுகிறது — L.Circle ஏற்கனவே உடைய _point அல்ல.

[1.249.0] — 2026-10-11

வேலைவாய்ப்பு வரைபடம் இப்போது பொருத்தத்துக்கு முன்னுரிமை தருகிறது: அமைதியான நீலப்பச்சை முதல் சாம்பல் வரையிலான அளவுகோல் சிறந்த வேலைகளை முன்னிலைப்படுத்துகிறது; மதிப்பெண் மற்றும் பயண வடிகட்டிகள் சேமிக்கப்படுகின்றன; கைபேசியில் முழு உயர வரைபடமும் தட்டிப் பார்வையிடுதலும் கிடைக்கின்றன; tracker அதே பயண வடிகட்டி மற்றும் வரிசையைப் பகிர்கிறது.

[1.248.8] — 2026-10-11

பேரெண்ட் பாரிட்டி: fork மற்றும் web-ui upstream-இன் 115-கமிட் டெல்டாவுடன் ஒத்திசைகின்றன — புதிய PageUp மூலம், ட்ராக்கர் URL செல்கள் markdown இணைப்புகளாக பார்ஸ் செய்யப்படுகின்றன, Assessment நிலை — மேலும் ta/ja மொழி வேலை: லூப் அறிக்கைகள் துண்டிக்கப்பட்டு பெயரிடப்படுகின்றன, தலைப்பு ஸ்கெலட்டன் A–G-ஐ நிலையாக வைக்கிறது, ஸ்கிரிப்ட் பங்கு ப்ரோஸில் மட்டுமே படிக்கப்படுகிறது.

சேர்க்கப்பட்டது

சரி செய்யப்பட்டது

  • புதிய PageUp மூலம் (105 EN அடாப்டர்கள் / 110 மூலங்கள்); ட்ராக்கர் URL செல்கள் markdown இணைப்புகளாக பார்ஸ் செய்யப்படுகின்றன (href டீ-டுப் கீ); Assessment நிலை states.yml வழியாக வருகிறது.
  • லூப் அறிக்கை துண்டிக்கப்பட்டு பெயரிடப்படுகிறது (report looping (block B repeated)), அல்லாத-ஆங்கிலத்திற்கான தலைப்பு ஸ்கெலட்டன் ## A) … ## G).
  • ஸ்கிரிப்ட் பங்கு ப்ரோஸில் மட்டுமே (அட்டவணைகள், SCORE_SUMMARY, கோட், URL கள் விலக்கப்பட்டு) — லத்தீன் அட்டவணைகள் கொண்ட ஜப்பானிய அறிக்கை இனி அலைகிறதில்லை.
  • /api/evaluate report not in <locale> எச்சரிக்கை சேர்க்கிறது, remote-qa குறியீடுகளை நெடுவரிசையாக அச்சிடுகிறது.

-

[1.248.7] — 2026-10-11

அறிக்கை தலைப்பின் பாத்திரம் இப்போது # <பாத்திரம்> — <நிறுவனம்> என கருதுவதற்கு பதிலாக பேரெண்டின் உண்மையான மரபைப் படிக்கிறது — # Evaluation: {நிறுவனம்} — {பாத்திரம்} — எனவே ட்ராக்கர் இனி «Evaluation: <நிறுவனம்>»-ஐ பாத்திரமாக கொண்டு செல்லாது; தவறான மொழியிலான அறிக்கை மௌனமாக சேமிப்பதற்கு பதிலாக எச்சரிக்கிறது; H1-க்கு முன் மாடலின் பேச்சு சேமிக்கப்பட்ட அறிக்கைகளிலிருந்து நீக்கப்படுகிறது.

சரி செய்யப்பட்டது

  • உள்ளூர்மயமாக்கப்பட்ட லேபிள் முதலில் நீக்கப்படும் (Evaluation:、Оценка вакансии: மற்றும் 16 வகைகள்); லேபிளுக்குப் பிறகு Company — Role → பாத்திரம் வலது பக்கம்; லேபிள் இல்லையெனில் Role — Company → இடது; நிறுவனத்தைப் பெயரிடும் பகுதி முடிவு செய்யும்; பாத்திரம் ஒருபோதும் நிறுவனமாகவோ லேபிள் சொல்லாகவோ இருக்காது — நிகர சுத்தப்படுத்திய பதிவு வரி.
  • cleanup-plan வரிகளின் N-ஐக் கூட்டுகிறது (— N dirty-URL line(s)), கோப்புகளை எண்ணாது — 5 அழுக்கு URL கொண்ட கோப்பு 1 அல்ல 5 கொடுத்தது.
  • தவறான மொழி அறிக்கை எச்சரிக்கிறது: ப்ராம்ப்ட் கட்டாய மொழி அறிவுறுத்தலுடன் திறக்கிறது மற்றும் முடிக்கிறது (முழு அறிக்கை, அட்டவணைகள் உட்பட), பைப்லைன் சேமிக்கப்பட்ட அறிக்கையின் மொழியைச் சரிபார்க்கும் — திசைதிருப்பம் report not in <locale> எச்சரிக்கையாக வெளிப்படும்.
  • H1-க்கு முன் மாடல் பேச்சு இல்லை — அறிக்கை தன் தலைப்பு வரியிலிருந்து தொடங்குகிறது.

குறிப்புகள்

  • போர்ட் செய்யவில்லை, தொடவில்லை (v1.248.6 ரிக்ரெஷனில் சரிபார்க்கப்பட்டது): embed-ஃபெட்ச், பதிவின் வரி அமைப்பு («Компания : X»), «## Rejected» டீ-டுப், fetch-க்கு முன் டொமைன் ரூட் நிராகரிப்பு, recon/link-check நேர்மை, cleanup மோட்கள். மொழி சரிபார்ப்பு ஒரு எச்சரிக்கை — (உள்ளடக்கம் A–G + மதிப்பெண் சரிபார்க்கப்பட்ட) அறிக்கை சேமிக்கப்படும்; ஆபரேட்டர் திசைதிருப்பத்தைப் பார்த்து மதிப்பீட்டை மீண்டும் செய்யலாம்.

[1.248.6] — 2026-10-10

ரிக்ரெஷனுக்குப் பிந்தைய டெலிகிராம் சங்கிலி பாலிஷ்: உண்மையான பதிவு அதன் வரி அமைப்பைப் பாதுகாக்கிறது («Компания : X» லேபிளும் பாத்திர வரியும் அவை உண்மையில் இருக்கும் இடத்தில் கண்டறியப்படுகின்றன), ட்ராக்கர் பாத்திரம் மூல பதிவு வரியிலிருந்து அல்லாமல் அறிக்கை தலைப்பிலிருந்து வருகிறது, மற்றும் செய்பணி மேற்பரப்புகள் (recon, cleanup-plan, link-check) அவை கூறுவதையே அறிக்கையிடுகின்றன.

சரி செய்யப்பட்டது

  • t.me பதிவு இனி ஒரு வரியாக ஒட்டாது: டேக்குகள் நீக்கப்படுவதற்கு முன் <br> வரி முறிவாக மாறும், எண் HTML எண்டிட்டிகள் டிகோட் செய்யப்படும்; நிறுவன லேபிள் முறை கொலோனுக்கு முன் இடைவெளியுடன் வரும் வடிவத்தையும் ஏற்கும்.
  • ட்ராக்கர் பாத்திரம் அறிக்கை தலைப்பிலிருந்து வருகிறது (H1 # <பாத்திரம்> — <நிறுவனம்>); ஃபால்பேக் வரி சுத்தம் செய்யப்படும் — ஹேஷ்டேக் இல்லை, இமோஜி இல்லை, ≤80 எழுத்துகள்.
  • ## Rejected இனி நகலாக்கப்படாது: பிரிவு ஒரே முறை உருவாக்கப்படும்; ஒவ்வொரு நிராகரிப்பும் அதனுள் தன் வரியைச் சேர்க்கும்.
  • டொமைன் ரூட் கோரிக்கைக்கு முன் நிராகரிக்கப்படும் — குப்பை URL இனி எதுவும் செலவாகாது.
  • Recon ஒப்பந்த சமிக்ஞையைக் கணக்கிடுகிறது, உறுதிப்படுத்துவதில்லை (honours rejected: வரிசைப்படுத்திய கோடில் markPipelineRejected ஐச் சரிபார்க்கும்); மார்க் கவுண்டர் 0-ஐ இரண்டு முறை அச்சிடாது.
  • cleanup-plan வகை வாரியாக எண்களை அறிக்கையிடும் (நகர்த்த வேண்டிய t-role, dirty-URL வரிகள், test-row வரிகள்) — தன் வெற்றி வரியையே எண்ணிய ஒற்றை grep -cக்கு பதிலாக.
  • link-check github.com 5xx-ஐ சரிபார்க்கப்படாததாகக் கருதும் — பாட்-சுவருக்குப் பின்னால், உடைந்த இணைப்புகளாக அல்ல.

குறிப்புகள்

  • போர்ட் செய்யவில்லை, தொடவில்லை (v1.248.5 ரிக்ரெஷனில் சரிபார்க்கப்பட்டது): embed-ஃபெட்ச் அதே, pipeline ஸ்கிப் ஒப்பந்தம், _setLookup ஆஃப்லைன் சோதனைகள், uk வரிசை எண் ஏற்பு, பாத்திர ஃபில்டரில் வார்த்தை எல்லைகள், cleanup-apply மோட். cleanup-plan-இன் வகை வாரியான எண்ணிக்கை க்ளீனப் ஸ்கிரிப்டின் சொந்த அவுட்புட் லேபிள்களைப் படிக்கிறது — அவற்றை மறுபெயரித்தால் கவுண்டர்கள் மௌனமாக உடையும்.

[1.248.5] — 2026-10-10

ரிக்ரெஷனுக்குப் பிந்தைய வலுப்படுத்தல்: t.me தனிப் பதிவு உள்ளீடுகள் இப்போது பதிவின் உரையையே பெறுகின்றன (embed வடிவம்), நிராகரிக்கப்பட்ட உள்ளீடு சர்வர்-பக்கத்தில் eval டைமரின் பூலை விட்டு வெளியேறுகிறது, மற்றும் உக்ரேனிய அறிக்கையின் சொந்த தொகுதி எண்ணிடல் ஏற்றுக்கொள்ளப்படுகிறது — மேலும் ரகசியமாக நேரடி நெட்வொர்க்கைப் பயன்படுத்திய ஒரு சோதனை என்றென்றும் ஆஃப்லைனில் உள்ளது.

சரி செய்யப்பட்டது

  • t.me உள்ளீடுகள் இறுதியாக மதிப்பிடப்படுகின்றன: தனிப் பதிவுப் பக்கம் சாதாரண HTML-இல் சேனல் தலைப்பை மட்டுமே வழங்குகிறது (~0.2 KB — «View in Telegram» மட்டுமே), மாடல் காலியான விளக்கத்தைப் பெற்றது, ஒவ்வொரு டெலிகிராம் உள்ளீடும் மதிப்பீட்டில் இறந்தது. பெறுதல் இப்போது t.me/<சேனல்>/<id> (மற்றும் t.me/s/… ஃபீட் வடிவத்தை) embed வடிவத்திற்கு (?embed=1&mode=tme) மாற்றுகிறது — அதே ஹோஸ்ட், SSRF சரிபார்ப்பு மாறவில்லை — மற்றும் .tgme_widget_message_text-இலிருந்து பதிவைப் படிக்கிறது (ஃபால்பேக்: og:description). விட்ஜெட் உரை இல்லை → எந்த LLM டோக்கன் செலவழிக்கப்படுவதற்கு முன்பே பெறுதல் படியில் நிராகரிப்பு (telegram post has no text, rejected: true).
  • eval டைமர் நிராகரிக்கப்பட்ட உள்ளீடுகளுக்கு மீண்டும் கட்டணம் செலுத்துவதை நிறுத்துகிறது (சர்வர்-பக்க ஒப்பந்தம்): நிராகரிக்கப்பட்ட உள்ளீடு இப்போது data/pipeline.md-இல் குறிக்கப்படுகிறது — அதன் வரி URL வேலியை விட்டு வெளியேறி சுருக்கமான காரணத்துடன் ## Rejected பிரிவில் இடம்பெறுகிறது (idempotent, ஒருபோதும் நகலெடுக்கப்படாது). டைமர் வேலியிலிருந்து வெற்று URL-களை எடுக்கிறது, எனவே குறிக்கப்பட்ட உள்ளீடு இயல்பாகத் தவிர்க்கப்படுகிறது — டைமர் ஸ்கிரிப்ட்டின் உள் பகுதிகளைச் சார்ந்திராமல். Recon pipeline rejected marks: N + honours rejected: yes (server-side) ஐ ஸ்கிரிப்ட்டைத் தேடுவதற்குப் பதிலாக அச்சிடுகிறது.
  • உக்ரேனிய அறிக்கைகள் மீண்டும் A–G சரிபார்ப்பைக் கடந்து செல்கின்றன: uk மாடல் தனது சொந்த அல்ஃபாபெட் வரிசையில் (А Б В Г Д Є Ж) தொகுதிகளுக்கு எண்களை இடுகிறது, மற்றும் lookalike பாஸ் அ/வ/ஈ மட்டுமே கணக்கிட்டது — சரியாகத் தொகுதிகள் C, D, F, G ப்ராடக்ஷனில் இல்லை (2/2 இனப்பெருக்கங்கள்). தலைப்புகள் வரிசையாகத் தோன்றும்போது வேலிடேட்டர் இப்போது உக்ரேனிய வரிசை எண் வரிசையை ஏற்றுக்கொள்கிறது (ar-க்கு abjad மற்றும் hi-க்கு தேவநாகரி போன்ற அதே ஒழுக்கம்), மற்றும் ஒவ்வொரு locale-க்குமான மதிப்பீட்டு ப்ராம்ப்ட் இப்போது லத்தீன் A–G ஐ வெளிப்படையாகக் கோருகிறது.
  • பாத்திர கீவேர்ட் கேட் சப்ஸ்ட்ரிங்கில் அல்ல, வார்த்தைகளில் செயல்படுகிறது: linkedin.com/ மற்றும் x.com/ ரூட்கள் கேட்டைக் கடந்தன, ஏனெனில் lead/it பக்கத்தின் தொடர்பில்லாத UI உரையில் வாழ்ந்தன. கீவேர்டுகள் இப்போது Unicode வார்த்தை எல்லைகளில் பொருந்துகின்றன, மற்றும் டொமைன் ரூட் (பாத் இல்லாத URL) LLM அழைப்புக்கு முன் நிராகரிக்கப்படுகிறது.
  • ஒரு யூனிட் சோதனைக்கு இனி நேரடி நெட்வொர்க் தேவையில்லை: no-hints சோதனை (tests/auto-pipeline-jd-gate.test.mjs) HTTP ட்ரான்ஸ்போர்ட்டை ஸ்டப் செய்தது ஆனால் இன்னும் ஒரு உண்மையான DNS தேடலைச் செய்தது — ரன்னருக்கு இணைப்பு இருந்ததால் மட்டுமே CI-இல் பச்சையாக இருந்தது. safe-fetch ஒரு _setLookup() ஹூக்கைப் பெற்றது (ரிசால்வரே சோதனைகளில் மாற்றக்கூடியது; ப்ராடக்ஷன் கோட் அதை ஒருபோதும் மேலெழுதாது), மற்றும் சோதனை ஆஃப்லைனில் ரிசால்வ் செய்கிறது.

சேர்க்கப்பட்டது

  • deploy.yml-இல் cleanup-plan / cleanup-apply வொர்க்ஃப்ளோ மோட்கள்: ப்ராடக்ஷன் QA-குப்பை சுத்தம் (post-qa-cleanup) லேப்டாப்பிலிருந்து SSH இல்லாமல் சர்வர்-பக்கத்தில் இயங்குகிறது. லாக் எண்களை மட்டுமே கொண்டுள்ளது — ஃபைல் பெயர்கள் அல்லது வரி முன்னோட்டங்கள் இல்லை, ஏனெனில் லாக் பொதுவானது மற்றும் ஃபைல் பெயர்களில் நிறுவனப் பெயர்கள் உள்ளன. சுத்தம் மோட்களுக்கு Verify படி தவிர்க்கப்படுகிறது.

குறிப்புகள்

  • போர்ட் செய்யப்படவில்லை: பேரெண்டின் வார்த்தை எல்லை இட கம்பைலர் மற்றும் USPS மாநில அட்டவணை (v1.248.1 முதல் ஆவணப்படுத்தப்பட்டது). நிராகரிக்கப்பட்ட உள்ளீடுகளைத் தவிர்க்கும் ஒப்பந்தம் சர்வர்-பக்கத்தில் உள்ளது (data/pipeline.md-இல் குறியீடு), டைமர் ஸ்கிரிப்ட்டில் அல்ல — அது ரெப்போவுக்கு வெளியே உள்ளது மற்றும் வேண்டுமென்றே மாற்றப்படாதது.

[1.248.4] — 2026-10-10

ரிக்ரெஷன் ரவுண்டின் தொடர்ச்சி: Telegram உள்ளீடுகளின் role-ரிசால்யூஷன் சங்கிலி — உண்மையான வேலைவாய்ப்புள்ள சிரிலிக் பதிவு இப்போது பெயரிடப்பட்ட அறிக்கையைத் தருகிறது, நிராகரிக்கப்பட்ட unknown-role கோப்பிற்குப் பதிலாக — மதிப்பிடத் தகுந்த உள்ளீடுகளுக்கு மட்டுமே LLM அழைப்பு நடக்கிறது.

சரி செய்யப்பட்டது

  • ரோல் சங்கிலி சிரிலிக் பதிவுகளில் வேலை செய்கிறது: முக்கியச்சொல் பட்டியலில் разработчик/программист/инженер/аналитик/менеджер/руководитель/тимлид/лид/дизайнер/тестировщик/QA/архитектор/специалист/директор/DevOps/SRE சேர்க்கப்பட்டன (பழையது EN மட்டும்: 40 உண்மைப் பதிவுகளில் 0-க்கே role கிடைக்கவில்லை), அறிக்கைத் தலைப்பு பார்க்கப்படுகிறது (parseReportHeader — மாடல் role-ஐ H1-இல் எழுதுகிறது), பதிவின் முதல் அர்த்தமுள்ள வரி கடைசி வழி.
  • அடையாள வாயில் LLM அழைப்புக்கு முன் நகர்ந்தது: நிறுவனமோ role-தடயமோ இல்லாத உள்ளீடு fetch படியிலேயே தோற்கிறது (rejected: true) — எப்படியும் நிராகரிக்கப்படவிருக்கும் மதிப்பீட்டுக்குத் தேவையற்ற டோக்கன் செலவு இல்லை.
  • t.me/s/<channel>/<id> இனி நிறுவனத்தை 「S」 எனப் பெயரிடுவதில்லை — முன்தோற்றப் பகுதி தவிர்க்கப்படுகிறது; இரு இணைப்பு வடிவங்களும் சேனலுக்கே ரிசால்வ் ஆகின்றன.
  • Telegram பதிவுகளின் 「Компания: X」 சுய-லேபிள்கள் மதிக்கப்படுகின்றன (மெசெஞ்சர்-ஹோஸ்டுகளின் வாக்கிய-நடுவில் 「…в компании X」-உம்).

சேர்க்கப்பட்டது

  • auto-pipeline தோல்விகள் SSE பிழையில் rejected: true தாங்குகின்றன — சர்வர்-பக்க eval டைமர் இந்தக் கொடியால் pipeline உள்ளீட்டைத் தவிர்க்கிறது, 2 மணி நேரத்திற்கு ஒருமுறை மீண்டும் முயல்வதில்லை.

குறிப்புகள்

  • இந்த முறை போர்ட் செய்யப்படவில்லை: பேரண்டின் word-boundary இட-முக்கியச்சொல் தொகுப்பான் மற்றும் USPS அட்டவணை (v1.248.1 முதல் ஆவணப்படுத்தப்பட்டது).
  • README-இன் 「Translations」 பிளாக் ஒரே கனோனிக்கல் பட்டியலிலிருந்து உருவாக்கப்படுகிறது, CI-இல் பாரிட்டி சோதனை உள்ளது (ஒரு கோப்புக்கு 17 இணைப்புகள், self ஒருபோதும் இணைக்கப்படாது) — ar/pl/uk பிளாக்குகள் கிடைத்தன; |/· வடிவான செபரேட்டர் திசைதிரிபு நீக்கப்பட்டது.

[1.248.3] — 2026-10-10

ரிக்ரெஷன் ரவுண்டின் தொடர்ச்சி: eval டைமர் எந்தச் சூழ்நிலையிலும் பெயரற்ற Telegram குப்பையை அறிக்கையாக இனி சேமிக்க முடியாது, QA சுத்திகரிப்பு உண்மையான Telegram வேலைகளை நீக்காது, வரைபட பண்புக்குறிப்பு மீண்டும் தெரிகிறது, டாஷ்போர்டு சிப்கள் ≥ 4.5:1-இல் படிக்கப்படுகின்றன.

சரி செய்யப்பட்டது

  • auto-pipeline சேமிப்பதற்கு முன் சரிபார்க்கிறது: 0–5 மதிப்பெண் இல்லாத அல்லது A–G பிளாக்குகள் இல்லாத அறிக்கை evaluate படியில் இயக்கத்தை முடிக்கிறது (SSE payload-இல் rejected: true) — அறிக்கை கோப்பும் இல்லை, tracker வரிசையும் இல்லை. v1.248.2 நீள-வாயிலைக் கடந்த t.me உள்ளீடுகள் அதன்பிறகு இன்னும் இரண்டு குப்பைகளை உருவாக்கின; இப்போது பெயரற்ற உள்ளீடுகள் company/role not identifiable-உடன் நிராகரிக்கப்படுகின்றன.
  • guessCompanyRole மெசெஞ்சர்-ஹோஸ்டுகளிலிருந்து நிறுவனத்தைப் புனைவதில்லை — t.me, telegram.me, vk.com, linkedin.com அனைத்தும் EMPTY_DOMAINS-இல்: Telegram பதிவு சேனல்-பெயருக்குத் திரும்புகிறது, பெயரற்ற உள்ளீடு unknown-role ஆகச் சேமிக்கப்படாமல் நிராகரிக்கப்படுகிறது.
  • post-qa-cleanup முதலில் தலைப்பு-மதிப்பெண்ணைப் படிக்கிறது: auto-pipeline சேமிப்பதற்கு முன் SCORE_SUMMARY பிளாக்கை வெட்டுகிறது, எனவே பழைய summary-மட்டும் சோதனை சேமிக்கப்பட்ட ஒவ்வொரு Telegram வேலையையும் குப்பை எனக் குறித்தது — prod-இல் 41-இல் 8 தலைப்பில் மதிப்பெண் கொண்டுள்ளன, --apply அவற்றை நீக்கியிருக்கும். தலைப்பு-மதிப்பெண் (parseReportHeader வழியாக) இப்போது முதன்மை சமிக்ஞை; பிளாக் இருப்பு. dry-run ஒவ்வொரு கோப்புக்கும் காரணத்தை அச்சிடுகிறது.
  • #/map-இல் Leaflet பண்புக்குறிப்பு தெரிகிறது — docs FAB அதை மறைத்தது (OSM உரிம மீறல்); மூலை 96px உயர்த்தப்பட்டது.
  • டாஷ்போர்டு சிப்கள் ≥ 4.5:1 — dash-chip லேபிள்களும் --manual மாறுபாடும் --foggy-strong-க்கு (முன்பு 4.31:1).

சேர்க்கப்பட்டது

  • auto-pipeline தோல்விகள் SSE பிழையில் rejected: true தாங்கி வருகின்றன — சர்வர்-பக்க eval டைமர் இந்தக் கொடியால் pipeline உள்ளீட்டைத் தவிர்க்கிறது, 2 மணி நேரத்திற்கு ஒருமுறை மீண்டும் முயல்வதில்லை.

குறிப்புகள்

  • ar/ja திசைதிரிபு மறு-இயக்கத்தில் மீண்டும் வரவில்லை (v1.248.2 பார்க்கவும்).
  • புரொடக்ஷன் சுத்திகரிப்பு இன்னும் பயனரின் வெளிப்படையான «ஆம்»-ஐ எதிர்க்கிறது (CAR-61c); இந்தத் திருத்தத்துடன் சுத்திகரிப்பு உண்மையான Telegram வேலைகளை நீக்க முடியாது.

[1.248.2] — 2026-10-10

ரிக்ரெஷன் சுற்று: eval டைமர் இனி pipeline குப்பையை «Last evaluation» ஆக்குவதில்லை, SCORE பார்சிங் உண்மையான வடிவங்களைத் தாங்குகிறது, ட்ரேக்கர் இறுதியாக உங்கள் மொழியில் பேசுகிறது.

சரி செய்யப்பட்டது

  • காலி-JD அறிக்கைகள் இனி எழுதப்படுவதில்லை. auto-pipeline-இன் JD வாயில் LLM அழைப்புக்கு முன் 50 → 200 எழுத்துகளாக உயர்ந்தது — placeholder பக்கங்கள் (example.com/qa-v167-…) …-t-role-<ts>.md அறிக்கைக்குப் பதிலாக SSE பிழை + கன்சோல் எச்சரிக்கையில் முடிகின்றன; டாஷ்போர்டு «Last evaluation» ஆகக் காட்டியது (prod-இல் 42 கோப்புகள்).
  • SCORE_SUMMARY பார்சிங் உண்மையான வடிவங்களைத் தாங்குகிறது: «4,2/5» «4.2 / 5» «4.2» «SCORE :» எல்லாம் செல்லும்; 1–2 இலக்கங்களுடன் கமா தசம, 3 இலக்கங்களுடன் ஆயிரம் (பழைய கோட் «4,200»-ஐ 4.2 ஆகப் படித்து 0–5 வாயிலைக் கடந்தது). தோல்வி SCORE: வரியை மட்டுமே லாக் செய்யும் — அறிக்கை உள்ளடக்கத்தை ஒருபோதும் இல்லை (CI லாக்குகள் பொது).

சேர்க்கப்பட்டது

  • scripts/post-qa-cleanup.mjs: இயல்புநிலை dry-run, --apply தானியங்கு காப்புகளுடன் (*.bak-<ts>, அறிக்கைகள் qa/cleanup-backup-<ts>/-க்கு நகர்கின்றன): tracker-இன் ZZ-QA-TEST வரிசைகள், செல்லுபடியாகும் SCORE இல்லாத *-t-role-* அறிக்கைகள், pipeline-இன் example.com பதிவுகள்.

குறிப்புகள்

  • ரிக்ரெஷன் சுற்றின் ar/ja திசைதிரிபு மறு-இயக்கத்தில் மீண்டும் வரவில்லை (இரண்டும்: lang ✓ + A–G ✓) — language-check-இன் ta பதிவும் வலுப்படுத்தப்பட்ட SCORE பார்சரும் defense-in-depth ஆக வெளிவருகின்றன.
  • புரொடக்ஷன் சுத்திகரிப்பு பயனரின் வெளிப்படையான «ஆம்»-ஐ எதிர்க்கிறது: முதலில் dry-run திட்டம், பிறகு --apply.

[1.248.1] — 2026-10-09

location_filter பேரண்டின் always_allow மற்றும் block_hard நிலைகளைப் பெறுகிறது (CAR-60) — பல-நாடு இட வரிசை தடைசெய்யப்பட்ட சகோதர-பட்டியலைத் தாண்டுகிறது, வெளிப்படையான கடின தடையை இனி மீட்க முடியாது.

சரி செய்யப்பட்டது

  • always_allow block-ஐ வெல்கிறது: block: [romania, poland, croatia] மற்றும் always_allow: [united kingdom] இருக்கும்போது, workable-இன் இணைக்கப்பட்ட செல் «London, United Kingdom · Romania · Poland · Croatia» கடந்து செல்கிறது — சொந்த பிராந்தியம் ஒரு விருப்பம் (workable #4806-இன் நுகர்வோர் வழக்கு, இப்போது பேரண்ட் வடிவில்).
  • block_hard always_allow-ஐ வெல்கிறது: வரியின் வேறு இடத்தில் always_allow பொருத்தத்தால் ஒருபோதும் மீட்கப்படக்கூடாத நாடு-நிலை சொற்கள்.
  • strict: true இப்போது block_hard-ஐ கட்டுப்படுத்தும் நிலையாகக் கணக்கிடுகிறது; docs/help-இன் location_filter பகுதி இரு நிலைகளையும் ×18 ஆவணப்படுத்துகிறது.

குறிப்புகள்

  • இம்முறை வேண்டுமென்றே போர்ட் செய்யவில்லை: பேரண்டின் word-boundary இட முக்கியச்சொல் தொகுப்பான் மற்றும் USPS மாநில அட்டவணை (web-ui substring பொருத்தத்தையே வைத்திருக்கிறது; அட்டவணை அமெரிக்க-மைய கட்டமைப்புகளுக்கே — தேவைப்பட்டால் CAR-60-இன் கீழ் இணைக்கவும்). workable நுகர்வோர் சோதனையின் இடைக்கால allow-list வடிவம் புதிய பேரண்ட் வடிவத்துடன் இரண்டாவது தீர்ப்பாக நீடிக்கிறது.

[1.248.0] — 2026-10-09

பேரண்ட்-பாரிட்டி: மேல்நிலை ஐந்து provider/liveness திருத்தங்கள் போர்ட் செய்யப்பட்டன — API-ஐ நகர்த்திய போர்டுகள் தொடர்ந்து வேலை செய்கின்றன, தனிவரிசை முடிவுறுத்தல் பேனர் இனி தவறவில்லை.

சரி செய்யப்பட்டது

  • Gupy API-ஐ portal.gupy.io-ஐப் பின்தொடர்கிறது, மேலும் API உண்மையில் படிக்கும் வடிகட்டி பெயர்களை அனுப்புகிறது (workplaceType/type) — பழைய பன்மைப் பெயர்கள் மௌனமாகப் புறக்கணிக்கப்பட்டன; country இனி அனுப்பப்படாது (கட்டமைக்கப்பட்ட நாடு அனுப்புவதற்குப் பதிலாக உள்ளீட்டுப் பெயருடன் எச்சரிக்கை வரைகிறது). Confidencial முதலாளிகள் சரியான லேபிள் பொருத்தத்தில் விழுகிறார்கள் («Confidencial Seguros» உயிர்ப்புடன்), max_pages 100-ஆகக் கட்டுப்படுத்தப்பட்டது — offset 10,000-க்குப் பிறகு API 400 தரும், truncation எச்சரிக்கை இப்போது வரம்பை உயர்த்தாமல் முக்கியச்சொற்களைச் சுருக்கச் சொல்கிறது.
  • Workable பல-நாடு வேலையின் எல்லா நாடுகளையும் வைத்திருக்கிறது: ஒரே job-URL-இன் கீழ் சகோதர-பதிவுகள் ஒரே வரியாக மடிகின்றன („London, United Kingdom · Romania · Poland · Croatia“) — முதல் நாடு வெல்வதில்லை.
  • Liveness: தனிவரிசை பேனர் மேலிருக்கும் வரியின் பகுதி அல்ல — வேலைக்குக் கீழே «Sign in if you want to apply» / «Get notified when this position is filled» என்பது அது இருக்கும் முடிவுறுத்தல் பிரிவாகவே படிக்கப்படுகிறது; வரிகளின் குறுக்கே இருக்கும் உண்மையான «until filled» இன்னும் active ஆகவே படிக்கப்படுகிறது.
  • Radancy லெகசி கார்டு மார்க்அப்பில் சகோதர job-location உறுப்பைப் படிக்கிறது (Barclays-குடும்ப அமைப்புகள் இடத்தை </a>-க்குப் பிறகு வைக்கின்றன) — சொந்த இடமில்லாத வரிசைகள் காலியாகவே இருக்கின்றன, அண்டையின் இடத்தைக் கடன் வாங்குவதில்லை.
  • SmartRecruiters ஃபால்பேக் வேலை இணைப்புகள் கட்டமைக்கப்பட்ட slug-ஐ வைத்திருக்கின்றன — நம்பத்தகுந்த அல்லாத/இல்லாத ref கொண்ட வேலை அதன் பொது URL-ஐ tenant slug-இலிருந்து உருவாக்குகிறது, காட்சி-பெயரிலிருந்து ஒருபோதும் இல்லை.

சேர்க்கப்பட்டது

  • No-ports ஆவணப்படுத்தப்பட்டது: மேல்நிலை _http proxy fetchImpl திருத்தம் (web-ui-இல் proxy கிளையே இல்லை — போர்ட் செய்தால் DNS-rebinding காவலரின் identity-சோதனை செயலிழக்கும், repo வேண்டுமென்றே தவிர்க்கும் undici சார்பு சேரும்); மேல்நிலை verify-ats (+226 வரிகள்) மற்றும் cv-facts (web-ui தன் சொந்த ATS ஸ்கோரிங், CV பார்சிங் செயல்படுத்துகிறது); பேரண்ட் டாஷ்போர்டு Go TUI மற்றும் CLI ஸ்கிரிப்ட்கள்; Teamtailor import மறுவரிசை (அழகுப்பணி).

குறிப்புகள்

  • அறியப்பட்ட இடைவெளி follow-up ஆக: பேரண்ட் location வடிகட்டியின் always_allow நிலை (workable நுகர்வோர் சோதனை இதன் மூலம் UK தடையைத் தாண்டுகிறது) web-ui-இல் இல்லை; போர்ட் அதே நுகர்வோர் முடிவை allow-list சோதனையால் வெளிப்படுத்தியது. தனிமாற்றமாகப் பதிவு செய்யப்பட்டது.

[1.247.0] — 2026-10-09

CAR-49…58 டிசைன் ஸ்வீப்பின் வால் பகுதி முடிந்தது — மீதமுள்ள அனைத்து minor/polish கண்டறிதல்களும், முந்தைய வெளியீடு வேண்டுமென்றே ஒத்திவைத்த இருள் வரைபடமும்.

சரி செய்யப்பட்டது

  • வரைபடம் உண்மையான இருள் தீமையை வரைகிறது. zoom/அடுக்குகள்/பண்புக்குறிப்பு v1.246.0-இல் இருளானது; இப்போது டைல்களும்: இருள் முறையில் CSS-மாற்றத்துடன் OSM அடுக்கு வரையப்படுகிறது (வெண்டார் கீ இல்லை), keyed Carto-dark preset MAP_TILE_DARK_URL வழியாகக் கிடைக்கிறது (அதன் ஹோஸ்ட் CSP img-src-இல் அனுமதி). தீம் மாறும்போது அடுக்கு நேரடியாக மீண்டும் பொருத்தப்படுகிறது.
  • மஞ்சள் callout-களுக்கு இருள் வடிவங்கள் (config, batch, hero எச்சரிக்கை) — v1.246.0 டோக்கன் இயக்கத்துடன்; வழியில் ஒரு ரிக்ரஷனும் பிடிபட்டது: .callout a .btn-primary-ஐ மிதித்தது; இப்போது :not(.btn) எல்லை.
  • Apply தகவல் அட்டையின் URL சொல் நடுவில் இனி வெட்டாது.
  • CV தலைப்பு பொத்தான்கள் ஒரே ஐகான் முறைமை (உரை; 📁/📄/💾 கலப்பு நீக்கம்).
  • Tracker நிலை தாவல்கள் ஒரே எழுத்து முறையில் — sentence case, மொழி ஏற்ப தகவமைப்பு (CJK/ar/hi/ta-வில் பால்-வடிவங்கள் இல்லை).
  • டாப்பார் ஐகான்கள் ஒரே stroke-SVG தொகுப்பு — 🔔/🌙/🩺 கலப்பு நீக்கம்; தீம் பொத்தான் sun/moon-ஐ CSS-இல் வரைகிறது.
  • டாஷ்போர்டின் Pipeline அட்டை அதன் இளஞ்சிவப்பு முன்னுரிமையை இழந்தது (வளையம் hover/focus-இல் மட்டும்).
  • சேமித்த தேடல்களை நீக்குவது உண்மையாக அழிவுத்தன்மை கொண்டதாகத் தெரிகிறது (.btn-danger, நடுநிலை ghost அல்ல).
  • Pipeline முன்தோற்றத்திற்கு உண்மையான காலி நிலை (தலைப்பு + குறிப்பு + CTA, tracker மாதிரி).
  • நேரம்/செலவு மெட்டா ஒரே மாதிரி: UI.pageMeta ⏱ + செலவை வியூ தலைப்பின் கீழ் ஒரே வரியில் வரைகிறது (evaluate/deep/auto/mode-page/orientation).
  • Auto-pipeline-இடமிருந்து ✨ நீக்கம் — செயலியின் ஒரே அலங்கரிக்கப்பட்ட h1 பொது இடப்புற விளிம்புக்குத் திரும்பியது.
  • Batch docs URL இன்லைன் இணைப்பு.
  • interview-digest / orientation-இல் வடிவமைக்கப்பட்ட காலி நிலைகள் (தலைப்பு + குறிப்பு + CTA).
  • திட்டமில்லாதபோது career-plan Export முடக்கம், செயல்கள் ஒரே வரிசையில்.
  • stats: மீண்டும்மீண்டும் வரும் «Market report» தலைப்பு நீக்கம், பிராந்திய placeholder பொருந்துகிறது (×18 சிறியது, நிலை அகலம்).
  • Config இனி முழு கோப்புப் பாதைகளை கசியவிடுவதில்லை — சர்வர்-பக்க displayPath() ~/… அல்லது வெறும் கோப்புப்பெயரைக் காட்டுகிறது.
  • LLM_PROVIDER உதவியாளர் மூன்று சிறு வரிகள் (×18 + pre-line), 150-எழுத்து mono சுவர் அல்ல.
  • சுயவிவர EMAIL அட்டை முகவரியை ஒரே வரியில் வைக்கிறது (ellipsis; ≤480px-இல் மட்டும் மடிவு).
  • Health உரை இனி சொற்களை உடைக்காது («Run buttons» முழுமை; overflow-wrap anywhere).
  • Help-இன் இன்லைன் கோட் RTL-இலும் உயிர்ப்புடன் (LTR ஒதுக்கீடு, nowrap, உருட்டக்கூடியது).
  • Hero-இன் «Live evals» பில் ru/ar-இல் இனி மோதாது (flex-wrap, சுருங்காத ஐகான்கள்).

சேர்க்கப்பட்டது

  • இருள் டைல் preset (MAP_TILE_DARK_URL + பண்புக்குறிப்பு) கோடில் ஆவணப்படுத்தப்பட்டது; CSP img-src விரிவாக்கம் அதன் Carto ஹோஸ்டை உள்ளடக்குகிறது.

குறிப்புகள்

  • இருள் டைல்களின் இயல்புநிலை OSM-இன் CSS மாற்றமே — கீ இல்லாத Carto தன் basemaps-ஐ API கீக்குப் பின்னால் மூடியது (கோரிக்கையால் சரிபார்க்கப்பட்டது); keyed preset ஒரு opt-in, இயல்புநிலை அல்ல.

[1.246.0] — 2026-10-09

CAR-48 சீனியர்-டிசைன் ஆய்வின் முதன்மை பத்து கண்டறிதல்களும் சரி செய்யப்பட்டன — தடையில்லாத (blocker) ஒன்றும் ஏழு major-களும் உட்பட.

சரி செய்யப்பட்டது

  • Apply இருள் முறை: தகவல் அட்டையின் இணைப்பு மீண்டும் தெரிகிறது. அட்டை இருள் முறையிலும் வெளிர் மேற்பரப்பையே வைத்திருந்தது; «Need Playwright? See …» இணைப்பு ≈1.0:1-இல் இருந்தது. தீம்-விழிப்புணர்வு .callout--info (surface/border/text/link டோக்கன்கள்) இருளில் இணைப்பை ≈7.3:1 ஆக உயர்த்துகிறது.
  • RTL இனி எண் இயைபுகளைப் புரட்டுவதில்லை. மதிப்பெண் மாத்திரைகள் («1.5 / 5»), அறிக்கை வரிசைகள் («≥ 4.5», «< 3.5»), டாஷ்போர்டின் «/ 5.0» ஆகியவை திசை ஒதுக்கீடு (LTR span) பெறுகின்றன; ar அகராதி வாக்கியத்தில் இயல்பான இடங்களில் எண் வரம்புகளைச் சொற்களாக மாற்றியுள்ளது.
  • CV மார்க்டவுன் LTR-இலேயே. அரபியில் textarea மற்றும் முன்தோற்றம் dir="ltr"-உடன் வரையப்படுகின்றன; சுற்றியுள்ள சட்டகம் RTL-இலேயே.
  • அறிக்கைகளின் DATE நெடுவரிசை ISO தேதியை இனி உடைக்காது (nowrap + அட்டவணை இலக்கங்கள்).
  • பக்கப்பட்டி USAGE HUD-க்கு மேலே முடிகிறது (ஸ்க்ரோல்போர்ட் ஒதுக்கீடு + மங்கல்) — கடைசி வழிசெலுத்தல் உருப்படி பலகத்தின் கீழே செல்வதில்லை; RTL-க்கும் கண்ணாடி முறை.
  • கைபேசி scan @390: «Save search» முழுமையாகத் தெரிகிறது — கட்டுப்பாட்டு வரிசை மடிந்து சுருங்குகிறது, விளிம்பில் வெட்டாது.
  • வரைபடக் கட்டுப்பாடுகள் இருள் தீமையைப் பின்பற்றுகின்றன (zoom, அடுக்குகள், பண்புக்குறிப்பு). டைல்கள் வேண்டுமென்றே மாறவில்லை: அவற்றின் மூலம் சர்வர்-பக்க CSP img-src-ஆல் பூட்டப்பட்டுள்ளது.
  • அரட்டை FAB இனி ஊடாடும் உள்ளடக்கத்தை மறைப்பதில்லை — பக்க ஸ்க்ரோல்-பேடிங் இடம் விடுகிறது (Portals-இன் Disable பொத்தான்கள், Reports-இன் மதிப்பெண் மாத்திரை, two-pager உள்ளீடு, Leaflet பண்புக்குறிப்பு).
  • செயல்பாட்டு பதிவு UI மொழியில் பேசுகிறது: 22 செயல் slugs ×18 மொழிகளில் மொழிபெயர்ப்பு (தெரியாதவற்றுக்கு மூல id fallback), வடிகட்டி சிப்கள் மொழிபெயர்ப்பு; TARGET நெடுவரிசை இருக்கிறது — auto-pipeline அதை நிரப்புகிறது.
  • Assessments படிவங்களுக்கு உண்மையான லேபிள்கள் (வாக்கிய வரிசை பெரிய எழுத்து, htmlFor/id இணைப்பு) — placeholder மட்டும் நிலையிலிருந்து முன்னேற்றம்.

குறிப்புகள்

  • இந்த வெளியீட்டில் இல்லை: வரைபடத்தின் இருள் டைல்கள் (CSP img-src விரிவாக்கம் தேவை — சர்வர்-பக்க மாற்றம், கிளையண்ட்-பக்கம் வேண்டுமென்றே செய்யவில்லை); மஞ்சள் callout-களின் இருள் வடிவங்கள் (config, batch) — டோக்கன் இயக்கம் தொடர்வேலைக்குத் தயார்.

[1.245.0] — 2026-10-09

தமிழ் (Tamil) 18வது UI மொழியாக இணைகிறது — 17-மொழி அலைக்குப் பிறகு முதல் புதிய மொழி, முழு விசை இணக்கத்துடன்.

சேர்க்கப்பட்டது

  • தமிழ் (ta): 1449/1449 விசைகள் — en-உடன் முழு இணக்கம், எந்த பிளேஸ்ஹோல்டரும் இழக்கப்படவில்லை, hi-பாணி இந்திக்-டெக் மரபுகள் (வழங்குநர்கள், மாடல் பெயர்கள், பாதைகள், கட்டளைகள் இலத்தீன் எழுத்திலேயே). detect() ta, ta-IN, ta-LK ஏற்கிறது; தமிழ் LTR (சோதனையால் பூட்டப்பட்டது).
  • முழு docs/help/ta.md (33 H2 / 125 H3, மூல எண்ணிக்கைகள் நேரடி பதிவேட்டுடன் சரிபார்க்கப்பட்டன, Hermes கேனரி நங்கூரங்கள், சொல்லுக்குச் சொல் YAML), மேலும் README.ta.md, CHANGELOG.ta.md கண்ணாடிகள்.
  • கணக்கீட்டு வாயில்கள் 17 → 18: LANGS, detect புரோப்கள், i18n தணிக்கை, மாற்றப் பதிவு இணக்கம், RTL காவலர், CI langs — அத்துடன் CI பட்டியலில் இதுவரை இல்லாத hi-யும்.

குறிப்புகள்

  • cvstart.org தரையிறக்க பக்கம் தற்போது 17 மொழிகளிலேயே உள்ளது — அதன் மொழிபெயர்ப்பு தனி பணி; தள உள்ளடக்க ஒத்திசைவு ஏற்கனவே docs/help/ta.md மற்றும் ta மாற்றப் பதிவை வழங்குகிறது.
  • report-header.js-இன் REPORT_LABELS 17-இலேயே — தமிழ் அறிக்கை பிரிப்பான் பெற்றோர் ரெப்போவில் தமிழ் அறிக்கை உருவாக்கத்துடன் வரும்.

[1.244.2] — 2026-10-08

Scan page polish: the launcher, status bar, reposts panel and filters are redesigned as one consistent chrome — and the results table can no longer be stretched by board-side data.

Fixed

  • Salary cells keep only the money range. Some boards put the whole benefits blurb in the salary field (“$243K – $286K • Offers Equity • This role is also eligible for medical benefits, 401(k) plan…”) — the visible cell now shows the money chunk and moves the blurb to the tooltip (was: a 6-line cell stretching every row).
  • Rows with an empty title render the company (then a locale-neutral dash) instead of a giant blank cell.
  • The seniority badge never wraps in its fixed-width column.
  • Unscored rows show a muted «◎ —» with a tooltip explaining the two-pager compare found no matching keywords (was: nothing, which read as broken next to scored rows).
  • The aux-height layout contract now measures the content element inside the aux cell — a td stretches to its row’s height, which masked real wraps.

Added

  • Scan chrome redesign: launcher card (aligned control row, dominant primary button), terminal status bar (status dot idle/running/done/error, reduced-motion safe), reposts disclosure (styled header, count badge, capped panel with sticky header — a 1,560-cluster dataset rendered a 155,000-px panel before), and the filters block as a uniform responsive grid with an aligned footer.

Notes

  • Tests 5045 → 5068 unit; browser layout contracts extended (aux one-line bound).
  • Not in this release: URL-hash filter state and keyboard row navigation (follow-ups); live-LLM regression × 7 locales blocked earlier by upstream credits (unblocked — CAR-44).

[1.244.1] — 2026-10-08

Fixed

  • Scan icons announce real values. The boost/fit/score icons’ accessible names leaked the raw dict templates (“Fit: {band}”, “Boosted by {by}”) — {band}/{by}/{score} are now substituted (band word, booster keyword, numeric score). [HIGH a11y, caught live in the v1.244.0 regression round]
  • Title pipes split correctly. A 4-segment title like «C++ | Rust | Go Developer | Onsite» no longer lifts “Go Developer” out as a “country” — the split demands the segment resolves to a real country (conservative Countries.detectCountry).
  • Meta dates render for every row. daysSince accepted date-only ISO, but the API serves full timestamps for ~83% of dated rows — those rows showed no date segment.

Notes

  • Everything else in #/scan is identical to v1.244.0 — only the three regression fixes above changed.
  • Deliberately not done: URL-hash filter state, keyboard row navigation and 5 lakhs INR parsing (all pre-existing follow-ups).

[1.244.0] — 2026-10-08

The scan results read like a list, not a wall: one posting = two lines, the signals are icons, and a 700-row scan is a paginated table instead of a 37,000-px page.

Fixed

  • Row anatomy. Every posting renders as a bounded two-line row: line 1 the title, line 2 company · location · source · date · work-type. The boost badge, the title-fit band and the fit score became icons with localized accessible names and tooltips (screen readers read «Соответствие: сильное» / “Fit: strong”, not a wall of words); trust and relocation badges folded into the same rail. Seniority and salary stay as desktop-only auxiliary columns.
  • Title hygiene. A trailing | Germany | Remote segment is split out of the title into the meta line — Unicode-aware, only when the tail is a real work-type marker and the middle segment is place-shaped (legit pipes like “C++ | Rust | Go Developer” never split).
  • No more horizontal sprawl. Fixed table layout, min-width: 0, ellipsized one-line title/meta with the full text in the tooltip: zero page overflow and zero internal table scroll at 1440 px and 390 px (the old page overflowed by 675 px at phone width).
  • Pagination. Results render 50 per page (25/50/100/200 selectable) — a 700-row scan is now ~4,600 px tall instead of ~37,000 px, and the DOM holds ~1,000 nodes instead of 5,500+.

Added

  • Layout contract tests: the two-line row, the icon accessible names (en + ru), the pagination node budget and the title-fit count/order guard run in the browser suite — the redesign cannot silently regress.

Notes

  • Tests 5036 → 5045 unit (browser suite gained the layout contracts), coverage mean 98.14 % line / 89.34 % branch (floor 96/86).
  • What the scanner finds, the scoring formulas and last-scan.json are untouched — title-fit stays an annotation.
  • Not in this release: URL-hash filter state and keyboard row navigation (follow-up); 5 lakhs INR parsing (pre-existing).

[1.243.2] — 2026-10-08

Fixed

  • Deployable release cut as v1.243.2. The v1.243.1 tag was re-pointed after publishing, and the server’s git fetch --tags correctly refuses to clobber an existing tag — so v1.243.1 was never deployable. This tag carries the identical tree (the tracker outcome-modal window-listener fix on top of v1.243.0) plus this version bump. Nothing else changed; the published npm 1.243.1 tarball already contained the fix.

Notes

  • App code is identical to v1.243.1 — only the deployable tag is fresh (the server’s git fetch --tags refused the re-pointed v1.243.1).
  • Deliberately not done: force-updating the server-side tag (published tags are never moved).

[1.243.1] — 2026-10-08

Fixed

  • The «Record outcome» modal actually closes on navigation now. The v1.243.0 guard listened for hashchange on document, where that event never fires — the fix shipped dead and the modal still blocked the next view (caught live on production by the v1.243.1 regression round). The guard listens at window; the test now dispatches there too and was verified red against the broken code.

[1.243.0] — 2026-10-08

The browser layer keeps your work safe and speaks your language: no unsaved-edit losses, no silent failures, no silent English in a translated UI, AA contrast everywhere.

Fixed

  • Unsaved edits survive re-renders. The CV editor keeps a dirty buffer and restores it on every render — Cancel, a language switch, or navigating to CV Studio now prompts instead of discarding; the career plan keeps its generated text the same way. Load failures in Config/CV Studio/career-plan/memory/two-pager surface an error and disable Save instead of quietly overwriting the file with blanks.
  • The “Record outcome” modal no longer survives navigation. Opening it on #/tracker and clicking another view left it blocking the whole page (found in the v1.242.1 two-stand regression) — it now closes on route change; its scan-view siblings stop their SSE streams and detach listeners on navigation too.
  • Salary and keyword parsing reads every script. Keyword chips use Unicode word boundaries (Cyrillic, c++, .net filter correctly instead of to zero rows); one shared salary parser fixes $182.9K - $240K, от 100 000 руб, 100 тыс. руб., 50 000 Kč (was 50M USD) and range semantics ($100-150K); must-have “Germany or Netherlands” no longer counts as both matched and violated.
  • Streams settle exactly once. A dropped SSE connection delivered the error twice and could leave Generate disabled forever; every terminal state (done/error/close/throw, including a killed child) settles one path and re-enables the button. The auto-pipeline flushes its final buffered frame instead of dropping it.
  • Privacy and correctness in the little paths. The bug-report body no longer carries the evaluated job URL or report slugs; CV privacy masks bare linkedin.com/in/… links, ALL-CAPS names, and stops mangling EU dates; country resolution takes the longest match and refuses to guess when two countries are named (“Cambridge, MA” no longer → UK); filename downloads keep Cyrillic names.
  • Router and a11y. The skip link no longer 404s into ontent; the active nav item carries aria-current="page"; one <main>/one <nav>; Escape closes the mobile drawer (which is now truly out of the tab order when closed); scroll-padding-top keeps focus visible past sticky bars; the sticky banner no longer covers the topbar.
  • Contrast is AA in both themes — dark toasts were white-on-white (1.10:1): toasts, buttons, banners and links on --rausch now resolve through theme-invariant tokens, guarded by computed WCAG contract tests (≥ 4.5:1).
  • Everything else from the round: evaluate renders the truncation warning; memory/config/two-pager refuse to Save over a failed load; scan stops orphaning its SSE; scan results classify API-backed boards from the server registry instead of a drifted regex; the tracker’s “Proceed with Caution” is a warning, not a badge-red; stats fold localized statuses; bar charts read correctly in RTL; the docs FAB no longer covers content on phones; GET /app.js answers 404 instead of the index shell; GET /api/runners lists its actions.

Added

  • Danish joins auto-detection — a da-DK browser now gets the Danish UI (the dict was complete, detection was missing it); zh-Hant* maps to Traditional Chinese. cv-diagnostics — the résumé checklist — is fully localized (28 diag.* keys × 17). 26 field-spec labels added; 31 dead keys removed; provider lists no longer claim Hermes is “last in the auto order”; the docs-fab/menu aria-labels are localized.

Notes

  • Tests 4812 → 5036 unit, browser 118 + new navigation/contrast contracts, coverage mean 98.15 % line / 89.34 % branch (floor 96/86).
  • Not in this release: the #/scan redesign (Phase 4 — v1.244.0, spec drafted); a dedicated export.docxFailed dict key (the failure reuses common.error); 5 lakhs INR still parses as 5 (pre-existing).

[1.242.1] — 2026-10-08

Fixed

  • The release archive ships no node_modules symlinks again. The v1.242.0 git tag carried a root node_modules symlink and site/node_modules (a blanket git add -A slipped them past the trailing-slash ignore patterns), which failed the server deploy’s tar extraction — the deploy rolled back safely and production stayed on 1.241.1. Both symlinks are untracked and the ignore patterns widened; the npm tarball was never affected (npm excludes node_modules when packing).

Notes

  • App code is identical to v1.242.0 — packaging only. The sources-correctness content ships to production with this deploy (v1.242.0 never reached production; its server deploy rolled back on the tar failure).
  • Deliberately not done: re-tagging v1.242.0 (npm already published 1.242.0; the registry tarball is clean — npm excludes node_modules when packing).

[1.242.0] — 2026-10-07

The scanner’s data layer is trustworthy again: dead sources are alive, a malformed answer can no longer masquerade as an empty board, and a hostile board URL can no longer redirect a scan.

Fixed

  • Dead sources live again. justjoin (the API envelope changed to {data, meta.next.cursor}) reads its full catalog through a cursor walk with the new salary fields; nofluffjobs answers 400 without salaryCurrency — the parent’s required query is sent and results paginate (pageTo). himalayas and jobicy saw only the newest ~20 postings of 100k+ — both now walk their full catalogs (offset / cursor pagination with page caps).
  • A 200 with the wrong shape throws on page 1. ~40 sources read malformed or challenge answers as “0 postings” and the scan “succeeded” silently. New server/lib/sources/_shape.mjs guards (requireArray / requireContainer / requireObject) make the failure loud across every family; a later-page failure keeps the pages already collected; pagination stops on the raw page length, not the filtered count.
  • SSRF: substring vendor checks replaced with parsed exact-host pins. lever (clever.com contains lever.co), greenhouse (5 hosts + the legacy boards[.eu].greenhouse.io path-slug hosts), ashby, smartrecruiters, workable, gem REST, ibm, arbeitsagentur, hecklerkoch (www only), workingnomads (http://169.254.169.254 was reachable past the DNS guard), remoteok, remotive, rss, successfactors. redirect:'error' everywhere; job URLs must be https: on the pinned host (javascript: / data: / off-host dropped).
  • One misconfigured portals entry can no longer abort a whole scan. resolveAdapter catches adapter throws, detectApi is wrapped per company, throwing adapters return null; comeet fetch errors redact ?token= before they reach logs or quarantine records.
  • Pagination and freshness. workday walks tenants past 100 postings (offset pages, MAX_PAGES); telegram keeps the NEWEST posts and paginates ?before= instead of quietly keeping the oldest; tencent walks on when Count is missing; taleo parses French heading tables; avature stops on raw page length; UTC date stamps (amazon off-by-one east of UTC, torre, workingnomads, trudvsem); HTML entities decoded (geekjob, getmatch, hh); mycareersfuture emits the full 12-field job shape.
  • Remote detection tightened. arbeitsagentur, vdab, rippling, teamtailor: contract-percentage (“Verpleegkundige (100%)”, bundesweit) and the word “distributed” (“Distributed Systems Engineer”) no longer tag on-site roles Remote.

Added

  • tests/adapters-pin-coverage.test.mjs completes the host-pin branch coverage the pins introduced.

Notes

  • Tests 4419 → 4812 unit, browser 118. Coverage mean 98.15 % line / 89.36 % branch (gate floor 96 / 86).
  • Not in this release: the client findings from the same review round (Phase 3 — views, libs, CSS/a11y, i18n); sources/habr.mjs still lacks a dedicated test file (ratchet exemption).

[1.241.1] — 2026-10-07

Live evaluations work end to end in every locale, the job map places long multi-location postings, and a deploy no longer kills a running scan.

Fixed

  • Evaluations see the whole method. The context budget (144 KB) still cut the end of modes/oferta.md once the CV and profile were inlined, so every live evaluation missed its last blocks. The budget is now 192 KB and the prompt soft cap 256 KB, defined once in llm-dispatch.mjs.
  • Reports in the chosen language. The language instruction now opens the prompt as well as closing it, and ordinary words (role, team, design…) are written in the report’s language; only names, technologies and word-for-word quotes stay English. Fixes Hindi and Japanese reports that were mostly English.
  • Slow evaluations no longer end in HTTP 502. The evaluation timeout is 300 s (was the provider default, 180 s).
  • Hindi block letters. A report that spells the A–G letters in Devanagari (## ए), ## बी) … ## जी)) is recognised, and SCORE: accepts local digits (३.८, ٣٫٨, 3.8) and a decimal comma.
  • Job map: long locations. A cell like “Berlin Office · Berlin · Germany · Bosnia · …” (300+ characters) was refused with HTTP 400 and the posting had no marker. The first real place is used now (·, ;, |, /, line breaks; “Remote …” segments, “(HQ)” and “Office” are skipped); only a query over 2000 characters is refused.
  • Deploy vs. the hourly scan. The deploy holds the scan and auto-evaluation timers, waits for a running one to finish (up to 15 min), restarts, and always resumes the timers — rollback included.

Added

  • Job map on cvstart.org in all 17 languages, and in the English and Russian READMEs.
  • Job map screenshots in every language — one per locale (scripts/capture-map-screenshots.mjs), in all 17 READMEs, on cvstart.org and in a new help subsection, “How to use the map” (§33, ×17).

Notes

  • Tests 4404 → 4419, browser 118. Remote QA (all routes, site, links and live LLM × 17 locales) green on production.
  • Not in this release: streaming evaluations — the 300 s timeout stays a hard limit (a slow local model can still hit it), and the Hermes bridge keeps its non-streaming call.

career-ops-ui v1.267.1 · page 3/11 · mirror of the project changelog for cvstart.org