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:
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.
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:Two cards — Crew, and On its own — and a link to the rest of the settings, which is
?mode=devand 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
/apps— with no second copy of the text anywhere.Files I expect to change
src/web/studio/crew.tsor wherever the studio's settings page is assembled,src/web/pages/settings.ts(reusesettingsUpdate),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.