Skip to content

fix(gitlab, prs): a review is signed by $GENESIS_TOOLS_AGENT, and a GitLab MR with more than 100 commits opens again - #590

Merged
genesiscz merged 3 commits into
masterfrom
fix/2026-10-25-gitlab-prs
Oct 26, 2026
Merged

genesiscz merged 3 commits into
masterfrom
fix/2026-10-25-gitlab-prs

Conversation

@genesiscz

Copy link
Copy Markdown
Owner

Two GitLab fixes: a review is signed by $GENESIS_TOOLS_AGENT when --agent is not given, so a Fable or Codex session names itself; and a GitLab MR with more than 100 commits opens again, since glab --paginate prints one JSON array per page and they are now joined.

  • e0e6b9f feat(gitlab): a review is signed by $GENESIS_TOOLS_AGENT when --agent is not given, so a Fable or Codex session names itself, and the /user type carries email and commit_email
  • 4d92285 fix(GenesisHub, prs): a GitLab MR with more than 100 commits opens again, since glab --paginate prints one JSON array per page back to back and the commits are now read page by page

Gates on this branch (clean worktree, 2026-10-25): bun scripts/git/check-commits.ts, root tsc --noEmit, biome on the changed files, the related tests, and scripts/ci/placeholder-check.sh. Tests: 5 files, 177 pass.

Split out of the unified branch (#507); each commit is a cherry-pick of its unified original. The third commit planned here (16b92bb, a link's range that ends in unpushed commits) is left out: master's newer PRLinkedRange API (7e40b01) changed under it, so it needs a port and comes in its own PR.

@eve-bot-lovinka

eve-bot-lovinka Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

🐉 eve review — ⏭️ superseded

→ run

  • Queued 01:07:26Z
  • Reading diff — 2 files
  • Building repo map
  • Analyzing (find → verify)
  • Posting review
  • Done 01:16:08Z (8m 43s)

superseded — head moved to 326b858 during prep; the queued review covers it

run wrun_01M5TVZ3C987Q5RY3G9WJH6FQQ

Previous runs (1)
run head outcome findings took
1 4d92285 ✅ APPROVE 1 10m 41s

@coderabbitai

coderabbitai Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

Next included review available in 9 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 3 included reviews currently available. Your 43 included PR review attempts over the past 7 days set your current allowance at 3 reviews per hour.

Learn how review limits work.

Review configuration:

Run configuration
Commits

Reviewing files that changed from the base of the PR and between 0cb0967 and 326b858.

Files selected for processing: 11
  • src/gitlab/README.md
  • src/gitlab/commands/pr-review.ts
  • src/gitlab/commands/review-judgements.ts
  • src/gitlab/lib/agent-name.ts
  • src/gitlab/lib/client.ts
  • src/gitlab/lib/pr-review.test.ts
  • src/utils/env/envVariables.ts
  • src/utils/git/origins/detector.test.ts
  • src/utils/git/origins/prs.ts
  • src/utils/json.test.ts
  • src/utils/json.ts
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@eve-bot-lovinka eve-bot-lovinka Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🐉 eve review — 🟡 Review comments

4d92285 · 1 actionable finding · reviewed by find codex/gpt-6.1-sol + codex/gpt-6-luna, verify codex/gpt-6-luna · view run ↗

Severity Count
🟡 Medium 1

ℹ️ Checks (advisory — CI is authoritative) — typecheck timed out (tsconfig.json): out of memory, then its 6144 MiB retry ran out of time

Blast radius

  • env (~) → 12 dependent(s) outside this PR: src/utils/env/index.ts, src/utils/process/spawnDashboard.ts, src/utils/agent/runtime.ts, +5 more
  • registerCommentsPost (~) → 4 dependent(s) outside this PR: src/gitlab/commands/pr.ts, src/gitlab/commands/review-commands.test.ts
  • registerReviewJudgements (~) → 4 dependent(s) outside this PR: src/gitlab/commands/pr.ts, src/gitlab/commands/review-commands.test.ts
  • registerPrReview (~) → 2 dependent(s) outside this PR: src/gitlab/commands/pr.ts
  • GitLabUser (Δsig) → 1 dependent(s) outside this PR: src/gitlab/commands/analyze-user.ts
  • parseGlabMrView (~) → 1 dependent(s) outside this PR: src/utils/git/origins/index.ts
  • graph truncated by caps — dependents above are a lower bound

ℹ️ Claims vs diff — 1 claim could not be checked from the diff (c4).

Comment thread src/utils/json.ts
@genesiscz

Copy link
Copy Markdown
Owner Author

Review fixes 2026-10-26 02:07 from GPT-6.1 Sol judged by Claude Opus 5.5 (fable-judge)

Round 1. 1 open thread (eve 1, CodeRabbit 0). 1 fixed, 0 rejected, 0 already done. Full PR self-review found no additional defects. Test verification: not run (the lead verifies at integration).

Reject unconsumed text outside JSON documents (eve-bot-lovinka)

  • Context: The scanner accepted garbage before, between, or after complete documents, including an unterminated trailing string, so malformed GitLab commits output could silently become a partial result.
  • Commit(s): 0b86c7a89
  • Verdict: accepted
  • Code before:
    const char = text[index];
    if (inString) {
  • Code after:
    const char = text[index];
    if (depth === 0 && char !== "[" && char !== "{" && !/[ \t\r\n]/.test(char)) {
        return [SafeJSON.parse(text, { strict: true })];
    }
    
    if (inString) {
  • How was this fixed: At document boundaries, only an array/object opener or JSON whitespace can continue the scan. Other characters go through strict parsing of the complete input, preserving valid single primitives while rejecting garbage around completed pages. Extended the existing src/utils/json.test.ts outside the original PR diff because the defect belongs to the shared parser: regression cases cover malformed prefixes, inter-page text, suffixes, unfinished strings, invalid whitespace and malformed documents; normal cases cover nested/escaped content, adjacent pages and single values. Verification: not run (the lead verifies at integration).
  • Confidence: 98%

Threads: t1 accepted

… is not given, so a Fable or Codex session names itself, and the /user type carries email and commit_email
…ain, since glab --paginate prints one JSON array per page back to back and the commits are now read page by page
@genesiscz
genesiscz force-pushed the fix/2026-10-25-gitlab-prs branch from 0b86c7a to 326b858 Compare October 26, 2026 01:14
@genesiscz
genesiscz merged commit 326b858 into master Oct 26, 2026
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.

1 participant