Skip to content

feat(impact): flow-diff — did a named flow's shape change (closes #313)#314

Merged
Wolfvin merged 1 commit into
mainfrom
feat/issue-313-flow-diff
Jul 18, 2026
Merged

feat(impact): flow-diff — did a named flow's shape change (closes #313)#314
Wolfvin merged 1 commit into
mainfrom
feat/issue-313-flow-diff

Conversation

@Wolfvin

@Wolfvin Wolfvin commented Jul 18, 2026

Copy link
Copy Markdown
Owner

Closes #313. Composes #309 (flow membership) + #297 (edge diff) + #311 (intra-flow filter).

Yang dibangun

impact --check flow-diff --name X — edge yang muncul/hilang di dalam satu flow bernama antara dua snapshot. Mengubah "200 edge berubah" (#297, tak actionable) jadi actionable:

## Flow-diff: `PAYMENT`  (snap1 → snap2)
### Removed edges
- `checkout` → `validate`
### Added edges
- `checkout` → `charge`

validasi di-bypass. Persis pertanyaan reviewer.

Arsitektur

Compose read-only, nol engine baru: audit_tags (member) × diff_snapshots (#297) → saring intra-flow (kedua endpoint anggota, konsisten #311). Rumah impact (sudah punya --name/--snapshot1/2). Membership dari tag saat ini, edge dari 2 snapshot = "bandingkan snapshot pra-PR vs working tree". Command count 12.

Verifikasi (dijalankan)

  • Demo dua-snapshot nyata: bypass validasi terdeteksi (checkout→validate hilang, checkout→charge muncul).
  • 8 test (intra-flow filter, owner-strip label, bypass, unchanged, unknown flow → daftar, missing name → error, edge-keluar-flow diabaikan).
  • markdown "Removed/Added edges"; json passthrough; not-found kasih daftar flow.
  • 19 gagal = 19 di main — nol regresi. Design doc, allowlist, docs sync.

Konteks

Ini agent-ergonomics (RFC #279): aku bisa tanya "PR ini mengubah bentuk flow pembayaran?" tanpa membaca diff mentah — CodeLens menggantikan pembacaan manual.

🤖 Generated with Claude Code

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

impact --check flow-diff --name X reports the call-edges added/removed
WITHIN one named flow between two snapshots — turning edge-diff #297's
"200 edges changed" into the actionable "the PAYMENT flow's shape changed:
checkout->validate removed, checkout->charge added" (validation bypassed).

Pure read-only compose of three existing pieces: flow membership from
@flow tags (#309), diff_snapshots edge diff (#297), intra-flow filter
matching the subgraph semantics (#311). Home is the impact umbrella, which
already exposes --name/--snapshot1/--snapshot2; only a _CHECKS entry and a
namespace branch are added. Command count stays 12.

Membership is read from tags as-of-now; edges from two snapshots — exactly
"compare a pre-PR snapshot against the working tree". Intra-flow only (both
endpoints members), keeping signal to the flow's own wiring.

Verified end-to-end on a real two-snapshot bypass demo; 8 unit tests
(intra-flow filter, owner-strip, bypass detected, unchanged, unknown flow,
missing name, edge-leaving-flow ignored). Full suite 19 = 19 on main.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@sonarqubecloud

Copy link
Copy Markdown

@Wolfvin
Wolfvin merged commit 7590f28 into main Jul 18, 2026
2 of 8 checks passed
@Wolfvin
Wolfvin deleted the feat/issue-313-flow-diff branch July 18, 2026 01:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(impact): flow-diff — did a named flow's shape change between two checkpoints (impact --check flow-diff)

1 participant