hanahmily commented on PR #1144:
URL: 
https://github.com/apache/skywalking-banyandb/pull/1144#issuecomment-4562117375

   Addressed all 9 Copilot review comments. Branch was force-pushed; commit 
count stays at 3 (proto / design / backlog) as originally planned, with the 
fixes folded into the relevant commits.
   
   **Proto validation (4 comments):**
   - `TracePipelineConfig.metadata` — now `[(validate.rules).message = 
{required: true}]` so empty configs are rejected at parse time rather than 
reaching the registry.
   - `StageRule.stage`, `TagSamplingRule.tag_key`, `TagMatcher.tag_key` — all 
now `[(validate.rules).string.min_len = 1]`, matching the project convention 
(e.g. `common.v1.LifecycleStage.name`). An empty stage name or tag key would 
have been silently un-matchable.
   
   **Backlog doc inconsistency (1 comment):**
   - The "field 2 and field 7 are reserved" claim was stale: those reservations 
were dropped during the "remove all scoring references" pass earlier in the 
branch, and the gaps were closed (StageRule field 2 is now `apply_at`; 
TracePipelineConfig field 7 is now `merge_grace`). Updated the backlog doc to 
say so explicitly — any future revival must pick new field numbers. The 
renumber is wire-safe because the proto has never been released.
   
   **Section numbering (3 comments):**
   - Jumped from §4.2 straight to §6.1 because the original §5 was a 
one-paragraph intro that got folded into §6 during an earlier rewrite, leaving 
subsection labels off by one. Renumbered to keep the sequence contiguous: §6.x 
→ §5.x, §7.x → §6.x, §8.x → §7.x — applied to both subsection headings and 
every cross-reference (in main doc, proto comments, and backlog doc). No `§8.x` 
or "Scenario 7/8" left anywhere.
   
   **Finalization composition semantics (1 comment):**
   - The §7.3 design-decision blockquote previously said "traces failing 
**both** the gate and any FINALIZE `StageRule` predicates are dropped", which 
could be read as `StageRule` being able to override a tail-sampling drop. 
Rewrote it to be explicit: `tail_sampling` is the **absolute gate**, evaluated 
first — traces failing it are dropped immediately and never reach any 
`StageRule`. Surviving traces are then evaluated against any FINALIZE-targeted 
`StageRule`; failing those is also a drop. To survive finalization a trace must 
pass **both**. This now matches §1.1's "decides whether the trace survives at 
all" framing.
   
   `make generate / build / lint / check` all pass locally; CI was clean on the 
previous push, the regenerated `docs/api-reference.md` picked up the new 
validation comments only.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to