This is an automated email from the ASF dual-hosted git repository.

wenjin272 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/flink-agents.git


The following commit(s) were added to refs/heads/main by this push:
     new 8d1702c9 [infra] Add change-type review guides with runtime/ template 
(#911)
8d1702c9 is described below

commit 8d1702c96c1401b8f114831018ad2f8ada193a69
Author: Weiqing Yang <[email protected]>
AuthorDate: Sat Jul 25 00:28:45 2026 -0700

    [infra] Add change-type review guides with runtime/ template (#911)
---
 code_review.md                          | 15 +++++++++++++++
 review-guides/runtime-state-recovery.md | 31 +++++++++++++++++++++++++++++++
 tools/.rat-excludes                     |  3 ++-
 3 files changed, 48 insertions(+), 1 deletion(-)

diff --git a/code_review.md b/code_review.md
index b99d41d1..f78e7bd6 100644
--- a/code_review.md
+++ b/code_review.md
@@ -30,6 +30,21 @@ Keep these findings separate. A design-focused comment does 
not need to prove an
 immediate runtime bug, but it must explain the concrete complexity, ambiguity,
 or maintenance risk introduced by the change.
 
+## Change-Type Review Guides
+
+For common change types, start from the focused guide below as an on-ramp, then
+apply the full passes in this document. Each guide narrows the checklist to the
+concerns that matter most for that area and links examples from past reviews.
+Guides load on demand, so the general passes here stay short.
+
+| Change type | Focus | Guide |
+|---|---|---|
+| `runtime/` state and recovery | serde and replay type fidelity, real 
failure-path tests | 
[review-guides/runtime-state-recovery.md](review-guides/runtime-state-recovery.md)
 |
+| Python-Java bridge | cross-language parity, type mapping across Pemja | 
planned |
+| `api/` contract | API shape, compatibility policy, deprecation | planned |
+| `dist` and dependency | shading, LICENSE and NOTICE, dist registration | 
planned |
+| docs-only | facts match their source of truth | planned |
+
 ## Required Review Passes
 
 1. Understand the issue or feature goal.
diff --git a/review-guides/runtime-state-recovery.md 
b/review-guides/runtime-state-recovery.md
new file mode 100644
index 00000000..f03c5354
--- /dev/null
+++ b/review-guides/runtime-state-recovery.md
@@ -0,0 +1,31 @@
+# Review Guide: runtime/ State and Recovery
+
+Load this guide when a PR changes runtime state, checkpointing, serialization 
of
+stored values, action-state handling, or async, mailbox, and recovery paths. It
+narrows the full passes in `code_review.md` to the ones that matter most for 
this
+area; the general passes still apply.
+
+## Focused checklist
+
+- Trace every stored value through its full serialize, checkpoint, and restore
+  round-trip. Confirm the restored value keeps its original type instead of a
+  lossy or re-encoded form, such as a `byte[]` that returns as a base64 
`String`.
+- Confirm a serde envelope or version tag scopes the value the way recovery
+  needs it, not only the way the happy-path write needs it.
+- Under the beta policy, question serde or state compatibility flags that only
+  exist to read old formats. Prefer removing them unless they carry a concrete
+  obligation.
+- For a bugfix, check the failure actually stops reaching the old path after 
the
+  fix, not just in the one code path the PR touched.
+- Test the real runtime failure path through the operator, mailbox, or action
+  task, not a helper in isolation. Make failure-injection fixtures 
deterministic
+  so the regression test exercises the bug on every run.
+- Cover async, retry, delayed-callback, and recovery paths when the change
+  affects them.
+
+## Examples from past reviews
+
+| Case | Pass it exercises | Review |
+|---|---|---|
+| A versioned serde envelope for stored `MemoryUpdate` values carried an 
`isEnvelope` backward-compatibility flag. The review asked whether that 
compatibility path was essential or should be dropped under the beta policy. | 
Whether a serde compatibility channel must exist, or only keeps an old format 
alive. | 
[#874](https://github.com/apache/flink-agents/pull/874#discussion_r3541046130) |
+| A hotfix propagated a swallowed action-task `Error` out of the mailbox 
instead of losing it in a `Future`. The review kept the linkage-error 
regression fixture deterministic, since `System.nanoTime()` may return a value 
that skips the injected failure, so the test exercises the real failure path on 
every run. | Testing the actual runtime failure path with a deterministic 
fixture. | 
[#880](https://github.com/apache/flink-agents/pull/880#discussion_r3540383941) |
diff --git a/tools/.rat-excludes b/tools/.rat-excludes
index dcd7de72..94dacb5f 100644
--- a/tools/.rat-excludes
+++ b/tools/.rat-excludes
@@ -25,4 +25,5 @@ skills/*
 .*\.yaml$
 AGENTS.md
 code_review.md
-CLAUDE.md
\ No newline at end of file
+CLAUDE.md
+review-guides/*
\ No newline at end of file

Reply via email to