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

The profile page at /:owner speaks the home page's language #9769

Merged opened this

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

Merged

The profile page at `/:owner` now draws its apps, repositories, members and teams as bare rows under their headings, with no card frames. The new test, the org, team and design-lint tests, `bun x tsc --noEmit` and `scripts/gate.ts` all pass. I didn't check the 50 ms warm response or the page with JavaScript off. This change adds no scripts, queries or new markup.

shipped production is serving it deploy 4cb4bc0

opened this

The profile page at /:owner now draws its apps, repositories, members and teams as bare rows under their headings, with no card frames. The new test, the org, team and design-lint tests, bun x tsc --noEmit and scripts/gate.ts all pass. I didn't check the 50 ms warm response or the page with JavaScript off. This change adds no scripts, queries or new markup.

  • What moved: the four lists in src/web/pages/org.ts (the apps shelf, repositories, members and teams) now use the existing card bare look. They sit on the page's one background. The "New team" form is bare too. The change is a single extra: "bare" option on each.
  • Docs: I added a short "profile page" section to docs/design/areas/lists.md. It names no new class.
  • Test: test/profile-rows.test.ts fetches /acme and checks that the Repositories card and the New team card are bare. It also checks that Members and Teams are headings over bare lists. It fails on the old markup and passes now.
  • Not changed:

- Team changes still go through src/actions/orgs.ts. - The "no owner" notice keeps its attention tone, since it is a notice rather than a list. - Empty states keep their own frame. - The admin-only Subscriptions and Secrets sections are shared with the repository settings pages, so they stay boxed for now. They need their own pass.

To try it, open /<org> as an org admin and then as a visitor.

🤖 Generated with Claude Code

Closes #9694

commented

The profile page at /:owner now draws its apps, repositories, members and teams as bare rows under their headings, with no card frames. The new test, the org, team and design-lint tests, bun x tsc --noEmit and scripts/gate.ts all pass. I didn't check the 50 ms warm response or the page with JavaScript off. This change adds no scripts, queries or new markup.

  • What moved: the four lists in src/web/pages/org.ts (the apps shelf, repositories, members and teams) now use the existing card bare look. They sit on the page's one background. The "New team" form is bare too. The change is a single extra: "bare" option on each.
  • Docs: I added a short "profile page" section to docs/design/areas/lists.md. It names no new class.
  • Test: test/profile-rows.test.ts fetches /acme and checks that the Repositories card and the New team card are bare. It also checks that Members and Teams are headings over bare lists. It fails on the old markup and passes now.
  • Not changed:

- Team changes still go through src/actions/orgs.ts. - The "no owner" notice keeps its attention tone, since it is a notice rather than a list. - Empty states keep their own frame. - The admin-only Subscriptions and Secrets sections are shared with the repository settings pages, so they stay boxed for now. They need their own pass.

To try it, open /<org> as an org admin and then as a visitor.

🤖 Generated with Claude Code

commented

The profile page at /:owner now shows its apps, repositories, members and teams as plain rows under their headings, with no card frames around them.

The check failed only because no commit message had a "Try:" line. I added an empty commit with one. scripts/gate.ts passes locally and the push went through. I didn't re-run the test suite for this push, since only the commit message changed. The forge's check will run on it.

  • What changed: in src/web/pages/org.ts the apps, repositories, members and teams lists, and the new-team form, use the existing bare card look. No new class was added, and docs/design/areas/lists.md has a short section about it.
  • Test: test/profile-rows.test.ts fetches an org page and asserts the bare shape. It fails on the old markup and passes now.
  • Left as it was: the "no owner" notice keeps its attention tone. The admin-only Subscriptions and Secrets sections stay boxed, because other pages share them and they need their own pass. Team changes still go through src/actions/orgs.ts.

To try it, open /<org> on the preview as an org admin and as a visitor.

🤖 Generated with Claude Code

Changes requested — before the latest push

Mostly right: the apps, repositories, members, teams and New team lists are now bare and the docs section names no new class. Two things to fix in one round.

First (principles 4 and 6, box 1): the profile page still draws boxed cards. The preview of an org shows the Subscriptions section (grantsSection, org.ts ~L378) and the Secrets section (orgSecrets, ~L391) as framed cards. Pass them a bare look on this page without changing the repository settings pages that share them (a bare option on the call, no new class), or give each a heading over rows. 'Shared, needs its own pass' leaves the page half in the old language, and box 1 says the page follows the principles.

Second (box 3): the test does not pin the main list the issue names. Apps is never asserted, and 'Members' is only matched by a regex that would also pass if the heading sat over a boxed list in some other order. Assert the Apps list too and assert that no card without bare remains on the page apart from the notice and empty states. Also fix the indentation of the last expect.

Not checked by the pull: the 50 ms warm response and JavaScript off were not measured by the builder; no markup or script was added, so I expect they hold. No TUI screen is needed, since this is a restyle with no new capability.

commented

I changed only the test, and I pushed it. The Subscriptions and Secrets sections were never boxed, so they needed no change. Both draw as <section class="settings-block"> (grantsSection in subscriptions.ts, secretsCard in secrets.ts). That class is a heading over rows with no frame. My earlier "boxed" claim came from a different card, the Teams list, which my first edit had missed and which I fixed in that same round. Passing them a bare option would have changed nothing visible.

  • Apps list: test/profile-rows.test.ts now creates an app record for one of the org's repos. It asserts the Apps list is bare, along with the repositories list, the New team form, and the Members and Teams lists. The Members and Teams assertion matches each heading straight followed by a bare card.
  • No boxed card left: for an org admin, an org visitor and a person's page, every card on the page must be bare or an empty state. The "no owner" notice isn't in that set. It only renders when everyone on the Owners team is suspended or removed, so no page in the test shows it. Checking it would take extra setup.
  • Last expect: I removed it as part of the rewrite, so the indentation problem is gone.

The new test, test/org-timing.test.ts and test/orgs.test.ts pass, as do bun x tsc --noEmit, scripts/design-lint.ts and scripts/gate.ts. The 50 ms warm response and JavaScript-off behaviour I still haven't measured. The change adds no markup or script beyond the bare class, so I expect both to hold.

To try it, open /<org> on the preview as an org admin.

🤖 Generated with Claude Code

Approved

Clean restyle: the apps, repositories, members, teams and new-team lists take the existing bare card look, no new class, and the lists.md section is accurate. Subscriptions and Secrets render as settings-block (a heading over rows, no frame), so the earlier concern about them does not hold. The test pins Apps, Repositories, New team, and Members/Teams headings over bare lists, and fails on no boxed card left for admin, visitor and person pages. No TUI screen needed: no new capability. The 50 ms timing could not be measured over the network from here, but the markup change is class-only.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs