Skip to content

docs(dotfiles): clarify permissions-only group entries and pruning - #14768

Merged
jdx merged 1 commit into
mainfrom
claude/mise-issue-14764-30b1ac
Oct 20, 2026
Merged

jdx merged 1 commit into
mainfrom
claude/mise-issue-14764-30b1ac

Conversation

@jdx

@jdx jdx commented Oct 20, 2026 •

Copy link
Copy Markdown
Owner

https://entire.io/gh/jdx/mise/trails/930

A group entry that sets only permissions does not inherit the group's mode: it deploys nothing and only adjusts an existing target. Removing a redundant mode = "copy" from such an entry therefore leaves the previously deployed file orphaned, and --prune removes it.

The group docs now state this exception under Group entries and under Deselect and remove groups, and show { mode = "copy", permissions = "0600" } as the way to deploy and set permissions.

Fixes #14764

🤖 Generated with Claude Code

AI-assisted — Tool: Claude Code; model: anthropic/claude-sonnet-5-5; version: unavailable.


Note

Low Risk
Documentation-only change; no runtime or config behavior is modified.

Overview
Documents permissions-only group entries and how they interact with deployment and pruning.

Under Group entries, the docs now state that an entry with only permissions does not inherit the group's mode, deploys nothing, and only chmods an existing target—and that you need { mode = "copy", permissions = "0600" } (or similar) to deploy and set permissions together.

Under Deselect and remove groups, it clarifies that permissions-only entries do not count as still deploying a file, so removing mode from an entry that used to copy/link leaves that file orphaned and removable with --prune.

Fixes #14764.

Reviewed by Cursor Bugbot for commit c18aa43. Bugbot is set up for automated code reviews on this repo. Configure here.

Summary by CodeRabbit

  • Documentation
    • Clarified that entries specifying only permissions do not deploy files or inherit a group mode.
    • Permissions-only entries apply changes only to existing targets.
    • Documented that files requiring deployment and permissions must specify a mode.
    • Clarified that removing a mode from an entry can leave its file orphaned and eligible for pruning.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Entire-Checkpoint: 01M5CXGC036A7C3TSQ13W7QADK
@coderabbitai

coderabbitai Bot commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository YAML (base), Central YAML (inherited), Organization UI (inherited)
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: ea530873-5ab8-48bf-b55b-72d59841b8c4
📥 Commits

Reviewing files that changed from the base of the PR and between 1ced136 and c18aa43.

📒 Files selected for processing: 1
  • docs/dotfiles/groups.md

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 7 remain after this review.

📝 Walkthrough

The group documentation now explains that permissions-only entries do not inherit the group mode or deploy files. It also explains that such entries do not prevent pruning of previously deployed files.

Changes: Group entry documentation

Layer / File(s) Summary
Permissions-only entry behavior
docs/dotfiles/groups.md
Documents that permissions-only entries only adjust permissions on existing targets. Deployment with permissions requires an explicit mode. The documentation also explains that removing the mode from a deploying entry can leave its file eligible for --prune.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~4 minutes

Change: Other · Severity of issue fixed: Low

Merge Risk: ⚪ Minimal · up to c18aa

No actionable merge-blocking risk is identified.

Pre-merge checks: Passed 5
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely describes the documentation change. It identifies both permissions-only group entries and pruning behavior.
Linked Issues check Passed Issue #14764 requires documentation clarification. docs/dotfiles/groups.md now states that an entry with only permissions does not inherit the group mode, deploys nothing, and adjusts an existin…
Out of Scope Changes check Passed The reviewed change is limited to the linked documentation objective in docs/dotfiles/groups.md. The added text explains group-entry behavior and pruning. No unrelated runtime or configuration chang…
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Full details: Linked Issues check

Explanation

Issue #14764 requires documentation clarification. docs/dotfiles/groups.md now states that an entry with only permissions does not inherit the group mode, deploys nothing, and adjusts an existing target. It also documents the required { mode = "copy", permissions = "0600" } form and the orphaning and --prune consequence.

Full details: Out of Scope Changes check

Explanation

The reviewed change is limited to the linked documentation objective in docs/dotfiles/groups.md. The added text explains group-entry behavior and pruning. No unrelated runtime or configuration changes are shown.

Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@greptile-apps

greptile-apps Bot commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[Low impact] This documentation-only PR appears safe to merge.

Summary

Clarifies how permissions-only entries work in dotfile groups.

  • Group entries show when permissions needs an explicit mode.
  • Group docs explain when permission settings leave a file orphaned.

No actionable issues found. The documentation matches the relevant implementation. No runtime tests were run.

Reviews (1) · Last reviewed commit: "docs(dotfiles): clarify permissions-only..." · Reviewed by Greptile

@github-actions

Copy link
Copy Markdown
Contributor

Instruction counts

benchmark trend instructions Δ wall (min) Δ
env ▃▆▄▇▇▅█▃▅▆▆▁ 34,821,868 → 34,769,569 -0.15% 21.33 → 21.66ms +1.55%
hook-env ▁▃▃▄▆▂▄▄▃██▂ 37,096,870 → 37,036,728 -0.16% 22.35 → 22.69ms +1.49%
ls ▄▄▃▆▇▁▂▁▇▅█▁ 39,110,971 → 39,051,802 -0.15% 23.09 → 23.81ms +3.10%
registry ▄█▆▆▇▇▆▆▆▆▆▁ 43,839,769 → 43,738,375 -0.23% 18.46 → 18.85ms +2.13%
startup ▁▃▄█▄▆▄▄▄▅▅▃ 12,054,928 → 12,027,336 -0.23% 12.67 → 12.38ms -2.33%

No instruction-count regression above 1%.

Only instruction counts gate. Wall clock is shown for context — on identical hardware it moves 4-20% run to run.

Measured by tak — instruction-counted CLI benchmarks, stored in this repository's git notes.

c18aa4325c53 vs 1ced1361560d · measured on the runner, not pushed to the history.

@jdx
jdx merged commit 139d6de into main Oct 20, 2026
59 of 62 checks passed
@jdx
jdx deleted the claude/mise-issue-14764-30b1ac branch October 20, 2026 15:40
jdx pushed a commit that referenced this pull request Oct 20, 2026
<!-- entire-trail-link-start -->
https://entire.io/gh/jdx/mise/trails/927
<!-- entire-trail-link-end -->

### 🚀 Features

- **(bootstrap)** accept a shell name in bootstrap.user.login_shell by
@jdx in [#14770](#14770)
- **(doctor)** render templates in check run, description and hint by
@jdx in [#14771](#14771)
- **(vfox)** add RUNTIME.cacheDirPath for plugins by @jdx in
[#14776](#14776)

### 🐛 Bug Fixes

- **(aqua)** handle unterminated string literals in template lexer by
@Huge in [#14752](#14752)
- **(env)** keep pre-activation PATH entries when the shell deduplicates
PATH by @jdx in [#14772](#14772)
- **(pipx)** don't pick a case-insensitive `Python` match as the
interpreter on macOS by @jdx in
[#14769](#14769)
- **(release)** sign Windows binaries in a separate workflow run by @jdx
in [#14766](#14766)
- **(task)** rehash same-size source edits that restore mtime in
content-hash mode by @jdx in
[#14778](#14778)

### 📚 Documentation

- **(dotfiles)** clarify permissions-only group entries and pruning by
@jdx in [#14768](#14768)

### 📦️ Dependency Updates

- update github actions by @renovate[bot] in
[#14753](#14753)
- update mise tools by @renovate[bot] in
[#14754](#14754)
- update github actions by @renovate[bot] in
[#14759](#14759)
- ignore RUSTSEC-2026-0374 basic-toml unmaintained advisory by @jdx in
[f2f2759](f2f2759)
- update dependency ubuntu to v26 by @renovate[bot] in
[#14756](#14756)
- update webpki-root-certs and rustls-webpki for eMudhra CA revocation
by @jdx in [#14781](#14781)

### New Contributors

- @Huge made their first contribution in
[#14752](#14752)
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.

docs: clarify permissions-only group entries and their pruning behavior

1 participant