
إضافة Cursor لـ Hono v4 (إطار عمل ويب طرفي بلغة TypeScript). 59 حالة تراجع لنماذج LLM مع أزواج خاطئ/صحيح. مثبتة على hono ^4.12.19 (>= 4.9.7 لـ CVE-2025-59139). تغطي تسريب وسيط Express، وواجهات برمجية محذوفة من عصر v3، ومزالق استدلال RPC، ومشاكل Cloudflare Workers، وإعدادات الأمان الافتراضية، وتقوية SSR لـ JSX.
إضافة لـ Cursor لإطار العمل Hono v4 (إطار عمل ويب حافة TypeScript) + TypeScript. مثبتة على hono ^4.12.19، @hono/zod-validator ^0.8.0، @hono/zod-openapi ^1.4.0 (مع zod ^4.x كـ peer)، @hono/node-server ^2.0.3 (Node 20+). تعلم واجهات برمجة التطبيقات الخاصة بـ v4 والتي لا تعرفها نماذج اللغة الكبيرة المدربة على بيانات ما قبل 2024 (مثل c.json() دائمًا بنوع، يُلقي HTTPException عند التحقق، getCookie/setCookie من hono/cookie، c.env كخاصية، streamText من hono/streaming، showRoutes من hono/dev، getRuntimeKey من hono/adapter، fire(app) من hono/service-worker، ربط Static Assets الخاص بـ Workers بدلاً من serveStatic القديم، @hono/hono الخاص بـ JSR لـ Deno). تلتقط أكثر من 50 انحدارًا في نماذج اللغة الكبيرة مع أزواج BAD / CORRECT من TypeScript.
لا يوجد Hono v5. الإصدار المستقر الأحدث هو v4.12.19. أي ذكر لـ "v5" في الكود المُنشأ هو هلوسة.
مطورو Hono أنفسهم فتحوا القضية رقم #3906 ("ملف llm.txt") والقضية رقم #4812 ("مهارة ذكاء اصطناعي رسمية لـ Hono") بشكل صريح لأن "نماذج اللغة الكبيرة ليس لديها معرفة عمليًا بكيفية عمل أحدث إصدار من Hono." بيانات التدريب قبل 2025 هي من عصر v3. تصدر نماذج اللغة الكبيرة:
c.jsonT() بدلاً من c.json() (دائمًا بنوع منذ v4.0.0)c.stream() / c.streamText() كطرق على Context (نُقلت إلى hono/streaming في v4)c.env() كدالة (الآن خاصية؛ الكشف عن وقت التشغيل عبر getRuntimeKey() من hono/adapter)c.req.cookie() (أُزيلت؛ استخدم getCookie(c) من hono/cookie)app.showRoutes()، app.routerName (نُقلت إلى hono/dev)addEventListener('fetch') + app.handleEvent() (صيغة Service Worker؛ استخدم export default { fetch: app.fetch })app.head(...) (HEAD مشتق تلقائيًا من GET في v4)hono/nextjs (استخدم hono/vercel)hono/middleware الشامل (استخدم مسارًا فرعيًا لكل وسيط)c.req.headers() / c.req.body() / c.req.signal() (استخدم c.req.raw.*)FC مع أطفال ضمنيين (استخدم PropsWithChildren<P>)app.fire() (مهمل منذ v4.8.0؛ استخدم fire(app) من hono/service-worker)import { Hono } from 'https://deno.land/x/hono/mod.ts' على Deno (قديم منذ v4.4.0؛ استخدم jsr:@hono/hono)return على c.json() (يُحل إلى undefined؛ v4 يُلقي "Context is not finalized")res.json() / res.send() بدلاً من c.json() (لا يوجد res في Hono)(req, res, next) (استخدم (c, next))(err, req, res, next) (استخدم app.onError + HTTPException)app.use(express.json()) (Hono يحلل عند الطلب عبر c.req.json())import cors from 'cors' من npm (استخدم hono/cors)supertest للاختبارات (استخدم app.request() / testClient(app))c.req.body كمحلل مسبقًا (إنه ReadableStream)c.req.parseBody() لـ JSON (لنماذج / multipart فقط)c.req.text() ثم c.req.json() (استهلاك الجسم مرتين)c.userId = ... (استخدم c.set('userId', ...) مع متغيرات مصنفة)new Hono() بدون صنفين Bindings / Variables (c.env هو {})app.get(...) ثم app.post(...)) - تفقد أنواع RPCapp.route() للتطبيقات الفرعية كعبارات - نفس القاعدةContext (تفقد استدلال معامل المسار، وفقًا لأفضل ممارسات Hono)app.use('/path', zValidator(...)) بدلاً من استخدامه كوسيط مسار (خطأ TS: 'json' not assignable to 'never')c.notFound() في مسارات RPC المستهلكة (لا يمكن تصنيفها على العميل)new Response(JSON.stringify(...)) في مسارات RPC (العميل يرى unknown)hc<AppType>('/') عنوان URL نسبي (يُلقي خطأ على $url())drizzle-orm و fs والتبعيات الأصلية - الخطأ رقم 1 في تضخم حزمة RPC)createMiddleware<Env> (لا تنتشر أنواع المتغيرات)process.env.X في كود Workers (غير معرّف؛ استخدم c.env.X مع Bindings مصنفة)fs / path في Workers (لا يوجد نظام ملفات)compatibility_flags: ["node_compat"] (استخدم nodejs_compat)serveStatic المهمل من hono/cloudflare-workers (منذ v4.3.0؛ استخدم ربط الأصول)c.executionCtx.waitUntil() للإطلاق والنسيانif (c.executionCtx) (الخاصية تُلقي خطأ على Bun و Next.js App Router).run() / .first() / .all() (يُلغى الإدراج عند إنهاء العامل)secureHeaders()csrf() على عمليات التحوير المصادق عليها بالكوكيزcors({ origin: '*', credentials: true }) (المتصفحات تُسقط بصمت؛ تفشل طلبات AJAX)bodyLimit() على مسارات POST / PUT وقفل hono >= 4.9.7 لـ CVE-2025-59139httpOnly / secure / sameSite / pathsameSite: 'None' بدون secure: true (يُسقط بصمت)etag() / cache() على طلبات GET الثابتةstreamText (حد 128MB لـ Workers)notFound للتطبيق الفرعي (كود ميت؛ فقط المستوى الأعلى يُطلق)/users و /users/ مساران مختلفان افتراضيًا)await next() أكثر من مرة (يضاعف عمل المراحل التالية)app.use(prefix, mw) + app.route(prefix, subApp) (الوسيط يُطلق مرتين)app.basePath('/api') كعبارة (يُتجاهل البادئة من النوع)serve(app) على @hono/node-server (استخدم serve({ fetch: app.fetch }))export default app على Workers (استخدم export default { fetch: app.fetch })Bun.serve({ fetch: app }) (استخدم app.fetch)c.req.query() بدون وسيط عند توقع قيمة واحدةc.req.param('id') في وسيط عمومي (غير محدد حيث :id ليس في المسار)@hono/zod-openapicors() مثبت بعد المسارات (لا يتطابق أبدًا)يوجد عدد قليل من قواعد Hono على cursor.directory وفي awesome-cursorrules (PR #152): تغطي إرجاع c.json() و zValidator + Zod و c.env لـ Workers والمسارات المتسلسلة لـ RPC وتصدير Workers app.fetch. لديهم ثلاث مشاكل هيكلية تعالجها هذه الإضافة:
c.jsonT و c.stream و c.env() و c.req.cookie و app.showRoutes والاستيراد الشامل hono/middleware و app.handleEvent - كلها أُزيلت في v4.0.0 (فبراير 2024). القواعد الحالية تسمح بها بصمت.(req, res, next) و (err, req, res, next) و npm cors و app.use(express.json()) و supertest وفقدان return على c.json - كلها تحدث باستمرار في كود Hono المُنشأ بواسطة نماذج اللغة الكبيرة. تعاملها القواعد الحالية كحالات فردية.secureHeaders() / csrf()؛ ولا تذكر أي منها bodyLimit و CVE-2025-59139 (الإصلاح في v4.9.7)؛ ولا تعالج أي منها مخاطر عميل RPC (العنوان النسبي، تسرب استيراد القيمة، كتابة c.notFound).هذه الإضافة توفر: