Skip to content

chore(tooling): harden the workflows and scripts the reviewers flagged - #1895

Merged
murdore merged 1 commit into
releasefrom
chore/review-tooling-hardening
Oct 3, 2026
Merged

murdore merged 1 commit into
releasefrom
chore/review-tooling-hardening

Conversation

@murdore

@murdore murdore commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

Summary

Hardens the CI workflows, gate scripts and a few dev tools that reviewers flagged on merged PRs. Behaviour changes are covered by a new suite (pnpm run test:tooling-scripts) and by additions to the provider-structure and provider-descriptors suites.

What changed

Closes the review threads left open on merged PRs against the CI workflows,
the repo's gate scripts and a few dev tools. Each change is the smallest one
that closes its finding. Behaviour changes are covered by a new suite
(test/continuous-test-suite-tooling-scripts.ts, pnpm run test:tooling-scripts)
and by additions to the provider-structure and provider-descriptors suites;
every new test was run red against the unfixed source first.

Workflows

Config and lint docs

Scripts

Not done, on purpose

  • The skip-checks trailer in the single-commit grep (optional in the finding).
  • Checkouts in workflows other than ci.yml: the findings named only ci.yml.
  • migration-symbol-diff still does not record a function passed by reference
    (items.forEach(handler)); the header now says so.

Pre-existing, not touched: test:dynamic fails its five live cases without
provider credentials, identically with config/models.json reverted.

Review before opening

After the commit, an independent read-only reviewer checked all 20 findings against the diff, and a second reviewer tried to refute everything it flagged. Result: all 20 addressed. The review found one thing wrong in this PR's first draft, which is corrected here: the environmentManager report said unconfigured providers' keys are listed in .env.example, which is false for about 63 of the 80 catalog providers. It now points at docs/getting-started/providers/.

Not done

  • T3813416696-overstated-guidance: the optional skip-checks trailer was not added to the CI-skip regex; the finding marked it optional.

Verification

  • pnpm run test:tooling-scripts: 14 passed. pnpm run test:provider-structure: 6 passed. pnpm run test:provider-descriptors: 67 passed. pnpm run check:tools-tests: exit 0. All with an empty HOME and no .env.
  • One thing to watch: test:tooling-scripts is added to the extended suites in ci.yml with a weight of 100. That weight is an estimate, not a CI median, and the suite now runs on the required provider-safety-net path. If it turns out slow or flaky in CI, lowering its weight or moving it out is a one-line change.
  • Workflow edits cannot be exercised locally. They were read against the persist-credentials and permissions rules; the semantic-release-validation job keeps its token on purpose.
  • The suites above ran on the packet's original base (42b258b4c). The branch was then rebased onto release with no conflicts, so the pre-push hook (build, mocked provider suite, provider-structure) and CI are the first runs on the rebased code.
  • Yama PR Review fails on every PR at the moment (its LiteLLM key is invalid). It is not a required check and is unrelated to this change.

Closes the review threads left open on merged PRs against the CI workflows,
the repo's gate scripts and a few dev tools. Each change is the smallest one
that closes its finding. Behaviour changes are covered by a new suite
(test/continuous-test-suite-tooling-scripts.ts, `pnpm run test:tooling-scripts`)
and by additions to the provider-structure and provider-descriptors suites;
every new test was run red against the unfixed source first.

Workflows
- ci.yml: persist-credentials: false on the seven checkouts that never push,
  semantic-release-validation keeps its token (T3790294038, #1335). The
  permissions comment names that job as the one contents: write exception
  (T3858986829-a, #1552). The pinned suite counts and the 373-assertion figure
  are gone (T3869180755-f1, #1580). The new tooling-scripts suite is added to
  extended-suites; its weight (100) is an estimate, not a CI median.
- release.yml: the ffmpeg note no longer says build-check gates this workflow
  (T3810295618-a, #1360).
- single-commit-enforcement.yml: one SKIP_RE shared by both greps, printf
  instead of echo, and the guidance names the push/pull_request workflows
  rather than "every workflow" (T3813387872-printf-regex,
  T3813416696-overstated-guidance, #1364).

Config and lint docs
- config/models.json: Opus 4.5 uses the real snapshot id 20251101 for
  anthropic, bedrock and vertex instead of the 20251124 launch date
  (T3816077440, #1375). provider-structure now checks every Claude id in the
  file against the model enums.
- eslint-rules/index.cjs: header lists e2e-tests-only, no-inline-secret-regex,
  provider-typed-errors and provider-base-class (T3801758166-1, #1344).

Scripts
- build-validations.ts: fails when typedoc.json carries an unanchored
  `**/<dir>/**` exclude, which drops every file under a checkout whose path
  contains that directory (T4042344752-guard, #1723).
- check-banned-deps.ts: scans each file as a whole, so import(), require() and
  `from` followed by a specifier on the next line are found, and a `//` inside
  a string no longer hides the rest of the line (T3956062753, #1662). Files in
  the repo root and .mts/.cts are scanned too (T3956062775, #1662).
- check-shipped-types.ts: the declarations under dist/ must equal the set the
  source tree emits, so a partial or stale build above the 100-file floor
  fails (PF-T3927528338, #1627). A wildcard export is matched against the whole
  pattern, including a `*` in a directory component (T3931686738-wildcard-match,
  #1632).
- codex-replay-listener.ts: the tool-call script names `replay_tool` instead of
  `exec`, which Codex declares as a custom tool and which raised a Fatal
  "incompatible payload" error (F1-T4087477953-custom-tool-shape, #1783);
  reproduced and cleared against codex-cli 0.160.0. --requests counts served
  /responses turns, so a 404 probe cannot shut the listener down first
  (F2-T4087477985-requests-limit-counts-404s, #1783).
- commit-validation.ts: execFileSync("git", [...]) instead of a shell string;
  behaviour unchanged (T3838161513-b, #1499).
- migration-symbol-diff.mjs: this/super-rooted paths keep their full name, and
  tagged templates, obj["name"](), super() and import() are tracked; the
  header says it follows calls (T3835058026-residual, PF-T3833252257, #1448).
- tools/automation/environmentManager.ts: credential-free providers count as
  configured only when the .env sets one of their variables, the score no
  longer divides by the size of the catalog, and the report lists the
  configured providers plus one count instead of every missing one
  (T3792794348, T3792807279, #1337).

Not done, on purpose
- The skip-checks trailer in the single-commit grep (optional in the finding).
- Checkouts in workflows other than ci.yml: the findings named only ci.yml.
- migration-symbol-diff still does not record a function passed by reference
  (`items.forEach(handler)`); the header now says so.

Pre-existing, not touched: test:dynamic fails its five live cases without
provider credentials, identically with config/models.json reverted.
@coderabbitai

coderabbitai Bot commented Oct 3, 2026

Copy link
Copy Markdown

Warning

Review limit reached

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

Next included review available in 58 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 2 included reviews currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Repository: juspay/neurolink/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 304f3d3a-a9d4-491b-bbcb-07c750e1b1d2
📥 Commits

Reviewing files that changed from the base of the PR and between d239e45 and 3299880.

📒 Files selected for processing (17)
  • .github/workflows/ci.yml
  • .github/workflows/release.yml
  • .github/workflows/single-commit-enforcement.yml
  • config/models.json
  • eslint-rules/index.cjs
  • package.json
  • scripts/build-validations.ts
  • scripts/check-banned-deps.ts
  • scripts/check-shipped-types.ts
  • scripts/codex-replay-listener.ts
  • scripts/commit-validation.ts
  • scripts/migration-symbol-diff.mjs
  • test/continuous-test-suite-provider-descriptors.ts
  • test/continuous-test-suite-provider-structure.ts
  • test/continuous-test-suite-tooling-scripts.ts
  • test/fixtures/sse-bisection-findings.md
  • tools/automation/environmentManager.ts
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


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.

@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

✅ Single Commit Policy - COMPLIANT

Status: Policy requirements met • 1 commit • Valid format • Ready for merge

📊 View validation details

📝 Commit Details

  • Hash: 3299880e0d165860db1698c5f46eea3d9587c0e4
  • Message: chore(tooling): harden the workflows and scripts the reviewers flagged
  • Author: Sachin Sharma

✅ Validation Results

  • Single commit requirement met
  • No merge commits in branch
  • Semantic commit message format verified
  • Ready for squash merge to release branch

🤖 Automated validation by NeuroLink Single Commit Enforcement

@murdore
murdore merged commit 5e4934b into release Oct 3, 2026
26 of 27 checks passed
@murdore
murdore deleted the chore/review-tooling-hardening branch October 3, 2026 04:29
@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 12.44.7 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant