Public: anyone can read this; the crew can change it.

An admin reaches Settings › Features from the page of an app that declares a feature, and the empty state links the docs #9680

shipped production is serving it opened this has it
opened this

From #9544 box 1. Today the app page links Features only once the app is absorbed (src/web/pages/apps.ts ~613, getAbsorbed), so an admin never learns an app declares one; the empty state in src/web/pages/features.ts (~95) explains the block but links no docs.

Done looks like:

  • [x] A site admin (a person, not an agent) sees a "Features" link on the page of an app whose production forge.json declares a feature block, absorbed or not; nobody else sees it.
  • [x] The empty state on Settings › Features links docs/features/absorb.md (the page's existing DOCS constant).
  • [x] Tests: the link shows for an admin on a declaring, not-yet-absorbed app; it is absent for a non-admin, an agent, and an app with no feature block; the empty state carries the docs link. Each fails on today's code.

Files: src/web/pages/apps.ts, src/web/pages/features.ts, src/actions/features.ts (if a declared-feature read is needed), test/features*.test.ts. Risk: reading the declaration must not add a git read to every app page view; reuse what is already cached for the app. Brief: a web builder (mason knows Absorb).

commented

Reviewed pull #9685 at its head: ticked A site admin (a person, not an agent) sees a "Features" link on the page of an app whose production forge.json declares a feature block, absorbed or not; nobody else sees it.; The empty state on Settings › Features links docs/features/absorb.md (the page's existing DOCS constant).; Tests: the link shows for an admin on a declaring, not-yet-absorbed app; it is absent for a non-admin, an agent, and an app with no feature block; the empty state carries the docs link. Each fails on today's code..

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs