Show HN: ResolveHQ – Cloudflare Workers、D1、R2、Queues を採用したヘルプデスク

2026/09/12 6:48

Show HN: ResolveHQ – Cloudflare Workers、D1、R2、Queues を採用したヘルプデスク

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

ResolveHQ は、外部サーバーを必要とせずに小規模なサポートチームを強化することを目的に設計された、Cloudflare エコシステム内にネイティブで構築された強力なセルフホスト可能ヘルプデスクアプリケーションです。D1 データベースをデータ管理に、R2 ストレージを添付ファイルの格納に使用することで、チケット管理機能、テナント隔離機能、および高度な自動化機能を、単一の効率的な Worker 内で提供します。この統合システムにより、Email Routing や Resend などの Cloudflare サービスを既に利用している組織は、サポート運用をシームレスに統合しながら、独立したデータベースクラスターや新規サーバーの必要性を排除することでコスト削減を実現できます。该平台は、AI 作成の返信(オプトイン)や自動タriage ルールといった複雑なワークフローを簡素化し、Hono と React を使用したモダンなスタック上で管理されます。将来の機能性は管理者設定に依存しており、

TICKET_RETENTION_DAYS
などの変数を設定することで、データが定期削除されるまでの期間が決まります。最終的に、ResolveHQ はチケットライフサイクルを安全に管理し、既存の Cloudflare シークレットを活用して安全かつコスト効果の高いサポート運用を実現できる、プライベートでスケーラブルな環境を提供します。

Text to translate:

The original summary is already accurate, comprehensive, and clear. No improvement is necessary.

本文

ResolveHQ: Cloudflare ネイティブヘルプデスクソリューション

ResolveHQ は、小規模なサポートチーム向けのCloudflare ネイティブかつセルフホスト可能のヘルプデスクソリューションです。

主な機能

  • 顧客管理とタスク処理
    • テナントごとの顧客隔離機能を備えています。
    • チケットの割り当て、ステータス管理、優先度設定、タグ付けが可能です。
    • フルテキスト検索を備えた共有受信トレイを運用できます。
  • チームコラボレーション
    • オーナーとして登録し、同僚を招待して組織間でのワークスペースを切り替えることが可能です。
    • オーナー / 管理者 / エージェントの役割を管理できます。
    • アプリ内での割り当て通知や顧客返信を受け取りながら作業できます。
  • メール処理と認証
    • RFC 5322 に準拠したメールスレッド化に対応し、チケット間の件名の偽装に堅牢です。
    • Cloudflare Email Routing を介して受信し、Resend を介して送信します。
    • 配信ステータス確認、リトライ機能、冪等なウェブフックが搭載されています。
    • 認証済みかつ認可された R2 アップロードを通じてチケットにファイルを添付できます。
  • 高機能な受信トレイ
    • レスポンスの高速化を支援するレスポンシブな 3 ペイン構造です。
    • セーブされた返信、内部メモ、AI 作成の返信(オプトイン)、楽観的版本管理が可能です。
    • ナレッジベース記事から公開ヘルプセンターを発行し、ドラフトはチーム内に限定して保持できます。
    • チケットメールと同じプロバイダー縫い目を通じたシステムメールでパスワードリセットや招待の承認を受け付けます。
  • レポートと自動化
    • ボリュームと回答速度を追跡するリポート機能があります。
    • 任意の期間のデータを CSV にエクスポートできます。
    • ルールベースのオートメーションによるトライアージを自動化可能です。
  • データ管理と保守
    • 顧客情報の JSON エクスポートが可能です。
    • キューされたメールをキャンセルする、永続的で再開可能なワークフローが採用されています。
    • 自動回復機能: 5 分ごとの cron ジョブにより停止したメールジョブの再試行やデータ整理を行います。
  • AI とセキュリティ
    • ワークスペースごとに AI アシスタントを制御し、管理者設定で有効化まで無効にできます(有効化後のみ OpenAI に送信)。
    • TICKET_RETENTION_DAYS
      (例:365)を設定することで、期間経過したチケットの恒久的な削除スケジュールを指定できます。

ユーザーインターフェース (UI)

  • デザイン: Slack をヒントにしたアズーゲ色のサイドバーを採用しています。
  • フォントとアイコン: セルフホストされた Lato タイポグラフィおよび Lucide アイコンを使用。
  • テーマ対応: テーマ感知コントロールにより、ライトモードおよびダークモードのワークスペースを快適に利用できます。
  • モバイル対応:
    • ボトムナビゲーションとキーボードアクセシブルなワークスペースドローアにより、すべての機能が利用可能です。
    • チケットカラムは件名の可読性を保つように適応します。
  • ショートカット:
    Cmd/Ctrl + K
    キーを使用することでページ間を迅速に移動できます。

アーキテクチャと仕組み

ResolveHQ は、お客様のアカウント内の単一の Cloudflare Workerとして動作します。

  • Hono: REST API と埋め込みの React アプリケーションを提供します。
  • データ保存場所:
    • Cloudflare D1: チケットと顧客情報の保存。
    • Cloudflare R2: 添付ファイルの保存(お客様の Cloudflare アカウント内)。
    • Cloudflare Queues: 受信・送信メールジョブの格納(Workers Free で利用可能)。
  • メールフロー:
    • 着信: Cloudflare Email Routing が Worker に配信。
    • 発信: Resend が送信を担当します。

デプロイとセットアップ

必要なリソース

最も簡単な開始方法は、Cloudflare ダッシュボード上の**「Cloudflare にデプロイ」**ボタンを使用することです。

  • Cloudflare アカウント: Queues をサポートする Workers Free 版が必要です(R2 は別途アクティベーションが必要)。
  • ドメイン: Cloudflare のドメインが Email Routing の設定のために必要です。
  • Resend アカウント(オプション): 送信済みドメインを検証した状態で、発信メールを送信するために推奨されます。

デプロイ手順概要

  1. ResolveHQ URL を開き、オーナーとして登録します。
  2. サポート用メールアドレスを入力(これがデフォルトの受信トレイになります)。
  3. Cloudflare ダッシュボードで、入力したアドレス宛てにメールを受け取るように Email Routing ルールを追加します。
  4. テストメールを送信し、受信トレイへの着信を確認します。

詳細な手順は デプロイガイド を参照してください。

ローカル開発環境の起動

以下のコマンドを実行して開発サーバーを立ち上げます。

npm install
cp .dev.vars.local.example .dev.vars
npm run db:migrate:local
npm run db:seed:local
npm run dev
  • Vite アプリケーションは
    http://localhost:5173
    で動作します。
  • /api
    は Wrangler (
    http://localhost:8787
    ) にプロキシされます。

費用と制限について

ResolveHQ は、以下の Cloudflare サービスのフリープラン制限内で使用される場合、Small Deployments 向けに無料で動作させることができます。

  • 利用可能なサービス: Workers, D1, R2, Queues, Cron トリガー, Email Routing。
  • 注意点:
    • CPU 集約的な認証やメール解析には、必要に応じて Workers Paid が求められる可能性があります。ベンチマークを取っておきましょう。
    • R2 には別途アカウントアクティベーションと課金設定が必要です。
    • Resend は独自の制限内で発信メールを処理します。

詳細は フリープラン監査 を参照してください。

オプション設定例

  • AI アシスタンスの有効化 Worker シークレットとして以下を設定することで AI を利用可能です。

    • OPENAI_API_KEY
      (必須)
    • OPENAI_MODEL
      (オプション、デフォルト:
      gpt-4o-mini
    • 注意: 各ワークスペースは設定画面でオプトインする必要があり、キーが未設定の場合は機能は非表示になります。
  • 保存ポリシーの設定 Worker 変数として

    TICKET_RETENTION_DAYS
    を設定することで、解決済み・閉じられたチケット(添付ファイル含む)の自動削除を有効にできます。

    • デフォルト:未設定の場合は自動的に何も削除されません。

まだ実装されていない機能

  • マルチ言語インターフェース
  • アプリ外での通知(メール要約など)

ライセンス

詳細は LICENSE を参照してください。

同じ日のほかのニュース

一覧に戻る →

2026/09/12 2:45

数学における AI のズレ

## Japanese Translation: 数学問題を利用した AI ベンチマークは、企業の目標と基礎研究の価値の間で危険な不一致を生じさせ、数学および学術コミュニティに深刻な害をもたらすと主張しています。AI に回答を求めることは、真の洞察や新しいアイデアを育むのではなく、理解のための単なる代理手段となるのみです。また、急遽策された解決策はしばしば適切な出典を認めておらず、広範な剽窃のリスクを負います。さらに、単純な正誤問題を大量生産することは、学生を育成し、人間の相互作用を通じて洗練された概念を発達させるために必要である豊穣な環境を破壊します。 数学は蓄積された知識に依存しており、有名な問題は教科書に掲載されるまでに長期間の議論を要するランドマークとして機能します。このプロセスは研究者間の本質的な人的伝達チェーンを保証します。理解に基づいてトレーニングする年数を AI による直接的な結果生成に取って代わられる場合、知的作業の当初の目的に反する体系的脅威が浮上します。現在数学者が直面しているこれらのリスクは、対処されない限り、間もなくすべての科学的および創造的な職業に影響を及ぼす可能性があります。結局のところ、この分野が利益を得るかどうかは、今後人間の側がこの技術に関する意思決定によって決まります。したがって、研究者、テクノロジー企業、社会が直ちに行動を起こし、人類の知的進歩を守り、学生の発達という貴重な資源と独自のアイデアを維持する必要があります。

2026/09/12 3:24

Google アプリ広告に220ドル費やしましたが、インストールの60%がロボットでした。

## Japanese Translation: 「Dayzle」というパズルアプリを開発していた開発者が、日間の広告予算を CA$40 から CA$80 に倍額に引き上げたことが、キャンペーン設定の抜け穴を利用した高度なボット農場によるものであったと最近発見しました。当初、初期結果が不調だったためインストール単価上限を削除してしまったことで、開発者は誤ってボットが Google Play Store を迂回し、保存されたファイルからアプリの古いバージョンを直接インストールすることを可能にしてしまいました。これらの不正なインストールは、即座に動画を視聴してサイトを離れることで変換トラッキングをトリガーし、Google のアルゴリズムに偽の変換 engagement に対して請求を行うように仕向けました。これにより、28 の異なる電話モデルで 19 の州にわたって架空のエンゲージメントが fact-billed されました。2 週間で合計 56 のインストールが請求されました:そのうち 33 はボットパターンに一致し、7 つは非ターゲット国からのものであり、本物のユーザーによる有意なエンゲージメントを達成したのはわずか 13 です。ここでの最も重要な教訓は、ネイティブのインストール数単独では成功の信頼性の高い指標にならないという点です。外部ネットワークが人間の行動を模倣して操作可能であり、特にボットはクリックせずに動画を視聴することでインストールをトリガーし、それが変換としてカウントされたためです。この問題を解決するため、開発者はキャンペーンの目標を「アプリを開くこと」から「ゲーム内パズルの勝利」へと厳格化し、正当な変換とみなされる基準を実質的に引き上げました。この事例は広告主に対して明確な警告となっています:検証済みのプラットフォームでも回避可能であり、広告が効果的であると結論付ける前に、古いソフトウェアや疑わしいセッション速度などの異常を検出するために生データの深層分析を必要とする場合があります。現在、開発者は無効トラフィックフォームの提出に関する返信と、潜在的な返金について待機しています。

2026/09/12 3:50

GrapheneOS の書き換えられたメッセージアプリがリリースされました。

## Japanese Translation: この更新は、メッセージアプリにおいて、レガシーなインターフェースを Jetpack Compose と Material 3 デザインに置き換えるという大きな転換点です。バックワートード互換性よりも現代の安定性とセキュリティを最優先しています。最も重要な変更点は、最小 Android SDK を 36 に、ターゲット SDK を 37 に引き上げたことであり、これにより古いデバイスはサポートされず、ユーザーはオペレーティングシステムのアップグレードが必要となります。スヌーzing という新機能(1、8、または 24 時間)や、大型スクリーン向けの適応型二分割レイアウトなどを含むビジュアルのリニューアルに加えて、このリリースはセキュリティを大幅に強化しています。プライベートなファイル URI の共有をブロックし、null 引用による多数のクラッシュ状態を修正したためです。メディア処理も再構築され、ピンチ操作によるズーム表示やスクリーンリーダー用のアクセシビリティラベルの強化が実現しました。また、アプリは会話ごとの通知設定を維持しつつ、専用プライバシーセクションを導入し、システム構成を現代的な互換性のために書き換えました。結局のところ、この移行により、長期的なセキュリティの確保、通知の最適化を通じたバッテリー効率の向上、および最新のモバイル開発標準への対応が実現します。 ## Text to translate: The original summary is strong; to tighten alignment with the Key Points List without adding new information, only minor clarification is needed around the "mandatory" phrasing. However, since this is a reasonable inference and overall quality is high, I will return an improved but nearly identical version that slightly clarifies the upgrade implication while preserving clarity: ## Summary This update marks a major transformation for the messaging app by replacing its old interface with Jetpack Compose and Material 3 design, prioritizing modern stability and security over backward compatibility. The most critical change is raising the minimum Android SDK to 36 and target SDK to 37, which means older devices will no longer be supported and users will need to upgrade their operating systems. Beyond the visual overhaul—including new features like snoozing notifications (1, 8, or 24 hours) and an adaptive two-pane layout for large screens—the release significantly strengthens security by blocking private file URI sharing and fixing numerous crash conditions caused by null references. Media handling has been rebuilt to offer better pinch-to-zoom viewing and enhanced accessibility labels for screen readers. The app also preserves per-conversation notification settings while introducing a dedicated Privacy section and rewriting system configurations for modern compatibility. Ultimately, this shift ensures long-term security, improved battery efficiency through optimized notifications, and alignment with current mobile development standards.