Skip to content

feat: nanne v1 の最小一時チャットを実装 - #7

Merged
yo4e merged 21 commits into
mainfrom
feat/v1-minimal-chat
Sep 10, 2026
Merged

yo4e merged 21 commits into
mainfrom
feat/v1-minimal-chat

Conversation

@yo4e

@yo4e yo4e commented Sep 10, 2026 •

Copy link
Copy Markdown
Owner

概要

Issue #6 の最小v1を実装します。

  • Cloudflare Workers + Durable Objects
  • WebSocket Hibernation API
  • SQLite-backed Durable Object (exports 方式)
  • 静的HTML / CSS / JavaScriptの最小UI
  • 推測困難なルームID
  • 作成から24時間のTTL
  • 期限時にメッセージ履歴を削除し、期限切れ状態のみ保持
  • 1ルーム最大8接続
  • 1メッセージ最大1000文字
  • 履歴は最新100件
  • 送信頻度の最低限の制御
  • XSSを避けるtextContent描画 + CSP / security headers
  • 期限切れ・不存在ルームの事前状態確認
  • Node単体テスト + Wrangler dry-run + ローカルWorker統合テスト
  • READMEにローカル開発・確認・デプロイ方法を追記

v1で意図的にやらないこと

  • 本番一般公開
  • 課金・広告・収益化
  • アカウント
  • 公開ルーム検索
  • 添付ファイル
  • SDK / ホワイトラベル
  • 高度なモデレーション

検証結果

GitHub Actions CIで以下を確認済みです。

  • npm install: success
  • npm audit --omit=dev --audit-level=high: success(production dependency 0 vulnerabilities)
  • node --test test/core.test.js: 3/3 pass
  • wrangler deploy --dry-run: success
  • Durable Object binding env.ROOMS (Room) をWranglerが認識
  • static assets 4ファイルをWranglerが認識
  • ローカルWorkerを実際に起動して統合テスト: success
    • トップ画面取得
    • ルーム作成
    • /r/<room-id> のSPA表示
    • room status取得 / 不存在roomの404
    • 2クライアントWebSocket接続
    • A→B / B→A の双方向メッセージ配信
    • 送信者を含む同一メッセージのbroadcast
    • 再接続したクライアントへの保存履歴復元

既知の開発依存警告

npm install の通常のaudit表示では high severity 3件が報告されます。詳細確認の結果、nanneの実行時依存ではなく、最新 wrangler@4.130.0 の開発ツール依存チェーン wrangler -> miniflare -> sharp に由来するものです。

npm audit fix --force は古いWranglerへの変更を提案するため採用していません。本番依存についてはCIで npm audit --omit=dev --audit-level=high をfail条件として常設します。上流のWrangler/Miniflare更新時に再確認します。

マージ前に残る確認

機能のコアはローカルWorker統合テストまで自動確認済みです。以下は実ブラウザでの見た目・操作感として未確認です。

  • Desktop / Mobile の実表示
  • URLコピーボタンの操作感
  • Enter / Shift+Enter / IME入力
  • 切断・再接続・期限切れ時の表示

画面・操作感は山田さん自身の確認が成果の核になるため、ここはマージ前の手動確認として残します。

Closes #6

@yo4e
yo4e merged commit 214b8b3 into main Sep 10, 2026
1 check passed
@yo4e
yo4e deleted the feat/v1-minimal-chat branch September 17, 2026 02:21
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.

v1: 「URLを作る → 入る → 話す → 消える」の最小チャットを実装する

1 participant