Skip to content

[eslint-miner] ESLint Miner: add require-fs-chmod-try-catch rule - #59408

Merged
pelikhan merged 6 commits into
mainfrom
eslint-miner-fs-chmod-try-catch-af2bcd2c3b9ee259
Sep 9, 2026
Merged

[eslint-miner] ESLint Miner: add require-fs-chmod-try-catch rule#59408
pelikhan merged 6 commits into
mainfrom
eslint-miner-fs-chmod-try-catch-af2bcd2c3b9ee259

Conversation

@github-actions

@github-actions github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a new custom ESLint rule, require-fs-chmod-try-catch, that flags unguarded fs.chmodSync / fs.fchmodSync calls in actions/setup/js and offers an auto-fix suggestion that wraps the call in try { ... } catch (err) { throw new Error(..., { cause: err }); }.

Rationale

fs.chmodSync / fs.fchmodSync throw synchronously on missing files/descriptors, permission errors (EPERM), or unsupported filesystems. In actions/setup/js, these calls are used 18 times to lock down permissions on files/directories that may contain secrets (staged config files, audit dirs, temp gateway output). Adjacent fs methods (readFileSync, writeFileSync, statSync, unlinkSync, renameSync, mkdirSync, rmSync, realpathSync, mkdtempSync, ...) already each have a dedicated try/catch rule in eslint-factory/src/rules, but chmodSync/fchmodSync had no coverage — this closes that gap.

Evidence

Scanned actions/setup/js/*.cjs for chmodSync/fchmodSync call sites (18 total). Running the new rule against the codebase surfaces 2 real unguarded call sites that should be wrapped:

  • actions/setup/js/create_prompt.cjs:85fs.fchmodSync(fd, 0o600) outside try/catch
  • actions/setup/js/start_mcp_gateway.cjs:276fs.chmodSync(dir, 0o700) outside try/catch

Other call sites (e.g. convert_gateway_config_shared.cjs, mcp_server_core.cjs, safe_outputs_handlers.cjs, upload_artifact.cjs) are already inside try/catch and pass cleanly, confirming low false-positive risk.

Changes

  • eslint-factory/src/rules/require-fs-chmod-try-catch.ts — new rule (reuses the existing createFsSyncMethodResolver/isInsideTryBlock/buildTryCatchSuggestion utilities used by sibling fs rules).
  • eslint-factory/src/rules/require-fs-chmod-try-catch.test.ts — unit tests covering valid (inside try), ignored (other fs methods / non-fs identifiers), and invalid (outside try, both methods, and after an unrelated try block) cases.
  • eslint-factory/src/index.ts — registers the new rule in the plugin.
  • eslint-factory/eslint.config.cjs — enables gh-aw-custom/require-fs-chmod-try-catch as "warn", matching severity of sibling fs rules.

Validation

cd eslint-factory && npm install
cd eslint-factory && npm run build
cd eslint-factory && npm run lint:setup-js

All pass. npm run lint:setup-js reports 65 warnings total (0 errors), including the 2 new findings above, consistent with the existing warn-only baseline for this suite.

Scope

No Go code, documentation-only files, or JavaScript outside actions/setup/js were touched.

Generated by ESLint Miner · copilot · auto · 75.6 AIC · ⌖ 8.8 AIC · ⊞ 6.9K ·

  • expires on Sep 15, 2026, 12:57 AM UTC-08:00

pr-sous-chef

Run: https://github.com/github/gh-aw/actions/runs/34226625975

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 27.9 AIC · ⌖ 8.73 AIC · ⊞ 9.2K ·
Comment /souschef to run again


Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 18 AIC · ⌖ 8.59 AIC · ⊞ 9.2K ·
Comment /souschef to run again


pr-sous-chef run https://github.com/github/gh-aw/actions/runs/34270348844

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 69.5 AIC · ⌖ 8.68 AIC · ⊞ 9.2K ·
Comment /souschef to run again


Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 35.3 AIC · ⌖ 8.78 AIC · ⊞ 9.2K ·
Comment /souschef to run again

Flags unguarded fs.chmodSync/fs.fchmodSync calls (throw on missing
files, invalid descriptors, or permission errors) with an auto-fix
suggestion that wraps them in try/catch and preserves the error as
{ cause }.

Mined from actions/setup/js: fs.chmodSync/fchmodSync is used 18 times
to lock down permissions on files/dirs that may hold secrets, but
2 call sites (create_prompt.cjs, start_mcp_gateway.cjs) were unguarded.
Adjacent methods (readFileSync/writeFileSync/statSync/etc.) already
have dedicated try/catch rules; chmod was a gap.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions github-actions Bot added automation cookie Issue Monster Loves Cookies! eslint labels Sep 8, 2026
@pelikhan
pelikhan marked this pull request as ready for review September 8, 2026 10:56
Copilot AI balanced review requested due to automatic review settings September 8, 2026 10:56
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

Test Quality Sentinel completed test quality analysis.

🧪 Test quality analysis by Test Quality Sentinel

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

PR Code Quality Reviewer completed the code quality review.

Completed PR review for #59408; no review comments were submitted because the changed ESLint rule and tests did not present a high-confidence actionable issue in changed lines.

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • registry.npmjs.org

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "registry.npmjs.org"

See Network Configuration for more information.

🔎 Code quality review by PR Code Quality Reviewer

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • registry.npmjs.org

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "registry.npmjs.org"

See Network Configuration for more information.

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

Ponytail Reviewer completed successfully!

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • ab.chatgpt.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "ab.chatgpt.com"

See Network Configuration for more information.

Generated by Ponytail Reviewer for #59408

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

Design Decision Gate 🏗️ completed the design decision gate check. See the comment below for the result and any generated ADR draft.

No ADR enforcement needed: PR does not have the 'implementation' label and has ≤100 new lines of code in business logic directories.

🏗️ ADR gate enforced by Design Decision Gate 🏗️

@github-actions github-actions 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.

Ponytail pass found a few places to trim explanatory verbosity and generated TODO noise without changing behavior. The rule logic and coverage look fine; this is mostly about keeping lint rule source and autofix output leaner and easier to maintain.

net: -14 lines possible.

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • ab.chatgpt.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "ab.chatgpt.com"

See Network Configuration for more information.

Generated by ✂️ Ponytail Reviewer for #59408 · codex · gpt53codex · 6.1 AIC · ⌖ 4.22 AIC · ⊞ 13.4K
Comment /ponytail to run again

Comment thread eslint-factory/src/rules/require-fs-chmod-try-catch.ts
Comment thread eslint-factory/src/rules/require-fs-chmod-try-catch.ts Outdated
Comment thread eslint-factory/src/rules/require-fs-chmod-try-catch.ts
Comment thread eslint-factory/src/rules/require-fs-chmod-try-catch.ts

@github-actions github-actions 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.

Reviewed with focus on correctness/maintainability (Impeccable modes did not directly apply — this is a backend ESLint rule, not UI). The new require-fs-chmod-try-catch rule faithfully mirrors the existing sibling rules (require-fs-sync-try-catch, require-mkdirsync-try-catch, etc.), reusing the shared try-catch-rule-utils helpers (createFsSyncMethodResolver, isInsideTryBlock, buildTryCatchSuggestion) with no deviations in structure. Registration in index.ts and eslint.config.cjs is correct and consistent with sibling rules (same warn severity). Tests cover valid (inside try), ignored (other fs methods / non-fs identifiers), and invalid (outside try, both methods, after unrelated try block) cases, matching the pattern used by sibling rule tests. No blocking issues found.

🧵 Reviewed using Impeccable skills by Impeccable Skills Reviewer · copilot · sonnet50 · 23.7 AIC · ⌖ 13.4 AIC · ⊞ 8.3K

Copilot AI 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.

🟡 Changes recommended

The rule exposes a dead documentation link because its README entry and anchor are missing.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Adds an ESLint rule requiring fs.chmodSync and fs.fchmodSync calls to use try/catch error handling.

Changes:

  • Implements and registers the rule.
  • Adds unit coverage and enables warn-level enforcement.
  • The generated documentation link lacks a corresponding README section.
File summaries
File Description
eslint-factory/src/rules/require-fs-chmod-try-catch.ts Implements detection and suggested fixes.
eslint-factory/src/rules/require-fs-chmod-try-catch.test.ts Tests valid and invalid calls.
eslint-factory/src/index.ts Registers the rule.
eslint-factory/eslint.config.cjs Enables the rule as a warning.
Review details
  • Files reviewed: 4/4 changed files
  • Comments generated: 1
  • Review effort level: Balanced

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

Comment thread eslint-factory/src/rules/require-fs-chmod-try-catch.ts

@github-actions github-actions 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.

Skills-Based Review 🧠

Applied /codebase-design (pattern-fit for a new custom ESLint rule) and /tdd (test coverage check). No blocking issues found.

📋 Key Themes & Highlights

Key Themes

  • Consistent with sibling rules: require-fs-chmod-try-catch reuses createFsSyncMethodResolver/isInsideTryBlock/buildTryCatchSuggestion exactly like require-fs-io-try-catch, require-mkdirsync-try-catch, etc. Registration in index.ts and eslint.config.cjs follows the same shape as neighboring entries.
  • Test coverage is solid: valid (inside try, both methods), ignored (other fs methods, non-fs identifiers), and invalid (outside try, both methods, plus the "after an unrelated try block" edge case) are all covered — good use of RuleTester matching the sibling test file's structure.
  • Evidence-backed: PR description documents the 2 real unguarded call sites found (create_prompt.cjs:85, start_mcp_gateway.cjs:276) and confirms other call sites already pass, giving confidence in low false-positive risk.

Positive Highlights

  • ✅ Rule correctly reuses allowUnboundFsIdentifier: true, matching the option used by require-fs-io-try-catch, so a bare fs.chmodSync(...) without an explicit import binding is still flagged (this is exactly the case in create_prompt.cjs and start_mcp_gateway.cjs).
  • ✅ Auto-fix suggestion preserves original statement text/indentation via buildTryCatchSuggestion, consistent with sibling rules' fix behavior.
  • ✅ Doc comment on FS_CHMOD_METHODS clearly explains the why (EPERM/EINVAL, secret-bearing files) — good context for future maintainers per /codebase-design.

No changes requested.

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • registry.npmjs.org

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "registry.npmjs.org"

See Network Configuration for more information.

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · copilot · sonnet50 · 33.2 AIC · ⌖ 14.6 AIC · ⊞ 10.3K
Comment /matt to run again

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

Comment Memory

reviewed_at: 2026-09-08T10:59:58Z
review_event: COMMENT
top_themes:
  - no blocking correctness or maintainability regressions found in the added ESLint rule
files_reviewed:
  - eslint-factory/eslint.config.cjs
  - eslint-factory/src/index.ts
  - eslint-factory/src/rules/require-fs-chmod-try-catch.ts
  - eslint-factory/src/rules/require-fs-chmod-try-catch.test.ts
comment_count: 0

Note

This comment is managed by comment memory.

It stores persistent context for this thread in the code block at the top of this comment.
Edit only the text inside the backtick fences; workflow metadata and the footer are regenerated automatically.

Learn more about comment memory

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • registry.npmjs.org

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "registry.npmjs.org"

See Network Configuration for more information.

🔎 Code quality review by PR Code Quality Reviewer · copilot · gpt54 · 33.9 AIC · ⌖ 7.3 AIC · ⊞ 21.8K ·
Comment /review to run again

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

🧪 Test Quality Sentinel Report

Summary

Test Quality Score: 100/100 — Excellent

Changed Test Files: 1 new TypeScript test file
Test Cases Added: 5 behavioral tests
Test Inflation Ratio: 87 test lines / 78 production lines = 1.1:1 (healthy)
Implementation-Test Ratio: 0% (all tests are design-focused)
Violations: None


Test Case Analysis

5 Test Cases — All High Quality
# Test Name Design Invariant Value Quality
1 valid: fs.chmodSync and fs.fchmodSync inside try block pass Rule accepts chmod in try/catch high_value
2 valid: other fs methods and non-fs identifiers are ignored Rule ignores non-chmod fs methods high_value
3 invalid: fs.chmodSync outside try/catch is flagged Rule detects unguarded chmodSync + generates fix high_value
4 invalid: fs.fchmodSync outside try/catch is flagged Rule detects unguarded fchmodSync + generates fix high_value
5 invalid: fs.chmodSync after an unrelated try block is still flagged Rule enforces proper scope (not fooled by earlier try) high_value ⭐ Edge case

Quality Signals

Best Practices:

  • Uses ESLint RuleTester pattern (standard, no mocking required)
  • Covers both target methods (chmodSync, fchmodSync) with dedicated tests
  • Tests both valid (accept) and invalid (detect + suggest) paths
  • Validates false-positive prevention (other fs methods, non-fs identifiers)
  • Includes edge case: try block scope detection (earlier try block doesn't satisfy later chmod)
  • Helper function expectedWrapInTryCatchSuggestion() reduces duplication and clarifies intent
  • Error messages and auto-fix suggestions are validated

No Red Flags:

  • No mock libraries (gomock, testify/mock, etc.)
  • No assertions missing
  • Test:production ratio 1.1:1 (well below 2:1 threshold)
  • All tests are behavioral (design-focused contract verification), not implementation details

Verdict

All tests enforce genuine design invariants. The rule correctly:

  1. Accepts chmod calls wrapped in try/catch
  2. Rejects other fs methods (false-positive prevention)
  3. Detects unguarded chmodSync and fchmodSync
  4. Generates appropriate auto-fix suggestions
  5. Handles scope correctly (scope is per-statement, not per-function)

No violations. Approve.

🧪 Test quality analysis by Test Quality Sentinel · copilot · haiku45 · 16.8 AIC · ⌖ 11.7 AIC · ⊞ 8.4K ·
Comment /review to run again

@github-actions github-actions 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.

✅ Test Quality Sentinel: 100/100. All 5 test cases are design-focused behavioral tests with high value. Test:production ratio is healthy at 1.1:1. No violations.

@gh-aw-bot

Copy link
Copy Markdown
Collaborator
pr-sous-chef

@copilot Please take the next forward-progress pass on PR #59408.

  • Review any remaining feedback on the current HEAD and address what is actionable.
  • Re-run the pr-finisher skill and push any fixups needed to move this PR toward merge readiness.
  • Refresh the branch with the latest base changes if GitHub allows it.

Generated by PR Sous Chef: https://github.com/github/gh-aw/actions/runs/34226625975

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 27.9 AIC · ⌖ 8.73 AIC · ⊞ 9.2K ·
Comment /souschef to run again

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
@gh-aw-bot

Copy link
Copy Markdown
Collaborator
pr-sous-chef

@copilot Please take the next forward-progress pass on PR #59408.

  • Re-check the latest branch, review feedback, and check status on current HEAD.
  • Refresh the branch if GitHub allows it, then run the pr-finisher skill.
  • Provide a concise maintainer-facing handoff with any remaining actionable blocker.

Generated by PR Sous Chef: https://github.com/github/gh-aw/actions/runs/34228316559

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 18 AIC · ⌖ 8.59 AIC · ⊞ 9.2K ·
Comment /souschef to run again

Copilot AI commented Sep 8, 2026

Copy link
Copy Markdown
Contributor
pr-sous-chef
```...

Completed the forward-progress pass in dd5ca6b: addressed all actionable review feedback, validated locally, and confirmed the branch already contains the latest main commit.

Copilot AI commented Sep 8, 2026

Copy link
Copy Markdown
Contributor
pr-sous-chef
```...

Rechecked current HEAD dd5ca6b: it contains the latest main and has no local changes. The current-HEAD Agentic Commands and Squad runs are action_required with zero jobs and no failed-job logs; remaining blocker is maintainer review/CI re-trigger, plus resolution of the already-replied review threads.

@gh-aw-bot

Copy link
Copy Markdown
Collaborator

@copilot please refresh this PR branch and run the pr-finisher skill so a maintainer can review quickly.

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 27.3 AIC · ⌖ 8.66 AIC · ⊞ 8.7K ·
Comment /souschef to run again

…-try-catch-af2bcd2c3b9ee259

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>

Copilot AI commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

@copilot please refresh this PR branch and run the pr-finisher skill so a maintainer can review quickly.

[!WARNING]...

Refreshed the branch with latest main in merge commit 99571cb. Post-merge make fmt, make lint, make test-unit, make test, make recompile, and make agent-report-progress passed; the branch is ready for maintainer review.

@gh-aw-bot

Copy link
Copy Markdown
Collaborator
pr-sous-chef

@copilot Please take the next forward-progress pass on PR #59408.

  • Review any remaining feedback on the current HEAD and address what is actionable.
  • Refresh the branch if GitHub allows it, then run the pr-finisher skill.
  • Provide a concise maintainer-facing handoff with any remaining actionable blocker.

Generated by PR Sous Chef: https://github.com/github/gh-aw/actions/runs/34250871362

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 19.9 AIC · ⌖ 8.72 AIC · ⊞ 8.7K ·
Comment /souschef to run again

Copilot AI commented Sep 8, 2026

Copy link
Copy Markdown
Contributor
pr-sous-chef
```...

Forward-progress pass complete: 99571cb3 already includes current main; no additional refresh was needed. Local validation passed (make fmt, make lint, make test-unit, make test, make recompile, and make agent-report-progress). Remaining maintainer action is resolving the five already-replied review threads and confirming CI on the current merge commit.

@gh-aw-bot

Copy link
Copy Markdown
Collaborator
pr-sous-chef

@copilot Please take the next forward-progress pass on PR #59408.

  • Resolve the already-replied review threads on the current HEAD so the conversation state matches the implemented fixes.
  • Confirm CI on commit 99571cb3 and summarize any remaining maintainer action.
  • Run the pr-finisher skill before handing back to maintainers.

Generated by PR Sous Chef: https://github.com/github/gh-aw/actions/runs/34270348844

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 69.5 AIC · ⌖ 8.68 AIC · ⊞ 9.2K ·
Comment /souschef to run again

Copilot AI commented Sep 8, 2026

Copy link
Copy Markdown
Contributor
pr-sous-chef
```...

Confirmed: all five addressed review threads are resolved. CI run 34251958255 on 99571cb3 completed successfully (its sole copilot job succeeded; no failed-job logs). The branch has since been refreshed to current main in 7543bec; local tree is clean. No actionable blocker remains beyond the normal maintainer merge decision.

@gh-aw-bot

Copy link
Copy Markdown
Collaborator
pr-sous-chef

@copilot Please take the next forward-progress pass on PR #59408.

  • Re-check the current HEAD, confirm whether any remaining feedback or follow-up remains, and refresh the branch if GitHub allows it.
  • Run the pr-finisher skill and push the smallest necessary fixup, or summarize the remaining maintainer action if no code change is needed.

Failed checks: none currently reported on the compact queue.

Generated by PR Sous Chef: https://github.com/github/gh-aw/actions/runs/34285256545

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • github.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "github.com"

See Network Configuration for more information.

Generated by 👨‍🍳 PR Sous Chef · pi · gpt54 · 35.3 AIC · ⌖ 8.78 AIC · ⊞ 9.2K ·
Comment /souschef to run again

Copilot AI commented Sep 8, 2026

Copy link
Copy Markdown
Contributor
pr-sous-chef
```...

Current HEAD c5674a70 contains the latest base 69763a03; no refresh or fixup is needed. All review threads remain resolved, and the compact queue reports no failed checks. The remaining blocked merge state is a maintainer approval/merge decision.

@pelikhan
pelikhan merged commit 46948b1 into main Sep 9, 2026
@pelikhan
pelikhan deleted the eslint-miner-fs-chmod-try-catch-af2bcd2c3b9ee259 branch September 9, 2026 11:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automation cookie Issue Monster Loves Cookies! eslint

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants