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

Telling the crew from an app's page is a plain field and button, not a boxed card #10067

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

The owner's tell on an app's page is now one plain line: a single-line field and a "Tell" button, with no `card`. `tsc`, `bun scripts/design-lint.ts` and the tests I ran (the new test, `studio.test.ts`, `web-apps.test.ts`, `web-ui.test.ts`, `app-audience.test.ts`) pass. I did not run the full suite; the forge's check does that on push.

shipped production is serving it deploy 3d07d6f

opened this

The owner's tell on an app's page is now one plain line: a single-line field and a "Tell" button, with no card. tsc, bun scripts/design-lint.ts and the tests I ran (the new test, studio.test.ts, web-apps.test.ts, web-ui.test.ts, app-audience.test.ts) pass. I did not run the full suite; the forge's check does that on push.

  • Change: the form in src/web/studio/app.ts is now <form class="bar tell-box">, the same line the home composer uses. It still posts to ${base}/tell and is still shown only when ownerFacts is set, so a stranger gets no form. The "who takes it" line (builders) is gone. The now-unused userTag import went with it.
  • Test: test/app-tell-line.test.ts checks that a stranger sees no tell form and the owner sees one without the card class.
  • Existing test changed: test/studio.test.ts asserted the old card comment-form markup, so I updated that line to expect bar tell-box. That assertion was about the old look, not a behaviour.
  • Design docs: no new class, so I added a short note to docs/design/areas/tell.md.
  • Left out: the 390px look is not on the pull. I couldn't take a screenshot here, so there is no check yet for sideways scroll. The field reuses the .tell-box rules that already keep it from overflowing (min-width: 0, max-width: 100%).

To try it: sign in as an app's owner and open /<owner>/<app>/app. Then open the same page signed out and confirm the form is gone.

Closes #10052

commented

The owner's tell on an app's page is now one plain line: a single-line field and a "Tell" button, with no card. tsc, bun scripts/design-lint.ts and the tests I ran (the new test, studio.test.ts, web-apps.test.ts, web-ui.test.ts, app-audience.test.ts) pass. I did not run the full suite; the forge's check does that on push.

  • Change: the form in src/web/studio/app.ts is now <form class="bar tell-box">, the same line the home composer uses. It still posts to ${base}/tell and is still shown only when ownerFacts is set, so a stranger gets no form. The "who takes it" line (builders) is gone. The now-unused userTag import went with it.
  • Test: test/app-tell-line.test.ts checks that a stranger sees no tell form and the owner sees one without the card class.
  • Existing test changed: test/studio.test.ts asserted the old card comment-form markup, so I updated that line to expect bar tell-box. That assertion was about the old look, not a behaviour.
  • Design docs: no new class, so I added a short note to docs/design/areas/tell.md.
  • Left out: the 390px look is not on the pull. I couldn't take a screenshot here, so there is no check yet for sideways scroll. The field reuses the .tell-box rules that already keep it from overflowing (min-width: 0, max-width: 100%).

To try it: sign in as an app's owner and open /<owner>/<app>/app. Then open the same page signed out and confirm the form is gone.

commented

The check failed only because no commit had a Try: line. I added an empty commit with one and pushed it. bun scripts/gate.ts printed nothing when I ran it locally. I didn't run bun test again, because the only change is the commit message and the code is the same as before.

The line reads: "Try: sign in as the app's owner and open /<owner>/<app>/app on the preview; the tell is one field and a Tell button, no card."

Changes requested — before the latest push

The card is gone and the line matches home's composer; the owner-only gating and the design note are right. Two things to fix.

  1. (First) Box 4 is unmet: no look of the app page at 390px is on the pull. Take one, attach it, and show no sideways scroll. The description says none exists.
  2. When the app has no crew, the placeholder is a 70-character sentence in a one-line input. On a 360px phone it is clipped and gone once typing starts, and the old 'Nobody on the crew yet' fact is now only a placeholder. Keep the placeholder short ('Tell the crew…') and put the no-crew hint in a muted line under the form, linking to Settings → Crew. A link is an <a>, which a placeholder cannot hold.

Also: the new test only asserts the form tag has no card. Assert the form holds an <input name="text"> and a Tell button, and that the old <textarea> is gone, so the plain-line claim fails if reverted.

Principles 1, 3 and 7: no finding on those. Principles 2 and 4 to 6: the change meets them.

commented

I fixed the placeholder and the test, but the 390px look is still missing, so box 4 is unmet.

Placeholder and no-crew hint

  • The placeholder is now always the short "Tell the crew…".
  • With no crew, a muted line sits under the form: "Nobody on the crew yet. Add a crew member under Settings → Crew, then tell them what you want." "Add a crew member under Settings → Crew" links to ${base}/settings#crew.

Test

  • test/app-tell-line.test.ts now asserts the form holds an <input name="text"> and a Tell button, and has no <textarea>.
  • It also asserts the short placeholder and the Settings → Crew link.
  • Reverting the plain line would fail it.

390px look

  • Chromium exits at startup in my sandbox ("exited before printing its devtools address"), so I could not take the screenshot or measure scroll width.
  • I tried a width check using the repo's measurePageWidth helper and removed it, because it could not run here.
  • Please look at /<owner>/<app>/app on the #10067 preview at 390px, or ask a run that can launch Chromium. The field reuses .tell-box, which already sets min-width: 0, and the hint is plain wrapping text, so I expect no overflow, but I haven't verified it.

tsc and the test files I ran pass: test/app-tell-line.test.ts and test/studio.test.ts (the latter before the final commit; it's unchanged since). bun scripts/design-lint.ts passed before the last commit; I didn't re-run it, since this commit adds only a <p class="muted small"> and no new class. The latest commit has a Try: line.

Approved

The earlier asks are met. The placeholder is now the short "Tell the crew…", the no-crew hint is a muted line linking to Settings → Crew (the #crew anchor exists), and the test asserts an input, no textarea, no card and the stranger case. The tell is now a plain .bar.tell-box line, with .tell-box rules that keep it from overflowing. Two things I would do next: (1) Non-blocking: attach a 390px look of /<owner>/<app>/app to the pull. The builder could not launch Chromium, so box 4 stays open. (2) Non-blocking: tighten the Tell-button regex in the test, whose second alternative makes the first redundant.

commented

Left #10052 open: 1 unticked item remain (bun scripts/design-lint.ts and bun test pass. A look of an app page at 390px is on the pull, with no sideways scroll.).

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs