Repository navigation
Conversation
pre-push warns on every open-PR push to re-verify the description; the PR-ready subcommand blocks when the description predates the PR head commit, failing open; pr-writing skill and AGENTS.md route the re-verification.
CI Test ResultsRun: #43071213716 | Commit:
Status Overview
Legend: ✅ passed | ❌ failed | ⚪ skipped | 🚫 cancelled Summary: Total: 32 | Passed: 32 | Failed: 0 Updated: 2026-11-11 18:08:46 UTC |
Scan-Build Report
Bug Summary
Filter Results by FileReports
|
|||||||||||||||||||||||||||||||||||||||||||||||||
Formatting-only: the file landed on main unformatted via #947 (PROF-16527); spotlessCheck fails for every branch based on it.
|
❌ 39 passed, 1 failed out of 40 expected configurations Test Matrix
Failure Detailsmusl-arm64-openj9-jdk21Profiler-only: Links
|
CodeQL code-quality flags implicit adjacent string concatenation; same string, explicit +.
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b45dc07d8f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| "--json", "updatedAt,commits", "-q", | ||
| ('.updatedAt + " " + (.commits | if length > 0 then .[-1].committedDate' | ||
| + ' else "" end)')], cwd) |
There was a problem hiding this comment.
Compare against the description's edit time, not PR activity
When new commits are pushed to an existing PR, GitHub also advances the PR's updatedAt, even if its description remains unchanged. That timestamp will normally be later than the newly pushed commit's committedDate, so this check allows gh pr ready in precisely the stale-description scenario it is intended to detect. This is broader than the acknowledged comment-related bypass: the code push itself makes the description appear fresh. GitHub defines updatedAt as when “the object was last updated,” not when its body was edited (GraphQL reference). Query the description's edit timestamp, with an appropriate creation-time fallback, instead.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
On PRs with more than 100 commits, the ready-time guard can compare freshness against commit 100 instead of the head, allowing stale descriptions through.
🤖 Bits Code Review · Commit 5545c35
| None (fail open) when gh fails, the PR has no commits, or a timestamp is unparseable.""" | ||
| out = gh_query(["pr", "view", *pr_selector(args)[:1], *( ["-R", repo] if repo else [] ), | ||
| "--json", "updatedAt,commits", "-q", | ||
| ('.updatedAt + " " + (.commits | if length > 0 then .[-1].committedDate' |
There was a problem hiding this comment.
Compare description freshness against the actual head commit
For PRs with more than 100 commits, gh pr view --json commits returns only the first 100 commits, so .[-1] selects commit 100 rather than the head. When updatedAt falls between those commit timestamps, the hook allows gh pr ready despite the description predating the actual head. Query the head commit's timestamp directly and update the gh mock and regression coverage accordingly.
React: 👍 useful · 👎 wrong · 😕 unclear · 👀 right, but not acting on it
What each reaction means
- 👍 Useful: correct, and you're fixing it or will.
- 👎 Wrong: the finding is incorrect, for example the bug can't happen or the code was misread.
- 😕 Unclear: you can't tell what it means or why it matters.
- 👀 Right, not acting: correct, but intended, out of scope for this PR, a known risk, or too minor.
🤖 Bits Code Review · Open Bits AI session
❌ ErrorsYour PR has failed checks. Please review the issues below and take necessary action before merging. 🚦 4 Pipeline jobs failed
Useful? React with 👍 / 👎 This comment will be updated automatically if new data arrives.🔗 Commit SHA: b45dc07 | Docs | View more details | Give us feedback! |
What does this PR do?:
Agents evolve a branch after its PR is open — review fixes, rebase replays, scope changes — without re-verifying the PR title and description. This adds a warn-level guardrail set that keeps descriptions in sync:
pr-writingskill rule plus anAGENTS.mdrouting line: whenever commits are added to a branch with an open PR, re-verify the title and description against the new diff and update what no longer holds..githooks/pre-push: every branch push that passes the marker, copyright and CLAUDE.md gates and targets a branch with an open PR warns (never blocks) to re-verify the description.gh pr viewprobe; comments also bumpupdatedAt, so a fresh value allows). The probe fails open.Motivation:
The pre-PR review gate certifies the code but nothing watches the description afterwards, so stale descriptions (wrong scope, dead numbers, dropped accepted costs) reach reviewers and merge. The pre-push path warns because the common write-description-then-commit-then-push flow has the description edit predating the head commit — a timestamp gate there would false-fire; the ready path blocks because marking ready is an explicit freshness claim.
Additional Notes:
Accepted costs, flagged for reviewer acknowledgment:
pre-pushnow makes onegh pr listcall on every branch push (previously skipped for a fresh marker); offline pushes fail open, at up to a 10s timeout.--force-with-leasereplay rewrites commit dates, so marking ready blocks until the description is re-saved — a no-op edit clears it (documented inutils/README.mdknown limits).Agentic review (sphinx, quick effort): 0 CRITICAL/HIGH; 4 LOW/INFO findings fixed via the address run (naive-timestamp fail-open, three fail-open tests, README rebase note).
Commit
1222e4e82(Fix spotless violation in JvmtiEventTimingTest) repairs a base-commit formatting break: #947 landed that file unformatted onmain, failingcheck-formattingfor every branch based on it (main's own CI run at4cc58ca39failed). Content is byte-for-bytespotlessApplyoutput, verified by a green:ddprof-test:spotlessCheck(logbuild/logs/20261111-183236); re-review waived by the user for this mechanical commit. Commit5545c352eaddresses the CodeQL code-quality comment onstale_description(implicit adjacent string literals): explicit+, jq query text byte-identical, re-review waived.How to test the change?:
bash utils/tests/test_review_marker.sh— 260 tests, 0 failed (adds description-staleness block/equal/fresh, unparseable timestamp, missing UTC designator, no-commits fail-open, and pre-push warning cases).For Datadog employees:
credentials of any kind, I've requested a security review (run the
dd:platform-security-reviewskill, or file a request via the PSEC review form).
bewairealso runs automatically on every PR.