Skip to content

fix: 財務画面から共通原本を安全に登録して選択する - #64

Merged
haji84 merged 4 commits into
mainfrom
codex/finance-original-upload-20261006
Oct 7, 2026
Merged

haji84 merged 4 commits into
mainfrom
codex/finance-original-upload-20261006

Conversation

@haji84

@haji84 haji84 commented Oct 6, 2026 •

Copy link
Copy Markdown
Owner

目的と変更範囲

財務画面の根拠原本pickerから、施設や登録済みDocumentがなくても原本を登録して選択できるようにします。

  • 既存 /documents/upload と共通Document保存を再利用。新しいbackend/store/migrationなし。
  • document.create/readを確認し、原本のfilename/SHA/リンクを表示、入力済み草案を保持。財務の正式反映は既存Human Gateのまま。
  • PR62/main707ccddのSharedSession、financeBind/financeAction、同期preflight lock、control ownershipを保持し、直接unlockで既存操作を迂回しない。
  • 既知のupload成功後に検証が失敗しても重複POSTしない。未検証の応答をDOMへ出さず、同一ユーザーの再ログイン・権限取消・遅延応答・画面差替えも拒否。
  • 配布機構PR#63とは独立した5ファイルだけの変更。業務承認ロジックや他モジュールのruntimeを変更しません。

現在の検証

head:7c399cdd75ff89b1b1130f11acf9b8c5b6808908 / CI37550941548 全job成功。

  • 実PostgreSQL/backend: 705 passed /40 skipped、331.43秒。Migration parser・JavaScript syntax成功。
  • 実Chromium: 30 passed、267.34秒(finance21ケース+既存9ケース、learning含む)。
  • 最終合成ブラウザ証跡: SHA256 6bf834735ce4cd2e6b66030a27047abb2b87074b3e857e1967eee4956021504c。70ファイルをdownload/hash照合済み。first-use契約草案詳細の画面を目視確認、全観測操作settled、privacy watch違反0。
  • ローカル最終aggregate:655 passed /90 skipped /287 warnings、172.57秒、exit0。
  • 50対象テスト成功、finance Chromium 21ケースを収集。実SharedSessionとテスト観測機構の独立レビュー済み。
  • 最新2ファイルはテストのみ。clickやPOSTヘッダーを操作完了とみなさず、元のfinanceAction promiseの完了を観測。待機中も旧form/遅延Documentが一瞬でも現れないことを監視します。原則・権限・runtimeガードは変更していません。
  • 実行上限30秒は実操作の完了待ちにだけ使用し、固定sleepや強制guard呼出しはありません。DOM assertionは元の条件を維持。
  • 各first-useケースの通信開始/応答/完了、操作時間、待機表示・disabled状態をsynthetic artifactへ保存。秘密header/bodyは記録しません。

先行CIの診断記録

  • 37545094195:backend697 passed /40 skipped、Chromium29 passed /1 failed。別userへの切替後、5秒内のmodal消去を確認できませんでした。
  • 37547018373:backend700 passed /40 skipped、Chromium29 passed /1 failed。session切替2ケースは通過しましたが、再表示操作がpendingのまま5秒内のエラー表示に到達しませんでした。旧草案の再表示は観測されていません。
  • 再表示は既存guardで約21本の逐次HTTP処理を含みます。最終CIの実測値は下記。旧2runは十分な通信traceがなく、個々の初期失敗の原因を断定しません。

Draftを維持しレビュー待ち。最終headの実PostgreSQL/backend・Chromium gateは通過しました。merge/deployは行っていません。配布PR63とは別で、全AIOS完成・本番導入を宣言しません。

実測に基づくテストfixture訂正

37549456099 はChromium25 passed /5 failed。traceで次を区別しました。

  • 検索前と同じ件数表示を完了と誤認し、save観測に前の検索を含めていました。検索の実操作完了を待ってからsaveを観測します。
  • file-change認証中でdisabledのボタンへraw clickを送り、2回目upload自体が開始しないテストでした。enabled確認後に連打し、重複防止assertionは維持します。
  • 最後のtimes:1 route失効直後に次のauth/contextが停止。CI Chromium153に一致するPlaywright既知問題41802と155以降の回帰有効化を確認。手動の一回限りhandlerを残して後続はfallbackし、interception無効化を避けます。実API・権限検証は保持。最終CIの全30browserケースで成功しました。
  • learning画面の初期認証failureは別件で、このPRのruntimeとは独立しています。最終CIでは通過しましたが、このPRでlearningの原因修正を行ったとは主張しません。

同CIの通常open/reopen26操作は中央値273ms/最大1.204秒、契約入力画面は中央値390ms、save274ms。合成CIの計測値で本番性能保証ではありません。再表示中はblankメッセージ+disabled controls、uploadには進行説明があります。

最終headの操作時間(合成CIのみ)

  • open/reopen27操作:中央値157.2ms、最大239.2ms。
  • 契約入力画面24操作:中央値256ms、最大482.4ms。
  • upload18操作:中央値267.5ms、最大1031.1ms(意図的な遅延応答ケースも含む)。
  • save2操作:中央値176.7ms、最大232ms。検索1操作103ms。
  • 再表示中は操作ロックのみで専用loading文言はありません。upload中は進行説明を表示します。測定対象のruntimeは診断中変更しておらず、性能改善や本番性能保証を意味しません。

@haji84
haji84 marked this pull request as ready for review October 7, 2026 01:02
@haji84
haji84 merged commit 1dfb5cf into main Oct 7, 2026
2 checks passed
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