Skip to content

build: upgrade @hono/node-server to v2 - #93

Closed
agentHits wants to merge 2 commits into
AgentHits-Devfrom
build/hono-node-server-v2
Closed

agentHits wants to merge 2 commits into
AgentHits-Devfrom
build/hono-node-server-v2

Conversation

@agentHits

Copy link
Copy Markdown
Collaborator

Зачем

Переход @hono/node-server на мажорную версию 2: ветка 1.x больше не развивается, а v2 заметно быстрее обрабатывает запросы и содержит свежие исправления. Пакет используют только облачные сервисы upstream apps/api и apps/schedules; в образ панели форка (./Dockerfile) они не входят, поэтому на работу панели обновление не влияет.

Что изменилось

  • @hono/node-server: ^1.19.17 → ^2.1.5 (2.1.5 вышла 2026-10-13) в apps/api/package.json и apps/schedules/package.json. В bun.lock изменилась только запись этого пакета.
  • Код не менялся: публичный API в v2 прежний, вызов serve({ fetch: app.fetch, port }) в apps/api/src/index.ts и apps/schedules/src/index.ts работает без правок. Мок { serve: vi.fn() } в тесте тоже подходит.
  • Важное из release notes:
    • v2.0.0: обработка запросов и ответов переписана ради скорости (по замерам авторов до 2.3 раза быстрее v1).
    • Два breaking change: нужен Node.js 20+ (у нас Node 24 в Dockerfile.server/Dockerfile.schedule и engines: ^24.22.1); удалён адаптер @hono/node-server/vercel (в проекте не используется).
    • 2.1.x: middleware Early Hints, ленивое чтение заголовков запроса, Content-Length больше не меняет заголовки ответа, отмена request.signal при сбросе HTTP/2-потока, serve-static отвечает только на GET/HEAD; peer-зависимость расширена до hono ^4 || ^5.
  • hono остаётся 4.13.13 (закреплён в overrides), v2 его поддерживает.

Проверки

  • bun install --frozen-lockfile — ок.
  • bun run typecheck — ок во всех воркспейсах (server, api, schedules, dokploy).
  • bun run server:build, затем bun run build в apps/api и apps/schedules — ок. После этого bun run server:script: packages/server/package.json без diff, сборочные артефакты удалены.
  • Собранный apps/api запущен с фиктивным env (без Postgres/Redis/Inngest): сервер поднялся на порту, GET /health → 200 {"status":"ok"}.
  • bunx vitest run --config __test__/vitest.config.ts __test__/deployment/cloud-queue-availability.test.ts — 12/12.
  • bunx biome check на изменённых файлах — ок.
  • bun audit --audit-level=moderate — уязвимостей нет.
  • Локально не проверялось: apps/schedules не запускался (нужен Redis для BullMQ), реальная работа очередей и Inngest; сборка Docker-образов Dockerfile.server/Dockerfile.schedule. next build для apps/dokploy проверит CI.

Что проверить вручную на dev

Ничего: панель форка этот пакет не использует. Если когда-нибудь будут разворачиваться облачные сервисы apps/api/apps/schedules, достаточно проверить, что они стартуют и /health отвечает.

🤖 Generated with Claude Code

agentHits and others added 2 commits October 27, 2026 11:29
Что:
- @hono/node-server ^1.19.17 -> ^2.1.5 в apps/api и apps/schedules; bun.lock меняется только в этом пакете.
- Код не менялся: serve({ fetch, port }) в v2 работает так же.

Зачем:
- Ветка 1.x больше не развивается; v2 быстрее обрабатывает запросы (по данным авторов до 2.3 раза) и содержит исправления 2.1.x.
- apps/api и apps/schedules - облачные сервисы upstream, в образ панели форка они не входят.

Риски:
- v2 требует Node.js 20+; образы Dockerfile.server и Dockerfile.schedule на Node 24, engines тоже ^24.
- Удалён адаптер @hono/node-server/vercel; в проекте он не используется.
- hono остаётся 4.13.13 (pin в overrides), v2 поддерживает hono ^4.

Проверки:
- bun run typecheck - ок во всех воркспейсах.
- bun run server:build, затем build apps/api и apps/schedules - ок; server:script вернул packages/server/package.json без diff.
- Собранный apps/api с фиктивным env слушает порт, GET /health отдаёт 200.
- cloud-queue-availability.test.ts - 12/12.
- bunx biome check на изменённых файлах - ок; bun audit --audit-level=moderate - уязвимостей нет.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@agentHits

Copy link
Copy Markdown
Collaborator Author

Влито в составе #101 одним PR, чтобы вся первая волна вышла одной версией. Этот PR закрываю без слияния, его коммит есть в #101.

@agentHits agentHits closed this Oct 27, 2026
@agentHits
agentHits deleted the build/hono-node-server-v2 branch October 27, 2026 16:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant