Skip to content

feat(automation): run Inkspan hourly NVIDIA NIM review repair - #796

Open
seonghobae wants to merge 2 commits into
mainfrom
feat/inkspan-hourly-review-repair
Open

feat(automation): run Inkspan hourly NVIDIA NIM review repair#796
seonghobae wants to merge 2 commits into
mainfrom
feat/inkspan-hourly-review-repair

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Purpose

Add Inkspan's thin hourly PR review → repair → revalidation caller while reusing the bounded central NVIDIA NIM scheduler from prerequisite PR #782.

Exact current stacked identity

  • Head: ededa97ef4223a6d9cddf2f9cb3a94ff92c01587
  • Live prerequisite head and PR base: 60de3e6b6e8363c0aa3de8276f42a67597b2599c
  • State: Draft and mergeable
  • Reconciliation: a non-forced two-parent merge commit preserves the predecessor lineage and current prerequisite ancestry

Every check, review, or approval on an earlier head is historical.

Current product slice

The reconciled tree starts from the exact current prerequisite tree and adds only six Inkspan-owned integration files or entries:

  • .github/workflows/inkspan-hourly-review-repair.yml;
  • tests/test_inkspan_hourly_review_caller.py;
  • docs/doctoring/inkspan-hourly-review-caller.md;
  • focused quality-workflow path/compile coverage;
  • central automation-guide Inkspan contract; and
  • CHANGELOG entries.

Stale copies of the shared scheduler, autofix worker, security helpers, and parent tests were not reintroduced.

Runtime and authority contract

  • Run at minute 47, distinct from Clearfolio minute 23 and DiskSage minute 37.
  • Target ContextualWisdomLab/inkspan and protected base main.
  • Inspect at most 50 PRs, dispatch at most one repair, and apply a one-hour same-head retry floor.
  • Use a non-cancelling Inkspan-specific single-flight group.
  • Keep the caller token at contents: read.
  • Map only PR_REVIEW_MERGE_TOKEN and OPENCODE_APPROVE_TOKEN; never use secrets: inherit.
  • Do not expose NVIDIA_NIM_API_KEY, COPILOT_GITHUB_TOKEN, approval, merge, release, or protection authority to the caller.
  • Require the exact target in OPENCODE_REPOSITORY_DISPATCH_TARGETS before mutation credential materialization.

Exact-tree verification

The published tree f33630ec3d471009989e4812408ad4272542e5e6 was reproduced locally with:

  • 1,115 tests passed plus 16 subtests;
  • 7,331/7,331 owned production statements and 2,912/2,912 branches;
  • production docstrings at 100.0%;
  • focused Inkspan/DiskSage/scheduler contracts: 25 passed; and
  • compilation and whitespace gates successful.

Local evidence proves the exact tree only. The current-head Hourly NVIDIA NIM Review Repair workflow succeeded; all other required hosted, current-head review, independent approval, and protected-main operational evidence remains separate.

Stacked activation and merge gate

This PR remains Draft and must not merge before #782. After #782 reaches protected main, retarget to main, independently resolve the new live base, and rerun every applicable exact-head quality, security, supply-chain, review, approval, unresolved-thread, and protection gate. After integration, a protected-main scheduled/manual Inkspan consumer run must prove the exact target and fail-closed secret/allowlist behavior.

Pending, queued, cancelled, skipped-required, status-only, author-only, predecessor-head, synthetic, or local-only evidence is not acceptance. No administrative bypass is permitted.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@seonghobae, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 9 minutes

Limit details: You’ve used all 1 included review currently available under your plan.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 205db0a9-b76c-489a-879c-86a0ed08b99b

📥 Commits

Reviewing files that changed from the base of the PR and between c47afc2 and 4e31c8a.

📒 Files selected for processing (12)
  • .github/workflows/hourly-nvidia-nim-review-repair.yml
  • .github/workflows/inkspan-hourly-review-repair.yml
  • .github/workflows/naruon-hourly-review-repair.yml
  • AGENTS.md
  • ARCHITECTURE.md
  • CHANGELOG.md
  • CLAUDE.md
  • docs/automation/hourly-review-repair.md
  • docs/doctoring/inkspan-hourly-review-caller.md
  • docs/doctoring/naruon-hourly-review-caller.md
  • tests/test_inkspan_hourly_review_caller.py
  • tests/test_naruon_hourly_review_caller.py

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.

❤️ Share

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

Copy link
Copy Markdown
Contributor Author

Exact-current-head read-only review request after one-time prerequisite reconciliation.

