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

The studio can make an app but cannot change what it says it is #230

shipped production is serving it opened this has it
opened this

The two facts the studio prints most about an app are its description — under the name on its own page, in every shelf row, on /apps, on the owner's page — and whether it is Private, a chip on every studio page it has. Neither can be changed from the studio.

Walked on origin/main. Every form on /fox/fig/settings:

/search  /mode  /theme  /logout  /fox/fig/pin  /fox/fig/settings/autonomy

Two cards — Crew, and On its own — and a link to the rest of the settings, which is ?mode=dev and takes the whole session out of the studio. Dev's page holds the rest: POST /:owner/:name/settings (description, visibility, default branch) and /settings/app, /settings/app/env, /settings/app/disable.

So a person who made an app here in one sentence cannot fix the sentence, cannot make it public when it is ready to show someone, and cannot retire it — without leaving the front door for the git forge underneath. The studio's New app page asks for exactly those facts; the studio's settings page cannot revisit them.

Done looks like

  • [ ] The studio's app settings can change the app's description and its visibility, in the studio's words, posting to the actions that already exist rather than new ones.
  • [ ] Changing either shows up where the studio already prints it — the app's head, the shelf row, /apps — with no second copy of the text anywhere.
  • [ ] The write check is in the action, not only in the page, and the post is same-origin; a reader never sees the controls.
  • [ ] Out of scope, named in the pull so the next issue can take them: the app's own environment variables (secrets deserve their own thinking) and deleting or disabling an app (destructive, wants the confirm the studio already has).
  • [ ] Dev's settings page keeps everything it has today.
  • [ ] Tests: a writer changes the description and the visibility from the studio and the app's page and the shelf row show it; a reader gets neither control. They fail on today's code.

Files I expect to change

src/web/studio/crew.ts or wherever the studio's settings page is assembled, src/web/pages/settings.ts (reuse settingsUpdate), test/studio.test.ts.

Risks

Visibility is an access decision: a private app made public must go through the same action and the same checks dev's form uses, never a studio-only path. Keep the page two cards deep — the studio's settings is a short page on purpose, and the way to everything else stays one link.

Suggested: Scout.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs