Skip to content

ci: keep Cloud Agent install revision-agnostic - #258

Merged
cursor[bot] merged 3 commits into
masterfrom
cursor/bc-a4979b26-d4d4-4427-bbb3-61838360586c-595d
Aug 17, 2026
Merged

ci: keep Cloud Agent install revision-agnostic#258
cursor[bot] merged 3 commits into
masterfrom
cursor/bc-a4979b26-d4d4-4427-bbb3-61838360586c-595d

Conversation

@cursor

@cursor cursor Bot commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Pull Request

Summary

  • Successor to ci: add versioned Cloud Agent dev environment (.cursor) #257 (aa0476f). Keeps the Cloud Agent environment, but makes install revision-agnostic.
  • .cursor/install.sh no longer R CMD INSTALLs the current tree. Environment builds snapshot install and do not rerun it, so a source install would freeze library(aFIPC) at the build revision. Documented checks already use testthat::test_local() / rcmdcheck against the checkout.
  • The toolchain gate now requires R and mirt / testthat / roxygen2 / rcmdcheck, and apt lines use /etc/os-release VERSION_CODENAME plus dpkg --print-architecture instead of hardcoded noble/amd64.
  • Documents .cursor/ in ARCHITECTURE.md §1/§8, AGENTS.md, and CLAUDE.md. Points the architecture repo URL at ContextualWisdomLab/aFIPC.
  • Why: ci: add versioned Cloud Agent dev environment (.cursor) #257 is the right product change (default Cloud Agent image has no R) but must not pin agents to a stale package copy.

Do not merge #257 at aa0476f. Land this successor instead.

Validation

  • R CMD check (or equivalent CI) succeeded — testthat::test_local()[ FAIL 0 | WARN 0 | SKIP 0 | PASS 55 ] after removing the source install.
  • Markdown/YAML/workflow lint checks succeeded — bash -n .cursor/install.sh; environment.json is valid JSON; markdownlint-cli2@0.18.1 pending in CI.
  • No secrets or credentials were added.
  • Install idempotence: bash .cursor/install.sh succeeds when R 4.6.1 + CRAN deps are already present (aFIPC toolchain ready).

Risk and Rollback

Behavioral Impact

  • R/aFIPC.R unchanged
  • If changed, regression evidence is attached

Checklist

  • Docs updated (README.md, ARCHITECTURE.md, CONTRIBUTING.md) as needed — ARCHITECTURE.md, AGENTS.md, CLAUDE.md.
  • New/updated GitHub Actions use full commit SHA pinning — no workflow changes.
  • Security policy / contribution policy alignment verified — no new package dependencies; no secrets committed.
Open in Web View Automation 

cursoragent and others added 2 commits August 16, 2026 15:31
Add a versioned .cursor/environment.json plus .cursor/install.sh that
provision the R toolchain and CRAN dependencies (mirt, testthat,
rcmdcheck, roxygen2) as prebuilt binaries and install the checked-out
aFIPC package into the R user library.

- R comes from the CRAN 'release' channel to match the r.yml CI.
- CRAN packages come from r2u as Ubuntu binaries to avoid compiling mirt.
- install step is idempotent and self-contained.
- .cursor is added to .Rbuildignore so R CMD check stays clean.

Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
Stop R CMD INSTALL of the current tree in .cursor/install.sh so
environment-build snapshots cannot freeze library(aFIPC) at the
build revision. Detect Ubuntu codename/arch, require CRAN deps
before skipping the toolchain, and document .cursor/ in
ARCHITECTURE.md, AGENTS.md, and CLAUDE.md.

Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
@seonghobae
seonghobae marked this pull request as ready for review August 16, 2026 15:43
@seonghobae
seonghobae self-requested a review as a code owner August 16, 2026 15:43
@seonghobae
seonghobae self-requested a review August 16, 2026 15:43
@cursor

cursor Bot commented Aug 16, 2026

Copy link
Copy Markdown
Contributor Author

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.

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Review: Cloud Agent install stays revision-agnostic

Prefer this PR over #257 (aa0476f). Close #257; do not merge it.

What was verified

  • Diff 35e4498...0718deb is 6 files, +68/−2. R/aFIPC.R and tests/ are unchanged.
  • All #257 blockers are addressed:
    1. .cursor/install.sh no longer R CMD INSTALLs the current tree.
    2. ARCHITECTURE.md §1/§8 documents .cursor/.
    3. Apt uses /etc/os-release VERSION_CODENAME and dpkg --print-architecture.
    4. toolchain_ready requires R and mirt / testthat / roxygen2 / rcmdcheck.
  • Local evidence on this head: bash -n .cursor/install.sh OK; environment.json is valid JSON (name + install); bash .cursor/install.sh is idempotent (aFIPC toolchain ready, R 4.6.1); .Rbuildignore excludes .cursor/; install.sh is mode 100755.
  • Linking-contract smoke: testthat::test_local(filter = "fixed-parameter-calibration")[ FAIL 0 | WARN 0 | SKIP 0 | PASS 24 ].
  • Docs lint matching CI (markdownlint-cli2@0.18.1) is clean on the documented set.
  • CodeRabbit CLI 0.7.3 is present here but coderabbit auth login --agent timed out (exit 124). This review is not a CodeRabbit result.

Residual (not merge-blocking)

  • .cursor/install.sh line 11 says the CRAN apt channel is “matching r.yml”. CI installs R via r-lib/actions/setup-r + public RSPM. The intent (release-channel R, no source-build of mirt) is right; soften that comment in a follow-up.
  • Line 50 R --version | head -1 under set -o pipefail can SIGPIPE. It did not fail here (exit 0).
  • CONTRIBUTING.md still has no Cloud Agent note. Optional.

Merge contract

Do not merge until required checks (R CMD check check, Code Quality quality, Security Scan including trivy-fs) are green on 0718deb and a non-author approval lands. Do not self-approve. Hosted jobs are still queued on the org runner; that is not a content defect.

Next product gap (separate PR)

Keep #189 as the issue #7 safety-net vehicle. Do not mix that work into this branch. Do not land Bolt PRs that edit R/aFIPC.R until that suite is on master.

This repository has no frontend. Do not add Figma or Storybook here.

Open in Web View Automation 

Sent by Cursor Automation: Fix Issues

@cursor
cursor Bot enabled auto-merge August 17, 2026 16:32
cursor Bot pushed a commit that referenced this pull request Aug 17, 2026
Address review on #257 (folds in #258):
- .cursor/install.sh no longer R CMD INSTALLs the current tree. Environment
  builds snapshot install and do not rerun it, so a source install would
  freeze library(aFIPC) at the build revision. Documented checks use
  testthat::test_local() / rcmdcheck against the checkout.
- Toolchain readiness now gates on R AND mirt/testthat/roxygen2/rcmdcheck.
- apt lines derive Ubuntu codename from /etc/os-release and arch from
  dpkg --print-architecture instead of hardcoding noble/amd64.
- Document .cursor/ in ARCHITECTURE.md (1/8), AGENTS.md, CLAUDE.md and
  correct the repository URL to ContextualWisdomLab/aFIPC.

Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
@seonghobae

Copy link
Copy Markdown
Collaborator

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 17, 2026

Copy link
Copy Markdown
⚠️ 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.

@coderabbitai

coderabbitai Bot commented Aug 17, 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: 36 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: e8f8ef43-65e2-4bd7-9835-860921d895b4

📥 Commits

Reviewing files that changed from the base of the PR and between d5690a8 and 8e106e0.

📒 Files selected for processing (6)
  • .Rbuildignore
  • .cursor/environment.json
  • .cursor/install.sh
  • AGENTS.md
  • ARCHITECTURE.md
  • CLAUDE.md

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.

@seonghobae

Copy link
Copy Markdown
Collaborator

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 17, 2026

Copy link
Copy Markdown
⚠️ 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.

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Approving. #258 is the correct successor to #257: it keeps the Cloud Agent environment but makes install revision-agnostic (no R CMD INSTALL of the current tree, which environment builds would freeze), gates toolchain_ready() on R plus mirt/testthat/roxygen2/rcmdcheck, and derives the Ubuntu codename/arch from /etc/os-release + dpkg --print-architecture instead of hardcoding noble/amd64. .cursor/ is documented in ARCHITECTURE.md/AGENTS.md/CLAUDE.md.

Validated the equivalent change end-to-end on a fresh checkout: install.sh provisions R 4.6.1 + r2u binaries, testthat::test_local() passes 55/55 via source loading (no persistent install needed), and rcmdcheck is clean (0 errors/0 warnings). All required checks are green here. A follow-up will add per-repo signed-by APT keyrings and a post-install version report (CodeRabbit hardening suggestions) so those don't block this merge.

@cursor
cursor Bot merged commit f87c232 into master Aug 17, 2026
30 checks passed
@cursor
cursor Bot deleted the cursor/bc-a4979b26-d4d4-4427-bbb3-61838360586c-595d branch August 17, 2026 16:59
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.

2 participants