Head: 1f2e56e0e517a5cbd9f9302eec8b58e81909231c
Current stacked base head: 68414ff8b24a3f8045482ccb501c935e731f821d

The focused Hourly NVIDIA NIM Review Repair workflow is successful on this exact head. The current base and head have the identical scripts/ci/redact_sensitive_log.py blob; GitHub still lists that upstream patch because the branch histories diverged, which is explicitly documented in the PR body and must not be mistaken for a second product change. The intended Inkspan caller slice remains the scheduler caller, focused contract, doctoring, and changelog integration.

@coderabbitai review
@opencode-agent review
@cwl-noema-review review
@strix review

Review read-only. Do not update either branch, create repair automation, synthesize approval, mark Ready, or merge. Anchor findings only to the exact head above; queued, stale-head, or predecessor evidence is not success.

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown

@seonghobae I will review the PR in read-only mode.

I will anchor findings to head 1f2e56e0e517a5cbd9f9302eec8b58e81909231c. I will use base head 68414ff8b24a3f8045482ccb501c935e731f821d for stacked-diff context. I will not treat the identical scripts/ci/redact_sensitive_log.py blob as an Inkspan product change.

⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Copy Markdown
Contributor Author

/oc Refetch the live PR and stop without writing unless exact head is 1f2e56e0e517a5cbd9f9302eec8b58e81909231c. Keep Draft. The stacked base branch fix/hourly-nvidia-nim-review-repair-main has advanced to prerequisite #782 head 1ce640629d8e308f163b6b038c4033c4c05b1d1f, while this PR still records base 68414ff8b24a3f8045482ccb501c935e731f821d and is non-mergeable.

Reconcile the current prerequisite head into the existing Inkspan branch with an ordinary non-force merge and preserve every newer fail-closed scheduler, NVIDIA NIM, exact-scope, credential-isolation, explicit push-destination, test, and doctoring contract from #782. Resolve overlap by retaining the prerequisite implementation verbatim and preserving only the intended Inkspan product caller slice: .github/workflows/inkspan-hourly-review-repair.yml, its permanent contract tests, Inkspan caller doctoring, focused workflow trigger coverage, and matching CHANGELOG entry. Remove no prerequisite behavior and do not duplicate the central worker.

After reconciliation, require the effective diff against the live stacked base to be product-only and explain any unavoidable ancestry-only file if GitHub still reports it. Run the focused Inkspan/hourly caller contracts, the complete hourly NVIDIA NIM quality suite, full repository tests, 100% production statement/branch coverage, 100% public docstrings, compileall, actionlint/shell syntax, and git diff --check. Do not mark Ready, approve, merge, release, retarget to main before #782 merges, force-push, create another branch/PR/workflow, or alter any reviewer/model credential; never introduce COPILOT_GITHUB_TOKEN.

@seonghobae
seonghobae force-pushed the fix/hourly-nvidia-nim-review-repair-main branch 2 times, most recently from ed53cee to c289ff3 Compare August 8, 2026 13:54
@seonghobae
seonghobae marked this pull request as ready for review August 13, 2026 06:23
@seonghobae
seonghobae changed the base branch from fix/hourly-nvidia-nim-review-repair-main to main August 13, 2026 06:23
@seonghobae
seonghobae enabled auto-merge (squash) August 13, 2026 06:24
@seonghobae
seonghobae marked this pull request as draft August 14, 2026 08:09
auto-merge was automatically disabled August 14, 2026 08:09

Pull request was converted to draft

Copy link
Copy Markdown
Contributor Author

Dependency and scope reconciliation: this PR has been returned to Draft.

Current head 71bb2800b5757ad0ae3d155760069357eaea5fb1 is not the thin Inkspan-only slice described in the body. Relative to prerequisite #782 current head bb990cca0234a0629ad444eb2f3072ad5d9cdb2f, it is three commits behind and also carries Naruon caller files plus unrelated materializer/architecture changes. Merging it now would duplicate the still-unmerged parent and violate the stated one-buyer-slice contract.

Required next state after #782 lands: rebuild or reconcile on protected main, retain only the Inkspan caller, its contract test, doctoring, focused trigger entries, and changelog line; move the Naruon caller to its own bounded PR; then reacquire exact-head checks and independent review.

Replay unique thin callers onto current main so the commercial editor
and platform products receive the same bounded hourly RCA repair as
Clearfolio, DiskSage, and fast-mlsirm. Bind NVIDIA_NIM_API_KEY only in
the existing worker. Do not use COPILOT_GITHUB_TOKEN.
@seonghobae
seonghobae force-pushed the feat/inkspan-hourly-review-repair branch from 71bb280 to 0f13a12 Compare August 16, 2026 20:54
@seonghobae
seonghobae marked this pull request as ready for review August 16, 2026 20:55
@seonghobae
seonghobae enabled auto-merge (squash) August 16, 2026 20:55
@cursor

cursor Bot commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

Live naruon change requests target protected develop. A main caller
would miss the buyer-facing platform queue. Keep Inkspan on main.

@opencode-agent opencode-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

OpenCode could not approve from deterministic current-head evidence because GitHub Checks have failed.

Findings

1. HIGH Current-head GitHub Checks - Fix failed required checks before approval

  • Problem: Failed same-head checks remain for 4e31c8adb0fbcf23a4a38f4f6308197e35bdf6d4.
  • Root cause: The model-unavailable evidence fallback is allowed only when peer GitHub Checks are complete and clean.
  • Fix: Read and fix the failed check logs below, then rerun the current-head checks.
  • Regression test: Keep the model-unavailable fallback gated on an empty failed-check rollup.

Failed checks:

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Workflow (3 files)"]
  S1 --> I1["GitHub Actions review job"]
  I1 --> R1["Review risk: Workflow (3 files)"]
  R1 --> V1["actionlint plus required checks"]
  Evidence --> S2["Changed file (4 files)"]
  S2 --> I2["repository behavior"]
  I2 --> R2["Review risk: Changed file (4 files)"]
  R2 --> V2["required checks"]
  Evidence --> S3["Docs (3 files)"]
  S3 --> I3["operator or user guidance"]
  I3 --> R3["Review risk: Docs (3 files)"]
  R3 --> V3["docs review"]
  Evidence --> S4["Test (2 files)"]
  S4 --> I4["regression suite"]
  I4 --> R4["Review risk: Test (2 files)"]
  R4 --> V4["targeted test run"]
Loading

@opencode-agent

Copy link
Copy Markdown
Contributor

OpenCode Review Overview

  • Head SHA: 4e31c8adb0fbcf23a4a38f4f6308197e35bdf6d4
  • Workflow run: 32016289792
  • Workflow attempt: 1
  • Gate result: REQUEST_CHANGES (approval step)

Pull request overview

OpenCode could not approve from deterministic current-head evidence because GitHub Checks have failed.

Findings

1. HIGH Current-head GitHub Checks - Fix failed required checks before approval

  • Problem: Failed same-head checks remain for 4e31c8adb0fbcf23a4a38f4f6308197e35bdf6d4.
  • Root cause: The model-unavailable evidence fallback is allowed only when peer GitHub Checks are complete and clean.
  • Fix: Read and fix the failed check logs below, then rerun the current-head checks.
  • Regression test: Keep the model-unavailable fallback gated on an empty failed-check rollup.

Failed checks:

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Workflow (3 files)"]
  S1 --> I1["GitHub Actions review job"]
  I1 --> R1["Review risk: Workflow (3 files)"]
  R1 --> V1["actionlint plus required checks"]
  Evidence --> S2["Changed file (4 files)"]
  S2 --> I2["repository behavior"]
  I2 --> R2["Review risk: Changed file (4 files)"]
  R2 --> V2["required checks"]
  Evidence --> S3["Docs (3 files)"]
  S3 --> I3["operator or user guidance"]
  I3 --> R3["Review risk: Docs (3 files)"]
  R3 --> V3["docs review"]
  Evidence --> S4["Test (2 files)"]
  S4 --> I4["regression suite"]
  I4 --> R4["Review risk: Test (2 files)"]
  R4 --> V4["targeted test run"]
Loading

@opencode-agent
opencode-agent Bot disabled auto-merge August 17, 2026 10:48
@seonghobae
seonghobae enabled auto-merge (squash) August 17, 2026 11:07
@opencode-agent
opencode-agent Bot disabled auto-merge August 17, 2026 11:07
@seonghobae
seonghobae enabled auto-merge (squash) August 17, 2026 11:15
@opencode-agent
opencode-agent Bot disabled auto-merge August 17, 2026 11:19
@seonghobae
seonghobae enabled auto-merge (squash) August 17, 2026 12:22
@opencode-agent
opencode-agent Bot disabled auto-merge August 17, 2026 12:26
@seonghobae
seonghobae enabled auto-merge (squash) August 17, 2026 12:29
@opencode-agent
opencode-agent Bot disabled auto-merge August 17, 2026 12:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

1 participant