镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

Add Nexus Shell as a macOS Fleet-maintained app - #50822

Closed
viewer12 wants to merge 2 commits into
fleetdm:mainfrom
viewer12:codex/add-nexus-shell-fma
Closed

viewer12 wants to merge 2 commits into
fleetdm:mainfrom
viewer12:codex/add-nexus-shell-fma

Conversation

@viewer12

@viewer12 viewer12 commented Aug 8, 2026 •

Copy link
Copy Markdown

Summary

  • Add Nexus Shell as a macOS Fleet-maintained app using the documented custom-tap flow.
  • Include the generated app manifest, inventory/patch queries, install and uninstall scripts, and catalog icon.
  • Track the vendor-hosted, versioned DMG for Apple Silicon Macs.

Developer disclosure: I maintain Nexus Shell and am submitting this catalog entry transparently.

Verified metadata

  • Version: 1.6.9
  • Bundle identifier: sameral.Nexus-Shell
  • Team ID: 5MBFAB57U2
  • Minimum macOS: Sonoma
  • Architecture: Apple Silicon
  • Installer SHA-256: 088938eb901760a3123be7c8df18a41d480f234358a3a56f248de88bcc83a61d
  • Gatekeeper: accepted, notarized Developer ID

Testing

  • Input schema validated with check-jsonschema.
  • Maintained-app Go tests passed.
  • Custom-tap API metadata and FMA output regenerated.
  • Official DMG verified with PlistBuddy, codesign, spctl, and SHA-256.
  • Generated JSON validated and git diff --check passed.
  • QA'd all new/changed functionality manually.

Other checklist sections in the general Fleet PR template do not apply to this maintained-app catalog contribution.

Summary by CodeRabbit

  • New Features
    • Added Nexus Shell to the maintained macOS software catalog.
    • Added support for installing, updating, uninstalling, and cleaning up Nexus Shell version 1.6.9.
    • Added Nexus Shell’s application icon to software listings.
    • Included macOS 14 or later on ARM64 system requirements.
    • Added safeguards to preserve app data during removal by moving related files to the user’s Trash.

@viewer12
viewer12 requested a review from a team as a code owner August 8, 2026 01:35
@coderabbitai

coderabbitai Bot commented Aug 8, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 9c0d6524-5c19-48d1-8676-a3e441fc7de4

📥 Commits

Reviewing files that changed from the base of the PR and between 2ae52cf and d7ca4d3.

📒 Files selected for processing (3)
  • ee/maintained-apps/inputs/homebrew/custom-tap/Casks/nexus-shell.rb
  • ee/maintained-apps/inputs/homebrew/custom-tap/api/nexus-shell.json
  • ee/maintained-apps/outputs/nexus-shell/darwin.json
🚧 Files skipped from review as they are similar to previous changes (3)
  • ee/maintained-apps/inputs/homebrew/custom-tap/api/nexus-shell.json
  • ee/maintained-apps/inputs/homebrew/custom-tap/Casks/nexus-shell.rb
  • ee/maintained-apps/outputs/nexus-shell/darwin.json

Walkthrough

Adds Nexus Shell version 1.6.9 as a maintained macOS application. The change defines Homebrew cask metadata, Darwin installation and uninstallation behavior, catalog registration, cleanup paths, and frontend icon mapping.

Possibly related PRs

  • fleetdm/fleet#50050: Modifies the maintained macOS app catalog and software icon registry with related app registration changes.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description check ✅ Passed The description clearly states the purpose, scope, verified metadata, testing, and manual QA results for the maintained-app catalog contribution.
Title check ✅ Passed The title clearly identifies the addition of Nexus Shell as a macOS Fleet-maintained app.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@codecov

codecov Bot commented Aug 8, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 50.00000% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 68.53%. Comparing base (bc537a3) to head (d7ca4d3).
⚠️ Report is 773 commits behind head on main.

Files with missing lines Patch % Lines
...pages/SoftwarePage/components/icons/NexusShell.tsx 50.00% 1 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main   #50822   +/-   ##
=======================================
  Coverage   68.53%   68.53%           
=======================================
  Files        3977     3978    +1     
  Lines      256142   256170   +28     
  Branches    13818    13818           
=======================================
+ Hits       175535   175567   +32     
+ Misses      64985    64983    -2     
+ Partials    15622    15620    -2     
Flag Coverage Δ
frontend 62.71% <50.00%> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@viewer12

viewer12 commented Aug 8, 2026

Copy link
Copy Markdown
Author

CI note: the failing Validate maintained apps inputs job stops during checkout before validation. The workflow fixes repository: fleetdm/fleet while using ${{ github.head_ref }}, so it looks for codex/add-nexus-shell-fma in the upstream repository instead of the PR head repository (viewer12/fleet). The branch and head commit d7ca4d3 are still available in the fork, and the Darwin maintained-app validation and product-related checks pass.

No Nexus Shell metadata error is shown by this failed job. I am happy to adjust anything on the PR if maintainers prefer a different approach.

@allenhouchins

Copy link
Copy Markdown
Member

@viewer12 thanks for submitting. I am curious, do you have any plans to get this into homebrew natively without a custom tap? We've submitted these on behalf of developers before if you need help.

The only reason I ask is the "custom-tap" that we have created is for apps that can not be in homebrew that our customers have asked for. It doesn't function as a custom tap (like viewer12/tap/nexus-shell), it just tricks our ingesters into thinking its talking to a homebrew tap for apps not supported by homebrew. I can put Nexus Shell there if it must but that means it has to be manually updated every time there is a release versus we can ingest updates automatically from homebrew.

Let me know your thoughts or if you have any questions.

@viewer12

Copy link
Copy Markdown
Author

Thanks — yes, I would appreciate help getting Nexus Shell into homebrew/cask natively.

I had held back because the canonical repository is a small, binary-only releases repository and its raw GitHub notability metrics are low. I have since rechecked the current Acceptable Casks guidance, which notes that those metrics may not represent an application whose repository is used only to host binaries. I understand that this permits review rather than guaranteeing acceptance.

The app otherwise follows the cask requirements:

If you prefer, I can open and maintain the native cask PR myself. If submitting it on behalf of the developer is easier for Fleet's workflow, I am happy to provide any metadata or verification you need.

For this Fleet PR, waiting for the native cask seems preferable to adding an entry that must be updated manually. Once the cask is accepted, I can update this branch to consume it.

@allenhouchins

Copy link
Copy Markdown
Member

@AdamBaali could you assist @viewer12 with getting his app, Nexus Shell, into homebrew so we can rely on that feed instead of our custom tap workflow?

@AdamBaali

Copy link
Copy Markdown
Member

@allenhouchins @viewer12 there is already a cask PR for this: Homebrew/homebrew-cask#280752. @viewer12 opened and closed it on 13 August over the self-submission notability threshold and a livecheck source that needed work.

That threshold is 225 stars, 90 forks or 90 watchers for a self-submission. The releases repo has 2 stars, so acceptance is unlikely. That said, maintainers can allow further review case by case, and a clean resubmission costs little, so it is worth another try. Happy to help get it in shape, we just should not plan the catalog entry around it landing.

I validated 1.7.0 on macOS 15.7.7. The GitHub asset matches the vendor manifest SHA-256, the app is Developer ID signed and notarized, and install, uninstall and reinstall are clean. Keep the GitHub asset URL here, the vendor download 403s Homebrew CI.

@viewer12 two fixes before you reopen:

  • Livecheck: url :url with strategy :github_latest works on your v1.7.0 tags, no custom regex needed.
  • Zap: brew generate-zap only finds three of six paths. It searches for case-insensitive substrings of the app bundle name, Nexus Shell.app, and the bundle identifier, sameral.Nexus-Shell. Your state directory is ~/Library/NexusShell, with no space, so it is not a substring of either and the tool cannot see it. Full set below, all confirmed removed by brew uninstall --zap. Your tap cask also lists ~/Library/Application Support/Nexus Shell with a space, which does not exist on disk. The real directory is NexusShell.
~/Library/Application Support/NexusShell
~/Library/Caches/CloudKit/sameral.Nexus-Shell
~/Library/Caches/sameral.Nexus-Shell
~/Library/HTTPStorages/sameral.Nexus-Shell
~/Library/NexusShell
~/Library/Preferences/sameral.Nexus-Shell.plist

One judgement call in that list: ~/Library/Application Support/NexusShell holds secrets.dat and recordings/, so zapping it removes saved connections, keys and session recordings. The Cookbook says a zap should not remove files the user created directly, so worth deciding deliberately either way. Same question applies to our uninstall script.

Reopen #280752 rather than opening a new one, and fill the template completely, the bot closed it last time for that.

Our uninstall script needs these same paths regardless of what Homebrew does.

@AdamBaali AdamBaali moved this from ⏰ Planned to 🐥 Review/QA in 🌦️ :help-customers Aug 18, 2026
jkatz01 added a commit that referenced this pull request Aug 31, 2026
- Adds related issue (if any), and if any of the manual QA checkboxes
were selected.
- Adds a -v verbose mode that also outputs who is assigned to the PR, a
full link, and tags from the related issue

