Skip to content

feat: Enhance Connectors page on read-only file system#77521

Merged
jorgefilipecosta merged 23 commits into
WordPress:trunkfrom
coderGtm:feat/enhance-connectors-page
May 8, 2026
Merged

feat: Enhance Connectors page on read-only file system#77521
jorgefilipecosta merged 23 commits into
WordPress:trunkfrom
coderGtm:feat/enhance-connectors-page

Conversation

@coderGtm
Copy link
Copy Markdown
Contributor

@coderGtm coderGtm commented Apr 21, 2026

What?

Closes #77352

This PR addresse the following:

  • Adds a notice to inform users why connectors are not available on their installation.
  • Shows the AI plugin bannerbut without the Install button.
  • The paragraph at the bottom remains, with an external link to the tag search on the plugin directory (https://wordpress.org/plugins/search/ai-connectors/) when the DISALLOW_FILE_MODS constant is true.

Why?

... because a user is completely blocked from knowing how to enable the AI functionality. I know that on Pantheon, for example, all production live environments have a readonly filesystem. This is an issue for any site configured with the DISALLOW_FILE_MODS constant enabled in wp-config.php. Users will have no idea how to proceed.

How?

TODO

Testing Instructions

TODO

Screenshots or screencast

Before After
image image

Use of AI Tools

GitHub Copilot was used in part for coding purposes. All code has been reviewed by me before pushing it.

Comment thread lib/experimental/connectors/default-connectors.php Outdated
Comment thread routes/connectors-home/default-connectors.tsx Outdated
Comment thread routes/connectors-home/stage.tsx Outdated
Comment thread routes/connectors-home/stage.tsx Outdated
Comment thread routes/connectors-home/stage.tsx Outdated
Comment thread routes/connectors-home/stage.tsx Outdated
Comment thread routes/connectors-home/stage.tsx Outdated
Comment thread routes/connectors-home/stage.tsx Outdated
Comment on lines +99 to +114
<p>{ __( 'WP-CLI examples:' ) }</p>
<ul>
{ manualInstallPluginSlugs.map( ( slug ) => {
const command = `wp plugin install ${ slug } --activate`;
return (
<li key={ slug }>
{ sprintf(
/* translators: %s: Plugin slug. */
__( '%s:' ),
slug
) }{ ' ' }
<code>{ command }</code>
</li>
);
} ) }
</ul>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Idea: Instead of including the WP-CLI commands here, what about including them inline with each respective plugin? This should allow them to make more sense in context.

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.

Personally, I don't find the idea of displaying wp cli commands (anywhere on this screen) very appealing.

The average user hanging here and facing this situation should only be informed that installing plugins is not possible from here (as per your new notice text). We should mention a couple of ways they can try like "using WP CLI or FTP" Adding specific commands is too much technicality imo for this screen, apart from the fact that it is the job of the docs. It also adds the extra overhead of maintaining the command accuracy in the long run.

Just sharing my point of view.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Maybe they can be hidden in DETAILS element so developers can expand to get the command (and most importantly, the slug).

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.

Agreed. So here we are now!

image

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I meant inline with each provider. So in the Anthropic card, there'd be the WP-CLI command to install that plugin if it is not installed. No need for the slug beforehand either, as that is already shown in the command.

Copy link
Copy Markdown
Contributor

@audrasjb audrasjb May 1, 2026

Choose a reason for hiding this comment

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

Hello, I wouldn't show the WP-CLI command first (or event at all), I would rather link to the official documentation on Manual plugin installation.

The "normal deployment workflow" described in the official documentation of WordPress doesn't list any WP-CLI command 😉

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Humm. WP-CLI isn't mentioned in those docs, but we can always add that. Nevertheless, are those docs translated?

At least if we link off to the plugin on the directory then the user can figure out what the slug is for installation via WP-CLI. I was just hoping to reduce the significant friction the user is facing when confronted with this state.

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.

I also think that directly showing the WP-CLI commands is too much technicality on the screen.

At least if we link off to the plugin on the directory then the user can figure out what the slug is for installation via WP-CLI. I was just hoping to reduce the significant friction the user is facing when confronted with this state.

Yes I also was thinking about the same. Maybe we can go this way: We just link the manual installation doc in the notice without showing the commands and then, in the cards, instead of showing "Not available", we can link the wordpress.org page for the plugin. This way a technical user would also be able to easily figure out the slug and a non technical user can reach the correct official plugin page instead of something else.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Agreed, we shouldn't assume the user is technical. We could also encourage the user to contact their site manager or some such person for installation. I think a link to the plugin on .org so the user can learn more about it, get the slug, and so forth is sensible! 👍

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

See also comments starting at #77352 (comment)

@coderGtm coderGtm marked this pull request as ready for review April 29, 2026 07:45
@coderGtm coderGtm requested a review from spacedmonkey as a code owner April 29, 2026 07:45
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 29, 2026

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: coderGtm <gautam23@git.wordpress.org>
Co-authored-by: t-hamano <wildworks@git.wordpress.org>
Co-authored-by: jorgefilipecosta <jorgefilipecosta@git.wordpress.org>
Co-authored-by: westonruter <westonruter@git.wordpress.org>
Co-authored-by: audrasjb <audrasjb@git.wordpress.org>
Co-authored-by: JasonTheAdams <jason_the_adams@git.wordpress.org>
Co-authored-by: justlevine <justlevine@git.wordpress.org>
Co-authored-by: jeffpaul <jeffpaul@git.wordpress.org>
Co-authored-by: fcoveram <fcoveram@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@github-project-automation github-project-automation Bot moved this to 🔎 Needs Review in WordPress 7.0 Editor Tasks May 4, 2026
@t-hamano t-hamano added [Type] Enhancement A suggestion for improvement. [Feature] Connectors screen Tracks connectors screen related tasks labels May 5, 2026
@jeffpaul
Copy link
Copy Markdown
Member

jeffpaul commented May 5, 2026

May be worth updating to use the notice from wp/ui, example: WordPress/ai#490.

@coderGtm
Copy link
Copy Markdown
Contributor Author

coderGtm commented May 6, 2026

Will do it. Also I think the text at the bottom should be updated as per the new design of the screen shared in #77352 (comment)

@t-hamano
Copy link
Copy Markdown
Contributor

t-hamano commented May 7, 2026

Adding the backport label as this PR seems to be expected to be included in 7.0

@t-hamano t-hamano added the Backport to WP 7.0 Beta/RC Pull request that needs to be backported to the WordPress major release that's currently in beta label May 7, 2026
@coderGtm
Copy link
Copy Markdown
Contributor Author

coderGtm commented May 7, 2026

Updated the notice component but had to use // eslint-disable-next-line @wordpress/use-recommended-components

Do we have any concensus on the next steps?

Do we remove the WP CLI commands and just add the 2 buttons as shown in the image in #77352 (comment)?

Also, do we replace the "not available" text with an external link for the plugin?

@westonruter
Copy link
Copy Markdown
Member

I think so. While still waiting for feedback on the design, I think it is safe to skip WP-CLI and replace the "not available" text with a "learn more" link to the plugin on the directory.

@t-hamano
Copy link
Copy Markdown
Contributor

t-hamano commented May 8, 2026

@WordPress/gutenberg-design, If you have the bandwidth, I would appreciate your design feedback.

To test, simply run the following command.

npx wp-env run cli wp config set DISALLOW_FILE_MODS true --raw

Then, after testing:

npx wp-env run cli wp config delete DISALLOW_FILE_MODS
image

Comment thread routes/connectors-home/style.scss Outdated
Comment thread routes/connectors-home/style.scss Outdated
Comment thread routes/connectors-home/stage.tsx Outdated
@t-hamano t-hamano requested review from a team, gziolo and jorgefilipecosta May 8, 2026 10:14
@jorgefilipecosta jorgefilipecosta force-pushed the feat/enhance-connectors-page branch from 26f5743 to e3297b6 Compare May 8, 2026 14:51
@jorgefilipecosta
Copy link
Copy Markdown
Member

I tried to apply all feedback it is ready for another review:
Screenshot 2026-05-08 at 17 03 05

Comment thread routes/connectors-home/default-connectors.tsx Outdated
Comment thread lib/experimental/connectors/default-connectors.php Outdated
@t-hamano
Copy link
Copy Markdown
Contributor

t-hamano commented May 8, 2026

Overall, it looks good.

Regarding the removal of the WP-CLI command examples, what are your thoughts, @westonruter?

image

@jorgefilipecosta jorgefilipecosta force-pushed the feat/enhance-connectors-page branch from 8e0de5f to df811be Compare May 8, 2026 15:57
@westonruter
Copy link
Copy Markdown
Member

And of course, how it looks when installation is available (and after I installed Anthropic):

image

@jorgefilipecosta jorgefilipecosta merged commit 26ba26f into WordPress:trunk May 8, 2026
40 checks passed
@github-project-automation github-project-automation Bot moved this from 🔎 Needs Review to ✅ Done in WordPress 7.0 Editor Tasks May 8, 2026
@github-actions github-actions Bot added this to the Gutenberg 23.2 milestone May 8, 2026
@github-actions github-actions Bot added Backported to WP Core Pull request that has been successfully merged into WP Core and removed Backport to WP 7.0 Beta/RC Pull request that needs to be backported to the WordPress major release that's currently in beta labels May 8, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 8, 2026

I just cherry-picked this PR to the wp/7.0 branch to get it included in the next release: af05fa8

gutenbergplugin pushed a commit that referenced this pull request May 8, 2026
Co-authored-by: coderGtm <gautam23@git.wordpress.org>
Co-authored-by: t-hamano <wildworks@git.wordpress.org>
Co-authored-by: jorgefilipecosta <jorgefilipecosta@git.wordpress.org>
Co-authored-by: westonruter <westonruter@git.wordpress.org>
Co-authored-by: audrasjb <audrasjb@git.wordpress.org>
Co-authored-by: JasonTheAdams <jason_the_adams@git.wordpress.org>
Co-authored-by: justlevine <justlevine@git.wordpress.org>
Co-authored-by: jeffpaul <jeffpaul@git.wordpress.org>
Co-authored-by: fcoveram <fcoveram@git.wordpress.org>
@t-hamano
Copy link
Copy Markdown
Contributor

t-hamano commented May 9, 2026

Heads up - we should not have used the Notice and Link components in this PR, as these have not yet been implemented in wp/7.0. Furthermore, the @wordpress/use-recommended-components rule does not exist either.

In fact, the static check is failing on the wp/7.0 branch: https://github.com/WordPress/gutenberg/actions/runs/25574179820/job/75077130438

Fortunately, no critical errors occurred in the 7.0 release, but these components are not displayed when DISALLOW_FILE_MODS is true.

WordPress 7.0 RC3 Gutenberg trunk
image
Note: The area that should display Learn more is showing Not available, which is an issue that requires further investigation.
image

Perhaps it should be replaced by components/Notice in the wp/7.0 branch, but I'm curious as to why the WordPress release process didn't detect this issue in the first place 🤔 cc @WordPress/gutenberg-components

@t-hamano
Copy link
Copy Markdown
Contributor

t-hamano commented May 9, 2026

Note: The area that should display Learn more is showing Not available, which is an issue that requires further investigation.

This problem should be fixed once changeset 62341 is backported to 7.0.

pento pushed a commit to WordPress/wordpress-develop that referenced this pull request May 14, 2026
This updates the pinned hash from the `gutenberg` from `c15cef1d6b07f666df28dac0383bafb0edfe0914 ` to `3a4e8d1418d25da83b70158bcaabf65580690b6b`.

The following changes are included:

- [WP.7.0] Admin UI: Backport accessibility fixes (WordPress/gutenberg#77617, WordPress/gutenberg#78001) (WordPress/gutenberg#78002)
- Fix: Shortcode block does not render in Navigation Overlay (WordPress/gutenberg#77511)
- feat: Enhance Connectors page on read-only file system (WordPress/gutenberg#77521)
- Connectors: Avoid using centered text (WordPress/gutenberg#78125)
- Revisions: Add tooltip to diff marker buttons  (WordPress/gutenberg#77690)
- Add backport for WP_ALLOW_COLLABORATION (WordPress/gutenberg#78160)
- Add aria-label to Revisions button in Post Summary sidebar (WordPress/gutenberg#78140)
- Revisions diff markers: enforce 24×24px minimum target size (WCAG 2.5.8) (WordPress/gutenberg#77671)
- Connectors: Replace @wordpress/ui Link and Notice usage (WordPress/gutenberg#78117)
- Connectors: Increase right padding of callout for mobile layout (WordPress/gutenberg#78126)
- isFulfilled: don't change resolution state, call in resolveSelect (WordPress/gutenberg#78201)
- Connectors: Restyle AI plugin callout with pastel background and beaker decoration (WordPress/gutenberg#78243)
- Block supports: Optimize custom CSS class rendering and parsing (WordPress/gutenberg#78217)
- Block Inspector: Hide Styles tab in preview mode (WordPress/gutenberg#78230)
- Navigation Link: Preserve custom labels during link updates (WordPress/gutenberg#77186)
- Editor: Fix Visual Revisions meta keys overlap (WordPress/gutenberg#78156)
- Editor: Disable Visual Revisions when classic meta boxes are present (WordPress/gutenberg#78249) (WordPress/gutenberg#78286)
- Revisions: Scale diff markers width with user text-size preference (WordPress/gutenberg#78273)

A full list of changes can be found on GitHub: https://github.com/WordPress/gutenberg/compare/c15cef1d6b07f666df28dac0383bafb0edfe0914…3a4e8d1418d25da83b70158bcaabf65580690b6b.

Log created with:

git log --reverse --format="- %s" c15cef1d6b07f666df28dac0383bafb0edfe0914..3a4e8d1418d25da83b70158bcaabf65580690b6b | sed 's|#\([0-9][0-9]*\)|https://github.com/WordPress/gutenberg/pull/\1|g; /github\.com\/WordPress\/gutenberg\/pull/!d' | pbcopy

See #64595.

git-svn-id: https://develop.svn.wordpress.org/branches/7.0@62360 602fd350-edb4-49c9-b593-d223f7449a82
markjaquith pushed a commit to markjaquith/WordPress that referenced this pull request May 14, 2026
This updates the pinned hash from the `gutenberg` from `c15cef1d6b07f666df28dac0383bafb0edfe0914 ` to `3a4e8d1418d25da83b70158bcaabf65580690b6b`.

The following changes are included:

- [WP.7.0] Admin UI: Backport accessibility fixes (WordPress/gutenberg#77617, WordPress/gutenberg#78001) (WordPress/gutenberg#78002)
- Fix: Shortcode block does not render in Navigation Overlay (WordPress/gutenberg#77511)
- feat: Enhance Connectors page on read-only file system (WordPress/gutenberg#77521)
- Connectors: Avoid using centered text (WordPress/gutenberg#78125)
- Revisions: Add tooltip to diff marker buttons  (WordPress/gutenberg#77690)
- Add backport for WP_ALLOW_COLLABORATION (WordPress/gutenberg#78160)
- Add aria-label to Revisions button in Post Summary sidebar (WordPress/gutenberg#78140)
- Revisions diff markers: enforce 24×24px minimum target size (WCAG 2.5.8) (WordPress/gutenberg#77671)
- Connectors: Replace @wordpress/ui Link and Notice usage (WordPress/gutenberg#78117)
- Connectors: Increase right padding of callout for mobile layout (WordPress/gutenberg#78126)
- isFulfilled: don't change resolution state, call in resolveSelect (WordPress/gutenberg#78201)
- Connectors: Restyle AI plugin callout with pastel background and beaker decoration (WordPress/gutenberg#78243)
- Block supports: Optimize custom CSS class rendering and parsing (WordPress/gutenberg#78217)
- Block Inspector: Hide Styles tab in preview mode (WordPress/gutenberg#78230)
- Navigation Link: Preserve custom labels during link updates (WordPress/gutenberg#77186)
- Editor: Fix Visual Revisions meta keys overlap (WordPress/gutenberg#78156)
- Editor: Disable Visual Revisions when classic meta boxes are present (WordPress/gutenberg#78249) (WordPress/gutenberg#78286)
- Revisions: Scale diff markers width with user text-size preference (WordPress/gutenberg#78273)

A full list of changes can be found on GitHub: https://github.com/WordPress/gutenberg/compare/c15cef1d6b07f666df28dac0383bafb0edfe0914…3a4e8d1418d25da83b70158bcaabf65580690b6b.

Log created with:

git log --reverse --format="- %s" c15cef1d6b07f666df28dac0383bafb0edfe0914..3a4e8d1418d25da83b70158bcaabf65580690b6b | sed 's|#\([0-9][0-9]*\)|https://github.com/WordPress/gutenberg/pull/\1|g; /github\.com\/WordPress\/gutenberg\/pull/!d' | pbcopy

See #64595.
Built from https://develop.svn.wordpress.org/branches/7.0@62360


git-svn-id: http://core.svn.wordpress.org/branches/7.0@61641 1a063a9b-81f0-0310-95a4-ce76da25c4cd
pento pushed a commit to WordPress/wordpress-develop that referenced this pull request May 14, 2026
This updates the pinned hash from the `gutenberg` from `c15cef1d6b07f666df28dac0383bafb0edfe0914 ` to `3a4e8d1418d25da83b70158bcaabf65580690b6b`.

The following changes are included:

- [WP.7.0] Admin UI: Backport accessibility fixes (WordPress/gutenberg#77617, WordPress/gutenberg#78001) (WordPress/gutenberg#78002)
- Fix: Shortcode block does not render in Navigation Overlay (WordPress/gutenberg#77511)
- feat: Enhance Connectors page on read-only file system (WordPress/gutenberg#77521)
- Connectors: Avoid using centered text (WordPress/gutenberg#78125)
- Revisions: Add tooltip to diff marker buttons  (WordPress/gutenberg#77690)
- Add backport for WP_ALLOW_COLLABORATION (WordPress/gutenberg#78160)
- Add aria-label to Revisions button in Post Summary sidebar (WordPress/gutenberg#78140)
- Revisions diff markers: enforce 24×24px minimum target size (WCAG 2.5.8) (WordPress/gutenberg#77671)
- Connectors: Replace @wordpress/ui Link and Notice usage (WordPress/gutenberg#78117)
- Connectors: Increase right padding of callout for mobile layout (WordPress/gutenberg#78126)
- isFulfilled: don't change resolution state, call in resolveSelect (WordPress/gutenberg#78201)
- Connectors: Restyle AI plugin callout with pastel background and beaker decoration (WordPress/gutenberg#78243)
- Block supports: Optimize custom CSS class rendering and parsing (WordPress/gutenberg#78217)
- Block Inspector: Hide Styles tab in preview mode (WordPress/gutenberg#78230)
- Navigation Link: Preserve custom labels during link updates (WordPress/gutenberg#77186)
- Editor: Fix Visual Revisions meta keys overlap (WordPress/gutenberg#78156)
- Editor: Disable Visual Revisions when classic meta boxes are present (WordPress/gutenberg#78249) (WordPress/gutenberg#78286)
- Revisions: Scale diff markers width with user text-size preference (WordPress/gutenberg#78273)

A full list of changes can be found on GitHub: https://github.com/WordPress/gutenberg/compare/c15cef1d6b07f666df28dac0383bafb0edfe0914…3a4e8d1418d25da83b70158bcaabf65580690b6b.

Log created with:

`git log --reverse --format="- %s" c15cef1d6b07f666df28dac0383bafb0edfe0914..3a4e8d1418d25da83b70158bcaabf65580690b6b | sed 's|#\([0-9][0-9]*\)|https://github.com/WordPress/gutenberg/pull/\1|g; /github\.com\/WordPress\/gutenberg\/pull/!d' | pbcopy`

Reviewed by desrosj.
Merges [62360] to `trunk`.

See #64595.

git-svn-id: https://develop.svn.wordpress.org/trunk@62361 602fd350-edb4-49c9-b593-d223f7449a82
markjaquith pushed a commit to markjaquith/WordPress that referenced this pull request May 14, 2026
This updates the pinned hash from the `gutenberg` from `c15cef1d6b07f666df28dac0383bafb0edfe0914 ` to `3a4e8d1418d25da83b70158bcaabf65580690b6b`.

The following changes are included:

- [WP.7.0] Admin UI: Backport accessibility fixes (WordPress/gutenberg#77617, WordPress/gutenberg#78001) (WordPress/gutenberg#78002)
- Fix: Shortcode block does not render in Navigation Overlay (WordPress/gutenberg#77511)
- feat: Enhance Connectors page on read-only file system (WordPress/gutenberg#77521)
- Connectors: Avoid using centered text (WordPress/gutenberg#78125)
- Revisions: Add tooltip to diff marker buttons  (WordPress/gutenberg#77690)
- Add backport for WP_ALLOW_COLLABORATION (WordPress/gutenberg#78160)
- Add aria-label to Revisions button in Post Summary sidebar (WordPress/gutenberg#78140)
- Revisions diff markers: enforce 24×24px minimum target size (WCAG 2.5.8) (WordPress/gutenberg#77671)
- Connectors: Replace @wordpress/ui Link and Notice usage (WordPress/gutenberg#78117)
- Connectors: Increase right padding of callout for mobile layout (WordPress/gutenberg#78126)
- isFulfilled: don't change resolution state, call in resolveSelect (WordPress/gutenberg#78201)
- Connectors: Restyle AI plugin callout with pastel background and beaker decoration (WordPress/gutenberg#78243)
- Block supports: Optimize custom CSS class rendering and parsing (WordPress/gutenberg#78217)
- Block Inspector: Hide Styles tab in preview mode (WordPress/gutenberg#78230)
- Navigation Link: Preserve custom labels during link updates (WordPress/gutenberg#77186)
- Editor: Fix Visual Revisions meta keys overlap (WordPress/gutenberg#78156)
- Editor: Disable Visual Revisions when classic meta boxes are present (WordPress/gutenberg#78249) (WordPress/gutenberg#78286)
- Revisions: Scale diff markers width with user text-size preference (WordPress/gutenberg#78273)

A full list of changes can be found on GitHub: https://github.com/WordPress/gutenberg/compare/c15cef1d6b07f666df28dac0383bafb0edfe0914…3a4e8d1418d25da83b70158bcaabf65580690b6b.

Log created with:

`git log --reverse --format="- %s" c15cef1d6b07f666df28dac0383bafb0edfe0914..3a4e8d1418d25da83b70158bcaabf65580690b6b | sed 's|#\([0-9][0-9]*\)|https://github.com/WordPress/gutenberg/pull/\1|g; /github\.com\/WordPress\/gutenberg\/pull/!d' | pbcopy`

Reviewed by desrosj.
Merges [62360] to `trunk`.

See #64595.
Built from https://develop.svn.wordpress.org/trunk@62361


git-svn-id: http://core.svn.wordpress.org/trunk@61642 1a063a9b-81f0-0310-95a4-ce76da25c4cd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Backported to WP Core Pull request that has been successfully merged into WP Core [Feature] Connectors screen Tracks connectors screen related tasks [Type] Enhancement A suggestion for improvement.

Projects

Development

Successfully merging this pull request may close these issues.

Connectors screen: Users are blocked on sites with a read-only file system (DISALLOW_FILE_MODS)

8 participants