feat(web): home center dashboard, IDE workbench, faster settings/modals 2 months ago
Authored
V.C. Billingsley 7/19/2026, 3:06:40 AM Home
- Add home center with Your work / Activity tabs, nudges, notifications
bell, and an Autopilot activity strip
- Remove the home leaderboard (panel, component, data layer)
Repository workbench
- IDE-style activity rail with a sliding active-tool indicator and a
"Code" entry back to the overview
- Workbench tab bar: restore the Home tab and add a sliding tab highlight
Modals & navigation
- Open account-settings, new-repository, and GitHub-import modals via
client-side history (no RSC round trip) so they appear instantly
- Redesign the new-repository modal (nested-panel + Close/Import/Create
action bar) from the Paper design
Foundations & polish
- Empty-state system with Isocons illustrations
- Waitlist landing overhaul
- Assorted UI polish across pulls, issues, campfire, onboarding, and
workspace dashboards; shared UI component updates
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Parentbf454bf
156 files changed
.agents/skills/animation-vocabulary/SKILL.md +173 −0 .agents/skills/apple-design/SKILL.md +282 −0 .agents/skills/emil-design-eng/SKILL.md +679 −0 .agents/skills/find-animation-opportunities/SKILL.md +132 −0 .agents/skills/improve-animations/AUDIT.md +116 −0 .agents/skills/improve-animations/PLAN-TEMPLATE.md +73 −0 .agents/skills/improve-animations/SKILL.md +101 −0 .agents/skills/review-animations/SKILL.md
+112
−0
.agents/skills/review-animations/STANDARDS.md +188 −0
apps/playground/lib/component-examples/app-shell.tsx +13 −13
apps/playground/lib/component-examples/avatar.tsx +16 −14
apps/web/app/(home)/activity-feed-skeleton.tsx +9 −8
apps/web/app/(home)/activity-feed.tsx +31 −11
apps/web/app/(home)/activity-row.tsx +8 −5
apps/web/app/(home)/autopilot-strip.tsx +114 −0
apps/web/app/(home)/feed-sidebar.tsx +36 −59
apps/web/app/(home)/home-center-tabs.tsx +41 −0
apps/web/app/(home)/home-center.tsx +59 −0
apps/web/app/(home)/home-notifications-bell.tsx +106 −0
apps/web/app/(home)/home-notifications.tsx +18 −0
apps/web/app/(home)/home-nudges-client.tsx +145 −0
apps/web/app/(home)/home-right-rail.tsx +0 −4
apps/web/app/(home)/layout.tsx +7 −1
apps/web/app/(home)/leaderboard-panel.tsx +0 −21
apps/web/app/(home)/leaderboard.tsx +0 −124
apps/web/app/(home)/page.tsx +21 −12
apps/web/app/(home)/trending-repos.tsx +17 −2
apps/web/app/(home)/your-work-panel.tsx +182 −0
apps/web/app/[username]/[repository]/branches/page.tsx +7 −3
apps/web/app/[username]/[repository]/campfire/campfire-room.tsx +9 −29
apps/web/app/[username]/[repository]/campfire/campfire-thread-ref-card.tsx +7 −26
apps/web/app/[username]/[repository]/campfire/page.tsx +7 −19
apps/web/app/[username]/[repository]/docs/docs-page.tsx +7 −7
apps/web/app/[username]/[repository]/fork/fork-repository-form.tsx +1 −6
apps/web/app/[username]/[repository]/insights/page.tsx +75 −52
apps/web/app/[username]/[repository]/issues/[number]/issue-linked-pull-requests.tsx +7 −3
apps/web/app/[username]/[repository]/issues/page.tsx +38 −22
apps/web/app/[username]/[repository]/pulls/[number]/autopilot/autopilot-run-client.tsx +11 −13
apps/web/app/[username]/[repository]/pulls/[number]/pull-request-detail.tsx +8 −3
apps/web/app/[username]/[repository]/pulls/[number]/pull-request-files-body.tsx +12 −1
apps/web/app/[username]/[repository]/pulls/[number]/pull-request-sidebar-section.tsx +36 −0
apps/web/app/[username]/[repository]/pulls/[number]/pull-request-sidebar.tsx +19 −33
apps/web/app/[username]/[repository]/pulls/[number]/pull-request-stack-panel.tsx +13 −6
apps/web/app/[username]/[repository]/pulls/[number]/sidebar-checks.tsx +12 −10
apps/web/app/[username]/[repository]/pulls/page.tsx +49 −17
apps/web/app/[username]/[repository]/repository-contributors.tsx +18 −17
apps/web/app/[username]/[repository]/repository-home.tsx +24 −7
apps/web/app/[username]/[repository]/settings/repository-settings-forms.tsx +7 −9
apps/web/app/[username]/page.tsx +33 −26
apps/web/app/[username]/settings/members/page.tsx +7 −9
apps/web/app/[username]/settings/repositories/page.tsx +9 −9
apps/web/app/ci/runs/[runId]/jobs/[jobId]/page.tsx +17 −7
apps/web/app/ci/runs/[runId]/jobs/[jobId]/workflow-job-log-viewer.tsx +14 −3
apps/web/app/home/page.tsx +8 −28
apps/web/app/landing/landing-shaders.tsx +116 −0
apps/web/app/landing/page.tsx +729 −0
apps/web/app/layout.tsx +12 −0
apps/web/app/onboarding/actions.ts +1 −0
apps/web/app/onboarding/onboarding-experience.tsx +15 −8
apps/web/app/onboarding/onboarding-identity-preview.tsx +7 −1
apps/web/app/onboarding/page.tsx +3 −1
apps/web/app/repositories/import/github/github-import-form.tsx +9 −2
apps/web/app/repositories/new/actions.ts +21 −4
apps/web/app/repositories/new/create-repository-form.tsx +38 −0
apps/web/app/settings/account/account-settings-sections/profile.tsx +8 −13
apps/web/app/settings/account/account-settings-sections/sessions.tsx +10 −3
apps/web/app/settings/developer/page.tsx +8 −4
apps/web/app/waitlist/page.tsx +2 −37
apps/web/app/waitlist/waitlist-join-flow.tsx +51 −23
apps/web/app/waitlist/waitlist-landing.tsx +582 −97
apps/web/app/waitlist/waitlist-page-content.tsx +48 −0
apps/web/app/waitlist/waitlist-sign-out-button.tsx +3 −1
apps/web/app/workspace/dashboard-detail.tsx +2 −11
apps/web/app/workspace/dashboard-list.tsx +1 −0
apps/web/app/workspace/dashboard-row.tsx +6 −1
apps/web/app/workspace/helpers.ts +1 −0
apps/web/app/workspace/layout.tsx +1 −1
apps/web/app/workspace/repository-explorer.tsx +198 −51
apps/web/app/workspace/repository-workbench-sidebar.tsx +125 −7
apps/web/components/account-settings/account-settings-modal.tsx +22 −32
apps/web/components/account-settings/git-tokens-section.tsx +7 −3
apps/web/components/app-shell.tsx +18 −4
apps/web/components/command-menu.tsx +7 −4
apps/web/components/conversation/comment-composer-shared.tsx +25 −15
apps/web/components/conversation/reply-content.tsx +12 −17
apps/web/components/conversation/timeline-primitives.tsx +3 −12
apps/web/components/diffs/code-view-comments-list.tsx +10 −3
apps/web/components/empty-state.tsx +89 −0
apps/web/components/github-import-modal.tsx +2 −7
apps/web/components/iso-illustration.tsx +62 −0
apps/web/components/mobile-tab-bar.tsx +253 −0
apps/web/components/new-repository-modal.tsx +327 −0
apps/web/components/open-git-user-button.tsx +12 −31
apps/web/components/organization-menu.tsx +8 −21
apps/web/components/resource-list-row.tsx +7 −1
apps/web/components/resource-query-filter-bar.tsx +2 −2
apps/web/components/sidebar-app-frame.tsx +129 −79
apps/web/components/workbench-tabs/workbench-tab-bar.tsx +188 −19
apps/web/db/activity.ts +59 −13
apps/web/db/dashboard.ts +6 −0
apps/web/db/home-autopilot-logic.test.ts +53 −0
apps/web/db/home-autopilot-logic.ts +48 −0
apps/web/db/home-autopilot.ts +145 −0
apps/web/db/home-leaderboard.ts +0 −243
apps/web/db/home-nudges-logic.test.ts +90 −0
apps/web/db/home-nudges-logic.ts +54 −0
apps/web/db/home-nudges.ts +173 −0
apps/web/db/home-your-work-logic.test.ts +250 −0
apps/web/db/home-your-work-logic.ts +154 −0
apps/web/db/home-your-work.ts +330 −0
apps/web/db/issues.ts +45 −24
apps/web/db/pull-requests.ts +34 −13
apps/web/lib/account-settings-url.ts +25 −0
apps/web/lib/shared/relative-time.ts +6 −4
apps/web/next-env.d.ts +1 −1
apps/web/package.json +1 −0
apps/web/public/icons/ATTRIBUTION.md +38 −0
apps/web/public/icons/isocons-access.svg +1 −0
apps/web/public/icons/isocons-activity.svg +1 −0
apps/web/public/icons/isocons-artifacts.svg +1 −0
apps/web/public/icons/isocons-automation.svg +1 −0
apps/web/public/icons/isocons-branches.svg +1 −0
apps/web/public/icons/isocons-channels.svg +1 −0
apps/web/public/icons/isocons-checks.svg +1 −0
apps/web/public/icons/isocons-docs.svg +1 −0
apps/web/public/icons/isocons-empty-dashboard.svg +1 −39
apps/web/public/icons/isocons-files.svg +1 −0
apps/web/public/icons/isocons-import.svg +1 −0
apps/web/public/icons/isocons-issues.svg +1 −0
apps/web/public/icons/isocons-languages.svg +1 −0
apps/web/public/icons/isocons-leaderboard.svg +1 −0
apps/web/public/icons/isocons-linked.svg +1 −0
apps/web/public/icons/isocons-logs.svg +1 −0
apps/web/public/icons/isocons-members.svg +1 −0
apps/web/public/icons/isocons-messages.svg +1 −0
apps/web/public/icons/isocons-pull-requests.svg +1 −0
apps/web/public/icons/isocons-readme.svg +1 −0
apps/web/public/icons/isocons-repositories.svg +1 −0
apps/web/public/icons/isocons-sessions.svg +1 −0
apps/web/public/icons/isocons-steps.svg +1 −0
apps/web/public/icons/isocons-tokens.svg +1 −0
apps/web/public/icons/isocons-trending.svg +1 −0
apps/web/public/landing-crt.webp — —
packages/ui/package.json +2 −1
packages/ui/src/components/alert-dialog.tsx +33 −33
packages/ui/src/components/app-shell.tsx +3 −1
packages/ui/src/components/blob-avatar.tsx +5 −36
packages/ui/src/components/dialog.tsx +8 −6
packages/ui/src/components/menu.tsx +2 −2
packages/ui/src/components/nested-panel.tsx +5 −5
packages/ui/src/components/select.tsx +2 −2
packages/ui/src/components/tabs.tsx +21 −19
packages/ui/src/components/user-avatar.tsx +39 −15
packages/ui/src/styles/globals.css +21 −7
pnpm-lock.yaml +36 −0
skills-lock.json +36 −0