| 2026-07-15 |
|
[fix] 自動校正経路の Mat リークを解消し v1.7 のメモリ修正を内包
...
ColorCorrector.CalcTcc と CameraBase.CalcTcc で未解放だった Mat を確実に破棄する.
- CalcTcc: 再校正時に旧 _convRGB2SRGB を Dispose してから Clear,中間 Mat
(convRGB2XYZ・convOld・tccSrgb・convSrgb2Xyz)を using で解放.保持する
convRGB2SRGB と引数 tccRgb は解放しない
- CameraBase.CalcTcc: tccRgb・imgRois を using で解放(所有権は生成元)
- ColorCorrectorTests: 再校正で旧行列破棄・中間Mat解放・入力保持を検証するテストを追加
上流 v1.7 が校正経路で塞いだ Mat リークをリファクタ抽出時に取りこぼしていた分の補完.
挙動(保存 CSV・音・メッセージ)は不変.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
rintoHasegawa
committed
22 hours ago
|
| 2026-07-14 |
|
|
|
[update] CLAUDE.md と README.md を現状に整合(提出向けの入口整備)
...
- CLAUDE.md: プレースホルダだったプロジェクト名・概要を記入.空だった docs 索引
(03_PLAN〜06_TEST・docs 直下)を実在ファイルで充填.必須ルール節に GUIDE_01 の
規約整備フェーズ成果(testing / error-handling rule)への案内と要点,rule 未収載の
固有不変条件(プレビュー Bitmap 所有権・診断機能の Release 非含有)を追記
- README.md: 上流時代の内容を現状に更新.v1.6/v1.7 からの変更(変更まとめ・TEST_02)
への導線を新設し,開発環境(.NET 4.8 / x64 必須 / カメラ SDK)と ENV ドキュメントへの
参照を整備
|
[clean] 提出前のドキュメント監査で実態乖離と連番重複を修正
...
- ENV_05 のディレクトリ構成を実態に整合(UI の MEMMONITOR/WHITEBOARD 系 partial・
Utils/BitmapUtil・Tests の計測ベンチ/テスト 7 ファイルを追記)
- TEST 連番の重複を解消: TEST_01_メモリ修正効果計測 → TEST_03 に改番し,
参照 6 箇所(ENV_06・PLAN_03・PLAN_04・TEST_02・PROGRESS・BitmapUtilTests コメント)を更新
(TEST_01_テスト仕様と SPEC_03 の外部参照は対象外)
- docs 全体のリンク切れ検証は ALL-OK(progress-log.md の GUIDE_03 前方参照は
テンプレ由来・team モード用のため残置)
|
[add] v1.6/v1.7 からの変更まとめ(差分確認付き)を追加
...
上流作者向けに,各変更を「状況 / 変更 / 効果 / 差分で確認」の 1 まとまりで俯瞰できる
サマリを追加.クラッシュ修正・メモリリーク修正・性能改善を主軸に,構造・機能は概要.
- 各変更に該当ファイルの相対リンクと VS Code 左右差分コマンド
(git difftool -y <SHA>^ <SHA> -- <path>)を併記.設定手順・Timeline 代替も記載
- machine 依存の埋め込みリンクは持たず,リポジトリがあればどの環境でも動く
- 全 difftool 対象は実差分ありを機械検証済み(Lucam 経路は Form1/IScam に修正)
|
[remove] 自動検出以前の手動校正デッドコードとコメント跡を削除
...
自動チャート検出の導入で不要化した手動校正の残骸を除去(挙動不変)。
- Form1 の非表示ボタン btnCalib(Visible=false)+空ハンドラ btnCalib_Click を削除
- Lucam.Calibration()(唯一の参照が上記コメント行。_calibrating を立てるだけで
現行の _chartMasks 前提フローと非整合=そのままでは動作しない残骸)を削除
- IScam のコメントアウト行(LoadShowSaveDeviceState)を削除
- FrameSnapSink/_snapSink は撮影シンクとして使用中のため残置
|
[remove] 完了済み計画(PLAN_01/02)と対比用 LEAKY_REPRO フラグを撤去
...
- 完了済みで PROGRESS.md に要点が残る PLAN_01(リファクタリング)・PLAN_02(バグ修正)を
削除し,削除ファイルへの実リンク・ファイル名参照を整理(歴史的言及は残置)
- LEAKY_REPRO フラグとリーク分岐(ColorCorrector.ConvertImage)・観測窓のモード表示
(lblMode・Designer 含む)を撤去,ENV_06/PLAN_04 の記述も削除
- 標準構成では未定義のデッドコード除去のため挙動不変(ビルド成功・色補正テスト全パス)
- 3 版性能評価と本整理を PROGRESS.md/CLAUDE.md 進捗行に記録
|
|
|
[add] v1.7 の性能評価計測結果を追加し 3 版比較を完成
...
bench/v1.7(v1.6 の移植を cherry-pick)で基準プロトコルを再現した結果を TEST_02 に追記.
3 版(v1.6/v1.7/現行)の比較表と切り分けの結論を記載.PLAN_04 の残件を完了に更新.
- v1.7 プレビュー性能は v1.6 と数値一致(copy ~45ms・callback ~17・副モニタ ~3fps)
=プレビュー経路が v1.7 まで未修正だった裏付け
- メモリ包絡線 v1.6 ~890MB → v1.7 ~700MB(保存経路改善)→ 現行 ~200MB 平坦(プレビュー修正)
- 切り分け: 保存経路は v1.6→v1.7,プレビュー経路は v1.7→現行の 2 段階改善を定量化
|
| 2026-07-13 |
[add] v1.6 の性能評価計測結果を TEST_02 に追記
...
bench/v1.6(v1.6 タグに観測フックのみ移植)で基準プロトコルを再現した計測結果を追加.
現行との 3 版比較表を作成(v1.7 は移植後に追記).
- メモリ: v1.6 は ~200→834MB へ上昇し 140〜890MB で振動(リーク).現行は ~200MB 水平
- コピー: v1.6 sub_copy ~46ms(new Bitmap)vs 現行 ~2.6ms(FastClone)=約18倍
- callback_fps: v1.6 ~17 vs 現行 ~30/副モニタ FPS: v1.6 ~3(飢餓)vs 現行 ~19
- v1.6 は main_copy=0(本モニタ非コピー)でコピーコストは sub_copy に現れる旨を明記
- 旧版 bench は観測窓を専用 UI スレッドで開く旨を計測条件に明記
|
[add] 性能評価計測の基盤(プレビュー計測グラフの FPS オーバーレイ)と計測計画・結果ドキュメント
...
MemoryMonitorForm のグラフを左軸メモリ+右軸 FPS の 2 軸化し,本モニタ/副モニタの
実描画 FPS を折れ線で重ねて表示(WorkingSet はグラフから外し CSV には維持).凡例を
グラフ下部へ横並び配置し,起動時に本体(左)と観測窓(右)を作業領域いっぱいに自動整列.
PLAN_04 の計測シナリオを基準プロトコル(単発撮影の繰り返し・現行 perf_current.csv の
秒数に全版を合わせる)へ更新.現行バージョンの計測結果を TEST_02 に整理し,基準データ
perf_current.csv を追加.
|
|
|
|
|
|
|
|
|
|
|
|
|
[add] ビルド構成とビルドフラグのドキュメントを追加
...
ソリューション構成(Debug|x64 / Release|x64)と条件コンパイルシンボル
(MEMMONITOR / WHITEBOARD / LEAKY_REPRO / DEBUG / TRACE)の目的・定義構成・
Release 含有・出し分け対象・ビルド方法を docs/02_ENV/ENV_04 にまとめた.
あわせて CLAUDE.md の 02_ENV 節に ENV_01〜04 のポインタを掲載.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
| 2026-07-11 |
|
[add] BitmapUtil.FastClone の仕様ベーステストを追加
...
/implement Phase 2 の成果.FastClone に NUnit テストを追加し,独立コピー・
src 非破壊・24/32bpp の画素一致・ストライドパディング・Indexed フォールバック
(色は等価だが PixelFormat は 32bppArgb に変換されうる)・null→null を検証.
全 80 件成功(MSBuild + vstest で確認).
あわせて BitmapUtil の Indexed フォールバックの doc を補足(ロジック不変)し,
テスト方針(自動テストは FastClone のみ担保・UI/並行系は実機 MEMMONITOR 計測で
検証)を CLAUDE.md / docs/PROGRESS.md に記録.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
[update] プレビューのフレームコピーを LockBits で高速化
...
毎フレームの new Bitmap(bmp)(GDI+ DrawImage 経路・32bppARGB 変換で ~25ms)を,
同一 PixelFormat の生画素を LockBits + RtlMoveMemory で行単位コピーする
BitmapUtil.FastClone に置換.コールバックスレッドのコピー律速を解消した.
実機計測(MEMMONITOR): コピー ~25ms→~2.5ms(約10倍),callback_fps ~16→~30,
両プレビュー描画 ~10→~20fps.色化け・クラッシュなし.
生成コピーは入力と独立し UI スレッドでのみ Dispose される所有権・スレッド安全性は
従来の new Bitmap(bmp) と同一で不変.src は ReadOnly ロックのみで非破壊.
インデックスカラー系は安全網として従来の GDI+ フルコピーにフォールバック.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
[fix] プレビューメモリリークと Lucam クロススレッド GDI クラッシュ・副モニタ描画飢餓を修正
...
PLAN_03 の原因1〜3(ShowImage のフルコピー Bitmap リーク・表示バッファの
取りこぼし未 Dispose・PreviewMonitor.UpdateImage の上書き前未 Dispose)を修正.
実機検証で発覚した派生2件も解決:
- Lucam の二重バッファをコールバックスレッドで Dispose する経路が UI の描画と
衝突するクロススレッド GDI クラッシュ → 表示バッファを UI 所有コピーに統一し
入力 Bitmap の所有権を呼び出し側に統一(IScam は ToBitmap を using で破棄)
- 校正後にコールバックスレッドが高速化し毎フレーム Invalidate が飢餓を招く
副モニタ描画崩壊 → 両プレビューを自ペースの UI タイマー駆動に統一し
コールバックスレッドからの Invalidate を全廃
あわせて MEMMONITOR 限定のプレビュー計測(各段 FPS・コピー/描画時間・
GDI/handle 数・画像サイズ・校正/撮影/F9 イベントの CSV 化)を追加(Release 無影響)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
| 2026-06-30 |
|
|
|
| 2026-06-23 |
[add] 連続撮影フロー再現のメモリ計測ベンチと計測結果レポートを追加
...
カメラ実機なしで連続撮影フロー(生産者消費者+多チャンネル+フレームバッファ)を合成フレームで構造再現する ContinuousShootMemoryBenchmark を追加。リーク再現と計測ユーティリティを MemBenchSupport に共有化。修正前後の計測結果を docs/06_TEST/TEST_01 に記録。本番コードは無変更。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
[add] PLAN_02 メモリ修正の効果検証ツール(メモリ観測ウィンドウ・リーク再現モード)を追加
...
MEMMONITOR 記号で TIASshot 本体にライブメモリ観測ウィンドウを統合(起動時自動オープン・Timer サンプリングの折れ線グラフ+CSV)。LEAKY_REPRO 記号で ConvertImage を修正前(中間 Mat 未解放)に切替可能化し対比録画できるようにした。いずれも既定で Release 除外、通常ビルドの挙動は不変。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
| 2026-06-18 |
|
|
|
|
|
|
|
| 2026-06-07 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Merge pull request #7 from rintoHasegawa/chore/setup-test-project
...
[add] テストプロジェクト(TIASshot.Tests, NUnit)を立ち上げ
rintoHasegawa
authored
on 7 Jun
GitHub
committed
on 7 Jun
|
|
|
Merge pull request #6 from rintoHasegawa/docs/test-policy-guide
...
[add] 規約整備: テスト方針(GUIDE_08)・エラーハンドリング方針(GUIDE_09)
rintoHasegawa
authored
on 7 Jun
GitHub
committed
on 7 Jun
|
|
|
|
|
Merge pull request #5 from rintoHasegawa/fix/shots-thread-safety
...
[fix] _shots をスレッドセーフ化し連続撮影クラッシュを修正(PLAN_02 優先度1)
rintoHasegawa
authored
on 7 Jun
GitHub
committed
on 7 Jun
|
|
|
Merge pull request #4 from rintoHasegawa/refactor/camera-template-method
...
[clean] IScam/Lucam の重複処理を CameraBase に集約(Phase 5)+ PLAN_02 整備
rintoHasegawa
authored
on 7 Jun
GitHub
committed
on 7 Jun
|
|
|
|
|
Merge pull request #3 from rintoHasegawa/refactor/code-cleanup
...
[clean] CameraBase のリファクタリング(責務分離 Phase 1〜4)
rintoHasegawa
authored
on 7 Jun
GitHub
committed
on 7 Jun
|
|
|
| 2026-06-06 |
[clean] ファイルI/O・サウンドをIoUtilクラスに分離(リファクタリング Phase 4)
...
- Utils/IoUtil.cs を新設し CSV 読み書き・保存フォルダ生成・撮影情報出力・サウンド再生を集約
- CameraBase は IoUtil へ委譲(SetSaveFolder/WriteInfo は派生クラス共有状態のため薄いラッパーで保持)
- PLAN_01 の Phase4 にラッパー保持の方針を注記
- 抽出ロジックは元コードと一致(挙動不変)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
[clean] チャート検出処理を ChartDetector クラスに分離(リファクタリング Phase 3)
...
- ChartDetection/ChartDetector.cs を新設し ARマーカー検出・固定判定・ホモグラフィ・マスク生成を集約
- CameraBase は DetectChart を委譲し,マスクは戻り値で受け取る(フォーム通知はデリゲート注入)
- 検出系フィールドと未使用 using を CameraBase から除去
- 検出ロジックは元コードと文字単位で一致(挙動不変)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
[clean] 色補正処理を ColorCorrector クラスに分離(リファクタリング Phase 2)
...
- ColorCorrection/ColorCorrector.cs を新設し TCC 変換行列計算・色変換を集約
- CameraBase は ColorCorrector を保持して委譲(CSV 保存はデリゲートで注入)
- UpdateRate/GetRatio は色補正と別関心事のため CameraBase に保持
- PLAN_01 のフィールド一覧を実態に合わせ更新(UpdateRate を除外)
- 計算ロジックは元コードと文字単位で一致(挙動不変)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
|
|
Merge pull request #2 from rintoHasegawa/docs/fix-category-numbering
...
[clean] docs カテゴリ番号を命名規則に整合・基準データを gitignore
rintoHasegawa
authored
on 6 Jun
GitHub
committed
on 6 Jun
|
|
|
| 2026-06-05 |
[clean] docs カテゴリ番号を命名規則(GUIDE_03)に整合
...
- 05_PLAN → 03_PLAN,03_SPEC → 04_SPEC,04_TECH → 05_TECH にリネーム
- ENV_02 ディレクトリ構成図を新番号に更新し PLAN/TEST を追記
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Merge pull request #1 from rintoHasegawa/chore/sync-template
...
[update] テンプレートを最新化(エージェントチーム・コマンド・GUIDE_05 を追加)
rintoHasegawa
authored
on 5 Jun
GitHub
committed
on 5 Jun
|
[update] テンプレートを最新化(エージェントチーム・コマンド・GUIDE_05 を追加)
...
- .claude/agents(coder/refactorer/tester)と .claude/commands(commit/implement/setup)を追加
- restrict_repo_access.py フック・settings.json・template-sync-sha を追加
- GUIDE_05 エージェント運用ルール・docs/PROGRESS.md・.gitattributes を追加
- CLAUDE.md と GUIDE_01 を共通ルール更新に追従(進捗二段構成・/commit 運用・05_TECH/06_TEST)
- .gitignore に .claude/commit-context.md を追記(固有ルールは保持)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
|
|
| 2026-03-31 |
|
| 2026-03-30 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2026-03-22 |
|
|
|
|
|
|
|