चेंजलॉग

GitHub

हर उल्लेखनीय बदलाव, रिलीज़ दर रिलीज़। यही फ़ाइल रिपॉज़िटरी में मौजूद है और सभी 17 भाषाओं में अनूदित है।

परिवर्तन-सूची (हिन्दी)

यह परिवर्तन-सूची v1.122.0 से शुरू होती है — वह संस्करण जिसमें हिन्दी स्थानीयकरण जोड़ा गया। पिछले संस्करणों के लिए 🇬🇧 CHANGELOG.md देखें।

[1.134.1] — 2026-08-05

वैलिडेशन-हार्डनिंग — एक पूर्ण-प्रोजेक्ट ऑडिट से सामने आए सुधार।

सुधारा गया

  • successfactors अब मिड-स्कैन विफलता पर स्क्रैप किए गए जॉब्स को नहीं छोड़ता (v1.134.0 के dead-board-throw पोर्ट में एक रिग्रेशन) — इसके पेजिनेशन लूप में कोई try/catch नहीं था, इसलिए पेज 2+ पर विफलता (पेज 1 सफल होने के बाद) थ्रो कर देती थी और पहले से इकट्ठा किया गया सब कुछ छोड़ देती थी; और यदि वह विफलता एक 404 (एक रेंज-से-बाहर startrow) थी, तो en-scanner एक लाइव टेनेंट को दिनों तक मृत मानकर क्वारंटीन कर देता था। अब यह phenom/radancy जैसा व्यवहार करता है: पेज-0 विफलता अब भी थ्रो करती है (मृत बोर्ड), लेकिन बाद के पेज की विफलता आंशिक परिणाम बनाए रखती है।
  • #/scan फ़िल्टर चिप्स अब कीबोर्ड-ऑपरेबल हैं (WCAG 2.1.1) — फ़ेसेट चिप्स (और “clear” चिप) क्लिक हैंडलर वाले स्पैन थे, लेकिन उनमें कोई tabindex/role नहीं था, इसलिए कीबोर्ड और स्क्रीन-रीडर उपयोगकर्ता उन तक न तो पहुँच सकते थे, न ही उन्हें टॉगल कर सकते थे। अब वे role="button", tabindex="0", aria-pressed, और Enter/Space एक्टिवेशन के साथ आते हैं।
  • तीन हार्डकोडेड अंग्रेज़ी स्ट्रिंग्स अब स्थानीयकृत हैं#/scan ट्रस्ट-बैज टूलटिप, #/scan रीलोकेशन कॉलम हेडर, और #/dashboard स्कोर हेडर बेयर लिटरल थे जिन्हें i18n पैरिटी गेट नहीं देख सकता था (वे कभी कुंजियाँ नहीं थीं), इसलिए वे हर ग़ैर-अंग्रेज़ी लोकेल में अंग्रेज़ी में ही रह गए। अब scan.trustTip + scan.col.reloc (2 नई कुंजियाँ) + track.col.score का पुनःप्रयोग, एक सोर्स-स्टैटिक गार्ड के साथ।

[1.134.0] — 2026-08-05

पैरेंट career-ops v1.25.0 पैरिटी।

जोड़ा गया

  • नया स्कैन स्रोत: getManfred (manfred) — प्रकाशित सैलरी के साथ स्पेनिश/EU टेक भूमिकाओं का एक बोर्ड-वाइड फ़ीड, www.getmanfred.com/api/v2/public/offers से (ज़ीरो-ऑथ, होस्ट-पिन्ड + HTTPS-ओनली, सिंगल-रिक्वेस्ट पूरा कैटलॉग)। स्रोत + अडैप्टर + एक CI-आइसोलेटेड सुइट (tests/sources-manfred.test.mjs); रजिस्ट्री अब 73 स्रोत = 68 EN + 5 RU (ALL_ADAPTERS 68)। #/scan सोर्स फ़िल्टर में और cvstart.org लैंडिंग पर दिखता है।

सुधारा गया

  • a16z Speedrun फ़ीड चुपचाप 50 जॉब्स तक सीमित हो रही थी (#2404) — फ़ीड एक पेज को 50 पर सीमित करती है, लेकिन स्रोत PER_PAGE = 100 का अनुरोध करता था, इसलिए पेजिनेशन पेज 1 के बाद रुक जाता था। इसे 50 पर सही किया गया।
  • मृत बोर्ड्स अब “लाइव लेकिन खाली” के रूप में पढ़े जाने के बजाय एरर थ्रो करते हैं (#2379) — cryptocurrencyjobs, phenom, radancy, successfactors: एक फ़ेच विफलता जहाँ कोई भी अनुरोध कभी रिज़ॉल्व नहीं होता, अब थ्रो करती है (ताकि #/portals हेल्थ और स्कैन एक वास्तविक विफलता दर्ज करें), उसे ख़ाली सूची में समेटने के बजाय; कम-से-कम एक सफलता के बाद स्कैन के बीच में हुई विफलता आंशिक परिणाम बनाए रखती है।
  • workable अब सार्वजनिक विजेट API का उपयोग करता है (#5ab8425) — apply.workable.com/api/v1/widget/accounts/<slug> पर स्विच किया गया, जो एक बड़े अकाउंट की पूरी पोस्टिंग सूची एक ही अनुरोध में लौटाता है, इसलिए बड़े अकाउंट अब सीमित नहीं होते।

टिप्पणियाँ

  • पोर्ट नहीं किया गया (केवल CLI-विशिष्ट या web-ui द्वारा मिरर नहीं किया गया): detect-reposts #2389 टाइटल-बकेटिंग परफ़ॉर्मेंस रीराइट; Unicode कंपनी-कुंजी फ़िक्स (web-ui का अपना ट्रैकर डीडुप पहले से ही non-Latin-सुरक्षित है); scan --since; cv-facts; CV टेम्पलेट / PDF ऑडिट पास; doctor; modes untrusted-content निर्देश।

[1.133.1] — 2026-08-02

सुधारा गया

  • #/funded (फ़ंडेड कंपनियां) अब परिणाम दिखाता है — दो बग्स के कारण तालिका हमेशा “कोई फ़ंडेड कंपनी नहीं” दिखाती थी, तब भी जब पैरेंट की company-funded.mjs एक पूरी सूची लौटाती थी। (1) व्यू परिणामों को res.candidates के अंतर्गत पढ़ता था, लेकिन पैरेंट उन्हें companies के अंतर्गत भेजता है (हर एक { company, amount, round, funding: { sources: [{ source, url, observed_date }] } }); क्लाइंट अब सही कुंजी पढ़ता है और असली एविडेंस शेप को मैप करता है। (2) परिणाम तालिका अपनी सेल्स को UI.el('tr', {}, …) में varargs के रूप में भेजती थी, लेकिन UI.el(tag, attrs, children) children को एक ही नोड या एक ऐरे के रूप में लेता है, इसलिए केवल पहला कॉलम (Company) रेंडर होता था — अब सेल्स को एक ऐरे के रूप में भेजा जाता है। एक वास्तविक ब्राउज़र में सत्यापित: चारों फ़ीड्स में 11 कंपनियां Company / Funding signal / Source / Date कॉलम्स के साथ और काम करने वाले एविडेंस लिंक्स के साथ रेंडर होती हैं, ज़ीरो कंसोल एरर्स। एक ख़ाली पास अब प्रति-स्रोत डायग्नोस्टिक्स भी दिखाता है, ताकि एक शांत न्यूज़ डे को ब्लॉक्ड फ़ीड से अलग पहचाना जा सके।
  • tests/parity-routes-v1133.test.mjs में रिग्रेशन गार्ड्स: फ़ेक पैरेंट स्क्रिप्ट अब असली companies आउटपुट शेप भेजती है (मूल फ़िक्स्चर ग़लत candidates शेप को दर्शाता था — यही वजह है कि यह बग ग्रीन शिप हो गया था), साथ ही सोर्स-स्टैटिक कैनरीज़ जो पुष्टि करती हैं कि funded.js res.companies पढ़ता है (कभी res.candidates नहीं) और तालिका पंक्तियों को ऐरे चिल्ड्रन के साथ बनाता है (+1 → 2144)।

[1.133.0] — 2026-08-01

जोड़ा गया

  • फ़ंडेड-कंपनी खोज (#/funded, पैरेंट पैरिटी #2117) — एक नया रीड-ओनली व्यू जो पैरेंट career-ops की company-funded.mjs को GET /api/company-funded के ज़रिए रिले करता है: सार्वजनिक, होस्ट-पिन्ड फ़ंडिंग फ़ीड्स (TechCrunch, PR Newswire, The Guardian, Hacker News) से खोजी गई हाल ही में फ़ंडेड कंपनियों की एक समीक्षा-पहले सूची। यह रिले स्क्रिप्ट को --json --dry-run के साथ चलाता है (stdout पर JSON, कोई फ़ाइल राइट नहीं), उपयोगकर्ता इनपुट को कभी --sources में थ्रेड नहीं करता, रेट लिमिटिंग रखता है, और उपयोगकर्ता-ट्रिगर्ड है (एक Discover बटन, माउंट पर कभी नहीं)। नया रूट मॉड्यूल server/lib/routes/funded.mjs + public/js/views/funded.js, Sourcing के अंतर्गत।
  • साप्ताहिक इंटरव्यू डाइजेस्ट (#/interview-digest, पैरेंट पैरिटी #2129/#2130) — एक नया रीड-ओनली व्यू जो पैरेंट के ज़ीरो-LLM weekly-digest.mjs को GET /api/interview/weekly-digest के ज़रिए रिले करता है: इंटरव्यू सेशन नोट्स का एक यांत्रिक रोल-अप — इस हफ़्ते आपने किन कंपनियों और राउंड्स के साथ इंटरव्यू दिया, बार-बार आने वाली दक्षताएँ, और सर्वश्रेष्ठ-प्रयास खुले गैप्स। वैकल्पिक ?from=&to= रेंज तभी थ्रेड की जाती है जब दोनों वैध YYYY-MM-DD हों; एक खाली रेंज एक वैध available:true डाइजेस्ट है। server/lib/routes/interview.mjs + public/js/views/interview-digest.js में जोड़ा गया, Analytics के अंतर्गत।
  • दोनों रिले पैरेंट स्क्रिप्ट के अनुपलब्ध होने पर (CI, स्टैंडअलोन इंस्टॉल) स्थापित fail-soft available:false अनुबंध का पालन करते हैं। 26 नई i18n कुंजियाँ ×17 लोकेल्स; CI-आइसोलेटेड सुइट tests/parity-routes-v1133.test.mjs (+5 → 2143)।

टिप्पणियाँ

  • पैरेंट career-ops v1.24.0 से आगे बढ़ गया है, Next.js web/ ऐप के Follow-up Tracker पेज (#1422) और बैकएंड PDF रेंडर (#2182) के साथ — पोर्ट नहीं किया गया: web-ui के पास पहले से अपना फ़ॉलो-अप रिले और PDF रनर हैं, और अंतर्निहित followup-cadence.mjs हार्डनिंग शेल-आउट रिले के ज़रिए मुफ़्त में मिल जाती है। set-status.mjs / tracker-utils.mjs परिवर्तन CLI-आंतरिक हैं और मिरर नहीं किए गए हैं।

[1.132.0] — 2026-07-31

बदला गया

  • #/scan परिणाम-रेंडरिंग उपप्रणाली को public/js/lib/scan-results.js में निकाला गया (फ़ाइल-आकार-अनुबंध ऋण — public/js/views/scan.js बढ़कर लगभग 1254 LOC हो गई थी)। उपप्रणाली (renderResults, buildChipRow, getRows, पंक्ति/facet बिल्डर्स, विकल्प पेंटर्स, और FALLBACK_SOURCES रजिस्ट्री मिरर) एक window.ScanResults.create(ctx) फ़ैक्ट्री में स्थानांतरित हो गई, जो व्यू द्वारा दिए गए संदर्भ ऑब्जेक्ट पर क्लोज़ करती है। कोई व्यवहार परिवर्तन नहीं — फ़ंक्शन ज्यों-के-त्यों स्थानांतरित किए गए, क्लोज़र वेरिएबल्स को ctx.* में यांत्रिक रूप से पुनः-वायर किया गया; scan.js अब लगभग 906 LOC है (800-LOC लक्ष्य की ओर दूसरा निष्कर्षण पास योजनाबद्ध है)।
  • स्रोत-स्टैटिक परीक्षण अब दोनों फ़ाइलों को tests/helpers/scan-src.mjs::loadScanSrc() के माध्यम से पढ़ते हैं; tests/scan-fallback-sources.test.mjs अब रजिस्ट्री मिरर को scan-results.js से पढ़ता है।
  • नया इन-ब्राउज़र रिग्रेशन गेटtests/playwright-scan-filters.mjs एक तैयार data/last-scan.json सीड करता है और हर #/scan फ़िल्टर को चलाता है, सटीक पंक्ति-गिनती की पुष्टि करते हुए (npm run test:e2e:browser); स्थिर फ़िल्टर आईडी (#scan-filter-*, #scan-apply) जोड़ी गईं।
  • README का “नवीनतम रिलीज़” बैनर एक-पंक्ति सारांश + पूर्ण परिवर्तन-सूची के लिंक तक सीमित कर दिया गया है (लंबी बहु-संस्करण कथा-दीवार को हटा दिया गया है)। सभी 17 लोकेल्स पर लागू।

[1.131.2] — 2026-07-31

बदला गया

  • app.css को तीन क्रमबद्ध स्टाइलशीट्स में विभाजित किया गया (फ़ाइल-आकार-अनुबंध ऋण — एकल फ़ाइल बढ़कर लगभग 1990 LOC हो गई थी, जो 800-LOC कठोर सीमा से काफ़ी आगे थी)। अब यह app.css (~672 — a11y, डिज़ाइन टोकन/थीम, sidebar, main, buttons, content-shell), components.css (~595 — cards, grids, paginator, badges, tables, forms, log/console, markdown, भाषा स्विचर, chip filter, connection banner), और overlays.css (~737 — toast, notifications drawer, modal, misc/responsive, [dir="rtl"] मिरर, docs-fab, usage-hud) है, प्रत्येक कठोर सीमा के भीतर।
    • यह विभाजन सतत और क्रमबद्ध है, इसलिए कैस्केड विभाजन-पूर्व फ़ाइल के समान बाइट-फ़ॉर-बाइट समान है; index.html तीनों को क्रमबद्ध <link> के रूप में लोड करता है। कोई व्यवहार, मार्कअप, या i18n परिवर्तन नहीं।
    • CSS-जाँचने वाले परीक्षण अब साझा tests/helpers/css.mjs::loadAppCss() हेल्पर के माध्यम से संयोजन पढ़ते हैं। नया tests/css-modularization.test.mjs विभाजन को लॉक करता है (फ़ाइलें मौजूद हैं · प्रत्येक ≤ 800 LOC · index.html लिंक क्रम) → सुइट 2138। ब्राउज़र में सत्यापित: तीनों स्टाइलशीट्स पार्स होती हैं और उनके नियम लागू होते हैं।

[1.131.1] — 2026-07-31

सुधारा गया

  • दो v1.130.0 स्रोतों पर अडैप्टर होस्ट-पिनिंग स्थिरता (कोड-समीक्षा फ़ॉलो-अप, डिफ़ेंस-इन-डेप्थ; वैध इनपुट के लिए कोई व्यवहार परिवर्तन नहीं):
    • a16z-speedrun-talent अडैप्टर अब buildEndpoint पर api: / a16z-speedrun-talent: ओवरराइड को पुनः-सत्यापित करता है (HTTPS + सटीक होस्ट speedrun-talent-network.com) और असफल होने पर कैननिकल फ़ीड पर वापस लौटता है — cryptocurrencyjobs अडैप्टर के समान, ताकि कोई ऑफ़-होस्ट मान कभी फ़ेच स्लॉट तक न पहुँचे (पहले यह केवल फ़ेच-टाइम assertSpeedrunUrl गार्ड पर निर्भर था)। सटीक-होस्ट जाँच अब एक ही एक्सपोर्टेड SPEEDRUN_TALENT_HOST_RE है जिसे गार्ड और अडैप्टर दोनों साझा करते हैं।
    • cryptocurrencyjobs पार्सरcleanUrl अब assertCryptocurrencyJobsUrl और अडैप्टर ओवरराइड के समान सटीक-मिलान होस्ट गार्ड इस्तेमाल करता है (पहले endsWith था, जो सबडोमेन स्वीकार कर लेता था)। पार्सर कभी भी SSRF गार्ड से अधिक अनुमोदक नहीं होता: एक sub.cryptocurrencyjobs.co आइटम लिंक हटा दिया जाता है।
    • +2 परीक्षण → सुइट 2135

[1.131.0] — 2026-07-31

जोड़ा गया

  • #/tracker CRM स्टेज-टैब बोर्ड (पैरेंट वेब ऐप के /pipeline व्यू से पोर्ट किया गया)। ट्रैकर की फ़नल-चिप बार + स्टेटस ड्रॉपडाउन को एक स्टेज-टैब स्ट्रिप से बदला गया है: एक All टैब प्लस हर कैननिकल स्टेटस के लिए एक टैब — Evaluated · Applied · Responded · Interview · Offer · Rejected · Discarded · SKIP · Hired — हर एक लाइव संपूर्ण-इतिहास गिनती दिखाता है, शून्य-गिनती वाले स्टेज सहित ताकि पूरा फ़नल हमेशा दृश्यमान रहे (CRM लुक)। सक्रिय टैब फ़िल्टर चलाता है; उसे फिर से क्लिक करने पर All पर वापस साफ़ हो जाता है। पंक्तियाँ अपना स्कोर-टोन, वैधता, PDF और रिपोर्ट सुविधाएँ बनाए रखती हैं, और कंपनी सेल अब लोगो सक्षम होने पर एक ब्रांड लोगो दिखाती है (डिफ़ॉल्ट रूप से बंद → कोई अतिरिक्त रिक्वेस्ट नहीं)।
    • नया रीड-ओनली रूट GET /api/tracker/stages कैननिकल फ़नल (क्रम में लेबल) + एक उपनाम-फ़ोल्ड मैप लौटाता है, जो server/lib/states.mjs (templates/states.yml, बिल्ट-इन fallback सहित) से लिया गया है — ताकि क्लाइंट कभी भी स्टेटस व्हाइटलिस्ट हार्डकोड न करे। लेगेसी बिना-पैरामीटर GET /api/tracker प्रतिक्रिया अपरिवर्तित है (केवल { rows })।
    • नई शुद्ध, यूनिट-टेस्टेड क्लाइंट लाइब्रेरी public/js/lib/tracker-stages.js पंक्तियों को सर्वर के स्टेजेज़ के अनुसार बकेट करती है, आवारा मार्कडाउन बोल्ड और स्थानीयकृत उपनामों (जैसे aplicadoApplied) को सहन करते हुए। टैब्स सुलभ हैं (role tablist/tab, aria-selected, ≥44 px हिट एरिया, हर टैब के accessible नाम में गिनती)। कोई नई i18n कुंजियाँ नहीं। सुइट 2133

[1.130.0] — 2026-07-31

जोड़ा गया

  • पैरेंट career-ops v1.24.0 से पोर्ट किए गए दो नए स्कैन स्रोत (इन-प्रोसेस, कोई नई निर्भरता नहीं; दोनों #/scan स्रोत फ़िल्टर और cvstart.org लैंडिंग पर दिखते हैं):
    • a16z Speedrun (a16z-speedrun-talent, #2231) — a16z Speedrun की टैलेंट-नेटवर्क बोर्ड-वाइड JSON फ़ीड। speedrun-talent-network.com पर होस्ट-पिन्ड, केवल-HTTPS, 0-इंडेक्स्ड पेजिनेशन पेज कैप के साथ, प्रति-कंपनी q/config थ्रेडिंग, fail-soft।
    • Cryptocurrency Jobs (cryptocurrencyjobs) — Web3 जॉब बोर्ड cryptocurrencyjobs.co, इसकी सार्वजनिक RSS 2.0 फ़ीड (शून्य-ऑथ) से लिया गया। दो-पास XML-एंटिटी डिकोड, केवल-रिमोट लिस्टिंग, "… at <Company>" शीर्षक पूँछ से नियोक्ता पार्स किया गया।
    • रजिस्ट्री कुल अब 72 स्रोत = 67 अंग्रेज़ी + 5 रूसी (ALL_ADAPTERS = 67 अंग्रेज़ी पोर्टल अडैप्टर)।

सुधारा गया

  • echojobs — हाइब्रिड भूमिकाएँ रिमोट से अलग पहचानी जा सकती हैं (पैरेंट #2258 को दर्शाता है)। एक केस-इनसेंसिटिव hybrid मार्कर अब "<City> · Hybrid" (या शहर न होने पर केवल Hybrid) और workplaceType: 'Hybrid' देता है, न कि Remote में समेटा जाना।
  • radancy — लेगेसी TalentBrew मार्कअप + JSON परिणाम-फ़्रैगमेंट ट्रांसपोर्ट (पैरेंट a3e6df9 को दर्शाता है), इंजेक्टेबल opts.fetchJson पर गेटेड।

टिप्पणियाँ

  • पोर्ट नहीं किया गया — केवल-CLI पैरेंट फ़ीचर्स। career-ops v1.24.0 की बड़ी CLI/मोड सतह web-ui से बाहर रहती है, जो एक व्यूअर + थिन राइट-थ्रू है, मोड होस्ट नहीं: अनुपालन/क्षेत्राधिकार तालिकाएँ, संपर्क फ़ोनबुक + vCard, इंटरव्यू ट्रांसक्रिप्ट-डीब्रीफ़ / कॉल-प्लेटफ़ॉर्म पहचान, लेजर सेट-स्टेटस, आउटकम रिकॉर्डिंग, टू-पास ट्राएज, jd-समानता, वर्ज़न्ड एप्लिकेशन-CV आर्टिफ़ैक्ट स्कीमा, डॉक्टर Playwright-MCP पहचान, और portals/fix-slugs.mjs। पैरेंट के scan.mjs में रहने वाले स्कैन-ऑर्केस्ट्रेशन बदलाव — Interamt.de Playwright स्कैनर, iCIMS रिवर्स-ATS फुल स्वीप, देश-पात्रता रिमोट फ़िल्टर, DNS-लुकअप पेसिंग, StepStone rltr डिडुप, और स्कैन-हिस्ट्री नॉर्मलाइज़्ड-कंपनी कॉलम — लागू नहीं होते: web-ui EN/RU स्कैनर इन-प्रोसेस चलाता है और scan.mjs में शेल नहीं करता।
  • पहले से कवर। role-matcher accent-folding फ़िक्स (#2209) v1.127.0 में पोर्ट किया गया था, इसलिए यहाँ यह no-op है।

[1.129.1] — 2026-07-29

सुधारा गया

  • v1.128/v1.129 web पोर्ट पर AI समीक्षा फ़ॉलो-अप (सभी सलाहकारी, स्रोत पर ठीक): job-facets.js में स्तर वरीयता (स्पष्ट संशोधक अब प्रबंधन शब्द को हराता है — Senior Engineering Managersenior, पहले lead); states.mjs का fallback अब पिन नहीं होता (सफल पठन मेमोइज़, fallback बिना कैश लौटता — बूट पर क्षणिक रूप से अनुपलब्ध पैरेंट अगली कॉल पर पुनः पढ़ा जाता) + मौजूद पर विकृत फ़ाइल पर console.warn; score-tone.js — बिना स्कोर वाली पंक्ति तटस्थ (muted), लाल नहीं; domainFromName() /api/logo से पहले गैर-ASCII slug छोड़ता है; +tests/states.test.mjs में आइसोलेशन गार्ड। +4 परीक्षण → 2073

[1.129.0] — 2026-07-29

जोड़ा गया

  • #/scan स्तर फ़ैसेट + आयु कॉलम — v1.128.0 में आई job-facets.js लाइब्रेरी अब स्कैन UI से जुड़ी है (पहले केवल लॉजिक)। नया स्तर ड्रॉपडाउन हर पोस्टिंग के शीर्षक को lead/staff/senior/mid/junior/intern में बाँटता है (JobFacets.seniorityFromTitle) और परिणामों में जो वास्तव में है उससे स्वतः भरता है (देश फ़ैसेट की तरह); बिना स्तर-शब्द वाले शीर्षक हमेशा पास होते हैं। सहेजे गए खोज, रीसेट और लागू में बना रहता है। तालिका में स्तर बैज कॉलम और शून्य-टोकन आयु कॉलम (आज / Nदि, JobFacets.daysSince से) जुड़ते हैं। 12 i18n कुंजियाँ ×17, +3 परीक्षण → 2069

[1.128.0] — 2026-07-29

जोड़ा गया

  • पैरेंट के अपने वेब ऐप (../web/, Next.js) से चार समाधान पोर्ट किए गए — वैनिला JS/ESM में पुनः-लागू, कोई नई निर्भरता नहीं: (1) server/lib/states.mjs ट्रैकर की स्टेटस शब्दावली हेतु templates/states.yml को लाइव पढ़ता है (CI फ़ॉलबैक) — हर रिलीज़ में मैनुअल व्हाइटलिस्ट री-सिंक हटाता है; POST उपनामों (स्पैनिश/लेगेसी) को कैननिकल लेबल में मोड़ता है, GET फ़नल कैननिकल स्टेटस के अनुसार बकेट करता है; (2) ATS-होस्टेड पंक्तियों में कंपनी लोगो — domainFromName() (~90 ब्रांड→डोमेन); (3) score-tone.js — 4-स्तरीय स्कोर टोन (≥4.2/3.8/3.0 + अक्षर फ़ॉलबैक); (4) job-facets.js — seniority/source/days फ़ैसेट। +21 परीक्षण।

टिप्पणियाँ

  • पोर्ट नहीं किया गया (केवल अवधारणा): पैरेंट की एजेंटिक एक्शन लेयर (actions/registry.ts + api/assistant/route.ts) — जब docs-fab को-पायलट बने उसके लिए ब्लूप्रिंट। कोई नया स्रोत नहीं (रजिस्ट्री 70), कोई i18n/help बदलाव नहीं।

[1.127.0] — 2026-07-29

जोड़ा गया

  • तीन नए स्कैन स्रोत (career-ops v1.23.0 पैरिटी) — रजिस्ट्री अब 70 अडैप्टर (65 EN + 5 RU) देती है: Flowxtra (बिना-ऑथ बोर्ड-वाइड एग्रीगेटर), VDAB (फ़्लेमिश लोक रोज़गार सेवा का कीवर्ड API), और iCIMS (careers-<tenant>.icims.com पोर्टल, jibeapply से अलग)। साथ ही Cursor CLI रोस्टर में लौटा (parent #2115): cli-detect अब cursor का पता लगाता है (10 टूल्स), रोस्टर help/README/config ×17 में बहाल।

सुधारा गया

  • agenticjobs HTML स्क्रैपिंग से REST API पर गया (#2167); जब location.name केवल कार्य-मॉडल हो तो Greenhouse शहर को /offices से पुनःप्राप्त करता है (#2104); role-matcher पैरिटी (#1933/#2164/#2009: MTS उपसर्ग, product बेसलाइन, एक्सेंट फोल्डिंग, सब-बेसलाइन असहमति)।

टिप्पणियाँ

  • पोर्ट नहीं किया गया। v1.23.0 का अधिकांश CLI/डैशबोर्ड सतह है जिसे web-ui उपयोग नहीं करता (batch-tailor, discover-ats, NL/PT मोड, PDF थीम, Go डैशबोर्ड, updater/doctor); रिले स्क्रिप्ट अपरिवर्तित। पैरेंट का VERSION → 1.23.0

[1.126.1] — 2026-07-25

सुधारा गया

  • v1.126.0 रीसिंक द्वारा छूटे CLI रोस्टर ड्रिफ्ट के दो स्थान — (1) #/config के API keys टैब का इंट्रो (config.providerModelNote, i18n ×17) केवल 7 CLI सूचीबद्ध करता था — अब Antigravity और Grok Build OpenCode के बाद जोड़े गए; (2) हेल्प गाइड (×17) की दूसरी तुलना-तालिका पंक्ति और CI-निर्मित साइट help अब भी Inside Claude Code / Codex / Cursor / Gemini CLI (पुराने Cursor वाला सेट) दिखाते थे — अब पूरा रोस्टर। दोनों स्लैश/मध्य-बिंदु विभाजक इस्तेमाल करते थे जिन्हें v1.126.0 स्वीप के पैटर्न कवर नहीं करते थे। i18n स्नैपशॉट पुनः-जनरेट; सुइट 1969 पर बनी रहती है।

[1.126.0] — 2026-07-25

जोड़ा गया

  • AI CLI टूल्स टैब अब career-ops की सभी 8 प्रथम-श्रेणी CLI का पता लगाता है#/config रोस्टर को पैरेंट के docs/SUPPORTED_CLIS.md से सिंक किया गया: server/lib/routes/cli-detect.mjs में Grok Build CLI (grok) और Kimi CLI (kimi) जुड़े, और Antigravity अब पहले अपना कैननिकल बाइनरी agy खोजता है। रीड-ओनली PATH स्कैन अब 9 टूल्स रिपोर्ट करता है; यह अब भी मिली बाइनरी को कभी नहीं चलाता।

बदला गया

  • career-ops.org/docs के साथ दस्तावेज़ पुनः-सिंक — हर दस्तावेज़ सतह को पैरेंट के लाइव पेजों (सभी 31 पढ़े) से मिलाया गया। कैननिकल AI सहायक रोस्टर (help ×17 + README ×17) अब 8 प्रथम-श्रेणी CLI — Claude Code, Codex, OpenCode, Antigravity CLI, Grok Build CLI, Qwen Code, Kimi, GitHub Copilot CLI — और Gemini CLI (लीगेसी रैपर) सूचीबद्ध करता है। हेल्प बंडल 29 H2 / 105 H3 संरचना बनाए रखते हैं।

[1.125.4] — 2026-07-23

बदला गया

  • site निर्भरताएँ (dependabot #151–#153) — site/ में sharp 0.34.5→0.35.3, svgo 4.0.1→4.0.2, fast-uri (dev) 3.1.3→3.1.4; Astro बिल्ड हरा, SPA/सर्वर पर कोई असर नहीं।

टिप्पणियाँ

  • पैरेंट पैरिटी स्वीप (career-ops 37d17ec..254764a, v1.22.0 के बाद) — पोर्ट करने को कुछ नहीं: set-status का गलत-पंक्ति गार्ड (#2108) केवल CLI है (web-ui में ट्रैकर पंक्तियाँ UI में स्पष्ट रूप से चुनी जाती हैं और कोई रूट set-status.mjs नहीं चलाता), स्थानीयकृत मोड का Risk Summary (#2109) उन modes/<lang>/ फ़ाइलों को छूता है जिन्हें web-ui कभी नहीं पढ़ता (केवल शीर्ष-स्तरीय modes/*.md), update-system की मैनिफ़ेस्ट जाँच (#2111) केवल अपडेटर की है, और बाक़ी पैरेंट के दस्तावेज़ हैं (तुर्की README, SIGNATURES ×4, SCRIPTS.md, es उच्चारण)। पैरेंट का VERSION 1.22.0 ही है — parentVersion अपरिवर्तित।

[1.125.3] — 2026-07-23

सुधारा गया

  • डेनिश और हिन्दी LLM प्रॉम्प्ट अंग्रेज़ी में जवाब देते थे (उपयोगकर्ता द्वारा रिपोर्ट किया गया) — server/lib/prompts.mjs में LOCALE_NAMES और पाँचों SCAFFOLD_STRINGS ब्लॉक da और hi के लिए कभी विस्तारित नहीं हुए, इसलिए resolveLocale() en पर लौट जाता था और हर AI प्रॉम्प्ट — डीप रिसर्च (लाइव और मैनुअल), मोड, मूल्यांकन, इंटरव्यू, नेटवर्किंग, CV Studio — इन दोनों भाषाओं में अपना # Output language निर्देश खो देता था। अब दोनों प्रथम श्रेणी की हैं: भाषा निर्देश + स्थानीयकृत ढाँचा। tests/locale-scaffold.test.mjs का रिग्रेशन गेट अब हार्डकोडेड 12 की जगह कैननिकल 17-लोकेल सूची पर चलता है, और नया संरचनात्मक गेट अंग्रेज़ी पर लौटने वाली किसी भी ढाँचा-कुंजी को विफल कर देता है — भविष्य में prompts.mjs छूटने वाली कोई लोकेल अब जारी नहीं हो सकती (+12 परीक्षण, सुइट अब 1969)।

[1.125.2] — 2026-07-22

सुधारा गया

  • Gemini से डीप रिसर्च: HTTP 502 (MALFORMED_FUNCTION_CALL) (#145, @Alien10140 का योगदान) — लाइव /api/deep प्रॉम्प्ट मॉडल से “Use WebFetch / WebSearch” करने और ब्रीफ़ को फ़ाइल में सहेजने को कहता था, लेकिन बिना टूल वाले API प्रदाताओं के पास टूल चैनल नहीं होता; Gemini टेक्स्ट की जगह फ़ंक्शन कॉल से जवाब देता था, जो खाली HTTP 502 के रूप में दिखता था। buildDeepPrompt और bundleProjectContext अब headless फ़्लैग लेते हैं: लाइव रन (Anthropic/Gemini/फ़ॉलबैक कैस्केड) को बिना टूल वाला प्रॉम्प्ट मिलता है जो इनलाइन संदर्भ से ब्रीफ़ लिखता है, जबकि Claude Code के लिए कॉपी-पेस्ट प्रॉम्प्ट में टूल निर्देश बरकरार रहते हैं। tests/critical-fixes.test.mjs में +1 टेस्ट।

बदला गया

  • बंद हो चुके gemini-2.0-flash से आगे Gemini डिफ़ॉल्ट मॉडल अपडेट (#144, @Alien10140 का योगदान) — कॉन्फ़िगरेशन ड्रॉपडाउन, gemini.mjs का सर्वर फ़ॉलबैक (जो संकेत से चुपचाप असहमत था), OpenRouter फ़ॉलबैक शृंखला, config.geminiModelHint ×17 और सहायता गाइड ×17 अब सब gemini-3.6-flash दिखाते हैं। नया ड्रिफ़्ट गेट tests/gemini-default-model.test.mjs (+5 टेस्ट) हर सतह को एक ही लिटरल पर स्थिर करता है — सुइट अब 1957 टेस्ट की है।

[1.125.1] — 2026-07-21

सुधारा गया

  • SuccessFactors: मल्टी-ब्रांड RMK टेनेंट्स अपना ब्रांड पाथ बनाए रखते हैं (पैरेंट #2099, v1.22.0 के बाद) — होल्डिंग कंपनियाँ जो कई अधिग्रहीत ब्रांड्स को एक साझा RMK इंस्टेंस पर चलाती हैं, उन्हें एक पाथ सेगमेंट से अलग करती हैं (careers.nemetschek.com/Bluebeam/ बनाम …/Vectorworks/); पहले यह adapter कॉन्फ़िगर किए गए URL को उसके origin तक सिकोड़ देता था, और चुपचाप केवल मुख्य ब्रांड की पोस्टिंग्स स्कैन करता था। अब यह endpoint ब्रांड-प्रीफ़िक्स को बनाए रखता है, और केवल आख़िरी /search/ या /tile-search-results/ सेगमेंट हटाता है, ताकि कुछ भी कभी अपने ऊपर दोगुना न हो; सिंगल-डोमेन टेनेंट्स byte-for-byte अपरिवर्तित रहते हैं। नया एक्सपोर्ट किया गया resolveTenantBase हेल्पर + tests/sources-successfactors.test.mjs में 1 पोर्ट किया गया टेस्ट ब्लॉक।

[1.125.0] — 2026-07-21

जोड़ा गया

  • cvstart.org: लैंडिंग पर “जॉब स्रोत” सेक्शन — स्क्रीनशॉट्स और तुलना लिस्ट के बीच जोड़ा गया एक नया सेक्शन सभी 67 स्कैनर स्रोतों को क्लिक-योग्य चिप्स के रूप में सूचीबद्ध करता है (62 EN बोर्ड/ATS + अपनी अलग सब-हेडिंग के तहत 5 रूसी बोर्ड), और हर एक स्रोत की पब्लिक साइट से लिंक करता है। यह लिस्ट बिल्ड के समय लाइव अडैप्टर रजिस्ट्री से सिंक होती है (sync-assets.mjsfacts.sources), इसलिए यह ऐप से कभी ड्रिफ़्ट नहीं कर सकती; Sources.astro में एक क्यूरेटेड लिंक-मैप नए tests/site-sources.test.mjs से गेटेड है। हेडर नैव को एक नया स्रोत एंकर मिला; 4 नए साइट i18n keys ×17। साथ ही लैंडिंग JSON-LD की inLanguage लिस्ट भी ठीक की गई, जिसमें अभी तक hi छूट रहा था।

[1.124.0] — 2026-07-21

जोड़ा गया

  • पाँच स्कैन स्रोत (पैरेंट v1.22.0 समता, #1808/#1572/#2024/#2055) — Welcome to the Jungle (बोर्ड-वाइड JSON API), Agentic Engineering Jobs (agentic/AI-इंजीनियरिंग बोर्ड), Jobvite (ज़ीरो-ऑथ per-tenant ATS), Gem (per-tenant ATS), और Alibaba Group (careers JSON API, Meituan/Tencent पैटर्न)। हर एक होस्ट-पिन किया गया, CI-आइसोलेटेड स्रोत + adapter जोड़ा है; रजिस्ट्री अब 67 अडैप्टर (62 EN + 5 RU) शिप करती है; #/scan Source-dropdown फ़ॉलबैक और उसका ड्रिफ़्ट-गेट अपडेट किए गए; पाँच नए सुइट tests/sources-{wttj,agenticjobs,jobvite,gem,alibaba}.test.mjs

सुधारा गया

  • Arbeitsagentur: nationwide-remote केवल तब जब homeofficetyp VOLLSTAENDIG हो (पैरेंट #1981) — homeoffice=nv_true क्वेरी हाइब्रिड भूमिकाएँ भी लौटाती है, इसलिए रिमोट पास अब हर हिट को job-details endpoint के ख़िलाफ़ छोटे बैचों में पुष्टि करता है और fail-closed रहता है (लुकअप एरर होने पर जॉब का असली शहर बना रहता है ताकि लोकेशन फ़िल्टर लागू रहें)।
  • SmartRecruiters: पब्लिक जॉब URL /postings/ के बिना बनते थे (पैरेंट #2047) — लिंक अब उन टेनेंट्स के लिए भी सही पब्लिक पोस्टिंग पेज पर पहुँचते हैं जिनकी पब्लिक साइट यह सेगमेंट ड्रॉप करती है, न कि 404 पर।

टिप्पणियाँ

  • पैरेंट v1.22.0 ने CLI-साइड बदलाव भी शिप किए जिनमें वेब UI शेल-आउट नहीं करता या जिन्हें यह पहले से कवर करता है: zh-CN CV टेम्पलेट + PDF टाइपोग्राफ़ी, /expand मोड, प्रोवाइडर prompt-cache ट्वीक्स (Gemini/OpenAI/Ollama), प्रति-स्टेप टोकन ब्रेकडाउन (वेब UI का अपना usage मीटर है), tracker writer-lock सीरियलाइज़ेशन (वेब UI v1.21 से withFileLock के ज़रिए राइट्स रूट करता है), scan visa_filter + absolute posted-date CLI फ़्लैग्स (वेब UI का अपना “Posted within” एज फ़िल्टर है), और seen-sources डीड्यूप सीडिंग (वेब UI स्कैनर अपना ख़ुद का scan-history डीड्यूप रखता है)।

[1.123.0] — 2026-07-17

जोड़ा गया

  • Oracle Recruiting Cloud स्कैन स्रोत (पैरेंट v1.21.0 समता, #1929) — Oracle Fusion/ORC करियर साइट्स (JPMorgan Chase, Oracle, BNY Mellon, American Express, Honeywell, …) का ज़ीरो-ऑथ recruitingCEJobRequisitions REST API: *.fa[.<region>][.ocs].oraclecloud.com पर होस्ट-पिन किया गया, साइट नंबर हर ट्रैक की गई कंपनी के careers_url से निकाला जाता है, हार्ड पेज-कैप वाला ऑफ़सेट पैजिनेशन, और WAF-जागरूक ब्राउज़र-जैसे हेडर। रजिस्ट्री अब 62 अडैप्टर (57 EN + 5 RU) शिप करती है; #/scan Source-dropdown फ़ॉलबैक और उसका ड्रिफ़्ट-गेट अपडेट किए गए; नया CI-आइसोलेटेड सुइट tests/sources-oraclecloud.test.mjs

सुधारा गया

  • Repost डिटेक्टर: बेस टाइटल विशेष-सफ़िक्स वाले सिबलिंग्स से अलग बने रहते हैं (पैरेंट #1922) — “Senior Analytics Engineer” अब “Senior Analytics Engineer, People Analytics” के साथ क्लस्टर नहीं होता: जब एक टाइटल के टोकन दूसरे टाइटल के टोकन का एक सख़्त सबसेट होते हैं और अतिरिक्त टोकन एक वास्तविक विशेषज्ञता (बेसलाइन शब्द नहीं) होता है, तो दोनों को अलग-अलग पोस्ट होने योग्य ओपनिंग माना जाता है। Reposting एनोटेशन्स (“(Repost)”, “relisted”) अब मेटा-नॉइज़ के रूप में स्टॉपवर्ड किए जाते हैं। tests/detect-reposts.test.mjs में +2 assertions।

टिप्पणियाँ

  • पैरेंट v1.21.0 ने CLI-साइड बदलाव भी शिप किए जिनमें वेब UI शेल-आउट नहीं करता या जिन्हें यह पहले से कवर करता है: रिपीट-कंपनी रीअप्लाई चेतावनी (वेब UI में v1.84.0 से री-अप्लाई कूलडाउन पहले से मौजूद है), cover-letter के --format/--report फ़्लैग्स, इंटरव्यू red-flag / panel-intel / no-show ईमेल प्रॉम्प्ट मोड्स, scan trust-signal व portal-health पर्सिस्टेंस (वेब UI अपना ख़ुद का इन-प्रोसेस स्कैनर trust-validator और Portals health पेज के साथ चलाता है), और stats/salary-gap एक्सटेंशन (रीड-ओनली और fail-soft तरीक़े से रिले किए गए)।

[1.122.0] — 2026-07-16

जोड़ा गया

  • हिन्दी (हिन्दी) — 17वीं भाषा — पूरा UI शब्दकोश (~1,110 कुंजियाँ), सम्पूर्ण इन-ऐप सहायता गाइड (29 H2 / 105 H3 समता), README.hi.md, नई CHANGELOG.hi.md (v1.122.0 से शुरू, de/it/tr की मिसाल पर), cvstart.org लैंडिंग + Methodology/License/Changelog/Help पेज, भाषा स्विचर (🇮🇳), ब्राउज़र-भाषा की स्वतः पहचान, और स्थानीयकृत डैशबोर्ड स्क्रीनशॉट। हर ×16 समता-गेट अब ×17 चलता है: i18n शब्दकोश समता + स्नैपशॉट, सहायता H2/H3 गेट, CHANGELOG समता, साइट check-i18n, और Playwright लोकेल स्वीप।