diff --git a/README.ja.md b/README.ja.md index ef2b641..dceac9a 100644 --- a/README.ja.md +++ b/README.ja.md @@ -1,3 +1,5 @@ +> **Public Beta お知らせ(2026年3月8日):** FlowMap は Public Beta 段階です。ライセンス検証は現在ローカル/開発用プレビューであり、本番向けサーバー側の強制検証は未実装です。 + # FlowMap > Swift コードの構造と呼び出し関係をグラフ分析するツールです。AI が生成したコード変更の検証に特に役立ちます。 @@ -6,8 +8,6 @@ [English](README.md) · [한국어](README.ko.md) -**ステータス: Public Beta** - ## FlowMap とは FlowMap は Swift コードを解析し、ファイル・型・関数・呼び出し関係をワークスペース全体のグラフとして構築し、VS Code 上で視覚的に探索できる開発者ツールです。 @@ -87,6 +87,9 @@ swift build -c release cd ../.. ``` +> 注: リプレイ/シナリオ検証スクリプトは `parsers/swift-ast/.build/debug/flowmap-swift-ast` を参照します。 +> これらを実行する場合は debug ビルドも一度必要です: `cd parsers/swift-ast && swift build -c debug`. + **4. VS Code 拡張をコンパイル** ```bash @@ -104,6 +107,10 @@ cd ../.. 4. コマンドパレットから **FlowMap: Analyze Workspace** を実行する(`Cmd+Shift+P`) 5. **FlowMap Graph** パネルを開く +### VSIX インストール版の実行 + +`.vsix` でインストールした場合は、`flowmap.binaryPath` にビルド済みエンジンのパス(例: `/path/to/FlowMap/target/debug/flowmap`)を設定してから **FlowMap: Analyze Workspace** を実行してください。 + ## 使い方 1. VS Code で Swift ワークスペースを開く @@ -161,16 +168,13 @@ Public Beta 詳細検証(`reports/public-beta-validation-detail.md`): ## ライセンス -FlowMap は source-available モデルで提供されています。 +FlowMap は現在 **Public Beta** 段階です。 -**Swift サポート** -- 個人・非商用利用: 無料 -- 商用 / チーム / 企業利用: ライセンスが必要 +最終的なライセンス条件(商用条件を含む)は、ベータ終了後に告知します。 -**他言語対応** -今後の追加言語サポートは、別売りの商用プラグインとして提供される可能性があります。 +それまでは著者がすべての権利を保持し、Public Beta の評価目的での利用のみ許可されます。 -商用ライセンスに関するお問い合わせは、こちらまでご連絡ください: adgk2349b@gmail.com +商用利用または再配布については: adgk2349b@gmail.com ## ロードマップ diff --git a/README.ko.md b/README.ko.md index 7b0199a..3c7ca9e 100644 --- a/README.ko.md +++ b/README.ko.md @@ -1,3 +1,5 @@ +> **퍼블릭 베타 공지 (2026년 3월 8일):** FlowMap은 퍼블릭 베타 단계입니다. 라이선스 검증은 현재 로컬/개발용 프리뷰이며, 프로덕션 서버 강제 검증은 아직 구현되지 않았습니다. + # FlowMap > Swift 코드의 구조와 호출 관계를 그래프로 분석하는 도구입니다. AI가 생성한 코드 변경을 검증할 때 특히 유용합니다. @@ -6,8 +8,6 @@ [English](README.md) · [日本語](README.ja.md) -**상태: Public Beta** - ## FlowMap이란? FlowMap은 Swift 코드를 파싱해 파일, 타입, 함수, 호출 관계를 워크스페이스 단위로 그래프화하고, VS Code에서 시각적으로 탐색할 수 있게 해주는 개발 도구입니다. @@ -87,6 +87,9 @@ swift build -c release cd ../.. ``` +> 참고: 리플레이/시나리오 검증 스크립트는 `parsers/swift-ast/.build/debug/flowmap-swift-ast` 경로를 사용합니다. +> 해당 스크립트를 실행할 경우 debug 빌드도 1회 필요합니다: `cd parsers/swift-ast && swift build -c debug`. + **4. VS Code 확장 컴파일** ```bash @@ -104,6 +107,10 @@ cd ../.. 4. 커맨드 팔레트에서 **FlowMap: Analyze Workspace**를 실행합니다 (`Cmd+Shift+P`) 5. **FlowMap Graph** 패널을 엽니다 +### VSIX 설치 버전 실행 + +`.vsix`로 설치한 경우 `flowmap.binaryPath`를 빌드된 엔진 경로(예: `/path/to/FlowMap/target/debug/flowmap`)로 설정한 뒤 **FlowMap: Analyze Workspace**를 실행하세요. + ## 사용 방법 1. VS Code에서 Swift 워크스페이스를 엽니다 @@ -161,16 +168,13 @@ node scripts/run_commit_replay.mjs \ ## 라이선스 -FlowMap은 source-available 방식으로 제공됩니다. +FlowMap은 현재 **퍼블릭 베타** 단계입니다. -**Swift 지원** -- 개인 및 비상업적 사용: 무료 -- 상업적 / 팀 / 기업 사용: 라이선스 필요 +최종 라이선스 조건(상업용 조건 포함)은 베타 종료 후 공지됩니다. -**추가 언어** -향후 추가 언어 지원은 별도 상용 플러그인 형태로 제공될 수 있습니다. +그 전까지는 작성자가 모든 권리를 보유하며, 퍼블릭 베타 평가 목적 사용만 허용됩니다. -상업용 라이선스 문의: adgk2349b@gmail.com +상업적 사용 또는 재배포 관련 문의: adgk2349b@gmail.com ## 로드맵 diff --git a/README.md b/README.md index 3487efd..66e7b79 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +> **PUBLIC BETA NOTICE (March 8, 2026):** FlowMap is in public beta. Licensing is currently local/dev-only preview (no production server-side entitlement enforcement yet). + # FlowMap > Swift code graph and impact analysis tool — understand and verify code structure, especially when reviewing AI-generated changes. @@ -6,8 +8,6 @@ [한국어](README.ko.md) · [日本語](README.ja.md) -**Status: Public Beta** - ## What is FlowMap? FlowMap parses Swift code, builds a workspace-level graph of files, types, functions, and call relationships, and visualizes that graph inside VS Code. @@ -87,6 +87,9 @@ swift build -c release cd ../.. ``` +> Note: replay/scenario validation scripts look for the parser binary at `parsers/swift-ast/.build/debug/flowmap-swift-ast`. +> If you run those scripts, also build debug once: `cd parsers/swift-ast && swift build -c debug`. + **4. Compile the VS Code extension** ```bash @@ -104,6 +107,10 @@ cd ../.. 4. Run **FlowMap: Analyze Workspace** from the command palette (`Cmd+Shift+P`) 5. Open the **FlowMap Graph** panel +### Run from VSIX (installed extension) + +If you install FlowMap via `.vsix`, set `flowmap.binaryPath` to your built engine binary path (for example: `/path/to/FlowMap/target/debug/flowmap`), then run **FlowMap: Analyze Workspace**. + ## Usage 1. Open a Swift workspace in VS Code @@ -161,16 +168,13 @@ Detailed public beta validation (`reports/public-beta-validation-detail.md`): ## License -FlowMap is source-available. +FlowMap is currently in **public beta**. -**Swift support** -- Personal and non-commercial use: free -- Commercial, team, or company use: a license is required +Final licensing terms (including commercial terms) will be announced after the beta period. -**Other languages** -Additional language support may be provided as separate commercial plugins in the future. +Until then, all rights are reserved by the author, except that evaluation use for the public beta is permitted. -For commercial licensing inquiries, contact: adgk2349b@gmail.com +For commercial use or redistribution, please contact: adgk2349b@gmail.com ## Roadmap diff --git a/editor/vscode/.vscodeignore b/editor/vscode/.vscodeignore new file mode 100644 index 0000000..339bc4a --- /dev/null +++ b/editor/vscode/.vscodeignore @@ -0,0 +1,8 @@ +# Keep package minimal for release VSIX +**/* + +!package.json +!LICENSE +!out/** +!webview/** +!node_modules/cytoscape/** diff --git a/editor/vscode/LICENSE b/editor/vscode/LICENSE new file mode 100644 index 0000000..c436a1b --- /dev/null +++ b/editor/vscode/LICENSE @@ -0,0 +1,12 @@ +Copyright (c) 2026 Seungmin Lee +All rights reserved. + +FlowMap VS Code extension is currently distributed for public beta evaluation. + +Until final licensing terms are announced after the public beta period: +- all rights are reserved by the author; +- evaluation use for the public beta is permitted; +- commercial use and redistribution require prior written permission. + +For commercial use or redistribution inquiries: +adgk2349b@gmail.com diff --git a/editor/vscode/package.json b/editor/vscode/package.json index 4ca2ffd..9dc08b4 100644 --- a/editor/vscode/package.json +++ b/editor/vscode/package.json @@ -3,6 +3,10 @@ "displayName": "FlowMap", "description": "Call-graph visualization for AI-generated Swift code", "version": "0.1.0", + "repository": { + "type": "git", + "url": "https://github.com/adgk2349/FlowMap.git" + }, "engines": { "vscode": "^1.85.0" }, diff --git a/reports/commit-replay-flowmap-20.json b/reports/commit-replay-flowmap-20.json new file mode 100644 index 0000000..0e745b5 --- /dev/null +++ b/reports/commit-replay-flowmap-20.json @@ -0,0 +1,501 @@ +{ + "created_at": "2026-03-07T07:32:22.649Z", + "mode": "commit-replay", + "config": { + "repo": "/Users/seungminlee/Desktop/Development/FlowMap", + "rev": "HEAD", + "count": 20, + "strict_swift": false, + "keep_temp": false, + "report_path": "/Users/seungminlee/Desktop/Development/FlowMap/reports/commit-replay-flowmap-20.json" + }, + "binaries": { + "flowmap": "/Users/seungminlee/Desktop/Development/FlowMap/target/debug/flowmap", + "parser": "/Users/seungminlee/Desktop/Development/FlowMap/parsers/swift-ast/.build/debug/flowmap-swift-ast" + }, + "summary": { + "total_pairs": 19, + "pass_pairs": 19, + "warn_pairs": 0, + "failed_pairs": 0, + "error_pairs": 0, + "swift_pairs": 2, + "non_swift_pairs": 17, + "confusion": { + "tp": 2, + "tn": 17, + "fp": 0, + "fn": 0 + }, + "non_swift_fp_rate": 0, + "swift_detection_rate": 1, + "gate": { + "max_non_swift_fp_rate": 0, + "max_errors": 0, + "strict_swift_required": false + }, + "gate_passed": true + }, + "results": [ + { + "prev": "8c2a40bf6e3d5b61e8bef0a9de170d31210513f4", + "curr": "6d9c2e2d9e71987c65024e47b9294d38ffbdb233", + "commit": { + "hash": "6d9c2e2d9e71987c65024e47b9294d38ffbdb233", + "short": "6d9c2e2", + "subject": "PR8.6 (1/2): Spacing constants + strict file-detail aligned layout", + "author": "adgk2349", + "date": "2026-03-07T02:03:52+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "6d9c2e2d9e71987c65024e47b9294d38ffbdb233", + "curr": "b9729d291fff4835a3ac4a3308ef84f7bc448e36", + "commit": { + "hash": "b9729d291fff4835a3ac4a3308ef84f7bc448e36", + "short": "b9729d2", + "subject": "PR8.6 (2/2): Calls mode — COMPONENT_GAP + stronger cose spacing", + "author": "adgk2349", + "date": "2026-03-07T02:05:23+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "b9729d291fff4835a3ac4a3308ef84f7bc448e36", + "curr": "6e619f7d1c5d60ff5ef56f3ea4d18f2ff6c32cfb", + "commit": { + "hash": "6e619f7d1c5d60ff5ef56f3ea4d18f2ff6c32cfb", + "short": "6e619f7", + "subject": "PR8.7: Calls mode redesign — component panels with normalized aligned layout", + "author": "adgk2349", + "date": "2026-03-07T05:44:55+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "6e619f7d1c5d60ff5ef56f3ea4d18f2ff6c32cfb", + "curr": "f0b947dac70bb3705bee1947273627a278c6bd57", + "commit": { + "hash": "f0b947dac70bb3705bee1947273627a278c6bd57", + "short": "f0b947d", + "subject": "Merge pull request #11 from adgk2349/flowmap-pr8-7", + "author": "방구석_코드스미스", + "date": "2026-03-07T06:08:50+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "f0b947dac70bb3705bee1947273627a278c6bd57", + "curr": "d7d22e80514c57238a602615a10a469f28b2dc56", + "commit": { + "hash": "d7d22e80514c57238a602615a10a469f28b2dc56", + "short": "d7d22e8", + "subject": "PR8.8: Calls layout fix — compact vertical stacking instead of wide horizontal rows", + "author": "adgk2349", + "date": "2026-03-07T06:14:29+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "d7d22e80514c57238a602615a10a469f28b2dc56", + "curr": "49fd7315c2575300686b89f68761b4a12711850c", + "commit": { + "hash": "49fd7315c2575300686b89f68761b4a12711850c", + "short": "49fd731", + "subject": "PR8.9: Calls mode irregular dense packing (skyline bottom-left algorithm)", + "author": "adgk2349", + "date": "2026-03-07T06:35:11+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "49fd7315c2575300686b89f68761b4a12711850c", + "curr": "e7204df302d1ddce494c9a93096a94367687a511", + "commit": { + "hash": "e7204df302d1ddce494c9a93096a94367687a511", + "short": "e7204df", + "subject": "Merge pull request #12 from adgk2349/flowmap-pr8-9", + "author": "방구석_코드스미스", + "date": "2026-03-07T10:56:47+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "e7204df302d1ddce494c9a93096a94367687a511", + "curr": "1c99ae9107155b4ef2d57e10177a719d0fd73b09", + "commit": { + "hash": "1c99ae9107155b4ef2d57e10177a719d0fd73b09", + "short": "1c99ae9", + "subject": "PR8.9.1: Tighten calls packing density (smaller tile gaps + tighter fit)", + "author": "adgk2349", + "date": "2026-03-07T11:01:44+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "1c99ae9107155b4ef2d57e10177a719d0fd73b09", + "curr": "30c41b3e6f796ca60db7920f9e1e79bebbd7ab77", + "commit": { + "hash": "30c41b3e6f796ca60db7920f9e1e79bebbd7ab77", + "short": "30c41b3", + "subject": "Merge pull request #14 from adgk2349/flowmap-pr8-9-1", + "author": "방구석_코드스미스", + "date": "2026-03-07T11:41:30+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "30c41b3e6f796ca60db7920f9e1e79bebbd7ab77", + "curr": "a6ffa69dfea240f9975e97d9400c61b13df7f156", + "commit": { + "hash": "a6ffa69dfea240f9975e97d9400c61b13df7f156", + "short": "a6ffa69", + "subject": "PR9: Swift cross-file calls — workspace-wide symbol linking, conservative matching", + "author": "adgk2349", + "date": "2026-03-07T11:28:15+09:00" + }, + "swift_changed": true, + "swift_files": [ + "parsers/swift-ast/Sources/FlowMapSwiftAST/main.swift" + ], + "engine_changed": true, + "expected_changed": null, + "status": "pass", + "counts": { + "added_nodes": 1, + "removed_nodes": 0, + "changed_nodes": 11, + "added_edges": 1, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "a6ffa69dfea240f9975e97d9400c61b13df7f156", + "curr": "f98d12a81d5d17d8e29cd6aff470efbdde4f62e3", + "commit": { + "hash": "f98d12a81d5d17d8e29cd6aff470efbdde4f62e3", + "short": "f98d12a", + "subject": "Merge pull request #13 from adgk2349/flowmap-pr9", + "author": "방구석_코드스미스", + "date": "2026-03-07T11:47:54+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "f98d12a81d5d17d8e29cd6aff470efbdde4f62e3", + "curr": "3e89fbfe3fede24aab4bc1aad4135b5a88432be8", + "commit": { + "hash": "3e89fbfe3fede24aab4bc1aad4135b5a88432be8", + "short": "3e89fbf", + "subject": "Apply code review findings & CI optimizations", + "author": "adgk2349", + "date": "2026-03-07T11:53:02+09:00" + }, + "swift_changed": true, + "swift_files": [ + "parsers/swift-ast/Sources/FlowMapSwiftAST/main.swift" + ], + "engine_changed": true, + "expected_changed": null, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 2, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "3e89fbfe3fede24aab4bc1aad4135b5a88432be8", + "curr": "f2e54406651eec4b505c339639e3959a0519e22c", + "commit": { + "hash": "f2e54406651eec4b505c339639e3959a0519e22c", + "short": "f2e5440", + "subject": "docs: add public READMEs, localize to ko/ja, hide internal docs", + "author": "adgk2349", + "date": "2026-03-07T12:10:46+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "f2e54406651eec4b505c339639e3959a0519e22c", + "curr": "c6b57851550dca5ec9b4e53e84e8fc4b4385c1f3", + "commit": { + "hash": "c6b57851550dca5ec9b4e53e84e8fc4b4385c1f3", + "short": "c6b5785", + "subject": "docs: polish public README set (en/ko/ja) for release", + "author": "adgk2349", + "date": "2026-03-07T12:19:15+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "c6b57851550dca5ec9b4e53e84e8fc4b4385c1f3", + "curr": "55c12993dc9206374212c9e34232eeec75287039", + "commit": { + "hash": "55c12993dc9206374212c9e34232eeec75287039", + "short": "55c1299", + "subject": "Merge pull request #15 from adgk2349/flowmap-pr9", + "author": "방구석_코드스미스", + "date": "2026-03-07T12:27:21+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "55c12993dc9206374212c9e34232eeec75287039", + "curr": "945fe158ddea4400c7a785b6736837c7e967329d", + "commit": { + "hash": "945fe158ddea4400c7a785b6736837c7e967329d", + "short": "945fe15", + "subject": "PR8.10: Fix file-detail blank view — debug selectors + force visible detail nodes", + "author": "adgk2349", + "date": "2026-03-07T12:57:18+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "945fe158ddea4400c7a785b6736837c7e967329d", + "curr": "7fbe572eebd94d6b951477054ff31c10cd020a35", + "commit": { + "hash": "7fbe572eebd94d6b951477054ff31c10cd020a35", + "short": "7fbe572", + "subject": "Merge pull request #16 from adgk2349/flowmap-pr8-10-file-detail-fix", + "author": "방구석_코드스미스", + "date": "2026-03-07T13:35:04+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "7fbe572eebd94d6b951477054ff31c10cd020a35", + "curr": "82659c290404532e3316387de5baac016356eecb", + "commit": { + "hash": "82659c290404532e3316387de5baac016356eecb", + "short": "82659c2", + "subject": "docs: Update screenshots with latest UI", + "author": "adgk2349", + "date": "2026-03-07T13:38:45+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "82659c290404532e3316387de5baac016356eecb", + "curr": "b0d8a3abc4d1228faa5cc915d5ec50057f54f07d", + "commit": { + "hash": "b0d8a3abc4d1228faa5cc915d5ec50057f54f07d", + "short": "b0d8a3a", + "subject": "docs: Update contact information", + "author": "adgk2349", + "date": "2026-03-07T13:45:46+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + } + ] +} diff --git a/reports/commit-replay-testproject-strict.json b/reports/commit-replay-testproject-strict.json new file mode 100644 index 0000000..b57ad00 --- /dev/null +++ b/reports/commit-replay-testproject-strict.json @@ -0,0 +1,93 @@ +{ + "created_at": "2026-03-07T07:31:22.022Z", + "mode": "commit-replay", + "config": { + "repo": "/Users/seungminlee/Desktop/Development/FlowMap/TestProject", + "rev": "HEAD", + "count": 3, + "strict_swift": true, + "keep_temp": false, + "report_path": "/Users/seungminlee/Desktop/Development/FlowMap/reports/commit-replay-testproject-strict.json" + }, + "binaries": { + "flowmap": "/Users/seungminlee/Desktop/Development/FlowMap/target/debug/flowmap", + "parser": "/Users/seungminlee/Desktop/Development/FlowMap/parsers/swift-ast/.build/debug/flowmap-swift-ast" + }, + "summary": { + "total_pairs": 2, + "pass_pairs": 2, + "warn_pairs": 0, + "failed_pairs": 0, + "error_pairs": 0, + "swift_pairs": 2, + "non_swift_pairs": 0, + "confusion": { + "tp": 2, + "tn": 0, + "fp": 0, + "fn": 0 + }, + "non_swift_fp_rate": 0, + "swift_detection_rate": 1, + "gate": { + "max_non_swift_fp_rate": 0, + "max_errors": 0, + "strict_swift_required": true + }, + "gate_passed": true + }, + "results": [ + { + "prev": "d37d1038bbd7a4ca3c2ede40a3a4031d360cd217", + "curr": "0badbd0efac1c12763d79a7bc1cd3ef0d29f3c9e", + "commit": { + "hash": "0badbd0efac1c12763d79a7bc1cd3ef0d29f3c9e", + "short": "0badbd0", + "subject": "Add and modify", + "author": "adgk2349", + "date": "2026-03-07T13:54:51+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Demo.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 5, + "removed_nodes": 2, + "changed_nodes": 4, + "added_edges": 8, + "removed_edges": 4, + "impact": 0 + } + }, + { + "prev": "0badbd0efac1c12763d79a7bc1cd3ef0d29f3c9e", + "curr": "b980404177c1516dadfffbf7a091b1949fbaeed8", + "commit": { + "hash": "b980404177c1516dadfffbf7a091b1949fbaeed8", + "short": "b980404", + "subject": "Fix typos", + "author": "adgk2349", + "date": "2026-03-07T14:23:04+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Demo.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 1, + "added_edges": 1, + "removed_edges": 0, + "impact": 2 + } + } + ] +} diff --git a/reports/commit-replay-testproject.json b/reports/commit-replay-testproject.json new file mode 100644 index 0000000..22d9b77 --- /dev/null +++ b/reports/commit-replay-testproject.json @@ -0,0 +1,93 @@ +{ + "created_at": "2026-03-07T07:31:50.161Z", + "mode": "commit-replay", + "config": { + "repo": "/Users/seungminlee/Desktop/Development/FlowMap/TestProject", + "rev": "HEAD", + "count": 3, + "strict_swift": false, + "keep_temp": false, + "report_path": "/Users/seungminlee/Desktop/Development/FlowMap/reports/commit-replay-testproject.json" + }, + "binaries": { + "flowmap": "/Users/seungminlee/Desktop/Development/FlowMap/target/debug/flowmap", + "parser": "/Users/seungminlee/Desktop/Development/FlowMap/parsers/swift-ast/.build/debug/flowmap-swift-ast" + }, + "summary": { + "total_pairs": 2, + "pass_pairs": 2, + "warn_pairs": 0, + "failed_pairs": 0, + "error_pairs": 0, + "swift_pairs": 2, + "non_swift_pairs": 0, + "confusion": { + "tp": 2, + "tn": 0, + "fp": 0, + "fn": 0 + }, + "non_swift_fp_rate": 0, + "swift_detection_rate": 1, + "gate": { + "max_non_swift_fp_rate": 0, + "max_errors": 0, + "strict_swift_required": false + }, + "gate_passed": true + }, + "results": [ + { + "prev": "d37d1038bbd7a4ca3c2ede40a3a4031d360cd217", + "curr": "0badbd0efac1c12763d79a7bc1cd3ef0d29f3c9e", + "commit": { + "hash": "0badbd0efac1c12763d79a7bc1cd3ef0d29f3c9e", + "short": "0badbd0", + "subject": "Add and modify", + "author": "adgk2349", + "date": "2026-03-07T13:54:51+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Demo.swift" + ], + "engine_changed": true, + "expected_changed": null, + "status": "pass", + "counts": { + "added_nodes": 5, + "removed_nodes": 2, + "changed_nodes": 4, + "added_edges": 8, + "removed_edges": 4, + "impact": 0 + } + }, + { + "prev": "0badbd0efac1c12763d79a7bc1cd3ef0d29f3c9e", + "curr": "b980404177c1516dadfffbf7a091b1949fbaeed8", + "commit": { + "hash": "b980404177c1516dadfffbf7a091b1949fbaeed8", + "short": "b980404", + "subject": "Fix typos", + "author": "adgk2349", + "date": "2026-03-07T14:23:04+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Demo.swift" + ], + "engine_changed": true, + "expected_changed": null, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 1, + "added_edges": 1, + "removed_edges": 0, + "impact": 2 + } + } + ] +} diff --git a/reports/replay-100.json b/reports/replay-100.json new file mode 100644 index 0000000..4b67e44 --- /dev/null +++ b/reports/replay-100.json @@ -0,0 +1,89 @@ +{ + "created_at": "2026-03-07T07:35:44.967Z", + "mode": "commit-replay", + "config": { + "repo": "/Users/seungminlee/Desktop/Development/드론소스코드/Drone Controller/Drone Controller", + "rev": "HEAD", + "count": 100, + "strict_swift": false, + "keep_temp": false, + "report_path": "/Users/seungminlee/Desktop/Development/FlowMap/reports/replay-100.json" + }, + "binaries": { + "flowmap": "/Users/seungminlee/Desktop/Development/FlowMap/target/debug/flowmap", + "parser": "/Users/seungminlee/Desktop/Development/FlowMap/parsers/swift-ast/.build/debug/flowmap-swift-ast" + }, + "summary": { + "total_pairs": 2, + "pass_pairs": 2, + "warn_pairs": 0, + "failed_pairs": 0, + "error_pairs": 0, + "swift_pairs": 0, + "non_swift_pairs": 2, + "confusion": { + "tp": 0, + "tn": 2, + "fp": 0, + "fn": 0 + }, + "non_swift_fp_rate": 0, + "swift_detection_rate": 0, + "gate": { + "max_non_swift_fp_rate": 0, + "max_errors": 0, + "strict_swift_required": false + }, + "gate_passed": true + }, + "results": [ + { + "prev": "071c4265d16f7bf13fc2af2e3630db7f69ec9cef", + "curr": "11fc72fc70fb972e6d292ba2326011a86eb94d04", + "commit": { + "hash": "11fc72fc70fb972e6d292ba2326011a86eb94d04", + "short": "11fc72f", + "subject": "docs: add comprehensive README in English and Korean", + "author": "adgk2349", + "date": "2026-03-04T22:06:24+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "11fc72fc70fb972e6d292ba2326011a86eb94d04", + "curr": "b44e2b9b964fb9f1a48858fde216fe5f26266fc6", + "commit": { + "hash": "b44e2b9b964fb9f1a48858fde216fe5f26266fc6", + "short": "b44e2b9", + "subject": "docs: rename creator to adgk2349", + "author": "adgk2349", + "date": "2026-03-04T22:07:58+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + } + ] +} diff --git a/reports/replay-flowmap-20-strict.json b/reports/replay-flowmap-20-strict.json new file mode 100644 index 0000000..f3cb2d4 --- /dev/null +++ b/reports/replay-flowmap-20-strict.json @@ -0,0 +1,501 @@ +{ + "created_at": "2026-03-07T07:48:43.151Z", + "mode": "commit-replay", + "config": { + "repo": "/Users/seungminlee/Desktop/Development/FlowMap", + "rev": "HEAD", + "count": 20, + "strict_swift": true, + "keep_temp": false, + "report_path": "/Users/seungminlee/Desktop/Development/FlowMap/reports/replay-flowmap-20-strict.json" + }, + "binaries": { + "flowmap": "/Users/seungminlee/Desktop/Development/FlowMap/target/debug/flowmap", + "parser": "/Users/seungminlee/Desktop/Development/FlowMap/parsers/swift-ast/.build/debug/flowmap-swift-ast" + }, + "summary": { + "total_pairs": 19, + "pass_pairs": 19, + "warn_pairs": 0, + "failed_pairs": 0, + "error_pairs": 0, + "swift_pairs": 2, + "non_swift_pairs": 17, + "confusion": { + "tp": 2, + "tn": 17, + "fp": 0, + "fn": 0 + }, + "non_swift_fp_rate": 0, + "swift_detection_rate": 1, + "gate": { + "max_non_swift_fp_rate": 0, + "max_errors": 0, + "strict_swift_required": true + }, + "gate_passed": true + }, + "results": [ + { + "prev": "8c2a40bf6e3d5b61e8bef0a9de170d31210513f4", + "curr": "6d9c2e2d9e71987c65024e47b9294d38ffbdb233", + "commit": { + "hash": "6d9c2e2d9e71987c65024e47b9294d38ffbdb233", + "short": "6d9c2e2", + "subject": "PR8.6 (1/2): Spacing constants + strict file-detail aligned layout", + "author": "adgk2349", + "date": "2026-03-07T02:03:52+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "6d9c2e2d9e71987c65024e47b9294d38ffbdb233", + "curr": "b9729d291fff4835a3ac4a3308ef84f7bc448e36", + "commit": { + "hash": "b9729d291fff4835a3ac4a3308ef84f7bc448e36", + "short": "b9729d2", + "subject": "PR8.6 (2/2): Calls mode — COMPONENT_GAP + stronger cose spacing", + "author": "adgk2349", + "date": "2026-03-07T02:05:23+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "b9729d291fff4835a3ac4a3308ef84f7bc448e36", + "curr": "6e619f7d1c5d60ff5ef56f3ea4d18f2ff6c32cfb", + "commit": { + "hash": "6e619f7d1c5d60ff5ef56f3ea4d18f2ff6c32cfb", + "short": "6e619f7", + "subject": "PR8.7: Calls mode redesign — component panels with normalized aligned layout", + "author": "adgk2349", + "date": "2026-03-07T05:44:55+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "6e619f7d1c5d60ff5ef56f3ea4d18f2ff6c32cfb", + "curr": "f0b947dac70bb3705bee1947273627a278c6bd57", + "commit": { + "hash": "f0b947dac70bb3705bee1947273627a278c6bd57", + "short": "f0b947d", + "subject": "Merge pull request #11 from adgk2349/flowmap-pr8-7", + "author": "방구석_코드스미스", + "date": "2026-03-07T06:08:50+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "f0b947dac70bb3705bee1947273627a278c6bd57", + "curr": "d7d22e80514c57238a602615a10a469f28b2dc56", + "commit": { + "hash": "d7d22e80514c57238a602615a10a469f28b2dc56", + "short": "d7d22e8", + "subject": "PR8.8: Calls layout fix — compact vertical stacking instead of wide horizontal rows", + "author": "adgk2349", + "date": "2026-03-07T06:14:29+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "d7d22e80514c57238a602615a10a469f28b2dc56", + "curr": "49fd7315c2575300686b89f68761b4a12711850c", + "commit": { + "hash": "49fd7315c2575300686b89f68761b4a12711850c", + "short": "49fd731", + "subject": "PR8.9: Calls mode irregular dense packing (skyline bottom-left algorithm)", + "author": "adgk2349", + "date": "2026-03-07T06:35:11+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "49fd7315c2575300686b89f68761b4a12711850c", + "curr": "e7204df302d1ddce494c9a93096a94367687a511", + "commit": { + "hash": "e7204df302d1ddce494c9a93096a94367687a511", + "short": "e7204df", + "subject": "Merge pull request #12 from adgk2349/flowmap-pr8-9", + "author": "방구석_코드스미스", + "date": "2026-03-07T10:56:47+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "e7204df302d1ddce494c9a93096a94367687a511", + "curr": "1c99ae9107155b4ef2d57e10177a719d0fd73b09", + "commit": { + "hash": "1c99ae9107155b4ef2d57e10177a719d0fd73b09", + "short": "1c99ae9", + "subject": "PR8.9.1: Tighten calls packing density (smaller tile gaps + tighter fit)", + "author": "adgk2349", + "date": "2026-03-07T11:01:44+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "1c99ae9107155b4ef2d57e10177a719d0fd73b09", + "curr": "30c41b3e6f796ca60db7920f9e1e79bebbd7ab77", + "commit": { + "hash": "30c41b3e6f796ca60db7920f9e1e79bebbd7ab77", + "short": "30c41b3", + "subject": "Merge pull request #14 from adgk2349/flowmap-pr8-9-1", + "author": "방구석_코드스미스", + "date": "2026-03-07T11:41:30+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "30c41b3e6f796ca60db7920f9e1e79bebbd7ab77", + "curr": "a6ffa69dfea240f9975e97d9400c61b13df7f156", + "commit": { + "hash": "a6ffa69dfea240f9975e97d9400c61b13df7f156", + "short": "a6ffa69", + "subject": "PR9: Swift cross-file calls — workspace-wide symbol linking, conservative matching", + "author": "adgk2349", + "date": "2026-03-07T11:28:15+09:00" + }, + "swift_changed": true, + "swift_files": [ + "parsers/swift-ast/Sources/FlowMapSwiftAST/main.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 1, + "removed_nodes": 0, + "changed_nodes": 11, + "added_edges": 1, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "a6ffa69dfea240f9975e97d9400c61b13df7f156", + "curr": "f98d12a81d5d17d8e29cd6aff470efbdde4f62e3", + "commit": { + "hash": "f98d12a81d5d17d8e29cd6aff470efbdde4f62e3", + "short": "f98d12a", + "subject": "Merge pull request #13 from adgk2349/flowmap-pr9", + "author": "방구석_코드스미스", + "date": "2026-03-07T11:47:54+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "f98d12a81d5d17d8e29cd6aff470efbdde4f62e3", + "curr": "3e89fbfe3fede24aab4bc1aad4135b5a88432be8", + "commit": { + "hash": "3e89fbfe3fede24aab4bc1aad4135b5a88432be8", + "short": "3e89fbf", + "subject": "Apply code review findings & CI optimizations", + "author": "adgk2349", + "date": "2026-03-07T11:53:02+09:00" + }, + "swift_changed": true, + "swift_files": [ + "parsers/swift-ast/Sources/FlowMapSwiftAST/main.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 2, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "3e89fbfe3fede24aab4bc1aad4135b5a88432be8", + "curr": "f2e54406651eec4b505c339639e3959a0519e22c", + "commit": { + "hash": "f2e54406651eec4b505c339639e3959a0519e22c", + "short": "f2e5440", + "subject": "docs: add public READMEs, localize to ko/ja, hide internal docs", + "author": "adgk2349", + "date": "2026-03-07T12:10:46+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "f2e54406651eec4b505c339639e3959a0519e22c", + "curr": "c6b57851550dca5ec9b4e53e84e8fc4b4385c1f3", + "commit": { + "hash": "c6b57851550dca5ec9b4e53e84e8fc4b4385c1f3", + "short": "c6b5785", + "subject": "docs: polish public README set (en/ko/ja) for release", + "author": "adgk2349", + "date": "2026-03-07T12:19:15+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "c6b57851550dca5ec9b4e53e84e8fc4b4385c1f3", + "curr": "55c12993dc9206374212c9e34232eeec75287039", + "commit": { + "hash": "55c12993dc9206374212c9e34232eeec75287039", + "short": "55c1299", + "subject": "Merge pull request #15 from adgk2349/flowmap-pr9", + "author": "방구석_코드스미스", + "date": "2026-03-07T12:27:21+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "55c12993dc9206374212c9e34232eeec75287039", + "curr": "945fe158ddea4400c7a785b6736837c7e967329d", + "commit": { + "hash": "945fe158ddea4400c7a785b6736837c7e967329d", + "short": "945fe15", + "subject": "PR8.10: Fix file-detail blank view — debug selectors + force visible detail nodes", + "author": "adgk2349", + "date": "2026-03-07T12:57:18+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "945fe158ddea4400c7a785b6736837c7e967329d", + "curr": "7fbe572eebd94d6b951477054ff31c10cd020a35", + "commit": { + "hash": "7fbe572eebd94d6b951477054ff31c10cd020a35", + "short": "7fbe572", + "subject": "Merge pull request #16 from adgk2349/flowmap-pr8-10-file-detail-fix", + "author": "방구석_코드스미스", + "date": "2026-03-07T13:35:04+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "7fbe572eebd94d6b951477054ff31c10cd020a35", + "curr": "82659c290404532e3316387de5baac016356eecb", + "commit": { + "hash": "82659c290404532e3316387de5baac016356eecb", + "short": "82659c2", + "subject": "docs: Update screenshots with latest UI", + "author": "adgk2349", + "date": "2026-03-07T13:38:45+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "82659c290404532e3316387de5baac016356eecb", + "curr": "b0d8a3abc4d1228faa5cc915d5ec50057f54f07d", + "commit": { + "hash": "b0d8a3abc4d1228faa5cc915d5ec50057f54f07d", + "short": "b0d8a3a", + "subject": "docs: Update contact information", + "author": "adgk2349", + "date": "2026-03-07T13:45:46+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + } + ] +} diff --git a/reports/replay-flowmap-75.json b/reports/replay-flowmap-75.json new file mode 100644 index 0000000..31d9e89 --- /dev/null +++ b/reports/replay-flowmap-75.json @@ -0,0 +1,1826 @@ +{ + "created_at": "2026-03-07T07:49:27.028Z", + "mode": "commit-replay", + "config": { + "repo": "/Users/seungminlee/Desktop/Development/FlowMap", + "rev": "HEAD", + "count": 75, + "strict_swift": false, + "keep_temp": false, + "report_path": "/Users/seungminlee/Desktop/Development/FlowMap/reports/replay-flowmap-75.json" + }, + "binaries": { + "flowmap": "/Users/seungminlee/Desktop/Development/FlowMap/target/debug/flowmap", + "parser": "/Users/seungminlee/Desktop/Development/FlowMap/parsers/swift-ast/.build/debug/flowmap-swift-ast" + }, + "summary": { + "total_pairs": 74, + "pass_pairs": 74, + "warn_pairs": 0, + "failed_pairs": 0, + "error_pairs": 0, + "swift_pairs": 4, + "non_swift_pairs": 70, + "confusion": { + "tp": 4, + "tn": 70, + "fp": 0, + "fn": 0 + }, + "non_swift_fp_rate": 0, + "swift_detection_rate": 1, + "gate": { + "max_non_swift_fp_rate": 0, + "max_errors": 0, + "strict_swift_required": false + }, + "gate_passed": true + }, + "results": [ + { + "prev": "0139d74783d6dbce749c25271bb7ca3dd3216478", + "curr": "abc0ef03240967a7d7f29780234cb678c7b7e485", + "commit": { + "hash": "abc0ef03240967a7d7f29780234cb678c7b7e485", + "short": "abc0ef0", + "subject": "feat(workspace): initialize Rust workspace with protocol, engine, cli members", + "author": "adgk2349", + "date": "2026-03-05T04:23:19+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "abc0ef03240967a7d7f29780234cb678c7b7e485", + "curr": "1e370a46fa7305262078f1f47abb976d8a3b7d44", + "commit": { + "hash": "1e370a46fa7305262078f1f47abb976d8a3b7d44", + "short": "1e370a4", + "subject": "feat(protocol): add request/response envelopes and graph model structs", + "author": "adgk2349", + "date": "2026-03-05T04:23:26+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "1e370a46fa7305262078f1f47abb976d8a3b7d44", + "curr": "2514a2446ab05e4ae51b7511777e48fcd4f993d3", + "commit": { + "hash": "2514a2446ab05e4ae51b7511777e48fcd4f993d3", + "short": "2514a24", + "subject": "feat(engine): add command router for ping, shutdown, and analyze", + "author": "adgk2349", + "date": "2026-03-05T04:23:31+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "2514a2446ab05e4ae51b7511777e48fcd4f993d3", + "curr": "524fdacdf03373a82fecebb104c9694285462fa3", + "commit": { + "hash": "524fdacdf03373a82fecebb104c9694285462fa3", + "short": "524fdac", + "subject": "feat(cli): add flowmap binary reading JSON from stdin", + "author": "adgk2349", + "date": "2026-03-05T04:23:36+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "524fdacdf03373a82fecebb104c9694285462fa3", + "curr": "028666c5ada7a33a5e5f5bc589e8acb44fbc0fcc", + "commit": { + "hash": "028666c5ada7a33a5e5f5bc589e8acb44fbc0fcc", + "short": "028666c", + "subject": "ci: add GitHub Actions workflow for macOS build and test", + "author": "adgk2349", + "date": "2026-03-05T04:23:41+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "028666c5ada7a33a5e5f5bc589e8acb44fbc0fcc", + "curr": "8fe3c689581b21fbbbb1417555492ea851740b32", + "commit": { + "hash": "8fe3c689581b21fbbbb1417555492ea851740b32", + "short": "8fe3c68", + "subject": "docs: add README with architecture overview and CLI usage examples", + "author": "adgk2349", + "date": "2026-03-05T04:23:46+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "8fe3c689581b21fbbbb1417555492ea851740b32", + "curr": "3bcafd45b3bc2ea2180874afb6e012e0212ed453", + "commit": { + "hash": "3bcafd45b3bc2ea2180874afb6e012e0212ed453", + "short": "3bcafd4", + "subject": "chore: add Cargo.lock and .gitignore", + "author": "adgk2349", + "date": "2026-03-05T15:43:43+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "3bcafd45b3bc2ea2180874afb6e012e0212ed453", + "curr": "bf31980ffe003fe56b443407b59344b23da56607", + "commit": { + "hash": "bf31980ffe003fe56b443407b59344b23da56607", + "short": "bf31980", + "subject": "Merge pull request #1 from adgk2349/flowmap-pr1", + "author": "방구석_코드스미스", + "date": "2026-03-05T15:47:28+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "bf31980ffe003fe56b443407b59344b23da56607", + "curr": "b64d2102da2e3b0660ea8eb469b17d863225bc50", + "commit": { + "hash": "b64d2102da2e3b0660ea8eb469b17d863225bc50", + "short": "b64d210", + "subject": "feat(vscode): scaffold extension with package.json, tsconfig, eslint", + "author": "adgk2349", + "date": "2026-03-05T16:02:30+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "b64d2102da2e3b0660ea8eb469b17d863225bc50", + "curr": "686d438b49f0f4cb96053541c017d654a4799ef7", + "commit": { + "hash": "686d438b49f0f4cb96053541c017d654a4799ef7", + "short": "686d438", + "subject": "feat(vscode): add extension entry and FlowmapClient CLI spawner", + "author": "adgk2349", + "date": "2026-03-05T16:03:47+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "686d438b49f0f4cb96053541c017d654a4799ef7", + "curr": "9fd5fb3290aeb7349222184c5a518f4b19666644", + "commit": { + "hash": "9fd5fb3290aeb7349222184c5a518f4b19666644", + "short": "9fd5fb3", + "subject": "feat(vscode): add GraphView webview panel and cytoscape renderer", + "author": "adgk2349", + "date": "2026-03-05T16:04:51+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "9fd5fb3290aeb7349222184c5a518f4b19666644", + "curr": "fd5a687aa8b6f79992b04b747a8cd9d929ae324b", + "commit": { + "hash": "fd5a687aa8b6f79992b04b747a8cd9d929ae324b", + "short": "fd5a687", + "subject": "docs: add VSCode Extension Usage section to README", + "author": "adgk2349", + "date": "2026-03-05T16:05:37+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "fd5a687aa8b6f79992b04b747a8cd9d929ae324b", + "curr": "234783706178e8ae308064545e4663eb164b3bcc", + "commit": { + "hash": "234783706178e8ae308064545e4663eb164b3bcc", + "short": "2347837", + "subject": "fix(vscode): resolve binary from workspacePath, add launch.json", + "author": "adgk2349", + "date": "2026-03-05T16:57:52+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "234783706178e8ae308064545e4663eb164b3bcc", + "curr": "4f5520d6c5883f88ef53c9b19f2dca2c7fe04a6e", + "commit": { + "hash": "4f5520d6c5883f88ef53c9b19f2dca2c7fe04a6e", + "short": "4f5520d", + "subject": "feat(parsers): add flowmap-swift-ast Swift AST CLI", + "author": "adgk2349", + "date": "2026-03-05T18:36:01+09:00" + }, + "swift_changed": true, + "swift_files": [ + "parsers/swift-ast/Package.swift", + "parsers/swift-ast/Sources/FlowMapSwiftAST/main.swift" + ], + "engine_changed": true, + "expected_changed": null, + "status": "pass", + "counts": { + "added_nodes": 12, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 14, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "4f5520d6c5883f88ef53c9b19f2dca2c7fe04a6e", + "curr": "9b44e7e53a06ce6fa32c809abfa0ed71e32e0f00", + "commit": { + "hash": "9b44e7e53a06ce6fa32c809abfa0ed71e32e0f00", + "short": "9b44e7e", + "subject": "feat(engine): add Swift scanner, bridge, graph builder; fix .build/ tracking", + "author": "adgk2349", + "date": "2026-03-05T18:41:29+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "9b44e7e53a06ce6fa32c809abfa0ed71e32e0f00", + "curr": "ece420dc720323d89fd1966664328f82bc752ec7", + "commit": { + "hash": "ece420dc720323d89fd1966664328f82bc752ec7", + "short": "ece420d", + "subject": "feat(vscode): kind-based graph styling, compound nodes, click-to-navigate", + "author": "adgk2349", + "date": "2026-03-05T18:46:04+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "ece420dc720323d89fd1966664328f82bc752ec7", + "curr": "f9e834b31bf64bc5e8fff1168fd22491c9ee6329", + "commit": { + "hash": "f9e834b31bf64bc5e8fff1168fd22491c9ee6329", + "short": "f9e834b", + "subject": "Merge pull request #3 from adgk2349/flowmap-pr3", + "author": "방구석_코드스미스", + "date": "2026-03-05T19:38:12+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "f9e834b31bf64bc5e8fff1168fd22491c9ee6329", + "curr": "8e85a6a9afba9fe76b53185e7c00a73915688774", + "commit": { + "hash": "8e85a6a9afba9fe76b53185e7c00a73915688774", + "short": "8e85a6a", + "subject": "PR4: AI patch diff + graph impact analysis", + "author": "adgk2349", + "date": "2026-03-05T20:10:46+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "8e85a6a9afba9fe76b53185e7c00a73915688774", + "curr": "69d7502a83aa13deaa402855890a359330663dbf", + "commit": { + "hash": "69d7502a83aa13deaa402855890a359330663dbf", + "short": "69d7502", + "subject": "Merge pull request #4 from adgk2349/flowmap-pr4", + "author": "방구석_코드스미스", + "date": "2026-03-05T21:00:27+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "69d7502a83aa13deaa402855890a359330663dbf", + "curr": "a68586f11d219af67a772abdc0b3eb036d1eb8ca", + "commit": { + "hash": "a68586f11d219af67a772abdc0b3eb036d1eb8ca", + "short": "a68586f", + "subject": "PR5 [1/4]: fix Swift parser same-file calls edge resolution", + "author": "adgk2349", + "date": "2026-03-05T23:14:12+09:00" + }, + "swift_changed": true, + "swift_files": [ + "parsers/swift-ast/Sources/FlowMapSwiftAST/main.swift" + ], + "engine_changed": true, + "expected_changed": null, + "status": "pass", + "counts": { + "added_nodes": 3, + "removed_nodes": 0, + "changed_nodes": 6, + "added_edges": 5, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "a68586f11d219af67a772abdc0b3eb036d1eb8ca", + "curr": "e465394b840ca12ac5ef18d7c8224179e8f32d3d", + "commit": { + "hash": "e465394b840ca12ac5ef18d7c8224179e8f32d3d", + "short": "e465394", + "subject": "PR5 [2/4]: add Rust test verifying calls edges flow through merge()", + "author": "adgk2349", + "date": "2026-03-05T23:14:51+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "e465394b840ca12ac5ef18d7c8224179e8f32d3d", + "curr": "8654d3fafb365c2764dc10baf819833628ae274e", + "commit": { + "hash": "8654d3fafb365c2764dc10baf819833628ae274e", + "short": "8654d3f", + "subject": "PR5 [3/4]: VSCode — local Cytoscape, CSP fix, direct-call highlight", + "author": "adgk2349", + "date": "2026-03-05T23:16:09+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "8654d3fafb365c2764dc10baf819833628ae274e", + "curr": "b0aeed8029dd826ab8b91edd9254b8e9be16830a", + "commit": { + "hash": "b0aeed8029dd826ab8b91edd9254b8e9be16830a", + "short": "b0aeed8", + "subject": "PR5 [4/4]: document same-file calls edges in README", + "author": "adgk2349", + "date": "2026-03-05T23:16:52+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "b0aeed8029dd826ab8b91edd9254b8e9be16830a", + "curr": "76df8d750d33a16295427c5d28cedb48f7c2de3a", + "commit": { + "hash": "76df8d750d33a16295427c5d28cedb48f7c2de3a", + "short": "76df8d7", + "subject": "fix(engine): remove needless borrows in build_swift_graph (clippy)", + "author": "adgk2349", + "date": "2026-03-05T23:18:01+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "76df8d750d33a16295427c5d28cedb48f7c2de3a", + "curr": "58c362443a969c3063fe8fdcc3a2b805dc8bea31", + "commit": { + "hash": "58c362443a969c3063fe8fdcc3a2b805dc8bea31", + "short": "58c3624", + "subject": "Merge pull request #5 from adgk2349/flowmap-pr5", + "author": "방구석_코드스미스", + "date": "2026-03-05T23:32:38+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "58c362443a969c3063fe8fdcc3a2b805dc8bea31", + "curr": "ae2497be85e7b663f0ec6f918a7557eaa1b0c77f", + "commit": { + "hash": "ae2497be85e7b663f0ec6f918a7557eaa1b0c77f", + "short": "ae2497b", + "subject": "PR6 [1/4]: add auto-analyze settings + toggle command to package.json", + "author": "adgk2349", + "date": "2026-03-05T23:43:48+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "ae2497be85e7b663f0ec6f918a7557eaa1b0c77f", + "curr": "3cd11ac74297cee14c18987e3b8650b3004820d6", + "commit": { + "hash": "3cd11ac74297cee14c18987e3b8650b3004820d6", + "short": "3cd11ac", + "subject": "PR6 [2/4]: auto-analyze on save — debounce + concurrency guard + silent update", + "author": "adgk2349", + "date": "2026-03-05T23:44:56+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "3cd11ac74297cee14c18987e3b8650b3004820d6", + "curr": "0b11350af0564a1e292a9431dbb9ff9a5059f136", + "commit": { + "hash": "0b11350af0564a1e292a9431dbb9ff9a5059f136", + "short": "0b11350", + "subject": "PR6 [3/4]: webview — Clean/Changed badge + muted unchanged node styling", + "author": "adgk2349", + "date": "2026-03-05T23:47:01+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "0b11350af0564a1e292a9431dbb9ff9a5059f136", + "curr": "2b02d201c2e2f31957fb3f5eb97c343458d5a4dd", + "commit": { + "hash": "2b02d201c2e2f31957fb3f5eb97c343458d5a4dd", + "short": "2b02d20", + "subject": "PR6 [4/4]: README — document auto-analyze on save and status badge", + "author": "adgk2349", + "date": "2026-03-05T23:47:46+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "2b02d201c2e2f31957fb3f5eb97c343458d5a4dd", + "curr": "503734844bee4717f62e9cecc1fa49af5b2affd9", + "commit": { + "hash": "503734844bee4717f62e9cecc1fa49af5b2affd9", + "short": "5037348", + "subject": "Merge pull request #6 from adgk2349/flowmap-pr6", + "author": "방구석_코드스미스", + "date": "2026-03-06T00:15:13+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "503734844bee4717f62e9cecc1fa49af5b2affd9", + "curr": "253274c8e3b543f2bc7eeda0b1554d36bb255f29", + "commit": { + "hash": "253274c8e3b543f2bc7eeda0b1554d36bb255f29", + "short": "253274c", + "subject": "PR7 [1/4]: add license.ts module + package.json (commands, setting)", + "author": "adgk2349", + "date": "2026-03-06T00:19:57+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "253274c8e3b543f2bc7eeda0b1554d36bb255f29", + "curr": "b30e589a1530fae8226282b11c1fe676db527e44", + "commit": { + "hash": "b30e589a1530fae8226282b11c1fe676db527e44", + "short": "b30e589", + "subject": "PR7 [2/4]: extension.ts + graphView.ts — status bar + license commands", + "author": "adgk2349", + "date": "2026-03-06T00:23:03+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "b30e589a1530fae8226282b11c1fe676db527e44", + "curr": "b319dd3655af6b5916630d1bb7e72cbdcc5bc963", + "commit": { + "hash": "b319dd3655af6b5916630d1bb7e72cbdcc5bc963", + "short": "b319dd3", + "subject": "PR7 [3/4]: webview — license badge (Free / ★ Pro)", + "author": "adgk2349", + "date": "2026-03-06T00:25:09+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "b319dd3655af6b5916630d1bb7e72cbdcc5bc963", + "curr": "a8051c0fd29df742d22e542be002d65cf7523db1", + "commit": { + "hash": "a8051c0fd29df742d22e542be002d65cf7523db1", + "short": "a8051c0", + "subject": "PR7 [4/4]: README — licensing scaffolding documentation", + "author": "adgk2349", + "date": "2026-03-06T00:26:52+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "a8051c0fd29df742d22e542be002d65cf7523db1", + "curr": "ac61641e43756bf30c0bd1942088dffef56b12f6", + "commit": { + "hash": "ac61641e43756bf30c0bd1942088dffef56b12f6", + "short": "ac61641", + "subject": "Merge pull request #7 from adgk2349/flowmap-pr7", + "author": "방구석_코드스미스", + "date": "2026-03-06T00:53:19+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "ac61641e43756bf30c0bd1942088dffef56b12f6", + "curr": "c83ebbecc8f2999f7198b9469444dff3f4f54428", + "commit": { + "hash": "c83ebbecc8f2999f7198b9469444dff3f4f54428", + "short": "c83ebbe", + "subject": "PR8 Part 1+2+6: graph.html — toolbar, dark background, search+layout slots", + "author": "adgk2349", + "date": "2026-03-06T01:19:39+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "c83ebbecc8f2999f7198b9469444dff3f4f54428", + "curr": "896cd783b8f7e0d0e263be451f6ae2f08074bd2f", + "commit": { + "hash": "896cd783b8f7e0d0e263be451f6ae2f08074bd2f", + "short": "896cd78", + "subject": "PR8 Parts 1-8: graph.js — files-only view, grid layout, toolbar, search, expansion", + "author": "adgk2349", + "date": "2026-03-06T01:20:02+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "896cd783b8f7e0d0e263be451f6ae2f08074bd2f", + "curr": "82759a36e576d281901105ac5739c18ee6431626", + "commit": { + "hash": "82759a36e576d281901105ac5739c18ee6431626", + "short": "82759a3", + "subject": "PR8: README — large graph UX overhaul documentation", + "author": "adgk2349", + "date": "2026-03-06T01:20:56+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "82759a36e576d281901105ac5739c18ee6431626", + "curr": "42276142d9811d54f0a3297dc32fbcac30c9d769", + "commit": { + "hash": "42276142d9811d54f0a3297dc32fbcac30c9d769", + "short": "4227614", + "subject": "Merge pull request #8 from adgk2349/flowmap-pr8", + "author": "방구석_코드스미스", + "date": "2026-03-06T01:26:24+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "42276142d9811d54f0a3297dc32fbcac30c9d769", + "curr": "935ee3cf31aafd5b4b1d2feed3ca4001d8dc9adf", + "commit": { + "hash": "935ee3cf31aafd5b4b1d2feed3ca4001d8dc9adf", + "short": "935ee3c", + "subject": "PR8.1 Parts 1-4: fix empty initial view, grid layout, search clump, button robustness", + "author": "adgk2349", + "date": "2026-03-06T01:35:19+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "935ee3cf31aafd5b4b1d2feed3ca4001d8dc9adf", + "curr": "b8ca3ca492e9dd88ba691ba50c3e4ba2189f0076", + "commit": { + "hash": "b8ca3ca492e9dd88ba691ba50c3e4ba2189f0076", + "short": "b8ca3ca", + "subject": "PR8.1 Part 5: empty state, compact toolbar, legend gap below toolbar", + "author": "adgk2349", + "date": "2026-03-06T01:35:30+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "b8ca3ca492e9dd88ba691ba50c3e4ba2189f0076", + "curr": "7d14211a2c06baa72c8131fdc0d32ced9239fe2e", + "commit": { + "hash": "7d14211a2c06baa72c8131fdc0d32ced9239fe2e", + "short": "7d14211", + "subject": "PR8.2: Fix mode-switch blank graph + unreliable Fit after search", + "author": "adgk2349", + "date": "2026-03-06T02:03:15+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "7d14211a2c06baa72c8131fdc0d32ced9239fe2e", + "curr": "a4a29d300dbd8946ca272dbb909abd176c52255a", + "commit": { + "hash": "a4a29d300dbd8946ca272dbb909abd176c52255a", + "short": "a4a29d3", + "subject": "Merge pull request #9 from adgk2349/flowmap-pr8-2", + "author": "방구석_코드스미스", + "date": "2026-03-06T02:08:46+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "a4a29d300dbd8946ca272dbb909abd176c52255a", + "curr": "5b2d25067a53e5245e8be57de3c55f831a2b344d", + "commit": { + "hash": "5b2d25067a53e5245e8be57de3c55f831a2b344d", + "short": "5b2d250", + "subject": "PR8.2.1: Fix panel-open blank graph — analysis handshake + Analyze Workspace button", + "author": "adgk2349", + "date": "2026-03-06T19:20:36+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "5b2d25067a53e5245e8be57de3c55f831a2b344d", + "curr": "445bc713307a3cb420270d8fbd3011fb5f928c8d", + "commit": { + "hash": "445bc713307a3cb420270d8fbd3011fb5f928c8d", + "short": "445bc71", + "subject": "PR8.2.2: Diagnostics, robust payload shape, cy-guard, defensive render", + "author": "adgk2349", + "date": "2026-03-06T19:49:11+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "445bc713307a3cb420270d8fbd3011fb5f928c8d", + "curr": "904e6a62a8c680a01e38f730572b4e9101cab508", + "commit": { + "hash": "904e6a62a8c680a01e38f730572b4e9101cab508", + "short": "904e6a6", + "subject": "PR8.2.3-debug: Flat file-node render to isolate blank-graph root cause", + "author": "adgk2349", + "date": "2026-03-06T20:55:31+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "904e6a62a8c680a01e38f730572b4e9101cab508", + "curr": "d7e613bb4c265e81ade75e66640c43265732a57c", + "commit": { + "hash": "d7e613bb4c265e81ade75e66640c43265732a57c", + "short": "d7e613b", + "subject": "PR8.2.4 (1/2): Promote flat file-card render as permanent default view", + "author": "adgk2349", + "date": "2026-03-06T22:06:22+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "d7e613bb4c265e81ade75e66640c43265732a57c", + "curr": "8a4529eed7ab51828fdbb86235c643347bac458b", + "commit": { + "hash": "8a4529eed7ab51828fdbb86235c643347bac458b", + "short": "8a4529e", + "subject": "PR8.2.4 (2/2): Drill-down, mode-aware search, robust Calls mode", + "author": "adgk2349", + "date": "2026-03-06T22:08:30+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "8a4529eed7ab51828fdbb86235c643347bac458b", + "curr": "0dc29d38674576e8331c6e8e33f0d85915ee048c", + "commit": { + "hash": "0dc29d38674576e8331c6e8e33f0d85915ee048c", + "short": "0dc29d3", + "subject": "PR8.2.4: Update engine deps, CI, protocol, and client for flat file-card architecture", + "author": "adgk2349", + "date": "2026-03-06T22:30:05+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "0dc29d38674576e8331c6e8e33f0d85915ee048c", + "curr": "e5c8db6e7bd064b5b9901f4c47e819424917886b", + "commit": { + "hash": "e5c8db6e7bd064b5b9901f4c47e819424917886b", + "short": "e5c8db6", + "subject": "Merge pull request #10 from adgk2349/flowmap-pr8-2-4", + "author": "방구석_코드스미스", + "date": "2026-03-06T22:35:55+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "e5c8db6e7bd064b5b9901f4c47e819424917886b", + "curr": "73e9eda3d36139fae478a9bbcc8d9ef5b5036634", + "commit": { + "hash": "73e9eda3d36139fae478a9bbcc8d9ef5b5036634", + "short": "73e9eda", + "subject": "PR8.3 (1/2): Mode vocab + Back button + detail header", + "author": "adgk2349", + "date": "2026-03-07T00:11:50+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "73e9eda3d36139fae478a9bbcc8d9ef5b5036634", + "curr": "280756bdf4855066dc4a60237bbff7d8f2c5e1a0", + "commit": { + "hash": "280756bdf4855066dc4a60237bbff7d8f2c5e1a0", + "short": "280756b", + "subject": "PR8.3 (2/2): Visual overhaul — pills, tints, labels, tooltip, colors", + "author": "adgk2349", + "date": "2026-03-07T00:16:04+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "280756bdf4855066dc4a60237bbff7d8f2c5e1a0", + "curr": "67d41186a9cc60e4f207141c97ab23bafefc4620", + "commit": { + "hash": "67d41186a9cc60e4f207141c97ab23bafefc4620", + "short": "67d4118", + "subject": "PR8.4 (1/2): Mindmap overview model — folder/file hierarchy + radial layout", + "author": "adgk2349", + "date": "2026-03-07T01:09:40+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "67d41186a9cc60e4f207141c97ab23bafefc4620", + "curr": "c648e9f0e3d9be44002dc4d76a1cc0251a6324a9", + "commit": { + "hash": "c648e9f0e3d9be44002dc4d76a1cc0251a6324a9", + "short": "c648e9f", + "subject": "PR8.4 (2/2): Mindmap styles, folder expand/collapse, hover states", + "author": "adgk2349", + "date": "2026-03-07T01:11:08+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "c648e9f0e3d9be44002dc4d76a1cc0251a6324a9", + "curr": "8c2a40bf6e3d5b61e8bef0a9de170d31210513f4", + "commit": { + "hash": "8c2a40bf6e3d5b61e8bef0a9de170d31210513f4", + "short": "8c2a40b", + "subject": "PR8.5: Spacious calls layout — component detection + grid arrangement", + "author": "adgk2349", + "date": "2026-03-07T01:48:01+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "8c2a40bf6e3d5b61e8bef0a9de170d31210513f4", + "curr": "6d9c2e2d9e71987c65024e47b9294d38ffbdb233", + "commit": { + "hash": "6d9c2e2d9e71987c65024e47b9294d38ffbdb233", + "short": "6d9c2e2", + "subject": "PR8.6 (1/2): Spacing constants + strict file-detail aligned layout", + "author": "adgk2349", + "date": "2026-03-07T02:03:52+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "6d9c2e2d9e71987c65024e47b9294d38ffbdb233", + "curr": "b9729d291fff4835a3ac4a3308ef84f7bc448e36", + "commit": { + "hash": "b9729d291fff4835a3ac4a3308ef84f7bc448e36", + "short": "b9729d2", + "subject": "PR8.6 (2/2): Calls mode — COMPONENT_GAP + stronger cose spacing", + "author": "adgk2349", + "date": "2026-03-07T02:05:23+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "b9729d291fff4835a3ac4a3308ef84f7bc448e36", + "curr": "6e619f7d1c5d60ff5ef56f3ea4d18f2ff6c32cfb", + "commit": { + "hash": "6e619f7d1c5d60ff5ef56f3ea4d18f2ff6c32cfb", + "short": "6e619f7", + "subject": "PR8.7: Calls mode redesign — component panels with normalized aligned layout", + "author": "adgk2349", + "date": "2026-03-07T05:44:55+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "6e619f7d1c5d60ff5ef56f3ea4d18f2ff6c32cfb", + "curr": "f0b947dac70bb3705bee1947273627a278c6bd57", + "commit": { + "hash": "f0b947dac70bb3705bee1947273627a278c6bd57", + "short": "f0b947d", + "subject": "Merge pull request #11 from adgk2349/flowmap-pr8-7", + "author": "방구석_코드스미스", + "date": "2026-03-07T06:08:50+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "f0b947dac70bb3705bee1947273627a278c6bd57", + "curr": "d7d22e80514c57238a602615a10a469f28b2dc56", + "commit": { + "hash": "d7d22e80514c57238a602615a10a469f28b2dc56", + "short": "d7d22e8", + "subject": "PR8.8: Calls layout fix — compact vertical stacking instead of wide horizontal rows", + "author": "adgk2349", + "date": "2026-03-07T06:14:29+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "d7d22e80514c57238a602615a10a469f28b2dc56", + "curr": "49fd7315c2575300686b89f68761b4a12711850c", + "commit": { + "hash": "49fd7315c2575300686b89f68761b4a12711850c", + "short": "49fd731", + "subject": "PR8.9: Calls mode irregular dense packing (skyline bottom-left algorithm)", + "author": "adgk2349", + "date": "2026-03-07T06:35:11+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "49fd7315c2575300686b89f68761b4a12711850c", + "curr": "e7204df302d1ddce494c9a93096a94367687a511", + "commit": { + "hash": "e7204df302d1ddce494c9a93096a94367687a511", + "short": "e7204df", + "subject": "Merge pull request #12 from adgk2349/flowmap-pr8-9", + "author": "방구석_코드스미스", + "date": "2026-03-07T10:56:47+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "e7204df302d1ddce494c9a93096a94367687a511", + "curr": "1c99ae9107155b4ef2d57e10177a719d0fd73b09", + "commit": { + "hash": "1c99ae9107155b4ef2d57e10177a719d0fd73b09", + "short": "1c99ae9", + "subject": "PR8.9.1: Tighten calls packing density (smaller tile gaps + tighter fit)", + "author": "adgk2349", + "date": "2026-03-07T11:01:44+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "1c99ae9107155b4ef2d57e10177a719d0fd73b09", + "curr": "30c41b3e6f796ca60db7920f9e1e79bebbd7ab77", + "commit": { + "hash": "30c41b3e6f796ca60db7920f9e1e79bebbd7ab77", + "short": "30c41b3", + "subject": "Merge pull request #14 from adgk2349/flowmap-pr8-9-1", + "author": "방구석_코드스미스", + "date": "2026-03-07T11:41:30+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "30c41b3e6f796ca60db7920f9e1e79bebbd7ab77", + "curr": "a6ffa69dfea240f9975e97d9400c61b13df7f156", + "commit": { + "hash": "a6ffa69dfea240f9975e97d9400c61b13df7f156", + "short": "a6ffa69", + "subject": "PR9: Swift cross-file calls — workspace-wide symbol linking, conservative matching", + "author": "adgk2349", + "date": "2026-03-07T11:28:15+09:00" + }, + "swift_changed": true, + "swift_files": [ + "parsers/swift-ast/Sources/FlowMapSwiftAST/main.swift" + ], + "engine_changed": true, + "expected_changed": null, + "status": "pass", + "counts": { + "added_nodes": 1, + "removed_nodes": 0, + "changed_nodes": 11, + "added_edges": 1, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "a6ffa69dfea240f9975e97d9400c61b13df7f156", + "curr": "f98d12a81d5d17d8e29cd6aff470efbdde4f62e3", + "commit": { + "hash": "f98d12a81d5d17d8e29cd6aff470efbdde4f62e3", + "short": "f98d12a", + "subject": "Merge pull request #13 from adgk2349/flowmap-pr9", + "author": "방구석_코드스미스", + "date": "2026-03-07T11:47:54+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "f98d12a81d5d17d8e29cd6aff470efbdde4f62e3", + "curr": "3e89fbfe3fede24aab4bc1aad4135b5a88432be8", + "commit": { + "hash": "3e89fbfe3fede24aab4bc1aad4135b5a88432be8", + "short": "3e89fbf", + "subject": "Apply code review findings & CI optimizations", + "author": "adgk2349", + "date": "2026-03-07T11:53:02+09:00" + }, + "swift_changed": true, + "swift_files": [ + "parsers/swift-ast/Sources/FlowMapSwiftAST/main.swift" + ], + "engine_changed": true, + "expected_changed": null, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 2, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "3e89fbfe3fede24aab4bc1aad4135b5a88432be8", + "curr": "f2e54406651eec4b505c339639e3959a0519e22c", + "commit": { + "hash": "f2e54406651eec4b505c339639e3959a0519e22c", + "short": "f2e5440", + "subject": "docs: add public READMEs, localize to ko/ja, hide internal docs", + "author": "adgk2349", + "date": "2026-03-07T12:10:46+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "f2e54406651eec4b505c339639e3959a0519e22c", + "curr": "c6b57851550dca5ec9b4e53e84e8fc4b4385c1f3", + "commit": { + "hash": "c6b57851550dca5ec9b4e53e84e8fc4b4385c1f3", + "short": "c6b5785", + "subject": "docs: polish public README set (en/ko/ja) for release", + "author": "adgk2349", + "date": "2026-03-07T12:19:15+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "c6b57851550dca5ec9b4e53e84e8fc4b4385c1f3", + "curr": "55c12993dc9206374212c9e34232eeec75287039", + "commit": { + "hash": "55c12993dc9206374212c9e34232eeec75287039", + "short": "55c1299", + "subject": "Merge pull request #15 from adgk2349/flowmap-pr9", + "author": "방구석_코드스미스", + "date": "2026-03-07T12:27:21+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "55c12993dc9206374212c9e34232eeec75287039", + "curr": "945fe158ddea4400c7a785b6736837c7e967329d", + "commit": { + "hash": "945fe158ddea4400c7a785b6736837c7e967329d", + "short": "945fe15", + "subject": "PR8.10: Fix file-detail blank view — debug selectors + force visible detail nodes", + "author": "adgk2349", + "date": "2026-03-07T12:57:18+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "945fe158ddea4400c7a785b6736837c7e967329d", + "curr": "7fbe572eebd94d6b951477054ff31c10cd020a35", + "commit": { + "hash": "7fbe572eebd94d6b951477054ff31c10cd020a35", + "short": "7fbe572", + "subject": "Merge pull request #16 from adgk2349/flowmap-pr8-10-file-detail-fix", + "author": "방구석_코드스미스", + "date": "2026-03-07T13:35:04+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "7fbe572eebd94d6b951477054ff31c10cd020a35", + "curr": "82659c290404532e3316387de5baac016356eecb", + "commit": { + "hash": "82659c290404532e3316387de5baac016356eecb", + "short": "82659c2", + "subject": "docs: Update screenshots with latest UI", + "author": "adgk2349", + "date": "2026-03-07T13:38:45+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "82659c290404532e3316387de5baac016356eecb", + "curr": "b0d8a3abc4d1228faa5cc915d5ec50057f54f07d", + "commit": { + "hash": "b0d8a3abc4d1228faa5cc915d5ec50057f54f07d", + "short": "b0d8a3a", + "subject": "docs: Update contact information", + "author": "adgk2349", + "date": "2026-03-07T13:45:46+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + } + ] +} diff --git a/reports/replay-flowmap-strict-full.json b/reports/replay-flowmap-strict-full.json new file mode 100644 index 0000000..53d70af --- /dev/null +++ b/reports/replay-flowmap-strict-full.json @@ -0,0 +1,1826 @@ +{ + "created_at": "2026-03-07T07:47:22.380Z", + "mode": "commit-replay", + "config": { + "repo": "/Users/seungminlee/Desktop/Development/FlowMap", + "rev": "HEAD", + "count": 75, + "strict_swift": true, + "keep_temp": false, + "report_path": "/Users/seungminlee/Desktop/Development/FlowMap/reports/replay-flowmap-strict-full.json" + }, + "binaries": { + "flowmap": "/Users/seungminlee/Desktop/Development/FlowMap/target/debug/flowmap", + "parser": "/Users/seungminlee/Desktop/Development/FlowMap/parsers/swift-ast/.build/debug/flowmap-swift-ast" + }, + "summary": { + "total_pairs": 74, + "pass_pairs": 16, + "warn_pairs": 0, + "failed_pairs": 58, + "error_pairs": 0, + "swift_pairs": 4, + "non_swift_pairs": 70, + "confusion": { + "tp": 3, + "tn": 13, + "fp": 57, + "fn": 1 + }, + "non_swift_fp_rate": 0.8143, + "swift_detection_rate": 0.75, + "gate": { + "max_non_swift_fp_rate": 0, + "max_errors": 0, + "strict_swift_required": true + }, + "gate_passed": false + }, + "results": [ + { + "prev": "0139d74783d6dbce749c25271bb7ca3dd3216478", + "curr": "abc0ef03240967a7d7f29780234cb678c7b7e485", + "commit": { + "hash": "abc0ef03240967a7d7f29780234cb678c7b7e485", + "short": "abc0ef0", + "subject": "feat(workspace): initialize Rust workspace with protocol, engine, cli members", + "author": "adgk2349", + "date": "2026-03-05T04:23:19+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "abc0ef03240967a7d7f29780234cb678c7b7e485", + "curr": "1e370a46fa7305262078f1f47abb976d8a3b7d44", + "commit": { + "hash": "1e370a46fa7305262078f1f47abb976d8a3b7d44", + "short": "1e370a4", + "subject": "feat(protocol): add request/response envelopes and graph model structs", + "author": "adgk2349", + "date": "2026-03-05T04:23:26+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "1e370a46fa7305262078f1f47abb976d8a3b7d44", + "curr": "2514a2446ab05e4ae51b7511777e48fcd4f993d3", + "commit": { + "hash": "2514a2446ab05e4ae51b7511777e48fcd4f993d3", + "short": "2514a24", + "subject": "feat(engine): add command router for ping, shutdown, and analyze", + "author": "adgk2349", + "date": "2026-03-05T04:23:31+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "2514a2446ab05e4ae51b7511777e48fcd4f993d3", + "curr": "524fdacdf03373a82fecebb104c9694285462fa3", + "commit": { + "hash": "524fdacdf03373a82fecebb104c9694285462fa3", + "short": "524fdac", + "subject": "feat(cli): add flowmap binary reading JSON from stdin", + "author": "adgk2349", + "date": "2026-03-05T04:23:36+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "524fdacdf03373a82fecebb104c9694285462fa3", + "curr": "028666c5ada7a33a5e5f5bc589e8acb44fbc0fcc", + "commit": { + "hash": "028666c5ada7a33a5e5f5bc589e8acb44fbc0fcc", + "short": "028666c", + "subject": "ci: add GitHub Actions workflow for macOS build and test", + "author": "adgk2349", + "date": "2026-03-05T04:23:41+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "028666c5ada7a33a5e5f5bc589e8acb44fbc0fcc", + "curr": "8fe3c689581b21fbbbb1417555492ea851740b32", + "commit": { + "hash": "8fe3c689581b21fbbbb1417555492ea851740b32", + "short": "8fe3c68", + "subject": "docs: add README with architecture overview and CLI usage examples", + "author": "adgk2349", + "date": "2026-03-05T04:23:46+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "8fe3c689581b21fbbbb1417555492ea851740b32", + "curr": "3bcafd45b3bc2ea2180874afb6e012e0212ed453", + "commit": { + "hash": "3bcafd45b3bc2ea2180874afb6e012e0212ed453", + "short": "3bcafd4", + "subject": "chore: add Cargo.lock and .gitignore", + "author": "adgk2349", + "date": "2026-03-05T15:43:43+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "3bcafd45b3bc2ea2180874afb6e012e0212ed453", + "curr": "bf31980ffe003fe56b443407b59344b23da56607", + "commit": { + "hash": "bf31980ffe003fe56b443407b59344b23da56607", + "short": "bf31980", + "subject": "Merge pull request #1 from adgk2349/flowmap-pr1", + "author": "방구석_코드스미스", + "date": "2026-03-05T15:47:28+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "bf31980ffe003fe56b443407b59344b23da56607", + "curr": "b64d2102da2e3b0660ea8eb469b17d863225bc50", + "commit": { + "hash": "b64d2102da2e3b0660ea8eb469b17d863225bc50", + "short": "b64d210", + "subject": "feat(vscode): scaffold extension with package.json, tsconfig, eslint", + "author": "adgk2349", + "date": "2026-03-05T16:02:30+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "b64d2102da2e3b0660ea8eb469b17d863225bc50", + "curr": "686d438b49f0f4cb96053541c017d654a4799ef7", + "commit": { + "hash": "686d438b49f0f4cb96053541c017d654a4799ef7", + "short": "686d438", + "subject": "feat(vscode): add extension entry and FlowmapClient CLI spawner", + "author": "adgk2349", + "date": "2026-03-05T16:03:47+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "686d438b49f0f4cb96053541c017d654a4799ef7", + "curr": "9fd5fb3290aeb7349222184c5a518f4b19666644", + "commit": { + "hash": "9fd5fb3290aeb7349222184c5a518f4b19666644", + "short": "9fd5fb3", + "subject": "feat(vscode): add GraphView webview panel and cytoscape renderer", + "author": "adgk2349", + "date": "2026-03-05T16:04:51+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "9fd5fb3290aeb7349222184c5a518f4b19666644", + "curr": "fd5a687aa8b6f79992b04b747a8cd9d929ae324b", + "commit": { + "hash": "fd5a687aa8b6f79992b04b747a8cd9d929ae324b", + "short": "fd5a687", + "subject": "docs: add VSCode Extension Usage section to README", + "author": "adgk2349", + "date": "2026-03-05T16:05:37+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "fd5a687aa8b6f79992b04b747a8cd9d929ae324b", + "curr": "234783706178e8ae308064545e4663eb164b3bcc", + "commit": { + "hash": "234783706178e8ae308064545e4663eb164b3bcc", + "short": "2347837", + "subject": "fix(vscode): resolve binary from workspacePath, add launch.json", + "author": "adgk2349", + "date": "2026-03-05T16:57:52+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "234783706178e8ae308064545e4663eb164b3bcc", + "curr": "4f5520d6c5883f88ef53c9b19f2dca2c7fe04a6e", + "commit": { + "hash": "4f5520d6c5883f88ef53c9b19f2dca2c7fe04a6e", + "short": "4f5520d", + "subject": "feat(parsers): add flowmap-swift-ast Swift AST CLI", + "author": "adgk2349", + "date": "2026-03-05T18:36:01+09:00" + }, + "swift_changed": true, + "swift_files": [ + "parsers/swift-ast/Package.swift", + "parsers/swift-ast/Sources/FlowMapSwiftAST/main.swift" + ], + "engine_changed": false, + "expected_changed": true, + "status": "fail_swift_fn", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "4f5520d6c5883f88ef53c9b19f2dca2c7fe04a6e", + "curr": "9b44e7e53a06ce6fa32c809abfa0ed71e32e0f00", + "commit": { + "hash": "9b44e7e53a06ce6fa32c809abfa0ed71e32e0f00", + "short": "9b44e7e", + "subject": "feat(engine): add Swift scanner, bridge, graph builder; fix .build/ tracking", + "author": "adgk2349", + "date": "2026-03-05T18:41:29+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 12, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 14, + "impact": 0 + } + }, + { + "prev": "9b44e7e53a06ce6fa32c809abfa0ed71e32e0f00", + "curr": "ece420dc720323d89fd1966664328f82bc752ec7", + "commit": { + "hash": "ece420dc720323d89fd1966664328f82bc752ec7", + "short": "ece420d", + "subject": "feat(vscode): kind-based graph styling, compound nodes, click-to-navigate", + "author": "adgk2349", + "date": "2026-03-05T18:46:04+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 12, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 14, + "impact": 0 + } + }, + { + "prev": "ece420dc720323d89fd1966664328f82bc752ec7", + "curr": "f9e834b31bf64bc5e8fff1168fd22491c9ee6329", + "commit": { + "hash": "f9e834b31bf64bc5e8fff1168fd22491c9ee6329", + "short": "f9e834b", + "subject": "Merge pull request #3 from adgk2349/flowmap-pr3", + "author": "방구석_코드스미스", + "date": "2026-03-05T19:38:12+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 12, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 14, + "impact": 0 + } + }, + { + "prev": "f9e834b31bf64bc5e8fff1168fd22491c9ee6329", + "curr": "8e85a6a9afba9fe76b53185e7c00a73915688774", + "commit": { + "hash": "8e85a6a9afba9fe76b53185e7c00a73915688774", + "short": "8e85a6a", + "subject": "PR4: AI patch diff + graph impact analysis", + "author": "adgk2349", + "date": "2026-03-05T20:10:46+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 12, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 14, + "impact": 0 + } + }, + { + "prev": "8e85a6a9afba9fe76b53185e7c00a73915688774", + "curr": "69d7502a83aa13deaa402855890a359330663dbf", + "commit": { + "hash": "69d7502a83aa13deaa402855890a359330663dbf", + "short": "69d7502", + "subject": "Merge pull request #4 from adgk2349/flowmap-pr4", + "author": "방구석_코드스미스", + "date": "2026-03-05T21:00:27+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 12, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 14, + "impact": 0 + } + }, + { + "prev": "69d7502a83aa13deaa402855890a359330663dbf", + "curr": "a68586f11d219af67a772abdc0b3eb036d1eb8ca", + "commit": { + "hash": "a68586f11d219af67a772abdc0b3eb036d1eb8ca", + "short": "a68586f", + "subject": "PR5 [1/4]: fix Swift parser same-file calls edge resolution", + "author": "adgk2349", + "date": "2026-03-05T23:14:12+09:00" + }, + "swift_changed": true, + "swift_files": [ + "parsers/swift-ast/Sources/FlowMapSwiftAST/main.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 12, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 14, + "impact": 0 + } + }, + { + "prev": "a68586f11d219af67a772abdc0b3eb036d1eb8ca", + "curr": "e465394b840ca12ac5ef18d7c8224179e8f32d3d", + "commit": { + "hash": "e465394b840ca12ac5ef18d7c8224179e8f32d3d", + "short": "e465394", + "subject": "PR5 [2/4]: add Rust test verifying calls edges flow through merge()", + "author": "adgk2349", + "date": "2026-03-05T23:14:51+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "e465394b840ca12ac5ef18d7c8224179e8f32d3d", + "curr": "8654d3fafb365c2764dc10baf819833628ae274e", + "commit": { + "hash": "8654d3fafb365c2764dc10baf819833628ae274e", + "short": "8654d3f", + "subject": "PR5 [3/4]: VSCode — local Cytoscape, CSP fix, direct-call highlight", + "author": "adgk2349", + "date": "2026-03-05T23:16:09+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "8654d3fafb365c2764dc10baf819833628ae274e", + "curr": "b0aeed8029dd826ab8b91edd9254b8e9be16830a", + "commit": { + "hash": "b0aeed8029dd826ab8b91edd9254b8e9be16830a", + "short": "b0aeed8", + "subject": "PR5 [4/4]: document same-file calls edges in README", + "author": "adgk2349", + "date": "2026-03-05T23:16:52+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "b0aeed8029dd826ab8b91edd9254b8e9be16830a", + "curr": "76df8d750d33a16295427c5d28cedb48f7c2de3a", + "commit": { + "hash": "76df8d750d33a16295427c5d28cedb48f7c2de3a", + "short": "76df8d7", + "subject": "fix(engine): remove needless borrows in build_swift_graph (clippy)", + "author": "adgk2349", + "date": "2026-03-05T23:18:01+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "76df8d750d33a16295427c5d28cedb48f7c2de3a", + "curr": "58c362443a969c3063fe8fdcc3a2b805dc8bea31", + "commit": { + "hash": "58c362443a969c3063fe8fdcc3a2b805dc8bea31", + "short": "58c3624", + "subject": "Merge pull request #5 from adgk2349/flowmap-pr5", + "author": "방구석_코드스미스", + "date": "2026-03-05T23:32:38+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "58c362443a969c3063fe8fdcc3a2b805dc8bea31", + "curr": "ae2497be85e7b663f0ec6f918a7557eaa1b0c77f", + "commit": { + "hash": "ae2497be85e7b663f0ec6f918a7557eaa1b0c77f", + "short": "ae2497b", + "subject": "PR6 [1/4]: add auto-analyze settings + toggle command to package.json", + "author": "adgk2349", + "date": "2026-03-05T23:43:48+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "ae2497be85e7b663f0ec6f918a7557eaa1b0c77f", + "curr": "3cd11ac74297cee14c18987e3b8650b3004820d6", + "commit": { + "hash": "3cd11ac74297cee14c18987e3b8650b3004820d6", + "short": "3cd11ac", + "subject": "PR6 [2/4]: auto-analyze on save — debounce + concurrency guard + silent update", + "author": "adgk2349", + "date": "2026-03-05T23:44:56+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "3cd11ac74297cee14c18987e3b8650b3004820d6", + "curr": "0b11350af0564a1e292a9431dbb9ff9a5059f136", + "commit": { + "hash": "0b11350af0564a1e292a9431dbb9ff9a5059f136", + "short": "0b11350", + "subject": "PR6 [3/4]: webview — Clean/Changed badge + muted unchanged node styling", + "author": "adgk2349", + "date": "2026-03-05T23:47:01+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "0b11350af0564a1e292a9431dbb9ff9a5059f136", + "curr": "2b02d201c2e2f31957fb3f5eb97c343458d5a4dd", + "commit": { + "hash": "2b02d201c2e2f31957fb3f5eb97c343458d5a4dd", + "short": "2b02d20", + "subject": "PR6 [4/4]: README — document auto-analyze on save and status badge", + "author": "adgk2349", + "date": "2026-03-05T23:47:46+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "2b02d201c2e2f31957fb3f5eb97c343458d5a4dd", + "curr": "503734844bee4717f62e9cecc1fa49af5b2affd9", + "commit": { + "hash": "503734844bee4717f62e9cecc1fa49af5b2affd9", + "short": "5037348", + "subject": "Merge pull request #6 from adgk2349/flowmap-pr6", + "author": "방구석_코드스미스", + "date": "2026-03-06T00:15:13+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "503734844bee4717f62e9cecc1fa49af5b2affd9", + "curr": "253274c8e3b543f2bc7eeda0b1554d36bb255f29", + "commit": { + "hash": "253274c8e3b543f2bc7eeda0b1554d36bb255f29", + "short": "253274c", + "subject": "PR7 [1/4]: add license.ts module + package.json (commands, setting)", + "author": "adgk2349", + "date": "2026-03-06T00:19:57+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "253274c8e3b543f2bc7eeda0b1554d36bb255f29", + "curr": "b30e589a1530fae8226282b11c1fe676db527e44", + "commit": { + "hash": "b30e589a1530fae8226282b11c1fe676db527e44", + "short": "b30e589", + "subject": "PR7 [2/4]: extension.ts + graphView.ts — status bar + license commands", + "author": "adgk2349", + "date": "2026-03-06T00:23:03+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "b30e589a1530fae8226282b11c1fe676db527e44", + "curr": "b319dd3655af6b5916630d1bb7e72cbdcc5bc963", + "commit": { + "hash": "b319dd3655af6b5916630d1bb7e72cbdcc5bc963", + "short": "b319dd3", + "subject": "PR7 [3/4]: webview — license badge (Free / ★ Pro)", + "author": "adgk2349", + "date": "2026-03-06T00:25:09+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "b319dd3655af6b5916630d1bb7e72cbdcc5bc963", + "curr": "a8051c0fd29df742d22e542be002d65cf7523db1", + "commit": { + "hash": "a8051c0fd29df742d22e542be002d65cf7523db1", + "short": "a8051c0", + "subject": "PR7 [4/4]: README — licensing scaffolding documentation", + "author": "adgk2349", + "date": "2026-03-06T00:26:52+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "a8051c0fd29df742d22e542be002d65cf7523db1", + "curr": "ac61641e43756bf30c0bd1942088dffef56b12f6", + "commit": { + "hash": "ac61641e43756bf30c0bd1942088dffef56b12f6", + "short": "ac61641", + "subject": "Merge pull request #7 from adgk2349/flowmap-pr7", + "author": "방구석_코드스미스", + "date": "2026-03-06T00:53:19+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "ac61641e43756bf30c0bd1942088dffef56b12f6", + "curr": "c83ebbecc8f2999f7198b9469444dff3f4f54428", + "commit": { + "hash": "c83ebbecc8f2999f7198b9469444dff3f4f54428", + "short": "c83ebbe", + "subject": "PR8 Part 1+2+6: graph.html — toolbar, dark background, search+layout slots", + "author": "adgk2349", + "date": "2026-03-06T01:19:39+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "c83ebbecc8f2999f7198b9469444dff3f4f54428", + "curr": "896cd783b8f7e0d0e263be451f6ae2f08074bd2f", + "commit": { + "hash": "896cd783b8f7e0d0e263be451f6ae2f08074bd2f", + "short": "896cd78", + "subject": "PR8 Parts 1-8: graph.js — files-only view, grid layout, toolbar, search, expansion", + "author": "adgk2349", + "date": "2026-03-06T01:20:02+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "896cd783b8f7e0d0e263be451f6ae2f08074bd2f", + "curr": "82759a36e576d281901105ac5739c18ee6431626", + "commit": { + "hash": "82759a36e576d281901105ac5739c18ee6431626", + "short": "82759a3", + "subject": "PR8: README — large graph UX overhaul documentation", + "author": "adgk2349", + "date": "2026-03-06T01:20:56+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "82759a36e576d281901105ac5739c18ee6431626", + "curr": "42276142d9811d54f0a3297dc32fbcac30c9d769", + "commit": { + "hash": "42276142d9811d54f0a3297dc32fbcac30c9d769", + "short": "4227614", + "subject": "Merge pull request #8 from adgk2349/flowmap-pr8", + "author": "방구석_코드스미스", + "date": "2026-03-06T01:26:24+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "42276142d9811d54f0a3297dc32fbcac30c9d769", + "curr": "935ee3cf31aafd5b4b1d2feed3ca4001d8dc9adf", + "commit": { + "hash": "935ee3cf31aafd5b4b1d2feed3ca4001d8dc9adf", + "short": "935ee3c", + "subject": "PR8.1 Parts 1-4: fix empty initial view, grid layout, search clump, button robustness", + "author": "adgk2349", + "date": "2026-03-06T01:35:19+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "935ee3cf31aafd5b4b1d2feed3ca4001d8dc9adf", + "curr": "b8ca3ca492e9dd88ba691ba50c3e4ba2189f0076", + "commit": { + "hash": "b8ca3ca492e9dd88ba691ba50c3e4ba2189f0076", + "short": "b8ca3ca", + "subject": "PR8.1 Part 5: empty state, compact toolbar, legend gap below toolbar", + "author": "adgk2349", + "date": "2026-03-06T01:35:30+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "b8ca3ca492e9dd88ba691ba50c3e4ba2189f0076", + "curr": "7d14211a2c06baa72c8131fdc0d32ced9239fe2e", + "commit": { + "hash": "7d14211a2c06baa72c8131fdc0d32ced9239fe2e", + "short": "7d14211", + "subject": "PR8.2: Fix mode-switch blank graph + unreliable Fit after search", + "author": "adgk2349", + "date": "2026-03-06T02:03:15+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "7d14211a2c06baa72c8131fdc0d32ced9239fe2e", + "curr": "a4a29d300dbd8946ca272dbb909abd176c52255a", + "commit": { + "hash": "a4a29d300dbd8946ca272dbb909abd176c52255a", + "short": "a4a29d3", + "subject": "Merge pull request #9 from adgk2349/flowmap-pr8-2", + "author": "방구석_코드스미스", + "date": "2026-03-06T02:08:46+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "a4a29d300dbd8946ca272dbb909abd176c52255a", + "curr": "5b2d25067a53e5245e8be57de3c55f831a2b344d", + "commit": { + "hash": "5b2d25067a53e5245e8be57de3c55f831a2b344d", + "short": "5b2d250", + "subject": "PR8.2.1: Fix panel-open blank graph — analysis handshake + Analyze Workspace button", + "author": "adgk2349", + "date": "2026-03-06T19:20:36+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "5b2d25067a53e5245e8be57de3c55f831a2b344d", + "curr": "445bc713307a3cb420270d8fbd3011fb5f928c8d", + "commit": { + "hash": "445bc713307a3cb420270d8fbd3011fb5f928c8d", + "short": "445bc71", + "subject": "PR8.2.2: Diagnostics, robust payload shape, cy-guard, defensive render", + "author": "adgk2349", + "date": "2026-03-06T19:49:11+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "445bc713307a3cb420270d8fbd3011fb5f928c8d", + "curr": "904e6a62a8c680a01e38f730572b4e9101cab508", + "commit": { + "hash": "904e6a62a8c680a01e38f730572b4e9101cab508", + "short": "904e6a6", + "subject": "PR8.2.3-debug: Flat file-node render to isolate blank-graph root cause", + "author": "adgk2349", + "date": "2026-03-06T20:55:31+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "904e6a62a8c680a01e38f730572b4e9101cab508", + "curr": "d7e613bb4c265e81ade75e66640c43265732a57c", + "commit": { + "hash": "d7e613bb4c265e81ade75e66640c43265732a57c", + "short": "d7e613b", + "subject": "PR8.2.4 (1/2): Promote flat file-card render as permanent default view", + "author": "adgk2349", + "date": "2026-03-06T22:06:22+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "d7e613bb4c265e81ade75e66640c43265732a57c", + "curr": "8a4529eed7ab51828fdbb86235c643347bac458b", + "commit": { + "hash": "8a4529eed7ab51828fdbb86235c643347bac458b", + "short": "8a4529e", + "subject": "PR8.2.4 (2/2): Drill-down, mode-aware search, robust Calls mode", + "author": "adgk2349", + "date": "2026-03-06T22:08:30+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "8a4529eed7ab51828fdbb86235c643347bac458b", + "curr": "0dc29d38674576e8331c6e8e33f0d85915ee048c", + "commit": { + "hash": "0dc29d38674576e8331c6e8e33f0d85915ee048c", + "short": "0dc29d3", + "subject": "PR8.2.4: Update engine deps, CI, protocol, and client for flat file-card architecture", + "author": "adgk2349", + "date": "2026-03-06T22:30:05+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "0dc29d38674576e8331c6e8e33f0d85915ee048c", + "curr": "e5c8db6e7bd064b5b9901f4c47e819424917886b", + "commit": { + "hash": "e5c8db6e7bd064b5b9901f4c47e819424917886b", + "short": "e5c8db6", + "subject": "Merge pull request #10 from adgk2349/flowmap-pr8-2-4", + "author": "방구석_코드스미스", + "date": "2026-03-06T22:35:55+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "e5c8db6e7bd064b5b9901f4c47e819424917886b", + "curr": "73e9eda3d36139fae478a9bbcc8d9ef5b5036634", + "commit": { + "hash": "73e9eda3d36139fae478a9bbcc8d9ef5b5036634", + "short": "73e9eda", + "subject": "PR8.3 (1/2): Mode vocab + Back button + detail header", + "author": "adgk2349", + "date": "2026-03-07T00:11:50+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "73e9eda3d36139fae478a9bbcc8d9ef5b5036634", + "curr": "280756bdf4855066dc4a60237bbff7d8f2c5e1a0", + "commit": { + "hash": "280756bdf4855066dc4a60237bbff7d8f2c5e1a0", + "short": "280756b", + "subject": "PR8.3 (2/2): Visual overhaul — pills, tints, labels, tooltip, colors", + "author": "adgk2349", + "date": "2026-03-07T00:16:04+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "280756bdf4855066dc4a60237bbff7d8f2c5e1a0", + "curr": "67d41186a9cc60e4f207141c97ab23bafefc4620", + "commit": { + "hash": "67d41186a9cc60e4f207141c97ab23bafefc4620", + "short": "67d4118", + "subject": "PR8.4 (1/2): Mindmap overview model — folder/file hierarchy + radial layout", + "author": "adgk2349", + "date": "2026-03-07T01:09:40+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "67d41186a9cc60e4f207141c97ab23bafefc4620", + "curr": "c648e9f0e3d9be44002dc4d76a1cc0251a6324a9", + "commit": { + "hash": "c648e9f0e3d9be44002dc4d76a1cc0251a6324a9", + "short": "c648e9f", + "subject": "PR8.4 (2/2): Mindmap styles, folder expand/collapse, hover states", + "author": "adgk2349", + "date": "2026-03-07T01:11:08+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "c648e9f0e3d9be44002dc4d76a1cc0251a6324a9", + "curr": "8c2a40bf6e3d5b61e8bef0a9de170d31210513f4", + "commit": { + "hash": "8c2a40bf6e3d5b61e8bef0a9de170d31210513f4", + "short": "8c2a40b", + "subject": "PR8.5: Spacious calls layout — component detection + grid arrangement", + "author": "adgk2349", + "date": "2026-03-07T01:48:01+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "8c2a40bf6e3d5b61e8bef0a9de170d31210513f4", + "curr": "6d9c2e2d9e71987c65024e47b9294d38ffbdb233", + "commit": { + "hash": "6d9c2e2d9e71987c65024e47b9294d38ffbdb233", + "short": "6d9c2e2", + "subject": "PR8.6 (1/2): Spacing constants + strict file-detail aligned layout", + "author": "adgk2349", + "date": "2026-03-07T02:03:52+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "6d9c2e2d9e71987c65024e47b9294d38ffbdb233", + "curr": "b9729d291fff4835a3ac4a3308ef84f7bc448e36", + "commit": { + "hash": "b9729d291fff4835a3ac4a3308ef84f7bc448e36", + "short": "b9729d2", + "subject": "PR8.6 (2/2): Calls mode — COMPONENT_GAP + stronger cose spacing", + "author": "adgk2349", + "date": "2026-03-07T02:05:23+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "b9729d291fff4835a3ac4a3308ef84f7bc448e36", + "curr": "6e619f7d1c5d60ff5ef56f3ea4d18f2ff6c32cfb", + "commit": { + "hash": "6e619f7d1c5d60ff5ef56f3ea4d18f2ff6c32cfb", + "short": "6e619f7", + "subject": "PR8.7: Calls mode redesign — component panels with normalized aligned layout", + "author": "adgk2349", + "date": "2026-03-07T05:44:55+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "6e619f7d1c5d60ff5ef56f3ea4d18f2ff6c32cfb", + "curr": "f0b947dac70bb3705bee1947273627a278c6bd57", + "commit": { + "hash": "f0b947dac70bb3705bee1947273627a278c6bd57", + "short": "f0b947d", + "subject": "Merge pull request #11 from adgk2349/flowmap-pr8-7", + "author": "방구석_코드스미스", + "date": "2026-03-07T06:08:50+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "f0b947dac70bb3705bee1947273627a278c6bd57", + "curr": "d7d22e80514c57238a602615a10a469f28b2dc56", + "commit": { + "hash": "d7d22e80514c57238a602615a10a469f28b2dc56", + "short": "d7d22e8", + "subject": "PR8.8: Calls layout fix — compact vertical stacking instead of wide horizontal rows", + "author": "adgk2349", + "date": "2026-03-07T06:14:29+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "d7d22e80514c57238a602615a10a469f28b2dc56", + "curr": "49fd7315c2575300686b89f68761b4a12711850c", + "commit": { + "hash": "49fd7315c2575300686b89f68761b4a12711850c", + "short": "49fd731", + "subject": "PR8.9: Calls mode irregular dense packing (skyline bottom-left algorithm)", + "author": "adgk2349", + "date": "2026-03-07T06:35:11+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "49fd7315c2575300686b89f68761b4a12711850c", + "curr": "e7204df302d1ddce494c9a93096a94367687a511", + "commit": { + "hash": "e7204df302d1ddce494c9a93096a94367687a511", + "short": "e7204df", + "subject": "Merge pull request #12 from adgk2349/flowmap-pr8-9", + "author": "방구석_코드스미스", + "date": "2026-03-07T10:56:47+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "e7204df302d1ddce494c9a93096a94367687a511", + "curr": "1c99ae9107155b4ef2d57e10177a719d0fd73b09", + "commit": { + "hash": "1c99ae9107155b4ef2d57e10177a719d0fd73b09", + "short": "1c99ae9", + "subject": "PR8.9.1: Tighten calls packing density (smaller tile gaps + tighter fit)", + "author": "adgk2349", + "date": "2026-03-07T11:01:44+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "1c99ae9107155b4ef2d57e10177a719d0fd73b09", + "curr": "30c41b3e6f796ca60db7920f9e1e79bebbd7ab77", + "commit": { + "hash": "30c41b3e6f796ca60db7920f9e1e79bebbd7ab77", + "short": "30c41b3", + "subject": "Merge pull request #14 from adgk2349/flowmap-pr8-9-1", + "author": "방구석_코드스미스", + "date": "2026-03-07T11:41:30+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "30c41b3e6f796ca60db7920f9e1e79bebbd7ab77", + "curr": "a6ffa69dfea240f9975e97d9400c61b13df7f156", + "commit": { + "hash": "a6ffa69dfea240f9975e97d9400c61b13df7f156", + "short": "a6ffa69", + "subject": "PR9: Swift cross-file calls — workspace-wide symbol linking, conservative matching", + "author": "adgk2349", + "date": "2026-03-07T11:28:15+09:00" + }, + "swift_changed": true, + "swift_files": [ + "parsers/swift-ast/Sources/FlowMapSwiftAST/main.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 15, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 19, + "impact": 0 + } + }, + { + "prev": "a6ffa69dfea240f9975e97d9400c61b13df7f156", + "curr": "f98d12a81d5d17d8e29cd6aff470efbdde4f62e3", + "commit": { + "hash": "f98d12a81d5d17d8e29cd6aff470efbdde4f62e3", + "short": "f98d12a", + "subject": "Merge pull request #13 from adgk2349/flowmap-pr9", + "author": "방구석_코드스미스", + "date": "2026-03-07T11:47:54+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 16, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 20, + "impact": 0 + } + }, + { + "prev": "f98d12a81d5d17d8e29cd6aff470efbdde4f62e3", + "curr": "3e89fbfe3fede24aab4bc1aad4135b5a88432be8", + "commit": { + "hash": "3e89fbfe3fede24aab4bc1aad4135b5a88432be8", + "short": "3e89fbf", + "subject": "Apply code review findings & CI optimizations", + "author": "adgk2349", + "date": "2026-03-07T11:53:02+09:00" + }, + "swift_changed": true, + "swift_files": [ + "parsers/swift-ast/Sources/FlowMapSwiftAST/main.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 16, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 20, + "impact": 0 + } + }, + { + "prev": "3e89fbfe3fede24aab4bc1aad4135b5a88432be8", + "curr": "f2e54406651eec4b505c339639e3959a0519e22c", + "commit": { + "hash": "f2e54406651eec4b505c339639e3959a0519e22c", + "short": "f2e5440", + "subject": "docs: add public READMEs, localize to ko/ja, hide internal docs", + "author": "adgk2349", + "date": "2026-03-07T12:10:46+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 16, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 20, + "impact": 0 + } + }, + { + "prev": "f2e54406651eec4b505c339639e3959a0519e22c", + "curr": "c6b57851550dca5ec9b4e53e84e8fc4b4385c1f3", + "commit": { + "hash": "c6b57851550dca5ec9b4e53e84e8fc4b4385c1f3", + "short": "c6b5785", + "subject": "docs: polish public README set (en/ko/ja) for release", + "author": "adgk2349", + "date": "2026-03-07T12:19:15+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 16, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 20, + "impact": 0 + } + }, + { + "prev": "c6b57851550dca5ec9b4e53e84e8fc4b4385c1f3", + "curr": "55c12993dc9206374212c9e34232eeec75287039", + "commit": { + "hash": "55c12993dc9206374212c9e34232eeec75287039", + "short": "55c1299", + "subject": "Merge pull request #15 from adgk2349/flowmap-pr9", + "author": "방구석_코드스미스", + "date": "2026-03-07T12:27:21+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 16, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 20, + "impact": 0 + } + }, + { + "prev": "55c12993dc9206374212c9e34232eeec75287039", + "curr": "945fe158ddea4400c7a785b6736837c7e967329d", + "commit": { + "hash": "945fe158ddea4400c7a785b6736837c7e967329d", + "short": "945fe15", + "subject": "PR8.10: Fix file-detail blank view — debug selectors + force visible detail nodes", + "author": "adgk2349", + "date": "2026-03-07T12:57:18+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 16, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 20, + "impact": 0 + } + }, + { + "prev": "945fe158ddea4400c7a785b6736837c7e967329d", + "curr": "7fbe572eebd94d6b951477054ff31c10cd020a35", + "commit": { + "hash": "7fbe572eebd94d6b951477054ff31c10cd020a35", + "short": "7fbe572", + "subject": "Merge pull request #16 from adgk2349/flowmap-pr8-10-file-detail-fix", + "author": "방구석_코드스미스", + "date": "2026-03-07T13:35:04+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 16, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 20, + "impact": 0 + } + }, + { + "prev": "7fbe572eebd94d6b951477054ff31c10cd020a35", + "curr": "82659c290404532e3316387de5baac016356eecb", + "commit": { + "hash": "82659c290404532e3316387de5baac016356eecb", + "short": "82659c2", + "subject": "docs: Update screenshots with latest UI", + "author": "adgk2349", + "date": "2026-03-07T13:38:45+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 16, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 20, + "impact": 0 + } + }, + { + "prev": "82659c290404532e3316387de5baac016356eecb", + "curr": "b0d8a3abc4d1228faa5cc915d5ec50057f54f07d", + "commit": { + "hash": "b0d8a3abc4d1228faa5cc915d5ec50057f54f07d", + "short": "b0d8a3a", + "subject": "docs: Update contact information", + "author": "adgk2349", + "date": "2026-03-07T13:45:46+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": true, + "expected_changed": false, + "status": "fail_non_swift_fp", + "counts": { + "added_nodes": 0, + "removed_nodes": 16, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 20, + "impact": 0 + } + } + ] +} diff --git a/reports/replay-heavy-swift-full-strict.json b/reports/replay-heavy-swift-full-strict.json new file mode 100644 index 0000000..5878dd1 --- /dev/null +++ b/reports/replay-heavy-swift-full-strict.json @@ -0,0 +1,3134 @@ +{ + "created_at": "2026-03-07T07:39:35.030Z", + "mode": "commit-replay", + "config": { + "repo": "/tmp/flowmap-heavy-swift-repo", + "rev": "HEAD", + "count": 121, + "strict_swift": true, + "keep_temp": false, + "report_path": "/Users/seungminlee/Desktop/Development/FlowMap/reports/replay-heavy-swift-full-strict.json" + }, + "binaries": { + "flowmap": "/Users/seungminlee/Desktop/Development/FlowMap/target/debug/flowmap", + "parser": "/Users/seungminlee/Desktop/Development/FlowMap/parsers/swift-ast/.build/debug/flowmap-swift-ast" + }, + "summary": { + "total_pairs": 120, + "pass_pairs": 120, + "warn_pairs": 0, + "failed_pairs": 0, + "error_pairs": 0, + "swift_pairs": 100, + "non_swift_pairs": 20, + "confusion": { + "tp": 100, + "tn": 20, + "fp": 0, + "fn": 0 + }, + "non_swift_fp_rate": 0, + "swift_detection_rate": 1, + "gate": { + "max_non_swift_fp_rate": 0, + "max_errors": 0, + "strict_swift_required": true + }, + "gate_passed": true + }, + "results": [ + { + "prev": "174e5f60149bfdab0ef4fec2997dfabef9f455e9", + "curr": "a4d6e80937f7359b240baa6fbe5c0b4f08af0026", + "commit": { + "hash": "a4d6e80937f7359b240baa6fbe5c0b4f08af0026", + "short": "a4d6e80", + "subject": "swift: add call pair 1", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "a4d6e80937f7359b240baa6fbe5c0b4f08af0026", + "curr": "3144dca64d7fb450c69f27a62a7e750d0410222e", + "commit": { + "hash": "3144dca64d7fb450c69f27a62a7e750d0410222e", + "short": "3144dca", + "subject": "swift: add call pair 2", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "3144dca64d7fb450c69f27a62a7e750d0410222e", + "curr": "9515b1162eab14a5207c9d06a888cfa77d4e71f0", + "commit": { + "hash": "9515b1162eab14a5207c9d06a888cfa77d4e71f0", + "short": "9515b11", + "subject": "swift: add call pair 3", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "9515b1162eab14a5207c9d06a888cfa77d4e71f0", + "curr": "bc94e79d4c4f082674c3ea8a33add0d218f4bc4e", + "commit": { + "hash": "bc94e79d4c4f082674c3ea8a33add0d218f4bc4e", + "short": "bc94e79", + "subject": "swift: add call pair 4", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "bc94e79d4c4f082674c3ea8a33add0d218f4bc4e", + "curr": "8a7c524b4b6e810a01f6ccd4f799be7d766830dd", + "commit": { + "hash": "8a7c524b4b6e810a01f6ccd4f799be7d766830dd", + "short": "8a7c524", + "subject": "swift: add call pair 5", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "8a7c524b4b6e810a01f6ccd4f799be7d766830dd", + "curr": "da16b4f67aa5cc3853189206b8ebff0045c43f29", + "commit": { + "hash": "da16b4f67aa5cc3853189206b8ebff0045c43f29", + "short": "da16b4f", + "subject": "docs: update 6", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "da16b4f67aa5cc3853189206b8ebff0045c43f29", + "curr": "71647d7363d1183ac20497ae6768b9d31867cc80", + "commit": { + "hash": "71647d7363d1183ac20497ae6768b9d31867cc80", + "short": "71647d7", + "subject": "swift: add call pair 7", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/App.swift", + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "71647d7363d1183ac20497ae6768b9d31867cc80", + "curr": "fd00061f3053766d5f6ec08f5e6ce865864fc950", + "commit": { + "hash": "fd00061f3053766d5f6ec08f5e6ce865864fc950", + "short": "fd00061", + "subject": "swift: add call pair 8", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "fd00061f3053766d5f6ec08f5e6ce865864fc950", + "curr": "e763cc6954115f03ccc756fc50d64d54d0e6864b", + "commit": { + "hash": "e763cc6954115f03ccc756fc50d64d54d0e6864b", + "short": "e763cc6", + "subject": "swift: add call pair 9", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "e763cc6954115f03ccc756fc50d64d54d0e6864b", + "curr": "b4a1241e3dd75ea6deda99d808c3f4a85add24d6", + "commit": { + "hash": "b4a1241e3dd75ea6deda99d808c3f4a85add24d6", + "short": "b4a1241", + "subject": "swift: add util_10", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 1, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 1, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "b4a1241e3dd75ea6deda99d808c3f4a85add24d6", + "curr": "cbfc75f260207e02c09f6821dac25d1fc8b7e7cc", + "commit": { + "hash": "cbfc75f260207e02c09f6821dac25d1fc8b7e7cc", + "short": "cbfc75f", + "subject": "swift: add call pair 11", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "cbfc75f260207e02c09f6821dac25d1fc8b7e7cc", + "curr": "8a35ea6e097252009a74a73b42eb75eb467bc0f6", + "commit": { + "hash": "8a35ea6e097252009a74a73b42eb75eb467bc0f6", + "short": "8a35ea6", + "subject": "docs: update 12", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "8a35ea6e097252009a74a73b42eb75eb467bc0f6", + "curr": "265763a88a00f55acddfd3dc6e0eda7b18d31823", + "commit": { + "hash": "265763a88a00f55acddfd3dc6e0eda7b18d31823", + "short": "265763a", + "subject": "swift: add call pair 13", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "265763a88a00f55acddfd3dc6e0eda7b18d31823", + "curr": "220f5693acf6d35d9423cb0a900eda6aa92d0572", + "commit": { + "hash": "220f5693acf6d35d9423cb0a900eda6aa92d0572", + "short": "220f569", + "subject": "swift: add call pair 14", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/App.swift", + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "220f5693acf6d35d9423cb0a900eda6aa92d0572", + "curr": "8bcf50d212e51bb52ae4e9889f80f732060f6474", + "commit": { + "hash": "8bcf50d212e51bb52ae4e9889f80f732060f6474", + "short": "8bcf50d", + "subject": "swift: add feature file 15", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Feature15.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 2, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "8bcf50d212e51bb52ae4e9889f80f732060f6474", + "curr": "d997f24e6cc555562c101f99d443d1600e21f085", + "commit": { + "hash": "d997f24e6cc555562c101f99d443d1600e21f085", + "short": "d997f24", + "subject": "swift: add call pair 16", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "d997f24e6cc555562c101f99d443d1600e21f085", + "curr": "1320075658eb041d1eb2fd00571a207e2d6e93f5", + "commit": { + "hash": "1320075658eb041d1eb2fd00571a207e2d6e93f5", + "short": "1320075", + "subject": "swift: add call pair 17", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "1320075658eb041d1eb2fd00571a207e2d6e93f5", + "curr": "388ed712291a6b6484339213e106ccfcdfe27448", + "commit": { + "hash": "388ed712291a6b6484339213e106ccfcdfe27448", + "short": "388ed71", + "subject": "docs: update 18", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "388ed712291a6b6484339213e106ccfcdfe27448", + "curr": "e80e575ed6c06248541b8499406ec24fc0e5ea3b", + "commit": { + "hash": "e80e575ed6c06248541b8499406ec24fc0e5ea3b", + "short": "e80e575", + "subject": "swift: add call pair 19", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "e80e575ed6c06248541b8499406ec24fc0e5ea3b", + "curr": "ad6b0ed7a96ccdeff6a43368a53e67910c84847b", + "commit": { + "hash": "ad6b0ed7a96ccdeff6a43368a53e67910c84847b", + "short": "ad6b0ed", + "subject": "swift: add util_20", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 1, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 1, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "ad6b0ed7a96ccdeff6a43368a53e67910c84847b", + "curr": "c5ec16b8389ed8a69d6a7632fac666f2b7d228d6", + "commit": { + "hash": "c5ec16b8389ed8a69d6a7632fac666f2b7d228d6", + "short": "c5ec16b", + "subject": "swift: add call pair 21", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/App.swift", + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "c5ec16b8389ed8a69d6a7632fac666f2b7d228d6", + "curr": "14966f5725c12effeff54c8e3950c06a0ea8e922", + "commit": { + "hash": "14966f5725c12effeff54c8e3950c06a0ea8e922", + "short": "14966f5", + "subject": "swift: add call pair 22", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "14966f5725c12effeff54c8e3950c06a0ea8e922", + "curr": "6180ca4a699e5b3b2c9c53a4991a1d43aeef5c86", + "commit": { + "hash": "6180ca4a699e5b3b2c9c53a4991a1d43aeef5c86", + "short": "6180ca4", + "subject": "swift: add call pair 23", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "6180ca4a699e5b3b2c9c53a4991a1d43aeef5c86", + "curr": "28646464d3d5be177f1c0ef8e3e4311d80eb9732", + "commit": { + "hash": "28646464d3d5be177f1c0ef8e3e4311d80eb9732", + "short": "2864646", + "subject": "docs: update 24", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "28646464d3d5be177f1c0ef8e3e4311d80eb9732", + "curr": "0257b3d1eb70a3725a3cd5654a017f14e8dc0359", + "commit": { + "hash": "0257b3d1eb70a3725a3cd5654a017f14e8dc0359", + "short": "0257b3d", + "subject": "swift: add call pair 25", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "0257b3d1eb70a3725a3cd5654a017f14e8dc0359", + "curr": "3b298d369ef9a4566bb33eae33bf8029735bdcb6", + "commit": { + "hash": "3b298d369ef9a4566bb33eae33bf8029735bdcb6", + "short": "3b298d3", + "subject": "swift: add call pair 26", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "3b298d369ef9a4566bb33eae33bf8029735bdcb6", + "curr": "4cb8868110a4a5bc1a5602a50f00ee060a5a72d2", + "commit": { + "hash": "4cb8868110a4a5bc1a5602a50f00ee060a5a72d2", + "short": "4cb8868", + "subject": "swift: add call pair 27", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "4cb8868110a4a5bc1a5602a50f00ee060a5a72d2", + "curr": "18b9f3640a05783e4c7942cc32e9479e944abb7a", + "commit": { + "hash": "18b9f3640a05783e4c7942cc32e9479e944abb7a", + "short": "18b9f36", + "subject": "swift: add call pair 28", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/App.swift", + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "18b9f3640a05783e4c7942cc32e9479e944abb7a", + "curr": "5cf5f3309b71cbef8a9827184768f937307d567d", + "commit": { + "hash": "5cf5f3309b71cbef8a9827184768f937307d567d", + "short": "5cf5f33", + "subject": "swift: add call pair 29", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "5cf5f3309b71cbef8a9827184768f937307d567d", + "curr": "a59b18a2d0fc1ae353790827e7e6b01a08c06052", + "commit": { + "hash": "a59b18a2d0fc1ae353790827e7e6b01a08c06052", + "short": "a59b18a", + "subject": "docs: update 30", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "a59b18a2d0fc1ae353790827e7e6b01a08c06052", + "curr": "0d39854e872256d9aff26d4e631bc7facc36f9eb", + "commit": { + "hash": "0d39854e872256d9aff26d4e631bc7facc36f9eb", + "short": "0d39854", + "subject": "swift: add call pair 31", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "0d39854e872256d9aff26d4e631bc7facc36f9eb", + "curr": "beb272c799f63b61ed496ea443aa91f4b4398c6e", + "commit": { + "hash": "beb272c799f63b61ed496ea443aa91f4b4398c6e", + "short": "beb272c", + "subject": "swift: add call pair 32", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "beb272c799f63b61ed496ea443aa91f4b4398c6e", + "curr": "bfd7075ac49de080bdd1e800c26d838ffeeb34df", + "commit": { + "hash": "bfd7075ac49de080bdd1e800c26d838ffeeb34df", + "short": "bfd7075", + "subject": "swift: add call pair 33", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "bfd7075ac49de080bdd1e800c26d838ffeeb34df", + "curr": "b9648979a04e68a5e6223598ed258aad35f54a01", + "commit": { + "hash": "b9648979a04e68a5e6223598ed258aad35f54a01", + "short": "b964897", + "subject": "swift: add call pair 34", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "b9648979a04e68a5e6223598ed258aad35f54a01", + "curr": "5b604e811aeb342747996e6445e0d7e15414eb24", + "commit": { + "hash": "5b604e811aeb342747996e6445e0d7e15414eb24", + "short": "5b604e8", + "subject": "swift: add call pair 35", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/App.swift", + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "5b604e811aeb342747996e6445e0d7e15414eb24", + "curr": "d5fd7cd5a07efd35842f76f81a1a90fb9501ec8d", + "commit": { + "hash": "d5fd7cd5a07efd35842f76f81a1a90fb9501ec8d", + "short": "d5fd7cd", + "subject": "docs: update 36", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "d5fd7cd5a07efd35842f76f81a1a90fb9501ec8d", + "curr": "88b18434d25957b3ac28692deed9a647d62d6e00", + "commit": { + "hash": "88b18434d25957b3ac28692deed9a647d62d6e00", + "short": "88b1843", + "subject": "swift: add call pair 37", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "88b18434d25957b3ac28692deed9a647d62d6e00", + "curr": "5ebf96857e71f5946a7c177d04ea416b2d6d9321", + "commit": { + "hash": "5ebf96857e71f5946a7c177d04ea416b2d6d9321", + "short": "5ebf968", + "subject": "swift: add call pair 38", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "5ebf96857e71f5946a7c177d04ea416b2d6d9321", + "curr": "f220f298d52fcca7f3318c2fb6a64838a1eff528", + "commit": { + "hash": "f220f298d52fcca7f3318c2fb6a64838a1eff528", + "short": "f220f29", + "subject": "swift: add call pair 39", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "f220f298d52fcca7f3318c2fb6a64838a1eff528", + "curr": "5ba39ec31a23d645fd57cfd47dda55e6e058fa3d", + "commit": { + "hash": "5ba39ec31a23d645fd57cfd47dda55e6e058fa3d", + "short": "5ba39ec", + "subject": "swift: add util_40", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 1, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 1, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "5ba39ec31a23d645fd57cfd47dda55e6e058fa3d", + "curr": "3095fd643da6d071df79c744688045d8956536de", + "commit": { + "hash": "3095fd643da6d071df79c744688045d8956536de", + "short": "3095fd6", + "subject": "swift: add call pair 41", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "3095fd643da6d071df79c744688045d8956536de", + "curr": "1a9ed145c68ea16a55bc67f392a02ee96bb46dd7", + "commit": { + "hash": "1a9ed145c68ea16a55bc67f392a02ee96bb46dd7", + "short": "1a9ed14", + "subject": "docs: update 42", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "1a9ed145c68ea16a55bc67f392a02ee96bb46dd7", + "curr": "eaff3bd990589db73dd95be62db0c5384ad2db00", + "commit": { + "hash": "eaff3bd990589db73dd95be62db0c5384ad2db00", + "short": "eaff3bd", + "subject": "swift: add call pair 43", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "eaff3bd990589db73dd95be62db0c5384ad2db00", + "curr": "cd919902880b0c9db3f9d79250d8d681e8c45342", + "commit": { + "hash": "cd919902880b0c9db3f9d79250d8d681e8c45342", + "short": "cd91990", + "subject": "swift: add call pair 44", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "cd919902880b0c9db3f9d79250d8d681e8c45342", + "curr": "a9908e2c2ca252171b2512725d04315885f99e0d", + "commit": { + "hash": "a9908e2c2ca252171b2512725d04315885f99e0d", + "short": "a9908e2", + "subject": "swift: add feature file 45", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Feature45.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 2, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "a9908e2c2ca252171b2512725d04315885f99e0d", + "curr": "68907b81f9c786f8dc05095b2191723a433726fd", + "commit": { + "hash": "68907b81f9c786f8dc05095b2191723a433726fd", + "short": "68907b8", + "subject": "swift: add call pair 46", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "68907b81f9c786f8dc05095b2191723a433726fd", + "curr": "ace6915e6e17ed5f9bb62337a93f36e3538291c0", + "commit": { + "hash": "ace6915e6e17ed5f9bb62337a93f36e3538291c0", + "short": "ace6915", + "subject": "swift: add call pair 47", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "ace6915e6e17ed5f9bb62337a93f36e3538291c0", + "curr": "9e873faf523e465e04d1735418a99c9b8c438fcb", + "commit": { + "hash": "9e873faf523e465e04d1735418a99c9b8c438fcb", + "short": "9e873fa", + "subject": "docs: update 48", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "9e873faf523e465e04d1735418a99c9b8c438fcb", + "curr": "bd2340510d453a0cfa7920e1bb3e307e1dfe96e9", + "commit": { + "hash": "bd2340510d453a0cfa7920e1bb3e307e1dfe96e9", + "short": "bd23405", + "subject": "swift: add call pair 49", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/App.swift", + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "bd2340510d453a0cfa7920e1bb3e307e1dfe96e9", + "curr": "4a95d1d9941bc0e86ab89e91c636d9446370f1e7", + "commit": { + "hash": "4a95d1d9941bc0e86ab89e91c636d9446370f1e7", + "short": "4a95d1d", + "subject": "swift: add util_50", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 1, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 1, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "4a95d1d9941bc0e86ab89e91c636d9446370f1e7", + "curr": "254d6b890c94c4b1d57af4184bf4c1d5a197002c", + "commit": { + "hash": "254d6b890c94c4b1d57af4184bf4c1d5a197002c", + "short": "254d6b8", + "subject": "swift: add call pair 51", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "254d6b890c94c4b1d57af4184bf4c1d5a197002c", + "curr": "c88cabc87e18c84c1340d3b4c338577c432ef417", + "commit": { + "hash": "c88cabc87e18c84c1340d3b4c338577c432ef417", + "short": "c88cabc", + "subject": "swift: add call pair 52", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "c88cabc87e18c84c1340d3b4c338577c432ef417", + "curr": "8a097e78c3e4ec031d312bdcaab8cae2d812dd0c", + "commit": { + "hash": "8a097e78c3e4ec031d312bdcaab8cae2d812dd0c", + "short": "8a097e7", + "subject": "swift: add call pair 53", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "8a097e78c3e4ec031d312bdcaab8cae2d812dd0c", + "curr": "a9b348fae42b7987cfa8651fa60aa0cfcfc8ebe8", + "commit": { + "hash": "a9b348fae42b7987cfa8651fa60aa0cfcfc8ebe8", + "short": "a9b348f", + "subject": "docs: update 54", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "a9b348fae42b7987cfa8651fa60aa0cfcfc8ebe8", + "curr": "8364352b74f263dc8a71565c0762620b9f24e938", + "commit": { + "hash": "8364352b74f263dc8a71565c0762620b9f24e938", + "short": "8364352", + "subject": "swift: add call pair 55", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "8364352b74f263dc8a71565c0762620b9f24e938", + "curr": "b34f27da884357fa53d16f72d8efcb58707691e3", + "commit": { + "hash": "b34f27da884357fa53d16f72d8efcb58707691e3", + "short": "b34f27d", + "subject": "swift: add call pair 56", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/App.swift", + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "b34f27da884357fa53d16f72d8efcb58707691e3", + "curr": "ac87bdfd3d5a1f0326ec7e198a359acfa6f21d58", + "commit": { + "hash": "ac87bdfd3d5a1f0326ec7e198a359acfa6f21d58", + "short": "ac87bdf", + "subject": "swift: add call pair 57", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "ac87bdfd3d5a1f0326ec7e198a359acfa6f21d58", + "curr": "17f8b15984825a5863c1ee428762a921334f5356", + "commit": { + "hash": "17f8b15984825a5863c1ee428762a921334f5356", + "short": "17f8b15", + "subject": "swift: add call pair 58", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "17f8b15984825a5863c1ee428762a921334f5356", + "curr": "a563e4a14a757c2794ed7c1efd6554367b0cb51f", + "commit": { + "hash": "a563e4a14a757c2794ed7c1efd6554367b0cb51f", + "short": "a563e4a", + "subject": "swift: add call pair 59", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "a563e4a14a757c2794ed7c1efd6554367b0cb51f", + "curr": "c3fbcc65b5bce87380608a3bf60eeeee71c05791", + "commit": { + "hash": "c3fbcc65b5bce87380608a3bf60eeeee71c05791", + "short": "c3fbcc6", + "subject": "docs: update 60", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "c3fbcc65b5bce87380608a3bf60eeeee71c05791", + "curr": "d3b2bc90ae66cc5e505452340ad3b2e71583fa92", + "commit": { + "hash": "d3b2bc90ae66cc5e505452340ad3b2e71583fa92", + "short": "d3b2bc9", + "subject": "swift: add call pair 61", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "d3b2bc90ae66cc5e505452340ad3b2e71583fa92", + "curr": "d33ccaae6ab1f3004af8219b4e8c4950ba6a5716", + "commit": { + "hash": "d33ccaae6ab1f3004af8219b4e8c4950ba6a5716", + "short": "d33ccaa", + "subject": "swift: add call pair 62", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "d33ccaae6ab1f3004af8219b4e8c4950ba6a5716", + "curr": "6e7ccd7a38e5ed74838dd02a06c0926f58c7c489", + "commit": { + "hash": "6e7ccd7a38e5ed74838dd02a06c0926f58c7c489", + "short": "6e7ccd7", + "subject": "swift: add call pair 63", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/App.swift", + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "6e7ccd7a38e5ed74838dd02a06c0926f58c7c489", + "curr": "fb11dc3cc2523c92b64c19557d37f96cbc3f4e2f", + "commit": { + "hash": "fb11dc3cc2523c92b64c19557d37f96cbc3f4e2f", + "short": "fb11dc3", + "subject": "swift: add call pair 64", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "fb11dc3cc2523c92b64c19557d37f96cbc3f4e2f", + "curr": "a0d53e3f32185ccf6e34ecc8957c4a6197fe5627", + "commit": { + "hash": "a0d53e3f32185ccf6e34ecc8957c4a6197fe5627", + "short": "a0d53e3", + "subject": "swift: add call pair 65", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "a0d53e3f32185ccf6e34ecc8957c4a6197fe5627", + "curr": "a814fb011ae436bc66c3c30037424504cc0d3cbf", + "commit": { + "hash": "a814fb011ae436bc66c3c30037424504cc0d3cbf", + "short": "a814fb0", + "subject": "docs: update 66", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "a814fb011ae436bc66c3c30037424504cc0d3cbf", + "curr": "f87ac84336ac976be26751ccda92a097d0e6d3e2", + "commit": { + "hash": "f87ac84336ac976be26751ccda92a097d0e6d3e2", + "short": "f87ac84", + "subject": "swift: add call pair 67", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "f87ac84336ac976be26751ccda92a097d0e6d3e2", + "curr": "8a835c177ee547a3ea1eaec91b049b2921c5d683", + "commit": { + "hash": "8a835c177ee547a3ea1eaec91b049b2921c5d683", + "short": "8a835c1", + "subject": "swift: add call pair 68", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "8a835c177ee547a3ea1eaec91b049b2921c5d683", + "curr": "8512aafe25a2cdcb8e53fe66646b6c81eeb862cf", + "commit": { + "hash": "8512aafe25a2cdcb8e53fe66646b6c81eeb862cf", + "short": "8512aaf", + "subject": "swift: add call pair 69", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "8512aafe25a2cdcb8e53fe66646b6c81eeb862cf", + "curr": "aa219d0c5d49b9f1632f6a235fd92ebf78329f27", + "commit": { + "hash": "aa219d0c5d49b9f1632f6a235fd92ebf78329f27", + "short": "aa219d0", + "subject": "swift: add util_70", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 1, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 1, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "aa219d0c5d49b9f1632f6a235fd92ebf78329f27", + "curr": "4cbeb9b88f16c2e7b1bb121225673402198c4a63", + "commit": { + "hash": "4cbeb9b88f16c2e7b1bb121225673402198c4a63", + "short": "4cbeb9b", + "subject": "swift: add call pair 71", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "4cbeb9b88f16c2e7b1bb121225673402198c4a63", + "curr": "f061dd75c2f4d658a285da36003436b5b621e64a", + "commit": { + "hash": "f061dd75c2f4d658a285da36003436b5b621e64a", + "short": "f061dd7", + "subject": "docs: update 72", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "f061dd75c2f4d658a285da36003436b5b621e64a", + "curr": "32b1aeaffdb5c37959740e9c3247f7155b1d574d", + "commit": { + "hash": "32b1aeaffdb5c37959740e9c3247f7155b1d574d", + "short": "32b1aea", + "subject": "swift: add call pair 73", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "32b1aeaffdb5c37959740e9c3247f7155b1d574d", + "curr": "0c9f766ed4d53ecaab4ddfcc0fcc77ff49ce66d2", + "commit": { + "hash": "0c9f766ed4d53ecaab4ddfcc0fcc77ff49ce66d2", + "short": "0c9f766", + "subject": "swift: add call pair 74", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "0c9f766ed4d53ecaab4ddfcc0fcc77ff49ce66d2", + "curr": "9849ac2b033492f9e4ff342c0931703f2fceb534", + "commit": { + "hash": "9849ac2b033492f9e4ff342c0931703f2fceb534", + "short": "9849ac2", + "subject": "swift: add feature file 75", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Feature75.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 2, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "9849ac2b033492f9e4ff342c0931703f2fceb534", + "curr": "48a0d3fe256abe2e4437edda2b1dfe8f99bf00aa", + "commit": { + "hash": "48a0d3fe256abe2e4437edda2b1dfe8f99bf00aa", + "short": "48a0d3f", + "subject": "swift: add call pair 76", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "48a0d3fe256abe2e4437edda2b1dfe8f99bf00aa", + "curr": "3ba5594a76c3a13b7f422c56537b3b192b98fd6f", + "commit": { + "hash": "3ba5594a76c3a13b7f422c56537b3b192b98fd6f", + "short": "3ba5594", + "subject": "swift: add call pair 77", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/App.swift", + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "3ba5594a76c3a13b7f422c56537b3b192b98fd6f", + "curr": "8a1a7a8b64f2e447f792073dcc2633e336cb8615", + "commit": { + "hash": "8a1a7a8b64f2e447f792073dcc2633e336cb8615", + "short": "8a1a7a8", + "subject": "docs: update 78", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "8a1a7a8b64f2e447f792073dcc2633e336cb8615", + "curr": "a2987d607df7c0749faf544c28f2dee8d3172af7", + "commit": { + "hash": "a2987d607df7c0749faf544c28f2dee8d3172af7", + "short": "a2987d6", + "subject": "swift: add call pair 79", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "a2987d607df7c0749faf544c28f2dee8d3172af7", + "curr": "5c839f406c45569c18b02513d98f8cf604d03444", + "commit": { + "hash": "5c839f406c45569c18b02513d98f8cf604d03444", + "short": "5c839f4", + "subject": "swift: add util_80", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 1, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 1, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "5c839f406c45569c18b02513d98f8cf604d03444", + "curr": "de311d88fd625c299451eeae9d8f60ee29fdf13d", + "commit": { + "hash": "de311d88fd625c299451eeae9d8f60ee29fdf13d", + "short": "de311d8", + "subject": "swift: add call pair 81", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "de311d88fd625c299451eeae9d8f60ee29fdf13d", + "curr": "9e15c8899649fcac8c8fa3433a9695c829b2080c", + "commit": { + "hash": "9e15c8899649fcac8c8fa3433a9695c829b2080c", + "short": "9e15c88", + "subject": "swift: add call pair 82", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "9e15c8899649fcac8c8fa3433a9695c829b2080c", + "curr": "6cd3c86c9209f413bdd7429db8fcc97a3c7af47e", + "commit": { + "hash": "6cd3c86c9209f413bdd7429db8fcc97a3c7af47e", + "short": "6cd3c86", + "subject": "swift: add call pair 83", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "6cd3c86c9209f413bdd7429db8fcc97a3c7af47e", + "curr": "7775b72cc64a6778a0e98110e3cbb915cdc30e4f", + "commit": { + "hash": "7775b72cc64a6778a0e98110e3cbb915cdc30e4f", + "short": "7775b72", + "subject": "docs: update 84", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "7775b72cc64a6778a0e98110e3cbb915cdc30e4f", + "curr": "aaed0838defdf53077cb817d7e1d8b5cfe6aabfb", + "commit": { + "hash": "aaed0838defdf53077cb817d7e1d8b5cfe6aabfb", + "short": "aaed083", + "subject": "swift: add call pair 85", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "aaed0838defdf53077cb817d7e1d8b5cfe6aabfb", + "curr": "5c12fb7dd66dd63db9bd7b4b6d6ba66001e952ef", + "commit": { + "hash": "5c12fb7dd66dd63db9bd7b4b6d6ba66001e952ef", + "short": "5c12fb7", + "subject": "swift: add call pair 86", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "5c12fb7dd66dd63db9bd7b4b6d6ba66001e952ef", + "curr": "f903b2fd39bb71d3e90a1cbaf2c7eaa86be7f580", + "commit": { + "hash": "f903b2fd39bb71d3e90a1cbaf2c7eaa86be7f580", + "short": "f903b2f", + "subject": "swift: add call pair 87", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "f903b2fd39bb71d3e90a1cbaf2c7eaa86be7f580", + "curr": "a0119b1ba55b3970be39229e2c2eb5462b5f9fbe", + "commit": { + "hash": "a0119b1ba55b3970be39229e2c2eb5462b5f9fbe", + "short": "a0119b1", + "subject": "swift: add call pair 88", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "a0119b1ba55b3970be39229e2c2eb5462b5f9fbe", + "curr": "0d578c1b01ebde26ecd93bcae3f27c1e92da2772", + "commit": { + "hash": "0d578c1b01ebde26ecd93bcae3f27c1e92da2772", + "short": "0d578c1", + "subject": "swift: add call pair 89", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "0d578c1b01ebde26ecd93bcae3f27c1e92da2772", + "curr": "b270cfa7b940983f274137df4b93fc8cc3a98b93", + "commit": { + "hash": "b270cfa7b940983f274137df4b93fc8cc3a98b93", + "short": "b270cfa", + "subject": "docs: update 90", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "b270cfa7b940983f274137df4b93fc8cc3a98b93", + "curr": "1fa3cf75b05067b3a0104cda5d4c77b6bee8dcc7", + "commit": { + "hash": "1fa3cf75b05067b3a0104cda5d4c77b6bee8dcc7", + "short": "1fa3cf7", + "subject": "swift: add call pair 91", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/App.swift", + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "1fa3cf75b05067b3a0104cda5d4c77b6bee8dcc7", + "curr": "18b2db22137f30b40267a27cd8b9547588fad718", + "commit": { + "hash": "18b2db22137f30b40267a27cd8b9547588fad718", + "short": "18b2db2", + "subject": "swift: add call pair 92", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "18b2db22137f30b40267a27cd8b9547588fad718", + "curr": "e12830d2f14a91398f3f4e2039ef0bfd4a3595bf", + "commit": { + "hash": "e12830d2f14a91398f3f4e2039ef0bfd4a3595bf", + "short": "e12830d", + "subject": "swift: add call pair 93", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "e12830d2f14a91398f3f4e2039ef0bfd4a3595bf", + "curr": "f77200bf87a139fdace410f7f15ebf1b745e9154", + "commit": { + "hash": "f77200bf87a139fdace410f7f15ebf1b745e9154", + "short": "f77200b", + "subject": "swift: add call pair 94", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "f77200bf87a139fdace410f7f15ebf1b745e9154", + "curr": "30449af1c4a5ef6107c1857e4903a3c4f23a9e35", + "commit": { + "hash": "30449af1c4a5ef6107c1857e4903a3c4f23a9e35", + "short": "30449af", + "subject": "swift: add call pair 95", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "30449af1c4a5ef6107c1857e4903a3c4f23a9e35", + "curr": "539d1c09b09359e5b86d2b5ed7bd7601941f843e", + "commit": { + "hash": "539d1c09b09359e5b86d2b5ed7bd7601941f843e", + "short": "539d1c0", + "subject": "docs: update 96", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "539d1c09b09359e5b86d2b5ed7bd7601941f843e", + "curr": "af84072297169ffa1b25abc3ded3e703fe2b046d", + "commit": { + "hash": "af84072297169ffa1b25abc3ded3e703fe2b046d", + "short": "af84072", + "subject": "swift: add call pair 97", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "af84072297169ffa1b25abc3ded3e703fe2b046d", + "curr": "73909fd6ca886e2be08d3e11084ed9151856cf3e", + "commit": { + "hash": "73909fd6ca886e2be08d3e11084ed9151856cf3e", + "short": "73909fd", + "subject": "swift: add call pair 98", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/App.swift", + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "73909fd6ca886e2be08d3e11084ed9151856cf3e", + "curr": "915a0519a064e9773c2d93d83dfdc32f0489fd95", + "commit": { + "hash": "915a0519a064e9773c2d93d83dfdc32f0489fd95", + "short": "915a051", + "subject": "swift: add call pair 99", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "915a0519a064e9773c2d93d83dfdc32f0489fd95", + "curr": "15ad4ba883b705d204195b4443d2ffdd93dbe7d4", + "commit": { + "hash": "15ad4ba883b705d204195b4443d2ffdd93dbe7d4", + "short": "15ad4ba", + "subject": "swift: add util_100", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 1, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 1, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "15ad4ba883b705d204195b4443d2ffdd93dbe7d4", + "curr": "89473b3fc69a7df4d9100f429be3883a563b0bbd", + "commit": { + "hash": "89473b3fc69a7df4d9100f429be3883a563b0bbd", + "short": "89473b3", + "subject": "swift: add call pair 101", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "89473b3fc69a7df4d9100f429be3883a563b0bbd", + "curr": "cd740701f9317fe59743a81fc1dbb7e54384d9c1", + "commit": { + "hash": "cd740701f9317fe59743a81fc1dbb7e54384d9c1", + "short": "cd74070", + "subject": "docs: update 102", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "cd740701f9317fe59743a81fc1dbb7e54384d9c1", + "curr": "f0d51af596cdde3591b22330b66f13c72c63d064", + "commit": { + "hash": "f0d51af596cdde3591b22330b66f13c72c63d064", + "short": "f0d51af", + "subject": "swift: add call pair 103", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "f0d51af596cdde3591b22330b66f13c72c63d064", + "curr": "303162dd6c4b89c07fc144c4eee58784050a8339", + "commit": { + "hash": "303162dd6c4b89c07fc144c4eee58784050a8339", + "short": "303162d", + "subject": "swift: add call pair 104", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "303162dd6c4b89c07fc144c4eee58784050a8339", + "curr": "aee4332f000b1a2ccbce70a11da33c9a53aa0914", + "commit": { + "hash": "aee4332f000b1a2ccbce70a11da33c9a53aa0914", + "short": "aee4332", + "subject": "swift: add feature file 105", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Feature105.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 2, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "aee4332f000b1a2ccbce70a11da33c9a53aa0914", + "curr": "2286d20d74a3a6c4ae7f323a08ea523c100bbbda", + "commit": { + "hash": "2286d20d74a3a6c4ae7f323a08ea523c100bbbda", + "short": "2286d20", + "subject": "swift: add call pair 106", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "2286d20d74a3a6c4ae7f323a08ea523c100bbbda", + "curr": "27e0c63e61215d2a885c20db61ff2673b87dd0ed", + "commit": { + "hash": "27e0c63e61215d2a885c20db61ff2673b87dd0ed", + "short": "27e0c63", + "subject": "swift: add call pair 107", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "27e0c63e61215d2a885c20db61ff2673b87dd0ed", + "curr": "134c94b6838492c06dd3e943229c3b7e6cf168a9", + "commit": { + "hash": "134c94b6838492c06dd3e943229c3b7e6cf168a9", + "short": "134c94b", + "subject": "docs: update 108", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "134c94b6838492c06dd3e943229c3b7e6cf168a9", + "curr": "38ab0b6ee43e8b2fbbcb73c85d912f5d2b9810d2", + "commit": { + "hash": "38ab0b6ee43e8b2fbbcb73c85d912f5d2b9810d2", + "short": "38ab0b6", + "subject": "swift: add call pair 109", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "38ab0b6ee43e8b2fbbcb73c85d912f5d2b9810d2", + "curr": "92bb98821daa7e50145272ad95298e9c1ff75e55", + "commit": { + "hash": "92bb98821daa7e50145272ad95298e9c1ff75e55", + "short": "92bb988", + "subject": "swift: add util_110", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 1, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 1, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "92bb98821daa7e50145272ad95298e9c1ff75e55", + "curr": "975cf65f43c13886ef69d7a9784824e7b4f0699e", + "commit": { + "hash": "975cf65f43c13886ef69d7a9784824e7b4f0699e", + "short": "975cf65", + "subject": "swift: add call pair 111", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "975cf65f43c13886ef69d7a9784824e7b4f0699e", + "curr": "1288a28c0c19fe1970b23fa9108bbad38b779eaa", + "commit": { + "hash": "1288a28c0c19fe1970b23fa9108bbad38b779eaa", + "short": "1288a28", + "subject": "swift: add call pair 112", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/App.swift", + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "1288a28c0c19fe1970b23fa9108bbad38b779eaa", + "curr": "258dd1cd463b5b83bf981709c61b6e234692ec7e", + "commit": { + "hash": "258dd1cd463b5b83bf981709c61b6e234692ec7e", + "short": "258dd1c", + "subject": "swift: add call pair 113", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "258dd1cd463b5b83bf981709c61b6e234692ec7e", + "curr": "c3987b42dd5544e7ddaee8889d7241a56a5edb1c", + "commit": { + "hash": "c3987b42dd5544e7ddaee8889d7241a56a5edb1c", + "short": "c3987b4", + "subject": "docs: update 114", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "c3987b42dd5544e7ddaee8889d7241a56a5edb1c", + "curr": "86fa52789e97fbd3693afb7bc2334889a22307d9", + "commit": { + "hash": "86fa52789e97fbd3693afb7bc2334889a22307d9", + "short": "86fa527", + "subject": "swift: add call pair 115", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "86fa52789e97fbd3693afb7bc2334889a22307d9", + "curr": "421f689be4bff3ea16bb2a3b6aebb19129dab6c4", + "commit": { + "hash": "421f689be4bff3ea16bb2a3b6aebb19129dab6c4", + "short": "421f689", + "subject": "swift: add call pair 116", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "421f689be4bff3ea16bb2a3b6aebb19129dab6c4", + "curr": "4b3487e0323fa6c53420f35f48634fdbfebfdd7c", + "commit": { + "hash": "4b3487e0323fa6c53420f35f48634fdbfebfdd7c", + "short": "4b3487e", + "subject": "swift: add call pair 117", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "4b3487e0323fa6c53420f35f48634fdbfebfdd7c", + "curr": "d8e4aed5a66b7e69e0a896ba503311bcf57ff09b", + "commit": { + "hash": "d8e4aed5a66b7e69e0a896ba503311bcf57ff09b", + "short": "d8e4aed", + "subject": "swift: add call pair 118", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "d8e4aed5a66b7e69e0a896ba503311bcf57ff09b", + "curr": "be501ee5d7f63a9c994ec39e64e61b37ca6bb225", + "commit": { + "hash": "be501ee5d7f63a9c994ec39e64e61b37ca6bb225", + "short": "be501ee", + "subject": "swift: add call pair 119", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/App.swift", + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "be501ee5d7f63a9c994ec39e64e61b37ca6bb225", + "curr": "15f2b3b4ce1eada4d8d1fea53c2e547f14cd85f4", + "commit": { + "hash": "15f2b3b4ce1eada4d8d1fea53c2e547f14cd85f4", + "short": "15f2b3b", + "subject": "docs: update 120", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + } + ] +} diff --git a/reports/replay-heavy-swift-strict.json b/reports/replay-heavy-swift-strict.json new file mode 100644 index 0000000..d42673b --- /dev/null +++ b/reports/replay-heavy-swift-strict.json @@ -0,0 +1,2591 @@ +{ + "created_at": "2026-03-07T07:38:36.250Z", + "mode": "commit-replay", + "config": { + "repo": "/tmp/flowmap-heavy-swift-repo", + "rev": "HEAD", + "count": 100, + "strict_swift": true, + "keep_temp": false, + "report_path": "/Users/seungminlee/Desktop/Development/FlowMap/reports/replay-heavy-swift-strict.json" + }, + "binaries": { + "flowmap": "/Users/seungminlee/Desktop/Development/FlowMap/target/debug/flowmap", + "parser": "/Users/seungminlee/Desktop/Development/FlowMap/parsers/swift-ast/.build/debug/flowmap-swift-ast" + }, + "summary": { + "total_pairs": 99, + "pass_pairs": 99, + "warn_pairs": 0, + "failed_pairs": 0, + "error_pairs": 0, + "swift_pairs": 82, + "non_swift_pairs": 17, + "confusion": { + "tp": 82, + "tn": 17, + "fp": 0, + "fn": 0 + }, + "non_swift_fp_rate": 0, + "swift_detection_rate": 1, + "gate": { + "max_non_swift_fp_rate": 0, + "max_errors": 0, + "strict_swift_required": true + }, + "gate_passed": true + }, + "results": [ + { + "prev": "c5ec16b8389ed8a69d6a7632fac666f2b7d228d6", + "curr": "14966f5725c12effeff54c8e3950c06a0ea8e922", + "commit": { + "hash": "14966f5725c12effeff54c8e3950c06a0ea8e922", + "short": "14966f5", + "subject": "swift: add call pair 22", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "14966f5725c12effeff54c8e3950c06a0ea8e922", + "curr": "6180ca4a699e5b3b2c9c53a4991a1d43aeef5c86", + "commit": { + "hash": "6180ca4a699e5b3b2c9c53a4991a1d43aeef5c86", + "short": "6180ca4", + "subject": "swift: add call pair 23", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "6180ca4a699e5b3b2c9c53a4991a1d43aeef5c86", + "curr": "28646464d3d5be177f1c0ef8e3e4311d80eb9732", + "commit": { + "hash": "28646464d3d5be177f1c0ef8e3e4311d80eb9732", + "short": "2864646", + "subject": "docs: update 24", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "28646464d3d5be177f1c0ef8e3e4311d80eb9732", + "curr": "0257b3d1eb70a3725a3cd5654a017f14e8dc0359", + "commit": { + "hash": "0257b3d1eb70a3725a3cd5654a017f14e8dc0359", + "short": "0257b3d", + "subject": "swift: add call pair 25", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "0257b3d1eb70a3725a3cd5654a017f14e8dc0359", + "curr": "3b298d369ef9a4566bb33eae33bf8029735bdcb6", + "commit": { + "hash": "3b298d369ef9a4566bb33eae33bf8029735bdcb6", + "short": "3b298d3", + "subject": "swift: add call pair 26", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "3b298d369ef9a4566bb33eae33bf8029735bdcb6", + "curr": "4cb8868110a4a5bc1a5602a50f00ee060a5a72d2", + "commit": { + "hash": "4cb8868110a4a5bc1a5602a50f00ee060a5a72d2", + "short": "4cb8868", + "subject": "swift: add call pair 27", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "4cb8868110a4a5bc1a5602a50f00ee060a5a72d2", + "curr": "18b9f3640a05783e4c7942cc32e9479e944abb7a", + "commit": { + "hash": "18b9f3640a05783e4c7942cc32e9479e944abb7a", + "short": "18b9f36", + "subject": "swift: add call pair 28", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/App.swift", + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "18b9f3640a05783e4c7942cc32e9479e944abb7a", + "curr": "5cf5f3309b71cbef8a9827184768f937307d567d", + "commit": { + "hash": "5cf5f3309b71cbef8a9827184768f937307d567d", + "short": "5cf5f33", + "subject": "swift: add call pair 29", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "5cf5f3309b71cbef8a9827184768f937307d567d", + "curr": "a59b18a2d0fc1ae353790827e7e6b01a08c06052", + "commit": { + "hash": "a59b18a2d0fc1ae353790827e7e6b01a08c06052", + "short": "a59b18a", + "subject": "docs: update 30", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "a59b18a2d0fc1ae353790827e7e6b01a08c06052", + "curr": "0d39854e872256d9aff26d4e631bc7facc36f9eb", + "commit": { + "hash": "0d39854e872256d9aff26d4e631bc7facc36f9eb", + "short": "0d39854", + "subject": "swift: add call pair 31", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "0d39854e872256d9aff26d4e631bc7facc36f9eb", + "curr": "beb272c799f63b61ed496ea443aa91f4b4398c6e", + "commit": { + "hash": "beb272c799f63b61ed496ea443aa91f4b4398c6e", + "short": "beb272c", + "subject": "swift: add call pair 32", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "beb272c799f63b61ed496ea443aa91f4b4398c6e", + "curr": "bfd7075ac49de080bdd1e800c26d838ffeeb34df", + "commit": { + "hash": "bfd7075ac49de080bdd1e800c26d838ffeeb34df", + "short": "bfd7075", + "subject": "swift: add call pair 33", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "bfd7075ac49de080bdd1e800c26d838ffeeb34df", + "curr": "b9648979a04e68a5e6223598ed258aad35f54a01", + "commit": { + "hash": "b9648979a04e68a5e6223598ed258aad35f54a01", + "short": "b964897", + "subject": "swift: add call pair 34", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "b9648979a04e68a5e6223598ed258aad35f54a01", + "curr": "5b604e811aeb342747996e6445e0d7e15414eb24", + "commit": { + "hash": "5b604e811aeb342747996e6445e0d7e15414eb24", + "short": "5b604e8", + "subject": "swift: add call pair 35", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:52+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/App.swift", + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "5b604e811aeb342747996e6445e0d7e15414eb24", + "curr": "d5fd7cd5a07efd35842f76f81a1a90fb9501ec8d", + "commit": { + "hash": "d5fd7cd5a07efd35842f76f81a1a90fb9501ec8d", + "short": "d5fd7cd", + "subject": "docs: update 36", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "d5fd7cd5a07efd35842f76f81a1a90fb9501ec8d", + "curr": "88b18434d25957b3ac28692deed9a647d62d6e00", + "commit": { + "hash": "88b18434d25957b3ac28692deed9a647d62d6e00", + "short": "88b1843", + "subject": "swift: add call pair 37", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "88b18434d25957b3ac28692deed9a647d62d6e00", + "curr": "5ebf96857e71f5946a7c177d04ea416b2d6d9321", + "commit": { + "hash": "5ebf96857e71f5946a7c177d04ea416b2d6d9321", + "short": "5ebf968", + "subject": "swift: add call pair 38", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "5ebf96857e71f5946a7c177d04ea416b2d6d9321", + "curr": "f220f298d52fcca7f3318c2fb6a64838a1eff528", + "commit": { + "hash": "f220f298d52fcca7f3318c2fb6a64838a1eff528", + "short": "f220f29", + "subject": "swift: add call pair 39", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "f220f298d52fcca7f3318c2fb6a64838a1eff528", + "curr": "5ba39ec31a23d645fd57cfd47dda55e6e058fa3d", + "commit": { + "hash": "5ba39ec31a23d645fd57cfd47dda55e6e058fa3d", + "short": "5ba39ec", + "subject": "swift: add util_40", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 1, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 1, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "5ba39ec31a23d645fd57cfd47dda55e6e058fa3d", + "curr": "3095fd643da6d071df79c744688045d8956536de", + "commit": { + "hash": "3095fd643da6d071df79c744688045d8956536de", + "short": "3095fd6", + "subject": "swift: add call pair 41", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "3095fd643da6d071df79c744688045d8956536de", + "curr": "1a9ed145c68ea16a55bc67f392a02ee96bb46dd7", + "commit": { + "hash": "1a9ed145c68ea16a55bc67f392a02ee96bb46dd7", + "short": "1a9ed14", + "subject": "docs: update 42", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "1a9ed145c68ea16a55bc67f392a02ee96bb46dd7", + "curr": "eaff3bd990589db73dd95be62db0c5384ad2db00", + "commit": { + "hash": "eaff3bd990589db73dd95be62db0c5384ad2db00", + "short": "eaff3bd", + "subject": "swift: add call pair 43", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "eaff3bd990589db73dd95be62db0c5384ad2db00", + "curr": "cd919902880b0c9db3f9d79250d8d681e8c45342", + "commit": { + "hash": "cd919902880b0c9db3f9d79250d8d681e8c45342", + "short": "cd91990", + "subject": "swift: add call pair 44", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "cd919902880b0c9db3f9d79250d8d681e8c45342", + "curr": "a9908e2c2ca252171b2512725d04315885f99e0d", + "commit": { + "hash": "a9908e2c2ca252171b2512725d04315885f99e0d", + "short": "a9908e2", + "subject": "swift: add feature file 45", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Feature45.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 2, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "a9908e2c2ca252171b2512725d04315885f99e0d", + "curr": "68907b81f9c786f8dc05095b2191723a433726fd", + "commit": { + "hash": "68907b81f9c786f8dc05095b2191723a433726fd", + "short": "68907b8", + "subject": "swift: add call pair 46", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "68907b81f9c786f8dc05095b2191723a433726fd", + "curr": "ace6915e6e17ed5f9bb62337a93f36e3538291c0", + "commit": { + "hash": "ace6915e6e17ed5f9bb62337a93f36e3538291c0", + "short": "ace6915", + "subject": "swift: add call pair 47", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "ace6915e6e17ed5f9bb62337a93f36e3538291c0", + "curr": "9e873faf523e465e04d1735418a99c9b8c438fcb", + "commit": { + "hash": "9e873faf523e465e04d1735418a99c9b8c438fcb", + "short": "9e873fa", + "subject": "docs: update 48", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "9e873faf523e465e04d1735418a99c9b8c438fcb", + "curr": "bd2340510d453a0cfa7920e1bb3e307e1dfe96e9", + "commit": { + "hash": "bd2340510d453a0cfa7920e1bb3e307e1dfe96e9", + "short": "bd23405", + "subject": "swift: add call pair 49", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/App.swift", + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "bd2340510d453a0cfa7920e1bb3e307e1dfe96e9", + "curr": "4a95d1d9941bc0e86ab89e91c636d9446370f1e7", + "commit": { + "hash": "4a95d1d9941bc0e86ab89e91c636d9446370f1e7", + "short": "4a95d1d", + "subject": "swift: add util_50", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 1, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 1, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "4a95d1d9941bc0e86ab89e91c636d9446370f1e7", + "curr": "254d6b890c94c4b1d57af4184bf4c1d5a197002c", + "commit": { + "hash": "254d6b890c94c4b1d57af4184bf4c1d5a197002c", + "short": "254d6b8", + "subject": "swift: add call pair 51", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "254d6b890c94c4b1d57af4184bf4c1d5a197002c", + "curr": "c88cabc87e18c84c1340d3b4c338577c432ef417", + "commit": { + "hash": "c88cabc87e18c84c1340d3b4c338577c432ef417", + "short": "c88cabc", + "subject": "swift: add call pair 52", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "c88cabc87e18c84c1340d3b4c338577c432ef417", + "curr": "8a097e78c3e4ec031d312bdcaab8cae2d812dd0c", + "commit": { + "hash": "8a097e78c3e4ec031d312bdcaab8cae2d812dd0c", + "short": "8a097e7", + "subject": "swift: add call pair 53", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "8a097e78c3e4ec031d312bdcaab8cae2d812dd0c", + "curr": "a9b348fae42b7987cfa8651fa60aa0cfcfc8ebe8", + "commit": { + "hash": "a9b348fae42b7987cfa8651fa60aa0cfcfc8ebe8", + "short": "a9b348f", + "subject": "docs: update 54", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "a9b348fae42b7987cfa8651fa60aa0cfcfc8ebe8", + "curr": "8364352b74f263dc8a71565c0762620b9f24e938", + "commit": { + "hash": "8364352b74f263dc8a71565c0762620b9f24e938", + "short": "8364352", + "subject": "swift: add call pair 55", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "8364352b74f263dc8a71565c0762620b9f24e938", + "curr": "b34f27da884357fa53d16f72d8efcb58707691e3", + "commit": { + "hash": "b34f27da884357fa53d16f72d8efcb58707691e3", + "short": "b34f27d", + "subject": "swift: add call pair 56", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/App.swift", + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "b34f27da884357fa53d16f72d8efcb58707691e3", + "curr": "ac87bdfd3d5a1f0326ec7e198a359acfa6f21d58", + "commit": { + "hash": "ac87bdfd3d5a1f0326ec7e198a359acfa6f21d58", + "short": "ac87bdf", + "subject": "swift: add call pair 57", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "ac87bdfd3d5a1f0326ec7e198a359acfa6f21d58", + "curr": "17f8b15984825a5863c1ee428762a921334f5356", + "commit": { + "hash": "17f8b15984825a5863c1ee428762a921334f5356", + "short": "17f8b15", + "subject": "swift: add call pair 58", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "17f8b15984825a5863c1ee428762a921334f5356", + "curr": "a563e4a14a757c2794ed7c1efd6554367b0cb51f", + "commit": { + "hash": "a563e4a14a757c2794ed7c1efd6554367b0cb51f", + "short": "a563e4a", + "subject": "swift: add call pair 59", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "a563e4a14a757c2794ed7c1efd6554367b0cb51f", + "curr": "c3fbcc65b5bce87380608a3bf60eeeee71c05791", + "commit": { + "hash": "c3fbcc65b5bce87380608a3bf60eeeee71c05791", + "short": "c3fbcc6", + "subject": "docs: update 60", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "c3fbcc65b5bce87380608a3bf60eeeee71c05791", + "curr": "d3b2bc90ae66cc5e505452340ad3b2e71583fa92", + "commit": { + "hash": "d3b2bc90ae66cc5e505452340ad3b2e71583fa92", + "short": "d3b2bc9", + "subject": "swift: add call pair 61", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "d3b2bc90ae66cc5e505452340ad3b2e71583fa92", + "curr": "d33ccaae6ab1f3004af8219b4e8c4950ba6a5716", + "commit": { + "hash": "d33ccaae6ab1f3004af8219b4e8c4950ba6a5716", + "short": "d33ccaa", + "subject": "swift: add call pair 62", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "d33ccaae6ab1f3004af8219b4e8c4950ba6a5716", + "curr": "6e7ccd7a38e5ed74838dd02a06c0926f58c7c489", + "commit": { + "hash": "6e7ccd7a38e5ed74838dd02a06c0926f58c7c489", + "short": "6e7ccd7", + "subject": "swift: add call pair 63", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/App.swift", + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "6e7ccd7a38e5ed74838dd02a06c0926f58c7c489", + "curr": "fb11dc3cc2523c92b64c19557d37f96cbc3f4e2f", + "commit": { + "hash": "fb11dc3cc2523c92b64c19557d37f96cbc3f4e2f", + "short": "fb11dc3", + "subject": "swift: add call pair 64", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "fb11dc3cc2523c92b64c19557d37f96cbc3f4e2f", + "curr": "a0d53e3f32185ccf6e34ecc8957c4a6197fe5627", + "commit": { + "hash": "a0d53e3f32185ccf6e34ecc8957c4a6197fe5627", + "short": "a0d53e3", + "subject": "swift: add call pair 65", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "a0d53e3f32185ccf6e34ecc8957c4a6197fe5627", + "curr": "a814fb011ae436bc66c3c30037424504cc0d3cbf", + "commit": { + "hash": "a814fb011ae436bc66c3c30037424504cc0d3cbf", + "short": "a814fb0", + "subject": "docs: update 66", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "a814fb011ae436bc66c3c30037424504cc0d3cbf", + "curr": "f87ac84336ac976be26751ccda92a097d0e6d3e2", + "commit": { + "hash": "f87ac84336ac976be26751ccda92a097d0e6d3e2", + "short": "f87ac84", + "subject": "swift: add call pair 67", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "f87ac84336ac976be26751ccda92a097d0e6d3e2", + "curr": "8a835c177ee547a3ea1eaec91b049b2921c5d683", + "commit": { + "hash": "8a835c177ee547a3ea1eaec91b049b2921c5d683", + "short": "8a835c1", + "subject": "swift: add call pair 68", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "8a835c177ee547a3ea1eaec91b049b2921c5d683", + "curr": "8512aafe25a2cdcb8e53fe66646b6c81eeb862cf", + "commit": { + "hash": "8512aafe25a2cdcb8e53fe66646b6c81eeb862cf", + "short": "8512aaf", + "subject": "swift: add call pair 69", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "8512aafe25a2cdcb8e53fe66646b6c81eeb862cf", + "curr": "aa219d0c5d49b9f1632f6a235fd92ebf78329f27", + "commit": { + "hash": "aa219d0c5d49b9f1632f6a235fd92ebf78329f27", + "short": "aa219d0", + "subject": "swift: add util_70", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 1, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 1, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "aa219d0c5d49b9f1632f6a235fd92ebf78329f27", + "curr": "4cbeb9b88f16c2e7b1bb121225673402198c4a63", + "commit": { + "hash": "4cbeb9b88f16c2e7b1bb121225673402198c4a63", + "short": "4cbeb9b", + "subject": "swift: add call pair 71", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "4cbeb9b88f16c2e7b1bb121225673402198c4a63", + "curr": "f061dd75c2f4d658a285da36003436b5b621e64a", + "commit": { + "hash": "f061dd75c2f4d658a285da36003436b5b621e64a", + "short": "f061dd7", + "subject": "docs: update 72", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "f061dd75c2f4d658a285da36003436b5b621e64a", + "curr": "32b1aeaffdb5c37959740e9c3247f7155b1d574d", + "commit": { + "hash": "32b1aeaffdb5c37959740e9c3247f7155b1d574d", + "short": "32b1aea", + "subject": "swift: add call pair 73", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "32b1aeaffdb5c37959740e9c3247f7155b1d574d", + "curr": "0c9f766ed4d53ecaab4ddfcc0fcc77ff49ce66d2", + "commit": { + "hash": "0c9f766ed4d53ecaab4ddfcc0fcc77ff49ce66d2", + "short": "0c9f766", + "subject": "swift: add call pair 74", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "0c9f766ed4d53ecaab4ddfcc0fcc77ff49ce66d2", + "curr": "9849ac2b033492f9e4ff342c0931703f2fceb534", + "commit": { + "hash": "9849ac2b033492f9e4ff342c0931703f2fceb534", + "short": "9849ac2", + "subject": "swift: add feature file 75", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Feature75.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 2, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "9849ac2b033492f9e4ff342c0931703f2fceb534", + "curr": "48a0d3fe256abe2e4437edda2b1dfe8f99bf00aa", + "commit": { + "hash": "48a0d3fe256abe2e4437edda2b1dfe8f99bf00aa", + "short": "48a0d3f", + "subject": "swift: add call pair 76", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "48a0d3fe256abe2e4437edda2b1dfe8f99bf00aa", + "curr": "3ba5594a76c3a13b7f422c56537b3b192b98fd6f", + "commit": { + "hash": "3ba5594a76c3a13b7f422c56537b3b192b98fd6f", + "short": "3ba5594", + "subject": "swift: add call pair 77", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:53+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/App.swift", + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "3ba5594a76c3a13b7f422c56537b3b192b98fd6f", + "curr": "8a1a7a8b64f2e447f792073dcc2633e336cb8615", + "commit": { + "hash": "8a1a7a8b64f2e447f792073dcc2633e336cb8615", + "short": "8a1a7a8", + "subject": "docs: update 78", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "8a1a7a8b64f2e447f792073dcc2633e336cb8615", + "curr": "a2987d607df7c0749faf544c28f2dee8d3172af7", + "commit": { + "hash": "a2987d607df7c0749faf544c28f2dee8d3172af7", + "short": "a2987d6", + "subject": "swift: add call pair 79", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "a2987d607df7c0749faf544c28f2dee8d3172af7", + "curr": "5c839f406c45569c18b02513d98f8cf604d03444", + "commit": { + "hash": "5c839f406c45569c18b02513d98f8cf604d03444", + "short": "5c839f4", + "subject": "swift: add util_80", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 1, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 1, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "5c839f406c45569c18b02513d98f8cf604d03444", + "curr": "de311d88fd625c299451eeae9d8f60ee29fdf13d", + "commit": { + "hash": "de311d88fd625c299451eeae9d8f60ee29fdf13d", + "short": "de311d8", + "subject": "swift: add call pair 81", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "de311d88fd625c299451eeae9d8f60ee29fdf13d", + "curr": "9e15c8899649fcac8c8fa3433a9695c829b2080c", + "commit": { + "hash": "9e15c8899649fcac8c8fa3433a9695c829b2080c", + "short": "9e15c88", + "subject": "swift: add call pair 82", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "9e15c8899649fcac8c8fa3433a9695c829b2080c", + "curr": "6cd3c86c9209f413bdd7429db8fcc97a3c7af47e", + "commit": { + "hash": "6cd3c86c9209f413bdd7429db8fcc97a3c7af47e", + "short": "6cd3c86", + "subject": "swift: add call pair 83", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "6cd3c86c9209f413bdd7429db8fcc97a3c7af47e", + "curr": "7775b72cc64a6778a0e98110e3cbb915cdc30e4f", + "commit": { + "hash": "7775b72cc64a6778a0e98110e3cbb915cdc30e4f", + "short": "7775b72", + "subject": "docs: update 84", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "7775b72cc64a6778a0e98110e3cbb915cdc30e4f", + "curr": "aaed0838defdf53077cb817d7e1d8b5cfe6aabfb", + "commit": { + "hash": "aaed0838defdf53077cb817d7e1d8b5cfe6aabfb", + "short": "aaed083", + "subject": "swift: add call pair 85", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "aaed0838defdf53077cb817d7e1d8b5cfe6aabfb", + "curr": "5c12fb7dd66dd63db9bd7b4b6d6ba66001e952ef", + "commit": { + "hash": "5c12fb7dd66dd63db9bd7b4b6d6ba66001e952ef", + "short": "5c12fb7", + "subject": "swift: add call pair 86", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "5c12fb7dd66dd63db9bd7b4b6d6ba66001e952ef", + "curr": "f903b2fd39bb71d3e90a1cbaf2c7eaa86be7f580", + "commit": { + "hash": "f903b2fd39bb71d3e90a1cbaf2c7eaa86be7f580", + "short": "f903b2f", + "subject": "swift: add call pair 87", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "f903b2fd39bb71d3e90a1cbaf2c7eaa86be7f580", + "curr": "a0119b1ba55b3970be39229e2c2eb5462b5f9fbe", + "commit": { + "hash": "a0119b1ba55b3970be39229e2c2eb5462b5f9fbe", + "short": "a0119b1", + "subject": "swift: add call pair 88", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "a0119b1ba55b3970be39229e2c2eb5462b5f9fbe", + "curr": "0d578c1b01ebde26ecd93bcae3f27c1e92da2772", + "commit": { + "hash": "0d578c1b01ebde26ecd93bcae3f27c1e92da2772", + "short": "0d578c1", + "subject": "swift: add call pair 89", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "0d578c1b01ebde26ecd93bcae3f27c1e92da2772", + "curr": "b270cfa7b940983f274137df4b93fc8cc3a98b93", + "commit": { + "hash": "b270cfa7b940983f274137df4b93fc8cc3a98b93", + "short": "b270cfa", + "subject": "docs: update 90", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "b270cfa7b940983f274137df4b93fc8cc3a98b93", + "curr": "1fa3cf75b05067b3a0104cda5d4c77b6bee8dcc7", + "commit": { + "hash": "1fa3cf75b05067b3a0104cda5d4c77b6bee8dcc7", + "short": "1fa3cf7", + "subject": "swift: add call pair 91", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/App.swift", + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "1fa3cf75b05067b3a0104cda5d4c77b6bee8dcc7", + "curr": "18b2db22137f30b40267a27cd8b9547588fad718", + "commit": { + "hash": "18b2db22137f30b40267a27cd8b9547588fad718", + "short": "18b2db2", + "subject": "swift: add call pair 92", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "18b2db22137f30b40267a27cd8b9547588fad718", + "curr": "e12830d2f14a91398f3f4e2039ef0bfd4a3595bf", + "commit": { + "hash": "e12830d2f14a91398f3f4e2039ef0bfd4a3595bf", + "short": "e12830d", + "subject": "swift: add call pair 93", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "e12830d2f14a91398f3f4e2039ef0bfd4a3595bf", + "curr": "f77200bf87a139fdace410f7f15ebf1b745e9154", + "commit": { + "hash": "f77200bf87a139fdace410f7f15ebf1b745e9154", + "short": "f77200b", + "subject": "swift: add call pair 94", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "f77200bf87a139fdace410f7f15ebf1b745e9154", + "curr": "30449af1c4a5ef6107c1857e4903a3c4f23a9e35", + "commit": { + "hash": "30449af1c4a5ef6107c1857e4903a3c4f23a9e35", + "short": "30449af", + "subject": "swift: add call pair 95", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "30449af1c4a5ef6107c1857e4903a3c4f23a9e35", + "curr": "539d1c09b09359e5b86d2b5ed7bd7601941f843e", + "commit": { + "hash": "539d1c09b09359e5b86d2b5ed7bd7601941f843e", + "short": "539d1c0", + "subject": "docs: update 96", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "539d1c09b09359e5b86d2b5ed7bd7601941f843e", + "curr": "af84072297169ffa1b25abc3ded3e703fe2b046d", + "commit": { + "hash": "af84072297169ffa1b25abc3ded3e703fe2b046d", + "short": "af84072", + "subject": "swift: add call pair 97", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "af84072297169ffa1b25abc3ded3e703fe2b046d", + "curr": "73909fd6ca886e2be08d3e11084ed9151856cf3e", + "commit": { + "hash": "73909fd6ca886e2be08d3e11084ed9151856cf3e", + "short": "73909fd", + "subject": "swift: add call pair 98", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/App.swift", + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "73909fd6ca886e2be08d3e11084ed9151856cf3e", + "curr": "915a0519a064e9773c2d93d83dfdc32f0489fd95", + "commit": { + "hash": "915a0519a064e9773c2d93d83dfdc32f0489fd95", + "short": "915a051", + "subject": "swift: add call pair 99", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "915a0519a064e9773c2d93d83dfdc32f0489fd95", + "curr": "15ad4ba883b705d204195b4443d2ffdd93dbe7d4", + "commit": { + "hash": "15ad4ba883b705d204195b4443d2ffdd93dbe7d4", + "short": "15ad4ba", + "subject": "swift: add util_100", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 1, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 1, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "15ad4ba883b705d204195b4443d2ffdd93dbe7d4", + "curr": "89473b3fc69a7df4d9100f429be3883a563b0bbd", + "commit": { + "hash": "89473b3fc69a7df4d9100f429be3883a563b0bbd", + "short": "89473b3", + "subject": "swift: add call pair 101", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "89473b3fc69a7df4d9100f429be3883a563b0bbd", + "curr": "cd740701f9317fe59743a81fc1dbb7e54384d9c1", + "commit": { + "hash": "cd740701f9317fe59743a81fc1dbb7e54384d9c1", + "short": "cd74070", + "subject": "docs: update 102", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "cd740701f9317fe59743a81fc1dbb7e54384d9c1", + "curr": "f0d51af596cdde3591b22330b66f13c72c63d064", + "commit": { + "hash": "f0d51af596cdde3591b22330b66f13c72c63d064", + "short": "f0d51af", + "subject": "swift: add call pair 103", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "f0d51af596cdde3591b22330b66f13c72c63d064", + "curr": "303162dd6c4b89c07fc144c4eee58784050a8339", + "commit": { + "hash": "303162dd6c4b89c07fc144c4eee58784050a8339", + "short": "303162d", + "subject": "swift: add call pair 104", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "303162dd6c4b89c07fc144c4eee58784050a8339", + "curr": "aee4332f000b1a2ccbce70a11da33c9a53aa0914", + "commit": { + "hash": "aee4332f000b1a2ccbce70a11da33c9a53aa0914", + "short": "aee4332", + "subject": "swift: add feature file 105", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Feature105.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 2, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "aee4332f000b1a2ccbce70a11da33c9a53aa0914", + "curr": "2286d20d74a3a6c4ae7f323a08ea523c100bbbda", + "commit": { + "hash": "2286d20d74a3a6c4ae7f323a08ea523c100bbbda", + "short": "2286d20", + "subject": "swift: add call pair 106", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "2286d20d74a3a6c4ae7f323a08ea523c100bbbda", + "curr": "27e0c63e61215d2a885c20db61ff2673b87dd0ed", + "commit": { + "hash": "27e0c63e61215d2a885c20db61ff2673b87dd0ed", + "short": "27e0c63", + "subject": "swift: add call pair 107", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "27e0c63e61215d2a885c20db61ff2673b87dd0ed", + "curr": "134c94b6838492c06dd3e943229c3b7e6cf168a9", + "commit": { + "hash": "134c94b6838492c06dd3e943229c3b7e6cf168a9", + "short": "134c94b", + "subject": "docs: update 108", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "134c94b6838492c06dd3e943229c3b7e6cf168a9", + "curr": "38ab0b6ee43e8b2fbbcb73c85d912f5d2b9810d2", + "commit": { + "hash": "38ab0b6ee43e8b2fbbcb73c85d912f5d2b9810d2", + "short": "38ab0b6", + "subject": "swift: add call pair 109", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "38ab0b6ee43e8b2fbbcb73c85d912f5d2b9810d2", + "curr": "92bb98821daa7e50145272ad95298e9c1ff75e55", + "commit": { + "hash": "92bb98821daa7e50145272ad95298e9c1ff75e55", + "short": "92bb988", + "subject": "swift: add util_110", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 1, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 1, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "92bb98821daa7e50145272ad95298e9c1ff75e55", + "curr": "975cf65f43c13886ef69d7a9784824e7b4f0699e", + "commit": { + "hash": "975cf65f43c13886ef69d7a9784824e7b4f0699e", + "short": "975cf65", + "subject": "swift: add call pair 111", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "975cf65f43c13886ef69d7a9784824e7b4f0699e", + "curr": "1288a28c0c19fe1970b23fa9108bbad38b779eaa", + "commit": { + "hash": "1288a28c0c19fe1970b23fa9108bbad38b779eaa", + "short": "1288a28", + "subject": "swift: add call pair 112", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/App.swift", + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "1288a28c0c19fe1970b23fa9108bbad38b779eaa", + "curr": "258dd1cd463b5b83bf981709c61b6e234692ec7e", + "commit": { + "hash": "258dd1cd463b5b83bf981709c61b6e234692ec7e", + "short": "258dd1c", + "subject": "swift: add call pair 113", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "258dd1cd463b5b83bf981709c61b6e234692ec7e", + "curr": "c3987b42dd5544e7ddaee8889d7241a56a5edb1c", + "commit": { + "hash": "c3987b42dd5544e7ddaee8889d7241a56a5edb1c", + "short": "c3987b4", + "subject": "docs: update 114", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "c3987b42dd5544e7ddaee8889d7241a56a5edb1c", + "curr": "86fa52789e97fbd3693afb7bc2334889a22307d9", + "commit": { + "hash": "86fa52789e97fbd3693afb7bc2334889a22307d9", + "short": "86fa527", + "subject": "swift: add call pair 115", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "86fa52789e97fbd3693afb7bc2334889a22307d9", + "curr": "421f689be4bff3ea16bb2a3b6aebb19129dab6c4", + "commit": { + "hash": "421f689be4bff3ea16bb2a3b6aebb19129dab6c4", + "short": "421f689", + "subject": "swift: add call pair 116", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "421f689be4bff3ea16bb2a3b6aebb19129dab6c4", + "curr": "4b3487e0323fa6c53420f35f48634fdbfebfdd7c", + "commit": { + "hash": "4b3487e0323fa6c53420f35f48634fdbfebfdd7c", + "short": "4b3487e", + "subject": "swift: add call pair 117", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "4b3487e0323fa6c53420f35f48634fdbfebfdd7c", + "curr": "d8e4aed5a66b7e69e0a896ba503311bcf57ff09b", + "commit": { + "hash": "d8e4aed5a66b7e69e0a896ba503311bcf57ff09b", + "short": "d8e4aed", + "subject": "swift: add call pair 118", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "d8e4aed5a66b7e69e0a896ba503311bcf57ff09b", + "curr": "be501ee5d7f63a9c994ec39e64e61b37ca6bb225", + "commit": { + "hash": "be501ee5d7f63a9c994ec39e64e61b37ca6bb225", + "short": "be501ee", + "subject": "swift: add call pair 119", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": true, + "swift_files": [ + "Sources/App.swift", + "Sources/Engine.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 2, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "be501ee5d7f63a9c994ec39e64e61b37ca6bb225", + "curr": "15f2b3b4ce1eada4d8d1fea53c2e547f14cd85f4", + "commit": { + "hash": "15f2b3b4ce1eada4d8d1fea53c2e547f14cd85f4", + "short": "15f2b3b", + "subject": "docs: update 120", + "author": "FlowMap Bot", + "date": "2026-03-07T16:37:54+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + } + ] +} diff --git a/reports/replay-kdecoder-strict.json b/reports/replay-kdecoder-strict.json new file mode 100644 index 0000000..9fa8552 --- /dev/null +++ b/reports/replay-kdecoder-strict.json @@ -0,0 +1,420 @@ +{ + "created_at": "2026-03-07T07:48:42.581Z", + "mode": "commit-replay", + "config": { + "repo": "/Users/seungminlee/Desktop/Development/KDecoder", + "rev": "HEAD", + "count": 16, + "strict_swift": true, + "keep_temp": false, + "report_path": "/Users/seungminlee/Desktop/Development/FlowMap/reports/replay-kdecoder-strict.json" + }, + "binaries": { + "flowmap": "/Users/seungminlee/Desktop/Development/FlowMap/target/debug/flowmap", + "parser": "/Users/seungminlee/Desktop/Development/FlowMap/parsers/swift-ast/.build/debug/flowmap-swift-ast" + }, + "summary": { + "total_pairs": 15, + "pass_pairs": 9, + "warn_pairs": 0, + "failed_pairs": 6, + "error_pairs": 0, + "swift_pairs": 8, + "non_swift_pairs": 7, + "confusion": { + "tp": 2, + "tn": 7, + "fp": 0, + "fn": 6 + }, + "non_swift_fp_rate": 0, + "swift_detection_rate": 0.25, + "gate": { + "max_non_swift_fp_rate": 0, + "max_errors": 0, + "strict_swift_required": true + }, + "gate_passed": false + }, + "results": [ + { + "prev": "ac97c6859b000be3a354dc3808745fb363f7abdb", + "curr": "0bbee279dc78c61e3ce1462ea9a90f05d4583840", + "commit": { + "hash": "0bbee279dc78c61e3ce1462ea9a90f05d4583840", + "short": "0bbee27", + "subject": "Bump version to v2.0.1", + "author": "adgk2349", + "date": "2026-03-02T23:51:44+09:00" + }, + "swift_changed": true, + "swift_files": [ + "KDecoder/View/ContentView.swift" + ], + "engine_changed": false, + "expected_changed": true, + "status": "fail_swift_fn", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "0bbee279dc78c61e3ce1462ea9a90f05d4583840", + "curr": "9472679eeda62d29422e2c28d37962b72cb7047e", + "commit": { + "hash": "9472679eeda62d29422e2c28d37962b72cb7047e", + "short": "9472679", + "subject": "Add README.md", + "author": "adgk2349", + "date": "2026-03-02T23:53:53+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "9472679eeda62d29422e2c28d37962b72cb7047e", + "curr": "dacbd2e2628f36c618f2cd1b04d3dc429bc1e5b5", + "commit": { + "hash": "dacbd2e2628f36c618f2cd1b04d3dc429bc1e5b5", + "short": "dacbd2e", + "subject": "Translate README to Korean, add quit button", + "author": "adgk2349", + "date": "2026-03-03T00:00:26+09:00" + }, + "swift_changed": true, + "swift_files": [ + "KDecoder/View/ContentView.swift" + ], + "engine_changed": false, + "expected_changed": true, + "status": "fail_swift_fn", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "dacbd2e2628f36c618f2cd1b04d3dc429bc1e5b5", + "curr": "32eb843be13f8a57db450371ba2b600273653546", + "commit": { + "hash": "32eb843be13f8a57db450371ba2b600273653546", + "short": "32eb843", + "subject": "Move quit button to bottom bar with visible glassEffect style", + "author": "adgk2349", + "date": "2026-03-03T00:05:11+09:00" + }, + "swift_changed": true, + "swift_files": [ + "KDecoder/View/ContentView.swift" + ], + "engine_changed": false, + "expected_changed": true, + "status": "fail_swift_fn", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "32eb843be13f8a57db450371ba2b600273653546", + "curr": "9ce4f79c4ef454433fb8e4d8b261834b010ef174", + "commit": { + "hash": "9ce4f79c4ef454433fb8e4d8b261834b010ef174", + "short": "9ce4f79", + "subject": "Rearrange layout: version beside title, quit top-right, checkbox bottom-right", + "author": "adgk2349", + "date": "2026-03-03T00:08:30+09:00" + }, + "swift_changed": true, + "swift_files": [ + "KDecoder/View/ContentView.swift" + ], + "engine_changed": false, + "expected_changed": true, + "status": "fail_swift_fn", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "9ce4f79c4ef454433fb8e4d8b261834b010ef174", + "curr": "3b386cea775cfdbbefca2fe6c2386fa4924c16de", + "commit": { + "hash": "3b386cea775cfdbbefca2fe6c2386fa4924c16de", + "short": "3b386ce", + "subject": "Add custom About panel", + "author": "adgk2349", + "date": "2026-03-03T00:11:09+09:00" + }, + "swift_changed": true, + "swift_files": [ + "KDecoder/App/AppDelegate.swift", + "KDecoder/App/KDecoderApp.swift", + "KDecoder/View/AboutView.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 4, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "3b386cea775cfdbbefca2fe6c2386fa4924c16de", + "curr": "023b88c4990917f095e7909cc9cedae365bc0c9e", + "commit": { + "hash": "023b88c4990917f095e7909cc9cedae365bc0c9e", + "short": "023b88c", + "subject": "Add PayPal sponsor link to README", + "author": "adgk2349", + "date": "2026-03-03T00:17:50+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "023b88c4990917f095e7909cc9cedae365bc0c9e", + "curr": "06a9363e97c8070f8643d42759c55d5d447089a1", + "commit": { + "hash": "06a9363e97c8070f8643d42759c55d5d447089a1", + "short": "06a9363", + "subject": "Update app icon: black gothic K design", + "author": "adgk2349", + "date": "2026-03-03T00:19:57+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "06a9363e97c8070f8643d42759c55d5d447089a1", + "curr": "14e2db505d8c0f72eafe7f1300a3222153bb8e86", + "commit": { + "hash": "14e2db505d8c0f72eafe7f1300a3222153bb8e86", + "short": "14e2db5", + "subject": "Keep app alive in background, fix About icon", + "author": "adgk2349", + "date": "2026-03-03T00:23:23+09:00" + }, + "swift_changed": true, + "swift_files": [ + "KDecoder/App/AppDelegate.swift", + "KDecoder/View/AboutView.swift" + ], + "engine_changed": true, + "expected_changed": true, + "status": "pass", + "counts": { + "added_nodes": 1, + "removed_nodes": 0, + "changed_nodes": 5, + "added_edges": 1, + "removed_edges": 0, + "impact": 2 + } + }, + { + "prev": "14e2db505d8c0f72eafe7f1300a3222153bb8e86", + "curr": "bdf845cbc2b758a98225b4ee81cce977bf07ff8c", + "commit": { + "hash": "bdf845cbc2b758a98225b4ee81cce977bf07ff8c", + "short": "bdf845c", + "subject": "Cleanup project: remove redundant icons and update project file", + "author": "adgk2349", + "date": "2026-03-03T00:36:48+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "bdf845cbc2b758a98225b4ee81cce977bf07ff8c", + "curr": "abf42a481bd04826b56248b5e6c3a79b8c98d9fc", + "commit": { + "hash": "abf42a481bd04826b56248b5e6c3a79b8c98d9fc", + "short": "abf42a4", + "subject": "Include Assets.xcassets and Info.plist in build target", + "author": "adgk2349", + "date": "2026-03-03T00:37:46+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "abf42a481bd04826b56248b5e6c3a79b8c98d9fc", + "curr": "81063ab15d7559539fc3f20954cd65a24715e2c7", + "commit": { + "hash": "81063ab15d7559539fc3f20954cd65a24715e2c7", + "short": "81063ab", + "subject": "Update app icon: remove white border for a cleaner look", + "author": "adgk2349", + "date": "2026-03-03T00:40:39+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "81063ab15d7559539fc3f20954cd65a24715e2c7", + "curr": "34ae261cb34b953be0b96c8b94db7038d8b7d121", + "commit": { + "hash": "34ae261cb34b953be0b96c8b94db7038d8b7d121", + "short": "34ae261", + "subject": "Add screenshots to README", + "author": "adgk2349", + "date": "2026-03-03T00:50:51+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "34ae261cb34b953be0b96c8b94db7038d8b7d121", + "curr": "014d377246c4350361321f22246c16c17ee77fc6", + "commit": { + "hash": "014d377246c4350361321f22246c16c17ee77fc6", + "short": "014d377", + "subject": "Update repository links to reflect rename to KDecoder-for-Mac", + "author": "adgk2349", + "date": "2026-03-03T00:53:28+09:00" + }, + "swift_changed": true, + "swift_files": [ + "KDecoder/View/AboutView.swift" + ], + "engine_changed": false, + "expected_changed": true, + "status": "fail_swift_fn", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "014d377246c4350361321f22246c16c17ee77fc6", + "curr": "36d81f811a61593221eeac7de3994d5a34309871", + "commit": { + "hash": "36d81f811a61593221eeac7de3994d5a34309871", + "short": "36d81f8", + "subject": "Correct repository name to KDecoder_for_Mac in links", + "author": "adgk2349", + "date": "2026-03-03T00:55:20+09:00" + }, + "swift_changed": true, + "swift_files": [ + "KDecoder/View/AboutView.swift" + ], + "engine_changed": false, + "expected_changed": true, + "status": "fail_swift_fn", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + } + ] +} diff --git a/reports/replay-kdecoder.json b/reports/replay-kdecoder.json new file mode 100644 index 0000000..62fc5b7 --- /dev/null +++ b/reports/replay-kdecoder.json @@ -0,0 +1,420 @@ +{ + "created_at": "2026-03-07T07:49:10.201Z", + "mode": "commit-replay", + "config": { + "repo": "/Users/seungminlee/Desktop/Development/KDecoder", + "rev": "HEAD", + "count": 16, + "strict_swift": false, + "keep_temp": false, + "report_path": "/Users/seungminlee/Desktop/Development/FlowMap/reports/replay-kdecoder.json" + }, + "binaries": { + "flowmap": "/Users/seungminlee/Desktop/Development/FlowMap/target/debug/flowmap", + "parser": "/Users/seungminlee/Desktop/Development/FlowMap/parsers/swift-ast/.build/debug/flowmap-swift-ast" + }, + "summary": { + "total_pairs": 15, + "pass_pairs": 9, + "warn_pairs": 6, + "failed_pairs": 0, + "error_pairs": 0, + "swift_pairs": 8, + "non_swift_pairs": 7, + "confusion": { + "tp": 2, + "tn": 7, + "fp": 0, + "fn": 6 + }, + "non_swift_fp_rate": 0, + "swift_detection_rate": 0.25, + "gate": { + "max_non_swift_fp_rate": 0, + "max_errors": 0, + "strict_swift_required": false + }, + "gate_passed": true + }, + "results": [ + { + "prev": "ac97c6859b000be3a354dc3808745fb363f7abdb", + "curr": "0bbee279dc78c61e3ce1462ea9a90f05d4583840", + "commit": { + "hash": "0bbee279dc78c61e3ce1462ea9a90f05d4583840", + "short": "0bbee27", + "subject": "Bump version to v2.0.1", + "author": "adgk2349", + "date": "2026-03-02T23:51:44+09:00" + }, + "swift_changed": true, + "swift_files": [ + "KDecoder/View/ContentView.swift" + ], + "engine_changed": false, + "expected_changed": null, + "status": "warn_swift_no_graph_change", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "0bbee279dc78c61e3ce1462ea9a90f05d4583840", + "curr": "9472679eeda62d29422e2c28d37962b72cb7047e", + "commit": { + "hash": "9472679eeda62d29422e2c28d37962b72cb7047e", + "short": "9472679", + "subject": "Add README.md", + "author": "adgk2349", + "date": "2026-03-02T23:53:53+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "9472679eeda62d29422e2c28d37962b72cb7047e", + "curr": "dacbd2e2628f36c618f2cd1b04d3dc429bc1e5b5", + "commit": { + "hash": "dacbd2e2628f36c618f2cd1b04d3dc429bc1e5b5", + "short": "dacbd2e", + "subject": "Translate README to Korean, add quit button", + "author": "adgk2349", + "date": "2026-03-03T00:00:26+09:00" + }, + "swift_changed": true, + "swift_files": [ + "KDecoder/View/ContentView.swift" + ], + "engine_changed": false, + "expected_changed": null, + "status": "warn_swift_no_graph_change", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "dacbd2e2628f36c618f2cd1b04d3dc429bc1e5b5", + "curr": "32eb843be13f8a57db450371ba2b600273653546", + "commit": { + "hash": "32eb843be13f8a57db450371ba2b600273653546", + "short": "32eb843", + "subject": "Move quit button to bottom bar with visible glassEffect style", + "author": "adgk2349", + "date": "2026-03-03T00:05:11+09:00" + }, + "swift_changed": true, + "swift_files": [ + "KDecoder/View/ContentView.swift" + ], + "engine_changed": false, + "expected_changed": null, + "status": "warn_swift_no_graph_change", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "32eb843be13f8a57db450371ba2b600273653546", + "curr": "9ce4f79c4ef454433fb8e4d8b261834b010ef174", + "commit": { + "hash": "9ce4f79c4ef454433fb8e4d8b261834b010ef174", + "short": "9ce4f79", + "subject": "Rearrange layout: version beside title, quit top-right, checkbox bottom-right", + "author": "adgk2349", + "date": "2026-03-03T00:08:30+09:00" + }, + "swift_changed": true, + "swift_files": [ + "KDecoder/View/ContentView.swift" + ], + "engine_changed": false, + "expected_changed": null, + "status": "warn_swift_no_graph_change", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "9ce4f79c4ef454433fb8e4d8b261834b010ef174", + "curr": "3b386cea775cfdbbefca2fe6c2386fa4924c16de", + "commit": { + "hash": "3b386cea775cfdbbefca2fe6c2386fa4924c16de", + "short": "3b386ce", + "subject": "Add custom About panel", + "author": "adgk2349", + "date": "2026-03-03T00:11:09+09:00" + }, + "swift_changed": true, + "swift_files": [ + "KDecoder/App/AppDelegate.swift", + "KDecoder/App/KDecoderApp.swift", + "KDecoder/View/AboutView.swift" + ], + "engine_changed": true, + "expected_changed": null, + "status": "pass", + "counts": { + "added_nodes": 4, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 3, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "3b386cea775cfdbbefca2fe6c2386fa4924c16de", + "curr": "023b88c4990917f095e7909cc9cedae365bc0c9e", + "commit": { + "hash": "023b88c4990917f095e7909cc9cedae365bc0c9e", + "short": "023b88c", + "subject": "Add PayPal sponsor link to README", + "author": "adgk2349", + "date": "2026-03-03T00:17:50+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "023b88c4990917f095e7909cc9cedae365bc0c9e", + "curr": "06a9363e97c8070f8643d42759c55d5d447089a1", + "commit": { + "hash": "06a9363e97c8070f8643d42759c55d5d447089a1", + "short": "06a9363", + "subject": "Update app icon: black gothic K design", + "author": "adgk2349", + "date": "2026-03-03T00:19:57+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "06a9363e97c8070f8643d42759c55d5d447089a1", + "curr": "14e2db505d8c0f72eafe7f1300a3222153bb8e86", + "commit": { + "hash": "14e2db505d8c0f72eafe7f1300a3222153bb8e86", + "short": "14e2db5", + "subject": "Keep app alive in background, fix About icon", + "author": "adgk2349", + "date": "2026-03-03T00:23:23+09:00" + }, + "swift_changed": true, + "swift_files": [ + "KDecoder/App/AppDelegate.swift", + "KDecoder/View/AboutView.swift" + ], + "engine_changed": true, + "expected_changed": null, + "status": "pass", + "counts": { + "added_nodes": 1, + "removed_nodes": 0, + "changed_nodes": 5, + "added_edges": 1, + "removed_edges": 0, + "impact": 2 + } + }, + { + "prev": "14e2db505d8c0f72eafe7f1300a3222153bb8e86", + "curr": "bdf845cbc2b758a98225b4ee81cce977bf07ff8c", + "commit": { + "hash": "bdf845cbc2b758a98225b4ee81cce977bf07ff8c", + "short": "bdf845c", + "subject": "Cleanup project: remove redundant icons and update project file", + "author": "adgk2349", + "date": "2026-03-03T00:36:48+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "bdf845cbc2b758a98225b4ee81cce977bf07ff8c", + "curr": "abf42a481bd04826b56248b5e6c3a79b8c98d9fc", + "commit": { + "hash": "abf42a481bd04826b56248b5e6c3a79b8c98d9fc", + "short": "abf42a4", + "subject": "Include Assets.xcassets and Info.plist in build target", + "author": "adgk2349", + "date": "2026-03-03T00:37:46+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "abf42a481bd04826b56248b5e6c3a79b8c98d9fc", + "curr": "81063ab15d7559539fc3f20954cd65a24715e2c7", + "commit": { + "hash": "81063ab15d7559539fc3f20954cd65a24715e2c7", + "short": "81063ab", + "subject": "Update app icon: remove white border for a cleaner look", + "author": "adgk2349", + "date": "2026-03-03T00:40:39+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "81063ab15d7559539fc3f20954cd65a24715e2c7", + "curr": "34ae261cb34b953be0b96c8b94db7038d8b7d121", + "commit": { + "hash": "34ae261cb34b953be0b96c8b94db7038d8b7d121", + "short": "34ae261", + "subject": "Add screenshots to README", + "author": "adgk2349", + "date": "2026-03-03T00:50:51+09:00" + }, + "swift_changed": false, + "swift_files": [], + "engine_changed": false, + "expected_changed": false, + "status": "pass", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "34ae261cb34b953be0b96c8b94db7038d8b7d121", + "curr": "014d377246c4350361321f22246c16c17ee77fc6", + "commit": { + "hash": "014d377246c4350361321f22246c16c17ee77fc6", + "short": "014d377", + "subject": "Update repository links to reflect rename to KDecoder-for-Mac", + "author": "adgk2349", + "date": "2026-03-03T00:53:28+09:00" + }, + "swift_changed": true, + "swift_files": [ + "KDecoder/View/AboutView.swift" + ], + "engine_changed": false, + "expected_changed": null, + "status": "warn_swift_no_graph_change", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + }, + { + "prev": "014d377246c4350361321f22246c16c17ee77fc6", + "curr": "36d81f811a61593221eeac7de3994d5a34309871", + "commit": { + "hash": "36d81f811a61593221eeac7de3994d5a34309871", + "short": "36d81f8", + "subject": "Correct repository name to KDecoder_for_Mac in links", + "author": "adgk2349", + "date": "2026-03-03T00:55:20+09:00" + }, + "swift_changed": true, + "swift_files": [ + "KDecoder/View/AboutView.swift" + ], + "engine_changed": false, + "expected_changed": null, + "status": "warn_swift_no_graph_change", + "counts": { + "added_nodes": 0, + "removed_nodes": 0, + "changed_nodes": 0, + "added_edges": 0, + "removed_edges": 0, + "impact": 0 + } + } + ] +}