Conversation
…43-01a07240 [WRONG BRANCH] chore(release): promote verified candidate to 2.43.0
…lease-244-main-07c0
…in-07c0 chore(release): promote validated 2.44.0 to main
Promote frozen dev source cf9f662; no new runtime changes. Candidate CI34061274315 and service34061276621 are the validation references. Publication waits for successful validation and the final main push CI at the exact release SHA.
Promote frozen dev source cf9f662 as 2.45.0. The repository owner explicitly authorized this main/preview release promotion and admin PR-only merge. This is a release-specific owner decision, not an independent approval or the dev-only maintainer exception. Frozen candidate full CI34061274315 passed all25jobs after one unchanged-source rerun of Windows5; the initial holder busy assertion remains recorded without a root-cause resolution claim. Service lifecycle34061276621 passed Linux/macOS/Windows. Dev version pre-move3812 is merged. Publication still requires this actual main merge SHA's own successful push CI and Service lifecycle. No local suites were run.
[WRONG BRANCH] chore(release): promote verified 2.46.0 to main
Codex Review SummaryThis 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. |
|
✅ Deterministic PR hygiene checks passed. |
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Repository: luvs01/opencodex/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
✅ READY
Hygiene✅ Deterministic PR hygiene checks passed. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d32b8d62c9
ℹ️ 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".
| while (line[contentEnd - 1] === " " || line[contentEnd - 1] === "\t") { | ||
| contentEnd--; | ||
| } | ||
| if (line.slice(contentStart, contentEnd) !== pendingFence) { |
There was a problem hiding this comment.
Handle CRLF when matching closing fences
When a PR body or commit message uses CRLF line endings, splitting only at \n leaves \r at the end of each line, but this code trims only spaces and tabs; consequently, a closing fence such as ```\r never equals pendingFence. I checked .github/workflows/pr-hygiene.yml lines 156–174, which pass REST commit messages directly into this parser, so fenced carry language in a CRLF-formatted commit can be treated as a real declaration and spuriously block the PR for missing attribution. Normalize line endings or strip the terminal \r before comparing the delimiter.
Useful? React with 👍 / 👎.
…de a later block Co-Authored-By: Epinephrine <luvs01@hanmail.net>
|
Fixed in eba3476. |
Co-Authored-By: Epinephrine <luvs01@hanmail.net>
|
Fixed in 0c0bccf.
Exhausted lengths are retired through a disjoint-set cursor, so the scan stays near-linear — verified by fuzzing ~600k random documents against the original regex with zero output mismatches, plus regressions for the four-opening/three-closing case, the longest-close preference, and CRLF input. |
| function closeFor(fence, openerLen, after) { | ||
| const scan = fenceIndex[fence]; | ||
| let lo = 0; | ||
| let hi = scan.lengths.length; | ||
| while (lo < hi) { | ||
| const mid = (lo + hi) >> 1; | ||
| if (scan.lengths[mid] <= openerLen) lo = mid + 1; | ||
| else hi = mid; | ||
| } | ||
| const pos = lo - 1; | ||
| while (pos >= 0) { | ||
| const index = aliveAt(scan, pos); | ||
| if (index < 0) return -1; | ||
| const list = scan.lists[index]; | ||
| let cursor = scan.cursors[index]; | ||
| while (cursor < list.length && list[cursor] <= after) cursor++; | ||
| scan.cursors[index] = cursor; | ||
| if (cursor < list.length) return list[cursor]; | ||
| scan.parent[index] = aliveAt(scan, index - 1); | ||
| } | ||
| return -1; |
There was a problem hiding this comment.
Motivation
pull_request_targetgates.Description
stripFencedCode(text)and madestrippedTextcall it so fence stripping is linear-time on attacker-controlled input.referencedCarryNumbersdirectly and added a regression that feeds many unclosed fence-like lines to validate correctness and bounded runtime./.github/scripts/pr-carry-attribution.cjsand its test/.github/scripts/pr-carry-attribution.test.cjs.Testing
node --test .github/scripts/pr-carry-attribution.test.cjsand observed19tests passed and0failed.node --test .github/scripts/*.test.cjsand the relevant GitHub automation tests (including the new regression) passed.bun test tests/ci-workflows/ci-workflows.test.tsand it failed due to a local Bun runtime/YAML parsing environment mismatch unrelated to this patch.bun run prepushwheretypecheckand GUI lint steps passed while the full repo test phase surfaced environment-specific/timeout failures that are unrelated to the fenced-code fix.Codex Task