Examples:
```
jonathan@jonathans-macbook-pro:~/repos/fleet-2$ ./tools/oncall/oncall.sh prs
51893  2026-08-25T17:29:40Z         tested  prateek-0490     Batch scheduled query name lookups when processing result logs
51881  2026-08-25T16:25:40Z                 nonpunctual      Include script for printer configuration from CSV
51845  2026-08-25T04:20:44Z  49502  tested  rajendrachavan   Write a query and its labels in a single transaction
51731  2026-08-21T19:49:52Z         tested  prateek-0490     Validate software list order keys against an allowlist
51583  2026-08-19T19:34:15Z         tested  prateek-0490     Require a team selection when validating report run targets
51338  2026-08-17T05:23:53Z  50846          Dhvanit41        Hide the toast details panel when the payload is empty
51265  2026-08-14T17:54:28Z         tested  prateek-0490     Expand host script variables via the environment
51241  2026-08-14T14:32:34Z  50336  tested  andymFleet       50336 apple business stale fleet names
51178  2026-08-13T20:18:48Z                 moojomoore       Add macOS unlock user account action
51119  2026-08-13T05:28:14Z  50882          Dhvanit41        Return an error when refetching an Android host
51020  2026-08-12T00:46:05Z  40092          sjawhar          Support credentialProviderPolicy in Android app configuration
50943  2026-08-11T12:31:48Z  46773  tested  surajtripathy07  Add software custom targets warning to delete label modal
50898  2026-08-10T19:26:08Z  45100          tianrking        Recover vulnerability counts after interrupted table swaps
50836  2026-08-08T19:23:13Z  50300  tested  kitarp29         Adding the logic to make controls even when it's empty
50822  2026-08-08T01:35:19Z         tested  viewer12         Add Nexus Shell as a macOS Fleet-maintained app
50774  2026-08-07T15:14:11Z  50357  tested  Dhvanit41        Clear stale failure detail when an Android profile becomes verified
49816  2026-07-23T13:19:19Z         tested  sleepy-slothh    Fix Ubuntu OSV binary package matching
43774  2026-04-20T15:46:23Z                 BCTBB            Helm - Gateway API support
```

```
jonathan@jonathans-macbook-pro:~/repos/fleet-2$ ./tools/oncall/oncall.sh prs -v
51893  2026-08-25T17:29:40Z         tested  prateek-0490                       #51893  Batch scheduled query name lookups when processing result logs
51881  2026-08-25T16:25:40Z                 nonpunctual                        #51881  Include script for printer configuration from CSV
51845  2026-08-25T04:20:44Z  49502  tested  rajendrachavan   lucasmrod         #51845  Write a query and its labels in a single transaction                 bug, ~backend, ~released bug, #g-orchestration
51731  2026-08-21T19:49:52Z         tested  prateek-0490     juan-fdz-hawa     #51731  Validate software list order keys against an allowlist
51583  2026-08-19T19:34:15Z         tested  prateek-0490     juan-fdz-hawa     #51583  Require a team selection when validating report run targets
51338  2026-08-17T05:23:53Z  50846          Dhvanit41                          #51338  Hide the toast details panel when the payload is empty               bug, ~frontend, ~released bug, #g-auto-patching
51265  2026-08-14T17:54:28Z         tested  prateek-0490     georgekarrv       #51265  Expand host script variables via the environment
51241  2026-08-14T14:32:34Z  50336  tested  andymFleet       JordanMontgomery  #51241  50336 apple business stale fleet names                               bug, ~released bug, #g-apple-at-work
51178  2026-08-13T20:18:48Z                 moojomoore                         #51178  Add macOS unlock user account action
51119  2026-08-13T05:28:14Z  50882          Dhvanit41                          #51119  Return an error when refetching an Android host                      bug, ~released bug, #g-byod
51020  2026-08-12T00:46:05Z  40092          sjawhar                            #51020  Support credentialProviderPolicy in Android app configuration        ~feature fest, customer-pingali, #g-byod
50943  2026-08-11T12:31:48Z  46773  tested  surajtripathy07  lucasmrod         #50943  Add software custom targets warning to delete label modal            bug, ~released bug, #g-orchestration, customer-susanoo
50898  2026-08-10T19:26:08Z  45100          tianrking        juan-fdz-hawa     #50898  Recover vulnerability counts after interrupted table swaps           bug, ~released bug, ~community, #g-supply-chain, ~aging bug
50836  2026-08-08T19:23:13Z  50300  tested  kitarp29         lucasmrod         #50836  Adding the logic to make controls even when it's empty               bug, ~gitops, #g-orchestration
50822  2026-08-08T01:35:19Z         tested  viewer12         AdamBaali         #50822  Add Nexus Shell as a macOS Fleet-maintained app
50774  2026-08-07T15:14:11Z  50357  tested  Dhvanit41                          #50774  Clear stale failure detail when an Android profile becomes verified  bug, ~released bug, #g-byod
49816  2026-07-23T13:19:19Z         tested  sleepy-slothh                      #49816  Fix Ubuntu OSV binary package matching
43774  2026-04-20T15:46:23Z                 BCTBB                              #43774  Helm - Gateway API support
```

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added an optional verbose mode for pull request listings, showing
assignees, URLs, linked issue labels, and manual QA status.
  * Improved output formatting with aligned columns.
* **Bug Fixes**
* Unknown command-line arguments are now rejected with clearer usage
guidance.
  * Improved detection of linked issues in pull request descriptions.
* **Documentation**
  * Updated command usage information to describe the verbose option.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
@allenhouchins

Copy link
Copy Markdown
Member

@viewer12 closing this for now due to your last comment in the homebrew repo: Homebrew/homebrew-cask#280752 (comment)

Feel free to notify me as soon as you get that added to homebrew. Looking forward to getting this added to Fleet's FMA catalog.

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

Labels

~fma relates to a Fleet-maintained app

Projects

Status: 🐥 Review/QA

Development

Successfully merging this pull request may close these issues.

4 participants