Skip to content

永続フィードバックが location.href 完全一致縛りで、ハッシュ/クエリ変化で silent に失われる #84

@kosako

Description

@kosako

概要

永続フィードバックが location.href 完全一致縛りのため、ハッシュ/クエリ変化やリダイレクト後の再読込で復元できず、最終的に silent に失われる。

詳細

  • 場所: widget/src/index.js:853-860, 828
  • isMatchingFeedbackEnvelopevalue.pageUrl !== window.location.href を不一致条件にし(L858)、保存側も pageUrl: window.location.href を書く(L828)。
  • location.href は hash(#section)・query(?utm=...)まで含むため、保存後に同一ページ内のアンカーナビ・クエリ付与・正規化リダイレクトが起きると、次回 init で envelope 不一致と判定され復元されない。
  • さらにその後の任意のフィードバック操作で persistFeedbackList() が新しい pageUrl の envelope で旧データを上書きし、アクセス不能化する(silent data loss)。同一セッション中(再読込なし)は in-memory state が残るため、再 init を跨いだ次回ロードで顕在化。
  • projectId/demoId で既にスコープ済みなので、URL 比較は過剰に厳格。

修正方針

  • 比較キーを正規化する(origin + pathname のみ、最低でも hash を無視)。

受け入れ条件

  • hash/query 変化後の再読込でフィードバックが復元される。

出典: 全体監査(2026-06-20)で検出し、独立検証で実在確定(Medium・silent data loss / confidence high)。

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions