Skip to content

refactor(directory): Monitor の changelog データを分離し teaser と delta の重複を共通化 (R9a/R9b) - #621

Merged
cipherwebllc merged 1 commit into
mainfrom
fix/r6-r9ab-monitor-data
Sep 24, 2026
Merged

cipherwebllc merged 1 commit into
mainfrom
fix/r6-r9ab-monitor-data

Conversation

@cipherwebllc

Copy link
Copy Markdown
Owner

概要

第 6 回レビュー Phase 6 (完全リファクタ) の R9a と R9b です (指摘 E16)。応答を変えない抽出だけです。

  • R9a: lib/directory/serviceMonitor.ts (946 行) から、changelog のデータ (MANUAL_CHANGELOG・BASELINE_DATE) をデータ専用の lib/directory/changelogData.ts に、語彙の型と定数を changelogTypes.ts に移しました。serviceMonitor.ts は 337 行になり、同じ path で再 export します。週次更新で追記する file は changelogData.ts になります (runbook と memory は更新済み)。
  • R9b: 2 つの無料 teaser route の重複を lib/directory/monitorTeaser.ts の teaserChangesFor(scope) に、2 つの有料 Monitor の delta 判定を takeDeltaSince に共通化しました。scope 付きの生イベント・scope の除去・実効記録日 (max(date, collectedAt ?? date)) 順・3 件の上限・全履歴からの latestRecordedAt と合計・hasMore/nextChangedSince は従来どおりです。stablecoin の teaser は、有料 Monitor の provider 行ではなく生イベントを返したままです。

有料 Monitor は販売中の商品です。JPYC・USDC の 4 つの有料 route と 2 つの teaser の応答は、実データで多数の query を試して分割前と byte 単位で同一でした (レビュー役も独自に 305 通りで確認)。

固定と検証 (base = b13da8c)

  • 実データの固定 (209 通り・実データ/250 件の合成/空) は、旧コードと分割後で同じ hash です。週次更新で壊れるため commit していません。
  • commit した golden (tests/app/api/monitor-wire-golden.test.ts・16 件): fixture (小・空・有料上限超え) の raw text の sha256 と、JPYC と USDC の route の byte 一致。レビュー役が、data の import 先だけ変えた旧コードでも 16/16 通ることを確認しています。
  • わざと壊した変更 10 通り (scope の除去を落とす・3 件の上限を変える・latestRecordedAt を page から計算する 等) をすべて検出しました。scope の除去と page からの計算は、既存テストでは検出できませんでした。
  • 別セッションの Opus 5.5 のレビュー: approve。
  • typecheck 0 / eslint 0 / full vitest 14,552 pass / 実 Lua は対象外 (Lua に触れない)

既存の挙動 (本 PR では変えない)

  • どの scope でも added イベントがあると、その entry の jpyc-services の baseline イベントが出ません (今のデータでは影響なし)。
  • 支払い Monitor の lastEventDate は、記録日ではなく発表日を使います。

🤖 Generated with Claude Code

https://claude.ai/code/session_01HeizmagJBgL5peL5mQpxkc

@vercel

vercel Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
openpay Ignored Ignored Preview Sep 24, 2026 2:09pm UTC

Request Review

…通化 (R9a/R9b)

第 6 回レビュー Phase 6 の R9a/R9b (E16)。serviceMonitor.ts (946 行) から
MANUAL_CHANGELOG と BASELINE_DATE をデータ専用の lib/directory/changelogData.ts に、
語彙の型と定数を changelogTypes.ts に移す (serviceMonitor は同じ path で再 export)。
両 teaser route の重複を lib/directory/monitorTeaser.ts の teaserChangesFor(scope) に、
両 paid monitor の delta 判定を takeDeltaSince に共通化する。挙動は不変。
実データで 6 route × 多数の query の応答 hash が分割前と同一であることを確認し、
fixture の golden (両 rail の byte 一致を含む) を commit した。

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HeizmagJBgL5peL5mQpxkc
@cipherwebllc
cipherwebllc force-pushed the fix/r6-r9ab-monitor-data branch from aa50b2d to 4551c8f Compare September 24, 2026 14:09
@cipherwebllc
cipherwebllc merged commit 5b2c283 into main Sep 24, 2026
8 checks passed
@cipherwebllc
cipherwebllc deleted the fix/r6-r9ab-monitor-data branch September 24, 2026 14:39
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