Conversation
PR #54 のレビューで挙がった 4 件を修正する。 - **TimelineKey::parse の Basic 名を lowercase kebab に限定** (security): Basic 名は `notes/{t}-timeline` として API パスへ補間されるため、`/` `.` `?` `#` 等を含む名前でリクエスト先を差し替えられた (例: `../../admin/x?` → `/api/admin/x` にトークン付きで到達)。daemon の `GET /timeline/{tl_type}` と CLI から到達可能だった - **per-timeline トリムがチャンクごとに writer lock を解放するよう修正**: tx だけ分割して Mutex を握りっぱなしだったため、1M 行規模の初回トリム中は ingest_notes 等すべての書込が完走まで待たされていた (チャンク分割の目的が 達成できていなかった) - **HTTP エラーアダプタを safe_message() 経由に**: `Internal` / `Database` の 内部詳細がそのままレスポンスに出得た - **`cache sweep` が OutputFormat を尊重するよう修正**: json/jsonl/ids で 機械可読でない出力を返していた CLAUDE.md のエラー型表記も実装に合わせて訂正 (NotecliError → NoteDeckError)。 バージョンを 0.8.1 にバンプ。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
fix: レビュー指摘の修正 (path traversal / writer lock / safe_message)
|
Warning Review limit reached
Next review available in: 27 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (6)
Comment |
v0.8.0 のレビュー指摘修正(#55)。v0.8.0 は使わず本リリースを使うこと。
修正内容
TimelineKey::parseのBasic名を lowercase kebab に限定 🔒 — Basic 名が API パス (notes/{t}-timeline) へ補間されるため、/.?#を含む名前でリクエスト先を差し替えられた(daemon の/timeline/{tl_type}と CLI から到達可能)safe_message()経由に 🔒 —Internal/Databaseの内部詳細がレスポンスに出得たcache sweepがOutputFormatを尊重 — json/ids で機械可読な出力を返すNotecliError→NoteDeckError)v0.8.0 からの移行
DB スキーマ(V6)に変更はないため、v0.8.0 を適用済みの DB もそのまま使える。v0.7.0 以前からの更新時の注意は v0.8.0 のリリースノートを参照。
🤖 Generated with Claude Code